Fail2ban - активная защита сервера Linux Ubuntu Server 10.04 на основе информации из логов.

Posted on 08/14/2010 by   |   Filed under templates, internet    Comments 11

Fail2ban - утилита, которая парсит log-файлы на предмет определенных событий и выполняет  действия, когда такие события появляются в log-файлах. Эта утилита позволит предотвратить перебор паролей (brute force) и различные подозрительные действия от удаленных компьютеров. Единственное условие - запись события в log- файле.

Базовая установка содержит готовые фильтры для  ssh, exim, postfix,cyrus-imap, apache, lighttpd, named и т.д. Можно их создавать и самим, для этого понадобится некоторое знание регулярных выраженией (regexp) в python. Сама настройка Fail2ban очень проста и логична. Рассмотрим базовую установку на сервере Linux Ubuntu Server 10.04  и простую настройку защиты ssh сервера.

Предположим, что наш ssh сервер слушает порт tcp:30500

1) Устанавливаем fail2ban

sudo apt-get update
sudo apt-get install fail2ban

2) Основной файл конфигурации: /etc/fail2ban/jail.conf

sudo nano /etc/fail2ban/jail.conf

Рассмотрим его подробней:
Секция  "DEFAULT" описывает настройки для всех фильтров по умолчанию, и используются в случае, если в фильтре не заданы свои настройки.

[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
 ignoreip = 127.0.0.1
 bantime  = 600
 maxretry = 3

 

ignoreip - это разделенный пробелами список ip-адресов, которые не могут быть блокированы fail2ban. Сюда можно занести свою локальную машину или компьютер, с которого будут проводится эксперименты над системой.
bantime - время в секундах, на которое будет блокироваться хост.
maxretry - максимальное число ошибочных попыток доступа к сервису, прежде чем хост будет заблокирован fail2ban.

Секция "ssh" описывает настройки фильтра для ssh сервера.

[ssh]
 enabled = true
 port    = ssh
 filter  = sshd
 logpath  = /var/log/auth.log
 maxretry = 6

 

enabled - может принимать значение true или false. Включен,выключен фильтр.
port - может принимать значение в соответствии с описанием в файле /etc/services или цифровое значение (номер порта).
filter - имя соответствующего файла-фильтра в /etc/fail2ban/filter.d, без конечного .conf
logpath - файл логов, мониторинг которого осуществляет fail2ban, для проверки подозрительных действий.
maxretry - максимальное число ошибочных попыток доступа к сервису (только для данного фильтра), прежде чем хост будет заблокирован fail2ban.

В нашем случае,  установим значение port =30500 и maxretry = 2 (2 попытки ввода пароля перед блокировкой) и добавим bantime  = 3600  - время блокировки на 1 час. Получаем:

[ssh]
 enabled = true
 port    = 30500
 filter  = sshd
 logpath  = /var/log/auth.log
 maxretry = 2
 bantime  = 3600

3) Включим фильтр ssh-ddos, который будет защищать ssh сервер от попыток ddos-a. Ищем секцию"ssh-ddos"

[ssh-ddos]
 enabled = false
 port    = ssh
 filter  = sshd-ddos
 logpath  = /var/log/auth.log
 maxretry = 6

Включаем работу данного фильтра, изменяем порт сервера ssh на 30500 и изменяем значение maxretry и добавляем bantime.

[ssh-ddos]
 enabled = true
 port = 30500
 filter = sshd-ddos
 logpath = /var/log/auth.log
 maxretry = 2
 bantime = 3600

Сохраняем файл конфигурации (Ctrl+O)

4) Не забываем перезапустить fail2ban после редактирования конфигурационного файла:

sudo service fail2ban restart

5) Пробуем подключиться с удаленного компьютера по ssh и вводить неправильные пароли/логины. При правильной настройке файлов конфигурации, после 2-х попыток ввода неправильного пароля, удаленный компьютер сможет повторить попытку подключения к ssh серверу только через 1 час.

6) Лог работы fail2ban находится здесь: /var/log/fail2ban.log

Источник: Day > /dev/null: Часть 1. Fail2ban - активная защита сервера Linux Ubuntu Server 10.04 на основе информации из логов.:

Image Gallery

Services Overview

Curabitur sed urna id nunc pulvinar semper. Nunc sit amet tortor sit amet lacus sagittis posuere cursus vitae nunc.Etiam venenatis, turpis at eleifend porta, nisl nulla bibendum justo.

Contact Us

Nullam quam lorem, tristique non vestibulum nec, consectetur in risus. Aliquam a quam vel leo gravida gravida eu porttitor dui.

Address: 1458 TemplateAccess, USA
Telephone: +123-1234-5678
FAX: +458-4578
Others: +301 - 0125 - 01258
E-mail: mail@yoursitename.com