¿Cómo verificar el código de respuesta HTTP de un sitio web seguro con Nagios?

10

Quiero crear una verificación nagios de mi sitio web seguro. Todo lo que necesita hacer es iniciar sesión en el sitio con los detalles de inicio de sesión que le paso el script.

¿Alguien sabe de un complemento o script que me permita hacer esto?

He intentado usar check_http, pero obtengo éxito incluso si el sitio web se redirige a una página de error.

Simon Foster
fuente
El check_httpcomplemento admite la -s stringopción que le permite buscar cierta cadena de la respuesta HTTP. Si la página está imprimiendo una cadena específica en caso de éxito, puede verificarla para distinguirla del error.
Khaled

Respuestas:

16

He intentado usar check_http pero obtengo éxito incluso si el sitio web es redirigido a una página de error

Esto se puede resolver con check_http --expect. Aquí está la documentación de check_http --help :

-e, --expect = STRING Lista de cadenas delimitadas por comas, se espera al menos una de ellas en la primera línea (estado) de la respuesta del servidor (predeterminado: HTTP / 1.) Si se especifica, omite todas las demás lógicas de línea de estado ( ej .: procesamiento 3xx, 4xx, 5xx)

El siguiente ejemplo devolverá un 'OK' para un código de respuesta HTTP 200 OK , pero dará un error crítico para una redirección 302.

host % check_http --expect=200
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.0 301 OK

Para un sitio web seguro (a través de SSL) y autenticación, también consulte check_http --ssly las --authorizationbanderas.

-S, --ssl Conéctese a través de SSL. El puerto predeterminado es 443

-a, --authorization = AUTH_PAIR Nombre de usuario: contraseña en sitios con autenticación básica

O tal vez en realidad no desee iniciar sesión en el sistema, pero solo quiere asegurarse de que la página requiera un nombre de usuario / contraseña, porque ese nombre de usuario / contraseña puede convertirse en un problema de seguridad. En ese caso, intente algo como lo siguiente / 401es el código de respuesta HTTP para 'No autorizado' o 'Se requiere autorización': 401es obligatorio, la cadena de texto posterior es opcional y puede decir una de varias cosas diferentes, así que le digo a Nagios a esperar 401.

check_http --expect="401"
Stefan Lasiewski
fuente
2

Puede crear comprobaciones más complejas (en el espíritu del Desarrollo / Monitoreo Conducido por el Comportamiento) con Cucumber-Nagios .

joschi
fuente