fail2ban server что такое
Настройка и использование Fail2ban на Linux
Описывая Fail2ban в двух словах, можно сказать, что он позволяет на основе анализа логов блокировать тех, кто злоупотребляет доступностью сервера по сети. Например, защитить почтовые ящики от взлома путем перебора паролей или многократного запроса какого-либо ресурса.
Читая некоторые статьи в интернете, может сложиться неправильное мнение, что Fail2ban нужен только для защиты от брут-форс атак (перебор паролей). На самом деле, данный программный продукт — система реагирования на подозрительные действия.
Установка и запуск
Для систем на базе пакетов Debian или Red Hat команды будут немного отличаться.
CentOS / Red Hat:
yum install fail2ban
Ubuntu / Debian:
apt-get install fail2ban
CentOS 6:
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.
Для начала создаем первый файл, в котором будут храниться настройки по умолчанию:
Приведем его к виду. Настройка будет немного отличаться в зависимости от операционной системы.
а) для 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
* В данном примере, если в течение 8 минут (480) будет найдено 5 строк (maxretry = 4), содержащих критерий фильтра, Fail2ban заблокирует IP-адрес, с которого идет подключение на 12 минут (720);
* В секции [DEFAULT] хранятся общие настройки для всех правил. Каждую из настроек можно переопределить при конфигурировании самого правила.
Настройка правил
Для нового правила необходимо создать конфигурационный файл в каталоге /etc/fail2ban/jail.d, например:
[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 10
findtime = 600
* обратите внимание, что мы переопределили параметры по умолчанию maxretry, findtime и action.
Чтобы изменения вступили в силу, перезапускаем сервис:
systemctl restart fail2ban
* в старых версиях service fail2ban restart.
Исключения
Для гарантии, что fail2ban не заблокирут компьютер администратора или другой важный узел, предусмотрена настройка исключений с помощью опции ignoreip. Опция может быть применена как на глобальном уровне (default), так и для конкретного правила.
Для того, чтобы задать общую настроку, откроем наш файл default:
[DEFAULT]
.
ignoreip = 192.168.0.0/24 95.95.95.95
* в данном примере под фильтры не будут попадать адреса с 192.168.0.1 по 192.168.0.255 и адрес 95.95.95.95.
Для конкретного правили настройки будут, примерно, следующие:
[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.
Остановимся на описании самых используемых действий:
Подробнее, как создаются правила в netfilter при помощи iptables и firewalld.
Фильтры
Фильтры, в основном, представляют набор регулярных выражений для поиска ключевых слов в log-файлах. Они находятся в каталоге /etc/fail2ban/filter.d.
Для создания и настройки своих фильтров, можно использовать имеющиеся файлы в качестве шпаргалки.
Примеры правил
В данных примерах блокировка IP-адреса будет происходить на 12 минут после 4-х попыток ввода пароля в течение 8 минут. Эти параметры берутся из настроек [DEFAULT]. Если их нужно переопределить, просто добавляем их при описании правила.
CentOS
[ssh]
enabled = true
port = ssh
filter = sshd
action = firewallcmd-new[name=sshd]
logpath = /var/log/secure
Ubuntu
[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=sshd]
logpath = /var/log/auth.log
Asterisk
[asterisk]
enabled = true
filter = asterisk
action = iptables-allports[name=asterisk, protocol=all]
logpath = /var/log/asterisk/messages
NGINX
[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:
В раздел http добавим:
* данная настройка создает зону с интенсивностью запросов в 1 запрос в секунду.
server <
.
location / <
.
limit_req zone=one burst=5 nodelay;
.
* данная настройка вместе с предыдущей зоной, созданной в секции http, позволит лимитировать запросы — 1 запрос в секунду при всплеске 5 запросов.
Проверяем конфигурационный файл nginx и перезапускаем сервис:
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. Создаем фильтр:
[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:
[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
Работа со списком заблокированных адресов
Просмотр
Получить статистику заблокированных адресов можно следующей командой:
Получить список правил можно командой:
При наличие заблокированных IP-адресов мы увидим, примерно, следующее:
`- action
|- Currently banned: 2
| `- IP list: 31.207.47.55 10.212.245.29
С помощью iptables:
С помощью firewall-cmd:
Удаление
Средствами fail2ban:
Для удаление адреса из списка вводим:
fail2ban-client set unbanip
fail2ban-client set ssh unbanip 31.207.47.55
С помощью iptables:
С помощью firewall-cmd:
После необходимо перечитать правила:
Аналоги
Если быть честным, достойных аналогов нет. Вот что-то похожее:
Ограничение попыток входа в ssh с помощью fail2ban (средство от ботов подбирающих пароли через ssh)
SSH довольно безопасен, особенно если вы примете разумные меры предосторожности, такие как требование аутентификации на основе пары ключей. Тем не менее, в дикой природе по-прежнему существует множество ботов, которые пытаются найти уязвимые хосты, пытаясь войти в систему с распространенными скомпрометированными именами пользователей и паролями, такими как root / root или admin / admin. Хотя маловероятно, что они добьются успеха, они все равно будут использовать вашу пропускную способность и генерировать огромное количество журналов.
Один из способов минимизировать количество попыток входа в систему методом перебора — изменить порт по умолчанию, который прослушивает SSH. Однако это не считается хорошей практикой — во-первых, нужно помнить, что каждый раз, когда они подключаются к серверу, следует устанавливать правильный порт, отличный от порта по умолчанию. Более того, это может создать еще одну уязвимость безопасности, если выбранный порт больше 1024. Обычно только root может связываться с номерами портов ниже 1024. Однако, если для SSH используется больший номер порта, при определенных обстоятельствах пользователи без корневого доступа может заменить демон SSH другой, возможно, вредоносной службой.
Лучший способ решить возникшую проблему — использовать инструмент, который заблокирует злоумышленнику доступ к SSH-серверу. Одним из таких широко используемых инструментов является fail2ban ( www.fail2ban.org ). Анализируя журналы, fail2ban обнаруживает повторяющиеся неудачные попытки аутентификации и автоматически устанавливает правила брандмауэра для отбрасывания трафика, исходящего с IP-адреса злоумышленника.
Установка fail2ban на Ubuntu
Установить fail2ban в Ubuntu (и других дистрибутивах на основе Debian) очень просто:
Проверяем как это работает
Вы можете проверить, запущена ли служба, с помощью следующей команды:
$ sudo systemctl status fail2ban
Вывод должен быть похож на следующий — статус службы должен быть активным:
Посмотрим, как fail2ban изменил правила iptables:
Вы также должны увидеть, что в конфигурации iptables есть новая цепочка f2b-sshd, на которую ссылается правило цепочки INPUT:
Пакет fail2ban содержит инструмент под названием fail2ban-client. Он позволяет вам проверять статус службы и взаимодействовать с ней (например, позволяет вручную блокировать и разблокировать IP-адреса, включать и отключать тюрьмы и т. д.)
Посмотрим, какие jails активны:
Есть только один jail — sshd — которsq отвечает за мониторинг журналов SSH-сервера на предмет неудачного входа в систему и настройку правил брандмауэра для блокировки дальнейших попыток.
Теперь мы можем проверить статистику по sshd jail:
Настройка fail2ban
В большинстве случаев конфигурации по умолчанию должно быть достаточно. Тем не менее, полезно понимать, что это за значения по умолчанию и как их можно изменить в соответствии с вашими потребностями.
В стандартной конфигурации fail2ban защитит SSH-сервер и заблокирует злоумышленника на 10 минут после 5 неудачных попыток входа в систему в течение 10 минут. Файл конфигурации по умолчанию можно найти в /etc/fail2ban/jail.conf. Файл хорошо документирован и в основном не требует пояснений. Имейте в виду, что вам не следует вносить какие-либо изменения в этот файл, так как он может быть перезаписан во время обновления fail2ban.
После изменения конфигурации не забудьте перезапустить службу:
Должен заметить, что в данном случае я изменил параметры конфигурации, понимая стратегию атаки и получил суточный список атакующих хостов и заблокировал его.
Но об этом позже расскажу в отдельной заметке, если эта будет кому то полезна и интересна.
Настройка Fail2ban для защиты SSH
Fail2ban — простой в использовании локальный сервис, который отслеживает log–файлы запущенных программ, и на основании различных условий блокирует по IP найденных нарушителей.
Программа умеет бороться с различными атаками на все популярные *NIX–сервисы, такие как Apache, Nginx, ProFTPD, vsftpd, Exim, Postfix, named, и т.д.
Но в первую очередь Fail2ban известен благодаря готовности «из коробки» к защите SSH–сервера от атак типа «bruteforce», то есть к защите SSH от перебора паролей.
Установка Fail2ban
Готовые пакеты Fail2ban можно найти в официальных репозиториях всех популярных Linux дистрибутивов.
Установка Fail2ban на Debian/Ubuntu:
Установка Fail2ban на CentOS/Fedora/RHEL:
Конфигурация Fail2ban
На данном этапе Fail2ban уже готов к работе, базовая защита SSH сервера от перебора паролей будет включена по умолчанию. Но лучше всё-же внести некоторые изменения следуя рекомендациям ниже.
Файл jail.conf поделён на секции, так называемые «изоляторы» (jails), каждая секция отвечает за определённый сервис и тип атаки:
Параметры из секции [DEFAULT] применяются ко всем остальным секциям, если не будут переопределены.
Секция [ssh] отвечает за защиту SSH от повторяющихся неудачных попыток авторизации на SSH–сервере, проще говоря, «brute–force».
Подробнее по каждому из основных параметров файла jail.conf:
ignoreip — IP–адреса, которые не должны быть заблокированы. Можно задать список IP-адресов разделённых пробелами, маску подсети, или имя DNS–сервера.
bantime — время бана в секундах, по истечении которого IP–адрес удаляется из списка заблокированных.
maxretry — количество подозрительных совпадений, после которых применяется правило. В контексте [ssh] — это число неудавшихся попыток логина, после которых происходит блокировка.
enabled — значение true указывает что данный jail активен, false выключает действие изолятора.
Рекомендации по настройке Fail2ban
Новая опция findtime — определяет длительность интервала в секундах, за которое событие должно повториться определённое количество раз, после чего санкции вступят в силу. Если специально не определить этот параметр, то будет установлено значение по умолчанию равное 600 (10 минут). Проблема в том, что ботнеты, участвующие в «медленном брутфорсе», умеют обманывать стандартное значение. Иначе говоря, при maxretry равным 6, атакующий может проверить 5 паролей, затем выждать 10 минут, проверить ещё 5 паролей, повторять это снова и снова, и его IP забанен не будет. В целом, это не угроза, но всё же лучше банить таких ботов.
Осталось перезапустить Fail2ban:
Заключение
В статье затронуты только базовые возможности Fail2Ban, применимые для защиты SSH на типовом Linux–сервере. Более подробную документацию по программе вы можете найти в официальной Wiki на авторском веб–сайте.
Fail2ban (Русский)
Fail2ban (англ.) сканирует лог-файлы (например, /var/log/httpd/error_log ) и блокирует IP-адреса, которые ведут себя подозрительно, к примеру, делая слишком много попыток входа с неверным паролем в попытках найти уязвимости и т.п. Обычно Fail2ban используется для обновления правил с целью блокировки IP-адресов на определённое время, но можно настроить и другие действия — например, отправку письма по электронной почте.
Contents
Установка
Использование
fail2ban-client
Утилита fail2ban-client позволяет следить за «клетками» (jails) (reload, restart, status и т.д.). Чтобы увидеть список всех доступных команд, введите:
Просмотр включённых «клеток» (jails):
Проверка статуса «клетки» на примере таковой для sshd:
Настройка
Перезапустите службу fail2ban.service для применения изменений.
Включение «клеток»
По умолчанию все «клетки» отключены. Добавьте строку enabled = true к конфигурации той «клетки», которую необходимо включить. Например, включение «клетки» OpenSSH выглядит следующим образом:
Почтовые уведомления
Для получения электронных писем при блокировке IP-адресов следует настроить SMTP-клиент (например, msmtp (англ.)) и изменить действие по умолчанию:
Межсетевой экран и службы
По умолчанию Fail2ban использует iptables. Однако, настройка большинства и служб не представляет трудности. Пример использования nftables:
См. содержимое директории /etc/fail2ban/action.d/ для получения других примеров, например, ufw.conf.
Советы и рекомендации
Пользовательская «клетка» SSH
Защита службы
Поскольку Fail2ban следует запускать от имени суперпользователя, можно дополнительно защитить службу с помощью systemd.
Создайте конфигурационный drop-in файл для службы fail2ban.service :
Параметр CAP_DAC_READ_SEARCH (в строке CapabilityBoundingSet ) позволяет Fail2ban читать любые файлы и каталоги, а CAP_NET_ADMIN и CAP_NET_RAW позволяют Fail2ban управлять любым межсетевым экраном c командной оболочкой. См. capabilities(7) для получения более подробной информации.
При использовании параметра ProtectSystem=strict иерархия файловой системы будет доступна только для чтения, а ReadWritePaths позволит Fail2ban также вести запись в заданные каталоги.
Защита сервера средством утилиты Fail2ban. Как ее настроить?
Оглавление
Принцип работы
Fail2ban отслеживает файлы журналов (например, /var/log/auth.log, /var/log/apache/access.log), временно или постоянно запрещая подозрительную активность IP-адреса путем обновления существующих правил брандмауэра. Fail2ban позволяет автоматически выполнить различные действия, такие как заблокировать IP, используя правила iptables, или просто отправить уведомление по электронной почте администратору сервера. По умолчанию Fail2ban поставляется с правилами фильтра под различные сервисы (sshd, apache, mysql proftpd, и т. д.), но конфигурация может быть легко расширена для мониторинга любой другой службы. Все фильтры и действия настраиваются в файлах конфигурации, таким образом Fail2ban является отличным гибким инструментом для предотвращения взлома вашего сервера.
Установка Fail2ban
Для установки на Debian\Ubuntu выполните следующее:
Структура конфигурационных файлов
Файлы настроек находятся в каталоге /etc/fail2ban/. Для понимания работы утилиты, рассмотрим их более детально:
jail.conf — дефолтные настройки сервисов;
Файлы paths-arch.conf, paths-common.conf, paths-debian.conf и paths-opensuse.conf хранят в себе настройки путей для различных операционных систем семейства Linux.
Первоначальная настройка Fail2ban
Главный конфигурационный файл находится по адресу /etc/fail2ban/jail.conf, однако настоятельно не рекомендуется сразу вносить в него правки, сначала скопируем его под именем jail.local. Настройку продолжим непосредственно в этом файле, это предусмотрено разработчиками, все что вы сконфигурируете в jail.local будет автоматически перезаписывать настройки в jail.conf:
Первым делом в конфигурационный файл необходимо внести ваш IP адрес, чтобы правила Fail2ban на него не распространялись, иначе после запуска службы вы рискуете внести себя в бан и доступ к серверу будет утерян:
Необходимо найти и раскоментировать строку #ignoreip, добавив через пробел свой внешний статический IP адрес. В результате у вас должно получиться следующее:
Здесь же, в секции [DEFAULT] можно задать значения findtime и maxretry, например:
Параметры findtime и maxretry определяют условия, при которых будут блокироваться вредоносные пользователи. Maxretry определяет количество попыток входа, а findtime – интервал времени, в течение которого пользователь должен пройти аутентификацию. Если клиент превысил любой из этих показателей, он будет заблокирован. Bantime определяет длительность блокировки в секундах. Эти параметры в статье будут встречаться неоднократно. Если в настройке какого либо из сервисов вы их не зададите, они будут автоматически браться с секции [DEFAULT].
Не забывайте перезапускать Fail2ban после каждого редактирования конфигурационного файла.
Важно! Путь к файлу хранения логов (logpath) обязан быть указан правильно, иначе перезапуск Fail2ban завершится ошибкой. В случае отсутствия лог-файла по указанному пути, его можно создать командой touch, например:
Теперь мы можем перейти к редактированию общих правил защиты сервисов.
Защита сервиса sshd с помощью Fail2ban
Первым делом очистим наш дефолный конфигурационный файл:
В каталоге jail.d/*.*, отвечающим за настройку сервисов, создадим файл sshd.conf и добавим в него следующие строки:
Чтобы применить изменения перезапустим сервис и внесем его в автозагрузку:
Рассмотрим детально наши действия. Мы их будем выполнять неоднократно для настройки других защищаемых сервисов:
[sshd] # обозначение конфигурируемого сервиса, в данном случае sshd
enabled = true # правило разрешающее мониторинг сервиса.
port: 2102 # Если вы для службы ssh используете стандартный порт 22, эту строку можно не указывать, однако, если вы используете нестандартный порт для подключения настраиваемого сервиса, в нашем примере это 2102, его обязательно необходимо указать.
bantime = 900 # время в секундах, на которое нарушитель будет заблокирован
findtime = 300 # время обнаружения
maxretry = 3 # допустимое количество ошибок аутентификации. На четвертой попытке нарушитель будет заблокирован.
Как это работает: Нарушитель с IP-адресом 123.123.12.13 пытается подобрать пароль к учетной записи на вашем сервере. Параметр findtime задает время, на которое ip адрес попадает под мониторинг от первого момента, когда он начинает фигурировать в логах /var/log/auth.log. Если в течении 300 секунд (5 минут), у нарушителя будет более чем три ошибки аутентификации, он будет заблокирован на 900 секунд (15 минут).
Проверить состояние правила можно командой:
Мы увидим следующее:
Защита NGINX
a) Фильтр аутентификации
Допустим, на ваших сайтах есть разделы требующие аутентификации. Выполнить базовую защиту этих разделов от подбора паролей так же поможет Fail2ban. По умолчанию, защита NGINX доступна из коробки, однако её необходимо активировать. Для этого, в конфигурационном файле /etc/fail2ban/jail.conf находим блок [nginx-http-auth], где изначально указан только logpath. Добавляем в него значения:
на выходе у нас должно получиться следующее:
Обратите внимание на то, как указаны пути к логам. Начиная с версии Fail2ban 0.9.х, писать полные пути не обязательно. Если расположение логов защищаемого сервиса стандартное, то пути к ним предусмотрены разработчиками. Значение %(nginx_error_log)s будет равнозначно пути /var/log/nginx/error. log. Вы можете использовать оба варианта.
Теперь создадим файл nginx-http-auth.conf
В который вносим следующие значения, которые являются фильтрами для корректной работы правила:
б) Фильтр доступа к скриптам
Fail2ban является довольно гибки и функциональным инструментом. Если необходимого инструмента в jail.conf нет, опытный администратор может его написать сам. Например, мы хотим заблокировать ip адрес, который обращается к файлам с расширениями php, asp, exe, pl, cgi, scgi. Это очень полезный фильтр для обнаружения всякого рода эксплойтов.
Внимание! Будьте внимательны при использовании этого фильтра. Оно имеет смысл если у вас статический сайт, или вы четко уверены, к выполнению каких скриптов необходимо применить фильтрацию. Если сайт разрабатывали не вы, обратитесь за консультацией к разработчику
Для начала отредактируем главный конфигурационный файл:
В него необходимо добавить секцию [nginx-noscript], которая по умолчанию не существует:
Теперь создадим файл фильтра, к которому будет отсылаться наше правило при анализе access.log web-сервера:
Вносим в него следующее:
Изменения вступят в силу после перезагрузки сервиса Fail2ban
в) Фильтр сканеров
Сами по себе сканеры не несут какой либо угрозы сайту, однако сканирование вашего сайта может быть тем самым звоночком, что злоумышленник ищет его уязвимые места. Определить сканеры легко по всплеску ошибок 403 и 404 в /var/log/nginx/access.log. Итак, приступим:
Добавляем следующие блоки:
Создаем правило фильтрации для ошибок 403:
Создаем правило фильтрации для ошибок 404:
И хакеры используют это как инструмент DDoS. Они генерируют тысячи запросов в минуту к несуществующим веб-страницам, что приводит к снижению производительности web-сервера или его полной неработоспособности.
Защита APACHE
В файле /etc/fail2ban/jail.local так же предусмотрена защита web-сервера Apache. Настройка аналогична настройке web-сервера NGINX, который мы рассмотрели в предыдущем разделе. Пройдемся кратко, по основным доступным фильтрам и за что они отвечают:
Каждое из правил активируется добавлением в блок строки enabled = true. Так же, в каждом блоке вы можете задать правила bantime, findtime и maxretry, которые рассмотрены выше.
Для примера, создадим несколько правил обнаружения:
Если вы используете Apache с PHP, вам может понадобиться раздел [php-url-fopen]
Защита Dovecot
Полезным будет поставить защиту от подбора паролей на почтовые ящики, если Вы используете этот популярный IMAP\POP3-сервер. Добавим секцию для фильтра в главный конфигурационный файл:
Защита FTP сервера
Выставить защиту вашего FTP сервера так же не трудно. Однако, перед настройкой вы должны учесть, какой из FTP вы используте (vsFTPd, proFTPd, Pure-FTPd etc), настройки могут отличаться. Например, если вы используете Pure-FTPd, добавим секцию для фильтра в главный конфигурационный файл:
Защита ISPmanager
Добавим секцию для фильтра в главный конфигурационный файл:
Защита WordPress
Рассмотрим защиту популярного движка WordPress от подбора паролей. Добавим секцию для фильтра в главный конфигурационный файл:
Управление fail2ban
Перезапуск и проверка состояния Fail2ban:
Полный список правил:
Проверка срабатывания правила:
Проверить работу служб:
Показать состояние указанного jail:
Допустим, произошла ошибка, и ip адрес 123.123.12.13 не является нарушителем и нам его необходимо разблокировать:
Если необходимо добавить разрешение для данного ip адреса выполните:
Удалить ip адрес из доверенных:
Для просмотра списка всех доверенных адресов:
В эту строку вы можете через пробел добавить как несколько IP адресов, так и целые подсети, например 172.16.1.0/24
Заключение.
В данной статье мы рассмотрели популярную утилиту Fail2ban, которая существенно может повысить безопасность вашего сервера. Утилита гибкая в настройке. Мы рассмотрели основные правила обнаружения для ssh, ftp, nginx и apache, которые будут актуальны ввиду того, что используются повсеместно. Рассмотреть же все возможности Fail2ban в рамках одной статьи крайне сложно, все зависит от поставленных перед вами задач и используемых сервисов. Однако логика создания правил прозрачно просматривается.
Если Вы планируете купить выделенный сервер или арендовать VPS в нашей компании, наша техническая поддержка поможет обеспечить бесперебойную работу сервера и проконсультирует Вас о принципах организации безопасности на Вашем сервере.