como desabilito o módulo do kernel nf_conntrack no CentOS 5.3 sem recompilar o kernel

10

Estou executando o CentOS 5.3 e quero desativar o módulo nf_conntrack para melhorar o desempenho da rede para haproxy. Estou executando o iptables com algumas regras simples. Eu realmente não preciso do rastreamento de conexão.

Estou executando em servidores em nuvem da Rackspace, portanto não consigo executar um kernel personalizado. Eu tentei executar o modprobe, mas isso não 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)

Quero continuar executando o iptables depois de extrair isso, por isso não posso abandonar todos os netfilters. Alguém tem alguma opinião?

user22277
fonte

Respostas:

16
  1. remova qualquer referência ao módulo de estado no iptables. Portanto, nenhuma regra como

    -A INPUT -m state --state RELACIONADO, ESTABELECIDO -j ACEITA

    o módulo state requer o módulo nf_conntrack (ip_conntrack)

  2. remova a seguinte linha (se existir) em / etc / sysconfig / iptables-config

    IPTABLES_MODULES = "ip_conntrack_netbios_ns"

    Esse módulo requer ip_conntrack que estamos tentando abandonar.

  3. recarregue iptables sem suas regras de estado.

    sudo iptables -F

    # adicione suas regras reais

  4. solte os módulos. Eu tive que usar:

    sudo modprobe -r xt_NOTRACK nf_conntrack_netbios_ns nf_conntrack_ipv4 xt_state

    sudo modprobe -r nf_conntrack

  5. confirme que você não tem uma referência a / proc / net / nf_conntrack

user22277
fonte
1
MUITO obrigado a Willy Tarreau, criador do haproxy, pela incrível ajuda na lista de e-mails haproxy!
User22277 09/10
Alguém sabe como você reverteria a etapa 4, se necessário?
UpTheCreek 26/09/14
Quando eu faço "modprobe -rf xt_state" e "modprobe -rf nf_conntrack_ipv6", ele diz "FATAL: O módulo xt_state está em uso." (No centos), o que posso fazer?
diyism
No ubuntu, eu posso executar "iptables -F" e "modprobe -rf xt_state nf_conntrack_ipv4" sem nenhum erro.
diyism
5
  • Que tal adicionar o módulo /etc/modprobe.d/blacklist.conf?

  • Você tentou:

    rmmod -f modulename
    

    Apesar:

           -f --force
              Essa opção pode ser extremamente perigosa: não tem efeito, a menos que
              CONFIG_MODULE_FORCE_UNLOAD foi definido quando o kernel foi compilado.
              Com esta opção, você pode remover os módulos que estão sendo usados,
              ou que não foram projetados para serem removidos ou foram marcados como
              inseguro (consulte lsmod (8)).
    
Pausado até novo aviso.
fonte
4

Se você estiver executando o Haproxy, precisará de dois tipos de regras no iptables para desativar o conntrack na porta 80: umas para as conexões dos clientes ao seu balanceador e outras do seu balanceador para os back-ends.

Aqui está um exemplo 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
fonte
0

Quando eu faço "modprobe -rf xt_state" e "modprobe -rf nf_conntrack_ipv6", ele diz "FATAL: O módulo xt_state está em uso." (Em centos).

"modused" pode ser útil, pode diminuir a contagem de uso de qualquer módulo: http://www2.informatik.uni-freiburg.de/~danlee/fun/modused/

A chave é: service ip6tables stop

e adicione nf_conntrack, xt_state, iptable_nat, nf_nat, nf_conntrack_ipv4, nf_conntrack_ipv6 no /etc/modprobe.d/blacklist.conf

diyism
fonte