From e7a43aa2105b457a3b436d227e023e4b637e583c Mon Sep 17 00:00:00 2001 From: NW Date: Mon, 22 Dec 2025 14:45:34 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 246 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..a34b2eb --- /dev/null +++ b/README.md @@ -0,0 +1,246 @@ +# Автономный менеджер 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-средах. \ No newline at end of file