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

SSH-аутентификация - предотвращение атак грубой силы

Я использую ssh-аутентификацию на основе сертификата / ключа с sshd, работающим на нестандартном порту.

Нужно ли мне по-прежнему устанавливать denyhosts / fail2ban или обнаружение на основе анализа журналов? Получу ли я преимущество?

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

Тем не менее, вы все равно можете захотеть заблокировать IP-адреса, которые создают большое количество недопустимого трафика для входа в систему - возможный вектор DoS-атаки.

Denyhosts - это решение для «обнаружения на основе анализа журналов»; он сканирует журнал аутентификации sshd на предмет попыток входа в систему. Это работает как для паролей, так и для открытых ключей.

Fail2ban идет еще дальше и позволяет обновлять правила брандмауэра с учетом этих результатов; он лучше подходит для предотвращения DoS-атак, чем denyhosts.

Вам действительно нужен доступ по ssh из любой точки Интернета? Если вы можете сузить его до пары фиксированных диапазонов IP-адресов, таких как рабочий или домашний, и ограничить доступ SSH только для них, вам будет лучше.

Я понимаю, что это не очень хорошо, если вы находитесь вне дома и вам нужен доступ из случайной беспроводной сети в случайном диапазоне IP-адресов. Вот для чего нужен vpn, скажем, openvpn с двухфакторной аутентификацией (один из которых является подписанным сертификатом клиента), чтобы попасть в среду, в которой вы можете получить доступ к своим ящикам с помощью SSH.

Двухфакторный vpn обеспечит вам большую безопасность, чем SSH на основе сертификатов, и предоставит вам только одно место для выполнения срочных обновлений безопасности, если, например, была обнаружена огромная дыра в Openssl. Затем вы можете просто обновить свой сервер openvpn, а не панически, срочно исправить все ваши хосты, на которых работает ssh.