ВОЙТИ
    opened image

    Fail2ban — это широко известная система обнаружения вторжений для ОС Linux. Она анализирует лог-файлы для выявления автоматических атак и неудачных попыток входа. Определив IP-адрес, от которого исходит атака, Fail2ban мгновенно блокирует его, что делает эту систему незаменимой в борьбе с атаками перебора. Установка и настройка Fail2ban являются простыми процессами. Вот как установить Fail2ban на CentOS 7.

     

    • Обновите CentOS

    Запустите терминал и обновите вашу систему CentOS, выполнив следующие команды.

    yum update -y
    yum upgrade -y

     

    • Установите Fail2ban

    Для установки fail2ban выполните следующую команду.

    yum install epel-release
    yum install -y fail2ban

     

     

    • Запустите и активируйте Fail2ban

    Включите и запустите fail2ban, воспользовавшись следующими командами.

    systemctl start fail2ban
    systemctl enable fail2ban

     

     

    Статус fail2ban можно проверить с помощью этой команды:

    systemctl status fail2ban

     

     

    • Настройка Fail2ban

    Fail2ban использует 4 конфигурационных файла. Они читаются в следующем порядке:

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

     

    Чаще всего пользователи копируют стандартный файл jail.conf в jail.local и изменяют его. Давайте сделаем это:

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

     

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

    vim /etc/fail2ban/jail.local

     

     

    В этом файле вы найдете разные разделы, каждый из которых содержит подробные комментарии о своем назначении.

     

    Рассмотрим основные параметры настройки:

    • ignoreip — используется для указания IP-адресов, которые не должны блокироваться. Для добавления одного или нескольких IP-адресов раскомментируйте строку, начинающуюся с ignoreip, и добавьте IP-адреса через запятую. Вот пример.

    ignoreip = 127.0.0.1/8 ::1 23.23.23.23 192.125.1.0/24
    • bantime — время блокировки. По умолчанию — 10 минут. Чтобы установить его на 1 день, сделайте следующее:

    bantime = 1d
    • findtime — время, в течение которого должно произойти указанное количество сбоев или атак. Если вы настроили fail2ban на блокировку IP после 3 неудачных попыток, то эти попытки должны произойти в течение значения findtime. Пример:

    findtime = 10m
    • maxretry — максимальное количество неудачных попыток до блокировки IP. Пример:

    maxretry = 5

     

     

     

    Тестирование и снятие блокировки с IP-адреса

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

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

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

     

    Для блокировки IP-адреса (например, 125.124.221.121) воспользуйтесь командой:

    fail2ban-client set sshd banip 125.124.221.121

     

    Если после этой команды Вы наблюдаете такую ошибку fail2ban [7825]: ERROR   NOK: ('sshd',), Sorry but the jail 'sshd' does not exist - то это говорит о том что Fail2ban не может найти конфигурацию с названием 'sshd'. "jail" в Fail2ban представляют собой наборы правил для различных сервисов, которые Fail2ban должен мониторить, такие как ssh, apache и другие.

     

    Сначала вам необходимо проверить конфигурационный файл Fail2ban (обычно это '/etc/fail2ban/jail.conf' или '/etc/fail2ban/jail.local') и убедиться, что в нем есть секция для 'sshd'. Это должно выглядеть примерно так:

    [sshd]
    enabled  = true
    port     = ssh
    logpath  = %(sshd_log)s
    backend  = %(sshd_backend)s

     

     

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

    sudo systemctl restart fail2ban

     

    Теперь команда для блокировки IP-адреса должна работать без ошибок.

     

    Чтобы снять блокировку с IP-адреса (например, 125.124.221.121), выполните команду:

    fail2ban-client set sshd unbanip 125.124.221.121


    В заключение, Fail2ban является эффективным инструментом обнаружения вторжений, блокирующим IP-адреса, от которых исходят повторяющиеся неудачные попытки входа в систему. Он играет ключевую роль в обеспечении безопасности ваших Linux-систем, будь то CentOS 7 или Ubuntu.

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