РЭДЛАЙН
Лучшие решения для Вас и Вашего бизнеса!
На нашем сайте вы можете получить информацию о веб-разработке, обслуживании и продвижении сайта. Интернет-маркетинге. SEO (поисковой оптимизации). Контекстной и медийной рекламе в Интернете. SMM. Регистрации доменов и хостинговых услугах. И современном дизайне сайтов. Вообщем того что касается веб-разработки, а также много другой полезной информации из мира интернета, бизнеса и интернет-технологий...
Создаем доступные и современные сайты, которые работают! Обслуживаем и эффективно продвигаем интернет-проекты с 2006 года!
Главная Web-мастеру Настройка и использование Fail2ban на Linux


Настройка и использование Fail2ban на Linux


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

Читая некоторые статьи в интернете, может сложиться неправильное мнение, что Fail2ban нужен только для защиты от брут-форс атак (перебор паролей). На самом деле, данный программный продукт — система реагирования на подозрительные действия.

Установка и запуск

Для систем на базе пакетов Debian или Red Hat команды будут немного отличаться.

CentOS / Red Hat:

yum install epel-release

yum install fail2ban

Ubuntu / Debian:

apt-get install fail2ban

CentOS 6:

Добавляем репозиторий:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

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

yum install fail2ban

Для запуска службы вводим следующие команды:

systemctl enable fail2ban

systemctl start fail2ban

* Для старых систем без systemd это будут команды chkconfig fail2ban on / update-rc.d fail2ban defaults и service fail2ban start.

Базовая настройка

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

Для начала создаем первый файл, в котором будут храниться настройки по умолчанию:

vi /etc/fail2ban/jail.d/default.conf

Приведем его к виду. Настройка будет немного отличаться в зависимости от операционной системы.

а) для CentOS / Red Hat:

[DEFAULT]
maxretry = 4
findtime = 480
bantime = 720
action = firewallcmd-ipset
ignoreip = 127.0.0.1/8

б) для Ubuntu / Debian:

[DEFAULT]
maxretry = 4
findtime = 480
bantime = 720
action = iptables
ignoreip = 127.0.0.1/8

* где:

  • maxretry — количество действий, которые разрешено совершить до бана.
  • findtime — время в секундах, в течение которого учитывается maxretry;
  • bantime — время, на которое будет блокироваться IP-адрес;
  • action — действия, которое будет выполняться, если Fail2ban обнаружит активность, соответствующую критериям поиска;
  • ignoreip — игнорировать защиту, если запросы приходят с перечисленных адресов.

* В данном примере, если в течение 8 минут (480) будет найдено 5 строк (maxretry = 4), содержащих критерий фильтра, Fail2ban заблокирует IP-адрес, с которого идет подключение на 12 минут (720);
* В секции [DEFAULT] хранятся общие настройки для всех правил. Каждую из настроек можно переопределить при конфигурировании самого правила.

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

Для нового правила необходимо создать конфигурационный файл в каталоге /etc/fail2ban/jail.d, например:

vi /etc/fail2ban/jail.d/service.conf

