Коллеги, добрый день!
Прошу сильно тапками не закидывать, так как только не давно начал разбираться в теме.
По данной проблеме искал решения и на этом форуме и в гугле - ни одно из найденных решений не помогло.
Суть проблемы в том, что ipfw не хочет загружать правила из скрипта /etc/firewall.conf. Причем если забивать правила руками в виде консольных команд, то все работает замечательно, до первой перезагрузки соответственно.Часть листинга firewall.conf:
#!/bin/sh
cmd="/sbin/ipfw -q"
IfOut="msk0"
IpOut="192.168.1.107"
NetOut="192.168.1.0/24"
IfIn="nfe0"
IpIn="172.16.1.1"
NetIn="172.16.1.0/16"${cmd} -f flush
${cmd} add allow ip from any to any via lo0
${cmd} add deny log all from any to ${IpOut} in via ${IfOut} fag
${cmd} add deny log all from any to ${IpOut} in via ${IfOut} ipoptions ss
${cmd} add deny log all from any to ${IpOut} in via ${IfOut} ipoptions ls
${cmd} add deny log all from any to ${IpOut} in via ${IfOut} ipoptions
${cmd} add deny log all from any to ${IpOut} in via ${IfOut} ipoptions tsи т.д.
В /etc/rc.conf соответственно:
firewall_enable="YES"
firewall_type="open"
firewall_script="/etc/firewall.conf"В ядре по данной теме:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=50
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNETПрава на /etc/firewall.conf:
-rwxr-xr-x 1 root wheel 6258 Feb 17 15:23 /etc/firewall.conf
При попытке вручную запустить скрипт получаю пару экранов сообщений:
ipfw: illegal option --
ipfw: usage: ipfw [options]
do "ipfw -h" or "man ipfw" for detailsСоответственно в ipfw правила не загружаются.
Где может быть проблема? Заранее очень благодарю за помощь.
>[оверквотинг удален]
> IPDIVERT
> options DUMMYNET
> Права на /etc/firewall.conf:
> -rwxr-xr-x 1 root wheel 6258 Feb 17 15:23 /etc/firewall.conf
> При попытке вручную запустить скрипт получаю пару экранов сообщений:
> ipfw: illegal option --
> ipfw: usage: ipfw [options]
> do "ipfw -h" or "man ipfw" for details
> Соответственно в ipfw правила не загружаются.
> Где может быть проблема? Заранее очень благодарю за помощь.Так ведь сами же указываете тип фаервола как открытый!
А где его искать? Он у вас прописан в вашем скрипте?
Посмотрите внимательно файлы /etc/rc.firewall и /etc/defaults/rc.conf
на предмет типа фаервола (open | client | simple | closed | ... )
и
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall
firewall_type="UNKNOWN" # Firewall type (see /etc/rc.firewall)Может здесь http://www.g0l.ru/blog/htmls/BSDA-course/single.html#firewal... будет проще?
> #!/bin/sh
> cmd="/sbin/ipfw -q"
> При попытке вручную запустить скрипт получаю пару экранов сообщений:
> ipfw: illegal option --
> ipfw: usage: ipfw [options]
> Где может быть проблема? Заранее очень благодарю за помощь.перепиши первую строчку в скрипте как #!/bin/sh -x
и сможешь увидеть, где именно ошибка у тебя в правилах
>> #!/bin/sh
>> cmd="/sbin/ipfw -q"
>> При попытке вручную запустить скрипт получаю пару экранов сообщений:
>> ipfw: illegal option --
>> ipfw: usage: ipfw [options]
>> Где может быть проблема? Заранее очень благодарю за помощь.запусти ipfw -a list и увидишь правила, которые загрузились...
Проблема была в синтаксисе скрипта.
Правильный вариант:
cmd='/sbin/ipfw -q'
IfOut=msk0
IpOut='192.168.1.107'и т.д.
Все спасибо за советы!