#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