2012/03/30

ssh,ftp暴力攻擊阻擋

 最近不斷有墨西哥國人在try ssh的登入
接著又是大陸人利用得到全校mail名單去try mail server
(我覺得他應該是每個帳號都登入看看,看會不會有人帳號密碼一樣)
實在是有點受不了 剛好就看到了這套 Fail2ban

http://net.nthu.edu.tw/2009/security:fail2ban

http://a-rong-go.blogspot.com/2010/10/linux-fail2ban.html

資料來源  清華大學 計算機與通訊中心

Fail2ban 是一套以 Python 語言所撰寫的 GPLv2 授權軟體,藉由分析系統紀錄檔,並透過設定過 濾條件 (filter) 及動作 (action),當符合我們所設定的過濾條件時,將觸發相對動作來達到自動化反應的效果 (如封鎖來源 IP、寄信通知管理者、查詢來源 IP 資訊等)。因其架構相當彈性,我們可以針對自己的需求,設計不同的過濾條件與動作來達到伺服器防護的功能,或是及時的反應某些異常資訊。常見應用有:
  1. 阻擋 SSH、FTP 多次嘗試錯誤連線;
  2. 阻擋特定的瀏覽器或網路爬蟲;
  3. 提供管理者瞭解異常伺服器服務要求 (如 apache、bind、postfix、vsftpd、proftpd…)。
常見的像是 SSH 服務,當使用者嘗試輸入帳號密碼進行登入時,如發生驗證錯誤,系統將紀錄事件於記錄檔中。藉由即時的分析系統紀錄檔,我們可以過濾出一些有用的資訊,再加以判斷此類事件是否對伺服器服務有害。





我把重點節錄一下

Step 0:安裝

CentOS 使用者
  • 請先設定使用 ATrpms 的套件庫,再使用 yum 來安裝較新版本的 Fail2ban (目前大概是 0.8.4-23)。
# vi /etc/yum.repos.d/atrpms.repo
[atrpms]
name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
enabled=1
# yum install fail2ban -y

Step 2:設定範例

1. 全域設定
# vi /etc/fail2ban/jail.conf
[DEFAULT]
ignoreip = 127.0.0.1/8 163.17.233.0/24
bantime  = 600
findtime = 600
maxretry = 3
backend  = auto
  • ignoreip
    指定哪些 IP、主機或是網段可以忽略,而不作任何動作。
  • bantime
    設定這個主機要被阻擋多久。
  • maxretry
    被封鎖前的最大嘗試失敗次數
  • findtime
    maxretry 產生後,多少時間內被封鎖。
  • backend
    分為 gamin 與 polling 兩種,選擇何種方式去偵測檔案是否有異動。
Step 2:啟動或停止 Fail2ban
  • Fedora / CentOS / RedHat 使用者
# service fail2ban start
# service fail2ban stop
Step 3:觀察 Fail2ban 狀態
  • 觀察目前啟動哪些 jail
# fail2ban-client status

沒有留言:

張貼留言