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

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


wiki:iptables:tun0_to_tun2

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
wiki:iptables:tun0_to_tun2 [2025/04/03 15:10] – [Проброс трафика с tun0 на tun2] Dimanwiki:iptables:tun0_to_tun2 [2025/04/03 18:57] (текущий) 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>
  
-Устанавливаем программы для работы туннеля 
  
-<code bash> 
  
-apt update +===== Создание туннеля ssh =====
-apt install uml-utilities +
- +
- +
-</code>+
  
-==== Создание туннеля ssh ==== +Для создания туннеля используется скрипт tun.sh. В скрипте реализован туннель директивой ssh -w. Можно использовать autossh, который умеет сам контроллировать трафик и состояние туннеля.
- +
-Для создания туннеля используется скрипт sh.+
 <code bash> <code bash>
 #!/bin/sh #!/bin/sh
Строка 51: Строка 44:
 </code> </code>
  
-==== Проброс трафика с tun0 на tun2 ====+==== Проброс трафика с tun0 на tun8 и обратно ====
  
  
Строка 78: Строка 71:
  
 </code> </code>
 +
 +==== Маршрутизация трафика ====
  
 Добавляем таблицу маршрутизации для vpn Добавляем таблицу маршрутизации для vpn
Строка 136: Строка 131:
 </code> </code>
  
 +==== Настройки конфигурации туннеля ====
 +
 +Настройки сохраняем в файле **set.sh**
 +
 +<code bash>
 +#!/bin/bash
 +
 +HOST=192.168.2.180
 +HOST_PORT=22
 +
 +ETH_NAME='ens18'
 +TUN_OVPN=0                      # tun openvpn number here.
 +TUN_LOCAL=8                     # tun device number here.
 +TUN_REMOTE=8                    # tun device number there.
 +IP_LOCAL=172.30.8.2             # IP local for ssh tunnel
 +IP_REMOTE=172.30.8.1            # IP remote for ssh tunnel
 +IP_MASK=30                      # Subnet for ssh tunnel
 +NET_REMOTE=172.16.0.0/12        # Remote subnet for translate from (not used now)
 +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
 +   echo "fail ping" >> $LOG
 +        log 'fail ping'
 +        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>
wiki/iptables/tun0_to_tun2.1743682252.txt.gz · Последнее изменение: 2025/04/03 15:10 — Diman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki