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