Инструменты пользователя

Инструменты сайта


wiki:iptables:tun0_to_tun2

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:iptables:tun0_to_tun2 [2025/04/03 12:16] – [Проброс трафика с tun0 на tun2] Dimanwiki:iptables:tun0_to_tun2 [2025/10/10 21:02] (текущий) – [Конфигурация ssh] Diman
Строка 1: Строка 1:
 ====== Проброс TCP трафика через SSH ====== ====== Проброс TCP трафика через SSH ======
  
-===== конфигурация ssh ===== 
  
-В файл  **/etc/ssh/sshd_config** добавляем директивы для тунеля+ 
 +===== Конфигурация ssh ===== 
 + 
 +В файле  **/etc/ssh/sshd_config** добавляем директивы для туннеля
  
 <code bash> <code bash>
  
 +nano /etc/ssh/sshd_config
  
 +# это было у меня по-умолчанию
 X11Forwarding yes X11Forwarding yes
 +# а вот это пришлось включить
 PermitTunnel yes PermitTunnel yes
- 
  
 </code> </code>
  
-Устанавливаем программы для работы туннеля+Перезапускаем **sshd**
  
 <code bash> <code bash>
  
-apt update +service sshd restart
-apt install uml-utilities +
- +
 </code> </code>
 +===== Создание туннеля ssh =====
  
-==== Создание туннеля ssh ==== +Для создания туннеля используется скрипт tun.sh. В скрипте реализован туннель директивой ssh -w. Можно использовать autossh, который умеет сам контроллировать трафик и состояние туннеля.
- +
-Для создания туннеля используется скрипт tun.sh.+
 <code bash> <code bash>
 #!/bin/sh #!/bin/sh
Строка 51: Строка 51:
 </code> </code>
  
-==== Проброс трафика с tun0 на tun2 ====+==== Проброс трафика с tun0 на tun8 и обратно ====
  
  
Строка 78: Строка 78:
  
 </code> </code>
 +
 +==== Маршрутизация трафика ====
  
 Добавляем таблицу маршрутизации для vpn Добавляем таблицу маршрутизации для vpn
Строка 136: Строка 138:
 </code> </code>
  
-Настройки сохраняем в файле set.sh+==== Настройки конфигурации туннеля ==== 
 + 
 +Настройки сохраняем в файле **set.sh**
  
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
  
-HOST=91.194.2.180+HOST=192.168.2.180
 HOST_PORT=22 HOST_PORT=22
  
Строка 154: Строка 158:
 NET_LOCAL=192.168.230.0/24      # openvpn subnet here. NET_LOCAL=192.168.230.0/24      # openvpn subnet here.
  
 +</code>
 +
 +==== Контроль и восстановление работоспособности туннеля ssh ====
 +
 +Для контроля работы туннеля создадим скрипт **test-tun.sh** Его следует добавить в крон после проверки его работоспособности 
 +
 +<code bash>
 +
 +#!/bin/bash
 +
 +. $(dirname "$0")/set.sh
 +
 +LOG=/var/log/route-test.log
 +log(){ echo "$(date '+%F %T') $@" >> $LOG; echo "$(date '+%F %T') $@";}
 +
 +ping -c 3 $IP_REMOTE
 +if [ $? -eq  0 ]; then
 +        log 'ping success'
 +else
 +        log 'ping fail'
 +        pid=$(ps ax | grep $IP_REMOTE | head -n1 | awk '{print $1}' | xargs)
 +        kill -9 $pid
 +        log "kill old ssh tun $pid"
 +        sleep 9
 +        log "start new ssh tun"
 +        bash $(dirname "$0")/tun.sh
 +        sleep 2
 +        log "add routes to new ssh tunnel"
 +        bash $(dirname "$0")/r.sh
 +fi
 +
 +</code>
 +
 +==== MASQUERADE на целевом сервере ====
 +
 +Важное замечание: на целевом сервере, где поднимается ssh туннель должно быть разрешен маскарадинг на интерфейсе tun, иначе работать туннель не будет
 +<code bash>
 +
 +/etc/sysctl.conf
 +
 +net.ipv4.ip_forward=1
 +
 +
 +iptables -t nat -A POSTROUTING -j MASQUERADE
 </code> </code>
wiki/iptables/tun0_to_tun2.1743682605.txt.gz · Последнее изменение: Diman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki