wiki:iptables:tun0_to_tun2
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
wiki:iptables:tun0_to_tun2 [2025/04/03 15:21] – [Настройки конфигурации туннеля] Diman | wiki:iptables:tun0_to_tun2 [2025/04/03 18:57] (текущий) – Diman | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Проброс TCP трафика через SSH ====== | ====== Проброс TCP трафика через SSH ====== | ||
- | ==== конфигурация ssh ==== | ||
- | В файл | + | |
+ | ===== Конфигурация ssh ===== | ||
+ | |||
+ | В файле | ||
<code bash> | <code bash> | ||
+ | nano etc/ | ||
X11Forwarding yes | X11Forwarding yes | ||
PermitTunnel yes | PermitTunnel yes | ||
- | |||
</ | </ | ||
- | Устанавливаем программы для работы туннеля | ||
- | <code bash> | ||
- | |||
- | apt update | ||
- | apt install uml-utilities | ||
- | |||
- | |||
- | </ | ||
- | ==== Создание туннеля ssh ==== | + | ===== Создание туннеля ssh ===== |
- | Для создания туннеля используется скрипт tun.sh. | + | Для создания туннеля используется скрипт tun.sh. В скрипте реализован туннель директивой ssh -w. Можно использовать autossh, который умеет сам контроллировать трафик и состояние туннеля. |
<code bash> | <code bash> | ||
#!/bin/sh | #!/bin/sh | ||
Строка 162: | Строка 155: | ||
==== Контроль и восстановление работоспособности туннеля ssh ==== | ==== Контроль и восстановление работоспособности туннеля ssh ==== | ||
+ | Для контроля работы туннеля создадим скрипт **test-tun.sh** Его следует добавить в крон после проверки его работоспособности | ||
+ | |||
+ | <code bash> | ||
+ | |||
+ | #!/bin/bash | ||
+ | |||
+ | . $(dirname " | ||
+ | |||
+ | LOG=/ | ||
+ | log(){ echo " | ||
+ | |||
+ | ping -c 3 $IP_REMOTE | ||
+ | if [ $? -eq 0 ]; then | ||
+ | log 'ping success' | ||
+ | else | ||
+ | echo "fail ping" >> $LOG | ||
+ | log 'fail ping' | ||
+ | pid=$(ps ax | grep $IP_REMOTE | head -n1 | awk ' | ||
+ | kill -9 $pid | ||
+ | log "kill old ssh tun $pid" | ||
+ | sleep 9 | ||
+ | log "start new ssh tun" | ||
+ | bash $(dirname " | ||
+ | sleep 2 | ||
+ | log "add routes to new ssh tunnel" | ||
+ | bash $(dirname " | ||
+ | fi | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== MASQUERADE на целевом сервере ==== | ||
+ | |||
+ | Важное замечание: | ||
+ | <code bash> | ||
+ | |||
+ | / | ||
+ | |||
+ | net.ipv4.ip_forward=1 | ||
+ | |||
+ | |||
+ | iptables -t nat -A POSTROUTING -j MASQUERADE | ||
+ | </ |
wiki/iptables/tun0_to_tun2.1743682901.txt.gz · Последнее изменение: 2025/04/03 15:21 — Diman