Инструменты пользователя

Инструменты сайта


Боковая панель

.

fail2ban

Fail2ban

Основной задачей Fail2ban является обнаружение и блокирование отдельных IP-адресов, с которых производятся попытки несанкционированного проникновения в защищаемую систему. Такие "враждебные" IP-адреса определяются по результатам наблюдения за файлами журналов - log-файлами (например, /var/log/secure, /var/log/auth.log, /var/log/apache/access.log и т.д.). Если с какого-либо IP-адреса выполняется слишком много попыток зарегистрироваться в защищаемой системе или производятся какие-либо другие подозрительные действия, то хост с этим IP-адресом блокируется на некоторый интервал времени, определённый системным администратором, т.е. ни один пакет, посланный с такого заблокированного хоста, не будет принят. Такая блокировка выполняется посредством изменения правил (rules) сетевого экрана (iptables).

Описанная выше функциональная схема позволяет защищаться от так называемых "brute force" атак, т.е. от многочисленных попыток войти в систему с различными вариантами паролей. Атаки такого рода достаточно часто практикуются сетевыми взломщиками.

Fail2ban Ubuntu 18.04.4 LTS

В операционной системе Ubuntu 18.04.4 LTS Fail2ban ставиться очень просто, если вам нужна только защита SSH и вы используете для настройки фаервола ufw (Uncomplicated Firewall) настройка.

apt install fail2ban

И всё!

Использование и установка Fail2ban Debian

  • Установка в Debian
    # aptitude install fail2ban
  • Параметры настройки, содержащиеся в .local-файлах, имеют преимущество над аналогичными параметрами, записанными в .conf-файлах. На практике это означает, что сначала считывается содержимое .conf-файлов, а затем содержимое .local-файлов, поэтому значения ранее определённых параметров могут быть заменены.
    cd /etc/fail2ban;
    cp -p fail2ban.conf fail2ban.local;
    cp -p jail.conf jail.local;
  • jail.local
    [DEFAULT]
     
    # "ignoreip" can be an IP address, a CIDR mask or a DNS host
    ignoreip = 127.0.0.1/8
    # bantime в секундах, если указать отрицательное число (-1), то заблокирует навечно.
    bantime  = 600
    maxretry = 3
     
    # Адрес, на который слать уведомления о событиях
    destemail = admin@example.org
    # Имя пользователя от которого приходят сообщения, по умолчанию Fail2Ban
    sendername = you name computer
     
     
    # Какое из действий выполнить, например  action_mw, action_mwl и др.
    action = %(action_mwl)s
  • рабочий jail.local для SSH, Pure-FTPd(syslog вместо auth.log)
    jail.local
    [DEFAULT]
    ignoreip = 127.0.0.1/8
    #bantime  = -1
    bantime  = 600
    maxretry = 3
    backend = auto
    destemail = admin@example.org
     
    # ACTIONS
    banaction = iptables-multiport
    #mta = sendmail
    mta = mail
    protocol = tcp
    chain = INPUT
    action = %(action_mwl)s
     
    # JAILS
     
    [ssh]
     
    enabled  = true
    #mta = mail[name=ssh Atacced!!!]
    port     = ssh
    filter   = sshd
    logpath  = /var/log/auth.log
    maxretry = 6
     
    [pure-ftpd]
     
    enabled  = true
    #mta = mail[name=pure-ftpd Atacced!!!]
    port     = ftp,ftp-data,ftps,ftps-data
    filter   = pure-ftpd
    #logpath  = /var/log/auth.log
    logpath  = /var/log/syslog
    maxretry = 6
  • Можно вручную тестировать фильтры, например для Pure-FTPd
    syslog
    Nov 19 15:56:17 cz5234 pure-ftpd: (?@10.26.10.251) [WARNING] Authentication failed for user [dark33]
    Nov 19 15:56:19 cz5234 pure-ftpd: (?@10.26.10.251) [WARNING] Authentication failed for user [dark33]
    # fail2ban-regex /var/log/syslog /etc/fail2ban/filter.d/pure-ftpd.conf
  • RoundCube
    [roundcube-auth]
    
    enabled  = true
    filter   = roundcube-auth-new
    port     = http,https
    #logpath  = /var/log/roundcube/userlogins
    logpath  = /var/log/roundcube/errors

    Изменим регулярное выражение

    roundcube-auth-new.conf
    failregex = ^\s*(\[(\s[+-][0-9]{4})?\])?(: IMAP Error)?: (FAILED login|Login failed) for .*? from <HOST>(\. .* in .*?/rcube_imap\.php on line \d+ \(\S+ \S+\))?$

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

    # fail2ban-regex /var/log/roundcube/errors /etc/fail2ban/filter.d/roundcube-auth-new.conf

Установка и использование Fail2ban RHEL/CentOS

По молчанию утилиты Fail2ban нет в стандартном репозитории. Fail2ban можно поставить например из EPEL repository используя YUM.

Инсталляция Fail2ba в CentOS

# yum update
# yum install epel-release
# yum install fail2ban

Управление запрещенными IP

Управление запрещенными IP (manage bans IPs).

  • Просмотр запрещенных IP в Правила iptables:
    iptables -L
  • Для разблокирования конкретного IP, нужно узнать номер строки правила и потом удалить строку под этим номером с указанием имени Chain. Например, удалим 60 строку правила для цепи fail2ban-ssh:
    iptables -nvL --line-numbers
    iptables -D fail2ban-ssh 60

Bug Fail2ban 1970

Версия демона Fail2ban 0.8.6 присылает на почту уведомление с неправильной датой 1970-01-01 01:00. Варианты решения:

  • Обновить Fail2ban
  • Использовать в jail.local mta = mail вместо mta = sendmail
  • Во всех конфигурационных файлах "/etc/fail2ban/action.d/sendmail*.conf " заменить строчку
    Date: `date -u +"%%a, %%d %%h %%Y %%T +0000"`

    на

    Date: `date --rfc-2822 -u`
Kwork.ru - услуги фрилансеров от 500 руб.
fail2ban.txt · Последнее изменение: 2020/08/04 13:44 — darkfire