咱們須要在咱們網站中防止密碼的暴利破解。Fail2Ban 是一個 Python 的應用來查看日誌文件,使用的是正則表達式,同時還能夠與Shorewall (或者 iptables)直接工做來來啓用臨時黑名單。當必定的密碼破解規則被使用後,就可使用上面的方法了。咱們能夠用這個來限制給定的 URL 來訪問 Confluence 的登陸界面的次數。php
本列表是安裝的核心部分:python
/etc/fail2ban
.conf
文件(fail2ban.conf
和 jail.conf)。請不要對這個進行修改,若是你進行修改的話,將會致使升級的時候困難。
.conf
文件中的配置進行合併。這個文件只會對你須要的修改部分進行修改,可以讓你的維護更加容易和簡單。filter.d
中進行定義 — 在這裏這裏,你能夠定義正則表達式,每一個正則表達式進入本身的文件。action.d
文件中定義 — 你可能不須要添加一個,可是你知道在那裏進行定義的可以幫你更好的找到問題。jail.conf
and jail.local
中定義的。不要忘記了爲每個都啓動設置 — 這個有可能致使錯誤的啓用,正確的卻沒有啓用。/etc/init.d/fail2ban {start|stop|status
} 來進行進程相關的操做fail2ban-client -d
來導出當前的配置到 STDOUT。在你對問題進行查看的時候,這個就很是有幫助。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
下面僅僅被用來做爲示例,你須要根據你的站點調整。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