Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #69, СЕНТЯБРЬ 2004 г.

Второе рождение 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

Назад на стр. 069-072-1  Содержание  Вперед на стр. 069-072-3