動作

Fail2Ban

出自 Itsmw

Fail2Ban 擋掉亂猜密碼者

簡介

 在網路上會有很多網路工具程式,會以不同的密碼組合,不斷的「猜測」主機上各種網路服務密碼,例如:信件、vsFTPd、SSH 等。若被猜中就會產生各種危害。Fail2Ban 這套軟體,就是為阻擋這類攻擊而生。它會去讀取各網路服務套件的 log 檔中,抓出登入失敗的相關訊息後,自動把一直「猜測」失敗的來源做一暫時性的阻擋性動作,以防止密碼被猜中的風險。而且因為只是短暫,所以若是因為真的忘了密碼,手誤而被中止的使用者,會可以在設定的時間後再次登入。

 Fail2Ban 在偵測到惡意的猜測行為時,預設會在 iptables 動態加上專屬的 fail2ban 鏈來做阻擋。換句話說,就是借助 iptables 的力量,新增 fail2ban 專屬的規則列來處理。比較可惜的是,截至本文撰寫日為止的版本(0.8.7.x)仍尚未支援 IPv6,希望未來的版本可以實現此一功能。不過令人高興,fail2ban 組織已經在著手處理此一需求,詳見以下文件:
http://sourceforge.net/tracker/?func=detail&atid=689047&aid=3500617&group_id=121032



安裝暨設定原理

Ubuntu / OB2D sqz 安裝

  • 切換成 root 身份
    user@server:~$ sudo -i
  • 更新套件清單
    root@server:~# apt-get update
  • 安裝
    root@server:~# apt-get install fail2ban



服務啟動管理

  • fail2ban 在 ubuntu 12.04 仍受 rcconf 管控,所以伴隨開機啟動,直接以 rcconf 指令即可。
  • 手動開關:root@mail:~# service fail2ban start|stop
  • 手動開關的時機:每次修改完設定值,一定要重新啟動本服務,以套用新的規則列。



狀態檢查

  • 用途:用於檢查重新啟動 fail2ban 後,是否有成功啟用新新規則列。
  • 指令一:用 fail2ban-client 查詢,可以知道目前運作中的監控項目
    root@mail:~# fail2ban-client status
Status
|- Number of jail:	4
`- Jail list:		vsftpd, openwebmail-auth, sasl, dovecot
  • 指令二:用 iptables 檢查,除了原本的防火牆規則列外,還額外可以看到 fail2ban 的自訂規則
    root@mail:~# iptables -nL
Chain fail2ban-dovecot (1 references)
target     prot opt source               destination         
DROP       all  --  222.255.29.49        0.0.0.0/0           
RETURN     all  --  0.0.0.0/0            0.0.0.0/0           

Chain fail2ban-sasl (0 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0           

Chain fail2ban-vsftpd (1 references)
target     prot opt source               destination         
RETURN     all  --  0.0.0.0/0            0.0.0.0/0 



設定結構簡介

  • 設定檔位置: /etc/fail2ban
  • 所以受控服務開機在 /etc/fail2ban/jail.conf 裡定義。
  • 攻擊判斷及執行動作之規則列 /etc/fail2ban/filter.d ,每種服務存成單一設定檔存入裡面。
  • 預設 action 區(勿改):/etc/fail2ban/action.d



基本設定

  • 以下幾個基本參數在 /etc/fail2ban/jail.conf 內,請各自依現況要求修改。

# 以下這三個參數值,是指:在 findtime 秒之內,密碼輸入錯誤高達 maxretry 次以上時,便得阻擋 bantime 秒
bantime = 600
maxretry = 5
findtime = 10

# 管理者信箱:發現異狀時會以此 e-mail 通知
destemail = yourname@example.com



常用伺服器設定示例

Postfix SMTP Server



Dovecot POP3/IMAP Server

 在 Ubuntu 12.04 已經有相關的預設參數,只要到 jail.conf 把 enable 參數改成 true 就好。但若 fail2ban 沒有預設 dovecot 的規則列(11.04),請在 /etc/fail2ban/filter.d 底下新增規則列。



過濾規則列檢查

  • 請檢查 /etc/fail2ban/filter.d/ 底下是否有如以下內容的 dovecot.conf 設定檔,若沒有請手動新增。

[Definition]
failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
ignoreregex =



/etc/fail2ban/jail.conf 修改

  • 把 enabled 改成 true

[dovecot]

enabled = true
port = smtp,ssmtp,imap2,imap3,imaps,pop3,pop3s
filter = dovecot
logpath = /var/log/mail.log



RoundCude Webmail



OwnCloud



vsFTPd Server



SSH Server



本文小檔案

題名: Title::Fail2Ban防密碼字典攻擊
作者: Creator::itsmw作者群
主題/關鍵詞: Subject::fail2ban, 密碼字典, 猜密碼
簡述: Description::用 Fail2Ban 阻擋網路上的密碼字典攻擊。
出版者: Publisher::MyIP itsmw 計畫
其他參與者: Contributor::itsmw作者群
日期: Date::2012-12-23
文件類型: Type::09資訊安全
資料格式: Format::text/html
文件識別代號: Identifier::http://myip.tw/itsmw/index.php?title=Fail2Ban
來源: Source::http://www.fail2ban.org
語言: Language::zh-TW
相關資源: Relation::http://www.fail2ban.org
文件涵蓋範圍: Coverage::Linux平台
版權規範: Rights::GNU Free Documentation License 1.2