>Каким образом правильно запускать ipfw и nat ? читая доки и хендбук,
>я встречал различные варианты запуска, например: Остановись на чем-нибудь одном и исследуй эту тему. Иначе запутаешься (что, скорее всего уже так).
В /etc/rc.conf
firewall_enable="yes"
firewall_type="open" #или что-то свое
gateway_enable="yes"
natd_enable="yes"
natd_interface="rl1" #сетевуха, смотрящая в инет
natd_flags="-f /etc/natd.conf"
В /etc/natd.conf у меня указаны
same_ports yes
use_sockets yes
и редиректы некоторых портов (пиринг:)
Если не надо, не пиши...
В /etc/rc.firewall (или что там указано в firewall_script):
Короче, суть там такая: чтоб работал nat, нужно, чтобы у ипфв было указано правило
divert natd all from any to any via ${natd_interface}
причем правило должно быть первым, а не из последних...
Тип ипфв можно указать и свой, соответственно сделав новый блок в rc.firewall, но добавить туда такую конструкцию:
case ${natd_enable} in
[Yy][Ee][Ss])
if [ -n "${natd_interface}" ]; then
${fwcmd} add 50 divert natd all from any to any via ${natd_interface}
fi
;;
esac
${natd_enable} и ${natd_interface} возьмутся из rc.conf.
До всего этого, ессно нужно, чтобы были
options IPDIVERT
options IPFIREWALL
>И второй вопрос по теме - как лучше тестить новые скрипты файрвола,
>а то при перезагрузке сервер может закрыться от внешнего мира и
>приходится бежать в серверную (коллакейшн)...
Напиши скрипт, который сбрасывает правила ипфв на заведомо рабочий вариант, и поставь его в cron на каждый час, например. Таким образом, если где-то косяк в скриптах файрвола, в начале следующего часа все правила сбросятся и на сервак снова можно будет залогиниться, не бегая на площадку к провайдеру... Если же новые правила файрвола проверку выдержали, то можно править скрипт, чтобы сбрасывал в уже обновленный набор правил...
>Спасибо.
Удачи.