<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fail2ban &#8902; Clip-Clap</title>
	<atom:link href="https://clip-clap.ru/tag/fail2ban/feed/" rel="self" type="application/rss+xml" />
	<link>https://clip-clap.ru/tag/fail2ban/</link>
	<description></description>
	<lastBuildDate>Sat, 05 Dec 2020 22:28:51 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.8</generator>

<image>
	<url>https://clip-clap.ru/wp-content/uploads/2020/07/cropped-favicon-32x32.png</url>
	<title>fail2ban &#8902; Clip-Clap</title>
	<link>https://clip-clap.ru/tag/fail2ban/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Настройка FAIL2BAN в CENTOS</title>
		<link>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-fail2ban-%d0%b2-centos/</link>
					<comments>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-fail2ban-%d0%b2-centos/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 05 Dec 2020 22:28:49 +0000</pubDate>
				<category><![CDATA[CentOS]]></category>
		<category><![CDATA[fail2ban]]></category>
		<guid isPermaLink="false">https://clip-clap.ru/?p=3118</guid>

					<description><![CDATA[<p>Если у вас есть сервер или компьютер, напрямую подключены к интернету, то они подвержены определенному риску. Сейчас любой интернет сервер</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-fail2ban-%d0%b2-centos/">Настройка FAIL2BAN в CENTOS</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Если у вас есть сервер или компьютер, напрямую подключены к интернету, то они подвержены определенному риску. Сейчас любой интернет сервер или VPS является потенциальной мишенью для хакерских атак. Правильно <a href="https://clip-clap.ru/it/mikrotik/%d0%b1%d0%b0%d0%b7%d0%be%d0%b2%d0%b0%d1%8f-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%84%d0%b0%d0%b5%d1%80%d0%b2%d0%be%d0%bb%d0%b0-%d0%b2-%d0%bc%d0%b8%d0%ba%d1%80%d0%be%d1%82%d0%b8/">настроенный фаервол</a> может предотвратить многие из атак. Но вам по-прежнему нужно оставить открытыми некоторые службы, чтобы иметь возможность администрировать сервер, например, SSH.</p>



<p>Этот протокол часто является мишенью перебора. Но к счастью есть решение. Инструмент Fail2ban позволяет блокировать доступ с IP адресов при большом количестве неверных логинов. Программа fail2ban может использоваться не только для SSH, она может защитить различные формы веб-аутентификации, FTP, и предотвратить DoS атаки на сервер. В этой статье мы рассмотрим как выполняется установка и настройка Fail2ban CentOS 7 поскольку эта операционная система часто используется для серверов.<br></p>


</br>



<h2 class="wp-block-heading">УСТАНОВКА FAIL2BAN</h2>



<p>Программа fail2ban очень часто используется для защиты серверов, поэтому она есть в официальном репозитории EPEL. Для установки программы сначала добавим репозиторий:</p>



<p><code>&nbsp;yum update &amp;&amp; sudo yum install epel-release</code></p>



<p>Затем установка fail2ban centos 7:</p>



<p><code> sudo yum install fail2ban</code></p>



<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-09-21-13-52-768x4321-1.png" alt="" class="wp-image-3119" width="1140" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-09-21-13-52-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-09-21-13-52-768x4321-1-300x169.png 300w" sizes="(max-width: 1140px) 100vw, 1140px" /></figure>



<p>После установки уже будет загружена базовая конфигурация программы, так что чтобы уже начать защищать ваш сервер, запустите ее с помощью системы управления службами:</p>



<p><code>&nbsp;sudo systemctl start fail2ban</code></p>


</br>



<h2 class="wp-block-heading">НАСТРОЙКА FAIL2BAN CENTOS 7</h2>



<p>Все конфигурационные файлы программы находятся в папке /etc/fail2ban. Вот основные файлы, которые мы будем использовать:</p>



<ul><li><strong>fail2ban.conf</strong>&nbsp;&#8212; пример выполнения основных настроек программы;</li><li><strong>jail.conf</strong>&nbsp;&#8212; пример настройки запрещающих правил;</li><li><strong>jail.d</strong>&nbsp;&#8212; папка с конфигурационными файлами пользователя, для настройки правил запрета;</li><li><strong>action.d</strong>&nbsp;&#8212; файлы, в которых описываются действия, выполняемые при блокировке;</li><li><strong>filter.d</strong>&nbsp;&#8212; в этих файлах описываются способы разбора журналов программ для поиска неудачных попыток входа.</li></ul>



<p>Никакие параметры в существующих файлах менять нельзя, они будут обновлены при обновлении программы, а значит что все ваши изменения будут стерты. Для установки своих настроек необходимо создать файл с таким же именем и расширением .local. Например, создаем файл для настройки jail.conf:</p>



<p><code>&nbsp;cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local</code></p>



<p>Теперь мы можем изменить здесь любые настройки, которые вам не нравятся в основном файле. Конфигурационный файл разделен на секции в зависимости от назначения опций. В секции [DEFAULT] находятся общие настройки, затем следуют отдельные секции для каждой блокировки отдельно. Опции по умолчанию и так неплохо работают, но в некоторых случаях дополнительная настройка может быть очень полезной.</p>



<p>Блокировку можно настроить, с помощью различных параметров. Вот самые важные из них:</p>



<ul><li><strong>ignoreip</strong>&nbsp;&#8212; задает список ip адресов, которые нужно исключить из алгоритмов Fail2ban. К ним не будут применяться ограничения, так что выбирайте их аккуратно. Диапазоны и IP адреса стоит разделить пробелом. Сюда можно добавить локальный ip, а также свой домашний адрес, чтобы у вас не возникло проблем при входе;</li><li><strong>bantime</strong>&nbsp;&#8212; указывает время, на которое клиенту буде закрыт доступ к серверу, если он не сможет авторизоваться, в секундах;</li><li><strong>maxretry</strong>&nbsp;&#8212; указывает количество попыток перед тем, как доступ будет заблокирован;</li><li><strong>findtime</strong>&nbsp;&#8212; время в секундах, на протяжении которого рассчитывается maxretry.</li></ul>



<p>В нашем примере пользователь будет заблокирован на 600 секунд после 5-ти неудачных попыток:</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-16-09-768x4321-1.png" alt="" class="wp-image-3120" width="1145" height="644" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-16-09-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-16-09-768x4321-1-300x169.png 300w" sizes="(max-width: 1145px) 100vw, 1145px" /></figure>



<p>По умолчанию, в CentOS все блокировки отключены, чтобы их включить замените значение строчки enabled на true. Но не рекомендуется так делать, потому что вам придется удалить из конфига все ненужные правила блокировки, иначе они вызовут ошибку запуска. Также можно включить обработку каждого приложения отдельно:</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-21-55-768x4321-1.png" alt="" class="wp-image-3121" width="1140" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-21-55-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-21-55-768x4321-1-300x169.png 300w" sizes="(max-width: 1140px) 100vw, 1140px" /></figure>



<p>Дальше нам необходимо настроить действия для запрета, а поддерживается их несколько вариантов. Как только нужно выполнить блокировку, программа примет решение на основе следующих параметров:</p>



<ul><li><strong>banaction</strong>&nbsp;&#8212; этот параметр определяет файл конфигурации способа блокировки, который нужно использовать. Обычно указывает на файл в папке /etc/fail2ban/action.d/ в котором записаны команды для блокировки. По умолчанию применяется iptables;</li><li><strong>action</strong>&nbsp;&#8212; с помощью параметров action задаются ярлыки дополнительных действий, которые выполняется после banaction. Сценарию передается имя, порт, протокол, цель и сценарий.</li></ul>


</br>



<h3 class="wp-block-heading">НАСТРОЙКА EMAIL ОПОВЕЩЕНИЙ</h3>



<p>Если вы хотите настроить оповещение о срабатывании блокировки Fail2ban по электронной почте, это тоже настраивается в разделе [DEFAULT]. Только необходимо чтобы на вашей машине был настроен почтовый сервер и он мог отправлять письма на внешний адрес. Иначе все письма будут доставлены к локальной учетной записи Linux.</p>



<p>Для настройки используются два параметра:</p>



<ul><li><strong>destemail</strong> &#8212; этот параметр задает адрес электронной почты, на который вы хотите получать сообщения. Значение по умолчанию root@localhost;</li><li><strong>mta</strong> &#8212; определяет почтовый агент, который будет использоваться для доставки почты. Если у вас настроен Sendmail, оставьте значение по умолчанию. Если же письма нужно доставлять на локальную машину поменяйте значение на mail.</li><li>Также для локальной почты нужно заменить строчку <strong>action_mw</strong> на<strong> action_mwl</strong>:</li></ul>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-18-07-768x4321-1.png" alt="" class="wp-image-3122" width="1136" height="638" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-18-07-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-18-07-768x4321-1-300x169.png 300w" sizes="(max-width: 1136px) 100vw, 1136px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-18-44-768x4321-1.png" alt="" class="wp-image-3123" width="1142" height="642" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-18-44-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-18-44-768x4321-1-300x169.png 300w" sizes="(max-width: 1142px) 100vw, 1142px" /></figure>



<p>Дальше для проверки почты можно посмотреть файл /var/mail/mail:</p>



<p><code>&nbsp;cat /var/mail/mail</code></p>


</br>



<h3 class="wp-block-heading">НАСТРОЙКА ОТДЕЛЬНЫХ ПРИЛОЖЕНИЙ</h3>



<p>Сразу после настроек раздела по умолчанию вы увидите разделы, обозначенные вот так: [имя_приложения]. Рассмотрим основные используемые параметры:</p>



<ul><li><strong>filter</strong>&nbsp;&#8212; указывает имя файла в каталоге /etc/fail2ban/filter.d/ Он сообщает программе как анализировать журнал сервиса и находить неудачные попытки входа;</li><li><strong>logpath</strong>&nbsp;&#8212; путь к лог файлу службы, куда она записывает неудачные попытки входа;</li></ul>



<p>Также здесь можно переопределять любой из параметров по умолчанию, например, maxretry, а с помощью параметра enabled вы можете включить только нужные блокировщики. По умолчанию настроены правила блокировки не только для ssh, но и для многих других сервисов, например, различных способов аутентификации http, ftp, аутентификации в почте и так далее.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-19-18-768x4321-1.png" alt="" class="wp-image-3124" width="1140" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-19-18-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-19-18-768x4321-1-300x169.png 300w" sizes="(max-width: 1140px) 100vw, 1140px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-20-08-768x4321-1.png" alt="" class="wp-image-3125" width="1139" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-20-08-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-20-08-768x4321-1-300x169.png 300w" sizes="(max-width: 1139px) 100vw, 1139px" /></figure>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-20-46-768x4321-1.png" alt="" class="wp-image-3126" width="1140" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-20-46-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-20-46-768x4321-1-300x169.png 300w" sizes="(max-width: 1140px) 100vw, 1140px" /></figure>



<p>Например, для активации блокировки неверных входов SSH, приведите секцию [sshd] к такому виду:</p>



<p><code>enabled = true<br>port = ssh<br>logpath = %(sshd_log)s<br>backend = %(sshd_backend)s</code></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-09-05-49-768x4321-1.png" alt="" class="wp-image-3127" width="1140" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-09-05-49-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-09-05-49-768x4321-1-300x169.png 300w" sizes="(max-width: 1140px) 100vw, 1140px" /></figure>


</br>



<h3 class="wp-block-heading">НАСТРОЙКА IPTABLES</h3>



<p>Обычно, никаких дополнительных настроек для iptables не требуется. Но давайте рассмотрим конфигурационный файл, который отвечает за блокировку, чтобы вы понимали как все работает. Имя этого файла указано в параметре&nbsp;banaction. По умолчанию это&nbsp;iptables-multiport.conf:</p>



<p><code>&nbsp;vi&nbsp;/etc/fail2ban/action.d/iptables-multiport.conf</code></p>



<p>Тут мы можем увидеть что приходит после того, как fail2ban решает, что нужно заблокировать доступ для определенного IP адреса. Сначала выполняются такие команды iptables:</p>



<p><code>actionstart = iptables -N fail2ban-&lt;name><br>iptables -A fail2ban-&lt;name> -j RETURN # questionable usefulness<br>iptables -I &lt;chain> -p &lt;protocol> -m multiport --dports &lt;port> -j fail2ban-&lt;name></code></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-31-768x4321-1.png" alt="" class="wp-image-3128" width="1137" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-31-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-31-768x4321-1-300x169.png 300w" sizes="(max-width: 1137px) 100vw, 1137px" /></figure>



<p>Они используются для организации среды передачи трафика в фильтрующей цепочке. Iptables управляет трафиком на основе цепей и каждая из них может иметь правила для всего трафика, которые определяют нужно ли его пропускать или нет. В первой строчке создается новая цепочка с именем fail2ban-имя_службы. Именно в ней будут содержаться все запрещающие правила для этого ip адреса. Вторая строчка возвращает управление цепочке, вызвавшей эту, а третья добавляет правило в основную цепь, которое передает управление на нашу цепочку.</p>



<p>Таким образом, весь входящий трафик с нужного порта обрабатывается нашей цепочкой fail2ban-имя_службы. Сейчас первое правило в ней отправляет трафик обратно в вызывающую цепь, это значит что правление просто передается нам и назад. Но теперь мы можем добавить дополнительные правила.</p>



<p>Для разрушения цепочки используются такие правила:</p>



<p><code>actionstop = iptables -D &lt;chain> -p &lt;protocol> -m multiport --dports &lt;port> -j fail2ban-&lt;name><br>iptables -F fail2ban-&lt;name><br>iptables -X fail2ban-&lt;name></code></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-39-768x4321-1.png" alt="" class="wp-image-3129" width="1142" height="642" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-39-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-39-768x4321-1-300x169.png 300w" sizes="(max-width: 1142px) 100vw, 1142px" /></figure>



<p>Теперь, когда нам нужно забанить пользователя программа выполнит команду:</p>



<p><code>actionban = iptables -I fail2ban-&lt;name> 1 -s &lt;ip> -j DROP</code></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-51-768x4321-1.png" alt="" class="wp-image-3130" width="1140" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-51-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-51-768x4321-1-300x169.png 300w" sizes="(max-width: 1140px) 100vw, 1140px" /></figure>



<p>Эта команда говорит, что необходимо отбрасывать все пакеты с этого ip адреса и уже не пытаться определить подлинность данных. Когда время блокировки вышло, она снимается такой командой:</p>



<p><code>actionunban = iptables -D fail2ban-&lt;name> -s &lt;ip> -j DROP</code></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-57-768x4321-1.png" alt="" class="wp-image-3131" width="1139" height="641" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-57-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-08-29-57-768x4321-1-300x169.png 300w" sizes="(max-width: 1139px) 100vw, 1139px" /></figure>



<p>Если вы хотите понять какие правила на данный момент применяются и каким ip адресам запрещен доступ, выполните в терминале:</p>



<p><code>sudo iptables -L</code></p>


</br>



<h3 class="wp-block-heading">ЗАВЕРШЕНИЕ НАСТРОЙКИ</h3>



<p>Когда вы завершите настройку, сохраните изменения в конфигурационном файле и перезагрузите сервис fail2ban. Сначала проверяем правильность конфигурации:</p>



<p><code>&nbsp;sudo fail2ban-client -d</code></p>



<p>Если все правильно, перезагружаем сервис:</p>



<p><code>&nbsp;sudo systemctl restart&nbsp;fail2ban</code></p>



<p>Для проверки своих правил, вы можете выполнить несколько попыток входа с неправильным логином и паролем, например, для службы ssh, если вы настраивали именно ее, как описано в этой статье. Когда вы достигните лимита запросов, ваш сервер даже не будет запрашивать пароля. Затем вы можете еще раз посмотреть правила:</p>



<p><code> sudo iptables -L</code></p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-09-15-33-768x4321-1.png" alt="" class="wp-image-3132" width="1143" height="644" srcset="https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-09-15-33-768x4321-1.png 768w, https://clip-clap.ru/wp-content/uploads/2020/12/Snimok-ekrana-iz-2017-03-10-09-15-33-768x4321-1-300x169.png 300w" sizes="(max-width: 1143px) 100vw, 1143px" /></figure>



<p>В самом низу, в нашей цепочке вы можете увидеть список забаненых ip fail2ban. Чтобы разбанить любой ip адрес достаточно удалить для него правило.</p>


</br>



<p>В этой статье мы рассмотрели как выполняется настройка fail2ban CentOS 7. Теперь вы можете настроить дополнительный уровень защиты для вашего сервера чтобы обезопасить его от взлома.</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-fail2ban-%d0%b2-centos/">Настройка FAIL2BAN в CENTOS</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-fail2ban-%d0%b2-centos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Защита почтового сервера postfix + dovecot с помощью fail2ban</title>
		<link>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b7%d0%b0%d1%89%d0%b8%d1%82%d0%b0-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%be%d0%b3%d0%be-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-postfix-dovecot-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c/</link>
					<comments>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b7%d0%b0%d1%89%d0%b8%d1%82%d0%b0-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%be%d0%b3%d0%be-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-postfix-dovecot-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c/#respond</comments>
		
		<dc:creator><![CDATA[Admin]]></dc:creator>
		<pubDate>Sat, 08 Aug 2020 19:31:02 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[postfix]]></category>
		<guid isPermaLink="false">https://clip-clap.ru/?p=1448</guid>

					<description><![CDATA[<p>У меня есть много статей про настройку почтового сервера, где я постоянно пропускаю важную тему защиты почтового сервера от перебора паролей. Пришло</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b7%d0%b0%d1%89%d0%b8%d1%82%d0%b0-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%be%d0%b3%d0%be-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-postfix-dovecot-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c/">Защита почтового сервера postfix + dovecot с помощью fail2ban</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>У меня есть много статей про настройку почтового сервера, где я постоянно пропускаю важную тему защиты почтового сервера от перебора паролей. Пришло время это исправить и рассказать, как защитить postfix и dovecot с помощью fail2ban от подбора паролей к почтовым ящикам. Метод традиционный, простой и надежный &#8212; будем банить по ip тех, кто будет пытаться пройти авторизацию с неверными учетными данными.</p>


</br>



<p>Данная статья написана на примере настройки почтового сервера по моей статье &#8212; <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-postfix-dovecot-mysql-%d0%b1%d0%b0%d0%b7%d0%b0-postfixadmin-roundcube-dkim-%d0%bd%d0%b0-centos-8/" target="_blank" rel="noreferrer noopener">Настройка postfix + dovecot на CentOS 8</a>. Но в контексте описываемого материала это не принципиально, так как fail2ban, postfix и dovecot имеют одинаковые конфиги и логи на всех дистрибутивах linux. Так что представленная в статье информация будет актуальна для любого сервера, где используется этот софт.</p>



<p>Второй важный момент. Я в своей работе везде использую нативные iptables. Для блокировки ip адресов с помощью fail2ban я буду использовать именно этот firewall. Если у вас его нет и вы хотите настроить, то добро пожаловать в мою статью по этой теме &#8212; <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/centos/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-iptables-%d0%b2-centos-7/" target="_blank" rel="noreferrer noopener">настройка iptables</a>. Далее я не буду останавливаться на этом.</p>



<h2 class="wp-block-heading">Установка и настройка fail2ban</h2>



<p>Установка fail2ban на любом дистрибутиве не представляет никаких сложностей, так как продукт популярный и присутствует почти во всех репозиториях. Ставим через пакетный менеджер в Centos 7,8. У вас должен быть подключен репозиторий epel.</p>



<pre class="wp-block-preformatted"># yum install fail2ban</pre>



<pre class="wp-block-preformatted"># dnf install fail2ban</pre>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-01.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-01.png" alt="Установка fail2ban" class="wp-image-12027"/></a></figure></div>



<p>В Ubuntu / Debian fail2ban ставится из базовых репозиториев.</p>


</br>



<pre class="wp-block-preformatted"># apt install fail2ban</pre>



<p>В Centos по умолчанию используется firewalld для управления правилами фаервола. Чтобы изменить это и перейти на iptables, достаточно удалить файл&nbsp;<em>00-firewalld.conf.</em></p>



<pre class="wp-block-preformatted"># rm /etc/fail2ban/jail.d/00-firewalld.conf</pre>



<p>Дальше нас будет интересовать конфигурационный файл&nbsp;<em>jail.conf</em>. По умолчанию в нем очень много параметров и комментариев. Мне не удобно работать с таким огромным файлом. Большая часть информации оттуда мне не нужна. Я привел его к такому виду.</p>



<pre class="wp-block-preformatted">[INCLUDES]
before = paths-fedora.conf

[DEFAULT]
ignoreip = 127.0.0.1/8  <strong>10.1.3.29/32</strong>
bantime  = 30m
findtime  = 30m
maxretry = 5
backend = auto
usedns = warn
logencoding = auto
enabled = false
mode = normal</pre>



<p>Я выделил ip адрес <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-zabbix-3-4-%d0%bd%d0%b0-debian-9/" target="_blank" rel="noreferrer noopener">zabbix</a> сервера, на котором настроен <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/zabbix/%d0%bc%d0%be%d0%bd%d0%b8%d1%82%d0%be%d1%80%d0%b8%d0%bd%d0%b3-postfix-%d0%b2-zabbix/" target="_blank" rel="noreferrer noopener">мониторинг работы почтового сервера</a> и мониторинг tls сертификатов. Если его не добавить в исключения, то он будет забанен, так как регулярно подключается к почтовому серверу, но не проходит авторизацию. Ему это не нужно для работы.</p>



<p>Когда будете редактировать, не забудьте на всякий случай сохранить оригинал конфига. Базовая настройка fail2ban закончена. Все остальное я оставил дефолтное. Переходим к настройке правил блокировки.</p>


</br>



<h2 class="wp-block-heading">Защита postfix с помощью fail2ban</h2>



<p>Изначально fail2ban идет с комплектом готовых настроек и фильтров для защиты большинства популярных сервисов. К ним относится и postfix. Но когда я посмотрел в готовый набор с regexp для postfix, я слегка растерялся <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Он просто огромен. И самое главное, что в таком виде он не заработал на моем лог файле.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-02.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-02.png" alt="fail2ban regexp postfix" class="wp-image-12028"/></a></figure></div>



<p>Мне стало лень ковыряться в этих правилах. Для защиты postfix от перебора паролей почтовых ящиков, достаточно банить ip адреса из следующих строк лога.</p>



<pre class="wp-block-preformatted">Jun 17 03:14:07 mail postfix/smtpd[175371]: warning: unknown[46.38.145.252]: SASL LOGIN authentication failed: UGFzc3dvcmQ6</pre>



<p>Для этого достаточно относительно простого regexp.</p>



<pre class="wp-block-preformatted">^%(__prefix_line)swarning: [-._\w]+\[&lt;HOST&gt;\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$</pre>


</br>



<p>Его придумал не я. Честно подсмотрел на просторах интернета. Примеров масса и у нас, и в англоязычном гугле. Далее создаем конфигурационный файл с фильтром из этого regexp &#8212;&nbsp;<em>/etc/fail2ban/filter.d/<strong>postfix-sasl.conf</strong></em>.</p>



<pre class="wp-block-preformatted">[INCLUDES]
before = common.conf
[Definition]
_daemon = postfix/smtpd
failregex = ^%(__prefix_line)swarning: [-._\w]+\[\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed(: [ A-Za-z0-9+/]*={0,2})?\s*$
ignoreregex =
</pre>



<p>Можно сразу же проверить работу этого фильтра с помощью&nbsp;<strong>fail2ban-regex</strong>. Эта утилита никого не банит, а просто выводит информацию о работе фильтра.</p>



<pre class="wp-block-preformatted"># fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/postfix-sasl.conf</pre>



<p>Команда успешно отработала и вывела результат.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-03.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-03.png" alt="Защита postfix с помощью fail2ban" class="wp-image-12029"/></a></figure></div>



<p>24327 раз данный фильтр распознал строки, попадающие под работу фильтра. Изначально я напрягся, когда прикинул, что именно такое количество ip адресов поедет в бан с помощью iptables. Это еще не критично большое количество, но все равно достаточно много. По одному добавлять такое количество адресов не стоит. Нужно использовать списки, например, ipset.</p>


</br>



<p>На деле зря испугался. Никаких проблем не будет и дальше я покажу почему. Правило обработки лога мы проверили и убедились, что оно работает. Дальше добавляем в&nbsp;<em>jail.conf</em>&nbsp;новую секцию.</p>



<pre class="wp-block-preformatted">[postfix-sasl]
enabled	= true
filter	= postfix-sasl
port	= smtp,465,submission,imap,imaps,pop3,pop3s
action	= iptables[name=Postfix-sals, port=smtp, protocol=tcp]
logpath	= /var/log/maillog
bantime	= 60m
maxretry = 3
findtime = 60m</pre>



<p>Пояснять тут особо нечего и так все понятно. Настройка блокировки будет проверять лог файл и записи в нем за последние 60 минут. Если будут 3 совпадения с regexp из фильтра postfix-sasl, ip адрес будет забанен на 60 минут. Таким образом, список забаненных ip адресов будет не очень большой, так как большая часть адресов будет повторяться.</p>



<p>Запускаем fail2ban и добавляем в автозагрузку.</p>



<pre class="wp-block-preformatted"># systemctl enable --now fail2ban</pre>



<p>Проверяем лог файл&nbsp;<em>/var/log/fail2ban</em>.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-04.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-04.png" alt="log fail2ban" class="wp-image-12030"/></a></figure></div>



<p>Смотрим правила iptables.</p>



<pre class="wp-block-preformatted"># iptables -L -v -n</pre>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-05.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-05.png" alt="Блокировка в iptables с помощью fail2ban" class="wp-image-12031"/></a></figure></div>



<p>У вас должна появиться отдельная цепочка правил&nbsp;<strong>f2b-Postfix-sals</strong>&nbsp;с заблокированными ip адресами, которые добавил fail2ban. С защитой postfix с помощью fail2ban все. Переходим к Dovecot.</p>


</br>



<h2 class="wp-block-heading">Защита dovecot с помощью fail2ban</h2>



<p>Для защиты от перебора логинов в dovecot мы будем действовать аналогично. Единственное отличие, я буду использовать дефолтный фильтр для dovecot, который шел из коробки. Я его попробовал и он сразу заработал. Вот его содержимое.</p>



<pre class="wp-block-preformatted"># cat /etc/fail2ban/filter.d/dovecot.conf</pre>



<pre class="wp-block-preformatted">[INCLUDES]

before = common.conf

[Definition]

_auth_worker = (?:dovecot: )?auth(?:-worker)?
_daemon = (?:dovecot(?:-auth)?|auth)

prefregex = ^%(__prefix_line)s(?:%(_auth_worker)s(?:\([^\)]+\))?: )?(?:%(__pam_auth)s(?:\(dovecot:auth\))?: |(?:pop3|imap)-login: )?(?:Info: )?.+$

failregex = ^authentication failure; logname=\S* uid=\S* euid=\S* tty=dovecot ruser=\S* rhost=(?:\s+user=\S*)?\s*$
            ^(?:Aborted login|Disconnected)(?::(?: [^ \(]+)+)? \((?:auth failed, \d+ attempts(?: in \d+ secs)?|tried to use (?:disabled|disallowed) \S+ auth|proxy dest auth failed)\):(?: user=&lt;[^&gt;]*&gt;,)?(?: method=\S+,)? rip=(?:[^&gt;]*(?:, session=&lt;\S+&gt;)?)\s*$
            ^pam\(\S+,(?:,\S*)?\): pam_authenticate\(\) failed: (?:User not known to the underlying authentication module: \d+ Time\(s\)|Authentication failure \(password mismatch\?\)|Permission denied)\s*$
            ^[a-z\-]{3,15}\(\S*,(?:,\S*)?\): (?:unknown user|invalid credentials|Password mismatch)\s*$
            &lt;mdre-&gt;

mdre-aggressive = ^(?:Aborted login|Disconnected)(?::(?: [^ \(]+)+)? \((?:no auth attempts|disconnected before auth was ready,|client didn't finish \S+ auth,)(?: (?:in|waited) \d+ secs)?\):(?: user=&lt;[^&gt;]*&gt;,)?(?: method=\S+,)? rip=(?:[^&gt;]*(?:, session=&lt;\S+&gt;)?)\s*$

mdre-normal = 

mode = normal

ignoreregex = 

journalmatch = _SYSTEMD_UNIT=dovecot.service

datepattern = {^LN-BEG}TAI64N
              {^LN-BEG}
</pre>



<p>Полный лог dovecot у меня располагается в файле&nbsp;<em>/var/log/dovecot/info.log</em>. В параметрах dovecot у меня добавлено:</p>



<pre class="wp-block-preformatted">auth_verbose = yes</pre>



<p>С этим параметром у вас дополнительно в логе будут следующие строки:</p>



<pre class="wp-block-preformatted">Jun 17 04:14:11 auth-worker(175697): Info: sql(mcm@mail.ru,87.246.7.66): <strong>unknown user</strong></pre>



<p>По дефолту их нет, а они помогут в нашей задаче по защите от перебора паролей учетных записей dovecot. Проверим работу фильтра.</p>



<pre class="wp-block-preformatted"># fail2ban-regex /var/log/dovecot/info.log /etc/fail2ban/filter.d/dovecot.conf</pre>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-06.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-06.png" alt="Защита dovecot с помощью fail2ban" class="wp-image-12032"/></a></figure></div>



<p>Сработок очень много. Судя по всему, фильтр работает. Добавляем в конфиг&nbsp;<em>jail.conf</em>.</p>



<pre class="wp-block-preformatted">[dovecot]
enabled	= true
filter	= dovecot
port	= imap,imaps,pop3,pop3s
action	= iptables[name=Dovecot, port=imap, protocol=tcp]
logpath	= /var/log/dovecot/info.log
bantime	= 60m
maxretry = 3
findtime = 60m
</pre>



<p>Здесь ничего нового. Все то же самое, что мы сделали выше. Перезапускайте fail2ban и проверяйте его работу. В логе должна появиться информация по работе данного jail&#8217;а. А в правилах iptables новая цепочка Dovecot.</p>


</br>



<h2 class="wp-block-heading">Отладка работы fail2ban</h2>



<p>После добавления правил блокировки ip адресов с помощью fail2ban, я некоторое время наблюдаю за сервером, чтобы проверить правильность работы. Для этого делаю вот такое окно в отдельном мониторе и наблюдаю некоторое время.</p>



<div class="wp-block-image"><figure class="aligncenter"><a href="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-07.png" target="_blank" rel="noreferrer noopener"><img decoding="async" src="https://serveradmin.ru/wp-content/uploads/2020/06/fail2ban-postfix-dovecot-07.png" alt="Отладка работы fail2ban" class="wp-image-12033"/></a></figure></div>



<p>Здесь открыт лог postfix, dovecot и fail2ban. Если вижу, что правила отрабатываются корректно, завершаю настройку. На этом этапе могут быть заблокированы валидные ip адреса пользователей, у которых одна из учеток указана с неверным паролем. В итоге он банится по ip и у него вообще перестает работать вся почта. Если это локальные пользователи, то можно всю их подсеть добавить в доверенные, но я бы не рекомендовал так делать. В этом случае вы не узнаете, что кто-то вас перебирает из локальной сети. А это случается не редко.</p>



<h2 class="wp-block-heading">Удалить ip адрес из заблокированных fail2ban</h2>



<p>Вам может понадобиться вручную удалить какой-то ip адрес из списка заблокированных fail2ban. Часто в блок попадают ip адреса при настройке учетной записи у пользователя. Пароль может быть перепутан или копироваться с лишними символами. Всякое бывает.</p>



<p>Можно напрямую удалить правило через iptables. Но это будет не очень правильно. Лучше воспользоваться готовым инструментом от fail2ban для удаления ip адресов из блокировки.</p>



<p>Смотрим список активных jail&#8217;ов.</p>



<pre class="wp-block-preformatted"># fail2ban-client status
Status
|- Number of jail:	2
`- Jail list:	dovecot, postfix-sasl</pre>



<p>Смотрим список заблокированный ip адресов в jail.</p>



<pre class="wp-block-preformatted"># fail2ban-client status postfix-sasl
Status for the jail: postfix-sasl
|- Filter
|  |- Currently failed:	1
|  |- Total failed:	169
|  `- File list:	/var/log/maillog
`- Actions
   |- Currently banned:	27
   |- Total banned:	86
   `- Banned IP list:	46.38.150.193 87.246.7.66 212.70.149.2 141.98.80.150 46.38.150.203 185.143.75.153 212.70.149.18 46.38.150.191 87.246.7.70 185.143.75.81 185.143.72.34 46.38.150.142 46.38.150.190 185.143.72.27 185.143.72.25 185.143.72.23 46.38.145.6 46.38.145.252 46.38.150.188 46.38.145.249 46.38.145.5 46.38.145.250 46.38.145.248 46.38.145.254 46.38.145.253 185.143.72.16 46.38.145.251
</pre>



<p>Теперь разбаним один из адресов в fail2ban:</p>



<pre class="wp-block-preformatted"># fail2ban-client set postfix-sasl unbanip 46.38.150.193
1</pre>



<p>Если получите одну из этих ошибок:</p>



<pre class="wp-block-preformatted">2020-06-17 20:15:14,809 fail2ban [77578]: ERROR NOK: ('Invalid command (no get action or not yet implemented)',)
2020-06-17 20:13:02,078 fail2ban [77464]: ERROR NOK: ("Invalid command '46.38.150.193' (no set action or not yet implemented)",)
2020-06-17 20:11:48,132 fail2ban [77382]: ERROR   NOK: ('list index out of range',)</pre>



<p>Значит у вас более старая версия fail2ban. Тогда нужно использовать другую команду для разбана ip адреса:</p>



<pre class="wp-block-preformatted"># fail2ban-client <strong>get</strong> postfix-sasl <strong>actionunban</strong> 46.38.150.193</pre>



<p>Для проверки можете посмотреть на цепочки правил iptables, чтобы убедиться, в том, что адреса реально удалены из блокировки.</p>



<h2 class="wp-block-heading">Заключение</h2>



<p>На практике правила в fail2ban для dovecot особо не нужны. Пробивкой учетных записей занимаются боты, которые сразу пробивают smtp и imap порты. Все эти боты первым делом попадают в блокировку postfix и до правил dovecot просто не доходят. Но для полноты картины можно оставить и их, хотя бы для того, чтобы выявлять сотрудников с настроенными неактивными учетками.</p>



<p>С помощью fail2ban можно так же банить различные почтовые серверы, которые не проходят встроенные проверки postfix на спам. Но я обычно этого не делаю, так как бывают ложные срабатывания. Потом приходится лишнее время тратить на разбор полетов, так как он усложняется. Так стоит делать, если левые коннекты реально замедляют работу почтового сервера. Обычно это не добавляет каких-то серьезных проблем, в отличие от перебора паролей.</p>
<p>Сообщение <a href="https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b7%d0%b0%d1%89%d0%b8%d1%82%d0%b0-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%be%d0%b3%d0%be-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-postfix-dovecot-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c/">Защита почтового сервера postfix + dovecot с помощью fail2ban</a> появились сначала на <a href="https://clip-clap.ru">Clip-Clap</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://clip-clap.ru/it/%d1%81%d0%be%d1%84%d1%82-%d0%b8-%d0%be%d1%81/linux/%d0%b7%d0%b0%d1%89%d0%b8%d1%82%d0%b0-%d0%bf%d0%be%d1%87%d1%82%d0%be%d0%b2%d0%be%d0%b3%d0%be-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-postfix-dovecot-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Кэширование страницы с использованием Disk: Enhanced 
Минифицировано с помощью Disk
Кэширование БД с использованием Disk (Request-wide (широкий запрос) modification query)

Served from: clip-clap.ru @ 2026-06-14 21:13:39 by W3 Total Cache
-->