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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/648454

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。