SCROLL
Среднее время на прочтение: 2 мин.

Безопасность веб-сервера. Настраиваем Fail2ban для защиты сервера Apache на Debian.

Продолжаем рассматривать способы защиты веб-сервера, от потенциальных угроз. На этот раз рассмотрим такой инструмент как Fail2ban.

 

Принцип работы Fail2ban, заключается в анализе лог-файлов и реагировании на определенные события которые определены в настройках Fail2ban.

 

Рассмотрим как установить Fail2ban и настроить на защиту веб-сервера (Apache), развернутом на Debian 9 Stretch.

 

Устанавливаем пакет fail2ban:

apt-get install fail2ban -y

 

Конфигурационный файл настройки правил /etc/fail2ban/jail.conf, разработчики не рекомендуют изменять, поэтому создадим его локальную копию, из которого будут в приоритете считываться правила:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

 

Настройка правил (jails)

Fail2ban поставляется с набором предопределённых правил jails, для популярных приложений, таких как Apache, Nginx, SSH…. Само собой разумеется можно создать и собственные правила для произвольных приложений.

 

Каждое правило для определения атак, полагается на фильтры описанные в каталоге /etc/fail2ban/fileter.d/, а доступные действия на обнаруженные атаки описаны в каталоге /etc/fail2ban/action.d/

 

Задействуем встроенные правила для Apache. Открываем ранее созданный файл конфигурации /etc/fail2ban/jail.local и добавляем в него правила:

# Определение неудачных попыток ввода пароля
[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 6

# Определение потенциального сканирования для применения эксплойтов и php уязвимостей
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6

# Определение попыток переполнения Apache
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2

# Определение неудачных попыток в поиске домашней директории на сервере
[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/apache*/*error.log
maxretry = 2

 

В указанных правилах, не определяется действие, при срабатывании триггера, поэтому они будут выполнять действие по-умолчанию. Действие по-умолчанию, можно посмотреть в загляните в /etc/fail2ban/jail.conf в секции [DEFAULT], параметр banaction.

 

В моем случае, действие по-умолчанию — это iptables-multiport (предопределено в /etc/fail2ban/action.d/iptables-multiport.conf). Это действие блокирует IP адреса используя iptables с модулем мультипорт multiport module.

[stextbox id=’warning’]Любой заданный параметр в конфигурации правила перепишет соответствующий параметр по-умолчанию, определённый файлами настроек fail2ban. И наоборот, любой отсутствующий параметр будет взят из значения по-умолчанию, определённый в секции [DEFAULT].[/stextbox]

 

После включения правил, необходимо перезапустить fail2ban для загрузки правил:

service fail2ban restart

 

Проверка и управления статусами и банами Fail2ban

После активации правил jails, можно просматривать текущее состояние их, а так же управлять банами в них, при помощи fail2ban-client.

 

Чтобы посмотреть список активных правил jails:

 

fail2ban-client status

(прим. вывода)
Status
|- Number of jail:      6
`- Jail list:           apache, apache-noscript, apache-modsecurity, apache-overflows, apache-nohome, apache-multiport

 

Чтобы посмотреть статус определённого правила jail:

fail2ban-client status [name-of-jail]

(прим. вывода)
Status for the jail: apache
|- filter
|  |- File list:        /var/www/html/log/error.log
|  |- Currently failed: 0
|  `- Total failed:     6
`- action
   |- Currently banned: 0
   |  `- IP list:
   `- Total banned:     1

 

Для ручного блокировки IP-адреса, в определенном правиле jail, выполним команду:

fail2ban-client set [name-of-jail] banip [ip-address]

 

Для разблокировки IP-адреса, в определенном правиле jail:

fail2ban-client set [name-of-jail] unbanip [ip-address]

 

Мы рассмотрели как защитить веб-сервер Apache, использую предустановленные правила jail. Но хочу заметить, что сервис fail2ban очень гибок настройке и поэтому в зависимости от типа ваших веб-сервисов и нужд в защите, можно адаптировать существующие правила jail или написать собственные правила jail и фильтры логов.

Обсуждение

0 комментариев

Нет комментариев.