Otras respuestas están usando iptables -Ien sus ejemplos, que a menudo no es lo que debe usar.
iptables ejecutará la primera regla que coincida, por lo que el orden de las reglas es muy importante. -Ies el comando "insertar", y debe usarse con un parámetro de índice para especificar a qué lugar de la lista pertenece una regla determinada. -Aes el comando "agregar", que agregará la regla al final de la lista.
En algunas distribuciones (quizás todas), el uso -Isin un parámetro de índice agregará la regla al índice, convirtiéndola en la primera regla verificada. En este escenario, si el último comando que ejecuta es iptables -I INPUT -s tcp 0.0.0.0/0 -j DROPiptables, eliminará todo el tráfico, independientemente de si tiene o no alguna ACCEPTregla más adelante en la cadena.
Aquí hay una muestra de cómo configurar una regla que solo permite SSH desde una sola IP:
Comenzando sin reglas:
#> iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Agregue una nueva regla "permitir SSH desde 1.2.3.4":
#>iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
Bloquee SSH de todas las demás IP:
#>iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP
Ahora su cadena de ENTRADA se verá así:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Más adelante, si necesita incluir una segunda IP en la lista blanca, puede usar el -Iparámetro para colocarla antes de la regla de la lista negra.
#>iptables -I INPUT 2 -p tcp -s 4.3.2.1 --dport 22 -j ACCEPT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 4.3.2.1 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Observe que al usar -I INPUT 2agregó la nueva regla como regla número 2 y superó la regla DROP al número 3.
iptablesadmite la inversión con el operador de explosión en caso de que desee hacer un objetivoDROP. Ejemplo:iptables -I INPUT -p tcp ! -s <permittedIP> -j DROP