LINUX.ORG.RU
ФорумAdmin

Модули iptables


0

0

Как узнать список iptables модулей доступных в системе? Дистрибутив RedHat EL 4. Ведь далеко не все модули при прописывании в iptables-config будут подгружаться при перезагрузке iptables.
И как можно установить какой либо модуль, например geoip?
Я понимаю что есть документация и я её освоил
http://people.netfilter.org/~peejix/geoip/howto/geoip-HOWTO-2.html
но неужели нельзя на уже работающей системе, без переустановки, поставить модуль iptables который нужен?

sudo ls -1 /lib/modules/2.6.18.3/kernel/net/*/netfilter

Это какие модули есть. Если есть исходнгики конкретно Вашего ядра, можно включить нужный модуль, собрать и потом одно из

(правильно) sudo make modules_install

(не сломает имеющиеся модули, напр. дрова нвидии) sudo cp имя_модуля куда_следует

после чего depmod -a , и тоже от рута.

вроде так. Переустанавливать ничего не надо, но исходники должны быть _строго_ от Вашего ядра.

lodin ★★★★
()
Ответ на: комментарий от lodin

> вроде так. Переустанавливать ничего не надо, но исходники должны быть _строго_ от Вашего ядра.

> lodin (*) (22.06.2007 16:49:55)

да? и откуда /sbin/iptables узнает про эти модули?

если я ничего не путаю, это уже 3-4-й пост "про это". ладно, объясню ещё раз:

найти, скачать и установить src.rpm рабочего ядра;

найти, скачать и установить src.rpm рабочих iptables;

если не установлено, установить пакет rpm-build (вроде так);

сказать на спеки "rpmbuild -bp" (+ для ядра, скорее всего "--target i686");

пропатчть нужными патчами полученные сырцы ядра и iptables;

собрать их;

установить.

berrywizard ★★★★★
()
Ответ на: комментарий от berrywizard

>да? и откуда /sbin/iptables узнает про эти модули?

Насколько я помню (давно я в iptables ковырялся), /sbin/iptables тупо пытается загрузить модуль "ip_tables", и больше ей ничего не надо.

/sbin/iptables только загружает свои dll (из каталога /lib/iptables) для преобразования параметров командной строки в двоичные структуры, передаваемые в ядро. В ядре при анализе этих структур ищутся соотв. match/target, и, если разрешена автоматическая загрузка модулей, идет запрос на загрузку модуля (добавляя префикс "ipt_").

А про модули типа ip_conntrack_ftp вобще ни /sbin/iptables ни ядро не знает, их приходится либо прописывать в автозагрузку, либо грузить руками.

В общем, если исходники ядра уже установлены и пропатчены, пропатченное ядро уже скомпилено и загружено, то обычно можно докомпилировать недостающий модуль iptables и ручками скопировать его в /lib/modules/... но это а) нарушает "пакетность" системы, так как этот файл (модуль) не пренадлежит каком-либо пакету, б) до некоторой степени рисковано, бывает что включение чего-то даже модулем требует пересборки всего ядра...

mky ★★★★★
()
Ответ на: комментарий от mky

> Насколько я помню (давно я в iptables ковырялся), /sbin/iptables тупо пытается загрузить модуль "ip_tables", и больше ей ничего не надо

да, похоже я с TARGET'ами перепутал

berrywizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.