Замедляет ли fail2ban мою систему или iptables?

#nginx #iptables #fail2ban

#nginx #iptables #fail2ban

Вопрос:

У меня есть сервер (VPS) со следующими службами:

  • почтовый сервер (postfix / dovecot)
  • dns-сервер (bind9)
  • http-сервер (nginx)

Fail2ban создает много записей в iptables, и это приводит к тому, что сервер становится очень медленным, и даже иногда он становится недоступным, и мне приходится входить в систему через консоль и сбрасывать iptables, прежде чем я смогу подключиться к серверу. Используемые тюрьмы показаны ниже:

  • Список тюрем: dovecot, named-refused, nginx-botsearch, nginx-http-auth, nginx-limit-req, php-url-fopen, postfix, postfix-auth, recidive

95% запретов вызваны постфиксной тюрьмой. Я уменьшил размер iptables, установив recidive jail с помощью : bantime = 7200
findtime = 3600
maxretry = 5 , замедление работы системы немного улучшилось, но все еще недостаточно. Мой вопрос: — виноват ли fail2ban в этой медлительности? или сам iptables? В предыдущем проекте у меня не был установлен fail2ban, и я использовал iptables с большим количеством записей (больше записей, чем создает мой фактический fail2ban), и система работала быстро.

Я ценю любые советы о том, как я могу справиться с этой проблемой fail2ban.

Ответ №1:

Они оба виноваты в этом. Fail2Ban отслеживает ваши журналы — поэтому, если протоколирования много, Fail2Ban придется анализировать больше текста. IPtables выполняет линейный поиск по списку правил — невозможно использовать двоичный поиск, так как это нарушит логику. Так что чем больше правил — тем медленнее будут IPtables.

Вы должны проверить usedns banaction настройки и в /etc/fail2ban/jail.conf . DNS-запросы могут быть медленными, и вы можете захотеть попробовать iptables-ipset-proto4 вместо iptables-multiport этого как действие.

Комментарии:

1. Спасибо за ваш ответ. Я проверил, как вы советовали. Ситуация не улучшилась. Я рассматриваю возможность удаления fail2ban и использования только iptables.

2. Вы также можете попробовать CrowdSec — dev.to/jeand /… ( danielmiessler.com/study/crowdsec )

3. Спасибо, Иво, я посмотрю на CrowdSec (я впервые слышу об этом :))

4. Другой причиной медлительности может быть то, что Fail2Ban не использует inotify механизм при просмотре изменений файлов (новых записей в журналах).

5. python3-pyinotify уже установлен и должен позаботиться о новых записях журналов. Я также нашел это: websavers.ca/improve-fail2ban-io-performance