Wie deaktiviere ich das Kernelmodul nf_conntrack in CentOS 5.3, ohne den Kernel neu zu kompilieren?

10

Ich verwende CentOS 5.3 und möchte das Modul nf_conntrack deaktivieren, um die Netzwerkleistung für Haproxy zu verbessern. Ich führe iptables mit einigen einfachen Regeln aus. Ich brauche die Verbindungsverfolgung nicht wirklich.

Ich arbeite auf Rackspace-Cloud-Servern, daher kann ich keinen benutzerdefinierten Kernel ausführen. Ich habe versucht, modprobe auszuführen, aber das funktioniert nicht.

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

Ich möchte weiterhin iptables ausführen, nachdem ich dies herausgerissen habe, damit ich nicht alle Netzfilter ganz loswerden kann. Hat jemand irgendwelche Gedanken?

user22277
quelle

Antworten:

16
  1. Entfernen Sie alle Verweise auf das Statusmodul in iptables. Also keine Regeln wie

    -A INPUT -m Zustand - Zustand RELATED, ESTABLISHED -j ACCEPT

    Das Statusmodul benötigt das Modul nf_conntrack (ip_conntrack)

  2. Entfernen Sie die folgende Zeile (falls vorhanden) in / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Dieses Modul benötigt ip_conntrack, das wir loswerden wollen.

  3. Laden Sie iptables ohne Ihre Statusregeln neu.

    sudo iptables -F

    # füge deine wirklichen Regeln hinzu

  4. Lassen Sie die Module fallen. Ich musste verwenden:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. Bestätigen Sie, dass Sie keinen Verweis auf / proc / net / nf_conntrack haben

user22277
quelle
1
Ein RIESIGES Dankeschön an Willy Tarreau, den Erfinder von Haproxy, für die großartige Hilfe auf der Haproxy-Mailingliste!
user22277
Weiß jemand, wie Sie Schritt 4 umkehren würden, wenn Sie müssten?
UpTheCreek
Wenn ich "modprobe -rf xt_state" und "modprobe -rf nf_conntrack_ipv6" mache, heißt es "FATAL: Modul xt_state wird verwendet." (Auf Centos), was kann ich tun?
DIYismus
Auf Ubuntu kann ich "iptables -F" und "modprobe -rf xt_state nf_conntrack_ipv4" ohne Fehler ausführen.
DIYismus
5
  • Was ist mit dem Hinzufügen des Moduls /etc/modprobe.d/blacklist.conf?

  • Hast du es versucht:

    rmmod -f modulename
    

    Obwohl:

           -f --force
              Diese Option kann äußerst gefährlich sein: Sie hat keine Auswirkung, es sei denn
              CONFIG_MODULE_FORCE_UNLOAD wurde beim Kompilieren des Kernels festgelegt.
              Mit dieser Option können Sie Module entfernen, die verwendet werden.
              oder die nicht zum Entfernen bestimmt sind oder als gekennzeichnet wurden
              unsicher (siehe lsmod (8)).
    
Bis auf weiteres angehalten.
quelle
4

Wenn Sie Haproxy ausführen, benötigen Sie zwei Arten von Regeln in iptables, um die Verbindung in Port 80 zu deaktivieren: eine für die Verbindungen von den Clients zu Ihrem Balancer und andere von Ihrem Balancer zu den Backends.

Hier ist ein gültiges Beispiel:

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
quelle
0

Wenn ich "modprobe -rf xt_state" und "modprobe -rf nf_conntrack_ipv6" mache, heißt es "FATAL: Modul xt_state wird verwendet." (Auf Centos).

"modused" kann nützlich sein, es kann die Nutzungsanzahl eines Moduls verringern: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

Der Schlüssel ist: Service ip6tables stop

und fügen Sie nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 in /etc/modprobe.d/blacklist.conf hinzu

DIYismus
quelle