Proxmox 2.0 los openvz no le funciona el iptables

Imagen de yoirear

Forums: 

Problemas con proxmox 2.0-54, despuer de agragar los modulos del iptables

Habilitando los modulos de iptables en los contenedores de proxmox
Modificar el fichero /etc/vz/vz.conf comentamos la linea que empieza por IPTABLES y ponemos esta:

IPTABLES="ip_conntrack_tftp ipt_REJECT ipt_recent ipt_owner ipt_REDIRECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state iptable_nat ip_nat_ftp"

#/etc/init.d/vz restart

En el contenedor:
Da este error cuando aplico las reglas del firewall:
esta es una de las regas que da problemas

### Enmascaramiento del correo
iptables -t nat -A POSTROUTING -s 192.168.20.10 -p tcp --dport 25 -o $externa -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.20.10 -p udp --dport 53 -o $externa -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.20.10 -p tcp --dport 53 -o $externa -j MASQUERADE

no enruta na da de trafico
el error es el siguiente:

iptables v1.4.8: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
iptables v1.4.8: host/network `eth0' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.

Para que un nodo openvz pueda

Imagen de RazaMetaL

Para que un nodo openvz pueda usar módulos iptables asegúrate de que en proxmox esten cargados los siguientes modulos:

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

Puedes habilitarlos con el siguiente comando:

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

Y luego reinicias la maquina virtual openvz.

En el fichero /etc/vz/vz.conf deberias tener una linea como esta:

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

Acá puedes encontrar mas información:
[url]http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf[/url]
[url]http://wiki.openvz.org/Setting_up_an_iptables_firewall[/url]

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Proxmox 2.0 + iptables . solucionado

Imagen de yoirear

Habilitando los modulos de iptables en los contenedores de proxmox

Modificar el fichero /etc/vz/vz.conf comentamos la linea que empieza por IPTABLES y ponemos esta:

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

reiniciamos vz

#/etc/init.d/vz restart

Habilitar los modulos de iptables al contianer

Apagamos el contenedor que le vamos a habilitar los modulos y corremos lo siguiente

vzctl set 106 --iptables "ip_tables ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ip_conntrack ip_conntrack_ftp ip_conntrack_irc ipt_LOG ipt_conntrack ipt_helper ipt_state iptable_nat ip_nat_ftp ip_nat_irc ipt_TOS ipt_REDIRECT xt_mac ipt_recent ipt_owner" --save

Procedemos a correr nuestro script de iptables en el contenedor y no debe dar errores

Ahora en caso de que queramos usar Masquerade en nuestra máquina virtual, en el host proxmox haremos lo siguiente:

Primero veremos que en el listado de modulos de iptables que estan cargados mediante lo siguiente:

lsmod | grep ipt

y nos dará la siguiente salida:

ipt_REDIRECT 1143 0
iptable_nat 4267 1
ipt_LOG 4758 0
iptable_mangle 2881 0
iptable_filter 2322 1
ipt_REJECT 1953 1
ip_tables 14123 3 iptable_nat,iptable_mangle,iptable_filter
ipt_MASQUERADE 1213 1
nf_nat 13258 5 ipt_REDIRECT,nf_nat_irc,nf_nat_ftp,iptable_nat
nf_conntrack_ipv4 10143 6 iptable_nat,nf_nat
nf_conntrack 46563 10 nf_nat_irc,nf_nat_ftp,iptable_nat,xt_state,xt_helper,xt_conntrack,nf_conntrack_irc,nf_conntrack_ftp,nf_nat,nf_conntrack_ipv4
x_tables 13117 23 ip6t_REJECT,ip6_tables,xt_tcpudp,xt_owner,xt_recent,xt_mac,ipt_REDIRECT,xt_DSCP,iptable_nat,xt_state,xt_helper,
xt_conntrack,ipt_LOG,xt_length,xt_hl,xt_tcpmss,xt_TCPMSS,xt_multiport,xt_limit,xt_dscp,ipt_REJECT,ip_tables

Como vemos el modulo masquerade no esta cargado en nuestro host proxmox tendríamos que cargarlo para que podamos usarlo en nuestro script en el contenedor.

Para habilitarlo:

modprobe ipt_MASQUERADE

Ahora veremos si ya esta cargado:

lsmod | grep ipt

y nos dará la siguiente salida:

ipt_REDIRECT 1143 0
iptable_nat 4267 1
ipt_LOG 4758 0
iptable_mangle 2881 0
iptable_filter 2322 1
ipt_REJECT 1953 1
ip_tables 14123 3 iptable_nat,iptable_mangle,iptable_filter
ipt_MASQUERADE 1213 1
nf_nat 13258 5 ipt_REDIRECT,nf_nat_irc,nf_nat_ftp,iptable_nat,ipt_MASQUERADE
nf_conntrack_ipv4 10143 6 iptable_nat,nf_nat
nf_conntrack 46563 10 nf_nat_irc,nf_nat_ftp,iptable_nat,xt_state,xt_helper,xt_conntrack,nf_conntrack_irc,nf_conntrack_ftp,nf_nat,nf_conntrack_ipv4
x_tables 13117 23 ip6t_REJECT,ip6_tables,xt_tcpudp,xt_owner,xt_recent,xt_mac,ipt_REDIRECT,xt_DSCP,iptable_nat,xt_state,xt_helper,xt_conntrack,
ipt_LOG,xt_length,xt_hl,xt_tcpmss,xt_TCPMSS,xt_multiport,xt_limit,xt_dscp,ipt_REJECT,ip_tables,ipt_MASQUERADE

Como vemos ya esta cargado el modulo masquerade que ahora podremos usar nuestro script en nuestro contenedor.

Una variante sería hacer un script que cargue el modulo cuando arranque las interfaces de red del host proxmox

Ejemplo:

nano modipt.sh

Agregamos lo siguiente:

echo "Cargando modulo de iptable ipt_MASQUERADE"
modprobe ipt_MASQUERADE
echo ""
echo "Listando modulos habilitados"
lsmod | grep ipt

Guardamos y damos los permisos de ejecución:

chmos 755 modipt.sh

y en /etc/network/interfaces agregamos pre-up /camino/modipt.sh quedando de la siguiente manera:

auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
address 192.168.10.22
netmask 255.255.255.0
gateway 192.168.10.249
bridge_ports eth0
bridge_stp off
bridge_fd 0

auto vmbr1
iface vmbr1 inet static
address 192.168.1.10
netmask 255.255.255.0
bridge_ports eth3
bridge_stp off
bridge_fd 0

pre-up /root/modipt.sh

Y hasta aquí por ahora.

Me ayudo:
Administrador de Red
ERMP Cfgos

Gracias por cooperar,
Yoire Amador Rodriguez

yoirear