安装 fail2ban
 
-  更新系统包索引(以 Ubuntu/Debian 为例): sudo apt update
-  安装 fail2ban:sudo apt install fail2ban
基本配置
-  复制默认配置文件: -  fail2ban的默认配置文件位于/etc/fail2ban/jail.conf。为避免升级软件时覆盖自定义配置,建议将其复制为jail.local:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
 
-  
-  编辑 jail.local文件:-  使用文本编辑器打开该文件进行编辑: sudo nano /etc/fail2ban/jail.local
-  可以在此文件中进行如下配置: - 全局设置:如 ignoreip(忽略特定 IP 不被封禁)、bantime(封禁时间)、findtime(触发封禁的时间窗口)和maxretry(最大重试次数)。
- 启用或禁用特定的 jails:根据需要启用或配置特定服务的监控,如 SSH、Nginx。
 
- 全局设置:如 
 
-  
-  配置特定服务的监控规则(以 Nginx 为例): -  创建过滤器文件: sudo nano /etc/fail2ban/filter.d/nginx-suspicious.conf
-  添加过滤规则: [Definition] failregex = ^<HOST> -.*"(GET|POST|HEAD).*(/etc/passwd|/etc/shadow|/root|/wp-admin|/wp-login.php|/phpinfo.php|/cgi-bin|/config|\.git|\.svn|\.env|\?cmd=ls|../../../../etc/passwd|\?file=../../../../etc/passwd|; DROP TABLE users|\?page=php://input|/phpMyAdmin|/pma|/dbadmin|/mysql-admin|/sqladmin|/server-status|/shell.php|/cmd.php|/backup.zip|/backup.sql|/xmlrpc.php).*"$ ignoreregex =
-  配置 jail 设置: sudo nano /etc/fail2ban/jail.local[nginx-suspicious] enabled = true port = http,https filter = nginx-suspicious action = iptables[name=nginx-suspicious, port=http, protocol=tcp] logpath = /var/log/nginx/access.log maxretry = 5 findtime = 600 bantime = 3600 [DEFAULT] ignoreip = 127.0.0.1/8 XXXXXX
 
-  
XXXXXX 这个可以是放在白名单中的IP
管理操作
-  启动、停止和重启 fail2ban:-  启动服务: sudo systemctl start fail2ban
-  停止服务: sudo systemctl stop fail2ban
-  重启服务: sudo systemctl restart fail2ban
 
-  
-  检查 fail2ban状态和被封禁的 IP 列表:-  检查服务状态: sudo fail2ban-client status
-  查看特定 jail 的状态: sudo fail2ban-client status nginx-suspicious
 
-  
-  处理误封 IP 地址: -  解封 IP 地址: sudo fail2ban-client set nginx-suspicious unbanip XXX.XX.XX.XXX
-  添加 IP 地址到白名单,防止将来误封: -  编辑 jail.local,在[DEFAULT]部分添加或修改ignoreip选项:[DEFAULT] ignoreip = 127.0.0.1/8 XXXXXX
 
-  
 
-  
日志监控与维护
-  查看 fail2ban的日志:sudo less /var/log/fail2ban.log
-  审查 Nginx 访问日志以确定导致封禁的请求: sudo less /var/log/nginx/access.log