zoukankan      html  css  js  c++  java
  • Confluence 6 使用 Fail2Ban 来限制登录尝试

    什么是 Fail2Ban?

    我们需要在我们网站中防止密码的暴利破解。Fail2Ban 是一个 Python 的应用来查看日志文件,使用的是正则表达式,同时还可以与Shorewall (或者 iptables)直接工作来来启用临时黑名单。当一定的密码破解规则被使用后,就可以使用上面的方法了。我们可以用这个来限制给定的 URL 来访问 Confluence 的登录界面的次数。

    安装要求

    • 需要 Python 2.4 或者更新的版本。
    • 需要指定下面的特定文档,这意味着你的 Apache 实例需要登录你的 Confluence 才能访问一个已知的日志文件(logfile)。你需要按照下面的要求正确调整配置

    如何设置

    本列表是安装的核心部分:

    • 针对 RHEL 我们有 RPM 是可以按照的,请进入下载页面,同时你还可以下载源代码收手动进行安装。
    • 配置文件在 /etc/fail2ban
    • 在原始状态下,默认的配置文件在 .conf 文件(fail2ban.conf 和 jail.conf)。请不要对这个进行修改,如果你进行修改的话,将会导致升级的时候困难。
    • 在 .local 文件中对配置进行修改,这个将会与 .conf 文件中的配置进行合并。这个文件只会对你需要的修改部分进行修改,能够让你的维护更加容易和简单。
    • 过滤器(Filters)在 filter.d  中进行定义 — 在这里这里,你可以定义正则表达式,每个正则表达式进入自己的文件。
    • Actions 在 action.d 文件中定义 — 你可能不需要添加一个,但是你知道在那里进行定义的能够帮你更好的找到问题。
    • "jails" 是配置单元,这个配置单元用来指定一个进行检查的正则表达式,当线程达到数量后,更多的 actions 将会被启动,这个是在线程中配置的(例如,在 60 秒钟,超过 3 次的满足正则表达式条件的地址,将会被禁止访问 600 秒)
    • Jails 是在 jail.conf and jail.local 中定义的。不要忘记了为每一个都启动设置 — 这个有可能导致错误的启用,正确的却没有启用。

    运行 Fail2Ban

    • 使用 /etc/init.d/fail2ban {start|stop|status} 来进行进程相关的操作
    • 使用 fail2ban-client -d 来导出当前的配置到 STDOUT。在你对问题进行查看的时候,这个就非常有帮助。
    • 请注意 CPU 的使用。尽管可能你使用了非常简单的正则表达式,也有可能会导致 CPU 的使用飙升,如果你的站点的访问量比较大的话。
    • 日志可以日志到 syslog 或者一个文件,你可以选择哪种方式更加适合你。

    通用配置

    jail.local

    # The DEFAULT allows a global definition of the options. They can be override
    # in each jail afterwards.
    
    [DEFAULT]
    
    # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
    # ban a host which matches an address in this list. Several addresses can be
    # defined using space separator.
    # ignoreip = <space-separated list of IPs>
    
    # "bantime" is the number of seconds that a host is banned.
    bantime  = 600
    
    # A host is banned if it has generated "maxretry" during the last "findtime"
    # seconds.
    findtime  = 60
    
    # "maxretry" is the number of failures before a host get banned.
    maxretry = 3
    
    
    [ssh-iptables]
    
    enabled  = false
    
    
    [apache-shorewall]
    
    enabled  = true
    filter   = cac-login
    action   = shorewall
    logpath = /var/log/httpd/confluence-access.log
    bantime = 600
    maxretry = 3
    findtime = 60
    backend = polling
    

    Confluence 的配置

    下面仅仅被用来作为示例,你需要根据你的站点调整。

    filter.d/confluence-login.conf

    [Definition]
    
    failregex = <HOST>.*"GET /login.action
    
    ignoreregex =

    https://www.cwiki.us/display/CONF6ZH/Using+Fail2Ban+to+limit+login+attempts

  • 相关阅读:
    Spring Boot -- Spring Boot之@Async异步调用、Mybatis、事务管理等
    Spring Boot -- 认识Spring Boot
    大数据 -- Cloudera Manager(简称CM)+CDH构建大数据平台
    大数据 -- kafka学习笔记:知识点整理(部分转载)
    大数据 -- Hadoop集群环境搭建
    大数据 -- zookeeper和kafka集群环境搭建
    Java基础 -- 数组
    sbt spark2.3.1 idea打包Caused by: java.lang.ClassNotFoundException: scala.Product$class
    windows 安装python pip Could not install packages due to anEnvironmentError: [WinError 5] 拒绝访问
    博客园编辑数学公式的方法
  • 原文地址:https://www.cnblogs.com/huyuchengus/p/9478829.html
Copyright © 2011-2022 走看看