Confluence 6 使用 Fail2Ban 来限制登陆尝试

什么是 Fail2Ban?

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

安装要求

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

如何设置

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

  • 针对 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 的配置

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

filter.d/confluence-login.confapache

[Definition]

failregex = <HOST>.*"GET /login.action

ignoreregex =

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

相关文章
相关标签/搜索