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

Исходное сообщение
"iptables pop3 траблы"

Отправлено Vladimir , 19-Сен-07 16:15 
нужно чтобы пользователи из локальной сети смогли получать почту напрямую по протоколу pop3, сделать NAT
Вот настройки iptables:

iptables -F
iptables -F -t nat
iptables -X icmp_packets
iptables -X tcp_packets
iptables -X udp_packets

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -N icmp_packets
iptables -A icmp_packets -p icmp -i ! ppp0 -m icmp --icmp-type 8 -j ACCEPT
iptables -A icmp_packets -p icmp -i ppp0 -m icmp --icmp-type 8 -j LOG --log-prefix "Ping: "
iptables -A icmp_packets -p icmp -i ppp0 -m icmp --icmp-type 8 -j DROP
iptables -A icmp_packets -p icmp -m icmp --icmp-type 3 -j ACCEPT
iptables -A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
iptables -A icmp_packets -p icmp -m icmp --icmp-type 12 -j ACCEPT
#iptables -A icmp_packets -p icmp -j LOG --log-prefix "icmp_packets:"
iptables -A icmp_packets -j DROP

iptables -N tcp_packets
iptables -A tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j LOG --log-prefix "New not syn:"
iptables -A tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP
iptables -A tcp_packets -p tcp -i lo -j ACCEPT
iptables -A tcp_packets -p tcp -s 192.168.0.0/16 -i ! ppp0 -j ACCEPT
iptables -A tcp_packets -p tcp -s 193.203.61.162/32 -i ppp0 -m multiport --dports 22,1723 -j ACCEPT
iptables -A tcp_packets -p tcp -s 213.135.0.0/16 -i ppp0 -m multiport --dports 22,1723 -j ACCEPT
iptables -A tcp_packets -p tcp -s ! 213.135.0.0/16 -i ppp0 --dport 22 -j LOG --log-prefix "SSH deny:"
iptables -A tcp_packets -p tcp -s ! 213.135.0.0/16 -i ppp0 --dport 22 -j DROP
iptables -A tcp_packets -p tcp -s ! 213.135.0.0/16 -i ppp0 --dport 1723 -j LOG --log-prefix "PPTP deny:"
iptables -A tcp_packets -p tcp -s ! 213.135.0.0/16 -i ppp0 --dport 1723 -j DROP
iptables -A tcp_packets -p tcp -s 81.19.66.20/32 --sport 110 -j ACCEPT
iptables -A tcp_packets -p tcp -j LOG --log-prefix "tcp_packets:"
iptables -A tcp_packets -j DROP

iptables -N udp_packets
iptables -A udp_packets -s 192.168.0.0/255.255.0.0 -p udp -m udp --sport 138 --dport 138 -j ACCEPT
iptables -A udp_packets -s 192.168.0.0/255.255.0.0 -p udp -m udp --sport 137 --dport 137 -j ACCEPT
iptables -A udp_packets -p udp -m multiport --dports 53,67 -j ACCEPT
iptables -A udp_packets -j DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp  -j tcp_packets
iptables -A INPUT -p icmp -j icmp_packets
iptables -A INPUT -p udp  -j udp_packets

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -p tcp -s 192.168.0.0/24 -m multiport --dports 25,110,3389,443,5190 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -d 192.168.0.0/16 -j ACCEPT
iptables -A FORWARD -j LOG --log-prefix "Forwarding: "
iptables -A FORWARD -j DROP

iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j SNAT --to-source x.x.x.x


С локальной машины (не сервера) делаем команду:
telnet pop3.rambler.ru 110
Вот лог:
===========================
+OK POP
USER user
+OK
PASS password
+OK
RETR 1
+OK 2435 bytes will follow
============================

И все соединение зависает напрочь. Я включил протоколирование iptables и у меня получается что следующий пакет от pop-сервера с содержимом письма попадает в цепочку INPUT а должен по идеи попасть в цепочку FORWARD. это подтверждается следующей строчкой:
localhost kernel: tcp_packets:IN=ppp0 OUT= MAC= SRC=81.19.66.20 DST=193.33.63.138 LEN=40 TOS=0x00 PREC=0x00 TTL=57 ID=15418 DF PROTO=TCP SPT=110 DPT=4594 WINDOW=33580 RES=0x00 ACK RST URGP=0

При этом как видно из настроек icq тоже использует NAT, но она работает новрмально.

Посоветуйте что делать? Как заставить нормально работать POP3 через NAT


Содержание

Сообщения в этом обсуждении
"iptables pop3 траблы"
Отправлено Kliver , 26-Сен-07 16:38 
>[оверквотинг удален]
>получается что следующий пакет от pop-сервера с содержимом письма попадает в
>цепочку INPUT а должен по идеи попасть в цепочку FORWARD. это
>подтверждается следующей строчкой:
>localhost kernel: tcp_packets:IN=ppp0 OUT= MAC= SRC=81.19.66.20 DST=193.33.63.138 LEN=40 TOS=0x00 PREC=0x00 TTL=57 ID=15418
>DF PROTO=TCP SPT=110 DPT=4594 WINDOW=33580 RES=0x00 ACK RST URGP=0
>
>При этом как видно из настроек icq тоже использует NAT, но она
>работает новрмально.
>
>Посоветуйте что делать? Как заставить нормально работать POP3 через NAT

iptables -A tcp_packets -p tcp -s 81.19.66.20/32 --sport 110 -j ACCEPT

Вот это мешает похоже. Оно лишнее


"iptables pop3 траблы"
Отправлено Ivan , 30-Июн-08 10:15 
>нужно чтобы пользователи из локальной сети смогли получать почту напрямую по протоколу
>pop3, сделать NAT
>...
>При этом как видно из настроек icq тоже использует NAT, но она
>работает новрмально.
>
>Посоветуйте что делать? Как заставить нормально работать POP3 через NAT

У меня была проблема точно с такими же проявлениями, помогло внимательное чтение раздела
TCPMSS из man iptables, а именно вставка правила:
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu


"iptables pop3 траблы"
Отправлено Andrey Mitrofanov , 30-Июн-08 21:51 
>iptables -N tcp_packets
>iptables -A tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state
>--state NEW -j LOG --log-prefix "New not syn:"
>iptables -A tcp_packets -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state
>--state NEW -j DROP

:-P https://www.opennet.ru/openforum/vsluhforumID3/41538.html#11

>[оверквотинг удален]
>+OK
>PASS password
>+OK
>RETR 1
>+OK 2435 bytes will follow
>============================
>
>И все соединение зависает напрочь. Я включил протоколирование iptables и у меня
>получается что следующий пакет от pop-сервера с содержимом письма попадает в
>цепочку INPUT а должен по идеи попасть в цепочку FORWARD. это

Как только данные идут - пакеты сыпятся не туда? Размер пакетов... ~проблемы с MTU?
Ответ #2 примерно про это, наверное.

>При этом как видно из настроек icq тоже использует NAT, но она
>работает новрмально.

icq, вероятно, "пролезает" в ма-а-аленьких пакетах... как и _отдельные_ клавиши в telnet.

google.ru
проблемы с MTU site:opennet.ru
ENTER

>Посоветуйте что делать? Как заставить нормально работать POP3 через NAT

Моё предположение (нет, твой скрипт не смотрел почти): посмотреть в сторону использования NEW и ESTABLISHED, например, тут--> https://www.opennet.ru/openforum/vsluhforumID1/79818.html#6