Запобігати нападам 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

Дякую

Відповіді:


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 - це кращий спосіб реалізації цього блоку.


Коли я намагаюся додати ці правила, я отримую повідомлення про помилку: iptables: Немає ланцюга / цілі / відповідності за цим ім'ям.
MGP

Подання на помилку2ban.
Майкл Б

4

Ви можете спробувати модуль LIMIT.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.