Настройка работы модуля syslog и демона fail2ban для drupal 8 и ubuntu 18.04

Главные вкладки

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 26 ноября 2019 в 14:00

Можно снизить ДДОС атаку и повысить безопасность настроив fail2ban
1. включаем стандартный модуль syslog
2. устанавливаем fail2ban
sudo apt install fail2ban
3. настраиваем fail2ban
В файл sudo nano ∕etc/fail2ban/jail.local добавляем строки:

[drupal-auth]
       enabled = true
       port     = http,https
       logpath  = /var/log/syslog
       maxretry = 5

перезагрузка демона
sudo systemctl restart fail2ban
P.S. можно настроить чтобы события писались в отдельный файл. Но это не всегда надо.

Комментарии

Аватар пользователя bsyomov bsyomov 29 ноября 2019 в 16:03
1

Я всё же его включу сюда, т.к. он есть не везде, на самом деле.

# Fail2Ban filter to block repeated failed login attempts to Drupal site(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, но конечно эффективнее убрать с него нагрузку после какой-нибудь попытки.

Аватар пользователя bsyomov bsyomov 29 ноября 2019 в 16:10

Вообще, лучше работать, конечно, с отдельным файлом - меньше перебирать регулярками соответственно заметно эффективнее, но что может быть только к логу в отдельном файле применимо? Даже любопытно...

Аватар пользователя bsyomov bsyomov 30 ноября 2019 в 15:28

И с этим надо быть осторожным, т.к. блокировка по ip, а на том же ip могут быть и атакующий и совершенно невинный и ценный посетитель... Smile

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 11 декабря 2019 в 9:13

Как настроить чтоб лог писался в отдельный файл

редактируем sudo nano /etc/rsyslog.conf и добавляем
local0.* /var/log/drupal.log
sudo systemctl restart rsyslog
далее
В файл sudo nano ∕etc/fail2ban/jail.local добавляем строки вместо выше указанных:

[drupal-auth]
       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

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 20 октября 2020 в 20:12

чтобы файл автоматически архивировал старые записи надо в файл sudo nano /etc/logrotate.d/drupal добавить текст:

/var/log/drupal.log {
        weekly
        rotate 4
        missingok
        notifempty
        compress
        nocreate
}

потом sudo systemct restart logrotate

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 9 марта 2021 в 6:40
1

в общем фильтр 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. после замены бан ложной аутентификации заработал.