¿Cuál es la diferencia entre asegurar una caja de Linux usando hosts. [Allow | deny] vs iptables?

16

Como dice el título, tengo una caja de Linux. Por lo que puedo decir, puedo usar hosts.allow / hosts.deny o iptables para asegurar. ¿Cual es la diferencia? ¿Hay otro mecanismo que pueda usarse?

Árbol77
fuente

Respuestas:

22

IPTables funciona a nivel de Kernel. En general, esto significa que no tiene conocimiento de aplicaciones o procesos. Solo puede filtrar en función de lo que obtiene de los diversos encabezados de paquetes en su mayor parte.

Sin embargo, host.allow / deny opera en el nivel de aplicación / proceso. Puede crear reglas para varios procesos o daemons que se ejecutan en el sistema.

Entonces, por ejemplo, IPTables puede filtrar en el puerto 22. SSH puede configurarse para usar este puerto y generalmente lo es, pero también puede configurarse para estar en un puerto diferente. IPTables no sabe en qué puerto está, solo sabe sobre el puerto en el encabezado TCP. Sin embargo, los archivos hosts.allow se pueden configurar para ciertos demonios, como el demonio openssh.

Si tiene que elegir, generalmente optaría por un mínimo de IPTables. Veo los hosts.allow como una buena ventaja. Incluso aunque parezca que los niveles de daemon parecen más fáciles, IPTables bloqueará el paquete antes de que realmente llegue muy lejos. Con seguridad, cuanto antes pueda bloquear algo, mejor. Sin embargo, estoy seguro de que hay situaciones que cambian esta elección.

Kyle Brandt
fuente
0

iptables bloquea el acceso antes de que llegue a la aplicación, mientras que hosts.allow / hosts.deny es parte de PAM y requiere que la aplicación implemente la comprobación de PAM y maneje correctamente el archivo. Ambos son útiles, y tener ambos en su lugar es aún mejor.

James L
fuente
No creo que los archivos hosts. [Allow | deny] tengan nada que ver con PAM. ¿Estabas pensando en tcpwrappers?
EEAA
Lo siento, me estaba confundiendo con las impedaciones allow_hosts dentro de PAM para vsftpd, etc.
James L