Zimbra fail2ban настройка ubuntu

Обновлено: 04.07.2024

Различные сервисы на вашем сервере доступные из сети (SSH, Apache, Nginx, Asterisk) зачастую подвержены брут-форс атакам. Самая распространенная проблема это подбор пароля от SSH логина администратора. Для защиты от таких атак идеально подойдет Fail2ban. Fail2ban умеет просматривать логии различных сервисов на сервере и на их основе менять правила фаервола. Например заблокировать IP адрес злодея в iptables.

В данной инструкции мы рассмотрим, как установить и настроить Fail2ban на сервере с CentOS или Ubuntu.

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

Т.к. данный сервис не доступен в официальном репозитарии CentOS, то сначала установим пакеты EPEL:

И уже теперь установим сам Fail2ban:

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

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

После чего устанавливаем утилиту:

Начальная настройка

Настройка будет одинаковая для всех Linux дистрибутивов. Fail2ban хранит свои конфигурационные файлы в папке

В ней вы можете найти файл jail.conf который содержит настройки по умолчанию. Обращаем внимание, что данный файл может перезаписываться при обновлении пакетов. Поэтому для хранения ваших собственных настроен надо создать файл jail.local . Для этого выполните команду:

Также вы можете создавать файлы с индивидуальными настройками в папке /etc/fail2ban/jail.d/ . Подобнее мы рассмотрим это далее. Настройки из этих файлов будут подтягивать и заменять указанные в jail.conf в ходе работы Fail2ban. Настройки применяются из файлов в следующем порядке:

  1. /etc/fail2ban/jail.conf
  2. /etc/fail2ban/jail.d/*.conf, - любые файлы с расширением conf. Применяются в алфавитном порядке.
  3. /etc/fail2ban/jail.local
  4. /etc/fail2ban/jail.d/*.local, - любые файлы с расширением local. Применяются в алфавитном порядке.

Все файлы могут содержать секцию [DEFAULT], содержимое которой будет применяться в первую очередь. Также в них могут содержаться секции для отдельных сервисов, так называемые «jails».

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

Если открыть файл jail.conf, то в нем в разделе [DEFAULT] находятся следующие основные параметры:

ignoreip = 127.0.0.1/8

Трафик с данных IP адресов не будет подвергаться анализу, игнорироваться при проведении проверки. Своего рода «белые список».

bantime = 600

Указывается в секундах. Определяет на которой период времени будет блокироваться доступ, в случае срабатывания правила.

findtime = 600

Указывается в секундах. Устанавливает период времени в течение которого подсчитывается количество срабатываний правил, после которого надо применять фильтр (бан). Работает в паре со следующим параметром «maxretry». Значения по умолчанию означают что если правило сработает 3 раза за 600 секунд, то IP адрес будет добавлен в бан.

maxretry = 3

Количество попыток. См. пояснение к параметру «findtime».

destemail = root@localhost

Если вы хотите получать уведомления о срабатывании блокировки, то в этом поле указывается email на который будет отправляться уведомление.

sendername = Fail2Ban

Работает в паре с «destemail». Определяет кто будет указан в качестве отправителя email нотификаций.

mta = sendmail

Работает в паре с «destemail». Определяет через какой сервис будут отправляться email.

action = $(action_)s Данный параметр определяем какой действие необходимо предпринять при срабатывании правила. Список возможных значений находится выше в файле jail.conf. Рассмотрим наиболее популярные:

action_ - простое изменение параметров фаервола.

action_mw – помимо настройки фаервола будет отправлена email нотификация.

action_mwl - помимо настройки фаервола будет отправлена email нотификация с примером записи из лога.

В случае использования последних двух вариантов не забудьте сделать необходимые настройки email нотификации (см. выше).

Настройки для отдельных сервисов

После раздела [DEFAULT] идут индивидуальные настройки для каждого сервиса. Обычно они включают в себя параметр port, которые необходимо блокировать и logpath – логии которые необходимо анализировать на предмет атаки. Например, для SSH «jail» уже включен по умолчанию в /etc/fail2ban/jail.local и имеет следующие настройки:

В данном примере ssh это предопределенная переменная для стандартного SSH порта. А %(sshd_log)s использует значение, которое определяется в других стандартных настройках Fail2ban. Параметр filter определяет является ли строка в логах индикатором об ошибочной авторизации или нет. По сути это отсылка к регулярным выражениям, которые находятся в файлах .conf в папке /etc/fail2ban/filter.d. Правила формирования регулярных выражений мы не будем рассматривать, т.к. они достаточно сложные.

По умолчанию «jail» для отдельных сервисов выключены. Чтобы включить необходимо в jail.local в разделе сервиса добавить параметр:

Давайте сделаем это для SSH. Раздел sshd в /etc/fail2ban/jail.local будет выглядеть следующим образом:

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

Проверка и мониторинг работы

Чтобы убедиться, что fail2ban запущен и работает введем команду:

В случае проблем, логи можно посмотреть следующим образом:

Чтобы увидеть статус всех «jail» или только из них можно воспользоваться следующими командами:

Чтобы просмотреть актуальные настройки Firewall введите:

Тестирование защиты SSH

Чтобы убедиться что сделанные нами настройки fail2ban верны. Можно эмулировать атаку. Для этого попробуйте подключиться к серверу под защитой Fail2ban с другого сервер / устройства по SSH и ввести неверный пароль от учетной записи. Повторите эти действия несколько раз.

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

В случае верных настроек, когда блокировка fail2ban сработает, при попытке подключения вам будет показано предупреждение Permission denied или отказано в доступе к серверу.

На сервере с fail2ban в текущих настройках Firewall вы также найдете строку с описанием блокировки:

Вторая снизу строка в данном примере означает что ваш указанный IP адрес был заблокирован.

Как просмотреть список заблокированных IP

Чтобы посмотреть список текущих заблокированных IP адресов введите команду:

Чтобы увидеть список активных jails введите:

Заблокированные IP адреса будут указаны в следующем виде:

Также как указывалось выше заблокированные IP можно найти в данных iptables командой:

Как разблокировать IP адрес

Для того чтобы разблокировать ( удалить / достать из бана) IP адрес, необходимо ввести команду:

Zimbra Collaboration Suite Open-Source Edition имеет в своем арсенале несколько мощных инструментов для обеспечения информационной безопасности. Среди них Postscreen — решение для защиты почтового сервера от атак со стороны ботнетов, ClamAV — антивирус, способный проверять входящие файлы и письма на предмет заражения зловредными программами, а также SpamAssassin — один из лучших спам-фильтров на сегодняшний день. Однако эти инструменты неспособны обеспечить защиту Zimbra OSE от такого вида атаки, как брутфорс. Не самый элегантный, но до сих пор довольно эффективный перебор паролей по специальному словарю чреват не только вероятностью успешного взлома со всеми вытекающими последствиями, но и созданием значительной нагрузки на сервер, который обрабатывает все неудачные попытки взлома сервера с Zimbra OSE.

image



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


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

Настроить DoSFilter можно при помощи следующих консольных команд:

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

Для того, чтобы полностью обезопасить свой корпоративный сервер с Zimbra OSE, можно воспользоваться таким решением, как Fail2ban, которое представляет из себя фреймворк, способный постоянно мониторить логи информационных систем на предмет повторяющихся действий и блокировать нарушителя за счет изменения настроек брандмауэра. Блокировка на столь низком уровне позволяет отключать злоумышленников прямо на этапе IP-соединения с сервером. Таким образом, Fail2Ban может прекрасно дополнить защиту, выстроенную с помощью DoSFilter. Давайте же узнаем, как можно подружить Fail2Ban с Zimbra OSE и за счет этого повысить защищенность ИТ-инфраструктуры вашего предприятия.

Как и любое другое приложение корпоративного класса, Zimbra Collaboration Suite Open-Source Edition ведет подробные логи своей работы. Большинство из них хранятся в папке /opt/zimbra/log/ в виде файлов. Вот лишь несколько из них:

  • mailbox.log — логи почтовой службы Jetty
  • audit.log — логи аутентификации
  • clamd.log — логи работы антивируса
  • freshclam.log — логи обновлений антивируса
  • convertd.log — логи конвертера вложений
  • zimbrastats.csv — логи производительности сервера

Для того, чтобы защитить нашу систему от брутфорса, мы будем мониторить mailbox.log, audit.log и zimbra.log.

Для того чтобы всё работало, необходимо чтобы на вашем сервере с Zimbra OSE были установлены Fail2Ban и iptables. В том случае, если вы используете Ubuntu, сделать это вы можете с помощью команд dpkg -s fail2ban, если же вы используете CentOS, то проверить это можно с помощью команд yum list installed fail2ban. В том случае, если Fail2Ban у вас нет установлен, то его установка не станет проблемой, так как этот пакет есть в практически всех стандартных репозиториях.

После того как всё необходимое программное обеспечение установлено, можно приступить к настройке Fail2Ban. Для этого необходимо создать конфигурационный файл /etc/fail2ban/filter.d/zimbra.conf, в котором пропишем регулярные выражения для логов Zimbra OSE, которые будут соответствовать неверным попыткам входа и приводить в действие механизмы Fail2Ban. Вот пример содержимого zimbra.conf с набором регулярных выражений, соответствующих различным ошибкам, выдаваемым в Zimbra OSE при неудачной попытке аутентификации:


После того как регулярные выражения для Zimbra OSE составлены, самое время приступить к редактированию конфигурации самого Fail2ban. Настройки этой утилиты располагаются в файле /etc/fail2ban/jail.conf. На всякий случай сделаем его резервную копию при помощи команды cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. После этого приведем этот файл к примерно следующему виду:


Этот пример хоть и является довольно универсальным, все же стоит разъяснить некоторые параметры, которые вы, возможно, захотите изменить при самостоятельной настройке Fail2Ban:

Favorite

Добавить в избранное

Главное меню » Linux » Как установить и настроить Fail2ban в Ubuntu 20.04

(2 оценок, среднее: 5,00 из 5)

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

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

В этой статье описывается, как установить и настроить Fail2ban в Ubuntu 20.04.

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

Пакет Fail2ban включен в репозитории Ubuntu 20.04 по умолчанию. Чтобы установить его, введите следующую команду от имени пользователя root или пользователя с привилегиями sudo :

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

Результат будет выглядеть так:

Вот и все. На этом этапе у вас есть Fail2Ban, работающий на вашем сервере Ubuntu.

Конфигурация Fail2ban

Стандартная установка Fail2ban включает два файла конфигурации /etc/fail2ban/jail.conf и /etc/fail2ban/jail.d/defaults-debian.conf. Не рекомендуется изменять эти файлы, так как они могут быть перезаписаны при обновлении пакета.

Fail2ban читает файлы конфигурации в следующем порядке. Каждый файл .local отменяет настройки из файла .conf:

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

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

Читать Ubuntu 21.04 будет использовать Wayland по умолчанию

Создайте файл конфигурации .local из файла по умолчанию jail.conf:

Чтобы начать настройку сервера Fail2ban, откройте файл jail.local в своем любимом текстовом редакторе :

Файл включает комментарии, описывающие, что делает каждый параметр конфигурации. В этом примере мы изменим основные настройки.

Добавить IP-адреса в белый список

В директиву ignoreip можно добавить IP-адреса, диапазоны IP-адресов или хосты, которые вы хотите исключить из запрета. Здесь вы должны добавить IP-адрес вашего локального ПК и всех других машин, которые вы хотите добавить в белый список.

Раскомментируйте строку, начинающуюся с ignoreip и добавьте свои IP-адреса через пробел:

Настройки бана

Варианты значения bantime, findtime и maxretry определения времени запрета и условия запрета.

Чтобы навсегда забанить IP, используйте отрицательное число.

findtime- это промежуток времени между количеством сбоев до установки запрета. Например, если Fail2ban настроен на запрет IP-адреса после пяти сбоев (см. ниже maxretry), эти сбои должны произойти в течение указанного периода findtime.

maxretry- количество отказов до блокировки IP-адреса. По умолчанию установлено значение пять, что должно подойти большинству пользователей.

Уведомления по электронной почте

Fail2ban может отправлять уведомления по электронной почте, когда IP-адрес заблокирован. Чтобы получать электронные письма, вам необходимо установить SMTP на вашем сервере и изменить действие по умолчанию, которое запрещает только IP %(action_mw)s, как показано ниже:

%(action_mw)s заблокирует оскорбительный IP-адрес и отправит электронное письмо с отчетом Whois. Если вы хотите включить соответствующие журналы в электронное письмо, установите для действия значение %(action_mwl)s.

Вы также можете настроить адреса электронной почты для отправки и получения:

Читать Как установить и настроить Apache Hadoop в Ubuntu

Тюрьмы Fail2ban

Fail2ban использует концепцию тюрем. Тюрьма описывает службу и включает фильтры и действия. Записи журнала, соответствующие шаблону поиска, подсчитываются, и при выполнении заранее определенного условия выполняются соответствующие действия.

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

По умолчанию включен только ssh jail. Для включения jail вам нужно добавить enabled = true после заголовка jail. В следующем примере показано, как включить jail в proftpd:

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

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

Каждый раз, когда вы редактируете файл конфигурации, вам необходимо перезапускать сервис Fail2ban, чтобы изменения вступили в силу:

Клиент Fail2ban

Fail2ban поставляется с инструментом командной строки с именем fail2ban-client, который вы можете использовать для взаимодействия со службой Fail2ban.

Для просмотра всех доступных опций вызовите команду с опцией -h:

Этот инструмент можно использовать для блокировки/разблокировки IP-адресов, изменения настроек, перезапуска службы и многого другого. Вот несколько примеров:

  • Проверьте статус тюрьмы:
  • Разбанить IP:
  • Запретить IP:

Вывод

Мы показали вам, как установить и настроить Fail2ban в Ubuntu 20.04.

Для получения дополнительной информации по этой теме посетите документацию Fail2ban .

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

В этой статье описывается, как установить и настроить Fail2ban в Ubuntu 20.04.

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

Пакет Fail2ban включен в репозитории Ubuntu 20.04 по умолчанию. Чтобы установить его, введите следующую команду от имени пользователя root или пользователя с привилегиями sudo :

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

Результат будет выглядеть так:

Вот и все. На этом этапе у вас есть Fail2Ban, работающий на вашем сервере Ubuntu.

Конфигурация Fail2ban

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

Fail2ban читает файлы конфигурации в следующем порядке. Каждый файл .local отменяет настройки из файла .conf :

  • /etc/fail2ban/jail.conf
  • /etc/fail2ban/jail.d/*.conf
  • /etc/fail2ban/jail.local
  • /etc/fail2ban/jail.d/*.local

Создайте файл конфигурации .local из файла jail.conf по умолчанию:

Чтобы начать настройку сервера Fail2ban, jail.local файл jail.local текстовом редакторе :

Файл включает комментарии, описывающие, что делает каждый параметр конфигурации. В этом примере мы изменим основные настройки.

Добавить IP-адреса в белый список

IP-адреса, диапазоны IP-адресов или хосты, которые вы хотите исключить из ignoreip могут быть добавлены в директиву ignoreip . Здесь вы должны добавить IP-адрес вашего локального ПК и всех других машин, которые вы хотите добавить в белый список.

Раскомментируйте строку, начинающуюся с ignoreip и добавьте свои IP-адреса через пробел:

Настройки бана

Значения параметров bantime , findtime и maxretry определяют время findtime и maxretry .

Чтобы навсегда забанить IP, используйте отрицательное число.

Уведомления по электронной почте

Fail2ban может отправлять уведомления по электронной почте, когда IP-адрес заблокирован. Чтобы получать электронные письма, вам необходимо установить SMTP на вашем сервере и изменить действие по умолчанию, которое запрещает только IP-адрес на %(action_mw)s , как показано ниже:

%(action_mw)s IP-адрес и отправляет электронное письмо с отчетом whois. Если вы хотите включить соответствующие журналы в электронное письмо, установите действие %(action_mwl)s .

Вы также можете настроить адреса электронной почты для отправки и получения:

Fail2ban тюрьмы

Fail2ban использует концепцию тюрем. Тюрьма описывает службу и включает фильтры и действия. Записи журнала, соответствующие шаблону поиска, подсчитываются, и при выполнении заранее определенного условия выполняются соответствующие действия.

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

По умолчанию включен только ssh jail. Чтобы включить тюрьму, вам нужно добавить enabled = true после заголовка тюрьмы. В следующем примере показано, как включить тюрьму proftpd:

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

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

Каждый раз, когда вы редактируете файл конфигурации, вам необходимо перезапускать сервис Fail2ban, чтобы изменения вступили в силу:

Клиент Fail2ban

Fail2ban поставляется с инструментом командной строки с именем fail2ban-client , который можно использовать для взаимодействия со службой Fail2ban.

Чтобы просмотреть все доступные параметры, вызовите команду с параметром -h :

Этот инструмент можно использовать для блокировки / разблокировки IP-адресов, изменения настроек, перезапуска службы и т. Д. Вот несколько примеров:

Проверьте статус тюрьмы:

Выводы

Мы показали вам, как установить и настроить Fail2ban в Ubuntu 20.04.

Для получения дополнительной информации по этой теме посетите документацию Fail2ban .

Читайте также: