URL: https://ssl.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 2647
[ Назад ]

Исходное сообщение
"Помогите с перенаправлением портов в iptables"

Отправлено BobSalmon , 28-Мрт-06 16:33 
#!/bin/sh
#
iptables --flush
iptables -t nat --flush
#
#
#
# pop3
#
iptables -t nat -A PREROUTING -p tcp --dport 112 -j DNAT --to-destination 195.98.yyy.yyy:110
#
iptables -A FORWARD --dst 195.98.yyy.yyy -j ACCEPT
#
# smtp
#
iptables -t nat -A PREROUTING -p tcp --dport 27 -j DNAT --to-destination  195.98.yyy.yyy:25
#
iptables -A FORWARD --dst 195.98.yyy.yyy -j ACCEPT
#
#
#
#
#
iptables -t nat -A POSTROUTING --dst 195.98.yyy.yyy -o ppp0 -j MASQUERADE

С помощью этого скрипта пытаюсь настроить брандмауэр так чтоб POP3 запросы на порт 112 и SMTP запросы на порт 27 из локальной сети перенаправлялись в сеть на соответствующий POP3\SMTP сервер прова но моя машина ведет себя так как будто никаких правил и не задавалось а точнее вот так

telnet 192.168.0.101 112
Trying 192.168.0.101...
telnet: connect to address 192.168.0.101: Connection refused

при чем знаю точно что последнее правило работает. Помогите пожалуйста.


Содержание

Сообщения в этом обсуждении
"Помогите с перенаправлением портов в iptables"
Отправлено Kliver , 28-Мрт-06 17:57 
>#!/bin/sh
>#
>iptables --flush
>iptables -t nat --flush
>#
>#
>#
># pop3
>#
>iptables -t nat -A PREROUTING -p tcp --dport 112 -j DNAT --to-destination
>195.98.yyy.yyy:110
>#
>iptables -A FORWARD --dst 195.98.yyy.yyy -j ACCEPT
>#
># smtp
>#
>iptables -t nat -A PREROUTING -p tcp --dport 27 -j DNAT --to-destination
> 195.98.yyy.yyy:25
>#
>iptables -A FORWARD --dst 195.98.yyy.yyy -j ACCEPT
>#
>#
>#
>#
>#
>iptables -t nat -A POSTROUTING --dst 195.98.yyy.yyy -o ppp0 -j MASQUERADE
>
>С помощью этого скрипта пытаюсь настроить брандмауэр так чтоб POP3 запросы на
>порт 112 и SMTP запросы на порт 27 из локальной сети
>перенаправлялись в сеть на соответствующий POP3\SMTP сервер прова но моя машина
>ведет себя так как будто никаких правил и не задавалось а
>точнее вот так
>
>telnet 192.168.0.101 112
>Trying 192.168.0.101...
>telnet: connect to address 192.168.0.101: Connection refused
>
>при чем знаю точно что последнее правило работает. Помогите пожалуйста.

Не хватает
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT

А вообще
iptables -t nat -A PREROUTING -p tcp --dport 112 -j DNAT --to-destination 195.98.yyy.yyy:110
ИМХО, лишнее. При таких настройках можно напрямую подключаться к 195.98.x.x:110 без всяких перенаправлений портов


"Помогите с перенаправлением портов в iptables"
Отправлено BobSalmon , 29-Мрт-06 12:29 
to Kliver
не помогает

"Помогите с перенаправлением портов в iptables"
Отправлено Kliver , 29-Мрт-06 13:01 
>to Kliver
>не помогает
Приводи все правила iptables. Какие политики стоят по умолчанию для всех цепочек?
А telnet 195.x.x.x 110 работает?



"Помогите с перенаправлением портов в iptables"
Отправлено BobSalmon , 30-Мрт-06 08:49 
to Kilver

А telnet 195.x.x.x 110 работает?

Да работает.

Во врямя отладки все правила сброшены кругом ACCEPT

Да и вот это в скрипте присутствует

>iptables --flush
>iptables -t nat --flush


"Помогите с перенаправлением портов в iptables"
Отправлено BobSalmon , 07-Апр-06 13:43 
Переделал скрипт вот так

#!/bin/sh
#
iptables --flush
iptables -t nat --flush
#
#
# pop3
#
iptables -t nat -A OUTPUT -p tcp --dport 112 -j DNAT --to-destination 195.98.XXX.XXX:110
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 112 -j DNAT --to-destination 195.98.XXX.XXX:110
#
iptables -A FORWARD --dst 195.98.XXX.XXX -j ACCEPT
#
#
# smtp
#
iptables -t nat -A OUTPUT -p tcp --dport 27 -j DNAT --to-destination  195.98.XXX.XXX:25
iptables -t nat -A PREROUTING -p tcp --dport 27 -j DNAT --to-destination  195.98.XXX.XXX:25
#
#iptables -A FORWARD --dst 195.98.XXX.XXX -j ACCEPT
#
#
#
#
iptables -t nat -A POSTROUTING --dst 195.98.XXX.XXX -o ppp0 -j MASQUERADE

теперь с самого брандмауэра перенаправление работает а из локалки нет при чем когда на локальный адрес перенаправляю то начинает работать выходит правила PREROUTING работают только из нета назат ответы не приходят. ЧТО ДЕЛАТЬ


"Помогите с перенаправлением портов в iptables"
Отправлено CompStar , 09-Апр-06 01:36 
#!/bin/bash

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -t nat -F

#iptables -t nat -A PREROUTING -p tcp --dport 112 -j REDIRECT --to-ports 110
#iptables -t nat -A PREROUTING -p tcp --dport 27 -j REDIRECT --to-ports 25


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


"Помогите с перенаправлением портов в iptables"
Отправлено BobSalmon , 09-Апр-06 14:23 
нет не так "REDIRECT --to-ports 110" перенаправит на 110 порт брандмауэра а там у меня локальный почтовый сервер ответит а мне надо чтоб перенаправилось на  195.98.XXX.XXX:110 при чем я почти уверен что мой скрипт перенаправляет но назад в локалку на узел с которого пришел запрос ответы с почтового сервера  195.98.XXX.XXX не приходят что то там путается. А когда запрос с самого брандмауэра посылаю через 112 порт то все нормально соединение устанавливается

"Помогите с перенаправлением портов в iptables"
Отправлено CompStar , 09-Апр-06 15:16 
+ Тебе нужно SNAT тебе подменять адрес источника нужно.



"Помогите с перенаправлением портов в iptables"
Отправлено BobSalmon , 09-Апр-06 17:31 
>+ Тебе нужно SNAT тебе подменять адрес источника нужно.

iptables -t nat -A POSTROUTING --dst 195.98.XXX.XXX -o ppp0 -j MASQUERADE
вот тут же подменяю. Что ему еще что то нужно?


"Помогите с перенаправлением портов в iptables"
Отправлено BobSalmon , 11-Апр-06 10:46 
Что все? Больше помочь мне не могут? Скажите хоть куда дальше копать?

"Помогите с перенаправлением портов в iptables"
Отправлено Kliver , 12-Апр-06 12:47 
>Что все? Больше помочь мне не могут? Скажите хоть куда дальше копать?
>

А это написал?
echo "1" > /proc/sys/net/ipv4/ip_forward
У тебя нигде в скриптах не видно.


"Помогите с перенаправлением портов в iptables"
Отправлено BobSalmon , 13-Апр-06 08:28 
>А это написал?
>echo "1" > /proc/sys/net/ipv4/ip_forward
>У тебя нигде в скриптах не видно.

Спасибо Kliver как раз этого и не хватало итог выглядит так;

#!/bin/sh
#
iptables --flush
iptables -t nat --flush
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
#
# pop3
#
iptables -t nat -A PREROUTING -p tcp --dport 112 -j DNAT --to-destination 195.98.xxx.xxx:110
iptables -t nat -A OUTPUT -p tcp --dport 112 -j DNAT --to-destination 195.98.xxx.xxx:110
#
iptables -A FORWARD --dst 195.98.xxx.xxx -j ACCEPT
#
#
# smtp
#
iptables -t nat -A PREROUTING -p tcp --dport 27 -j DNAT --to-destination  195.98.xxx.xxx:25
iptables -t nat -A OUTPUT -p tcp --dport 27 -j DNAT --to-destination  195.98.64.xxx.xxx
#
iptables -A FORWARD --dst 195.98.xxx.xxx -j ACCEPT
#
#
#
iptables -t nat -A POSTROUTING -o ppp0 --dst 195.98.xxx.xxx -j MASQUERADE