利用 fail2ban 來防止入侵

Home Home
引用 | 編輯 笑笑
2010-07-19 17:14
樓主
推文 x0
最近客戶的主機一直被入侵,後來發現是因為駭客用暴力破解法,去試 ftp 的帳號及密碼,有的客戶帳號密碼設的太簡單一下就被破解了,被放了後門程式及發廣告信程式,更糟的是放了攻擊程式去攻別人的主機,真的是很頭大

後來我上網找到一個不錯的工具程式 fail2ban ,他是利用 ftp 的 log 檔來偵測相同 ip 錯誤登入的次數,只要超過設定的次數(內定3次),就會自動用 iptable 或 ipfw 把那個 ip 封鎖掉,還可以設定封鎖的時間,內定是 600 秒

我是用 ports 安裝的,設定還算簡單

複製程式
cd /usr/ports/security/py-fail2ban
make install clean

安裝後到 rc.conf 加一下

fail2ban_enable="YES"

這樣下次開機才會自動啟動

設定放在 /usr/local/etc/fail2ban/jail.conf

這個檔已設定了很多模組,如果你用的是 iptable ,可以依自己的需求 把 enabled 改為 true

因為我的主機防火牆是用 ipfw ,所以要自己加

複製程式
[vsftpd-ipfw]

enabled  = true
filter   = vsftpd
action   = ipfw[name=VSFTPD, localhost=any, port=ftp]
           sendmail-whois[name=VSFTPD, dest=你的信箱]
logpath  = /var/log/vsftpd.log
maxretry = 3
bantime  = 86400

以上是用 ipfw 針對 vsftp 登入3次失敗的 ip 做封鎖

另外 fail2ban 還可以針對 dns 查詢做防護,不過 dns 是用 udp
我查了一下 /usr/local/etc/fail2ban/action.d 中的 ipfw.conf 只能擋 tcp
所以我複製了一份來改,另存為 ipfw-udp.conf

然後在 jail.conf 中加入
複製程式
[named-refused-ipfw]

enabled  = true
filter   = named-refused
action   = ipfw-udp[name=Named, localhost=any, port=domain]
           sendmail-whois[name=Named, dest=你的信箱]
logpath  = /etc/namedb/working/security.log
bantime  = 86400
ignoreip = 你不想擋的IP

另外 /etc/namedb/named.conf 中要開啟記祿才可以

複製程式
logging {
    channel security_file {
        file "/var/log/named/security.log" versions 3 size 30m;
        severity dynamic;
        print-time yes;
    };
    category security {
        security_file;
    };
};

設定後,可以先手動執行看看
/usr/local/etc/rc.d/fail2ban start

如果有什麼問題,可以查 /var/log/fail2ban.log

這樣就大功告成了,希望對有需要的人有幫助..表情

獻花 x0
引用 | 編輯 s90304a123
2010-07-23 14:57
1樓
  
請問使用ubuntu要怎麼安裝?
照打沒有用耶??

獻花 x0
引用 | 編輯 笑笑
2010-07-23 16:34
2樓
  
下面是引用 s90304a123 於 2010-07-23 14:57 發表的 : 到引言文
請問使用ubuntu要怎麼安裝?
照打沒有用耶??

你要先確定一下你用的防火牆是那一套

我是用 ipfw
fail2ban 有支援 ipfw , iptable, ipfilter

獻花 x0
引用 | 編輯 mnbmnb5266
2010-08-18 02:53
3樓
  
現在的黑客真是令人頭疼。希望大大儘快想出辦法啊

獻花 x0