Crear tabla en iptables

8

Quiero crear una tabla personalizada usando iptables para poder agregar mis cadenas personalizadas en ella. Pero no veo ninguna opción para hacer eso. Traté de buscarlo pero no encontré nada. Por favor ayuda.

Tarun
fuente

Respuestas:

16

Creo que estás buscando crear una cadena , no una mesa.

   -N, --new-chain chain
          Create a new user-defined chain by the given name.  There must be no target of that name already.

Ejemplo ( -t filterestá implícito):

iptables -N Services
iptables -A INPUT -j Services
iptables -A Services -m tcp -p tcp --dport 80 -j ACCEPT

Las tablas se pueden seleccionar con la -topción:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Y si está utilizando iptables-restore, las dos reglas anteriores se pueden combinar para:

*nat
-A POSTROUTING -j MASQUERADE
COMMIT

*filter
:Services -
-A INPUT -j Services
-A Services -m tcp -p tcp --dport 80 -j ACCEPT
COMMIT
Lekensteyn
fuente
Gracias por la respuesta, pero estoy buscando crear una tabla diferente para mis cadenas personalizadas. ¿Crear una tabla diferente no es posible?
Tarun
1
¿Por qué quieres crear una tabla diferente? ¿Para poder agrupar tus cadenas? A menos que escriba su propio módulo de kernel, no podrá insertar nuevas cadenas. Vea esta imagen sobre el flujo de paquetes para comprender para qué se usan las diferentes tablas.
Lekensteyn el
Ok, no lo sabía. Gracias por la ayuda.
Tarun
5

La creación de una tabla se realiza a nivel del núcleo; normalmente no hay necesidad de crear uno nuevo a menos que se agregue a las capacidades TCP / IP del núcleo.

Lo que probablemente quiera hacer es crear una nueva cadena en una de las tablas existentes, que se hace con la -Nbandera.

Ignacio Vazquez-Abrams
fuente
"normalmente no hay necesidad de ...", pero las cadenas personalizadas hacen las cosas mucho más ordenadas. Por ejemplo, agregar una cadena personalizada a una interfaz.
Konrad Gajewski