Пытаюсь настроить гейт на базе FreeBSD 7.2+natd+ipfw
Делать пытался по следующим докам:
http://nightfly.habrahabr.ru/blog/70414/
http://www.sysadmin.md/freebsd-quick-in ... guide.html
http://www.lissyara.su/?id=1536
http://www.lissyara.su/?id=1127
Что было сделано:
1) пересобрано ядро с необходимыми опциями
Код: Выделить всё
ident MYROUTER
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options DUMMYNET
options IPDIVERT
options HZ=1000
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
Код: Выделить всё
gateway_enable="YES"
ifconfig_em0="inet 10.2.30.3 netmask 255.255.254.0"
ifconfig_em1="inet 169.254.168.254 netmask 255.255.255.0"
defaultrouter="10.2.30.1"
firewall_enable="YES"
firewall_script="/etc/firewall.conf"
natd_enable="YES"
natd_interface="em0"
natd_flags="-same_ports"
em1 - интерфейс, который смотрит в локалку
3) последняя версия файла firewall.conf
Код: Выделить всё
#!/bin/sh
FwCMD="/sbin/ipfw -q"
LanOut="em0"
LanIn="em1"
IpOut="10.2.30.3"
NetIn="169.254.168.0/24"
${FwCMD} -f flush
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add divert natd ip from ${NetIn} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add allow tcp from any to any established
${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add allow tcp from any to any via ${LanIn}
${FwCMD} add allow udp from any to any via ${LanIn}
${FwCMD} add allow icmp from any to any via ${LanIn}
${FwCMD} add allow ip from ${IpOut} to any out via ${LanOut}
${FwCMD} add allow ip from any to ${IpOut} in via ${LanOut}
${FwCMD} add allow ip from ${NetIn} to any in via ${LanIn}
${FwCMD} add allow ip from ${NetIn} to any out via ${LanOut}
${FwCMD} add allow ip from any to ${NetIn} in via ${LanOut}
${FwCMD} add allow ip from any to ${NetIn} out via ${LanIn}
${FwCMD} add deny ip from any to any
Код: Выделить всё
MSK-Gate01# ipfw show
00100 4 200 allow ip from any to any via lo0
00200 8 544 divert 8668 ip from 169.254.168.0/24 to any out via em0
00300 8 472 divert 8668 ip from any to 10.2.30.3 in via em0
00400 788 96544 allow tcp from any to any established
00500 8 544 allow ip from 10.2.30.3 to any out xmit em0
00600 1 52 allow tcp from any to any via em1
00700 1835 170467 allow udp from any to any via em1
00800 21 1396 allow icmp from any to any via em1
00900 0 0 allow ip from 10.2.30.3 to any out via em0
01000 0 0 allow ip from any to 10.2.30.3 in via em0
01100 26 756 allow ip from 169.254.168.0/24 to any in via em1
01200 0 0 allow ip from 169.254.168.0/24 to any out via em0
01300 8 472 allow ip from any to 169.254.168.0/24 in via em0
01400 0 0 allow ip from any to 169.254.168.0/24 out via em1
01500 21 612 deny ip from any to any
65535 5 503 allow ip from any to any
Код: Выделить всё
00800 21 1396 allow icmp from any to any via em1
00200 8 544 divert 8668 ip from 169.254.168.0/24 to any out via em0
00500 8 544 allow ip from 10.2.30.3 to any out xmit em0
00300 8 472 divert 8668 ip from any to 10.2.30.3 in via em0
01300 8 472 allow ip from any to 169.254.168.0/24 in via em0
Код: Выделить всё
01400 0 0 allow ip from any to 169.254.168.0/24 out via em1
пробовал поставить firewall_type="OPEN", не работает... sysctrl пишет, что natd работает... пока жду советов, попытаюсь разобраться с tcpdump, но голова уже не варит...
честно говоря осталась только одна мысль, что виновата моя подсеть 169.254.168.0/24, потому что она в RFC в другом разделе...