Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Настройка работы drupal 7 с fail2ban через syslog в ubuntu 12.04  (Прочитано 3969 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jura12

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1418
  • 20.04
    • Просмотр профиля
Введение
Настало то время когда сайт на хостинге подрос и начал выбиваться из основного тарифного плана. Кроме того сайт начали атаковать роботы с целью взлома сайта под прикрытием ДДОС атаки. Платить больше за хостинг желания не было. Поэтому решил организовать хостинг дома на ноутбуке с использованием полных мер защиты сайта. Одна из мер представлена в этой статье.
Настройки друпала
1. включаем стандартный модуль syslog. Модули — Syslog
2. настраиваем. Конфигурация-Разработка-Логи и ошибки
Сообщения об ошибках - Ошибки и предупреждения
Идентификатор – drupal
Механизм системных журналов Syslog – LOG-LOCAL0
syslog — формат сообщения  - !base_url|!timestamp|!type|!ip|!request_uri|!referer|!uid|!link|!message

Настройки rsyslog
Добавить  строчку

local0.* /var/log/drupal.log

в файл /etc/rsyslog.conf

Настройка fail2ban
Обновляем fail2ban
По умолчанию в 12.04 идет версия 0.8.6-3 . но можно обновить до  0.8.8-1~nd12.04+1
http://neuro.debian.net/pkgs/fail2ban.html
список изменений можно почитать тут https://github.com/fail2ban/fail2ban/blob/master/ChangeLog
инсталляция:
wget -O- http://neuro.debian.net/lists/precise.de-md.full | sudo tee /etc/apt/sources.list.d/neurodebian.sources.list

sudo apt-key adv --recv-keys --keyserver pgp.mit.edu 2649A5A9
sudo apt-get update
sudo apt-get install fail2ban
Создаем дополнительные фильтры
Создаем файлы фильтров в директории /etc/fail2ban/filter.d со следующим  содержимом:
drupal.conf
# Fail2Ban configuration file
#
# Author: Yuri Ivanov
#
# $Revision$
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failure messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values:  TEXT
#
failregex = ^.*\|page not found\|<HOST>\|

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex = ^.*\|page not found\|<HOST>\|.*\+\+Result:
apache-attempt.conf
# Fail2Ban configuration file
#
# Author: Yuri Ivanov
#
# $Revision$
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failure messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values:  TEXT
#
failregex = [[]client <HOST>[]] Attempt to serve directory

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

drupal-longtime.conf
# Fail2Ban configuration file
#
# Author: Yuri Ivanov
#
# $Revision$
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failure messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>[\w\-.^_]+)
# Values:  TEXT
#
failregex = ^.*\|page not found\|<HOST>\|.*\+\+Result:
          ^.*\|php\|<HOST>\|.*\|Warning:

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =
Включаем наши и дополнительные фильтры
в файл /etc/fail2ban/jail.conf  добавляем строки:

[apache-attempt]

enabled  = true
port     = http,https
filter   = apache-attempt
logpath  = /var/log/apache*/*error.log
bantime = 600
maxretry = 4

[drupal]

enabled  = true
port     = http,https
filter   = drupal
logpath  = /var/log/drupal.log
bantime = 600
maxretry = 6

[drupal-longtime]

enabled  = true
port     = http,https
filter   = drupal-longtime
logpath  = /var/log/drupal.log
bantime = 86400
# 86400 sec = 1 day
# 604800 sec = 1 week
maxretry = 1

включаем дополнительные фильтры:
в файл /etc/fail2ban/jail.conf в разделе  [apache-noscript] должно быть  enabled = true


Рестарт служб
sudo service rsyslogd restart
sudo service fail2ban restart

Заключение
Атакеры попадают в бан и разбанятся автоматически.
Юра.

Как вам статья?
сопротивление бесполезно

 

Страница сгенерирована за 0.052 секунд. Запросов: 25.