LinuxForum.Fans
Тема

Установка модуля

Автор: 4fun 16 сообщений 6532 просмотров
#172483

День добрый. Возникли проблемы с правилами iptables и на одном из форумов подсказали, что не включены/не установлены какие-то модули netfilter. Как включить их на CentOS 5.5?

#172491
4fun написал:
Как включить их на CentOS 5.5?

Пересобрать ядро с поддержкой нужных вам модулей (кстати, не плохо бы уточнить, каких именно?).

#172493

Без пересборки ядра нельзя обойтись? Насчет модулей сейчас уточню.

#172495
4fun написал:
Без пересборки ядра нельзя обойтись?

А что делать, если netfilter реализованы в ядре wink


Network packet filtering framework (Netfilter) (NETFILTER)

CONFIG_NETFILTER:

Netfilter is a framework for filtering and mangling network packets
that pass through your Linux box.

The most common use of packet filtering is to run your Linux box as
a firewall protecting a local network from the Internet. The type of
firewall provided by this kernel support is called a "packet
filter", which means that it can reject individual network packets
based on type, source, destination etc. The other kind of firewall,
a "proxy-based" one, is more secure but more intrusive and more
bothersome to set up; it inspects the network traffic much more
closely, modifies it and has knowledge about the higher level
protocols, which a packet filter lacks. Moreover, proxy-based
firewalls often require changes to the programs running on the local
clients. Proxy-based firewalls don't need support by the kernel, but
they are often combined with a packet filter, which only works if
you say Y here.
#172500

А как можно проверить, какие из модулей у меня уже установлены? Возможно, проблема совсем и не в них

#172502
4fun написал:
А как можно проверить, какие из модулей у меня уже установлены?

У меня это можно сделать тремя способами, возможно, какой-то сработает и у вас

1.[console]zegrep NETFILTER /proc/config.gz [/console]
2.[console]grep NETFILTER /usr/src/linux/.config[/console]
3.[console]ls /lib/modules/`uname -r`/kernel/net/netfilter[/console]

#172545

[console]# ls /lib/modules/`uname -r`/kernel/net/netfilter
nfnetlink.ko xt_CONNMARK.ko xt_mac.ko xt_quota.ko
nfnetlink_log.ko xt_CONNSECMARK.ko xt_mark.ko xt_realm.ko
nfnetlink_queue.ko xt_conntrack.ko xt_MARK.ko xt_sctp.ko
x_tables.ko xt_dccp.ko xt_multiport.ko xt_SECMARK.ko
xt_CLASSIFY.ko xt_DSCP.ko xt_NFQUEUE.ko xt_state.ko
xt_comment.ko xt_esp.ko xt_NOTRACK.ko xt_statistic.ko
xt_connbytes.ko xt_helper.ko xt_physdev.ko xt_string.ko
xt_connlimit.ko xt_length.ko xt_pkttype.ko xt_tcpmss.ko
xt_connmark.ko xt_limit.ko xt_policy.ko xt_tcpudp.ko[/console]
Вот, собственно, список моих модулей. На том форуме не могут толком сказать название модуля, но он нужен для работы с hashlimit в iptables

#172553

4fun, у меня, к примеру, такой модуль есть:
[console]
lupo@gentoo-laptop ~ % ls -1 /lib/modules/`uname -r`/kernel/net/netfilter | grep -i hashlimit
xt_hashlimit.ko
[/console]
потому что в ядре у меня включена соответствующая опция
[console]
grep HASHLIMIT /usr/src/linux/.config
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
[/console]
Так что, судя по всему, сборки нового ядра не избежать. Но это не страшно wink

#172571

Можете, если не сложно, написать инструкцию или кинуть ссылку на ман по пересборке ядра именно с этим модулем? Ибо я никогда прежде ядро не пересобирал и слабо представляю, как это делается smile

#172576

читаем /usr/src/linux/Documentation/ ВСЁ!

#172578

Дело в том, что процесс обновления ядра в некотором роде «дистрибутивозависим». Возможно, в вашем дистрибутиве есть отдельный пакет с дополнительными модулями к вашему ядру. Пользователи, знающие ваш дистрибутив лучше меня, надеюсь, подскажут. Если же это не так, то... опишу вам, как я это делаю в Gentoo.

