• 首页
  • 归档
  • 关于
  • 搜索
  • 夜间模式
    ©2026  望时代 Theme by OneBlog

    望时代

    搜索
    标签
    # 教程 # Linux # 脚本 # AI # 影音 # 游戏 # 随笔 # 科技 # 认知
  • 首页>
  • >
  • 正文
  • 【教程】配置Fail2Ban来阻止恶意登录

    2026年06月26日 2 阅读 0 评论 4150 字

    【教程】配置Fail2Ban来阻止恶意登录 __2023年7月29日 __3条评论 __300次阅读 __0人点赞 __Tao_Qi 系统要求:

    • Python 版本 >= 3.5 或者 PyPy3

    [code] python3 --version

        pypy3 --version
        

    [/code]

    • python-setuptools 和 python-distutils(或 python3-setuptools) 在 Python 解释器中尝试导入这两个模块来检查是否安装:

    [code] import setuptools

        import distutils
        

    [/code]

    未报错即证明安装成功 安装方式:
    [code] sudo apt-get install python3-setuptools python3-distutils #Debian or Ubuntu

        sudo yum install python3-setuptools  # CentOS or RHEL
        

    [/code]

    (注:一般情况下,在 CentOS 或 RHEL 系统中,distutils 通常已经在安装 Python 的时候自动安装了)

    • (可选)pyinotify >= 0.8.3,可能需要:

      • Linux 版本 >= 2.6.13
    • (可选)systemd >= 204 并与 python 绑定:

      • python-systemd 包
    • (可选)dnspython

    安装流程:

    1. 下载源代码:

      • 你可以直接下载 tar 文件,然后解压:

    [code] tar xvfj fail2ban-master.tar.bz2

           cd fail2ban-master
           

    [/code]

     * 或者你可以从 GitHub 克隆源代码:

    [code] git clone https://github.com/fail2ban/fail2ban.git

           cd fail2ban
           

    [/code]

    1. 安装: 在下载源代码的目录下,执行以下命令进行安装:

    [code] sudo python setup.py install

    [/code]

    这会将 Fail2Ban 安装到 python 的库目录中,将可执行脚本放置到 /usr/bin,将配置文件放置到 /etc/fail2ban。

    1. 接下来,可以通过以下命令来检查 Fail2Ban 是否正确安装:

    [code] fail2ban-client -h

    [/code]

    可以通过以下命令来查看安装的 Fail2Ban 的版本:
    [code] fail2ban-client version

    [/code]

    1. 接下来,将 fail2ban 设置为自动启动服务,将适合你的 Linux 发行版的脚本从 files 目录复制到 /etc/init.d。 例如,在 Debian 系统中:

    [code] cp files/debian-initd /etc/init.d/fail2ban

         update-rc.d fail2ban defaults
         service fail2ban start
         

    [/code]

    1. 接下来即可通过fail2ban-client -h来查看具体的配置过程 举例:配置Fail2Ban使得对10分钟内登录失败次数达到3次的IP进行永久封锁

      1. 创建 jail。这里将 jail 命名为 myjail,并使用 polling 作为后端:

    [code] fail2ban-client add myjail polling

    [/code]

     2. 设置 jail 的日志路径。这里将 `/var/log/auth.log` 设置为要监视的日志文件:

    [code] fail2ban-client set myjail addlogpath /var/log/auth.log

    [/code]

     3. 添加失败正则表达式。这个表达式将用于匹配登录失败的日志条目。具体的表达式需要根据实际日志格式进行修改:

    [code] fail2ban-client set myjail addfailregex '^Failed password for .* from '

    [/code]

     4. 设置封禁时间。这里设置 `bantime` 为 `-1`,表示一旦 IP 被封禁,该封禁将永不过期:

    [code] fail2ban-client set myjail bantime -1

    [/code]

     5. 设置失败次数。这里设置 `maxretry` 为 `3`,表示如果一个 IP 地址在 `findtime` 时间内登录失败3次,那么该 IP 地址将被封禁:

    [code] fail2ban-client set myjail maxretry 3

    [/code]

     6. 设置查找时间。这里设置 `findtime` 为 `600`,表示如果一个 IP 地址在过去的10分钟(600秒)内登录失败次数达到 `maxretry`,也就是3次,那么该 IP 地址将被封禁:

    [code] fail2ban-client set myjail findtime 600

    [/code]

     7. 最后,启动 jail:

    [code] fail2ban-client start myjail

    [/code]

    完成以上步骤后,Fail2Ban 将开始监视 /var/log/auth.log 文件,如果在10分钟内有任何 IP 地址登录失败3次,那么该 IP 地址将被永久封禁。

    用技术帖吸引你们进来,在最后我来打个广告
    第一届鸡术大赛正式开幕,欢迎参与 :https://www.nodeseek.com/post-16082-1
    目前报名人数:0/16 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议

    1. misakano说道: 2023年7月29日 上午11:00
    2. Testcharon说道: 2023年7月29日 上午11:01
    3. 114514说道: 2023年7月29日 上午11:02

    发表回复 取消回复电子邮件地址不会被公开。必填项已用 标注 __ __

    本文著作权归作者 [ doudoudoubao ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    AI教程
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.003 s
    Theme by OneBlog V3.7.1
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。