LINUX.ORG.RU

Сообщения poleg

 

Обратный SSH туннель с последующим NAT

Существует локальная сеть за фаерволом провайдера Skylink/Tele2. В качестве шлюза для выхода в интернет используется роутер со встроенным модемом. Все остальные компьютеры объединены в сеть со стороны LAN роутера. Сеть 192.168.1.0/24

При подключении к интернет роутер получает серый адрес из диапазона 10.0.0.0/8

Таким образом снаружи достучаться в эту локальную сеть невозможно. Установил в эту локальную сеть микрокомпьютер Raspberry, который поднимает обратный SSH туннель на выделенный сервер с публичным белым адресом (пусть он будет a.b.c.d). В результате, заходя на a.b.c.d:port, я могу попасть на мой Raspberry в локальной сети. Воодушевленный первой микропобедой, я решил инициализировать несколько SSH туннелей с различными активными портами. После этого, обращаясь к a.b.c.d на соответсвующий порт я использую соответсвующий туннель. В данный момент все туннели смотрят непосредственно в Raspberry. Следующим шагом я хочу, чтобы на Raspberry пакеты для определенного порта перенаправлялись к соответствующему компьютеру из локальной сети. Эти компьютеры будут настроены на прослушку своих портов. Для решения переадресации пакетов пробую использовать iptables... Но похоже, что это просто так не выйдет. Как показывает TCPDUMP, запущенный на Raspberry, в интерфейсе присутствуют только пакеты для порта 22. Насколько я понимаю, интерфейс видит только шифрованный канал... При этом, если я обращусь к встроенному почтовому серверу по порту 25, то прекрасно к нему подключаюсь. Т.е. telnet a.b.c.d 25 работает на любом компьютере в интернете. При этом tcpdump на Raspberry не отображает пакетов с портом 25.

Видимо по этой же причине и не получается применить цепочки iptables.

Кто-нибудь решал подобные задачи? Или я что то не так понимаю...

 ,

poleg ()

NAT с одним сетевым интерфейсом

Необходимо решить следующую задачу... В сети 192.168.1.0/24 присутствуют 3 устройства: 192.168.1.1 - точка доступа с web интерфейсом для администрирования (порт 80), 192.168.1.20 - Windows XP, 192.168.1.160 - Raspberry PI с сетевым интерфейсом eth0.

Хочу, используя iptables на Raspberry, настроить проброс портов, чтобы при обращении на 192.168.1.160:80 пакеты уходили на 192.168.1.1:80. Т.е., открыв в браузере на windows xp адрес 192.168.1.160, я попал в web панель точки доступа. Напрямую, на 192.168.1.1, естественно web морда открывается.

вот мои правила:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1

iptables -t nat -A POSTROUTING -s 192.168.1.1 -j SNAT --to-source 192.168.1.20

Эти правила я настроил для случая, если запрос будет исходить от машины 192.168.1.20

Дополнительно я еще добавлял

iptables -A FORWARD -i eth0 -o eth0 -s 192.168.1.0/24 -j ACCEPT

iptables -A FORWARD -i eth0 -o eth0 -d 192.168.1.0/24 -j ACCEPT

и отдельно активировал echo 1 > /proc/sys/net/ipv4/ip_forward

По итогам этой настройки получить доступ с 192.168.1.20 на 192.168.1.1 через 192.168.1.160 не получилось

Следующим шагом я удалил цепочки FORWARD, посчитав, что если у меня сетевой интерфейс один, то они не нужны. Это также не поменяло общей картины (

Запрашиваю информацию с учетом счетчиков iptables -t nat -L -n -v --line-numbers

вот ответ:

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)

num pkts bytes target prot opt in out source destination

1 0 0 DNAT tcp  — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.1.1

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

num pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 3 packets, 213 bytes)

num pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 3 packets, 213 bytes)

num pkts bytes target prot opt in out source destination

1 0 0 SNAT all  — * * 192.168.1.1 0.0.0.0/0 to:192.168.1.20

Как видно, наши цепочки пока ничего не проходило. Делаю запрос из браузера на машине 192.168.1.20 по адресу 192.168.1.160 и после этого вновь запрашиваю информацию по цепочкам:

Chain PREROUTING (policy ACCEPT 2 packets, 458 bytes)

num pkts bytes target prot opt in out source destination

1 2 128 DNAT tcp  — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.1.1

Chain INPUT (policy ACCEPT 2 packets, 458 bytes)

num pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 43 packets, 3029 bytes)

num pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 45 packets, 3157 bytes)

num pkts bytes target prot opt in out source destination

1 0 0 SNAT all  — * * 192.168.1.1 0.0.0.0/0 to:192.168.1.20

На сколько я понимаю, через цепочку PREROUTING прошло 2 пакета, а вот обратно через POSTROUTING нет (

Подскажите, где ошибка? Может чего не хватает...

 , , ,

poleg ()

RSS подписка на новые темы