Table > Chain > Rule
La primera regla que coincida es la que se aplica.
- PREROUTING - para paquetes que llegan a la interfaz de red
- INPUT - para paquetes entrantes justo antes de enviarse al proceso local que los gestiona
- FORWARD - para paquetes que pasan a través del servidor
- OUTPUT para paquetes que salen de los procesos locales hacia fuera
- POSTROUTING - para paquetes que salen de la interfaz de red
Esta tabla se encarga del filtrado de paquetes.
- INPUT - para paquetes que llegan al servidor
- OUTPUT - para paquetes que salen del servidor
- FORWARD - para paquetes que pasan a través del servidor
Esta tabla se encarga de la traducción de direcciones.
- PREROUTING - permite alterar paquetes antes de que sean enrutados, como cambiar la dirección IP de destino (destination NAT)
- POSTROUTING - permite alterar paquetes antes de salir del servidor, por ejemplo cambiar la dirección IP de origen (source NAT)
- OUTPUT - NAT para paquetes generados en el propio firewall
Esta tabla permite alterar paquetes especiales.
- PREROUTING
- INPUT
- FORWARD
- OUTPUT
- POSTROUTING
- PREROUTING
- OUTPUT
- ACCEPT - acepta el paquete
- DROP - rechaza el paquete sin un motivo
- REJECT - rechaza el paquete con "destination host unreacheable"
- RETURN - continua la ejecución por la cadena superior o si es la última, por la acción por defecto.
- Nombre de la cadena creada por nosotros en la misma tabla
-A, --append chain rule-specification
: Añade una regla al final de la cadena seleccionada.-I, --insert chain [rulenum] rule-specification
: Añade la regla al principio de la cadena o en la posición indicada.-N, --new-chain chain
: Crea una nueva cadena-P, --policy chain target
: Define la política por defecto de una cadena si no encuentra una regla que coincida.
[!] -p, --protocol protocol
: Especifica el protocolo. Opciones: tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh, all. Por defecto esall
. Se puede negar con!
delante del protocolo.[!] -s, --source address[/mask][,...]
: Especifica la IP de origen.-j, --jump target
: Especifica el objetivo de la regla. Puede ser una cadena definida por el usuario o uno de los objetivos especiales. La regla continúa su ejecución en la cadena de origen después de finalizar en la de destino.-g, --goto chain
: Lo mismo que jump pero la ejecución no vuelve a la cadena de origen.[!] -i, --in-interface name
: Permite especificar la interfaz de red de entrada.[!] -sport -source-port port
: Especifica el puerto de origen.[!] -dport -destination-port port
: Especifica el puerto de salida.
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
$ iptables -t filter -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
Podemos omitir la opción -t
dado que la tabla por defecto es la filter
.
iptables -I DOCKER-USER -i eth0 -p tcp -m tcp --dport 80 -j DROP
https://gist.github.com/x-yuri/abf90a18895c62f8d4c9e4c0f7a5c188