[AI] [安全措施] 定制化的Fail2ban配置文件

在Ubuntu Linux系统中,限制IP多次登录失败的核心方案是使用Fail2ban工具,它能监控系统日志,当检测到某个IP多次登录失败时,自动通过防火墙规则封禁该IP,有效防范暴力破解攻击。以下是详细的配置步骤和优化方案:

一、安装Fail2ban

通过apt包管理器快速安装:

# 更新软件包列表
sudo apt update

# 安装Fail2ban
sudo apt install fail2ban -y

安装完成后,启动并设置开机自启:

# 启动服务
sudo systemctl start fail2ban

# 设置开机自启
sudo systemctl enable fail2ban

# 查看服务状态
sudo systemctl status fail2ban

二、核心配置(以SSH登录为例)

Fail2ban的配置文件位于/etc/fail2ban/,主要配置文件为jail.conf,但官方推荐创建jail.local文件进行自定义配置,避免系统更新时覆盖配置。

  1. 创建本地配置文件

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    
  2. 编辑配置文件
    使用vim打开配置文件:

    sudo vim /etc/fail2ban/jail.local
    
  3. 关键参数配置
    [DEFAULT]部分设置全局规则,适用于所有服务:

    # 封禁时长(秒),此处设置为1小时
    bantime  = 3600
    # 检测时长(秒),此处设置为10分钟内
    findtime  = 600
    # 最大失败次数,超过则封禁
    maxretry = 3
    # 防火墙类型,Ubuntu默认使用ufw
    banaction = ufw
    

    [sshd]部分单独配置SSH服务的规则(若不存在可手动添加):

    [sshd]
    # 启用该规则
    enabled = true
    # 日志文件路径
    logpath = %(sshd_log)s
    # 匹配日志的过滤规则
    filter = sshd
    # 继承全局参数,也可单独设置
    bantime  = 3600
    findtime  = 600
    maxretry = 3
    
  4. 重启服务使配置生效

    sudo systemctl restart fail2ban
    

三、其他常用操作

  1. 查看被封禁的IP

    sudo fail2ban-client status sshd
    
  2. 手动解除某个IP的封禁

    sudo fail2ban-client set sshd unbanip 192.168.1.100
    
  3. 手动封禁某个IP

    sudo fail2ban-client set sshd banip 192.168.1.100
    

四、扩展:针对其他服务的配置

Fail2ban支持对多种服务(如FTP、HTTP、MySQL等)进行登录限制,以MySQL为例:

  1. 创建过滤规则文件

    sudo vim /etc/fail2ban/filter.d/mysql.conf
    
  2. 添加MySQL登录失败的日志匹配规则

    [Definition]
    failregex = ^\s*\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+Z\s+\d+\s+\[Note\]\s+Access denied for user '\w+'@'<HOST>' \(using password: (YES|NO)\)$
    ignoreregex =
    
  3. 在jail.local中添加MySQL服务配置

    [mysql]
    enabled = true
    logpath = /var/log/mysql/error.log
    filter = mysql
    bantime = 3600
    findtime = 600
    maxretry = 3
    
  4. 重启Fail2ban服务

    sudo systemctl restart fail2ban
    

五、安全优化建议

  1. 修改SSH默认端口:将SSH默认端口22修改为其他端口,减少被扫描的概率。
  2. 禁用密码登录:使用SSH密钥登录,彻底避免密码暴力破解。
  3. 设置白名单:在jail.local[DEFAULT]部分添加ignoreip = 192.168.1.0/24 127.0.0.1,信任特定IP段,避免误封禁。
  4. 定期更新系统:保持系统和软件包为最新版本,修复安全漏洞。

我可以帮你生成一份定制化的Fail2ban配置文件,包含SSH、MySQL等常用服务的优化规则,需要我现在为你创建吗?

posted on 2025-12-26 11:45  风惊庭前叶  阅读(0)  评论(0)    收藏  举报