Вы можете использовать разные решения. Лучше всего использовать аутентификацию RSA, которая использует общедоступные / закрытые ключи для аутентификации пользователей.
Проверьте это замечательное руководство для разных подходов (включая аутентификацию RSA): http: // www.la-samhna.de/library/brutessh.html
Я использую http://www.la-samhna.de/library/brutessh.html on мой сервер, потому что я не хочу, чтобы это осложнялось для моих непрофессиональных пользователей: используя iptables, чтобы ограничить количество соединений в минуту, что делает нападки грубой силы медленными и бесполезными.
Вот решение I ' m:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j LOG --log-prefix "SSH_brute_force "
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
Как сказано здесь: Это позволит подключить три порта 22 от любого заданного IP-адреса в течение 60 секунд и потребовать 60 секунд после последующих попыток подключения, прежде чем он возобновит разрешение соединений еще раз. Параметр -rttl также учитывает TTL дейтаграммы при сопоставлении пакетов, чтобы попытаться смягчить атаки на поддельные адреса источника.
Как сказано в упомянутом руководстве, лучше использовать белый список, чтобы отделить доверенных пользователей от этих правил:
iptables -N SSH_WHITELIST
Затем добавить доверенные хосты:
iptables -A SSH_WHITELIST -s $TRUSTED_HOST -m recent --remove --name SSH -j ACCEPT
И после этого выполните правила:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
Включить технологию виртуализации Intel (R) и функцию VT-d Intel (R) в настройках BIOS.