Вот несколько правил, придерживаясь которых вы сможете повысить Защиту SSH сервера от брутфорс атак:
- Измените стандартный порт sshd, на другой, не стандартный
- Установите knockd, для реализации системы port-knocking
- Не используйте пароли, а используйте вместо них SSH ключи
- Используйте в правилах IPTables recent and hashlimit matches для ограничения количества последовательных попыток подключения
Сейчас рассмотрим последний, четвертый случай, а именно использование правил IPTables.
Использование правил IPTables, для защиты от брутфорс атак:
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
В данном примере с одного айпи адреса разрешается подключаться только три раза в минуту, после чего следует выждать еще минуту, чтоб IPTables снова разрешил подключение.
Для того, чтоб избежать блокировки легитимных пользователей, следует применять белые списки. Для этого нужно создать пользовательскую цепочку SSH_WHITELIST:
iptables -N SSH_WHITELIST
После чего добавить правила с адресами доверенных хостов в эту цепочку:
iptables -A SSH_WHITELIST -s $TRUSTED_HOST -m recent --remove --name SSH -j ACCEPT
Окончательно правила IPTables выглядят так:
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
Добавить комментарий