Можно снизить ДДОС атаку и повысить безопасность настроив fail2ban
1. включаем стандартный модуль syslog
2. устанавливаем fail2ban
sudo apt install fail2ban
3. настраиваем fail2ban
В файл sudo nano ∕etc/fail2ban/jail.local добавляем строки:
enabled = true
port = http,https
logpath = /var/log/syslog
maxretry = 5
перезагрузка демона
sudo systemctl restart fail2ban
P.S. можно настроить чтобы события писались в отдельный файл. Но это не всегда надо.
Комментарии
Я всё же его включу сюда, т.к. он есть не везде, на самом деле.
#
#
# Drupal must be setup to use Syslog, which defaults to the following format:
#
# !base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message
#
#
[INCLUDES]
before = common.conf
!>
[Definition]
failregex = ^%(__prefix_line)s(https?:\/\/)([\da-z\.-]+)\.([a-z\.]{2,6})(\/[\w\.-]+)*\|\d{10}\|user\|<HOST>\|.+\|.+\|\d\|.*\|Login attempt failed for .+\.$
ignoreregex =
# DEV Notes:
#
# https://www.drupal.org/documentation/modules/syslog
#
# Author: Lee Clemens
Также, надо сказать, что не всегда будет такой logpath. И надо бы явно указывать операционку, когда пишешь такие HowTo, чтобы были понятны границы применимости.
Также, всё это не о безопасности и DDoS, скорее, а о брутфорсе паролей, причём с одного адреса. С таким может бороться и сам drupal, но конечно эффективнее убрать с него нагрузку после какой-нибудь попытки.
Операционка у меня указана в заголовке.
Упс, да, я был не внимателен.
У меня есть еще другие фильтры. Я их давно писал. но они применимы к логу в отдельном файле. Проверено на друпале 7 и убунту 12.04 https://forum.ubuntu.ru/index.php?topic=221859.0
Вообще, лучше работать, конечно, с отдельным файлом - меньше перебирать регулярками соответственно заметно эффективнее, но что может быть только к логу в отдельном файле применимо? Даже любопытно...
Я выше ссылку добавил.
fail2ban умеет экспоненциально увеличивать время блокировки
И с этим надо быть осторожным, т.к. блокировка по ip, а на том же ip могут быть и атакующий и совершенно невинный и ценный посетитель...
Как настроить чтоб лог писался в отдельный файл
редактируем sudo nano /etc/rsyslog.conf и добавляем
local0.* /var/log/drupal.log
sudo systemctl restart rsyslog
далее
В файл sudo nano ∕etc/fail2ban/jail.local добавляем строки вместо выше указанных:
enabled = true
port = http,https
logpath = /var/log/drupal.log
maxretry = 5
перезагрузка демона
sudo systemctl restart fail2ban
https://www.drupal.org/docs/8/core/modules/syslog/overview
чтобы файл автоматически архивировал старые записи надо в файл sudo nano /etc/logrotate.d/drupal добавить текст:
weekly
rotate 4
missingok
notifempty
compress
nocreate
}
потом sudo systemct restart logrotate
в общем фильтр drupal-auth который идет с fail2ban версией 0.11.1 и ubuntu 20.04 с drupal 9 не работает. надо скачать и заменить файл /etc/fail2ban/filter.d/drupal-auth.conf с разрабатываемой версии v1.0.1.dev1 с гит портала. нужный файлик лежит в master/config/filter.d/drupal-auth.conf. после замены бан ложной аутентификации заработал.