Второе рождение iptables Докучаев Дмитрий aka Forb Xakep, номер #069, стр. 069-072-1 (forb@real.xakep.ru) Устанавливаем функциональный патч для iptables До недавнего времени у любителей BSD-систем возможности стандартного Linux-файрвола iptables могли вызвать только приступы гулкого смеха. «Ну это же полный слив! - обоснованно заявляли они. – Это просто какая-то тупая недоделка». В самом деле, тот же pf значительно функциональнее iptables: он умеет лихо шейпить трафик, делать OS FingerPrint, компоновать порты и ip-адреса в одном правиле. Нет повода для грусти, амиго, сегодня мы утрем нос зазнавшимся BSD’шникам! Что говорить, iptables не совсем универсальный файрвол. Он умеет лишь элементарные вещи: фильтровать доступ, мутить NAT, но не более того. Многие админы жалуются на неудобный синтаксис и ограниченные возможности известного сетевого экрана. Но недавно программисты со всего мира собрали в единый пакет все патчи, которые когда-либо писали. Проект получил красивое название Patch-o-Matic. Что это за зверь такой? Patch-o-Matic (или просто POM) представляет собой набор различных патчей, укрепляющих и модифицирующих брандмауэр. После установки этого чудесного фикса админ может рулить сервером по полной: устанавливать вероятность срабатывания того или иного правила, ставить временные рамки рулеса, ограничивать подключения к определенному демону, очищать заголовки пакетов и искать в них определенные слова, определять версию OS и многое другое. Я сам удивился, когда узнал о функциональности патча и сперва подумал, что это какая-то лажа. Но установив обновление, я не разочаровался в новых фичах межсетевого фильтра. Прежде чем что-либо ставить, следует оговориться. Рассматриваемый патч - это не просто набор модулей для iptables, поэтому перенос новых модулей в /lib/iptables не прокатит. Потребуется внести изменения в код ядра, добавив туда необходимые таблицы и цели. То есть rpm-щики страдают в первую очередь :). Если ты в их числе, научись собирать ядро из исходников. Работа POM проверялась на ядре 2.4.24 (более свежую версию ломало выкачивать из инета :)). Что касается ветки 2.6.x, о ней в INSTALL вообще ничего не сказано, возможно, с подобным ядрышком сдружить POM не получится (хотя я не проверял). Вот, собственно, и все тонкости установки. Если тебя ничего не останавливает, давай приступим к процессу накладывания патчей. Выбери свой модуль! Если ядро собирается из исходников, то и файрвол придется перекомпилировать. Выкачивай свежую версию iptables-1.2.9 (http://netfilter.org/files/iptables-1.2.9.tar.bz2) и прилагающийся к ней патч (http://netfilter.org/files/patch-o-matic-ng-20040621.tar.bz2). Обязательно убедись в наличии файла /etc/termcap (инсталлятор POM работает с библиотекой termcap). Теперь пересобери iptables. Чтобы процесс пошел правильным путем, твое ядро должно быть собрано из исходников, причем последние понадобятся и для сборки файрвола. Если ты любитель rpm-ядер, выкачивай последний кернел с ftp.kernel.org и компилируй его. Я полагаю, что проблем с ядром у тебя не возникнет. Если так, переходи в каталог с patch-o-matic. Здесь ты не найдешь ничего интересного, лишь пару текстовиков и перловый скрипт runme. Его и запускай :). Без стартовых параметров сценарий откажется работать. Дело в том, что необходимо указать тип устанавливаемых патчей. Нас интересуют extra и base (патчи, которые идеально работают друг с другом). Когда ты запустишь сценарий, тебя ждет интересный интерактивный опрос. Будет показан help к модулю и предложение установить патч. Если честно, лучше всего зайти в каталоги base и extra, самостоятельно изучить каждое обновление, составить краткий список необходимых патчей и установить их. Но это мое мнение, ты можешь поступать как тебе угодно. |