ubuntu部署fail2ban并配置防止暴力破解

在Ubuntu系统中部署Fail2ban并配置防止SSH暴力破解的步骤如下:

  1. 安装Fail2ban
    打开终端并通过以下命令安装Fail2ban:

    sudo apt update
    sudo apt install fail2ban
    
  2. 配置Fail2ban
    Fail2ban的配置文件通常位于 /etc/fail2ban/ 目录下,主要的自定义配置应放在 jail.local 文件中。

    这个文件会覆盖默认的 jail.conf 中的设置。

    • 如果 jail.local 不存在,首先创建它并确保它不会被覆盖:

      sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
      
    • 使用文本编辑器打开 jail.local 并进行必要的配置修改以防止SSH暴力破解,例如:

      sudo vim /etc/fail2ban/jail.local
      

    [sshd] 部分(或新建一个针对SSH的配置段),你可以调整如下的参数:

    • enabled: 确保此项设为 true 来启用对SSH服务的防护。
    • port: 默认应该是22,即SSH服务端口。
    • filter: 应该已经指向了用于分析SSH日志的过滤器,通常是 sshd
    • logpath: 设置SSH日志文件路径,通常为 /var/log/auth.log/var/log/secure
    • maxretry: 设置允许的最大失败登录尝试次数,默认可能为6次,可以根据需要减少。
    • findtime: 在指定的时间内达到最大尝试次数才会触发禁止,例如 findtime = 10m 表示10分钟内。
    • bantime: IP被禁止访问的持续时间,例如 bantime = 24h 将阻止IP地址24小时。

    示例配置片段:

    [sshd]
    enabled  = true
    port     = ssh
    filter   = sshd
    logpath = %(sshd_log)s
    maxretry = 5
    findtime = 10m
    bantime  = 24h
    
  3. 启动并设置开机自动启动Fail2ban

    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban
    
  4. 测试和验证配置
    检查Fail2ban是否正常运行,并查看已屏蔽的IP地址列表(如果有的话):

    sudo fail2ban-client status sshd
    
  5. 安全优化
    为了进一步增强安全性,建议将SSH服务器配置成只允许通过密钥认证登录,禁用密码登录。这可以在 /etc/ssh/sshd_config 文件中进行配置。

请根据实际情况检查和调整上述步骤与配置内容。

补充

fail2ban-client的相关用法

fail2ban-client 是 fail2ban 工具的命令行客户端,用于与运行中的 fail2ban 服务进行交互。以下是一些常用的 fail2ban-client 命令和用法:

  1. 查看帮助信息

    fail2ban-client -h
    

    或者

    fail2ban-client help
    
  2. 查看所有可用jail的状态

    fail2ban-client status
    

    如果只想查看特定jail(例如sshd)的状态,则可以指定jail名称:

    fail2ban-client status sshd
    
  3. 添加或移除IP地址黑名单

    • 封禁一个IP地址(通常不需要手动执行,因为fail2ban会根据日志自动执行):
      fail2ban-client set <JAIL_NAME> banip <IP_ADDRESS>
      
    • 解封一个IP地址:
      fail2ban-client set <JAIL_NAME> unbanip <IP_ADDRESS>
      
  4. 获取配置信息

    fail2ban-client get [section] [option]
    

    例如,获取ssh jail的最大重试次数:

    fail2ban-client get ssh maxretry
    
  5. 重启某个jail

    fail2ban-client reload <JAIL_NAME>
    
  6. 重启整个fail2ban服务

    sudo systemctl restart fail2ban
    

    或者使用 fail2ban-client 的旧版本命令:

    fail2ban-client reload
    
  7. 发送信号给fail2ban服务

    fail2ban-client signal [SIGNAL_NAME]
    

    其中 SIGNAL_NAME 可以是如 'reload', 'start', 'stop', 'status' 等。

  8. 检查过滤器是否能正确匹配日志

    fail2ban-regex <LOG_FILE_PATH> <FILTER_FILE_PATH>
    

    注意:fail2ban-regex 并不是 fail2ban-client 的一部分,但它是一个有用的工具,用来测试过滤规则是否有效。

请根据实际需要以及系统安装的具体版本来调整这些命令。

posted @   厚礼蝎  阅读(1943)  评论(0编辑  收藏  举报
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示