Самый простой способ получить максимальную отдачу от вашего сервера – снизить нагрузку с помощью блокировки списков спамерских IP-адресов, а затем вы можете использовать специальные решения, как я разработал для своего сервера, говорит Майк.
Одним из простых решений является использование fail2ban
, давайте объясню, как быстро установить его, предполагая, что у вас уже есть SSH
и su/root
:
CentOS:
yum update && yum install epel-release
yum install fail2ban
systemctl start fail2ban
systemctl enable fail2ban
sudo systemctl status fail2ban
nano /etc/fail2ban/jail.d/{name}.local
nano /etc/fail2ban/filter.d/{name}_filter.conf
# /etc/fail2ban/jail.d/{name}.local
[{name}]
enabled = true
filter = {filter-name}
action = iptables-allports[name=ACL, protocol=all]
logpath = /var/log/apache2/error_log
maxretry = 150
findtime = 1h
bantime = 3600 # Adjust this value as needed (in seconds)
# /etc/fail2ban/filter.d/{name}.conf
[Definition]
failregex = {regex-here}
ignoreregex =
Вам нужно выяснить, как сопоставить IP
в лог-файле, я потратил около десяти минут, возился с regex
, а затем использовал grep, чтобы проверить, что regex
работает одинаково на сервере.
grep:
grep -m 50 -P '{regex-here}' /var/log/apache2/error_log
После того, как вы установили regex
, соответствующий нужному тексту, используйте <HOST>
для идентификации IP
, используйте здравый смысл, не злоупотребляйте .*?
, используйте ^
и $
для начала/конца строки.
После активации с правильным regex
, снова активируйте fail2ban
и проверьте логи:
tail -n 100 /var/log/fail2ban.log
должно появиться что-то вроде:
Found {IP} - 2024-04-26 10:53:00
Если нет, то у вас будут ошибки, которые нужно будет устранить.
Проблема может быть либо в синтаксисе, либо в несоответствии.
Идея в том, что вам нужно соответствовать тому, на что нацелены боты/сканеры.
Обычно у вас будет много 404
ошибок, когда спамерские боты сканируют на наличие случайных .php
эксплойтов, поэтому я выбрал именно эту цель.
Если вы умеете работать с regex
, вы можете быстро нацелиться на множество различных вещей.
Примерно через 2 минуты я заметил, что на новом сервере заблокировано уже 7 IP.