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?

użytkownik22277
źródło

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

użytkownik22277
źródło
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)).
    
Wstrzymano do odwołania.
źródło
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
Ricardo Fraile
źródło
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

diyizm
źródło