Files
vps_ssh_tunel/README.md
2025-12-22 14:45:34 +00:00

246 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Автономный менеджер SSH туннелей (VPS SSH Tunnel Manager)
## Описание
Автономный менеджер SSH туннелей — это комплексное решение для создания и управления безопасными обратными SSH подключениями к вашему VPS. Система предназначена для работы на мини-ПК или серверах без постоянного мониторинга, с полной автономностью и самовосстановлением при обрывах соединения.
### Ключевые возможности
- **Полная автономность**: автоматический запуск и поддержка туннелей после перезагрузки
- **Самовосстановление**: автоматическое переподключение при обрывах соединения
- **Поддержка различных туннелей**:
- Прямые туннели (проброс локальных портов на VPS)
- Обратные туннели (доступ к ресурсам за VPS)
- Двунаправленная маршрутизация
- **Автоматическая настройка SSH**: генерация ключей, настройка конфигурации
- **Поддержка разных дистрибутивов**: Debian, Ubuntu, CentOS, RHEL, Fedora
- **Цветное меню управления**: интуитивный интерфейс с визуализацией статуса
- **Systemd интеграция**: службы и таймеры для мониторинга
## Быстрый старт
### Установка одной командой
```bash
sudo bash <(curl -s https://git.softuniq.eu/OpenDoor/vps_ssh_tunel/raw/branch/main/install_ssh_tunnel.sh)
```
## Детальная установка
### Предварительные требования
- Сервер с ОС Linux (Debian/Ubuntu, CentOS/RHEL или совместимые)
- Права суперпользователя (root/sudo)
- Доступ к удаленному VPS с открытым SSH портом
- Интернет-соединение для загрузки зависимостей
### Шаги установки
1. **Запустите установочный скрипт**:
```bash
curl -s https://git.softuniq.eu/OpenDoor/vps_ssh_tunel/raw/branch/main/install_ssh_tunnel.sh | sudo bash
```
2. **Следуйте интерактивным подсказкам**:
- Введите данные вашего VPS (IP-адрес, порт, пользователь)
- Система автоматически определит дистрибутив и установит зависимости
- Будет сгенерирован SSH ключ и скопирован на VPS
3. **Настройте туннели**:
После установки запустите менеджер туннелей:
```bash
tunnel-manager
```
## Управление туннелями
### Основные команды
```bash
# Запуск менеджера с цветным меню
tunnel-manager
# Проверка статуса служб мониторинга
systemctl status tunnel-monitor
# Просмотр логов в реальном времени
journalctl -u tunnel-monitor -f
# Просмотр логов установки
cat /tmp/ssh_tunnel_install.log
```
### Создание туннелей через меню
1. **Автономный туннель** (опция 1) — полная настройка с мониторингом
2. **Быстрый SSH туннель** (опция 2) — проброс порта 22 для удаленного доступа
3. **Обратный туннель** — доступ к ресурсам, находящимся за VPS
### Пример: проброс SSH доступа
При настройке быстрого туннеля система:
1. Пробрасывает локальный порт 22 на удаленный порт VPS (например, 10022)
2. Создает systemd службу для автономной работы
3. Настраивает автоматический мониторинг и восстановление
Для подключения используйте:
```bash
ssh -p 10022 ваш_пользователь@vps_ip
```
## Структура системы
### Установленные компоненты
| Путь | Назначение |
|------|------------|
| `/opt/ssh_tunnel_manager/` | Основные скрипты управления |
| `/etc/ssh_tunnel/` | Конфигурационные файлы туннелей |
| `/var/log/ssh_tunnel/` | Логи работы туннелей и мониторинга |
| `/root/.ssh/` | SSH ключи и конфигурация |
| `/etc/systemd/system/` | Systemd службы и таймеры |
### Systemd службы
- **tunnel-monitor.service** — мониторинг и восстановление туннелей
- **ssh-tunnel-*.service** — индивидуальные службы для каждого туннеля
- **tunnel-check.timer** — периодическая проверка соединений
## Настройка SSH
### Автоматически настроенные параметры
Система автоматически настраивает:
- Генерацию RSA ключа 4096 бит
- Конфигурацию SSH клиента для автономной работы
- Отключение строгой проверки хостов (для автоматического подключения)
- Настройку keepalive для поддержания соединения
- Поддержку как root, так и обычных пользователей
### Ручная настройка ключей
Если автоматическое копирование ключа не удалось, выполните:
```bash
# Показать публичный ключ
cat /root/.ssh/id_rsa.pub
# Скопируйте вывод и добавьте в ~/.ssh/authorized_keys на VPS
```
## Устранение неполадок
### Проверка подключения
```bash
# Проверка доступности порта VPS
timeout 5 nc -z vps_ip 22
# Тестовое SSH подключение
ssh -p порт пользователь@vps_ip "echo 'Тест успешен'"
```
### Просмотр логов
```bash
# Логи мониторинга
tail -f /var/log/ssh_tunnel/monitor.log
# Системные логи служб
journalctl -u ssh-tunnel-* --since "1 hour ago"
# Логи конкретного туннеля
journalctl -u ssh-tunnel-имя_туннеля -f
```
### Перезапуск служб
```bash
# Перезапуск монитора
systemctl restart tunnel-monitor
# Перезапуск конкретного туннеля
systemctl restart ssh-tunnel-имя_туннеля
# Перезагрузка всех служб
systemctl daemon-reload
```
## Особенности автономной работы
### Автозапуск при загрузке
Все службы автоматически:
1. Запускаются после загрузки системы
2. Проверяют доступность сети
3. Восстанавливают туннели при их отсутствии
4. Мониторят соединения каждые 30 секунд
### Самовосстановление
При обнаружении обрыва соединения система:
1. Автоматически перезапускает туннель
2. Логирует событие для последующего анализа
3. Продолжает попытки подключения до успеха
## Безопасность
### Рекомендации
1. **Используйте нестандартные порты** для SSH на VPS
2. **Настройте брандмауэр** на VPS для ограничения доступа
3. **Регулярно обновляйте** SSH ключи
4. **Используйте fail2ban** для защиты от bruteforce атак
5. **Ограничьте пользователей** которые могут подключаться через туннель
### Конфигурация безопасности
Система автоматически настраивает:
- SSH ключи без парольной фразы (для автономности)
- Отключение strict host checking (только для доверенных VPS)
- Настройку ServerAlive для детектирования обрывов
## Поддерживаемые дистрибутивы
- **Debian/Ubuntu** (apt-based системы)
- **CentOS/RHEL 7/8** (yum-based системы)
- **Fedora** (dnf-based системы)
- **Rocky Linux / AlmaLinux**
- **Другие дистрибутивы** (с ручной установкой autossh)
## Разработка и вклад
### Структура репозитория
```
vps_ssh_tunel/
├── install_ssh_tunnel.sh # Основной установочный скрипт
├── README.md # Эта документация
└── (дополнительные скрипты) # Утилиты управления
```
### Сборка и тестирование
Для тестирования установки:
```bash
# В тестовой среде (Docker/LXC)
chmod +x install_ssh_tunnel.sh
./install_ssh_tunnel.sh
```
## Лицензия
Проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
## Поддержка
Для получения помощи:
1. Проверьте логи в `/var/log/ssh_tunnel/`
2. Убедитесь в доступности VPS и корректности настроек
3. Проверьте настройки брандмауэра на VPS
4. Убедитесь, что SSH ключ добавлен в authorized_keys на VPS
---
**Примечание**: Эта система предназначена для использования в доверенных сетях и требует дополнительной настройки безопасности для использования в production-средах.