як відключити модуль ядра 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 після видобутку цього, тому я не можу повністю скинути всі netfilters. У когось є думки?

Відповіді:


16
  1. видаліть будь-яку посилання на модуль стану в iptables. Отже, ніяких правил, як

    -A ВХОД -М стан - держава ЗВ'ЯЗАНА, Встановлена ​​-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


1
Величезне спасибі Віллі Тарро, творцю гапрокси, за чудову допомогу у списку розсилки хапроксі!
користувач22277

Хтось знає, як би ви перевернули крок 4, якщо потрібно?
UpTheCreek

Коли я роблю "modprobe -rf xt_state" та "modprobe -rf nf_conntrack_ipv6", він каже "FATAL: Модуль xt_state використовується." (У центсах), що я можу зробити?
діаїзм

У ubuntu я можу запускати "iptables -F" та "modprobe -rf xt_state nf_conntrack_ipv4" без жодної помилки.
діаїзм

5
  • Що щодо додавання модуля до /etc/modprobe.d/blacklist.conf?

  • Ти намагався:

    rmmod -f modulename
    

    Хоча:

           -f - сила
              Цей варіант може бути надзвичайно небезпечним: він не має ефекту, якщо тільки
              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 використовується." (На центсоси).

"модифікований" може бути корисним, може зменшити кількість використання будь-якого модуля: 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.