Устанавливаете пакет с исходными кодами для версии вашего ядра. Вероятно, потребуется «пакет разработчика» (gcc, automake, autoconf и т.п.).
Далее копируете конфигурационный файл текущего ядра в директорию с исходными кодами.

[console]zcat /proc/config.gz > /usr/src/linux/.config[/console]

Если предыдущая команда не создаст конфигурационный файл (а это зависит от настроек текущего ядра), поищите его в директории /boot (в имени должно содержаться слово «config» и версия вашего ядра). Скопируйте его под именем .config в директорию /usr/src/linux.

Перейдите в директорию с исходными кодами:
[console]cd /usr/src/linux[/console]

Откройте на редактирование файл Makefile и чуть измените в нём переменную EXTRAVERSION, чтобы полученное новое ядро имело индивидуальное имя. Например, у меня было EXTRAVERSION = .5-zen-0, стало EXTRAVERSION = .5-zen-0a

Выполните команду
[console]make menuconfig[/console]

Запустится псевдографический интерфейс конфигуратора ядра.
Перейдите по пунктам
Networking support (NET) — Networking options — Network packet filtering framework (Netfilter) — Core Netfilter Configuration
Найдите "hashlimit" match support (NETFILTER_XT_MATCH_HASHLIMIT)
Установите с помощью клавиши пробела значение этой опции в «M» (модуль).
Последовательно нажимая клавишу «Esc» выйдите из конфигурации, не забыв в конце её сохранить.

Введите команду
[console]make bzImage && make modules && make modules_install [/console]

Когда ядро скомпилируется, соберутся и установятся модули, скопируйте новое ядро в /boot, не забыв указать его имя.
Например,
[console]cp arch/x86/boot/bzImage /boot/bzImage-2.6.38.5-zen-0a[/console]

Отредактируйте конфигурационный файл вашего загрузчика для нового ядра по аналогии с имеющимися настройками.
Обращаю ваше внимание, что в конфигурационный файл загрузчика нужно именно добавить загрузку нового ядра, оставив возможность загружаться со старого.

#172584

Lupo Alberto это вредный совет , ибо ТС прямо говорит что не разбирается в линуксе .
вот как-то так правильно для случая ТС тыц

ну и GOOGLE - CentOS сборка ядра кагбэ рулит ..

#172585
gramozeka написал:
Lupo Alberto это вредный совет , ибо ТС прямо говорит что не разбирается в линуксе .

Да уж как мог, предупреждал. oO
...но если человеку в самом деле надо.

Хотя топикстартер мог бы подробнее описать ситуацию, вызвавшую необходимость пересобирать ядро.
4fun, для чего именно вам понадобился модуль hashlimit?

#172586
Lupo Alberto написал:
[quote=gramozeka]Lupo Alberto это вредный совет , ибо ТС прямо говорит что не разбирается в линуксе .

Да уж как мог, предупреждал. oO
...но если человеку в самом деле надо.

Хотя топикстартер мог бы подробнее описать ситуацию, вызвавшую необходимость пересобирать ядро.
4fun, для чего именно вам понадобился модуль hashlimit?[/quote]
Для фильтрации трафика посредством iptables с помощью правила:

text
$ipt -D INPUT -p udp -m multiport --dport 27000:27999 -m length --length 52 -m conntrack --ctstate NEW -j DROP
$ipt -D INPUT -p udp -m multiport --dport 27000:27999 -m length --length 51:53 -m conntrack --ctstate NEW -m hashlimit --hashlimit-above 4/sec --hashlimit-burst 4 --hashlimit-htable-expire 1000 --hashlimit-htable-size 1000 --hashlimit-htable-max 1000000 --hashlimit-mode srcip,srcport,dstip,dstport --hashlimit-name Cstrike_new10 -j DROP
$ipt -D INPUT -p udp -m multiport --dport 27000:27999 -j DROP
#172593

ну так я ссылку дал , там есть дополнение в коменте и ссылка на оригинал - в бой солдат !

#172609

Спасибо. Буду пробовать. Напишу еще, если вдруг что-то будет непонятно :)

Войдите или зарегистрируйтесь, чтобы ответить.