Xpoint
   [напомнить пароль]

Настройка простого шлюза на FreeBSD 7.1 с использованием NAT

Метки: [без меток]
2009-11-16 16:08:09 [обр] Евгений[досье]

Начальные условия следующие:
Есть две сети: 192.168.111.0/24, 192.168.5.0/24
192.168.111.0/24 - сеть провайдера назовем WAN
192.168.5.0/24 - внутренняя сеть назовем LAN

OS FreeBSD 7.1

Шлюз: 192.168.111.253
DNS: 192.168.111.253

ОС в базовой установке с минимальной сетевой конфигурацией.
Соответственно сетевые интерфейсы на нашем шлюзе rl0:192.168.5.1/24, rl1:192.168.111.250/24
/etc/resolv.conf
nameserver 192.168.111.253

/etc/rc.conf
ifconfig_rl0="inet 192.168.5.1 netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.111.250 netmask 255.255.255.0"
defaultroter="192.168.111.253"
hostname="test.example.com"
gateway_enable="YES"
natd_enable="YES"
natd_interface="rl1"
firewall_enable="YES"
firewall_type="OPEN"

.../KERNEL
options IPFIREWALL
options IPDIVERT

Необходимо что бы LAN мог выходить в WAN через NAT. И соответственно из WAN в LAN доступа не было.

ipfw -q flush

Получаем правила для ipfw
65535 allow ip from any to any

Проблема в том что когда ipfw_type="OPEN" трафик ходит и туда и обратно, то есть сквозняком, причем получаются такие правила:
50 divert 8668 ip4 from any to any via rl1
100 alow ip from any to any via lo0
200 deny ip from any to 127.0.0.0/8
300 deny ip from 127.0.0.1/8 to any
65000 allow ip from any to any
65535 allow ip from any to any

При таких правилах получается следующие записи в логах:
All login counts reset
65000 Accept ICMP:8.0 192.168.5.2 192.168.111.254 in via rl0
50 Divert 8668 ICMP:8.0 192.168.5.2 192.168.111.254 out via rl1
65000 Accept ICMP:8.0 192.168.111.250 192.168.111.254 out via rl1
50 Divert 8668 ICMP:0.0 192.168.111.254 192.168.111.250 in via rl1
65000 Accept ICMP:0.0 192.168.111.254 192.168.5.2 in via rl1
65000 Accept ICMP:0.0 192.168.111.254 192.168.5.2 out via rl0

Больше всего смутила эта строчка: 65000 Accept ICMP:0.0 192.168.111.254 192.168.5.2 in via rl1
Попытался написать свое:
00050 divert 8668 ip4 from any to any via rl1
00100 alow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.1/8 to any
00500 allow ip from any to any via rl0
00700 allow ip from me to any via rl1 keep-state
65000 deny ip from any to any
65535 allow ip from any to any
И получил блокировку, указанную в логах:
All login counts reset
500 Accept ICMP:8.0 192.168.5.2 192.168.111.254 in via rl0
50 Divert 8668 ICMP:8.0 192.168.5.2 192.168.111.254 out via rl1
700 Accept ICMP:8.0 192.168.111.250 192.168.111.254 out via rl1
50 Divert 8668 ICMP:0.0 192.168.111.254 192.168.111.250 in via rl1
65000 Deny ICMP:0.0 192.168.111.254 192.168.5.2 in via rl1

Вопрос что я сделал не так и почему при обратно преобразовании указывает in via rl1?

спустя 23 дня [обр] Антон Клесс(0/25)[досье]
<холивар>ставьте pf и не мучайтесь</холивар>
спустя 17 часов [обр] Филипп Ткачев(0/112)[досье]
спустя 5 минут [обр] Филипп Ткачев(0/112)[досье]
Powered by POEM™ Engine Copyright © 2002-2005