Установка и настройка Fail2Ban: Ubuntu, CentOS, Fedora и Debian

Fail2ban — это программное обеспечение, которое защищает ваш сервер от атак. ПО отслеживает журналы сервера и выявляет любую подозрительную активность.

Начни обучение в IT бесплатно

Вводная часть любого курса — без оплаты и привязки карты. DevOps, сети, программирование, QA и ещё 50+ курсов

  • Практика с первого урока
  • Эксперты-практики
  • Сертификат
Начать бесплатно

Программа обнаруживает необоснованное количество неудачных попыток и автоматически добавляет в iptables новые параметры, блокирующие данный IP. Затем этот IP (или хост) блокируется на определенное время или бессрочно.

Таким образом, установка этого программного обеспечения для мониторинга логов — отличный способ обеспечить еще один уровень безопасности вашего сервера. 

В этом руководстве вы узнаете, как установить и настроить Fail2ban на своем сервере.

Необходимые условия:

  • Доступ к командной строке / окну терминала
  • Доступ к учетной записи пользователя с правами sudo или root

Установка Fail2ban

Способ установки Fail2ban зависит от операционной системы, установленной на вашем сервере. Ниже вы найдете команды для установки и включения Fail2ban на Ubuntu, CentOS, Fedora и Debian.

Установка Fail2ban на Ubuntu

1. Прежде чем добавлять новые пакеты, необходимо обновить системный репозиторий и программное обеспечение. Для этого выполните команду:

apt-get update && apt-get upgrade

Нажмите y и Enter для подтверждения.

2. Теперь вы можете установить Fail2ban с помощью команды:

apt-get install fail2ban

3. По желанию вы можете установить Sendmail для поддержки электронной почты:

apt-get install sendmail

4. Далее необходимо разрешить доступ к SSH через файервол:

ufw allow ssh

5. Наконец, включите файрвол:

ufw enable

Установка Fail2ban на CentOS

1. Чтобы установить Fail2ban на CentOS, вам понадобится репозиторий EPEL. Обновите систему и добавьте репозиторий, выполнив команду:

yum update && yum install epel-release

2. Установив репозиторий EPEL, установите Fail2ban с помощью команды:

yum install fail2ban

3. Далее необходимо запустить службу Fail2ban и включить ее при загрузке:

systemctl start fail2ban
systemctl enable fail2ban

4. Для поддержки электронной почты вы можете установить Sendmail с помощью:

yum install sendmail

5. Чтобы запустить и включить службу Sendmail, выполните команду:

systemctl start sendmail
systemctl enable sendmail

Установка Fail2ban на Fedora

1. Начните с обновления системы:

dnf update

2. Затем установите Fail2ban и Sendmail (необязательно, если вам нужна поддержка электронной почты):

dnf install fail2ban
dnf install sendmail

3. Поскольку эти службы не запускаются автоматически на Fedora, вам нужно запустить и включить их с помощью:

systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail

Установка Fail2ban на Debian

1. Обновите и модернизируйте систему:

apt-get update && apt-get upgrade -y

Нажмите y и Enter для подтверждения.

2. Затем установите Fail2ban с помощью команды:

apt-get install fail2ban

3. Для поддержки электронной почты вы также можете установить Sendmail с помощью команды:

apt-get install sendmail-bin sendmail

Настройка Fail2ban

Настройте Fail2ban, отредактировав следующие файлы конфигурации:

  • файл fail2ban.local
  • файл jail.local

Настройка файла fail2ban.local

Fail2ban определяет свою глобальную конфигурацию в файле fail2ban.conf. Этот файл содержит конфигурацию по умолчанию и обычно не рекомендуется его изменять.

Все изменения в конфигурации должны производиться в отдельном файле fail2ban.local.

1. Поэтому первое, что нужно сделать, — это скопировать содержимое файла .conf в файл .local. Для этого нужно выполнить следующую команду:

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

2. После этой команды не будет никакого вывода. Следующим шагом будет открытие файла fail2ban.local с помощью выбранного вами текстового редактора:

nano fail2ban.local

3. Вы должны увидеть файл, похожий на изображение ниже:

В этом примере комментарии, выделенные синим цветом, объясняют каждую опцию и ее возможные значения. Белые линии - это опции, которые вы можете изменять, и они включают в себя:

  • loglevel — установка вывода журнала в CRITICAL, ERROR, WARNING, NOTICE, INFO или DEBUG.
  • logtarget — установка цели журнала, которая может быть либо FILE, либо SYSLOG, либо STDERR, либо STDOUT.
  • syslogsocket — установка файла сокета syslog в auto или FILE (используется только в том случае, если целью журнала является SYSLOG).
  • socket — установка файл сокета, который используется для связи с демоном. Убедитесь, что не удалили этот файл. По умолчанию он имеет следующий путь: /var/run/fail2ban/fail2ban.sock
  • pidfile — установка PID-файла, который используется для хранения идентификатора процесса сервера fail2ban. По умолчанию он расположен по адресу: /var/run/fail2ban/fail2ban.pid

