網路上的別有用心的人很多,有些只是在你家門口張望,但有些就拼命想進你家,無所不用其極,就連小窗戶都不放過.
本文所要介紹的fail2ban是一套很多人使用的簡易偵測有意入侵的軟體體,讓你的主機多了一道鎖,如果不是針對性的攻擊,多半就會轉往其他網路主機,此軟體也可以告知系統管理者有人在家門口張望,需要提高緊覺.
這個軟體基本運作方法是去收集主機上Log的資料,比對有沒有符合所設定的條件的記錄,若有的話,我們可以設定超過多少次,就視為異常現象,呼叫出iptables的功能,將這個IP所帶來的流量全部阻擋,直至永遠或一定時間後再開放.
本文所使用的是CentOS Linux系統,而安裝設定方法如下:
1.先安裝依存套件
# yum install garmin*
2.下載fail2ban
# wget https://github.com/fail2ban/fail2ban/archive/0.8.14.tar.gz
3.解壓縮及安裝
# tar xzvf 0.8.14.tar.gz
# cd 0.8.14
# setup.py install
安裝完成後有二個主要的程式,fail2ban-client是控制運作及開關服務,而fail2ban-server則是服務的執行.
設定檔fail2ban.conf會放在/etc/fail2ban,過濾定義檔會放在/etc/fail2ban/filter.d目錄下
4.設定fail2ban.conf
loglevel
1--僅記錄發生錯誤的訊息
2--警告以上就記錄
3--訊息以上就記錄
4--記錄所有的訊息
logtarget
STDOUT--記錄輸出至標準輸出串流
STDERR--記錄輸出至標準錯誤串流
SYSLOG--記錄輸出至syslog
FILE--記錄輸出至指定的檔案位置
socket--socket檔案位置
pidfile--pid檔案位置
5.設定jail.conf
ignoreip--設定為白名單的IP
bantime--阻擋的秒數,-1的話表示永遠阻擋
findtime--多久做一次Log的分析
maxretry--Log分析中,有發現多少次即視為異常
backend--設定以何種演算法進行分析,可以設pyinotify,gamin,polling,auto
針對服務的設定如下
enabled設定啟用與否
True--啟動
False--停用
filter設定過濾條件檔案
filter = sshd 表示過濾檔案在/etc/fail2ban/filter.d/sshd.conf
action設定所反應的動作
action = iptables 表示將套用 /etc/fail2ban/filter.d/iptables.conf的設定
logpath分析的記錄檔
logpath = /var/log/secure 此處要設定所監控的服務記錄檔所在
maxretry 記錄檔內在findtime時間段落中,分析後有符合filter的條件,超過幾次就ban.
例如
[DEFAULT]
ignoreip = 127.0.0.1/8
ignorecommand =
bantime = 600
findtime = 600
maxretry = 3
backend = auto
usedns = warn
[ssh-iptables]
enabled = True
filter = sshd
action= iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=XXX@XXX.com, sendername="fail2ban"]
logpath= /var/log/secure
maxretry = 3
6.啟動服務
# fail2ban-client start