Estaba mirando la página de manual de iptables hoy y noté que la descripción -A dice "Agregar unoo másreglas hasta el final de la cadena seleccionada”. ¿Eso significa que si tengo:
iptables -A INPUT {...rule1...}
iptables -A INPUT {...rule2...}
¿Podría simplificarse a una línea?
iptables -A INPUT {...rule1; rule2...}
Busqué en Google y no puedo encontrar un ejemplo de alguien que haya hecho esto alguna vez, pero, si es posible, serían simplemente algunos de mis scripts.
Respuesta1
Sólo puede proporcionar una definición de regla en una iptables -A
invocación.
Sin embargo, si utiliza una dirección como www.example.com que se resuelve en más de una dirección, se agregan varias reglas, una para cada dirección.
Por ejemplo: (se utilizan IP falsas...):
$ host www.example.com
www.example.com has address 10.1.2.3
www.example.com has address 10.1.2.4
$ sudo iptables -A INPUT -s www.example.com -j ACCEPT
$ sudo iptables -L INPUT -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
208K 250M ACCEPT all -- * * 192.168.0.0/16 0.0.0.0/0
0 0 ACCEPT all -- * * 10.1.2.3 0.0.0.0/0
0 0 ACCEPT all -- * * 10.1.2.4 0.0.0.0/0
Ahora ha insertado más de una regla usando una iptables -A
invocación.
Estoy de acuerdo en que esto no es del todo evidente en la descripción de la página de manual.
Respuesta2
Regla número uno por llamada a iptables. la opción "Agregar" contrasta con la opción "Insertar". Agregar como en... la nueva regla va al final de la lista de reglas, pero Insertar agrega la regla al principio de la lista.
iptables -I INPUT {Rule1}
iptables -I INPUT {Rule2}
daría como resultado que las reglas fueran las siguientes:
{Rule2}
{Rule1}
dónde
iptables -A INPUT {Rule1}
iptables -A INPUT {Rule2}
resultaría en
{Rule1}
{Rule2}