v2
Grok version
This commit is contained in:
231
README.md
231
README.md
@@ -1,25 +1,22 @@
|
||||
# Автономный менеджер SSH туннелей (VPS SSH Tunnel Manager)
|
||||
Автономный менеджер SSH туннелей (VPS SSH Tunnel Manager)
|
||||
|
||||
## Описание
|
||||
|
||||
Автономный менеджер SSH туннелей — это комплексное решение для создания и управления безопасными обратными SSH подключениями к вашему VPS. Система предназначена для работы на мини-ПК или серверах без постоянного мониторинга, с полной автономностью и самовосстановлением при обрывах соединения.
|
||||
|
||||
### Ключевые возможности
|
||||
## Ключевые возможности
|
||||
|
||||
- **Полная автономность**: автоматический запуск и поддержка туннелей после перезагрузки
|
||||
- **Самовосстановление**: автоматическое переподключение при обрывах соединения
|
||||
- **Поддержка различных туннелей**:
|
||||
- Прямые туннели (проброс локальных портов на VPS)
|
||||
- Обратные туннели (доступ к ресурсам за VPS)
|
||||
- Двунаправленная маршрутизация
|
||||
- **Автоматическая настройка SSH**: генерация ключей, настройка конфигурации
|
||||
- **Поддержка разных дистрибутивов**: Debian, Ubuntu, CentOS, RHEL, Fedora
|
||||
- **Цветное меню управления**: интуитивный интерфейс с визуализацией статуса
|
||||
- **Systemd интеграция**: службы и таймеры для мониторинга
|
||||
- Полная автономность: автоматический запуск и поддержка туннелей после перезагрузки
|
||||
- Самовосстановление: автоматическое переподключение при обрывах соединения
|
||||
- Поддержка обратных туннелей (доступ к локальным ресурсам с VPS)
|
||||
- Автоматическая настройка SSH: генерация ключей (ed25519), настройка конфигурации
|
||||
- Поддержка разных дистрибутивов: Debian, Ubuntu, CentOS, RHEL, Fedora
|
||||
- Простое меню управления через tunnel-manager
|
||||
- Systemd интеграция: службы и мониторинг
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### Установка одной командой
|
||||
Установка одной командой:
|
||||
|
||||
```bash
|
||||
sudo bash <(curl -s https://git.softuniq.eu/OpenDoor/vps_ssh_tunel/raw/branch/main/install_ssh_tunnel.sh)
|
||||
@@ -29,218 +26,74 @@ sudo bash <(curl -s https://git.softuniq.eu/OpenDoor/vps_ssh_tunel/raw/branch/ma
|
||||
|
||||
### Предварительные требования
|
||||
|
||||
- Сервер с ОС Linux (Debian/Ubuntu, CentOS/RHEL или совместимые)
|
||||
- Права суперпользователя (root/sudo)
|
||||
- Доступ к удаленному VPS с открытым SSH портом
|
||||
- Интернет-соединение для загрузки зависимостей
|
||||
- Linux ОС (Debian/Ubuntu, CentOS/RHEL или совместимые)
|
||||
- Права root
|
||||
- Доступ к VPS с SSH
|
||||
- Интернет для зависимостей
|
||||
|
||||
### Шаги установки
|
||||
### Шаги
|
||||
|
||||
1. Запустите скрипт:
|
||||
|
||||
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
|
||||
2. Введите данные VPS по подсказкам.
|
||||
|
||||
3. Управляйте туннелями:
|
||||
|
||||
3. **Настройте туннели**:
|
||||
После установки запустите менеджер туннелей:
|
||||
```bash
|
||||
tunnel-manager
|
||||
```
|
||||
|
||||
## Управление туннелями
|
||||
|
||||
### Основные команды
|
||||
|
||||
```bash
|
||||
# Запуск менеджера с цветным меню
|
||||
tunnel-manager
|
||||
|
||||
# Проверка статуса служб мониторинга
|
||||
systemctl status tunnel-monitor
|
||||
|
||||
# Просмотр логов в реальном времени
|
||||
journalctl -u tunnel-monitor -f
|
||||
|
||||
# Просмотр логов установки
|
||||
cat /tmp/ssh_tunnel_install.log
|
||||
tunnel-manager list # Список туннелей
|
||||
tunnel-manager create # Создать новый
|
||||
```
|
||||
|
||||
### Создание туннелей через меню
|
||||
## Пример проброса SSH
|
||||
|
||||
1. **Автономный туннель** (опция 1) — полная настройка с мониторингом
|
||||
2. **Быстрый SSH туннель** (опция 2) — проброс порта 22 для удаленного доступа
|
||||
3. **Обратный туннель** — доступ к ресурсам, находящимся за VPS
|
||||
После создания примера, подключитесь с VPS:
|
||||
|
||||
### Пример: проброс SSH доступа
|
||||
|
||||
При настройке быстрого туннеля система:
|
||||
1. Пробрасывает локальный порт 22 на удаленный порт VPS (например, 10022)
|
||||
2. Создает systemd службу для автономной работы
|
||||
3. Настраивает автоматический мониторинг и восстановление
|
||||
|
||||
Для подключения используйте:
|
||||
```bash
|
||||
ssh -p 10022 ваш_пользователь@vps_ip
|
||||
ssh -p 10022 user@localhost
|
||||
```
|
||||
|
||||
## Структура системы
|
||||
## Структура
|
||||
|
||||
### Установленные компоненты
|
||||
- /opt/ssh_tunnel_manager/ - Скрипты
|
||||
- /etc/ssh_tunnel/ - Конфиги
|
||||
- /var/log/ssh_tunnel/ - Логи
|
||||
- /root/.ssh/ - Ключи
|
||||
|
||||
| Путь | Назначение |
|
||||
|------|------------|
|
||||
| `/opt/ssh_tunnel_manager/` | Основные скрипты управления |
|
||||
| `/etc/ssh_tunnel/` | Конфигурационные файлы туннелей |
|
||||
| `/var/log/ssh_tunnel/` | Логи работы туннелей и мониторинга |
|
||||
| `/root/.ssh/` | SSH ключи и конфигурация |
|
||||
| `/etc/systemd/system/` | Systemd службы и таймеры |
|
||||
## Systemd службы
|
||||
|
||||
### Systemd службы
|
||||
|
||||
- **tunnel-monitor.service** — мониторинг и восстановление туннелей
|
||||
- **ssh-tunnel-*.service** — индивидуальные службы для каждого туннеля
|
||||
- **tunnel-check.timer** — периодическая проверка соединений
|
||||
- tunnel-monitor.service — мониторинг
|
||||
- ssh-tunnel-*.service — туннели
|
||||
|
||||
## Настройка SSH
|
||||
|
||||
### Автоматически настроенные параметры
|
||||
|
||||
Система автоматически настраивает:
|
||||
- Генерацию RSA ключа 4096 бит
|
||||
- Конфигурацию SSH клиента для автономной работы
|
||||
- Отключение строгой проверки хостов (для автоматического подключения)
|
||||
- Настройку keepalive для поддержания соединения
|
||||
- Поддержку как root, так и обычных пользователей
|
||||
|
||||
### Ручная настройка ключей
|
||||
|
||||
Если автоматическое копирование ключа не удалось, выполните:
|
||||
|
||||
```bash
|
||||
# Показать публичный ключ
|
||||
cat /root/.ssh/id_rsa.pub
|
||||
|
||||
# Скопируйте вывод и добавьте в ~/.ssh/authorized_keys на VPS
|
||||
```
|
||||
Сгенерирован ed25519 ключ, настроен keepalive.
|
||||
|
||||
## Устранение неполадок
|
||||
|
||||
### Проверка подключения
|
||||
|
||||
```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. Продолжает попытки подключения до успеха
|
||||
- Логи: /tmp/ssh_tunnel_install*.log
|
||||
- Status: systemctl status tunnel-monitor
|
||||
- Журнал: journalctl -u tunnel-monitor -f
|
||||
|
||||
## Безопасность
|
||||
|
||||
### Рекомендации
|
||||
|
||||
1. **Используйте нестандартные порты** для SSH на VPS
|
||||
2. **Настройте брандмауэр** на VPS для ограничения доступа
|
||||
3. **Регулярно обновляйте** SSH ключи
|
||||
4. **Используйте fail2ban** для защиты от bruteforce атак
|
||||
5. **Ограничьте пользователей** которые могут подключаться через туннель
|
||||
|
||||
### Конфигурация безопасности
|
||||
|
||||
Система автоматически настраивает:
|
||||
- SSH ключи без парольной фразы (для автономности)
|
||||
- Отключение strict host checking (только для доверенных VPS)
|
||||
- Настройку ServerAlive для детектирования обрывов
|
||||
- Используйте нестандартные порты
|
||||
- Настройте firewall
|
||||
- Обновляйте ключи
|
||||
|
||||
## Поддерживаемые дистрибутивы
|
||||
|
||||
- **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
|
||||
```
|
||||
Debian/Ubuntu, CentOS/RHEL, Fedora и подобные.
|
||||
|
||||
## Лицензия
|
||||
|
||||
Проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.
|
||||
|
||||
## Поддержка
|
||||
|
||||
Для получения помощи:
|
||||
1. Проверьте логи в `/var/log/ssh_tunnel/`
|
||||
2. Убедитесь в доступности VPS и корректности настроек
|
||||
3. Проверьте настройки брандмауэра на VPS
|
||||
4. Убедитесь, что SSH ключ добавлен в authorized_keys на VPS
|
||||
|
||||
---
|
||||
|
||||
**Примечание**: Эта система предназначена для использования в доверенных сетях и требует дополнительной настройки безопасности для использования в production-средах.
|
||||
MIT.
|
||||
Reference in New Issue
Block a user