Самый простой способ получить максимальную отдачу от вашего сервера – снизить нагрузку с помощью блокировки списков спамерских 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.
