iptables - штука весьма крутая и мощная, позволяющая не только рулить трафиком на пакетном уровне, но даже маркировать пакеты и следить за ними в целях, к примеру, отладки. В наследство от ipchains этому крутому штатному файерволу Линукс досталась неоднозначная возможность строить цепочки - типа как функции, и помещать из последовательно в нужном контексте. Большинство цепочек, в общем-то строятся на базе трёх основных: * INPUT * OUTPUT * FORWARD Есть еще цепочки <tt>PREROUTING</tt> и <tt>POSTROUTING</tt>, но без их использования в простых случаях можно обойтись. Самая простая конфигурация файервола (всё открыто во все стороны) выглядит так (Gentoo): #!/bin/bash # # flush all tables # iptables -F # # erase all chains # iptables -X # # set defaults # iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT # # save # /etc/init.d/iptables save Все это, очевидно, кладётся в bash-файлик, к примеру: /root/iptables-conf1.sh и запускается при старте системы автоматически или своим же самописным "стартером". В натурально боевых случаях логика строится от обратного: сначала запрещаем всё, что можем запретить, а затем уже разрешаем по чуть-чуть: #!/bin/bash WAN="eth1" WAN_IP="111.11.111.11" LAN="eth0" LAN_IP="192.168.1.2" LO="lo" LO_IP="127.0.0.1" # flush iptables -F # defaults iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -p ALL -i $LAN -j ACCEPT iptables -A INPUT -p ALL -i $LO -j ACCEPT iptables -A INPUT -p TCP --dport 25 -i $LAN -j REJECT iptables -A OUTPUT -p ALL -s $LO_IP -j ACCEPT iptables -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT # iptables-save /etc/init.d/iptables save В этом случае разрешаем все кроме порта N25 на внутреннем интерфейсе, но запрещаем на внешнем. Пока обходимся без цепочек. Далее можно конечно разобрать более сложные случаи с цепочками, но как показывает опыт - лучше и полезнее сначала разобраться в пакетах: arno-iptables и pyroman Оба этих пакета представляют очень хорошие и проверенные временем наборы конфигурационных скриптов для iptables. А это сильно экономит время и позволяет не изобретать велосипед.
Linux/Windows Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor