<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=Fail2ban</id>
	<title>Fail2ban - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=Fail2ban"/>
	<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=Fail2ban&amp;action=history"/>
	<updated>2026-05-05T15:11:01Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.webko.net.ua/index.php?title=Fail2ban&amp;diff=71&amp;oldid=prev</id>
		<title>Sol: Новая страница: «'''Настройка Fail2ban для защиты SSH и не только'''  ''Fail2ban'' — простой в использовании локальный…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=Fail2ban&amp;diff=71&amp;oldid=prev"/>
		<updated>2015-04-20T17:49:55Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;Настройка Fail2ban для защиты SSH и не только&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;Fail2ban&amp;#039;&amp;#039; — простой в использовании локальный…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Настройка Fail2ban для защиты SSH и не только'''&lt;br /&gt;
&lt;br /&gt;
''Fail2ban'' — простой в использовании локальный сервис, который отслеживает log–файлы запущенных программ, и на основании различных условий блокирует по IP найденных нарушителей.&lt;br /&gt;
&lt;br /&gt;
Программа умеет бороться с различными атаками на все популярные *NIX–сервисы, такие как Apache, Nginx, ProFTPD, vsftpd, Exim, Postfix, named, и т.д.&lt;br /&gt;
&lt;br /&gt;
Но в первую очередь Fail2ban известен благодаря готовности «из коробки» к защите SSH–сервера от атак типа «bruteforce», то есть к защите SSH от перебора паролей.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Fail2ban-ssh-in-action.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://habrahabr.ru/post/238303/ Fail2ban incremental: Лучше, быстрее, надежнее]&lt;br /&gt;
[http://habrahabr.ru/post/236859/ Fail2ban и nginx]&lt;br /&gt;
== Установка Fail2ban ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Готовые пакеты Fail2ban можно найти в официальных репозиториях всех популярных Linux дистрибутивов.&lt;br /&gt;
&lt;br /&gt;
Установка Fail2ban на Debian/Ubuntu:&lt;br /&gt;
&lt;br /&gt;
 apt-get install fail2ban&lt;br /&gt;
&lt;br /&gt;
Установка Fail2ban на CentOS/Fedora/RHEL:&lt;br /&gt;
&lt;br /&gt;
 yum install fail2ban&lt;br /&gt;
&lt;br /&gt;
 chkconfig fail2ban on&lt;br /&gt;
 &lt;br /&gt;
== Конфигурация Fail2ban ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
На данном этапе Fail2ban уже готов к работе, базовая защита SSH сервера от перебора паролей будет включена по умолчанию. Но лучше всё-же внести некоторые изменения следуя рекомендациям ниже.&lt;br /&gt;
&lt;br /&gt;
У программы два основных файла конфигурации:&lt;br /&gt;
&lt;br /&gt;
    /etc/fail2ban/fail2ban.conf — отвечает за настройки запуска процесса Fail2ban.&lt;br /&gt;
    /etc/fail2ban/jail.conf — содержит настройки защиты конкретных сервисов, в том числе sshd.&lt;br /&gt;
&lt;br /&gt;
Файл jail.conf поделён на секции, так называемые «изоляторы» (jails), каждая секция отвечает за определённый сервис и тип атаки:&lt;br /&gt;
&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 ignoreip = 127.0.0.1/8&lt;br /&gt;
 bantime  = 600&lt;br /&gt;
 maxretry = 3&lt;br /&gt;
 banaction = iptables-multiport&lt;br /&gt;
&lt;br /&gt;
 [ssh]&lt;br /&gt;
 enabled  = true&lt;br /&gt;
 port     = ssh&lt;br /&gt;
 filter   = sshd&lt;br /&gt;
 logpath  = /var/log/auth.log&lt;br /&gt;
 maxretry = 6&lt;br /&gt;
&lt;br /&gt;
Параметры из секции '''[DEFAULT]''' применяются ко всем остальным секциям, если не будут переопределены.&lt;br /&gt;
&lt;br /&gt;
Секция '''[ssh]''' отвечает за защиту SSH от повторяющихся неудачных попыток авторизации на SSH–сервере, проще говоря, «brute–force».&lt;br /&gt;
&lt;br /&gt;
Подробнее по каждому из основных параметров файла jail.conf:&lt;br /&gt;
&lt;br /&gt;
    ''ignoreip'' — IP–адреса, которые не должны быть заблокированы. Можно задать список IP-адресов разделённых пробелами, маску подсети, или имя DNS–сервера.&lt;br /&gt;
&lt;br /&gt;
    ''bantime'' — время бана в секундах, по истечении которого IP–адрес удаляется из списка заблокированных.&lt;br /&gt;
&lt;br /&gt;
    ''maxretry'' — количество подозрительных совпадений, после которых применяется правило. В контексте [ssh] — это число неудавшихся попыток логина, после которых происходит блокировка.&lt;br /&gt;
&lt;br /&gt;
    ''enabled'' — значение ''true'' указывает что данный jail активен, ''false'' выключает действие изолятора.&lt;br /&gt;
&lt;br /&gt;
    ''port'' — указывает на каком порту или портах запущен целевой сервис. Стандартный порт SSH–сервера — 22, или его буквенное наименование — ssh.&lt;br /&gt;
&lt;br /&gt;
    ''filter'' — имя фильтра с регулярными выражениями, по которым идёт поиск «подозрительных совпадений» в журналах сервиса. Фильтру sshd соответствует файл /etc/fail2ban/filter.d/sshd.conf.&lt;br /&gt;
&lt;br /&gt;
    ''logpath'' — путь к файлу журнала, который программа Fail2ban будет обрабатывать с помощью заданного ранее фильтра. Вся история удачных и неудачных входов в систему, в том числе и по SSH, по умолчанию записывается в log–файл /var/log/auth.log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Рекомендации по настройке Fail2ban ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Не рекомендуется оставлять параметр '''''ignoreip''''' со значением по умолчанию 127.0.0.1/8, это создаёт очевидную угрозу в многопользовательских системах — если злоумышленник получил доступ хотя–бы к одному shell–аккаунту, то он имеет возможность беспрепятственно запустить bruteforce–программу для атаки на root или других пользователей прямо с этого–же сервера.&lt;br /&gt;
&lt;br /&gt;
Новая опция '''''findtime''''' — определяет длительность интервала в секундах, за которое событие должно повториться определённое количество раз, после чего санкции вступят в силу. Если специально не определить этот параметр, то будет установлено значение по умолчанию равное 600 (10 минут). Проблема в том, что ботнеты, участвующие в «медленном брутфорсе», умеют обманывать стандартное значение. Иначе говоря, при '''''maxretry''''' равным 6, атакующий может проверить 5 паролей, затем выждать 10 минут, проверить ещё 5 паролей, повторять это снова и снова, и его IP забанен не будет. В целом, это не угроза, но всё же лучше банить таких ботов.&lt;br /&gt;
&lt;br /&gt;
Прежде чем вносить изменения следуя рекомендациям, отметим, что не стоит редактировать основной файл настроек jail.conf, для этого предусмотрены файлы с расширением *.local, которые автоматически подключаются и имеют высший приоритет.&lt;br /&gt;
&lt;br /&gt;
 nano /etc/fail2ban/jail.local&lt;br /&gt;
&lt;br /&gt;
 [DEFAULT]&lt;br /&gt;
 ## Постоянный IP-адрес.&lt;br /&gt;
 ## Если не переопределить ignoreip здесь,&lt;br /&gt;
 ## то стоит закомментировать этот параметр в jail.conf.&lt;br /&gt;
 ignoreip = 57.66.158.131&lt;br /&gt;
&lt;br /&gt;
 [ssh]&lt;br /&gt;
 ## если в течении 1 часа:&lt;br /&gt;
 findtime    = 3600&lt;br /&gt;
 ## произведено 6 неудачных попыток логина:&lt;br /&gt;
 maxretry    = 6&lt;br /&gt;
 ## то банить IP на 24 часа:&lt;br /&gt;
 bantime     = 86400&lt;br /&gt;
&lt;br /&gt;
Осталось перезапустить Fail2ban:&lt;br /&gt;
&lt;br /&gt;
 service fail2ban restart&lt;br /&gt;
 * Restarting authentication failure monitor fail2ban        [ OK ]&lt;br /&gt;
&lt;br /&gt;
 tail /var/log/fail2ban.log&lt;br /&gt;
&lt;br /&gt;
 2013-01-20 22:00:35,911 fail2ban.jail   : INFO   Jail 'ssh' stopped&lt;br /&gt;
 2013-01-20 22:00:35,916 fail2ban.server : INFO   Exiting Fail2ban&lt;br /&gt;
 2013-01-20 22:00:36,257 fail2ban.server : INFO   Changed logging target to&lt;br /&gt;
 /var/log/fail2ban.log for Fail2ban v0.8.6&lt;br /&gt;
 2013-01-20 22:00:36,258 fail2ban.jail   : INFO   Creating new jail 'ssh'&lt;br /&gt;
 2013-01-20 22:00:36,259 fail2ban.jail   : INFO   Jail 'ssh' uses poller&lt;br /&gt;
 2013-01-20 22:00:36,271 fail2ban.filter : INFO   Added logfile = /var/log/auth.log&lt;br /&gt;
 2013-01-20 22:00:36,271 fail2ban.filter : INFO   Set maxRetry = 6&lt;br /&gt;
 2013-01-20 22:00:36,272 fail2ban.filter : INFO   Set findtime = 3600&lt;br /&gt;
 2013-01-20 22:00:36,272 fail2ban.actions: INFO   Set banTime = 86400&lt;br /&gt;
 2013-01-20 22:00:36,298 fail2ban.jail   : INFO   Jail 'ssh' started&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Общее *nix]] [[Category:Linux]][[Category:BSD]]&lt;/div&gt;</summary>
		<author><name>Sol</name></author>
	</entry>
</feed>