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

相關文章
相關標籤/搜索