Хакер №024. Спецвыпуск
ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга
ViTLS (vitls@beshtau.ru)
Спецвыпуск Xakep, номер #024, стр. 024-038-3
Названия нужных тебе параметров ты можешь отрыть в подсказке программ настройки. На рис. 5 параметр выделен черным.
Список параметров, которые необходимы для настройки пакетного фильтра, а также подробное разъяснение, для чего это все нужно, находятся в документе Iptables-tutorial (http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html). Я тебе настоятельно рекомендую его изучить. Если у тебя ядро 2.2.х, то тебе понадобится документ Ipchains-HOWTO. Его русский перевод есть на сайте linux.org.ru в разделе документы. Пересказать эти доки здесь нет никакой возможности, так что грызи их сам, как истинный никсоид.
ЧТО ПОЛУЧАЕМ
После того как мы закончили настройку параметров ядра, его надо собрать. Я тебя хочу предостеречь, чтобы ты не давил Y на все нужные тебе опции. Дело в том, что куски кода, отвечающие за работу тех или иных опций, будут включены в ядро, и оно станет очень большим, что может привести к траблам с компиляцией. Проще отобрать фишки, используемые непостоянно, и оформить их в виде модуля. Потом этот модуль ты сможешь сам включить или выключить в любое время. Ядра от производителей практически все содержат именно в виде модулей. Так удобнее.
Для сборки ядра тебе нужно выполнить команды:
make dep
make bzImage
make modules
make modules_install
make install
Последняя команда установит ядро. Короче, всю эту науку прочитаешь в Kernel-HOWTO.
Гораздо удобнее воспользоваться ядром, идущим с дистрибутивом. Зачастую, там даже не нужны исходные тексты и не нужно пересобирать ядро самому, чтобы настроить его по своему вкусу. Практически все опции ядра делаются в виде модулей, и тебе остается только включить нужные.
Для ядер 2.4.х модули, отвечающие за пакетный фильтр, лежат в каталоге /lib/modules/2.4.x/kernel/net/ipv4/netfilter. Для ядер 2.2.х - /lib/modules/2.2.x/net/ipv4.
Загляни туда и увидишь огромную кучу файлов. Каждый из этих модулей отвечает за какую-нибудь дополнительную функцию пакетного фильтра. Если делать универсальную и гибкую систему, то тебе придется все оформить в виде модулей. Их получится немало. В моей системе их 71 штука. Если их перечислять все, то я просто застрелюсь. Посмотрев на список внимательно и сбросив первое офигевание от количества файлов, ты увидишь, что модули можно поделить на несколько групп с общими признаками в названии.
Группа ip_conntrack*.o. Модули этой группы используются для трассировки соединений (даже не спрашивай меня, что это такое, все равно не скажу), а также применяются для трансляции адресов. В этой группе присутствуют модули для разных протоколов (ftp, irc, netlink, pptp, udp, tcp).
Группа ip_nat*.o используется для трансляции адресов (Network Address Tranlation, NAT). Несколько модулей для различных протоколов.
Группа ipt*.o служит для управления и эксплуатации пакетным фильтром iptables. Это добавление правила, установка маркировок, установка владельца пакета, действия с пакетом и многое другое. Наличие этой группы зависит от установленных параметров ядра CONFIG_IP_NF_*. Подробное описание этих параметров есть в Iptables-tutorial.
Назад на стр. 024-038-2 Содержание Вперед на стр. 024-038-4