• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья Защита SSH с помощью Fail2Ban

Защита SSH с помощью Fail2Ban.png


Fail2Ban - это платформа предотвращения вторжений, написанная в Python, которая защищает системы Linux и серверы от грубых атак. Мы можем настроить Fail2Ban для обеспечения грубой защиты SSH на нашем сервере, это обеспечит безопасность сервера от грубых атак, а также позволит нам контролировать силу грубых атак в отношении числа попыток аутентификации, которые предпринимаются.

Атаки грубой силы могут быть чрезвычайно мощными и могут привести к тысячам неудачных попыток аутентификации в день, поэтому важно понимать, как защитить ваш сервер от этих атак и как блокировать IP-адреса. Fail2Ban позволяет автоматизировать процесс блокировки грубых атак путем ограничения числа неудачных попыток аутентификации, которые пользователь может предпринять перед блокировкой. Это чрезвычайно полезно для серверов, которые имеют учетные записи пользователей, использующие пароли для удаленной аутентификации, в отличие от аутентификации пар ключей SSH.

Установка и настройка Fail2Ban
Fail2Ban является свободным в использовании и может быть установлен через большинство популярных менеджеров пакетов, в этом случае мы настраиваем Fail2Ban на сервере Ubuntu, поэтому мы можем легко установить Fail2Ban, выполнив следующие команды:
Код:
sudo apt-get install fail2ban

Также необходимо убедиться, что Fail2ban выполняется при запуске системы, это можно сделать с помощью следующей команды:
Код:
sudo systemctl enable fail2ban.service

После завершения установки можно приступить к настройке Fail2Ban для установки хранилища для сервера SSH.

После завершения установки можно приступить к настройке Fail2Ban для установки хранилища для сервера SSH. Файлы конфигурации Fail2Ban находятся в каталоге /etc/fail2ban, как показано на рисунке ниже.
fail2banetc.png


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

Предпочтительным подходом к созданию конфигураций для конкретной службы является создание нового файла конфигурации в каталоге /etc/fail2ban с расширением .local .

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

Создание SSH с Fail2Ban
Мы можем начать с создания нового файла в том же каталоге под названием jail.local, мы можем затем добавить необходимые конфигурации безопасности для sshd.
Код:
sudo nano /etc/fail2ban/jail.local
Мы можем изучить варианты, которые Fail2Ban предоставляет нам для настройки безопасности и блокировки службы SSH.
Конфигурациифункция
enabledJail status (true / false) - это включит или отключит джейл.
portСпецификация порта
filterСпециальный сервисный фильтр (Журнал фильтра)
LogPathКакой журнал использовать
maxretryКоличество попыток сделать до запрета
findtimeВремя между неудачными попытками входа
bantimeКоличество секунд, за которое IP будет заблокирован
ignoreipIP должен быть в белом списке
С помощью информации, приведенной в таблице выше, мы можем создать конфигурацию Birth для сервера OpenSSH (sshd), После ввода опций конфигурации значения, которые мы будем назначать, перечислены на рисунке ниже.
localjail-1.png

После указания параметров конфигурации и соответствующих значений можно сохранить файл и перезапустить службу Fail2Ban с помощью следующей команды:
Код:
sudo systemctl restart fail2ban.service

Тестирование Fail2Ban
Мы можем легко проверить это, попытавшись войти на сервер с неверным паролем 3 раза, после чего мы будем заблокированы от аутентификации в течение часа.
fail2baninaction.png

Как видно на рисунке выше, после 3 последовательных неудачных попыток Fail2Ban вставляет и активно блокирует SSH-соединение, после чего соединение таймаут, а пользователь блокируется на указанное время. Если мы попытаемся подключиться снова в течение периода, в течение которого мы были заблокированы, мы увидим, что получим ошибку "Соединение отклонено" и не сможем установить SSH-соединение с сервером.

Это демонстрирует мощь и надежность Fail2Ban и то, как его можно использовать для создания элегантных и эффективных брандмауэров для таких услуг, как SSH. Сервисные методы, можно настроить в соответствии с требованиями безопасности и легко внедрить новые варианты конфигурации.

После внедрения и тестирования Fail2Ban мы можем посмотреть, как отслеживать и анализировать различные неудачные попытки аутентификации и заблокированные IP-адреса с Fail2Ban-client.


Контроль с помощью Fail2Ban-Client

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

С помощью инструмента Fail2Ban-client можно проверить состояние Fail2Ban и активных сред, это можно сделать, выполнив следующую команду:

Код:
sudo fail2ban-client status

fail2banstatus.png

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

Для просмотра состояния и информации относительно конкретной среды типа sshd используется следующая команда:
Код:
sudo fail2ban-client status sshd
fail2bansshdstatus.png

На рисунке выше показаны состояние и информация о sshd, мы видим, что у нас есть 4 неудачных попытки аутентификации и один запрещенный IP-адрес.
Это очень полезно, так как оно может предупредить вас о потенциальных целенаправленных атаках.

—————
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!