<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.rtzra.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>RTzRa&#039;s hive - software:fail2ban</title>
        <description>Все работает</description>
        <link>https://wiki.rtzra.ru/</link>
        <lastBuildDate>Sun, 19 Jul 2026 21:06:02 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.rtzra.ru/_media/wiki/logo.png</url>
            <title>RTzRa&#039;s hive</title>
            <link>https://wiki.rtzra.ru/</link>
        </image>
        <item>
            <title>Fail2ban - установка и настройка</title>
            <link>https://wiki.rtzra.ru/software/fail2ban/fail2ban-setup</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;fail2ban_-_ustanovka_i_nastrojka&quot;&gt;Fail2ban - установка и настройка&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Fail2ban - это простенькая система для защиты от атак связанных с подбором пароля. Например можно применить следующее правило: после трех неверных попыток авторизации IP атакующего банится (а именно блокируется средствами iptables) на 60 минут. Очевидно, что fail2ban не способен защитить от массовых распределенных атак, но тут уж применяются совершенно другие методы и средства.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Fail2ban - \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fail2ban_-_ustanovka_i_nastrojka&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-740&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;ustanovka&quot;&gt;Установка&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Просто устанавливаем и все. Для Ubuntu 10.04 LTS можно добавить сторонний PPA для установки более новой версии (в стандартном репозитории 0.8.4, выпущенный аж в 2009 году) командой
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# sudo apt-add-repository ppa:skurylo/fail2ban
# sudo apt-get update
&amp;lt;code&amp;gt;

и устанавливаем:

&amp;lt;code&amp;gt;
# sudo apt-get install fail2ban&lt;/pre&gt;

&lt;p&gt;
Все настройки хранятся в /etc/fail2ban и весьма очевидны благодаря хорошо комментированным файлам конфигурации.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; fail2ban.conf - общие настройки (уровень логирования, куда пишем логи и т.д.)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; jail.conf - собственно сами правила защиты, так же все предельно понятно.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; в папке action.d хранятся файлы, осуществляющие взаимодействие с утилитами операционной системы - здесь и отдаются конкретные указания как реагировать на опасность.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; в папке filter.d хранится логика работы - критерии по которым и происходит срабатывание правил.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Пример: надоели боты, ищущие некоторые скрипты на нашем веб-сервере (например, ищущие уязвимые версии phpmyadmin). И сейчас мы их будем отстреливать.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создаем правила, по которым вредитель будет обнаруживаться:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Файл filter.d/apache-nobots.conf
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# Fail2Ban configuration file
#
# Author: Evgeny Cheremnykh &amp;lt;rtzra@mail.ru&amp;gt;
#
# $Revision: 717 $
#
[Definition]
# Option:  failregex
# Notes.:  regex to match failures to find a home directory on a server, which
#          became popular last days. Most often attacker just uses IP instead of
#          domain name -- so expect to see them in generic error.log if you have
#          per-domain log files.
# Values:  TEXT
#
failregex = [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/phpmyadmin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/phpmyadmin1*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/phpmyadmin2*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/phpMyAdmin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/php-My-Admin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/php-my-admin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/dbadmin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/myadmin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/mysqladmin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/mysql-admin*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/webdav*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/pma*
            [[]client &amp;lt;HOST&amp;gt;[]] File does not exist: .*/*/PMA*
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Добавляем наше правило в список&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Файл jail.conf
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[apache-nobots]

enabled = true
port    = http,https
filter  = apache-nobots
logpath = /var/log/apache*/*error.log
maxretry = 2&lt;/pre&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/fail2ban?do=showtag&amp;amp;tag=fail2ban&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:fail2ban&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; fail2ban&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/zaschita?do=showtag&amp;amp;tag=%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:zaschita&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; защита&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ustanovka&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;741-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 09 May 2017 15:34:00 +0000</pubDate>
        </item>
    </channel>
</rss>
