NW f3681ea2ab v1.2
Основные исправления:

    Интерактивный запрос данных VPS - скрипт теперь явно запрашивает:

        IP/домен VPS (обязательное поле)

        Порт SSH (по умолчанию 22)

        Имя пользователя (root или другой)

    Улучшенная SSH конфигурация для локальной сети:

        Добавлены параметры TCPKeepAlive, ControlMaster, ControlPersist

        Увеличены таймауты соединения

        Настроены буферы и компрессия

        Добавлены современные шифры для стабильности

    Настройка SSH демона:

        Автоматическая настройка /etc/ssh/sshd_config

        Включение ClientAliveInterval и TCPKeepAlive

        Разрешение подключения по паролю (для локальной сети)

        Автоматический перезапуск SSH демона

    Улучшенная обработка ошибок:

        Проверка доступности порта VPS

        Несколько методов копирования SSH ключа

        Возможность продолжить установку даже если подключение не удалось

    Сохраняются настройки VPS в /etc/ssh_tunnel/vps_settings.conf
2025-12-22 15:23:04 +00:00
2025-12-22 15:23:04 +00:00
2025-12-22 14:45:34 +00:00

Автономный менеджер SSH туннелей (VPS SSH Tunnel Manager)

Описание

Автономный менеджер SSH туннелей — это комплексное решение для создания и управления безопасными обратными SSH подключениями к вашему VPS. Система предназначена для работы на мини-ПК или серверах без постоянного мониторинга, с полной автономностью и самовосстановлением при обрывах соединения.

Ключевые возможности

  • Полная автономность: автоматический запуск и поддержка туннелей после перезагрузки
  • Самовосстановление: автоматическое переподключение при обрывах соединения
  • Поддержка различных туннелей:
    • Прямые туннели (проброс локальных портов на VPS)
    • Обратные туннели (доступ к ресурсам за VPS)
    • Двунаправленная маршрутизация
  • Автоматическая настройка SSH: генерация ключей, настройка конфигурации
  • Поддержка разных дистрибутивов: Debian, Ubuntu, CentOS, RHEL, Fedora
  • Цветное меню управления: интуитивный интерфейс с визуализацией статуса
  • Systemd интеграция: службы и таймеры для мониторинга

Быстрый старт

Установка одной командой

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. Запустите установочный скрипт:

    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. Настройте туннели: После установки запустите менеджер туннелей:

    tunnel-manager
    

Управление туннелями

Основные команды

# Запуск менеджера с цветным меню
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. Настраивает автоматический мониторинг и восстановление

Для подключения используйте:

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, так и обычных пользователей

Ручная настройка ключей

Если автоматическое копирование ключа не удалось, выполните:

# Показать публичный ключ
cat /root/.ssh/id_rsa.pub

# Скопируйте вывод и добавьте в ~/.ssh/authorized_keys на VPS

Устранение неполадок

Проверка подключения

# Проверка доступности порта VPS
timeout 5 nc -z vps_ip 22

# Тестовое SSH подключение
ssh -p порт пользователь@vps_ip "echo 'Тест успешен'"

Просмотр логов

# Логи мониторинга
tail -f /var/log/ssh_tunnel/monitor.log

# Системные логи служб
journalctl -u ssh-tunnel-* --since "1 hour ago"

# Логи конкретного туннеля
journalctl -u ssh-tunnel-имя_туннеля -f

Перезапуск служб

# Перезапуск монитора
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                  # Эта документация
└── (дополнительные скрипты)   # Утилиты управления

Сборка и тестирование

Для тестирования установки:

# В тестовой среде (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-средах.

Description
No description provided
Readme 247 KiB
Languages
Shell 100%