как отключить модуль ядра nf_conntrack в CentOS 5.3 без перекомпиляции ядра

10

Я использую CentOS 5.3 и хочу отключить модуль nf_conntrack, чтобы улучшить производительность сети для haproxy. Я запускаю iptables с некоторыми простыми правилами. Мне не нужно отслеживание соединения.

Я работаю на облачных серверах Rackspace, поэтому не могу запустить собственное ядро. Я попытался запустить modprobe, но это не работает.

[mmarano@w1 w1]$ sudo modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.

[mmarano@w1 w1]$ uname -a
Linux w1.somewhere.com 2.6.24-23-xen #1 SMP Mon Jan 26 03:09:12 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
[mmarano@w1 w1]$ cat /etc/redhat-release 
CentOS release 5.3 (Final)

Я хочу продолжать запускать iptables после удаления, поэтому я не могу полностью отказаться от всех сетевых фильтров. У кого-нибудь есть мысли?

user22277
источник

Ответы:

16
  1. удалите любую ссылку на модуль состояния в iptables. Таким образом, нет правил, как

    -A ВХОД -m состояние - СОСТОЯНИЕ ОТНОШЕНО, УСТАНОВЛЕНО -j ПРИНЯТЬ

    для модуля состояния требуется модуль nf_conntrack (ip_conntrack)

  2. удалите следующую строку (если она существует) в / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Этот модуль требует ip_conntrack, который мы пытаемся угробить.

  3. перезагрузите iptables без ваших правил штата.

    sudo iptables -F

    # добавь свои настоящие правила

  4. бросьте модули. Я должен был использовать:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. подтвердите, что у вас нет ссылки на / proc / net / nf_conntrack

user22277
источник
1
Огромное спасибо Вилли Тарро, создателю haproxy, за потрясающую помощь в списке рассылки haproxy!
user22277
Кто-нибудь знает, как бы вы изменили шаг 4, если нужно?
UpTheCreek,
Когда я делаю "modprobe -rf xt_state" и "modprobe -rf nf_conntrack_ipv6", он говорит "FATAL: модуль xt_state используется." (Для centos), что я могу сделать?
diyism
В Ubuntu я могу запустить «iptables -F» и «modprobe -rf xt_state nf_conntrack_ipv4» без каких-либо ошибок.
diyism
5
  • Как насчет добавления модуля в /etc/modprobe.d/blacklist.conf?

  • Ты пробовал:

    rmmod -f modulename
    

    Хотя:

           -f --force
              Эта опция может быть чрезвычайно опасной: она не действует, если
              CONFIG_MODULE_FORCE_UNLOAD был установлен во время компиляции ядра.
              С помощью этой опции вы можете удалить используемые модули,
              или которые не предназначены для удаления, или были помечены как
              небезопасно (см. lsmod (8)).
    
Приостановлено до дальнейшего уведомления.
источник
4

Если вы используете Haproxy, вам нужно два типа правил в iptables для отключения conntrack в порту 80: одни для соединений от клиентов к вашему балансировщику и другие от вашего балансировщика к бэкэндам.

Вот правильный пример:

iptables -t raw -I PREROUTING -p tcp --dport 80 -j NOTRACK
iptables -t raw -I PREROUTING -p tcp  --sport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --dport 80 -j NOTRACK
iptables -t raw -I OUTPUT -p tcp --sport 80 -j NOTRACK
Рикардо Хрупкий
источник
0

Когда я делаю "modprobe -rf xt_state" и "modprobe -rf nf_conntrack_ipv6", он говорит "FATAL: модуль xt_state используется." (На centos).

«modused» может быть полезным, это может уменьшить количество использования любого модуля: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

Ключ: остановка службы ip6tables

и добавьте nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 в /etc/modprobe.d/blacklist.conf

diyism
источник