Назад | Перейти на главную страницу

Журналы SSH я не понимаю: превышено максимальное количество попыток аутентификации

Я пытаюсь расшифровать все мои журналы ssh (чтобы дать им разумные теги с помощью logstash). Но я нашел один случай, которого не совсем понимаю:

Oct 23 07:43:47 sshd[59830]: Connection from 74.194.6.5 port 60126 on 213.67.100.148 port 22
Oct 23 07:43:51 sshd[59830]: error: maximum authentication attempts exceeded for root from 74.194.6.5 port 60126 ssh2 [preauth]
Oct 23 07:43:51 sshd[59830]: Disconnecting authenticating user root 74.194.6.5 port 60126: Too many authentication failures [preauth]

Как он может достичь максимального числа попыток аутентификации, не подавая никаких признаков попытки аутентификации?

Обычно я получаю такие вещи, как до появления строки «максимальная авторизация ...».

Oct 23 08:54:06 sshd[62392]: Failed keyboard-interactive/pam for [...]
Oct 23 08:52:41 sshd[49690]: Failed publickey for [...]

Но не всегда.

Обратите внимание, у меня нет проблем со входом в систему ..

Это сообщение об ошибке запускается, среди прочего, когда ssh-клиент пытается войти в систему на основе ключа и предлагает больше, чем MaxAuthTries неверные ключи. После этого сервер SSH разорвет соединение. Это может быть вызвано либо (злонамеренным) клиентом, у которого вообще нет действительных ключей, либо действительными пользователями, у которых просто есть много разных пар ключей и MaxAuthTries число достигается до того, как можно будет обменять действующий ключ. Когда это произойдет, соединение будет прервано и даже не достигнет стадии, когда предлагаются / предпринимаются попытки альтернативных методов входа.

(На уровне журнала по умолчанию) ssh-сервер не записывает обмен неудачными ключами, и поэтому появляется сообщение об ошибке "error: maximum authentication attempts exceeded for ... ssh2 [preauth]"кажется, что в файле журнала не было никаких предыдущих попыток аутентификации.

Вы можете легко смоделировать это с помощью:

for n in $(seq 1 10 ) ; do ssh-keygen -b 2048 -t rsa -f /tmp/sshkey-$n -q -N "" ; done
ssh  -v -i /tmp/sshkey-1  -i /tmp/sshkey-2  -i /tmp/sshkey-3  ... user@host

debug1: Следующий метод аутентификации: publickey
debug1: Предлагает открытый ключ RSA: / tmp / sshkey-1
debug2: мы отправили пакет публичного ключа, ждем ответа
debug1: аутентификация, которая может продолжаться: publickey, gssapi-keyex, gssapi-with-mic
debug1: Предлагает открытый ключ RSA: / tmp / sshkey-2
debug2: мы отправили пакет публичного ключа, ждем ответа
debug1: аутентификация, которая может продолжаться: publickey, gssapi-keyex, gssapi-with-mic
debug1: Предлагает открытый ключ RSA: / tmp / sshkey-3
debug2: мы отправили пакет публичного ключа, ждем ответа
debug1: аутентификация, которая может продолжаться: publickey, gssapi-keyex, gssapi-with-mic
debug1: Предлагает открытый ключ RSA: / tmp / sshkey-4
debug2: мы отправили пакет публичного ключа, ждем ответа
debug1: аутентификация, которая может продолжаться: publickey, gssapi-keyex, gssapi-with-mic
debug1: Предлагает открытый ключ RSA: / tmp / sshkey-5
debug2: мы отправили пакет публичного ключа, ждем ответа
debug1: аутентификация, которая может продолжаться: publickey, gssapi-keyex, gssapi-with-mic
debug1: Предлагает открытый ключ RSA: / tmp / sshkey-6
debug2: мы отправили пакет публичного ключа, ждем ответа
Получено отключение от порта хоста 22: 2: Слишком много ошибок аутентификации
Ошибка аутентификации

