Суть вот в чем.
Есть набор правил ipfw, в котором используется kernel nat
Код: Выделить всё
proxy# ipfw show
00100 8 4088 allow ip from any to any via lo0
00110 8 4088 deny ip from any to 127.0.0.0/8
00120 0 0 deny ip from 127.0.0.0/8 to any
00130 58375 6395396 deny ip from any to any not verrevpath in
00150 0 0 deny ip from any to 10.0.0.0/8 via em0
00200 0 0 deny ip from any to 172.16.0.0/12 via em0
00400 0 0 deny ip from any to 192.168.0.0/16 via em0
00500 0 0 deny ip from any to 0.0.0.0/8 via em0
00600 0 0 deny ip from any to 169.254.0.0/16 via em0
00700 0 0 deny ip from any to 192.0.2.0/24 via em0
00800 4048 113344 deny ip from any to 224.0.0.0/4 via em0
00900 0 0 deny ip from any to 240.0.0.0/4 via em0
01000 3424 165629 fwd 192.168.14.56,2121 tcp from 192.168.14.0/24 to not me dst-port 20,21 in via
01050 25 1542 nat 1 tcp from any to any dst-port 3389 via tun0
01050 0 0 allow tcp from any to 192.168.14.1 dst-port 3399 via xl0
01100 1019418 530603564 nat 2 ip4 from any to any via tun0
01200 0 0 deny ip from 10.0.0.0/8 to any via em0
01300 0 0 deny ip from 172.16.0.0/12 to any via em0
01400 0 0 deny ip from 192.168.0.0/16 to any via em0
01500 0 0 deny ip from 0.0.0.0/8 to any via em0
01600 0 0 deny ip from 169.254.0.0/16 to any via em0
01700 0 0 deny ip from 192.0.2.0/24 to any via em0
01800 0 0 deny ip from 224.0.0.0/4 to any via em0
01900 0 0 deny ip from 240.0.0.0/4 to any via em0
01950 0 0 check-state
02500 69309 19335140 allow ip from 192.168.14.0/24 to me dst-port 22,2121 in via xl0 keep-state
02600 3661 206593 allow ip from any 21 to 192.168.14.0/24 out via xl0 keep-state
02650 38 2142 allow ip from any to 192.168.14.0/24 dst-port 3389 out via xl0 keep-state
02700 21647959 1426105514 allow ip from 192.168.14.0/24 to me dst-port 80,81,3128 in via xl0 keep-state
02800 204629 103297671 allow ip from 192.168.14.0/24 to me dst-port 137-139,445 in via xl0 keep-state
02900 12695 1753860 allow ip from 192.168.14.0/24 to 192.168.14.255 dst-port 137-139,445 in via xl0
03000 2286 326779 allow ip from 192.168.14.0/24 to any dst-port 53 in via xl0 keep-state
03100 130176 96742445 allow ip from 192.168.14.0/24 to any dst-port 110,995,25,465 in via xl0 keep-st
03300 225999 60603009 allow ip from 192.168.14.0/24 to me dst-port 40000-65534 in via xl0
03400 8036 2353503 allow ip from me to any out xmit xl0
03500 30 1338 allow icmp from any to any in recv xl0
03900 17532 2010068 deny log logamount 10000 ip from any to any
65535 0 0 deny ip from any to any
НО я не могу понять почему? Ведь, как бы, я не разрешал соединения через tun0 или внешний интерфейс (может есть какое-то неявное разрешение). Помогите разобраться с этим, я подозреваю что это все от kernel nat. Объясните как правила идут через него, так же как и через natd или по-другому. Система FreeBSD 7.0, стоят Squid, Samba, Frox, ProFTPd.