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

Предотвратить атаки SSH

Я пытаюсь настроить правила iptables, чтобы разрешить только 3 попытки IP-адреса в минуту для подключения к серверу через SSH, а затем сбросить все подключения, чтобы предотвратить атаки SSH; но похоже я что-то делаю не так!

-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

Спасибо

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

Затем обычной практикой является запрет IP-адресов, когда они пытаются подключиться к порту 22, и привязка вашего ssh-сервера к другому порту. Затем вы сталкиваетесь только с парой незаконных подключений в неделю, если ваш компьютер не является широко известной целью.

По точному вопросу, который вы задали:

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

Вы можете реализовать то, что хотите, с помощью следующих 2 правил

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

Обратите внимание, что использование -Aкоторый добавляет правила в конец цепочки, может не соответствовать способу обработки правил iptables, т.

Сказав, что вы также можете найти fail2ban - лучший способ реализовать такой блок.

Возможно, вы захотите попробовать модуль LIMIT.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT