Как проверить код ответа HTTP защищенного сайта с помощью Nagios?

10

Я хочу создать проверку nagios моего безопасного веб-сайта. Все, что нужно сделать, это войти на сайт с данными для входа, которые я передаю сценарию.

Кто-нибудь знает плагин или скрипт, который позволит мне сделать это?

Я пытался использовать check_http, но я добился успеха, даже если веб-сайт перенаправлен на страницу ошибки.

Саймон Фостер
источник
check_httpПлагин поддерживает -s stringвариант , который позволяет вам искать определенную струну ответа HTTP. Если страница печатает определенную строку в случае успеха, вы можете проверить ее, чтобы отличить ее от ошибки.
Халед

Ответы:

16

Я пытался использовать check_http, но я добился успеха, даже если веб-сайт перенаправлен на страницу ошибки

Это можно решить с помощью check_http --expect. Вот документация из check_http --help :

-e, --expect = STRING Список строк, разделенных запятыми, по крайней мере одна из них ожидается в первой (статусной) строке ответа сервера (по умолчанию: HTTP / 1.) Если указано, пропускается вся другая логика строки состояния ( например: обработка 3xx, 4xx, 5xx)

В следующем примере будет возвращено «ОК» для 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"
Стефан Ласевский
источник
2

С помощью Cucumber-Nagios вы можете создавать более сложные проверки (в духе управляемой поведением разработки / мониторинга) .

Joschi
источник