====== SSH: Устойчивый тоннель ======
Иногда бывает необходимо сделать тоннель подручными средствами. OpenVPN, Wireguard и прочее это все, конечно, здорово, но для некоторых случаев избыточно.
Есть возможность быстренько настроить устойчивый тоннель средствами SSH и спрятать в нем трафик или сделать доступ к определенному сервису.
Пример: заблокирован OpenVPN до определенного сервера, нужно пробросить локальный порт чтобы было подключение через ssh-тоннель.
Что и где:
* remote-user - наш пользователь, под которым будет осуществляться подключение. Авторизация по ключам, их необходимо создать заранее
* LOCAL-IP - локальный IP, на который будет приниматься подключение
* REMOTE-IP - удаленный сервер с OpenVPN
Ставим autossh:
sudo apt install autossh
Настраиваем подключение в файле /home/remote-user/.ssh/config:
Host REMOTE-IP
HostName REMOTE-IP
User remote-user
IdentityFile ~/.ssh/id_remote-user
IdentitiesOnly yes
Создаем файл сервиса /etc/systemd/system/ssh-tunnel.service со следующим содержимым:
[Unit]
Description=SSH Tunnel
After=network.target
[Service]
User=remote-user
ExecStart=/usr/bin/autossh -o ServerAliveInterval=30 -o "ServerAliveCountMax 3" -M 44444 -o ExitOnForwardFailure=yes -gnNT -L LOCAL-IP:1194:localhost:1194 remote-user@REMOTE-IP
RestartSec=15
Restart=always
KillMode=mixed
[Install]
WantedBy=multi-user.target
Запускаем:
systemctl daemon-reload
systemctl start ssh-tunnel.service
{{tag>ssh autossh tunnel тоннель}}