Я использую плагин http_check Nagios для мониторинга URL и хотел бы проверить, работает ли вход в систему с определенным пользователем и паролем.
Я предпринял несколько попыток с различными подходами, но ни одна из них, похоже, не подтверждает заданную аутентификацию.
Сначала я попытался отправить данные HTTP POST.
Команда проверки:
./check_http '-u' 'https://myurlexample.com' '-P' 'userName=myUser&password=myWrongPass' '-T' 'text/html' '--sni'
Ответ:
HTTP OK: HTTP/1.1 307 Temporary Redirect - 583 байта за 0.009 секунды времени ответа |time=0. 008551s;;;0.000000;10.000000 size=583B;;;0
Я попробовал изменить параметр '-T', но результаты всегда были положительными, что либо означает, что это не работает так, как я думал, либо мне не хватает какого-то параметра.
Второй подход заключался в использовании параметра авторизации + код возврата, ожидаемый от сервера nginx.
Команда проверки:
./check_http '-u' 'https://myurlexample.com' '-a' 'myUser:myWrongPass' '-e' '302' '--sni'
Ответ:
HTTP OK: Вывод строки состояния соответствует "302" - 570 байт за 0,005 секунды времени ответа
Единственный ответ, который я получаю, это 302, что означает, что он не подтверждает пароль.
Сервер действительно использует openSSL 1.0.2, но при любых попытках использовать этот параметр я получаю отрицательный ответ.
Команда проверки:
./check_http '-u' 'https:myurlexample.com' '--ssl=1' '-a' 'user:password' '--sni'
Ответ:
140701537494960:error:1408F10B:SSL routines:SSL3_GET_RECORD:incorrect version number:s3_pkt.c:365:
Есть ли способ проверить логин с помощью этого плагина? Результатом, который я ожидал, будет отрицательный ответ, указывающий на то, что вход невозможен.
Попробуйте выполнить
check_http -S -H $ HOSTNAME -u $ URL -P "$ USERFIELD = $ USERNAME & $ PWDFIELD = $ PWD"
имя пользователя
и пароль
Вот пример моей тестовой команды для пользователя foo
с паролем bar
:
check_http -S -H myurlexample.com -u / auth -P "username = foo & password = bar"