Создание службы SSH-туннеля на OpenWRT с Dropbear
Предварительно устанавливаем SSH-ключи для аутентификации
ssh-keygen -t rsa -b 4096 # Генерация SSH-ключейкопирование ключа вручную
На OpenWRT:cat ~/.ssh/id_rsa.pub Скопируйте вывод.
На VPS:mkdir -p ~/.ssh echo "ВАШ_КЛЮЧ" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Проверьте настройки SSH на сервере VPS
На сервере (VPS) проверьте конфигурацию SSH:
nano /etc/ssh/sshd_configУбедитесь, что следующие параметры установлены правильно:
GatewayPorts yesЕсли строки отсутствуют, добавьте их.
1. Проверьте, установлен ли Dropbear
Убедитесь, что Dropbear установлен и работает (по умолчанию он включён в OpenWRT):
opkg update
opkg install dropbear2. Создайте конфигурацию SSH
Dropbear использует стандартные параметры SSH, но поддерживает только файл настроек .ssh/config. Вам нужно будет создать конфигурационный файл для туннеля:
touch /root/.ssh/config
chmod 600 /root/.ssh/configДобавьте настройки туннеля в файл:
Host tunneling
HostName <IP_VPS>
User <Пользователь_VPS>
Port 22
IdentityFile /root/.ssh/id_rsa
RemoteForward 8080 localhost:80
RemoteForward 2222 localhost:22
ServerAliveInterval 30
ServerAliveCountMax 3- Вместо localhost лучше указать IP адрес LAN интерфейса
- Таким образом Вы можете добавить любые адреса в локальной сети, переадресация будет работать.
3. Создайте init-скрипт
Создайте файл /etc/init.d/ssh-tunnel:
touch /etc/init.d/ssh-tunnel
chmod +x /etc/init.d/ssh-tunnelДобавьте следующий код в файл:
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
PROG="/usr/bin/ssh"
start_service() {
procd_open_instance
procd_set_param command $PROG -NT -F /root/.ssh/config tunneling
procd_set_param respawn 10 5 0
procd_close_instance
}4. Активируйте службу
- Включите службу в автозагрузку:
/etc/init.d/ssh-tunnel enable2. Запустите службу:
/etc/init.d/ssh-tunnel startКак это работает
- Служба автоматически запускает SSH-туннель при старте роутера.
- Используется конфигурация Dropbear из файла
/root/.ssh/config. - Служба будет автоматически перезапускаться при сбоях благодаря параметру
respawn
