Второе рождение iptables Докучаев Дмитрий aka Forb Xakep, номер #069, стр. 069-072-2 Теперь переходим к самому вкусному. Пиши make menuconfig (либо make xconfig, если в иксах сидишь) и заходи в раздел Networking Options -> Netfilter Configuration. Там ты увидишь кучу новых вкусностей. Последовательно отмечай, какие модули установились скриптом POM’а в качестве подгружаемых. Отметил? Тогда наступает время для перекомпиляции ядра. Хотя стоп! Когда я проделывал эти шаги, то столкнулся с необычным обстоятельством. Несмотря на то, что модули TARPIT и osf были отмечены, в ядре не создались target TARPIT и match osf. Поэтому пришлось объявить их вручную. На всякий случай открой файл .config для редактирования и убедись в наличии двух опций: CONFIG_IP_NF_TARGET_TARPIT=m CONFIG_IP_NF_MATCH_OSF=m Если эти строки присутствуют, то с помощью iptables можно рулить модулем определения OS и создавать пустые сокеты. О тонкой настройке этих патчей я расскажу чуть позже. После того как ты пересоберешь ядро, перезагрузись. Убедись, что кернел не потерял своей функциональности. Теперь зайди в исходники iptables и переустанови брандмауэр. Это необходимо для того, чтобы iptables подвязал все необходимые модули и перенес их в /lib/iptables. Тонкая настройка обновлений С установкой вроде как покончено. Теперь пришло время сделать то, ради чего, собственно, мы ставили Patch-o-Matic. А именно попрактиковаться в его применении. Я начну составление рулесов с самых вкусных и удобных модулей. 1. libipt_time.so Модуль представляет собой средство временной активации правила. Представь, например, такую ситуацию: ты админишь машину под linux, где установлен web-сервер. В целях экономии трафика не хочется, чтобы посетители обращались к вебу после 20 часов вечера. В 8 утра правило должно потерять свою силу. Естественно, ты можешь решить эту несложную проблему с помощью крона, но более изысканное решение предлагает модуль ipt_time. Добавляй следующее правило в систему и забудь о проблеме: # iptables -A INPUT -p tcp --dport 80 -m time --timestart 20:00 –timestop 08:00 -j REJECT Задачу можно усложнить дополнительным условием. Например, в выходные трафик тарифицируется по льготным расценкам, поэтому закрывать доступ в субботу и воскресенье необязательно. Модуль time снабжен опцией –-days, которая позволяет удобно конфигурировать временной диапазон. Правило будет выглядеть следующим образом: # iptables -A INPUT -p tcp --dport 80 -m time --timestart 20:00 --timestop 08:00 --days Mon,Tue,Wed,Thu,Fri -j REJECT |