Значение по умолчанию для MaxAuthTries является 6.

sshd [19032]: ошибка: превышено максимальное количество попыток аутентификации для входа с порта 10.9.8.7 54956 ssh2 [preauth]
sshd [19032]: Отключение: слишком много ошибок аутентификации [preauth]

Увеличение sshd_config LogLevel к VERBOSE будет генерировать дополнительные события журнала, которые имеют немного больше смысла:

sshd [19271]: соединение с порта 10.9.8.7 58823 на порт 10.9.8.8 22
sshd [19271]: сбой публичного ключа для входа из порта 10.9.8.7 58823 ssh2: RSA SHA256: QGnu ... fpY
sshd [19271]: сбой публичного ключа для входа из порта 10.9.8.7 58823 ssh2: RSA SHA256: cjje ... dDo
sshd [19271]: сбой публичного ключа для входа из порта 10.9.8.7 58823 ssh2: RSA SHA256: IIWe ... d1M
sshd [19271]: сбой публичного ключа для входа из порта 10.9.8.7 58823 ssh2: RSA SHA256: xrQs ... Et0
sshd [19271]: сбой публичного ключа для входа из порта 10.9.8.7 58823 ssh2: RSA SHA256: 0Zln ... UI4
sshd [19271]: сбой публичного ключа для входа из порта 10.9.8.7 58823 ssh2: RSA SHA256: hhsj ... 7Q4
sshd [19271]: ошибка: превышено максимальное количество попыток аутентификации для входа в систему с 10.9.8.7 порта 58823 ssh2 [preauth]
sshd [19271]: Отключение: слишком много ошибок аутентификации [preauth]

Согласно страница руководства по конфигурации sshd

MaxAuthTries
Задает максимальное количество попыток аутентификации, разрешенное для одного соединения. Когда количество отказов достигает половины этого значения, регистрируются дополнительные отказы. По умолчанию - 6.

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

LogLevel
Указывает уровень детализации, который используется при регистрации сообщений от sshd (8). Возможные значения: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 и DEBUG3. По умолчанию - ИНФОРМАЦИЯ. DEBUG и DEBUG1 эквивалентны. DEBUG2 и DEBUG3 определяют более высокие уровни вывода отладки. Ведение журнала с уровнем DEBUG нарушает конфиденциальность пользователей и не рекомендуется.

В OpenSSH / Регистрация и устранение неполадок вы можете увидеть примеры журналов, в которых вы можете увидеть, что отклоняющая часть аналогична той, которую вы показали:

...
Mar 19 11:11:10 server sshd[54798]: Failed password for root from 122.121.51.193 port 59928 ssh2
Mar 19 11:11:10 server sshd[54798]: error: maximum authentication attempts exceeded for root from 122.121.51.193 port 59928 ssh2 [preauth]
Mar 19 11:11:10 server sshd[54798]: Disconnecting authenticating user root 122.121.51.193 port 59928: Too many authentication failures [preauth]

Подводя итог, неудачные попытки аутентификации не всегда отправляются в журналы. Предпочтение можно настроить в файле conf для httpd.

А теперь, исходя из моего не очень удачного опыта публикации ssh в Интернете, позвольте мне дать несколько общих рекомендаций:

  • Пожалуйста, не разрешайте доступ пользователю / паролю. Вы должны использовать только частные / открытые пары ключей. Там много плохих парней.
  • В любом случае, root не должен иметь доступа через SSH.
  • Подумайте об установке fail2ban или чего-то подобного, что может запретить IP-адреса для доступа к вашей системе

Другое дело, если вы хотите войти в систему под пользователем root с помощью ssh, используя пароль, и ваша конфигурация установлена ​​на PermitRootLogin prohibit-password это закончится ошибкой error: maximum authentication attempts exceeded for root from 10.0.12.12 port 58656 ssh2 [preauth]