[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 10
findtime = 600

* где:

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

* обратите внимание, что мы переопределили параметры по умолчанию maxretry, findtime и action.

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

Чтобы изменения вступили в силу, перезапускаем сервис:

systemctl restart fail2ban

* в старых версиях service fail2ban restart.

Исключения

Для гарантии, что fail2ban не заблокирут компьютер администратора или другой важный узел, предусмотрена настройка исключений с помощью опции ignoreip. Опция может быть применена как на глобальном уровне (default), так и для конкретного правила.

Для того, чтобы задать общую настроку, откроем наш файл default:

vi /etc/fail2ban/jail.d/default.conf

... и добавим:

[DEFAULT]
...
ignoreip = 192.168.0.0/24 95.95.95.95

* в данном примере под фильтры не будут попадать адреса с 192.168.0.1 по 192.168.0.255 и адрес 95.95.95.95.

Для конкретного правила настройки будут, примерно, следующие:

vi /etc/fail2ban/jail.d/ssh.conf

[ssh]
...
ignoreip = 192.168.1.22

* в данном примере мы добавили в белый список один адрес 192.168.1.22, который не будет блокироваться.

Обязательно перезагружаемся, чтобы настройки применились:

systemctl restart fail2ban

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

Действия и фильтры

Действия

Файлы с настройкой действий находятся в каталоге /etc/fail2ban/action.d. Чтобы блокировать адрес, Fail2ban создает правило в брандмауэре netfilter. Для этого, чаще всего, используются утилиты iptables или firewall-cmd. Последняя применяется в последних версиях CentOS / Red Hat / Fedora. iptables более универсальная и может использоваться, почти, во всех системах Linux.

Остановимся на описании самых используемых действий:

  • iptables — создание простого правила в netfilter с помощью одноименной утилиты;
  • iptables-multiport — использование модуля multiports, позволяющий добавлять диапазоны портов для блокировки;
  • iptables-ipset — использование ipset для придания более лаконичного вида правилам;
  • iptables-allports — блокирует для адреса все порты;
  • firewallcmd-new — создание простого правила в netfilter с помощью firewall-cmd;
  • firewallcmd-ipset — добавляет правила с помощью утилиты firewall-cmd, используя ipset;
  • firewallcmd-rich-rules — создает rich-rules при помощи firewall-cmd.

Фильтры

Фильтры, в основном, представляют набор регулярных выражений для поиска ключевых слов в log-файлах. Они находятся в каталоге /etc/fail2ban/filter.d.

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

Примеры правил

В данных примерах блокировка IP-адреса будет происходить на 12 минут после 4-х попыток ввода пароля в течение 8 минут. Эти параметры берутся из настроек [DEFAULT]. Если их нужно переопределить, просто добавляем их при описании правила.

Обратите внимание, что данные правила подразумавают типичное использование итилит для работы с брандмауэром, а именно, для CentOS это firewalld, для Ubuntu — iptables. Однако, в вашей системе могут использоваться другие инструменты. Тогда необходимо это учитывать и правильно указывать значение для опции action.

SSH

CentOS 7 (firewalld)

vi /etc/fail2ban/jail.d/ssh.conf

[ssh]
enabled = true
port = ssh
filter = sshd
action = firewallcmd-new[name=sshd]
logpath = /var/log/secure

CentOS 8/9 (firewalld + systemd)

В более новых версиях Linux лог хранится не в файлах а базе systemd. Настройка будет такой:

[ssh]
enabled = true
port = ssh
filter = sshd
action = firewallcmd-new[name=sshd]
backend = systemd

Ubuntu (iptables)

vi /etc/fail2ban/jail.d/ssh.conf

[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd]
logpath = /var/log/auth.log

Asterisk

а) для iptables:

vi /etc/fail2ban/jail.d/asterisk.conf

[asterisk]
enabled = true
filter = asterisk
action = iptables-allports[name=asterisk, protocol=all]
logpath = /var/log/asterisk/messages

б) для firewalld:

vi /etc/fail2ban/jail.d/asterisk.conf

[asterisk]
enabled = true
filter = asterisk
action = firewallcmd-new[name=asterisk, protocol=all]
logpath = /var/log/asterisk/messages

* обратите внимание, что меняется только значение для action.

NGINX

vi /etc/fail2ban/jail.d/nginx.conf

[nginx]
enabled = true
port = http,https
filter = nginx-http-auth
action = iptables-multiport[name=nginx, port="http,https", protocol=tcp]
logpath = /var/log/nginx/error.log

NGINX DDoS (req limit)

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

Для начала, необходимо настроить NGINX:

vi /etc/nginx/nginx.conf

В раздел http добавим:

