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

9

Я пытаюсь настроить правила 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

Спасибо

MGP
источник

Ответы:

10

Я думаю, вам лучше использовать 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
Грегори МУССАТ
источник
1
Поскольку сервер является низкоскоростным VPS, я пытаюсь свести к минимуму потребление ресурсов, поддерживая его как можно более безопасным. Я уже изменил порт сервера ssh. Должен ли я сохранить эти правила (выше) для нового порта и забанить по умолчанию (22)?
MGP
Fail2ban на самом деле является лучшим решением, даже для низкого VPS
MGP
7

Вы можете реализовать то, что вы хотите с помощью следующих 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, т. Е. Для того, чтобы при наличии общего правила DROP или разрешающего правила до достижения вашего, они никогда не будут действовать.

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

user9517
источник
Когда я пытаюсь добавить эти правила, я получаю сообщение об ошибке: iptables: нет цепочки / цели / совпадения с этим именем.
MGP
Upvote для fail2ban.
Майкл Б.
4

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

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
Magellan
источник