#!/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при чем знаю точно что последнее правило работает. Помогите пожалуйста.
>#!/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 без всяких перенаправлений портов
to Kliver
не помогает
>to Kliver
>не помогает
Приводи все правила iptables. Какие политики стоят по умолчанию для всех цепочек?
А telnet 195.x.x.x 110 работает?
to KilverА telnet 195.x.x.x 110 работает?
Да работает.
Во врямя отладки все правила сброшены кругом ACCEPT
Да и вот это в скрипте присутствует
>iptables --flush
>iptables -t nat --flush
Переделал скрипт вот так#!/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 работают только из нета назат ответы не приходят. ЧТО ДЕЛАТЬ
#!/bin/bashecho "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
Вот так просто подменишь порты на своем сервере. И если я правильно понял твою задачу - будет тебе счастье.
нет не так "REDIRECT --to-ports 110" перенаправит на 110 порт брандмауэра а там у меня локальный почтовый сервер ответит а мне надо чтоб перенаправилось на 195.98.XXX.XXX:110 при чем я почти уверен что мой скрипт перенаправляет но назад в локалку на узел с которого пришел запрос ответы с почтового сервера 195.98.XXX.XXX не приходят что то там путается. А когда запрос с самого брандмауэра посылаю через 112 порт то все нормально соединение устанавливается
+ Тебе нужно SNAT тебе подменять адрес источника нужно.
>+ Тебе нужно SNAT тебе подменять адрес источника нужно.iptables -t nat -A POSTROUTING --dst 195.98.XXX.XXX -o ppp0 -j MASQUERADE
вот тут же подменяю. Что ему еще что то нужно?
Что все? Больше помочь мне не могут? Скажите хоть куда дальше копать?
>Что все? Больше помочь мне не могут? Скажите хоть куда дальше копать?
>А это написал?
echo "1" > /proc/sys/net/ipv4/ip_forward
У тебя нигде в скриптах не видно.
>А это написал?
>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