apt install fail2ban python3-inotify
sudo vi /etc/fail2ban/filter.d/nginx-spammers.conf
sudo vi /etc/fail2ban/jail.local
apt install fail2ban python3-inotify
sudo vi /etc/fail2ban/filter.d/nginx-spammers.conf
sudo vi /etc/fail2ban/jail.local
| [DEFAULT] | |
| [nginx] | |
| enabled = true | |
| maxretry = 3 | |
| findtime = 1d | |
| bantime = 2d | |
| port = http,https | |
| backend = pyinotify | |
| logpath = /var/log/nginx/access.log | |
| filter = nginx-spammers |
| # Fail2Ban filter to match nginx requests for selected URLs that don't exist | |
| # | |
| [INCLUDES] | |
| [Definition] | |
| sqladmin = \/phpmyadmin|\/sqladmin|\/mysqlmanager|\-phpmyadmin|\/sql-admin | |
| exploits = mstshash|\/invokefunction|\/login|\/wp-login\.php|eval-stdin\.php|\/cgi-bin\/kerbynet|XDEBUG_SESSION_START|phpunit|\/shell | |
| software = \/_ignition|\/phpunit|\/jenkins|\/console\/|\/wp-file-manager|db\.php|HNAP1|\/boaform\/|\/exporttool\/|\/mifs | |
| exposed = \/\.git|\/\.vscode|\/\.env|\/\.ftpconfig|\/deployment-config\.json|wlwmanifest\.xml|\/ecp\/|\/\.aws|\/owa\/|\/GponForm\/|\/\.git\/config|\/\.aws\/credentials | |
| failregex = ^[^ ]+ <HOST> - - \[.*\] ".*(?i:%(sqladmin)s|%(exploits)s|%(software)s|%(exposed)s).+" (404|301) \d+ "[^"]+" "[^"]+" | |
| ignoreregex = | |
| datepattern = %%d/%%b/%%Y:%%H:%%M:%%S %%z | |
| journalmatch = _SYSTEMD_UNIT=nginx.service + _COMM=nginx | |
| # DEV Notes: | |
| # Author: Timendum |