Роутер под FreeBSD с двумя интерфейсами, один внутрь(xl0), другой наружу(fxp0). Ещё там ipfw+natd и qmail. Ещё много чего, но это к делу не относится, потому что пока работает ;-)
Беда в том что почта, отправленая моим qmail-ом не доходит до некоторых адресатов, в частности на mail.ru В /var/log/qmail/qmail-send/current вырастают строчки вида
delivery 40: deferral: Sorry,I_wasn't_able_to_establish_an_SMTP_connection._(#4.4.1)/
$telnet smtp.mail.ru 25 говорит что Operation timed out
Ето мой фаирвольный скрипт
#!/bin/sh
/sbin/ipfw -q flush
/sbin/ipfw add check-state
#make system usable
/sbin/ipfw add allow all from any to any via lo0
#counting incoming traffic
/sbin/ipfw add count all from any to any in via fxp0
#denying unneeded icmp's
/sbin/ipfw add reject icmp from any to any in icmptypes 5,9,13,14,15,16,17
/sbin/ipfw add allow icmp from any to any
#Sasser&Netbios > /dev/ass ;-)
/sbin/ipfw add reject tcp from any to any 137-139,1022,1023
/sbin/ipfw add reject tcp from any 137-139,1022,1023 to any
/sbin/ipfw add reject udp from any to any 137-139,1022,1023
/sbin/ipfw add reject udp from any 137-139,1022,1023 to any
#good guys&girls from outside are welcome!
/sbin/ipfw add allow tcp from not 192.168.0.0/24 to me 20,21,25,80,110 in via fxp0
/sbin/ipfw add allow udp from not 192.168.0.0/24 to me 25,110 in via fxp0
#All other > /dev/ass too
/sbin/ipfw add reject all from any to me in via fxp0
#local network
/sbin/ipfw add allow tcp from 192.168.0.0/24 to me 20,21,22,25,53,80,110,3128 in via xl0 keep-state
/sbin/ipfw add allow udp from 192.168.0.0/24 to me 25,53,110 in via xl0
/sbin/ipfw add allow all from me to 192.168.0.0/24 out via xl0 keep-state
#Squid & frox
/sbin/ipfw add fwd 192.168.0.254,3128 tcp from 192.168.0.0/24 to any 80,443,563
/sbin/ipfw add fwd 192.168.0.254,2121 tcp from 192.168.0.0/24 to any 20,21
#NAT
/sbin/ipfw add divert natd all from any to any via fxp0
/sbin/ipfw add allow tcp from any to any 25,110,119,143,5190
/sbin/ipfw add allow udp from any to any 25,110,119,143,5190
/sbin/ipfw add allow tcp from any 25,110,119,143,5190 to any
/sbin/ipfw add allow udp from any 25,110,119,143,5190 to any
/sbin/ipfw add allow all from me to any keep-state
65535 deny ip from any to any
При таком состоянии фаирвола всё кроме почты работает, ньюсы, ася, фтп, хттп и т.д. но почта отправляется не всем. Если после диверта сказать allow all from any to any, почта начинает ходить везде, в том числе и на mail.ru т.е. я не открыл какой-то нужный порт. Какой?