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