<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EuroDomenii</id>
	<title>Alpine Linux - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alpinelinux.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EuroDomenii"/>
	<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/wiki/Special:Contributions/EuroDomenii"/>
	<updated>2026-04-30T02:37:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15485</id>
		<title>Fail2ban</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15485"/>
		<updated>2018-10-11T20:45:19Z</updated>

		<summary type="html">&lt;p&gt;EuroDomenii: /* Different ssh port number */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Install == &lt;br /&gt;
This will install fail2ban package. It includes iptables package (see also [[Configure_Networking#Firewalling_with_iptables_and_ip6tables]])&lt;br /&gt;
{{cmd |apk add fail2ban}}&lt;br /&gt;
Enable the fail2ban service so that it starts at boot:&lt;br /&gt;
{{cmd |rc-update add fail2ban}}&lt;br /&gt;
Start the fail2ban service immediately and create configuration files:&lt;br /&gt;
{{cmd |/etc/init.d/fail2ban start}}&lt;br /&gt;
List services to verify fail2ban is enabled:&lt;br /&gt;
{{cmd | rc-status}}&lt;br /&gt;
== Configuration == &lt;br /&gt;
*Configuration files are located at /etc/fail2ban&lt;br /&gt;
==SSH Daemon== &lt;br /&gt;
*The default jail &amp;quot;ssh&amp;quot; was added in 2015 ( see https://bugs.alpinelinux.org/issues/966 and  [https://git.alpinelinux.org/cgit/aports/commit/?id=d0457a4cbde06be9e6fdf2203fd53b1b05225b98 commit])&lt;br /&gt;
===Alpine new sshd key filter===&lt;br /&gt;
*Out of the box, alpine comes with /etc/fail2ban/filter.d/alpine-sshd.conf, that protects from password failures and additional ddos protection /etc/fail2ban/filter.d/alpine-sshd-ddos.conf&lt;br /&gt;
*But, if you turn off PasswordAuthentication in /etc/ssh/sshd_config, the above filters won&#039;t work&lt;br /&gt;
*There are opinions against the utility of fail2ban: &amp;lt;s&amp;gt;&#039;&#039;Fail2ban is fundamentally a wrong answer to the problem. If you&#039;re taking the time to install such things, you should instead either be turning off password authentication (relying only on keys)&#039;&#039; &amp;lt;/s&amp;gt;&lt;br /&gt;
**but it seems to be useful : &#039;&#039;I&#039;ve used Fail2Ban even with SSH password authentication turned off. It&#039;s still helpful for preventing huge error logs [https://news.ycombinator.com/item?id=8049916  via]&#039;&#039;&lt;br /&gt;
*We can find the following type of logs, reported at https://github.com/fail2ban/fail2ban/issues/1719 and addressed in 0.10 version&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connection reset by 153.99.182.39 port 48966 [preauth]&lt;br /&gt;
Received disconnect from 153.99.182.39 port 21183:11: [preauth]&lt;br /&gt;
Disconnected from 153.99.182.39 port 21183 [preauth]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Their fix is mode=aggressive, but it doesn&#039;t work in alpine&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd[mode=aggressive]&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
*These above logs message corresponds to the following use cases:&lt;br /&gt;
**attempts to login without private key&lt;br /&gt;
**attempts to login with wrong private key&lt;br /&gt;
**attempts to login with wrong passphrase aren&#039;t logged&lt;br /&gt;
*https://serverfault.com/questions/686422/modify-fail2ban-failregex-to-match-failed-public-key-authentications-via-ssh/686436 solution doesn&#039;t work out of the box, so the custom setup for alpine is:&lt;br /&gt;
{{cmd | vi /etc/fail2ban/jail.d/alpine-ssh.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{cmd | vi /etc/fail2ban/filter.d/alpine-sshd-key.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Fail2Ban filter for openssh for Alpine&lt;br /&gt;
#&lt;br /&gt;
# Filtering login attempts with PasswordAuthentication No in sshd_config.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
[INCLUDES]&lt;br /&gt;
&lt;br /&gt;
# Read common prefixes. If any customizations available -- read them from&lt;br /&gt;
# common.local&lt;br /&gt;
before = common.conf&lt;br /&gt;
&lt;br /&gt;
[Definition]&lt;br /&gt;
&lt;br /&gt;
_daemon = sshd&lt;br /&gt;
&lt;br /&gt;
failregex = (Connection closed by|Disconnected from) authenticating user .* &amp;lt;HOST&amp;gt; port \d* \[preauth\]&lt;br /&gt;
&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&lt;br /&gt;
[Init]&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;maxlines&amp;quot; is number of log lines to buffer for multi-line regex searches&lt;br /&gt;
maxlines = 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*/etc/init.d/fail2ban restart&lt;br /&gt;
&lt;br /&gt;
===How to test new filters===&lt;br /&gt;
{{cmd | fail2ban-regex /var/log/messages alpine-sshd-key.conf}}&lt;br /&gt;
===Unban ip===&lt;br /&gt;
{{cmd | fail2ban-client set sshd unbanip BannedIP}}&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fail2ban-client -i&lt;br /&gt;
Fail2Ban v0.10.1 reads log file that contains password failure report&lt;br /&gt;
and bans the corresponding IP addresses using firewall rules.&lt;br /&gt;
&lt;br /&gt;
fail2ban&amp;gt; status sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Different ssh port number===&lt;br /&gt;
You can change the port value to any positive integer in &lt;br /&gt;
via https://serverfault.com/questions/382858/in-fail2ban-how-to-change-the-ssh-port-number&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Increase bantime===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
bantime  = 24h&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
bantime  = 24h&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
bantime  = 24h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EuroDomenii</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15484</id>
		<title>Fail2ban</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15484"/>
		<updated>2018-10-11T20:16:16Z</updated>

		<summary type="html">&lt;p&gt;EuroDomenii: /* Alpine new sshd key filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Install == &lt;br /&gt;
This will install fail2ban package. It includes iptables package (see also [[Configure_Networking#Firewalling_with_iptables_and_ip6tables]])&lt;br /&gt;
{{cmd |apk add fail2ban}}&lt;br /&gt;
Enable the fail2ban service so that it starts at boot:&lt;br /&gt;
{{cmd |rc-update add fail2ban}}&lt;br /&gt;
Start the fail2ban service immediately and create configuration files:&lt;br /&gt;
{{cmd |/etc/init.d/fail2ban start}}&lt;br /&gt;
List services to verify fail2ban is enabled:&lt;br /&gt;
{{cmd | rc-status}}&lt;br /&gt;
== Configuration == &lt;br /&gt;
*Configuration files are located at /etc/fail2ban&lt;br /&gt;
==SSH Daemon== &lt;br /&gt;
*The default jail &amp;quot;ssh&amp;quot; was added in 2015 ( see https://bugs.alpinelinux.org/issues/966 and  [https://git.alpinelinux.org/cgit/aports/commit/?id=d0457a4cbde06be9e6fdf2203fd53b1b05225b98 commit])&lt;br /&gt;
===Alpine new sshd key filter===&lt;br /&gt;
*Out of the box, alpine comes with /etc/fail2ban/filter.d/alpine-sshd.conf, that protects from password failures and additional ddos protection /etc/fail2ban/filter.d/alpine-sshd-ddos.conf&lt;br /&gt;
*But, if you turn off PasswordAuthentication in /etc/ssh/sshd_config, the above filters won&#039;t work&lt;br /&gt;
*There are opinions against the utility of fail2ban: &amp;lt;s&amp;gt;&#039;&#039;Fail2ban is fundamentally a wrong answer to the problem. If you&#039;re taking the time to install such things, you should instead either be turning off password authentication (relying only on keys)&#039;&#039; &amp;lt;/s&amp;gt;&lt;br /&gt;
**but it seems to be useful : &#039;&#039;I&#039;ve used Fail2Ban even with SSH password authentication turned off. It&#039;s still helpful for preventing huge error logs [https://news.ycombinator.com/item?id=8049916  via]&#039;&#039;&lt;br /&gt;
*We can find the following type of logs, reported at https://github.com/fail2ban/fail2ban/issues/1719 and addressed in 0.10 version&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connection reset by 153.99.182.39 port 48966 [preauth]&lt;br /&gt;
Received disconnect from 153.99.182.39 port 21183:11: [preauth]&lt;br /&gt;
Disconnected from 153.99.182.39 port 21183 [preauth]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Their fix is mode=aggressive, but it doesn&#039;t work in alpine&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd[mode=aggressive]&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
*These above logs message corresponds to the following use cases:&lt;br /&gt;
**attempts to login without private key&lt;br /&gt;
**attempts to login with wrong private key&lt;br /&gt;
**attempts to login with wrong passphrase aren&#039;t logged&lt;br /&gt;
*https://serverfault.com/questions/686422/modify-fail2ban-failregex-to-match-failed-public-key-authentications-via-ssh/686436 solution doesn&#039;t work out of the box, so the custom setup for alpine is:&lt;br /&gt;
{{cmd | vi /etc/fail2ban/jail.d/alpine-ssh.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{cmd | vi /etc/fail2ban/filter.d/alpine-sshd-key.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Fail2Ban filter for openssh for Alpine&lt;br /&gt;
#&lt;br /&gt;
# Filtering login attempts with PasswordAuthentication No in sshd_config.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
[INCLUDES]&lt;br /&gt;
&lt;br /&gt;
# Read common prefixes. If any customizations available -- read them from&lt;br /&gt;
# common.local&lt;br /&gt;
before = common.conf&lt;br /&gt;
&lt;br /&gt;
[Definition]&lt;br /&gt;
&lt;br /&gt;
_daemon = sshd&lt;br /&gt;
&lt;br /&gt;
failregex = (Connection closed by|Disconnected from) authenticating user .* &amp;lt;HOST&amp;gt; port \d* \[preauth\]&lt;br /&gt;
&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&lt;br /&gt;
[Init]&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;maxlines&amp;quot; is number of log lines to buffer for multi-line regex searches&lt;br /&gt;
maxlines = 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*/etc/init.d/fail2ban restart&lt;br /&gt;
&lt;br /&gt;
===How to test new filters===&lt;br /&gt;
{{cmd | fail2ban-regex /var/log/messages alpine-sshd-key.conf}}&lt;br /&gt;
===Unban ip===&lt;br /&gt;
{{cmd | fail2ban-client set sshd unbanip BannedIP}}&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fail2ban-client -i&lt;br /&gt;
Fail2Ban v0.10.1 reads log file that contains password failure report&lt;br /&gt;
and bans the corresponding IP addresses using firewall rules.&lt;br /&gt;
&lt;br /&gt;
fail2ban&amp;gt; status sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Different ssh port number===&lt;br /&gt;
You can change the port value to any positive integer in &lt;br /&gt;
via https://serverfault.com/questions/382858/in-fail2ban-how-to-change-the-ssh-port-number&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EuroDomenii</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15483</id>
		<title>Fail2ban</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15483"/>
		<updated>2018-10-11T20:10:26Z</updated>

		<summary type="html">&lt;p&gt;EuroDomenii: /* Alpine new sshd key filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Install == &lt;br /&gt;
This will install fail2ban package. It includes iptables package (see also [[Configure_Networking#Firewalling_with_iptables_and_ip6tables]])&lt;br /&gt;
{{cmd |apk add fail2ban}}&lt;br /&gt;
Enable the fail2ban service so that it starts at boot:&lt;br /&gt;
{{cmd |rc-update add fail2ban}}&lt;br /&gt;
Start the fail2ban service immediately and create configuration files:&lt;br /&gt;
{{cmd |/etc/init.d/fail2ban start}}&lt;br /&gt;
List services to verify fail2ban is enabled:&lt;br /&gt;
{{cmd | rc-status}}&lt;br /&gt;
== Configuration == &lt;br /&gt;
*Configuration files are located at /etc/fail2ban&lt;br /&gt;
==SSH Daemon== &lt;br /&gt;
*The default jail &amp;quot;ssh&amp;quot; was added in 2015 ( see https://bugs.alpinelinux.org/issues/966 and  [https://git.alpinelinux.org/cgit/aports/commit/?id=d0457a4cbde06be9e6fdf2203fd53b1b05225b98 commit])&lt;br /&gt;
===Alpine new sshd key filter===&lt;br /&gt;
*Out of the box, alpine comes with /etc/fail2ban/filter.d/alpine-sshd.conf, that protects from password failures and additional ddos protection /etc/fail2ban/filter.d/alpine-sshd-ddos.conf&lt;br /&gt;
*But, if you turn off PasswordAuthentication in /etc/ssh/sshd_config, the above filters won&#039;t work&lt;br /&gt;
*There are opinions against the utility of fail2ban: &amp;lt;s&amp;gt;&#039;&#039;Fail2ban is fundamentally a wrong answer to the problem. If you&#039;re taking the time to install such things, you should instead either be turning off password authentication (relying only on keys)&#039;&#039; &amp;lt;/s&amp;gt;&lt;br /&gt;
**but it seems to be useful : &#039;&#039;I&#039;ve used Fail2Ban even with SSH password authentication turned off. It&#039;s still helpful for preventing huge error logs [https://news.ycombinator.com/item?id=8049916  via]&#039;&#039;&lt;br /&gt;
*We can find the following type of logs, reported at https://github.com/fail2ban/fail2ban/issues/1719 and addressed in 0.10 version&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connection reset by 153.99.182.39 port 48966 [preauth]&lt;br /&gt;
Received disconnect from 153.99.182.39 port 21183:11: [preauth]&lt;br /&gt;
Disconnected from 153.99.182.39 port 21183 [preauth]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Their fix is mode=aggressive, but it doesn&#039;t work in alpine&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd[mode=aggressive]&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
*These above logs message corresponds to the following use cases:&lt;br /&gt;
**attempts to login without private key&lt;br /&gt;
**attempts to login with wrong private key&lt;br /&gt;
**attempts to login with wrong passphrase aren&#039;t logged&lt;br /&gt;
*https://serverfault.com/questions/686422/modify-fail2ban-failregex-to-match-failed-public-key-authentications-via-ssh/686436 solution doesn&#039;t work out of the box, so the custom setup for alpine is:&lt;br /&gt;
{{cmd | vi /etc/fail2ban/jail.d/alpine-ssh.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{cmd | vi /etc/fail2ban/filter.d/alpine-sshd-key.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Fail2Ban filter for openssh for Alpine&lt;br /&gt;
#&lt;br /&gt;
# Filtering login attempts with PasswordAuthentication No in sshd_config.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
[INCLUDES]&lt;br /&gt;
&lt;br /&gt;
# Read common prefixes. If any customizations available -- read them from&lt;br /&gt;
# common.local&lt;br /&gt;
before = common.conf&lt;br /&gt;
&lt;br /&gt;
[Definition]&lt;br /&gt;
&lt;br /&gt;
_daemon = sshd&lt;br /&gt;
&lt;br /&gt;
failregex = (Connection closed by|Disconnected from) authenticating user .* &amp;lt;HOST&amp;gt; port \d* \[preauth\]&lt;br /&gt;
&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&lt;br /&gt;
[Init]&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;maxlines&amp;quot; is number of log lines to buffer for multi-line regex searches&lt;br /&gt;
maxlines = 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to test new filters===&lt;br /&gt;
{{cmd | fail2ban-regex /var/log/messages alpine-sshd-key.conf}}&lt;br /&gt;
===Unban ip===&lt;br /&gt;
{{cmd | fail2ban-client set sshd unbanip BannedIP}}&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fail2ban-client -i&lt;br /&gt;
Fail2Ban v0.10.1 reads log file that contains password failure report&lt;br /&gt;
and bans the corresponding IP addresses using firewall rules.&lt;br /&gt;
&lt;br /&gt;
fail2ban&amp;gt; status sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Different ssh port number===&lt;br /&gt;
You can change the port value to any positive integer in &lt;br /&gt;
via https://serverfault.com/questions/382858/in-fail2ban-how-to-change-the-ssh-port-number&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EuroDomenii</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15482</id>
		<title>Fail2ban</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15482"/>
		<updated>2018-10-10T03:27:10Z</updated>

		<summary type="html">&lt;p&gt;EuroDomenii: Alpine new sshd key filter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Install == &lt;br /&gt;
This will install fail2ban package. It includes iptables package (see also [[Configure_Networking#Firewalling_with_iptables_and_ip6tables]])&lt;br /&gt;
{{cmd |apk add fail2ban}}&lt;br /&gt;
Enable the fail2ban service so that it starts at boot:&lt;br /&gt;
{{cmd |rc-update add fail2ban}}&lt;br /&gt;
Start the fail2ban service immediately and create configuration files:&lt;br /&gt;
{{cmd |/etc/init.d/fail2ban start}}&lt;br /&gt;
List services to verify fail2ban is enabled:&lt;br /&gt;
{{cmd | rc-status}}&lt;br /&gt;
== Configuration == &lt;br /&gt;
*Configuration files are located at /etc/fail2ban&lt;br /&gt;
==SSH Daemon== &lt;br /&gt;
*The default jail &amp;quot;ssh&amp;quot; was added in 2015 ( see https://bugs.alpinelinux.org/issues/966 and  [https://git.alpinelinux.org/cgit/aports/commit/?id=d0457a4cbde06be9e6fdf2203fd53b1b05225b98 commit])&lt;br /&gt;
===Alpine new sshd key filter===&lt;br /&gt;
*Out of the box, alpine comes with /etc/fail2ban/filter.d/alpine-sshd.conf, that protects from password failures and additional ddos protection /etc/fail2ban/filter.d/alpine-sshd-ddos.conf&lt;br /&gt;
*But, if you turn off PasswordAuthentication in /etc/ssh/sshd_config, the above filters won&#039;t work&lt;br /&gt;
*There are opinions against the utility of fail2ban: &amp;lt;s&amp;gt;&#039;&#039;Fail2ban is fundamentally a wrong answer to the problem. If you&#039;re taking the time to install such things, you should instead either be turning off password authentication (relying only on keys)&#039;&#039; &amp;lt;/s&amp;gt;&lt;br /&gt;
**but it seems to be useful : &#039;&#039;I&#039;ve used Fail2Ban even with SSH password authentication turned off. It&#039;s still helpful for preventing huge error logs [https://news.ycombinator.com/item?id=8049916  via]&#039;&#039;&lt;br /&gt;
*We can find the following type of logs, reported at https://github.com/fail2ban/fail2ban/issues/1719 and addressed in 0.10 version&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Connection reset by 153.99.182.39 port 48966 [preauth]&lt;br /&gt;
Received disconnect from 153.99.182.39 port 21183:11: [preauth]&lt;br /&gt;
Disconnected from 153.99.182.39 port 21183 [preauth]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Their fix is mode=aggressive, but it doesn&#039;t work in alpine&lt;br /&gt;
&amp;lt;s&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd[mode=aggressive]&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/s&amp;gt;&lt;br /&gt;
*These above logs message corresponds to the following use cases:&lt;br /&gt;
**attempts to login without private key&lt;br /&gt;
**attempts to login with wrong private key&lt;br /&gt;
**attempts to login with wrong passphrase aren&#039;t logged&lt;br /&gt;
*https://serverfault.com/questions/686422/modify-fail2ban-failregex-to-match-failed-public-key-authentications-via-ssh/686436 solution doesn&#039;t work out of the box, so the custom setup for alpine is:&lt;br /&gt;
{{cmd | cat /etc/fail2ban/jail.d/alpine-ssh.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = ssh&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{cmd | cat /etc/fail2ban/filter.d/alpine-sshd-key.conf }}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Fail2Ban filter for openssh for Alpine&lt;br /&gt;
#&lt;br /&gt;
# Filtering login attempts with PasswordAuthentication No in sshd_config.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
[INCLUDES]&lt;br /&gt;
&lt;br /&gt;
# Read common prefixes. If any customizations available -- read them from&lt;br /&gt;
# common.local&lt;br /&gt;
before = common.conf&lt;br /&gt;
&lt;br /&gt;
[Definition]&lt;br /&gt;
&lt;br /&gt;
_daemon = sshd&lt;br /&gt;
&lt;br /&gt;
failregex = (Connection closed by|Disconnected from) authenticating user .* &amp;lt;HOST&amp;gt; port \d* \[preauth\]&lt;br /&gt;
&lt;br /&gt;
ignoreregex =&lt;br /&gt;
&lt;br /&gt;
[Init]&lt;br /&gt;
&lt;br /&gt;
# &amp;quot;maxlines&amp;quot; is number of log lines to buffer for multi-line regex searches&lt;br /&gt;
maxlines = 10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to test new filters===&lt;br /&gt;
{{cmd | fail2ban-regex /var/log/messages alpine-sshd-key.conf}}&lt;br /&gt;
===Unban ip===&lt;br /&gt;
{{cmd | fail2ban-client set sshd unbanip BannedIP}}&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fail2ban-client -i&lt;br /&gt;
Fail2Ban v0.10.1 reads log file that contains password failure report&lt;br /&gt;
and bans the corresponding IP addresses using firewall rules.&lt;br /&gt;
&lt;br /&gt;
fail2ban&amp;gt; status sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Different ssh port number===&lt;br /&gt;
You can change the port value to any positive integer in &lt;br /&gt;
via https://serverfault.com/questions/382858/in-fail2ban-how-to-change-the-ssh-port-number&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/fail2ban/jail.d/alpine-ssh.conf&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-ddos]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-ddos&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&lt;br /&gt;
[sshd-key]&lt;br /&gt;
enabled  = true&lt;br /&gt;
filter   = alpine-sshd-key&lt;br /&gt;
port     = YourSSHPortNumber&lt;br /&gt;
logpath  = /var/log/messages&lt;br /&gt;
maxretry = 2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>EuroDomenii</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15481</id>
		<title>Fail2ban</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15481"/>
		<updated>2018-10-09T23:44:36Z</updated>

		<summary type="html">&lt;p&gt;EuroDomenii: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Install == &lt;br /&gt;
*{{cmd |apk add fail2ban}}&lt;br /&gt;
** This will install iptables package also [[Configure_Networking#Firewalling_with_iptables_and_ip6tables]]&lt;/div&gt;</summary>
		<author><name>EuroDomenii</name></author>
	</entry>
	<entry>
		<id>https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15480</id>
		<title>Fail2ban</title>
		<link rel="alternate" type="text/html" href="https://wiki.alpinelinux.org/w/index.php?title=Fail2ban&amp;diff=15480"/>
		<updated>2018-10-09T23:39:04Z</updated>

		<summary type="html">&lt;p&gt;EuroDomenii: Created page with &amp;quot;== Install ==  *apk add fail2ban ** This will install iptables package also Configure_Networking#Firewalling_with_iptables_and_ip6tables&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Install == &lt;br /&gt;
*apk add fail2ban&lt;br /&gt;
** This will install iptables package also [[Configure_Networking#Firewalling_with_iptables_and_ip6tables]]&lt;/div&gt;</summary>
		<author><name>EuroDomenii</name></author>
	</entry>
</feed>