2013年1月6日 星期日

fail2ban 阻擋暴力破解錯誤嘗試登入

Linux 系統裝好後,某些提供帳號密碼登入的伺服器功能,像是SSH,會不斷地被網路駭客及一些無聊人士嘗試入侵攻擊,雖然不一定會被猜到您的帳號密碼,但是每秒就做登入的動作也是會消耗網路頻寬及系統資源,建議還是要安裝套件,針對登入錯誤幾次的人,直接封鎖該網路位址 (IP Address),而 fail2ban 套件具有此功能且非常好用。

可以檢查您的 /var/log/secure 檔案(根據Linux版本可能檔名有些差異,基本上就是尋找一下系統的紀錄檔案),可以發現幾乎每秒就不斷地被登入測試帳號密碼。


官方網站:
http://www.fail2ban.org/wiki/index.php/Main_Page

透過套件管理程式來安裝:
# yum install fail2ban

P.S 由於筆者裝的 Centos 6 套件庫已經沒有內建 fail2ban 所以我們採用 EPEL repository 的方式來安裝:

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm

修改設定檔,找到[base]區塊,並且新增設定值 enable=1
vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
enable=1



如此就可以正常透過指令安裝:
# yum install fail2ban

啟動服務
#/etc/init.d/fail2ban start

限制規範的設定檔的位置位於 /etc/fail2ban/jail.conf,然後把想要監控的服務區塊內的 enabled 設定為 true。
例如 SSH 的部分:


[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath  = /var/log/secure
maxretry = 3
bantime = 86400

然後重新啟動服務即可!
#/etc/init.d/fail2ban restart

沒有留言:

張貼留言