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

sshd logging пытается войти без закрытого ключа

На моем VPS, работающем под управлением Debian 7, у меня включен ssh на порту 22 по умолчанию с включенной только аутентификацией с закрытым ключом, все остальные порты фильтруются с помощью iptables. Я часто получаю попытки входа в систему из Китая под поддельными именами пользователей, такими как "plesk" или "r00t", которые отображаются в моем /var/log/auth.log

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

sshd [4364]: соединение закрыто 123.45.67.89 [preauth]

Когда уровень ведения журнала sshd установлен на VERBOSE, печатается дополнительная строка, в которой указывается, что пользователь подключился, и порт, из которого он подключился.

Есть ли способ сделать журнал sshd, что он отключил пользователя, потому что у него не было закрытого ключа?

Вы можете использовать «чит» - в вашем /etc/pam.d/ssh(d) в разделе auth вы можете добавить оператор журнала (pam_log) перед операторами pam_unix или @include common-auth. Если этот оператор попадает, значит, была предпринята попытка аутентификации по паролю.

Ответ на ваш вопрос - нет. По крайней мере, не без героических мер (например, запуска уровня DEBUG и его обработки скриптами), которые намного сложнее, чем некоторые разумные альтернативы. То же самое [preauth] сообщение об ошибке отсутствует или неверный ключ.

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

Jul  7 15:59:38 ws6 sshd[9578]: Accepted password for robohacker...

или

Jul  7 15:59:38 ws6 sshd[9578]: Accepted publickey for robohacker...

Что вы можете сделать с пользой, так это еще больше укрепить вашу конфигурацию. Вам уже потребовался ключ, вы также можете использовать AllowUsers и AllowGroups команды для предотвращения подключения кем-либо специально не авторизованным.

Лично я всегда устанавливаю DenyHosts, хотя, похоже, он не имеет последних обновлений. Я слышал, что Fail2Ban тоже хорош

В подробном режиме ваш sshd действительно уже регистрирует инструкцию отключения.

Если вам нужна дополнительная информация, вы также можете использовать окончательный режим ведения журнала DEBUG, но будьте очень осторожны с этим, потому что журналы будут быстро расти без хорошей политики logrotate ;-)

Любая регистрация, которую может выполнять sshd, будет задокументирована в man sshd_config. Попробуйте выполнить поиск по запросу "log", но я не вижу там ничего особенного - в основном только LogLevel и SyslogFacility, хотя, возможно, MaxAuthTries поможет.