David Chao

David Chao

#
創業誌

保護你的伺服器 Fail2Ban

2008/06/12

OKShield-128x128 前幾天無意間看到有網友用 Iptables 來做 ssh 的連線保護

基本上是透過 Iptables recent 這個 module 來計算連線數量

再透過 Iptables 來 Drop掉ip!

不過效果我覺得並不是很滿意!

在尋尋覓覓之下,就看到了 Fail2Ban 這隻小程式囉!

安裝很簡單!設定也不難而且能設的 Service 還蠻多的喔!

Fail2Ban 是透過 Iptables 與 tcpwrapper (( TCPWrapper 是一簡單易用的工具,主要的功能在紀錄並攔截由 inetd 管理的 TCP 服
務。這程式主要是由 Wietse Venema 開發。 ))

一步一步來吧!

系統需求:CentOS 5、iptables、Python > 2.4 ( Fail2Ban 0.8 branch )

?

Step 1

沒有Python的朋友請使用:

yum install python python-devel gamin-python

下載 Fail2Ban

Cerebration下載DAG下載

安裝 Fail2Ban

rpm -ivh fail2ban-0.8.1-1.el5.rf.noarch

安裝完成!

?

Step 2

相關設定

主設定檔位置在

/etc/fail2ban/jail.conf

ignoreip = 192.168.1.0/24 ( 忽略不限制的ip、請依須求設定 )

bantime? = 86400 ( 遭拒絕的ip被拒絕的時間長短 )

findtime? = 600 ( 觸發的時間區間 )

maxretry = 3 ( 在 findtime 時間內觸發的次數 )

預設設定完成

?

Step 3

以SSH為例

[ssh-iptables]
?
enabled? = true ( 是否開啟 true or false )
filter?? = sshd
action?? = iptables[name=SSH, port=ssh, protocol=tcp] ( 名稱、port號、通訊協定 )
?????????? sendmail[name=SSH, dest=devil3688@mamu.com.tw] ( 發出警告信 )
logpath? = /var/log/secure ( log檔案位置 )
bantime = -1 ( -1代表無限 )
maxretry = 3 ( 觸發次數 )

設定完成!請記得執行

service fail2ban restart

?

各位可以透過觀察記錄檔 /var/log/fail2ban.log ,來觀察有無錯誤!

或是觀察 Iptables 的規則


iptables -L -n

延伸參考

http://www.uno-code.com/?q=node/94

http://54061.blogspot.com/2007/11/spam-senders-part2.html

http://www.fail2ban.org/wiki/index.php/HOWTOs

http://www.ducea.com/2006/07/03/using-fail2ban-to-block-brute-force-attacks/

http://cha.homeip.net/blog/archives/2007/06/_fail2ban_ip.html

趙大衛
貫徹死了都要創業為信念,卻差一點讓口號變成事實! 目前正在進行第一次修養,請多多支持。

發佈留言