jak wyłączyć moduł jądra nf_conntrack w CentOS 5.3 bez ponownej kompilacji jądra


10

Używam CentOS 5.3 i chcę wyłączyć moduł nf_conntrack, aby poprawić wydajność sieci dla haproxy. Używam iptables z kilkoma prostymi regułami. Naprawdę nie potrzebuję śledzenia połączenia.

Pracuję na serwerach w chmurze Rackspace, więc nie mogę uruchomić niestandardowego jądra. Próbowałem uruchomić modprobe, ale to nie działa.

[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)

Chcę nadal uruchamiać iptables po zgraniu tego, więc nie mogę całkiem porzucić wszystkich filtrów sieciowych. Czy ktoś ma jakieś przemyślenia?

Odpowiedzi:


16
  1. usuń wszelkie odniesienia do modułu stanu w iptables. Więc nie ma takich zasad

    -A WEJŚCIE -m stan - stan ZWIĄZANE, USTALONE -j AKCEPTUJĘ

    moduł stanu wymaga modułu nf_conntrack (ip_conntrack)

  2. usuń następujący wiersz (jeśli istnieje) w / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Ten moduł wymaga ip_conntrack, który próbujemy porzucić.

  3. przeładuj iptables bez twoich reguł państwowych.

    sudo iptables -F

    # dodaj swoje prawdziwe zasady

  4. upuść moduły. Musiałem użyć:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. potwierdź, że nie masz odniesienia do / proc / net / nf_conntrack


1
Ogromne podziękowania dla Willy'ego Tarreau, twórcy haproxy, za niesamowitą pomoc na liście mailingowej haproxy!
user22277,

Czy ktoś wie, jak cofnąłbyś krok 4, gdybyś musiał?
UpTheCreek

Kiedy zrobię „modprobe -rf xt_state” i „modprobe -rf nf_conntrack_ipv6”, powie „FATAL: Moduł xt_state jest w użyciu.” (Na centos), co mogę zrobić?
diyizm

Na Ubuntu mogę uruchomić „iptables -F” i „modprobe -rf xt_state nf_conntrack_ipv4” bez żadnego błędu.
diyizm

5
  • Co z dodaniem modułu /etc/modprobe.d/blacklist.conf?

  • Czy próbowałeś:

    rmmod -f modulename
    

    Mimo że:

           -f --force
              Ta opcja może być bardzo niebezpieczna: nie działa, chyba że
              CONFIG_MODULE_FORCE_UNLOAD został ustawiony podczas kompilacji jądra.
              Dzięki tej opcji możesz usunąć używane moduły,
              lub które nie zostały zaprojektowane do usunięcia lub zostały oznaczone jako
              niebezpieczne (patrz lsmod (8)).
    

4

Jeśli korzystasz z Haproxy, potrzebujesz dwóch rodzajów reguł w iptables, aby wyłączyć conntrack na porcie 80: te dla połączeń między klientami a twoim balansem i inne od twojego balanera do backendów.

Oto poprawny przykład:

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

Kiedy zrobię „modprobe -rf xt_state” i „modprobe -rf nf_conntrack_ipv6”, powie „FATAL: moduł xt_state jest w użyciu.” (Na centos).

„mododowany” może być przydatny, może zmniejszyć liczbę użytkowników dowolnego modułu: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

Kluczem jest: usługa ip6tables stop

i dodaj nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 do /etc/modprobe.d/blacklist.conf

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.