Configuration files for fail2ban
commit
f6d427043a
@ -0,0 +1,16 @@
|
||||
# Fail2Ban filter to match bad requests to nginx
|
||||
#
|
||||
|
||||
[Definition]
|
||||
|
||||
# The request often doesn't contain a method, only some encoded garbage
|
||||
# This will also match requests that are entirely empty
|
||||
failregex = ^<HOST> - \S+ \[\] "[^"]*" 400
|
||||
|
||||
datepattern = {^LN-BEG}%%ExY(?P<_sep>[-/.])%%m(?P=_sep)%%d[T ]%%H:%%M:%%S(?:[.,]%%f)?(?:\s*%%z)?
|
||||
^[^\[]*\[({DATE})
|
||||
{^LN-BEG}
|
||||
|
||||
journalmatch = _SYSTEMD_UNIT=nginx.service + _COMM=nginx
|
||||
|
||||
# Author: Jan Przybylak
|
||||
@ -0,0 +1,7 @@
|
||||
[Definition]
|
||||
# IMPORTANTE: con nginx datepattern, el timestamp se representa como [] en los regex
|
||||
# Ejemplo interno esperado:
|
||||
# 200.55.173.164 - - [] "POST /aup/login.html?... HTTP/1.1" 200 20364 "-" "Mozilla/5.0"
|
||||
|
||||
failregex = ^<HOST>\s+-\s+\S+\s+\[\]\s+"(?:GET|POST|HEAD|OPTIONS|PUT|DELETE|PATCH)\s+[^"]*\?[^"]*(?:allow_url_include|auto_prepend_file|php://input|EXEC|owasp\.org|/etc/passwd)[^"]*"\s+\d{3}\s+\d+\s+"[^"]*"\s+"[^"]*"
|
||||
ignoreregex =
|
||||
@ -0,0 +1,91 @@
|
||||
[DEFAULT]
|
||||
bantime.increment = true
|
||||
bantime.rndtime = 30m
|
||||
bantime.maxtime = 60d
|
||||
bantime.factor = 2
|
||||
bantime.formula = ban.Time * math.exp(float(ban.Count+1)*banFactor)/math.exp(1*banFactor)
|
||||
bantime.overalljails = true
|
||||
#banaction = iptables-multiport
|
||||
banaction =ufw
|
||||
action = %(action_)s
|
||||
#chain = input
|
||||
chain = INPUT
|
||||
|
||||
maxretry = 3
|
||||
bantime = 3h
|
||||
findtime = 10m
|
||||
ignoreip = 127.0.0.1 173.212.248.254 217.160.175.146 38.242.192.137
|
||||
|
||||
|
||||
|
||||
|
||||
destemail = jgv1404@gmail.com danielhg1285@gmail.com
|
||||
sender = fail2ban@ctcon.appollo.cloud
|
||||
sendername = Fail2Ban Nginx Scanner Alert
|
||||
mta = sendmail
|
||||
|
||||
[recidive]
|
||||
enabled = true
|
||||
bantime = 9w
|
||||
findtime = 3d
|
||||
backend = systemd
|
||||
|
||||
[sshd]
|
||||
enabled = true
|
||||
port = 9022
|
||||
banaction = iptables-multiport
|
||||
logpath = /var/log/auth.log
|
||||
filter = sshd
|
||||
backend = systemd
|
||||
|
||||
[nginx-botsearch]
|
||||
enabled = true
|
||||
filter = nginx-botsearch
|
||||
logpath = /var/log/nginx/access.log
|
||||
port = http,https
|
||||
maxretry = 6
|
||||
findtime = 120
|
||||
bantime = 1h
|
||||
backend = polling
|
||||
|
||||
|
||||
[nginx-limit-req]
|
||||
enabled = true
|
||||
filter = nginx-limit-req
|
||||
logpath = /var/log/nginx/error.log
|
||||
port = http,https
|
||||
maxretry = 5
|
||||
findtime = 60
|
||||
bantime = 30m
|
||||
backend = polling
|
||||
|
||||
[nginx-bad-request]
|
||||
enabled = true
|
||||
filter = nginx-bad-request
|
||||
logpath = /var/log/nginx/access.log
|
||||
port = http,https
|
||||
maxretry = 3
|
||||
findtime = 300
|
||||
bantime = 2h
|
||||
backend = polling
|
||||
|
||||
[nginx-http-auth]
|
||||
enabled = false
|
||||
filter = nginx-http-auth
|
||||
logpath = /var/log/nginx/error.log
|
||||
port = http,https
|
||||
maxretry = 5
|
||||
findtime = 600
|
||||
bantime = 1h
|
||||
backend = polling
|
||||
|
||||
[nginx-scan-params]
|
||||
enabled = true
|
||||
filter = nginx-scan-params
|
||||
logpath = /var/log/nginx/access.log
|
||||
port = http,https
|
||||
maxretry = 2
|
||||
findtime = 120
|
||||
bantime = 6h
|
||||
backend = polling
|
||||
action = %(action_mwl)s
|
||||
Loading…
Reference in New Issue