Всем здравствуйте,
Ситуация следующая: стоит в “серой” локальной сети сервер под FreeBSD 4.5, работает в качестве почтового сервера и прокси. Сейчас он стоит за “кошкой”-маршрутизатором, но его предшественник сам выступал в роли роутера, так что с той поры все компьютеры в локалке имеют в качестве адреса маршрутизатора IP-адрес именно UNIX-сервера, а не Ethernet-порта на CISCO. Традиция! А теперь собственно проблема – возникла задача отлучить нескольких индивидуев в локальной сети от ftp, для чего было решено написать простенький набор правил для брадмауэра и полученный файл поставить в качестве аргумента для firewall_type в /etc/rc.conf. В итоге изобразили:
add deny tcp from any to 10.20.0.50 20 via fxp0 in
add deny tcp from 10.20.0.50 to any 20 via fxp0 out
То же самое и для порта 21. fxp0 – это единственный сетевой интерфейс нашего сервера. В итоге правим rc.conf, затем запускаем # nohup /etc/netstart и смотрим на полученный результат:
# ipfw list
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
00400 deny tcp from any to 10.20.0.50 20 in recv fxp0
00500 deny tcp from 10.20.0.50 to any 20 out xmit fxp0
00600 deny tcp from any to 10.20.0.50 21 in recv fxp0
00700 deny tcp from 10.20.0.50 to any 21 out xmit fxp0
00800 allow ip from any to any
65535 deny ip from any to any
Тестируем новый брандмауэр (гы...) на хосте 10.20.0.50 и благополучно обламываемся. Ftp работает - просто загляденье. После чего задаемся вопросом – а в чем, собственно, закавыка? Может, кто поможет с советом?..