служба pam (sshd) игнорирует максимальное количество попыток

32

У меня есть VPS, который я использую для запуска веб-сервера, в настоящее время он работает на сервере Ubuntu 12.04. Уже несколько недель я получаю много ошибок в моей консоли ssh.

2014 Apr 11 08:41:18 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:21 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:24 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:25 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:26 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:29 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:29 vps847 PAM service(sshd) ignoring max retries; 6 > 3

Может кто-нибудь, пожалуйста, скажите мне, что означают эти ошибки. Или хотя бы подскажите, как отключить эти ошибки. Это действительно раздражает, когда я работаю над ssh, и эти ошибки продолжают появляться по всему моему экрану.

Jerodev
источник

Ответы:

40

PAMговорит вам, что он настроен с «retry = 3» и будет игнорировать любые дальнейшие запросы авторизации от sshd в том же сеансе. SSHоднако будет продолжать попытки, пока не будет исчерпан параметр MaxAuthTries (по умолчанию 6).

Вероятно, вам следует установить оба этих параметра (SSH и PAM) на одно и то же значение для максимальной повторной попытки авторизации.

обновленный

Чтобы изменить это поведение:

Для sshdвас редактировать /etc/ssh/sshd_configи устанавливать MaxAuthTries 3. Также перезапустите сервер SSH, чтобы настройки вступили в силу.

Поскольку PAMвы должны искать конфигурацию в /etc/pam.dкаталоге (я думаю, что это common-passwordфайл в Ubuntu), вы должны изменить retry=значение.

Примечание: я настоятельно рекомендую также проверить ответ Питера Хоммела относительно причины этих запросов, поскольку возможно, что ваш SSH подвергается грубому принуждению.

phoops
источник
Спасибо, проблема была исправлена ​​путем добавления MaxAuthTries 3в конфигурацию ssh и перезагрузки сервера.
Джеродев
41

Хотя другие ответы верны при устранении полученного вами сообщения об ошибке, учтите, что это сообщение об ошибке может быть просто признаком другой основной проблемы.

Вы получаете эти сообщения, потому что в вашей системе много неудачных попыток входа через ssh. Возможно, кто-то пытается грубо взломать ваш ящик (был случай, когда я получал те же сообщения в моей системе). Читайте ваши var/log/auth.logдля исследования ...

Если это так, вам следует рассмотреть возможность установки такого инструмента, как 'fail2ban' ( sudo apt-get install fail2banв Ubuntu). Он автоматически читает файлы журналов вашей системы, ищет несколько неудачных попыток входа в систему и блокирует вредоносных клиентов на настраиваемое время через iptables ...

Питер Хоммел
источник
4
Это очень хороший комментарий, я обновил свой ответ запиской, чтобы прочитать ваш ответ для всех, кто может столкнуться с этим.
Фоп
5

Кажется, приведенный выше анализ не совсем корректен. Кажется, что нет опции retry = для аутентификации pam (я нашел одну для pam_cracklib, но она касается только изменения пароля в разделе «пароль», но не аутентификации в разделе «auth» pam). Вместо этого pam_unix содержит максимальное количество попыток, равное 3. После 3 попыток pam возвращает код ошибки PAM_MAXRETRIES, чтобы сообщить об этом sshd.

sshd должен действительно прекратить попытки в этом случае, независимо от его собственного MaxAuthTries. Это не так, что я считаю ошибкой (о которой я только что сообщил с openssh ).

Пока эта ошибка не устранена, кажется, что установка MaxAuthTries на <= 3 - единственный способ предотвратить появление этого сообщения.

Маттис Коойман
источник
ошибка кажется исправленной с версией 7.3p1
Деннис Нолт
3

Клиент ssh может попытаться аутентифицироваться с помощью одного или нескольких ключей. Любые ключи, которые не перечислены в авторизованных ключах, потерпят неудачу, потребляя одну из попыток sshd. Клиент будет пробовать каждый ssh-ключ до тех пор, пока один из них не преуспеет или все не выйдут из строя, поэтому хорошо, что sshd позволяет вам попробовать несколько

