Добрый день всем! не могу понять, где я не прав в настройке ipfw в freebsd 6.0
Ситуация такая - стоит ADSL модем, внутренний адрес- 192.168.1.1 (роутером), машина с фрей - 2 сетевые, одна - на модем ( адрес - 192.168.1.2), другая вовнутрь - 192.168.0.10, соответственно внутренняя сеть 192.168.0.0/24. Дальше стоит тестовая машина, которая должна в идеале начать выходить в нет через фрю. Адрес ее - пусть 192.168.0.20, шлюзом - 192.168.0.10, ДНС - ДНС провайдера, пусть xxx.xxx.xxx.xxx
ядро собрал с поддержкой ipfirewall и ipdivertrc.conf:
defaultrouter="192.168.1.1"
gateway_enable="YES"
hostname="bla.bla"
ifconfig_rl0="inet 192.168.0.10 netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.1.2 netmask 255.255.255.0"
inetd_enable="YES"
natd_enable="YES"
natd_interface="rl1"
firewall_enable="YES"
firewall_script="/etc/firewall.sh"
firewall_logging="YES"
trafd_enable="YES"
firewall.sh:
#!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add 50 allow all from any to any via lo
/sbin/ipfw add 100 divert natd all from 192.168.0.0/24 to any via rl1
/sbin/ipfw add 150 divert natd all from any to me via rl1
/sbin/ipfw add 200 allow all from me to any
/sbin/ipfw add 250 allow all from any to me
# понимаю, что вышеуказанное правило мягко говоря небезопасно, но тестовая машина даже
# так в инет не выходит, потом уже добавлять буду tcp 80,53, udp 53 и остальное по
# необходимости для машины с фрей, когда данную проблему решу
/sbin/ipfw add 300 allow all from any to any via rl0
# насколько я понимаю, это правило должно пускать внутренних юзеров куда угодно и по
# чему угодно
resolv.conf:
domain bla
nameserver xxx.xxx.xxx.xxx
И при всех этих настройках тестовая машина в интернет не выходит...и не пингует даже ничего внешнего. Все работает только при следующем содержании firewall.sh - (ну это и понятно)
#!/bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add divert natd all from any to any via rl1
/sbin/ipfw add allow all from any to any
Очень прошу помощи - что я не так сделал, и почему, если не сложно, заранее спасибо!