Процитировано сообщение: Vulzscht от 04.04.06 :: 16:48:10:6) немного бы узнать о IPtables и работе с ним.
Вероятно, все уже так или иначе имели дело с файерволом -- не буду особо заострять внимание на некоторых моментах...
Однако кое-что из азов уточнить хотелось бы, а именно то, как ведёт себя пакетный фильтр в ОС Linux (ipchains, iptables) и *BSD (ipfw) и в чём состоит главное отличие в его поведении от *BSD (IPFilter, pf).
В Linux, все входящие пакеты попадают в цепочку INPUT, а исходящие -- в OUTPUT (это утверждение справедливо только для нетранзитных пакетов, то есть предназначенной данной машине).
В *BSD системах -- это in и out.
Отличие в следующем: в Linux (ipchains и iptables) и *BSD (ipfw) прграмма фильтрации вызывается по одному разу для каждого правила фильтрации. Этот единственный раз соответствует первому подходящему для пакета правилу.
То есть если мы укажем несколько правил
Код:iptables -A INPUT -m stare --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.0.0.0/17 -d 10.0.75.5 -p tcp -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/17 -d 10.0.75.5 -p tcp -m tcp --dport 21 -j REJECT
iptables -A INPUT -s 10.0.0.0/17 -d 10.0.75.5 -p tcp -m tcp -m multiport --dports 137,139 -j ACCEPT
iptables -A INPUT -j REJECT
iptables -A OUTPUT -j ACCEPT
то третье по счёту правило _никогда_ не будет выполняться!!!
Это обусловлено тем, что для всех пакетов, соответсвующих требованиям:
- исходящий адрес из диапазона 10.0.0.0/17
- адрес назначения 10.0.75.5
- TCP протокол
- порт назначения 21
уже обработаны -- к ним применено ПЕРВОЕ правило, которому они соответствовали. а именно -- ACCEPT!
То есть для Linux (ipchains, iptables) следует правила составлять в порядке от менее значимого к более значимому.
Вследствие обработки лишь первых правил, соответсвующих пакету, повышается производительность файерволов iptables и ipchains в сравнении с IPFilter и pf.
В *BSD системах (FreeBSD с IPFilter и OpenBSD с pf) -- всё с точностью до наоборот!!!
То есть файервол там работает по принципу "консервативного" файервола -- к пакету будет применено ПОСЛЕДНЕЕ правило, которому он будет соответствовать!
То есть, если мы напишем в /etc/pf.conf для OpenBSD
Код:block in
pass out keep state
pass in on $ext_if proto tcp from 10.0.0.0/17 to 10.0.75.5 port 21 keep state
Всё будет работать правильно (а ведь первым правилом является 'block in' -- блокировать все входящие пакеты) -- доступ на FTP сервер разрешён (и никуда более!). А всё потому, что применяется последнее значимое правило.
Для более детального ознакомления с опциями программы iptables, рекоммендую обратиться к прочтению следующего документа:
ftp://10.0.75.5/exch/linux-info/iptables-textbook.tgz Цитата:FirewallBuilder - это просто графический интерфейс для iptables или я неправ?
Да.