¿Cómo deshabilito el módulo del núcleo nf_conntrack en CentOS 5.3 sin volver a compilar el núcleo?

10

Estoy ejecutando CentOS 5.3 y quiero deshabilitar el módulo nf_conntrack para mejorar el rendimiento de la red para haproxy. Estoy ejecutando iptables con algunas reglas simples. Realmente no necesito el seguimiento de la conexión.

Estoy ejecutando en servidores en la nube Rackspace, por lo que no puedo ejecutar un núcleo personalizado. He intentado ejecutar modprobe, pero eso no funciona.

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

Quiero continuar ejecutando iptables después de extraer esto, por lo que no puedo deshacerme de todos los filtros de red. Alguien tiene alguna idea?

usuario22277
fuente

Respuestas:

16
  1. elimine cualquier referencia al módulo de estado en iptables. Entonces, no hay reglas como

    -A ENTRADA -m estado --estado RELACIONADO, ESTABLECIDO -j ACEPTAR

    el módulo de estado requiere el módulo nf_conntrack (ip_conntrack)

  2. elimine la siguiente línea (si existe) en / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Ese módulo requiere ip_conntrack que estamos tratando de deshacernos.

  3. recarga iptables sin las reglas de tu estado.

    sudo iptables -F

    # agrega tus reglas reales

  4. soltar los módulos. Tuve que usar:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. confirme que no tiene una referencia a / proc / net / nf_conntrack

usuario22277
fuente
1
¡ENORMES gracias a Willy Tarreau, creador de haproxy, por su increíble ayuda en la lista de correo de haproxy!
user22277
¿Alguien sabe cómo revertiría el paso 4 si fuera necesario?
UpTheCreek
Cuando hago "modprobe -rf xt_state" y "modprobe -rf nf_conntrack_ipv6" dice "FATAL: el módulo xt_state está en uso" (en centos), ¿qué puedo hacer?
diyism
En ubuntu, puedo ejecutar "iptables -F" y "modprobe -rf xt_state nf_conntrack_ipv4" sin ningún error.
Diyism
5
  • ¿Qué hay de agregar el módulo a /etc/modprobe.d/blacklist.conf?

  • Has probado:

    rmmod -f modulename
    

    A pesar de que:

           -f --force
              Esta opción puede ser extremadamente peligrosa: no tiene efecto a menos que
              CONFIG_MODULE_FORCE_UNLOAD se estableció cuando se compiló el núcleo.
              Con esta opción, puede eliminar los módulos que se están utilizando,
              o que no están diseñados para ser eliminados, o han sido marcados como
              inseguro (ver lsmod (8)).
    
Pausado hasta nuevo aviso.
fuente
4

Si está ejecutando Haproxy, necesita dos tipos de reglas en iptables para deshabilitar conntrack en el puerto 80: unas para las conexiones de los clientes a su equilibrador y otras de su equilibrador a los backends.

Aquí hay un ejemplo válido:

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

Cuando hago "modprobe -rf xt_state" y "modprobe -rf nf_conntrack_ipv6" dice "FATAL: el módulo xt_state está en uso" (en centos).

"modused" puede ser útil, puede disminuir el conteo de uso de cualquier módulo: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

La clave es: servicio ip6tables stop

y agregue nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 en /etc/modprobe.d/blacklist.conf

diyism
fuente