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
andjail.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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
小故事详解负载均衡技术的实现:从tomcat到Nginx
什么是负载均衡? 通俗一点讲,就是在高并发、大数据环境下给服务器减压的技术。负载均衡是任何一个有一定规模的互联网企业都会考虑的问题,负载方式很多,有依靠硬件实现的,也有依靠软件实现负载的。 今天来聊聊使用软件来负载的方式。 你可能听过各自负载的方式,比如常见的nginx,dubbo,springcloud等等技术框架都能实现负载,作为软件大牛的你有没有考虑过这些负载方式的区别呢?下面小源就来假想个案例来谈谈常用的负载,我想对你一定会有帮助。 从一个tomcat谈起 在很久很久以前,小源成立了自己的公司,并做了一个购物网站-《小源购物网》,刚开始架构非常简单,传统的java开发框架,一个tomcat容器,经过1个月的没日没夜的编码,搞定,上线。 1年后,项目没想到火了,每天都有大量的人来购买娃娃、衣服、杯子等等。突然发现一个tomcat搞不定,怎么办?两个tomcat呗! 那么问题来了,两个tomcat没问题,服务器也整几台,但是我域名只有一个啊,怎么办? Nginx登场 Nginx登场,通过一棒子程序猿的倒腾,在项目中引入nginx就能解决并发问题了,其中的研究过程也并不简单,sess...
- 下一篇
C# 不能用于文件名的字符
原文: C# 不能用于文件名的字符 在 Windows 有一些字符是不能作为文件名,尝试重命名一个文件,输入/ 就可以看到windows 提示的不能作为文件名的字符 那么具体是包括哪些符号不能作为文件名? Tilde (~) Number sign (#) Percent (%) Ampersand (&) Asterisk (*) Braces ({ }) Backslash (\) Colon (:) Angle brackets (< >) Question mark (?) Slash (/) Plus sign (+) Pipe (|) Quotation mark (") 上面这些字符不能用来文件名和文件夹名 而且在 windows 的要求,文件是需要有文件名的,虽然你也可以创建.file这样的文件,但是用户是难以自己输入这样的文件名。 之外还有一些文件名是保留,不能创建这样的文件名 CON, PRN, AUX, CLOCK$, NUL COM0, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 ...
相关文章
文章评论
共有0条评论来说两句吧...