Если ключи не совпадают, sshd может позволить вам попробовать пароль. Каждая из этих попыток также использует одну из разрешенных попыток sshd. Но он также потребляет одну из разрешенных попыток PAM.

Итак, сочетание 6 попыток аутентификации ssh и трех попыток аутентификации pam - это хорошая вещь: это означает, что ssh разрешит всего 6 попыток аутентификации (ключ или пароль), но только 3 попытки ввода пароля.

Как уже говорили другие, если вы часто видите это в своих журналах, кто-то пытается грубой силой проникнуть в вашу систему. Подумайте об использовании fail2ban для полной блокировки пакетов с IP-адресов, с которых происходят эти попытки.

Билл
источник
1

После обновления с Debian 6 до Debian 7 я столкнулся с теми же проблемами. Внезапно эти ошибки sshd появились в моей консоли.

2014 Oct 15 13:50:12 vps456 PAM service(sshd) ignoring max retries; 6 > 3
2014 Oct 15 13:50:17 vps456 PAM service(sshd) ignoring max retries; 6 > 3
2014 Oct 15 13:50:18 vps456 PAM service(sshd) ignoring max retries; 6 > 3

В моем случае проблема заключалась в том, что rsyslogпосле обновления Debian он больше не устанавливался.

После установки rsyslog эти ошибки исчезли из моей консоли: apt-get install rsyslog

tomputer
источник
3
Это только заставляет их появляться в другом месте вместо консоли. Мой ответ устраняет причину ошибки из-за неправильной конфигурации SSH / PAM после обновления.
Фоп
-1

Конечно, получать эти уведомления на своей консоли может быть раздражающим, но когда я вижу в своих файлах журналов, что вчера у меня было 987 неудачных попыток входа в систему root с IP-адреса в Китае, или 2670 из какой-то облачной службы в Калифорнии, или ... много другие, я не волнуюсь Пользователь root не может войти на мою машину. Неважно, сколько попыток.

Если бы они начали пробовать имена пользователей, которые могут войти в систему, это было бы другим вопросом, но если у кого-то есть хорошие пароли, я тоже не вижу там риска. Пароли для входа в систему (в отличие от ключей шифрования) можно использовать только так быстро.

Использование чего-то вроде fail2ban кажется ненужной сложностью, которая ничего не покупает (если у вас есть хорошие пароли), а сложность вредна для безопасности. Попытки регулирования - это то, что sshd должен реализовывать, а не то, что должно требовать некоторого дополнения ... и sshd делает попытки регулирования. Хорошо.

-kb, Кент, который использует только хорошие пароли и никогда не перерабатывает между разными сайтами.

Кент Борг
источник
2
Использование ключей SSH и отключение паролей еще лучше предотвращают успешные атаки методом перебора.
HBruijn
Да, но тогда проблема переходит к защите ваших ключей SSH. Где они? Они зашифрованы? Насколько хорошо ключ защищает их? Если пароль не может быть взломан в течение Х-лет попыток, то он не может быть взломан в течение Х-лет попыток, зачем вам «лучше»? Я уделяю много времени управлению своими паролями, и я могу набирать их, многие из которых я помню. Но связка ключей SSH? Нужно какое-то безопасное место, чтобы держать их.
Кент Борг
2
Грубое форсирование пароля (обычно длиной менее 20 символов и слишком часто неправильно выбранный) намного проще, чем грубое форсирование 1024-битного закрытого ключа (упрощенного эквивалента 128-символьного пароля) для получения доступа через SSH. Давайте придерживаться сравнения яблок с яблоками. - - Если только вы не полный идиот (например, храните свой закрытый ключ в своем публичном github), получить свой закрытый ключ ssh сложно, так как ему не нужно покидать вашу рабочую станцию. Как только ваш закрытый ключ скомпрометирован, мы больше не в случайных атаках, а в области целенаправленных атак ...
HBruijn
@ Знаете ли вы, что можете защитить паролем ключи SSH? Кроме того, вы говорите, что fail2ban не нужен, но продолжаете предлагать, чтобы SSH реализовал эту функцию сам по себе. Кроме того, если вы не заблокируете запросы, они могут просто сделать вашу систему намного проще.
Фоп