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

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


fail2ban

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

fail2ban [2018/08/13 01:33] (текущий)
Строка 1: Строка 1:
 +====== Fail2ban ======
 +{{htmlmetatags>​
 +metatag-description=(Как защитить сервера VPS, VE при помощи программы Fail2ban. Fail2ban монитор системные логи на предмет автоматизированных атак на систему.)
 +}}
  
 +
 +{{ ::​fail2ban.png?​nolink&​400 |}}
 +
 +  * Homepage: [[http://​www.fail2ban.org/​|Fail2ban]]
 +
 +Основной задачей **Fail2ban** является обнаружение и блокирование отдельных IP-адресов,​ с которых производятся попытки несанкционированного проникновения в защищаемую систему. Такие "​враждебные"​ IP-адреса определяются по результатам наблюдения за файлами журналов - log-файлами (например,​ /​var/​log/​secure,​ /​var/​log/​auth.log,​ /​var/​log/​apache/​access.log и т.д.). Если с какого-либо IP-адреса выполняется слишком много попыток зарегистрироваться в защищаемой системе или производятся какие-либо другие подозрительные действия,​ то хост с этим IP-адресом блокируется на некоторый интервал времени,​ определённый системным администратором,​ т.е. ни один пакет, посланный с такого заблокированного хоста, не будет принят. Такая блокировка выполняется посредством изменения правил (rules) сетевого экрана (iptables).
 +
 +Описанная выше функциональная схема позволяет защищаться от так называемых "brute force" атак, т.е. от многочисленных попыток войти в систему с различными вариантами паролей. Атаки такого рода достаточно часто практикуются сетевыми взломщиками.
 +
 +===== Использование Fail2ban (Debian) ​ =====
 +
 +  * Установка в [[Debian]]<​file bash>
 +# aptitude install fail2ban</​file>​
 +  * Параметры настройки,​ содержащиеся в .local-файлах,​ имеют преимущество над аналогичными параметрами,​ записанными в .conf-файлах. На практике это означает,​ что сначала считывается содержимое .conf-файлов,​ а затем содержимое .local-файлов,​ поэтому значения ранее определённых параметров могут быть заменены. <file bash>
 +cd /​etc/​fail2ban;​
 +cp -p fail2ban.conf fail2ban.local;​
 +cp -p jail.conf jail.local;
 +</​file>​
 +  * jail.local<​file bash>
 +[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
 +</​file>​
 +  * рабочий jail.local для SSH, [[pure-ftpd?&#​dontresolve|Pure-FTPd]](syslog вместо auth.log)<​file bash 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
 +</​file>​
 +  * Можно вручную тестировать фильтры,​ например для [[Pure-FTPd]]<​file bash 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]
 +</​file><​file bash>
 +# fail2ban-regex /​var/​log/​syslog /​etc/​fail2ban/​filter.d/​pure-ftpd.conf
 +</​file>​
 +  * [[RoundCube]]<​file>​
 +[roundcube-auth]
 +
 +enabled ​ = true
 +filter ​  = roundcube-auth-new
 +port     = http,https
 +#​logpath ​ = /​var/​log/​roundcube/​userlogins
 +logpath ​ = /​var/​log/​roundcube/​errors
 +</​file>​Изменим регулярное выражение<​file perl 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+\))?$
 +
 +</​file>​Проверим правило<​file>​
 +# fail2ban-regex /​var/​log/​roundcube/​errors /​etc/​fail2ban/​filter.d/​roundcube-auth-new.conf
 +</​file>​
 +===== Использование Fail2ban (RHEL/​CentOS) ​ =====
 +  * [[http://​www.tecmint.com/​install-fail2ban-on-rhel-centos-fedora/​|Install Fail2ban (Intrusion Prevention) System on RHEL/CentOS 6.3/5.8, Fedora 17/12]]
 +По молчанию утилиты Fail2ban нет в стандартном репозитории. Fail2ban можно поставить например из EPEL repository используя [[yum?&#​epel|YUM]].
 +
 +===== Управление запрещенными IP =====
 +Управление запрещенными IP (manage bans IPs).
 +  * Просмотр запрещенных IP в [[iptables]]:<​file bash>
 +iptables -L
 +</​file>​
 +  * Для разблокирования конкретного IP, нужно узнать номер строки правила и потом удалить строку под этим номером с указанием имени Chain. Например,​ удалим 60 строку правила для цепи fail2ban-ssh:<​file bash>
 +iptables -nvL --line-numbers
 +iptables -D fail2ban-ssh 60
 +</​file>​
 +===== 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 " заменить строчку<​file python>
 +Date: `date -u +"%%a, %%d %%h %%Y %%T +0000"​`
 +</​file>​на<​file python>
 +Date: `date --rfc-2822 -u`
 +</​file>​
 +====== Ссылки ======
 +  * [[http://​www.ibm.com/​developerworks/​ru/​library/​l-fail2ban_01/​|Защита сетевых сервисов с помощью Fail2ban]]
 +  * [[http://​habrahabr.ru/​sandbox/​62683/​|Защищаем сервер от атаки DNS Amplification с помощью fail2ban]]
загрузка...
fail2ban.txt · Последние изменения: 2018/08/13 01:33 (внешнее изменение)