Настройка файла jail.local

Еще один файл конфигурации Fail2ban, который вам может понадобиться изменить, - это файл jail.conf, который включает в себя джейлы, определяющие фильтры и действия.

Как и в случае с глобальной конфигурацией, файл jail.config не следует изменять напрямую. Вместо этого все настройки должны быть сделаны в файле jail.local.

1. Если вам необходимо внести некоторые изменения, скопируйте содержимое файла .conf в файл .local:

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

2. Откройте файл jail.local с помощью выбранного вами текстового редактора:

nano jail.local

3. Вы должны увидеть следующее содержимое:

В нем вы можете задать следующие параметры:

  • ignoreself — укажите, следует ли игнорировать локальный IP-адрес, установив значение true (по умолчанию) или false.
  • ignoreip — позволяет указать IP-адреса, CIDR-маски или DNS-хосты, которые должны быть запрещены. Разделите несколько адресов пробелом.
  • ignorecommand — определите путь/к/команде, если она должна быть проигнорирована.
  • bantime — укажите количество секунд, в течение которых хост будет запрещен (по умолчанию 600).
  • maxretry — количество отказов, допустимых перед тем, как хост будет забанен (по умолчанию установлено значение 5).
  • findtime — время, в течение которого хост не должен использовать число maxretry, чтобы не быть забаненным (обычно задается 10 минут). Например, если хост потерпел неудачу 5 раз за 10 минут, он будет забанен на 600 секунд.
  • backend — укажите бэкэнд, используемый для получения модификации файлов. Если вы используете CentOS или Fedora, вам нужно установить backend на systemd. Для других операционных систем достаточно значения по умолчанию auto.
  • [ssh] — по умолчанию в Fail2ban не включены джейлы. Поэтому вам нужно сделать это вручную, добавив джейлы в конфигурационный файл. Например, вы можете включить джейл демона SSH, откомментировав (удалив #) строки [ssh] и enabled = true.

  • destemail — укажите адрес электронной почты, на который вы хотите получать уведомления
  • sender — определяет адрес электронной почты, с которого вы получаете уведомления.

Дополнительные конфигурации jail.local

В файле jail.local можно задать дополнительные настройки, например, для SSH и iptables. К ним относятся:

  • banaction — указывает действие по умолчанию, которое используется при достижении максимального числа попыток.
  • banaction_allports — позволяет обозначить IP, который должен быть заблокирован в каждом порту.
  • port — значение должно соответствовать установленному сервису. Это может быть ssh или номер порта (если вы используете альтернативный порт).
  • filter — имя файла, содержащего информацию о failregex, расположенного в файле /etc/fail2ban/filter.d.

Перезапуск системы

Если вы внесли какие-либо изменения в файлы fail2ban.local и jail.local, обязательно перезапустите службу fail2ban.

Чтобы перезапустить службу fail2ban с новой конфигурацией, выполните команду:

service fail2ban restart

Итак

Следуя этому руководству, вы должны были установить и настроить базовую конфигурацию Fail2ban.

Fail2ban - это отличный инструмент для добавления еще одного уровня безопасности. Он особенно эффективен против атак грубой силы по SSH.

Ссылка
скопирована
Для читателей Базы
Мы приготовили тебе подарок

Бесплатный урок и промокод на курс

Эта скидка − тебе!

Промокод на скидку −15% на любой курс и бесплатная часть

Эта скидка − тебе!

Промокод на скидку −15% на любой курс и бесплатная часть

−15%
Твой подарок ещё ждёт

Промокод на скидку
−15% на любой курс и бесплатная часть

Выбрать курс
Еще по теме:
Разбираем 7 ключевых принципов Linux, которые помогают новичкам перестать бороться с системой и начать понимать, как она на самом деле работает.
Узнайте про 5 полезных Linux - команд: tldr, timeout, ncdu, fd и trash, которые упрощают жизнь при работе в CLI
Что позволяет называть один API как REST API, а другой нет? Сейчас попробуем разложить все по полочкам, чтобы ты на собесе жидко не споткнулся о такую, казалось бы, простую тему.
Узнайте, как работают сетевые порты в Linux, какие бывают типы портов, и как управлять ими с помощью команд netstat, ss, ufw и iptables
Рассказываем, как появился nginx, его отличия от apache, для чего нужен nginx и какие у него преимущества
ОСЕННИЕ СКИДКИ
30%
40%
50%
До конца акции: 30 дней 24 : 59 : 59