1

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

2

4fun пишет:

Как включить их на CentOS 5.5?

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

Был, был и весь вышел...

3 (24.06.2011 18:38:54 отредактировано 4fun)

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

4

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.

Был, был и весь вышел...

5

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

6

4fun пишет:

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

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

1.

 Консоль:
zegrep NETFILTER /proc/config.gz

2.
 Консоль:
grep NETFILTER /usr/src/linux/.config

3.
 Консоль:
ls /lib/modules/`uname -r`/kernel/net/netfilter

Был, был и весь вышел...

7

 Консоль:
# 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

Вот, собственно, список моих модулей. На том форуме не могут толком сказать название модуля, но он нужен для работы с hashlimit в iptables

8

4fun, у меня, к примеру, такой модуль есть:

 Консоль:

lupo@gentoo-laptop ~ % ls -1 /lib/modules/`uname -r`/kernel/net/netfilter | grep -i hashlimit
xt_hashlimit.ko

потому что в ядре у меня включена соответствующая опция
 Консоль:

grep HASHLIMIT /usr/src/linux/.config
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m

Так что, судя по всему, сборки нового ядра не избежать. Но это не страшно  wink

Был, был и весь вышел...

9

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

10

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

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

11

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

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

 Консоль:
zcat /proc/config.gz > /usr/src/linux/.config

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

Перейдите в директорию с исходными кодами:

 Консоль:
cd /usr/src/linux

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

Выполните команду

 Консоль:
make menuconfig

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

Введите команду

 Консоль:
make bzImage && make modules && make modules_install

Когда ядро скомпилируется, соберутся и установятся модули, скопируйте новое ядро в /boot, не забыв указать его имя.
Например,

 Консоль:
cp arch/x86/boot/bzImage /boot/bzImage-2.6.38.5-zen-0a

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

Был, был и весь вышел...

12 (25.06.2011 14:57:53 отредактировано gramozeka)

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

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

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

13

gramozeka пишет:

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

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

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

Был, был и весь вышел...

14

Lupo Alberto пишет:
gramozeka пишет:

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

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

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

Для фильтрации трафика посредством 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

15

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

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

16

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