http {
...
limit_req_zone $binary_remote_addr zone=one:10m rate=25r/s;
...

* данная настройка создает зону с интенсивностью 25 запросов в секунду.

После настраиваем лимит для конкретного виртуального домена в разделе server - location:

server {
...
location / {
...
limit_req zone=one burst=50 nodelay;
...

* данная настройка вместе с предыдущей зоной, созданной в секции http, позволит задать лимит — 25 запросов в секунду при всплеске 50 запросов.

Проверяем конфигурационный файл nginx и перезапускаем сервис:

nginx -t

systemctl reload nginx

В лог-файле (по умолчанию /var/log/nginx/error.log) при превышении лимита подключения мы должны увидеть запись на подобие:

2020/11/16 19:11:08 [error] 1330844#1330844: *16640836 limiting requests, excess: 10.520 by zone "one", client: xxx.xxx.xxx.xxx, server: dmosk.ru, request: "GET / HTTP/1.1", host: "dmosk.ru", referrer: "https://dmosk.ru/page1"

* обратите внимание, что в вашем случае путь до лога может быть другой. Он определяется в конфигурационном файле NGINX.

Теперь можно приступать к настройке fail2ban. Создаем фильтр:

vi /etc/fail2ban/filter.d/nginx-limit-req.conf

[Definition]
ngx_limit_req_zones = [^"]+
failregex = ^\s*\[error\] \d+#\d+: \*\d+ limiting requests, excess: [\d\.]+ by zone "(?:%(ngx_limit_req_zones)s)", client:
ignoreregex =

* данный файл может быть уже создан и настроен при установке fail2ban. Если это так, то ничего не меняем и идем дальше.

Создаем правило в fail2ban:

vi /etc/fail2ban/jail.d/nginx-ddos.conf

[nginx-ddos]
enabled = true
port = http,https
filter = nginx-limit-req
action = iptables-multiport[name=nginxddos, port="http,https", protocol=tcp]
logpath = /var/log/nginx/error.log

* еще раз обращаю внимание на путь logpath — в вашем случае он может быть другим.

После настройки не забываем перезапустить fail2ban:

systemctl restart fail2ban

Работа со списком заблокированных адресов

Просмотр

1. Получить список правил можно командой:

fail2ban-client status

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

fail2ban-client status

При наличие заблокированных IP-адресов мы увидим, примерно, следующее:

`- action
|- Currently banned: 2
| `- IP list: 31.207.47.55 10.212.245.29

2. Вышеописанный вариант не покажет полный список адресов, если их много. Для этого есть команда:

fail2ban-client banned

Она покажет все заблокированные адреса во всех правилах.

3. С помощью утилит управления брандмауэром.

а) iptables:

iptables -L -n --line

б) firewall-cmd:

firewall-cmd --direct --get-all-rules

Удаление

Средствами fail2ban:

Для удаление адреса из списка вводим:

fail2ban-client set unbanip

например:

fail2ban-client set ssh unbanip 31.207.47.55

С помощью iptables:

iptables -D -s IP-адрес

например:

iptables -D fail2ban-ssh -s 10.212.245.29

С помощью firewall-cmd:

firewall-cmd --direct --permanent --remove-rule

например:

firewall-cmd --direct --permanent --remove-rule ipv4 filter f2b-sshd 0 -s 188.134.7.221

После необходимо перечитать правила:

firewall-cmd --reload

Возможные ошибки

Failed during configuration have not found any log file for sshd jail

Начиная с Ubuntu версии 22.04 после установки fail2ban, служба не запускается, а в логе мы можем увидеть ошибку:

Failed during configuration have not found any log file for sshd jail

Причина: fail2ban не может найти файл с логами для ssh. Это связано с тем, что в новой версии эти логи попадают не в классический файл /var/log/auth.log, а в журнал systemd, для просмотра которого используется утилита journalctl.

Решение: для настройки ssh нам нужно поменять значение опции backend.

Для этого открываем файл:

vi /etc/fail2ban/jail.d/defaults-debian.conf

В нем должна быть запись для [sshd]. Добавляем строку:

backend = systemd

Запускаем fail2ban:

systemctl start fail2ban

Аналоги

Если быть честным, достойных аналогов нет. Вот что-то похожее:

  1. tallow — сырая и еще не готовая для продуктивного использования. Также мало документации.
  2. RDPDefender — удобный аналог для Windows, но только для защиты RDP.
  3. IPBan — для Windows. Настройка из командной строки.
  4. ts_block — для Windows.

Источник: https://www.dmosk.ru/instruktions.php?object=fail2ban#lists

Настройка и использование Fail2ban на Linux | | 2023-11-20 14:00:00 | | Статьи Web-мастеру | | Описывая Fail2ban в двух словах, можно сказать, что он позволяет на основе анализа логов блокировать тех, кто злоупотребляет доступностью сервера по сети. Например, защитить почтовые ящики от взлома путем перебора паролей или многократного запр | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Дайджест новых статей по интернет-маркетингу на ваш email
Подписаться

Продающие сайты "под ключ"!

Наши сайты зарабытывают вам деньги. Landing-page. Эффективные продающие сайты точно в срок и под ключ! Всего от 14700 рублей
Подробнее...

Интернет-магазины и каталоги "под ключ"!

Эффективные и удобные инструменты торговли (электронной торговли) "под ключ". Продают, даже когда вы спите! Всего от 33800 рублей
Подробнее...

Комплексный интернет-маркетинг и продвижение сайтов

Максимальную эффективность дает не какой-то конкретный метод, а их комбинация. Комбинация таких методов и называется комплексным интернет-маркетингом. Всего от 8000 рублей в месяц
Подробнее...

Реклама в Yandex и Google

Контекстная реклама нацелена лишь на тех пользователей, которые непосредственно заинтересованы в рекламе Ваших услуг или товаров. Всего от 8000 рублей в месяц
Подробнее...

Social media marketing (SMM) — продвижение в социальных медиа

Реклама в Однокласcниках и на Mail.ru Создание, ведение и раскрутка групп и реклама ВКонтакте и Facebook. Всего от 8000 рублей в месяц
Подробнее...

Приглашаем к сотрудничеству рекламные агентства и веб-студии!

Внимание Акция! Приглашаем к сотрудничеству рекламные агентства и различные веб-студии России! Индивидуальные и взаимовыгодные условия сотрудничества.
Подробнее...

Ускоренная разработка любого сайта от 5 дней!

Внимание Акция! Ускоренная разработка любого сайта! Ваш сайт будет готов за 5-10 дней. Вы можете заказать разработку любого сайта "под ключ" за 5-10 рабочих дней, с доплатой всего 30% от его стоимости!
Подробнее...

Ждем новых друзей!

Внимание Акция! Ждем новых друзей! Скидка 10% на услуги по созданию и(или) обслуживанию вашего сайта при переходе к нам от другого разработчика.
Подробнее...

Приведи друга и получи скидку!

Внимание Акция! Приведи друга и получи скидку! Скидка 10% на услуги по созданию и(или) обслуживанию вашего сайта, если клиент заказавший наши услуги, пришел по Вашей рекомендации.
Подробнее...

1 2 3 4 5 6 7 8 9

Новые статьи и публикации



Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!

Качественное и объемное представление своего бизнеса в Сети требуется любой растущей коммерческой структуре, стремящейся увеличить продажи, именно по этой причине среди наших клиентов как крупные так и небольшие компании во многих городах России и ближнего зарубежья.
Как мы работаем

Заявка
Позвоните или оставьте заявку на сайте.


Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!


Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.


Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.


Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.

Остались еще вопросы? Просто позвоните и задайте их специалистам
с 2:30 до 11:30 по Мск, звонок бесплатный
Или напишите нам в WhatsApp
с 9:30 до 18:30 по Хабаровску
Или напишите нам в WhatsApp
Веб-студия и агентство комплексного интернет-маркетинга «РЭДЛАЙН» © 2006 - 2024

Профессиональная Веб-разработка. Создание сайтов и магазинов "под ключ" , а также по всей России и зарубежью. Продвижение и реклама. Веб-дизайн. Приложения. Сопровождение. Модернизация. Интеграции. Консалтинг. Продвижение и реклама. Комплексный Интернет-маркетинг.

Оставьте заявку / Задайте вопрос

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Заказать услугу

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Обратный звонок

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Подписка на дайджест новостей

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Заказать услуги со скидкой \ Бесплатная консультация







КАКИЕ УСЛУГИ ВАС ИНТЕРЕСУЮТ?

КАКИЕ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ ПОТРЕБУЮТСЯ?

Нажимая на кнопку ОТПРАВИТЬ, я даю согласие на обработку персональных данных
×

Высококачественные сайты по доступным ценамМы создаем практически любые сайты от продающих страниц до сложных, высоконагруженных и нестандартных веб приложений! Наши сайты это надежные маркетинговые инструменты для успеха Вашего бизнеса и увеличения вашей прибыли! Мы делаем красивые и максимально эффектные сайты по доступным ценам уже много лет!

Что нужно сделать, чтобы заказать создание сайта у нас?

Ну для начала вам нужно представлять (хотя бы в общих чертах), что вы хотите получить от сайта и возможно каким вы хотите его видеть. А дальше все просто. Позвоните нам или оставьте заявку нашим менеджерам, чтобы они связались с Вами, проконсультировали и помогли определиться с подходящим именно Вам сайтом по цене, сроку, дизайну или функционалу. Если вы все ещё не уверены, какой сайт вам нужен, просто обратитесь к нам! Мы вместе проанализируем вашу ситуацию и определим максимально эффективный для вас вариант.

Быстрый заказ \ Консультация

Для всех тарифных планов на создание и размещение сайтов включено:

Комплексная раскрутка сайтов и продвижение сайта Комплексный подход это не просто продвижение сайта, это целый комплекс мероприятий, который определяется целями и задачами поставленными перед сайтом и организацией, которая за этим стоит. Время однобоких методов в продвижении сайтов уже прошло, конкуренция слишком высока, чтобы была возможность расслабиться и получать \ удерживать клиентов из Интернета, просто сделав сайт и не занимаясь им...

Комплексная раскрутка работает в рамках стратегии развития вашего бизнеса в сети и направлена

Быстрый заказ \ Консультация

ЭФФЕКТИВНОЕ СОПРОВОЖДЕНИЕ (ПОДДЕРЖКА, ОБСЛУЖИВАНИЕ) САЙТОВ

Полный комплекс услуг по сопровождению сайтаМы оказываем полный комплекс услуг по сопровождению сайта: информационному и техническому обслуживанию и развитию Интернет сайтов.

Передав свой сайт для поддержки в руки наших специалистов, Вы избавитесь от проблем, связанных с обновлением информации и контролем за работой ресурса.

Наша компания осуществляет техническую и информационную поддержку уже имеющихся сайтов. В понятие «поддержка сайтов» также входят услуги администрирования сайтов, обновления сайтов и их модернизация.

Быстрый заказ \ Консультация

Редизайн сайта и Адаптивный веб дизайн

Современный, технологичный, кроссбраузерный ... Профессиональный дизайн сайтов и веб-приложений

Редизайн сайта — создание нового дизайна сайта с целью улучшения внешнего вида, функциональности и удобства использования. Редизайн сайта – это способ преобразовать проект к извлечению из него максимальной отдачи и средств. В современном мире задачами редизайна является поднятие существующего сайта на новый уровень для внедрения новых технологий, при этом сохраняя многолетний сформировавшийся опыт и успешные решения компаний.

Адаптивный дизайн сайтов и веб-приложений

Все больше людей пользуются мобильными устройствами (телефонами, планшетами и прочими) для посещения Интернета, это не для кого уже не новость. Количество таких людей в процентном отношении будет только больше с каждым годом, потому что это удобно и по многим другим причинам.

На сегодняшний день адаптивный дизайн является стандартным подходом при разработке новых сайтов (или веб-приложений) и в идеале ваш сайт должен смотреться и функционировать так, как вы задумывали, на всём разнообразии устройств.

Быстрый заказ \ Консультация

Контекстная реклама в Яндекс и GoogleКонтекстная реклама - это эффективный инструмент в интернет маркетинге, целью которого является увеличение продаж. Главный плюс контекстной рекламы заключается в том, что она работает избирательно.

Реклама в поисковых системах Яндекс и Google. Профессиональная настройка рекламы и отслеживание эффективности!

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

Быстрый заказ \ Консультация

Скидка

1500 руб.
Заинтересовались услугами создания, обслуживания или продвижения вашей компании в Интернете?!
Получите 1500 руб.
за он-лайн заявку
Предложение ограничено.

После получения заявки с Вами свяжутся наши специалисты и уточнят все детали по интересующей вас услуге.
«Нажимая на кнопку "Получить скидку", я даю согласие на обработку персональных данных»
×
Получите 1500 рублей!
×
×