Supongamos que tengo un servidor con una interfaz privada y una interfaz pública. Público podría tener servidores HTTP (S), privado podría tener MySQL y SSH.
Obviamente, Nagios es útil para verificar que los servicios se ejecutan en sus respectivas interfaces. ¿Pero es una buena idea construir controles que prueben explícitamente que los puertos MySQL y SSH no están abiertos en la interfaz pública? La idea es detectar configuraciones erróneas involuntarias que han abierto servicios que deberían ser privados y alertar adecuadamente.
Una parte de mí tiene la idea de que esto no se escalaría terriblemente bien; imagine que hay una regla DROP de iptables, por ejemplo, la verificación tendría que esperar hasta que el tiempo de espera excediera antes de que pueda completarse y continuar. Pero ese tiempo de espera tendría que ser lo suficientemente alto como para poder diferenciar un servicio bloqueado de uno abierto que realmente está empantanado.
¿Es esta una idea práctica? ¿Es Nagios la herramienta correcta? Ni siquiera he estudiado la posibilidad de negar el resultado de los complementos de verificación de TCP, pero estoy seguro de que es factible ...
DROP
no es el objetivo adecuado para tal propósito, el uso-j REJECT --reject-with tcp-reset
resolvería ese problema en particular. Para mí, su pregunta suena como otra razón para usar enREJECT
lugar deDROP
.