Доброго дня всем.
Исходные данные: машина с FreeBSD 8.2, маршрутизатор; наружный интерфейс - отдельная сетевушка, внутренних два - бридж, составленный из трех одинаковых сетевых карт, плюс wi-fi в режиме точки доступа. DHCP сервер на две подсети /28, samba и ftp сервисы. Установлена также связка apache/php/mysql с образовательной целью, пока не используется.
Файрвол - ipfw, правил как таковых всего ничего:
#!/bin/shipfw -q -f flush
ipfw -q add divert natd ip from 10.10.10.0/27 to any out via xl0
ipfw -q add divert natd ip from any to х.х.х.х in via xl0ipfw -q add allow ip from any to any
При старте машины (или перегрузке) правила divert не отрабатывают, соответственно NAT-а нет. При ручном перезапуске правил - все нормально. Такое ощущение, что при старте что-то не дает запуститься демону natd.
Сталкивался ли кто с подобным? BSD-шник я еще не шибко опытный, буду благодарен любому совету.
На всяк случай rc.conf:
defaultrouter="x.x.x.x"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
gateway_enable="YES"
hostname="xxxxxxxxxxxx"
ifconfig_xl0="inet x.x.x.x netmask 255.255.x.x"
ifconfig_fxp0="up"
ifconfig_fxp1="up"
ifconfig_fxp2="up"
cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 addm fxp2 up"
ifconfig_bridge0_alias0="inet 10.10.10.1 netmask 255.255.255.240"
wlans_ath0="wlan0 wlan1"
create_args_wlan0="wlanmode ap authmode wpa"
create_args_wlan1="monitor"
ifconfig_wlan0="inet 10.10.10.17 netmask 255.255.255.240 ssid xxxxxxxxx channel 7 mode 11g"
hostapd_enable="YES"
firewall_enable="YES"
firewall_script="/etc/ipfirewall.conf"
natd_enable="YES"
natd_program="/sbin/natd"
natd_interface="xl0"
natd_flags="-f /etc/natd.conf"
# natd_flags="-m -u"
named_enable="YES"
dhcpd_enable="YES"
dhcpd_flags="-q"
dhcpd_ifaces="bridge0 wlan0"
syslogd_enable="YES"
inetd_enable="NO"
nfs_client_enable="NO"
nfs_server_enable="NO"
nfs_reserved_port_only="NO"
portmap_enable="NO"
clear_tmp_enable="YES"
icmp_bmcastecho="NO"
keymap="ru.koi8-r"
mousechar_start="3"
scrnmap="koi8-r2cp866"
sshd_enable="YES"
smbd_enable="YES"
nmbd_enable="YES"
mysql_enable="YES"
apache22_enable="YES"
ftpd_enable="YES"
fsck_y_enable="YES"
background_fsck="NO"
> При старте машины (или перегрузке) правила divert не отрабатывают, соответственно NAT-а
> нет. При ручном перезапуске правил - все нормально. Такое ощущение, что
> при старте что-то не дает запуститься демону natd.Так "правила не отрабатывают" или "что-то не дает запуститься демону natd" ?
Вы уж как-нибудь постарайтесь определиться-разобраться.
>> При старте машины (или перегрузке) правила divert не отрабатывают, соответственно NAT-а
>> нет. При ручном перезапуске правил - все нормально. Такое ощущение, что
>> при старте что-то не дает запуститься демону natd.
> Так "правила не отрабатывают" или "что-то не дает запуститься демону natd" ?
> Вы уж как-нибудь постарайтесь определиться-разобраться.машина стартует, говорю ipfw show - divert правил НЕТ. Перегружаю правила, снова ipfw show - divert правила ЕСТЬ. Ввиду того, что эти правила вызывают natd - предполагаю, что при старте машины что-то этому запуску мешает, т.е. "правила не отрабатывают" или "что-то не дает запуститься демону natd" - суть одно.
Вопрос - как увидеть, что именно? на консоли ничего подозрительного нет...
>[оверквотинг удален]
>>> нет. При ручном перезапуске правил - все нормально. Такое ощущение, что
>>> при старте что-то не дает запуститься демону natd.
>> Так "правила не отрабатывают" или "что-то не дает запуститься демону natd" ?
>> Вы уж как-нибудь постарайтесь определиться-разобраться.
> машина стартует, говорю ipfw show - divert правил НЕТ. Перегружаю правила, снова
> ipfw show - divert правила ЕСТЬ. Ввиду того, что эти правила
> вызывают natd - предполагаю, что при старте машины что-то этому запуску
> мешает, т.е. "правила не отрабатывают" или "что-то не дает запуститься демону
> natd" - суть одно.
> Вопрос - как увидеть, что именно? на консоли ничего подозрительного нет...так как файрволл правилами наполняется -
через :
firewall_enable="YES"
firewall_script="/etc/ipfirewall.conf"или через
"ваш файл"
> так как файрволл правилами наполняется -
> через :
> firewall_enable="YES"
> firewall_script="/etc/ipfirewall.conf"
> или через
> "ваш файл"/etc/ipfirewall.conf - это и есть мой файл :) я так понимаю - Вы предлагаете попробовать в начало файла правил (скрипта по сути) добавить задержку? или что? или добавлять отдельный скриптик в /usr/local/etc/rc.d/, который будет перегружать правила сек через 30?
я думал за это, но.. мне это напоминает привязывание детальки веревочкой вместо того шоб разобраться, почему отваливается :))
>[оверквотинг удален]
>> firewall_enable="YES"
>> firewall_script="/etc/ipfirewall.conf"
>> или через
>> "ваш файл"
> /etc/ipfirewall.conf - это и есть мой файл :) я так понимаю -
> Вы предлагаете попробовать в начало файла правил (скрипта по сути) добавить
> задержку? или что? или добавлять отдельный скриптик в /usr/local/etc/rc.d/, который будет
> перегружать правила сек через 30?
> я думал за это, но.. мне это напоминает привязывание детальки веревочкой вместо
> того шоб разобраться, почему отваливается :))не.
firewall_enable и запуск файрволла обрабатывается /etc/rc.d/ipfw
в самом файле скрипта вызов делается так:
/bin/sh "${firewall_script}" "${_firewall_type}"
echo 'Firewall rules loaded.'Значит, проверяем наличие сообщения 'Firewall rules loaded.' при старте системы,
или попробовать запускать не скрипт напрямую, а либо
/etc/rc.d/ipfw start
или
/bin/sh /etc/ipfirewall.conf
>>> При старте машины (или перегрузке) правила divert не отрабатывают, соответственно NAT-а
>>> нет. При ручном перезапуске правил - все нормально. Такое ощущение, что
>>> при старте что-то не дает запуститься демону natd.
>> Так "правила не отрабатывают" или "что-то не дает запуститься демону natd" ?
>> Вы уж как-нибудь постарайтесь определиться-разобраться.
> машина стартует, говорю ipfw show - divert правил НЕТ. Перегружаю правила, снова
> ipfw show - divert правила ЕСТЬ. Ввиду того, что эти правила
> вызывают natd - предполагаю, что при старте машины что-то этому запускуправила не вызывают natd - он вызывается стартовым скриптом
в правилах направление трафика на сокет типа диверт, который слушается natd> мешает, т.е. "правила не отрабатывают" или "что-то не дает запуститься демону
> natd" - суть одно."правила отрабатывают" и "правила не отрабатывают" - терминология времени работы, а не времени иннициализации
> Вопрос - как увидеть, что именно? на консоли ничего подозрительного нет...
rcorder /etc/rc.d/*
что говорит?P.S. под рукой нет FreeBSD, но, IMHO скрипт, прописаный в firewall_script должен загружать необходимые модули ядра, без которых эти правила и не инициализируются
>> Вопрос - как увидеть, что именно? на консоли ничего подозрительного нет...
> rcorder /etc/rc.d/*
> что говорит?Aquarius, благодарю за ответ
rcorder /etc/rc.d/*
/etc/rc.d/hostid
/etc/rc.d/zvol
/etc/rc.d/dumpon
/etc/rc.d/ddb
/etc/rc.d/initrandom
/etc/rc.d/geli
/etc/rc.d/gbde
/etc/rc.d/encswap
/etc/rc.d/ccd
/etc/rc.d/swap1
/etc/rc.d/fsck
/etc/rc.d/root
/etc/rc.d/hostid_save
/etc/rc.d/mdconfig
/etc/rc.d/mountcritlocal
/etc/rc.d/zfs
/etc/rc.d/FILESYSTEMS
/etc/rc.d/var
/etc/rc.d/cleanvar
/etc/rc.d/random
/etc/rc.d/adjkerntz
/etc/rc.d/atm1
/etc/rc.d/hostname
/etc/rc.d/kldxref
/etc/rc.d/sppp
/etc/rc.d/ipfilter
/etc/rc.d/ipnat
/etc/rc.d/ipfs
/etc/rc.d/addswap
/etc/rc.d/auto_linklocal
/etc/rc.d/sysctl
/etc/rc.d/serial
/etc/rc.d/netif
/etc/rc.d/ip6addrctl
/etc/rc.d/atm2
/etc/rc.d/pfsync
/etc/rc.d/pflog
/etc/rc.d/pf
/etc/rc.d/ppp
/etc/rc.d/routing
/etc/rc.d/network_ipv6
/etc/rc.d/devd
/etc/rc.d/ipsec
/etc/rc.d/nsswitch
/etc/rc.d/rtsold
/etc/rc.d/resolv
/etc/rc.d/mroute6d
/etc/rc.d/route6d
/etc/rc.d/mrouted
/etc/rc.d/routed
/etc/rc.d/defaultroute
/etc/rc.d/ipfw
/etc/rc.d/netoptions
/etc/rc.d/NETWORKING
/etc/rc.d/mountcritremote
/etc/rc.d/devfs
/etc/rc.d/ipmon
/etc/rc.d/mdconfig2
/etc/rc.d/newsyslog
/etc/rc.d/syslogd
/etc/rc.d/savecore
/etc/rc.d/ldconfig
/etc/rc.d/archdep
/etc/rc.d/abi
/etc/rc.d/SERVERS
/etc/rc.d/named
/etc/rc.d/ntpdate
/etc/rc.d/rpcbind
/etc/rc.d/nisdomain
/etc/rc.d/ypserv
/etc/rc.d/ypxfrd
/etc/rc.d/ypupdated
/etc/rc.d/ypbind
/etc/rc.d/ypset
/etc/rc.d/yppasswdd
/etc/rc.d/wpa_supplicant
/etc/rc.d/accounting
/etc/rc.d/nfsclient
/etc/rc.d/amd
/etc/rc.d/atm3
/etc/rc.d/auditd
/etc/rc.d/tmp
/etc/rc.d/cleartmp
/etc/rc.d/dmesg
/etc/rc.d/hastd
/etc/rc.d/ipxrouted
/etc/rc.d/kerberos
/etc/rc.d/kadmind
/etc/rc.d/keyserv
/etc/rc.d/kpasswdd
/etc/rc.d/nfsuserd
/etc/rc.d/gssd
/etc/rc.d/quota
/etc/rc.d/nfsserver
/etc/rc.d/mountd
/etc/rc.d/nfsd
/etc/rc.d/statd
/etc/rc.d/lockd
/etc/rc.d/pppoed
/etc/rc.d/pwcheck
/etc/rc.d/virecover
/etc/rc.d/DAEMON
/etc/rc.d/watchdogd
/etc/rc.d/ugidfw
/etc/rc.d/ubthidhci
/etc/rc.d/timed
/etc/rc.d/apm
/etc/rc.d/apmd
/etc/rc.d/bootparams
/etc/rc.d/hcsecd
/etc/rc.d/bthidd
/etc/rc.d/local
/etc/rc.d/lpd
/etc/rc.d/motd
/etc/rc.d/mountlate
/etc/rc.d/nscd
/etc/rc.d/ntpd
/etc/rc.d/powerd
/etc/rc.d/rarpd
/etc/rc.d/sdpd
/etc/rc.d/rfcomm_pppd_server
/etc/rc.d/rtadvd
/etc/rc.d/rwho
/etc/rc.d/LOGIN
/etc/rc.d/syscons
/etc/rc.d/static_arp
/etc/rc.d/sshd
/etc/rc.d/sendmail
/etc/rc.d/cron
/etc/rc.d/jail
/etc/rc.d/localpkg
/etc/rc.d/securelevel
/etc/rc.d/power_profile
/etc/rc.d/othermta
/etc/rc.d/nfscbd
/etc/rc.d/natd
/etc/rc.d/msgs
/etc/rc.d/moused
/etc/rc.d/mixer
/etc/rc.d/inetd
/etc/rc.d/hostapd
/etc/rc.d/gptboot
/etc/rc.d/geli2
/etc/rc.d/ftpd
/etc/rc.d/ftp-proxy
/etc/rc.d/dhclient
/etc/rc.d/bsnmpd
/etc/rc.d/bridge
/etc/rc.d/bluetooth
/etc/rc.d/bgfsck>rcorder /usr/local/etc/rc.d/*
rcorder: requirement `LOGIN' in file `/usr/local/etc/rc.d/webmin' has no providers.
/usr/local/etc/rc.d/webmin
rcorder: requirement `LOGIN' in file `/usr/local/etc/rc.d/squid' has no providers.
/usr/local/etc/rc.d/squid
rcorder: requirement `cupsd' in file `/usr/local/etc/rc.d/samba' has no providers.
rcorder: requirement `resolv' in file `/usr/local/etc/rc.d/samba' has no providers.
rcorder: requirement `ldconfig' in file `/usr/local/etc/rc.d/samba' has no providers.
rcorder: requirement `DAEMON' in file `/usr/local/etc/rc.d/samba' has no providers.
rcorder: requirement `SERVERS' in file `/usr/local/etc/rc.d/samba' has no providers.
rcorder: requirement `NETWORKING' in file `/usr/local/etc/rc.d/samba' has no providers.
/usr/local/etc/rc.d/samba
rcorder: requirement `LOGIN' in file `/usr/local/etc/rc.d/postgresql' has no providers.
/usr/local/etc/rc.d/postgresql
rcorder: requirement `LOGIN' in file `/usr/local/etc/rc.d/mysql-server' has no providers.
/usr/local/etc/rc.d/mysql-server
rcorder: requirement `DAEMON' in file `/usr/local/etc/rc.d/isc-dhcpd6' has no providers.
/usr/local/etc/rc.d/isc-dhcpd6
rcorder: requirement `DAEMON' in file `/usr/local/etc/rc.d/isc-dhcpd' has no providers.
/usr/local/etc/rc.d/isc-dhcpd
/usr/local/etc/rc.d/htcacheclean
rcorder: requirement `cleanvar' in file `/usr/local/etc/rc.d/apache22' has no providers.
rcorder: requirement `LOGIN' in file `/usr/local/etc/rc.d/apache22' has no providers.
/usr/local/etc/rc.d/apache22
>[оверквотинг удален]
>> что говорит?
> Aquarius, благодарю за ответ
>
> rcorder /etc/rc.d/*
> ...
> /etc/rc.d/ipfw
> ...
> /etc/rc.d/natd
> ...
>хм!
кажется, модули подгружаются в /etc/rc.d/natd
штатный rc.firewall не занимается подгрузкой модулей.
в /etc/rc.d/ipfw есть строка "required_modules="ipfw"", я точно не знаю как работает rc-система, но думаю она как-то это учитывает :-)
> штатный rc.firewall не занимается подгрузкой модулей.
> в /etc/rc.d/ipfw есть строка "required_modules="ipfw"", я точно не знаю как работает rc-система,
> но думаю она как-то это учитывает :-)rc.subr:
# required_modules n If set, ensure the given kernel modules are
# loaded before running a (re)start command.
# The check and possible loads are actually
# done after start_precmd so that the modules
# aren't loaded in vain, should the precmd
# return a non-zero status to indicate a error.
# If a word in the list looks like "foo:bar",
# "foo" is the KLD file name and "bar" is the
# module name. If a word looks like "foo~bar",
# "foo" is the KLD file name and "bar" is a
# egrep(1) pattern matching the module name.
# Otherwise the module name is assumed to be
# the same as the KLD file name, which is most
# common. See load_kld().
> штатный rc.firewall не занимается подгрузкой модулей.
> в /etc/rc.d/ipfw есть строка "required_modules="ipfw"", я точно не знаю как работает rc-система,
> но думаю она как-то это учитывает :-)для правил divert нужен дополнительный модуль, кажется, ipdivert
>> штатный rc.firewall не занимается подгрузкой модулей.
>> в /etc/rc.d/ipfw есть строка "required_modules="ipfw"", я точно не знаю как работает rc-система,
>> но думаю она как-то это учитывает :-)
> для правил divert нужен дополнительный модуль, кажется, ipdivertPavelR, благодарю за ответы
забыл сказать - конечно же диверт наряду с ipfw в ядро вкомпиленя склонен думать, что проблема в типе внутреннего интерфейса..
вот что говорит dmesg в конце загрузки:
ipfw2 (+ipv6) initialized, divert loadable, nat loadable, rule-based forwarding disabled, default to deny, logging disabled
fxp2: link state changed to DOWN
fxp2: link state changed to UP
fxp2: link state changed to DOWN
fxp0: link state changed to DOWN
fxp0: link state changed to UP
fxp2: link state changed to UP
ath0: stuck beacon; resetting (bmiss count 4)
ath0: stuck beacon; resetting (bmiss count 4)
ath0: stuck beacon; resetting (bmiss count 4)
ath0: stuck beacon; resetting (bmiss count 4)
ath0: stuck beacon; resetting (bmiss count 4)
fxp2: link state changed to DOWN
fxp2: link state changed to UP
т.е. судя по всему создание бридж-интерфейса занимает какое-то время, и каким-то способом не дает завестись natd.. хотя все это мои фантазии.
видимо таки придется поробовать на отдельной сетевухе попробовать, а не на бридже
> забыл сказать - конечно же диверт наряду с ipfw в ядро вкомпиленkldstat
в студию> я склонен думать, что проблема в типе внутреннего интерфейса..
может быть; я же склонен думать, что дело в модулях ядра
>> забыл сказать - конечно же диверт наряду с ipfw в ядро вкомпилен
> kldstat
> в студию
[21:41] /home/vervolf >kldstat
Id Refs Address Size Name
1 15 0xc0400000 bd97b4 kernel
2 1 0xc39eb000 9000 if_bridge.ko
3 1 0xc39f4000 6000 bridgestp.ko
4 2 0xc3a7e000 11000 ipfw.ko
5 1 0xc3a8f000 d000 libalias.ko
6 1 0xc3b33000 4000 ipdivert.ko
7 1 0xc3e73000 2000 wlan_xauth.ko
>> я склонен думать, что проблема в типе внутреннего интерфейса..
> может быть; я же склонен думать, что дело в модулях ядра
> [21:41] /home/vervolf >kldstat
> Id Refs Address Size Name
> 1 15 0xc0400000 bd97b4 kernelвыше ядро, а ниже модули. есть еще вопросы?
>[оверквотинг удален]
> 4 2 0xc3a7e000 11000 ipfw.ko
> 5 1 0xc3a8f000 d000
> libalias.ko
> 6 1 0xc3b33000 4000
> ipdivert.ko
> 7 1 0xc3e73000 2000
> wlan_xauth.ko
>
>[оверквотинг удален]
>> 4 2 0xc3a7e000 11000 ipfw.ko
>> 5 1 0xc3a8f000 d000
>> libalias.ko
>> 6 1 0xc3b33000 4000
>> ipdivert.ko
>> 7 1 0xc3e73000 2000
>> wlan_xauth.ko
>>
>>>> я склонен думать, что проблема в типе внутреннего интерфейса..
>>> может быть; я же склонен думать, что дело в модулях ядрау меня есть. что Вы имеете в виду?
>[оверквотинг удален]
>>> 5 1 0xc3a8f000 d000
>>> libalias.ko
>>> 6 1 0xc3b33000 4000
>>> ipdivert.ko
>>> 7 1 0xc3e73000 2000
>>> wlan_xauth.ko
>>>
>>>>> я склонен думать, что проблема в типе внутреннего интерфейса..
>>>> может быть; я же склонен думать, что дело в модулях ядра
> у меня есть. что Вы имеете в виду?ipdivert.ko - модуль ядра
при старте системы он загружается после загрузки правил, поэтому правила divert не загружаются
> ipdivert.ko - модуль ядра
> при старте системы он загружается после загрузки правил, поэтому правила divert не
> загружаютсяне знаю, как поменять очередность...
>> ipdivert.ko - модуль ядра
>> при старте системы он загружается после загрузки правил, поэтому правила divert не
>> загружаются
> не знаю, как поменять очередность...не надо менять очередность, это создаст другие проблемы
надо обеспечить загрузку модулей до иннициализации правил, например, с помощью loader.conf
>>> ipdivert.ko - модуль ядра
>>> при старте системы он загружается после загрузки правил, поэтому правила divert не
>>> загружаются
>> не знаю, как поменять очередность...
> не надо менять очередность, это создаст другие проблемы
> надо обеспечить загрузку модулей до иннициализации правил, например, с помощью loader.confтак ipfw и ipdivert в ядре или модулем?
>>>> ipdivert.ko - модуль ядра
>>>> при старте системы он загружается после загрузки правил, поэтому правила divert не
>>>> загружаются
>>> не знаю, как поменять очередность...
>> не надо менять очередность, это создаст другие проблемы
>> надо обеспечить загрузку модулей до иннициализации правил, например, с помощью loader.conf
> так ipfw и ipdivert в ядре или модулем?скопмилено с
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_FORWARD
options DUMMYNET
options IPDIVERToptions IPSEC
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCCdevice pf
device pflog
device pfsync
Всем ответившим огромная благодарность (киевлянам и харьковчанам пыво по первому требованию :)) на выходных попробую ото все реализовать, шо советовали
отпишусь
>>>>> ipdivert.ko - модуль ядра
>>>>> при старте системы он загружается после загрузки правил, поэтому правила divert не
>>>>> загружаются
>>>> не знаю, как поменять очередность...
>>> не надо менять очередность, это создаст другие проблемы
>>> надо обеспечить загрузку модулей до иннициализации правил, например, с помощью loader.conf
>> так ipfw и ipdivert в ядре или модулем?
> скопмилено ссудя по kldstat, это не так
>[оверквотинг удален]
> options ALTQ_HFSC
> options ALTQ_PRIQ
> options ALTQ_NOPCC
> device pf
> device pflog
> device pfsync
>
> Всем ответившим огромная благодарность (киевлянам и харьковчанам пыво по первому требованию
> :)) на выходных попробую ото все реализовать, шо советовали
> отпишусь
Натд висит на внешнем интерфейсе, назначенный ему порт никакой связи с бриджем не имеет).
Правила файрвола принимаются в не зависимости от поднятости-неподнятости интерфейса...
поставьте в начало скриптаи в конец его вывод сообщения- чтоб быть уверенным что скрипт был запущен и отработал полностью...
показанные вами правила для файрвола-не запускают natd.
> Натд висит на внешнем интерфейсе, назначенный ему порт никакой связи с бриджем
> не имеет).
> Правила файрвола принимаются в не зависимости от поднятости-неподнятости интерфейса...
> поставьте в начало скриптаи в конец его вывод сообщения- чтоб быть уверенным
> что скрипт был запущен и отработал полностью...
> Вероятно у вас гдето- ошибка.. может опечатка в названии скрипта?А запустить без -q, может чего то на экране видно будет?
> Правила файрвола принимаются в не зависимости от поднятости-неподнятости интерфейса...но в зависимости от его существования в системе - наверняка?
> поставьте в начало скриптаи в конец его вывод сообщения- чтоб быть уверенным
> что скрипт был запущен и отработал полностью...хорошая мысль, спасибо
> показанные вами правила для файрвола-не запускают natd.
>> Правила файрвола принимаются в не зависимости от поднятости-неподнятости интерфейса...
> но в зависимости от его существования в системе - наверняка?Хороший и познавательный вопрос:
выполните в командной строке:
====
ipfw add deny ip from any to any via otherbnia
====
otherbnia - типа это такой интерфейс :)
никаких ошибок не напечатало.
проверяенм присутсвие правила в файрволе:
ipfw show:
02000 0 0 deny ip from any to any via otherbniaИз чего заключаем, что правила файрвола применяются вне зависимости не только от того поднят инфрфейс или нет, но и от того присутствует ли таковой вообще в системе...
Надо заметить, что в документации этот нюанс не описан и как видим он не очевиден :)Поэтому соображения насчет бриджа и прочего- не имеют под собой основания.
Возможная прблема: неверно указано имя файла скрипта, не указан полный путь к ipfw...
Укажите в скрипте путь к ipfw полным путем...