Kiptmic iptables faltando moduyles do kernel no container OpenVZ

1

Após uma migração sem êxito do p2v do meu servidor Ubuntu para um contêiner OpenVZ com o qual estou empilhado, pensei em tentar reinstalá-lo com base em um modelo limpo do OpenVZ para o Ubuntu 9.10 (do wiki do OpenVZ)

Quando tento carregar minhas regras do iptables na máquina da VM, tenho recebido erros que, na minha opinião, estão relacionados a módulos do kernel que não estão sendo carregados na VM do modelo de modelo /vz/XXX.conf.

Eu tenho testado com alguns posts que encontrei, mas fiquei com o erro:

WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
FATAL: Could not load /lib/modules/2.6.24-10-pve/modules.dep: No such file or directory
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'raw'

Error occurred at line: 2
Try 'iptables-restore -h' or 'iptables-restore --help' for more information.

Eu li sobre o template não carregando todos os módulos do iptables, então eu adicionei módulos ao XXX.conf da máquina virtual VZ assim:

IPTABLES="ip_tables iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc"

Como o erro permaneceu eu li que eu deveria construir dependências novamente na máquina virtual:

depmod -a but this returned an error:

WARNING: Couldn't open directory /lib/modules/2.6.24-10-pve: No such file or directory
FATAL: Could not open /lib/modules/2.6.24-10-pve/modules.dep.temp for writing: No such file or directory

Então eu li novamente sobre a criação do diretório vazio e refazendo "depmod -a".

Agora não recebo o erro de dependências, mas obtenho isto e não tenho a menor ideia de como proceder:

WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
FATAL: Module ip_tables not found.
iptables-restore v1.4.4: iptables-restore: unable to initialize table 'raw'

Error occurred at line: 2
Try 'iptables-restore -h' or 'iptables-restore --help' for more information.

Eu entendo que as regras do iptables precisam ser diferentes na máquina VM e talvez algumas das regras que estamos tentando aplicar (do nosso servidor físico) não sejam compatíveis, mas são apenas verificações de porta de destino e IP de origem que gostaria para poder ter disponível. Ouvi dizer que no modelo CentOS não há problemas com isso, então eu entendo é fazer com a configuração da VM.

Qualquer ajuda seria muito apreciada.

    
por luison 23.02.2010 / 11:51

3 respostas

1

Eu tinha fazendo a mesma pergunta uma vez por vez :) Acontece que parece que você precisa de pelo menos 2.6.32-ovz para RAW dentro de VEs.

    
por 10.04.2012 / 07:20
0

Não é uma resposta direta, mas para minhas máquinas openvz eu coloco minhas regras iptables na máquina host. Então eles estão em um lugar e everyting tem que ir thorugh o anfitrião de qualquer maneira. Você pode achar isso mais fácil e mais limpo (mas talvez não).

    
por 23.02.2010 / 14:13
0

De acordo com este artigo , é necessário configurar um pouco o nó do host. (O texto abaixo é principalmente do artigo, mas não é citado em bloco para torná-lo mais legível.)

Primeiro, o nó do host deve encaminhar todo o tráfego. Os comandos a seguir fazem com que a ação FORWARD padrão seja ACCEPT e, em seguida, libera todas as regras na cadeia FORWARD.

iptables -P FORWARD ACCEPT
iptables -F FORWARD

Se você quiser usar um firewall dentro de um contêiner, carregue esses módulos ANTES de iniciar o contêiner:

modprobe xt_tcpudp
modprobe ip_conntrack

Se você não fizer isso, receberá um erro como este: "iptables: nenhuma cadeia / destino / correspondência com esse nome"

Se você quiser usar regras de firewall com estado (e você deve!), você também precisará ter certeza de que 'ipt_state' está na opção 'IPTABLES' no seu arquivo vz.conf:

IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state"

Verifique também se o módulo 'xt_state' está carregado no host:

modprobe xt_state
    
por 25.05.2010 / 15:45