Как проверить код ответа HTTP защищенного сайта с помощью Nagios?
Я хочу создать проверку nagios моего безопасного веб-сайта. Все, что нужно сделать, это войти на сайт с данными для входа, которые я передаю сценарию.
Кто-нибудь знает плагин или скрипт, который позволит мне сделать это?
Я пытался использовать check_http
, но я получаю успех, даже если веб-сайт перенаправлен на страницу ошибки.
2 ответа
Я пытался использовать check_http, но я добился успеха, даже если веб-сайт перенаправлен на страницу ошибки
Это можно решить с помощью check_http --expect
, Вот документация из check_http --help:
-e, --expect = STRING Список строк, разделенных запятыми, по крайней мере одна из них ожидается в первой (статусной) строке ответа сервера (по умолчанию: HTTP/1.) Если указано, пропускается вся другая логика строки состояния (например: обработка 3xx, 4xx, 5xx)
В следующем примере будет возвращено "OK" для HTTP-кода ответа " 200 OK", но будет критическая ошибка для перенаправления 302.
host % check_http --expect=200
HTTP CRITICAL - Invalid HTTP response received from host: HTTP/1.0 301 OK
Для безопасного веб-сайта (через SSL) и аутентификации, также проверьте check_http --ssl
и --authorization
флаги.
-S, --ssl Подключиться через SSL. Порт по умолчанию 443
-a, --authorization = AUTH_PAIR Имя пользователя: пароль на сайтах с базовой аутентификацией
Или, возможно, вы на самом деле не хотите входить в систему, а просто хотите убедиться, что страница требует имя пользователя / пароль, потому что это имя пользователя / пароль может стать проблемой безопасности. В этом случае попробуйте что-то вроде следующего / 401
код ответа HTTP для "Несанкционированный" или "Требуется авторизация" - 401
является обязательным, текстовая строка после этого необязательна и может говорить о нескольких разных вещах, поэтому я просто говорю Nagios ожидать 401
,
check_http --expect="401"
С помощью Cucumber-Nagios вы можете создавать более сложные проверки (в духе управляемой поведением разработки / мониторинга).