снова iptables, nat

Linux, безопасность, сети и все что с этим связано
offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

снова iptables, nat

Сообщение offmind »

Есть задача открыть доступ удаленному программисту доступ к www-серверу, расположенному в локальной сети, из интернета. Соответственно через linux-машину(аки шлюз), одним интерфейсом смотрящую в инет через eth0(xxx.21.51.175), а другим eth1(192.168.5.210) в локалку. www-сервер крутиться на машине 192.168.5.109 в локальной сети.
Вкурил я полгугла на предмет решения, в том числе и данный форум, сделал так:

Код: Выделить всё

iptables -t nat -A PREROUTING -p tcp --dst xxx.21.51.175 --dport 8003 -j DNAT --to-destination 192.168.5.109
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.5.109 --dport 80 -j SNAT --to-source 192.168.5.210
В итоге получил:

Код: Выделить всё

[root@mail /]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            ххх.21.51.175       tcp dpt:8003 to:192.168.5.109:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.5.109        0.0.0.0/0           to:ххх.21.51.175
SNAT       all  --  192.168.5.108        0.0.0.0/0           to:ххх.21.51.175
SNAT       all  --  192.168.5.5          0.0.0.0/0           to:ххх.21.51.175
SNAT       all  --  192.168.5.61         0.0.0.0/0           to:ххх.21.51.175
SNAT       tcp  --  0.0.0.0/0            192.168.5.109       tcp dpt:80 to:192.168.5.210

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Со своей машины в этой локальной сети пробую браузером достучаться до ххх.21.51.175:8003, ничего не приходит. Ethereal показывает что пакеты уходят, но ответа нет.
tcpdump -eth0 tcp port 8003 на шлюзе(xxx.21.51.175) показывает

Код: Выделить всё

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
17:37:51.130360 IP xxx.customers.xxx.net.51116 > xxx.21.51.175.8003: S 1924051113:1924051113(0) win 5840 <mss 1460,sackOK,timestamp 132528063 0,nop,wscale 0>
17:38:00.135758 IP xxx.customers.xxx.net.51150 > xxx.21.51.175..8003: S 1962743951:1962743951(0) win 5840 <mss 1460,sackOK,timestamp 132528963 0,nop,wscale 0>
17:38:03.131435 IP xxx.customers.xxx..net.51116 > xxx.21.51.175..8003: S 1924051113:1924051113(0) win 5840 <mss 1460,sackOK,timestamp 132529263 0,nop,wscale 0>
17:38:03.131474 IP xxx.customers.xxx..net.51150 > xxx.21.51.175..8003: S 1962743951:1962743951(0) win 5840 <mss 1460,sackOK,timestamp 132529263 0,nop,wscale 0>
что делать и как быть?
Последний раз редактировалось offmind 07 янв 2009, 16:56, всего редактировалось 1 раз.

Аватара пользователя
IceMan
Неотъемлемая часть форума
Сообщения: 377
Зарегистрирован: 22 июл 2007, 10:12
Откуда: Минск
Контактная информация:

Re: снова iptables, nat

Сообщение IceMan »

пробросить порт через tcppm из набора 3proxy

Код: Выделить всё

tcppm -d -i217.21.51.175 8003 192.168.5.109 80

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Re: снова iptables, nat

Сообщение Llama »

offmind писал(а):

Код: Выделить всё

iptables -t nat -A PREROUTING -p tcp --dst xxx.21.51.175 --dport 8003 -j DNAT --to-destination 192.168.5.109
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.5.109 --dport 80 -j SNAT --to-source 192.168.5.210
Второе правило просто не нужно - оно само догадается.
offmind писал(а): В итоге получил:

Код: Выделить всё

