День добрый. Возникли проблемы с правилами iptables и на одном из форумов подсказали, что не включены/не установлены какие-то модули netfilter. Как включить их на CentOS 5.5?
Установка модуля
Как включить их на CentOS 5.5?
Пересобрать ядро с поддержкой нужных вам модулей (кстати, не плохо бы уточнить, каких именно?).
Без пересборки ядра нельзя обойтись? Насчет модулей сейчас уточню.
Без пересборки ядра нельзя обойтись?
А что делать, если 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.
А как можно проверить, какие из модулей у меня уже установлены? Возможно, проблема совсем и не в них
А как можно проверить, какие из модулей у меня уже установлены?
У меня это можно сделать тремя способами, возможно, какой-то сработает и у вас
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]
[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
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
Можете, если не сложно, написать инструкцию или кинуть ссылку на ман по пересборке ядра именно с этим модулем? Ибо я никогда прежде ядро не пересобирал и слабо представляю, как это делается smile
читаем /usr/src/linux/Documentation/ ВСЁ!
Дело в том, что процесс обновления ядра в некотором роде «дистрибутивозависим». Возможно, в вашем дистрибутиве есть отдельный пакет с дополнительными модулями к вашему ядру. Пользователи, знающие ваш дистрибутив лучше меня, надеюсь, подскажут. Если же это не так, то... опишу вам, как я это делаю в 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]
Отредактируйте конфигурационный файл вашего загрузчика для нового ядра по аналогии с имеющимися настройками.
Обращаю ваше внимание, что в конфигурационный файл загрузчика нужно именно добавить загрузку нового ядра, оставив возможность загружаться со старого.
Lupo Alberto это вредный совет , ибо ТС прямо говорит что не разбирается в линуксе .
вот как-то так правильно для случая ТС тыц
ну и GOOGLE - CentOS сборка ядра кагбэ рулит ..
Lupo Alberto это вредный совет , ибо ТС прямо говорит что не разбирается в линуксе .
Да уж как мог, предупреждал. oO
...но если человеку в самом деле надо.
Хотя топикстартер мог бы подробнее описать ситуацию, вызвавшую необходимость пересобирать ядро.
4fun, для чего именно вам понадобился модуль hashlimit?
[quote=gramozeka]Lupo Alberto это вредный совет , ибо ТС прямо говорит что не разбирается в линуксе .
Да уж как мог, предупреждал. oO
...но если человеку в самом деле надо.
Хотя топикстартер мог бы подробнее описать ситуацию, вызвавшую необходимость пересобирать ядро.
4fun, для чего именно вам понадобился модуль hashlimit?[/quote]
Для фильтрации трафика посредством iptables с помощью правила:
$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ну так я ссылку дал , там есть дополнение в коменте и ссылка на оригинал - в бой солдат !
Спасибо. Буду пробовать. Напишу еще, если вдруг что-то будет непонятно :)