В этой статье описано то, как подключить дополнительные модули в
iptables, которые в iptables и в ядрах ветки 2.4.x не всегда включены по
умолчанию после установки Linux. В данном случае буду рассматривать мною
любимый дистрибутив Slackware Linux 10.2 Использовались: Ядро 2.4.31, iptables-1.3.3-20050906, patch-o-matic-ng-20040302.
В ОС Linux - iptables завязан с ядром, поэтому нам потребуются исходники
ядра, patch-o-matic и сам дистрибутив iptables.
По умолчанию при полной установке Slackware Linux 10.2 исходники ядра
устанавливаются в директорию /usr/src/linux-2.4.31 там же есть ссылка
/usr/src/~linux на каталог /usr/src/linux-2.4.31. Вообщем это неважно.
Если исходников нет:
Если у Вас есть дистрибутив то исходники ядра можно доустановить
используя утилиту pkgtool или же взять последнее ядро ветки 2.4.x с
сайта kernel.org
Исходники iptables можно взять с сайта netfilter.org , оттуда же можно
скачать patch-o-matic.
Допустим у Вас есть все вышеперечисленное, тогда распаковываем и кладем
исходники ядра и iptables соответственно в /usr/src/linux и
/usr/src/iptables , patch-o-matic я распаковал в
/home/temp/patch-o-matic .
1) Включение модулей в ядре:
cd /usr/src/linux
make menuconfig
Идем в Networking Options далее в IP: Netfilter Configuration и там
выбираем все модули
Выбрали. Сохраняем конфиг ядра. Выходим из menuconfig.
make modules
make modules_install
Все с ядром закончено.
2) Пропатчивание iptables с помощью пакета patch-o-matic:
cd /home/temp/patch-o-matic
./runme extra
И отвечаем на вполне внятные вопросы, какие модули Вам требуются.
Примечание: Не все модули совместимы друг с другом, поэтому
patch-o-matic выведет сообщение об ошибке - следовательно пропускаете
этот модуль. Когда на все вопросы будут даны ответы, patch-o-matic сам
пропатчит исходники iptables, которые вы распаковали в /usr/src/iptables.
3) Компилирование и установка пропатченного пакета iptables.
Примечание 1: Для полной совместимости в путях, куда будут
проинсталлирован iptables я сделал следующее: Отредактировал в файле
/usr/src/iptables/Makefile переменную PREFIX. Сначала выставил
PREFIX:=/usr/local и сделал ниже следующие действия, а потом выставил
PREFIX:=/usr и сделал make install , так как операция make уже была
сделана и больше не понадобилась.
Примечание 2: make -i в данном случае обозначает игнорирование ошибок
при компиляции iptables, так как здесь у меня возникли трудности с
определенными недоделанными модулями. Они мне были не нужны, поэтому я
просто их проигнорировал. Если возникнут ошибки на определенных модулях
и остановка компиляции, надо просто посмотреть на каком модуле была
остановка компиляции, зайти в директорию - cd
/usr/src/iptables/extensions и стереть файлик с названием данного
модуля. После этого перезапустить make. Возможно в новых версиях
iptables это уже исправлено, возможно эта проблема связана с
компилятором gcc в Slackware Linux 10.2
cd /usr/src/iptables
make -i
make install
Вот и все