una permitir masquerade ejercicios ejemplos editar comandos linux-kernel debian iptables

linux-kernel - permitir - iptables masquerade ejemplos



iptables v1.4.14: no se puede inicializar la tabla de iptables `nat '': la tabla no existe(¿necesita insmod?) (11)

Estoy tratando de establecer reglas de iptable, y recibí el siguiente mensaje de error cuando uso iptable:

iptables v1.4.14: can''t initialize iptables table `nat'': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.

Estoy usando :

cat /etc/debian_version 7.4 uname -a Linux myserver 2.6.32-22-pve #1 SMP Mon Jul 15 08:36:46 CEST 2013 x86_64 GNU/Linux uname -r 2.6.32-22-pve

Este es un servidor virtual alojado por un proveedor de servicios.

¿Qué puedo hacer para resolver esto?




Finalmente, mi proveedor de servicios respondió:

Esta es una limitación del sistema de virtualización que usamos (OpenVZ), las reglas básicas de iptables son posibles pero no las que usan la tabla nat.

Si esto realmente es un problema, podemos ofrecerle que migre a otro sistema de virtualización (KVM) a medida que comenzamos a ofrecer a nuestros clientes.

Así que tuve que migrar mi servidor al nuevo sistema ...


Los nombres de las tablas distinguen entre mayúsculas y minúsculas, por lo que debe usar un NAT en minúsculas en lugar de NAT en mayúsculas Por ejemplo;

iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth0 -j MASQUERADE


Si está ejecutando Puppet , puede establecer /proc/sys/kernel/modules_disabled en 1, /proc/sys/kernel/modules_disabled que se /proc/sys/kernel/modules_disabled más módulos. Cuando la máquina se reinicia, se vuelve a establecer en 0, lo que permite cambios, como cargar los módulos de iptables. Después de una cierta cantidad de tiempo, Puppet lo volverá a poner en 1 para proteger el sistema de los kits de raíz del núcleo. Por lo tanto, cualquier módulo que necesitemos se debe cargar durante o poco después del arranque .


Tal vez sea útil agregar que si está viendo este mensaje de error y no está utilizando algún tipo de alojamiento basado en contenedores restringidos (por ejemplo, OpenVZ), es posible que el problema no esté en los módulos nat. Para comprobar la ejecución:

modinfo iptable_nat

Lo que debería imprimir la ubicación del módulo, si imprime un ERROR, sabrá que ese es su problema. También hay módulos dependientes, como nf_nat, que pueden faltar, por lo que tendrá que profundizar más si el módulo iptable_nat está ahí pero falla. Si falta, necesitará obtener otro kernel y otros módulos, o si está utilizando su propia CONFIG_IP_NF_NAT=m asegúrese de que la configuración del kernel contenga CONFIG_IP_NF_NAT=m (para IPv4 NAT).

Para información, el módulo del kernel relevante se encuentra generalmente en una de estas ubicaciones:

ls /lib/modules/`uname -r`/kernel/net/netfilter/ ls /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/

Y si estás ejecutando IPv6 también mira aquí:

ls /lib/modules/`uname -r`/kernel/net/ipv6/netfilter/


Tuve el mismo problema con Debian 8. Lo arreglé reiniciando el sistema. Parece que el error puede ocurrir si la imagen del kernel se actualiza y el sistema no se reinicia a partir de entonces.



Version corta :

ejecute iptables en el host antes de ejecutarlo en el servidor virtual (estoy bastante seguro de que se trata de algún tipo de contenedor LXC o OpenVZ aquí).

Versión larga :

El problema se debe al hecho de que el módulo ip_table se carga a pedido. Entonces, después de reiniciar, en cualquier máquina que no tenga ninguna regla de iptables cargada en el momento del arranque, el módulo ip_tables no se carga (no hay demanda para los módulos == el módulo no está cargado). En consecuencia, los contenedores LXC o OpenVZ no pueden usar iptables (ya que comparten el núcleo del host pero no pueden modificar qué módulos se cargan) hasta que el host haya cargado de alguna manera el módulo ip_tables.


comprobar si tun / tap habilitado:

cat /dev/net/tun

si está bien verá algo:

cat: /dev/net/tun: File descriptor in bad state


uname -av; sudo apt install --reinstall (output from uname -av)