¿Qué conjunto de reglas es más restrictivo cuando se permite SSH en iptables?

2

He visto dos conjuntos de reglas para permitir la comunicación SSH:

Establecer A:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

Conjunto B:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Ninguno de los dos conjuntos es superior en general, pero la pregunta es específicamente acerca de las comunicaciones SSH ordinarias, con pares de claves-autenticación-solo si eso simplifica el asunto (y es casi una obligación en el contexto de la seguridad), ya que Como sabemos, los ataques de fuerza bruta no pasarán en ningún caso.

¿Cuál de los dos conjuntos es más restrictivo (filtrará o mitigará más comunicaciones no deseadas o consumo de recursos)? Además, ¿es posible combinar ambos conjuntos para hacer una regla aún más restrictiva?

    
pregunta mikl 13.03.2017 - 22:06
fuente

1 respuesta

2

El conjunto B, en aislamiento no permite las comunicaciones ssh. Simplemente permite que una conexión permitida por otras reglas continúe o (sujeto a ciertas combinaciones como H.323 y FTP) para que se establezcan nuevas conexiones entre direcciones IP que tienen una entrada existente en la tabla de conntrack.

El problema con el Conjunto A es que no tiene estado: un atacante podría crear una conexión de cliente a cualquier puerto de su servidor siempre y cuando el cliente termine de usar el puerto 22. Para solucionar este problema, necesita un firewall con estado, es decir, uno Eso tiene en cuenta la dirección de la conexión. Por lo tanto, es más común ver algo como:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
...
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 
iptables -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

Poner ESTABLECIDO, RELACIONADO primero significa que todo el conjunto de reglas solo necesita ser analizado una vez por conexión; los paquetes subsiguientes se comparan con las primeras 2 reglas. Esto puede tener un gran impacto en una latencia con un conjunto de reglas complejo.

La desventaja de usar la función de control de estado con estado es que consume recursos en el servidor: cuando la tabla de conntrack se llena, el servidor de seguridad se iniciará eliminando conexiones . OTOH, el módulo con estado permite una gestión de la demanda más compleja, generalmente al limitar la velocidad de las conexiones.

  

solo con autenticación de certificado

¿De verdad? Si bien hay versiones de ssh usando certificados para administrar claves, es un caso muy inusual. ¿Quieres decir pares de claves?

  

Ninguno de los dos conjuntos es superior en general

...

  

Cuál de los dos conjuntos es más restrictivo

Si ninguno de los dos es superior, ¿cómo puede uno ser mejor?

Para un servidor de seguridad de host, debe usar un servidor de seguridad con estado para evitar el desvío descrito anteriormente.

    
respondido por el symcbean 13.03.2017 - 23:13
fuente

Lea otras preguntas en las etiquetas