[root@mail /]# iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            ххх.21.51.175       tcp dpt:8003 to:192.168.5.109:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.5.109        0.0.0.0/0           to:ххх.21.51.175
SNAT       all  --  192.168.5.108        0.0.0.0/0           to:ххх.21.51.175
SNAT       all  --  192.168.5.5          0.0.0.0/0           to:ххх.21.51.175
SNAT       all  --  192.168.5.61         0.0.0.0/0           to:ххх.21.51.175
SNAT       tcp  --  0.0.0.0/0            192.168.5.109       tcp dpt:80 to:192.168.5.210

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Картинка не соответсвует упомянутым выше командам. В таблице filter вообще что?
Опыт растет прямо пропорционально выведенному из строя оборудованию

offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

Re: снова iptables, nat

Сообщение offmind »

Вообще в filter много всего
http://offmind.at.tut.by/iptables.txt
просто я сменил предыдущего админа, приходиться не с нуля делать.

Попробывал еще на другом шлюзе где стоит ipchains сделать так:

Код: Выделить всё

ipchains -A input -p tcp -d xxx.21.51.176 --dport 999 -j ACCEPT -y
ipchains -A forward -p tcp -s 0/0 -d 192.168.5.109 --dport 80 --sport 999 -j MASQ
ipchains -A output -p tcp -d 192.168.5.109 --dport 80 --sport 999 -j ACCEPT
тож не работает, причем оба шлюза в ответ на SYN пакет выдают RST,ACK

Аватара пользователя
phaoost
Неотъемлемая часть форума
Сообщения: 289
Зарегистрирован: 12 янв 2005, 01:22
Откуда: Minsk
Контактная информация:

Re: снова iptables, nat

Сообщение phaoost »

offmind, покажите лучше вывод iptables-save
cheers,
phaoost.

offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

Re: снова iptables, nat

Сообщение offmind »

Вывод iptables-save:
http://offmind.at.tut.by/iptables.save
А по поводу tcppm, ругается что я не прочитал copying файл, а в исходниках его нет

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Re: снова iptables, nat

Сообщение Llama »

offmind, гм, а вы функциональность DNAT _снаружи_ проверяли?
Опыт растет прямо пропорционально выведенному из строя оборудованию

offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

Re: снова iptables, nat

Сообщение offmind »

Проверял и извне. Со своего компьютера в локальной сети и из дома.

:D по tcppm получилось сделать по 80 порту маппинг, спасибо. Вот бы еще знатоки 3proxy подсказали как аналогично ftp мапить и все это дело по паролю пустить.

offmind
Заглянувший
Сообщения: 18
Зарегистрирован: 08 янв 2008, 23:52
Откуда: Минск
Контактная информация:

Re: снова iptables, nat

Сообщение offmind »

если кому интересно проблема решилась так:
1.проброс порта 80 локальной машины в интернет:
./tcppm -d -llog.txt -ixxx.21.51.174 866 192.168.5.109 80
2.прозрачный ftp-proxy с поддержкой passive:
./ftppr -d -lftplog.txt -ixxx.21.51.174 -e192.168.5.101 -h192.168.5.109
где, ххх.21.51.174 - внешний адрес машины, выполняющей функции шлюза,
192.168.5.101 - адрес шлюза в локальной сети,
192.168.5.109 - адрес web-сервер в локальной сети.
Причем на самом ftp-сервере включена опция MasqeuradeAddress xxx.21.51.174, а на firewall шлюза открыты порты 21,20

Аватара пользователя
angor
Интересующийся
Сообщения: 40
Зарегистрирован: 22 сен 2007, 12:08
Откуда: Minsk
Контактная информация:

Re: снова iptables, nat

Сообщение angor »

Проброс порта 2389 на RDP клиента:

Код: Выделить всё

$IPTABLES -t nat -A PREROUTING -p tcp --dport 2389 -j DNAT --to-destination 192.168.1.6:3389
$IPTABLES -t nat -A POSTROUTING -p tcp --dst 192.168.1.6 --dport 3389 -j SNAT --to-source 192.168.1.2
1.2 - шлюз, 1.6 - клиент.
Меняем 3389 на 80, и будет проброс на web-сервер. Простое и эффективное решение, без лишнего софта.
p.s. вторая команда нужна в том случае, если 1.2 не будет дефолтным шлюзом для 1.6
p.p.s. можно для первой команды добавить -i $WAN_IF

Ответить