sudo apt-get install fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd
fail2ban.org help.ubuntu digitalocean wiki.arch
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[recidive]
enabled = true
filter = recidive
logpath = /var/log/fail2ban.log
action = iptables-allports[name=recidive]
sendmail-whois-lines[name=recidive, logpath=/var/log/fail2ban.log]
bantime = 1814800 ; 3 week
findtime = 259200 ; 2 day
maxretry = 5
sudo nano /etc/fail2ban/fail2ban.conf
dbpurgeage = 886400
sudo service fail2ban restart
sudo fail2ban-client status
destemail = your_email@domain.com
action = %(action_)s
action = %(action_mwl)s
sudo fail2ban-client reload
sudo nano /etc/fail2ban/jail.local
[sshd] port = 40 logpath = %(sshd_log)s
banaction = iptables-multiport
banaction = iptables-allports
sudo fail2ban-client reload
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 54000
findtime = 600
maxretry = 3
(sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local)
sudo nano /etc/fail2ban/jail.local
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
sudo service fail2ban restart
sudo fail2ban-client status
digitalocean snippets easyengine
(sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local)
sudo nano /etc/fail2ban/jail.local
[nginx-noscript]
enabled = true
port = http,https
filter = nginx-noscript
logpath = /var/log/nginx/access.log
maxretry = 6
[nginx-badbots]
enabled = true
port = http,https
filter = nginx-badbots
logpath = /var/log/nginx/access.log
maxretry = 2
[nginx-nohome]
enabled = true
port = http,https
filter = nginx-nohome
logpath = /var/log/nginx/access.log
maxretry = 2
[nginx-noproxy]
enabled = true
port = http,https
filter = nginx-noproxy
logpath = /var/log/nginx/access.log
maxretry = 2
cd /etc/fail2ban/filter.d
sudo nano /etc/fail2ban/filter.d/nginx-http-auth.conf
[Definition] failregex = ^ \[error\] \d+#\d+: \*\d+ user "\S+":? (password mismatch|was not found in ".*"), client:, server: \S+, request: "\S+ \S+ HTTP/\d+\.\d+", host: "\S+"\s*$ ^ \[error\] \d+#\d+: \*\d+ no user/password was provided for basic authentication, client: , server: \S+, request: "\S+ \S+ HTTP/\d+\.\d+", host: "\S+"\s*$ ignoreregex =
sudo cp /etc/fail2ban/filter.d/apache-badbots.conf /etc/fail2ban/filter.d/nginx-badbots.conf
sudo nano /etc/fail2ban/filter.d/nginx-noscript.conf
[Definition]
failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi)
ignoreregex =
sudo nano /etc/fail2ban/filter.d/nginx-nohome.conf
[Definition]
failregex = ^<HOST> -.*GET .*/~.*
ignoreregex =
sudo nano /etc/fail2ban/filter.d/nginx-noproxy.conf
[Definition]
failregex = ^<HOST> -.*GET http.*
ignoreregex =
sudo service fail2ban restart
sudo fail2ban-client status
sudo iptables -S