iptables, orden de reglas: ¿lo entiendo bien?

17

Me gustaría configurar mi VPS de la forma en que SOLO acepta conexiones externas en el puerto 22 (donde escucha sshd) y solicitudes ICMP. Todo lo demás desde el exterior debe ser rechazado. Dentro del servidor, todo debería estar permitido. ¿Las siguientes reglas crean el comportamiento deseado?

iptables -A INPUT --jump ACCEPT --protocol all   --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp   --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state    --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all

No estoy completamente seguro de si las reglas ACEPTAR "ganarán" en el último RECHAZO general

Xpector
fuente
1
No debe usar --source 127.0.0.1para determinar si un paquete es seguro de aceptar. Ver serverfault.com/a/825231/4131
Bruno Bronosky

Respuestas:

20

Estás en lo correcto.

Las reglas se procesarán en orden de línea del archivo. Si hay una coincidencia para una regla, no se procesarán otras reglas para ese paquete IP en su caso.

http://en.wikipedia.org/wiki/Iptables

Cada regla en una cadena contiene la especificación de qué paquetes coincide. También puede contener un objetivo (utilizado para extensiones) o un veredicto (una de las decisiones integradas). Cuando un paquete atraviesa una cadena, se examina cada regla a su vez. Si una regla no coincide con el paquete, el paquete se pasa a la siguiente regla. Si una regla coincide con el paquete, la regla toma la acción indicada por el objetivo / veredicto, lo que puede provocar que el paquete pueda continuar a lo largo de la cadena o no

NGRhodes
fuente