« 惡搞無線網路盜連者 | 首頁 | 2007/06, Vol. 137 PChome Magazine »
2007年06月06日
以 Fail2ban 封鎖嘗試侵入的 IP
基本運作原理: fail2ban (daemon) → 監視 log file → 連續出現多次錯誤訊息 → 封鎖來源 IP
以下是分別在 Fedora Core 3 (python-2.3 & fail2ban 0.6.1) 與 Fedora 7 (python-2.5 & fail2ban 0.8) 針對 sshd 與 proftpd 的防護設置
環境
- Fedora Core 3
- python-2.3.4
- fail2ban 0.6.1 (required: python >= 2.3)
安裝 fail2ban 0.6.1
wget http://fail2ban.sourceforge.net/rpms/fail2ban-0.6.1-2jik.noarch.rpm
rpm -ivh fail2ban-0.6.1-2jik.noarch.rpm
啟用 fail2ban
vi /etc/fail2ban.conf
#以 daemon 方式啟動 fail2ban
background = true#允許嘗試次數
maxfailures = 3#觸發 maxfailures 之後的封鎖時間(秒); 設為 -1 表示永遠封鎖
bantime = 600#以 findtime (秒) 時間內的錯誤記錄作為 maxfailures 的計數基準
findtime = 600#排除 IP 範圍, 以空白隔開
ignoreip = 127.0.0.1 192.168.0.0/24#不啟用 mail 通知
[MAIL]enabled = false
#修改自 VSFTPD, 未提及的部份保持原設定
[PROFTPD]enabled = true
logfile = /var/log/proftpd/proftpd.log
failregex = no such user|Incorrect password#未提及的部份保持原設定
[SSH]enabled = true
logfile = /var/log/secureservice fail2ban start
環境
- Fedora 7
- python-2.5
- fail2ban 0.8 (required: python >= 2.4)
安裝 fail2ban 0.8
yum install python-devel
wget http://nchc.dl.sourceforge.net/sourceforge/fail2ban/fail2ban-0.8.0.tar.bz2
tar jxf fail2ban-0.8.0.tar.bz2
cd fail2ban-0.8.0
python setup.py install
啟用 fail2ban
cd /etc/fail2ban
vi jail.conf
#全域設置
[DEFAULT]#排除 IP 範圍, 以空白隔開
ignoreip = 127.0.0.1 192.168.0.0/24#觸發 maxretry 之後的封鎖時間(秒); 設為 -1 表示永遠封鎖
bantime = 600#以 findtime (秒) 時間內的錯誤記錄作為 maxretry 的計數基準
findtime = 600#允許嘗試次數
maxretry = 3#以 iptables 阻擋嚐試登入 sshd 的來源 ip
[ssh-iptables]enabled = true
filter = sshd #對應 /etc/fail2ban/filter.d
action = iptables[name=SSH, port=ssh, portocol=tcp] #對應 /etc/fail2ban/action.d
logpath = /var/log/secure #這是 Fedora 的 sshd log file
maxretry = 5 #取代全域設定值 (maxretry = 3)[proftpd-iptables]
enabled = true
filter = proftpd
action = iptables[name=ProFTPD, port=ftp, protocol=tcp]
logpath = /var/log/proftpd/proftpd.log
maxretry = 6fail2ban-client start
ProFTPD 補充
- 產生 log 檔:
- 編輯 proftpd.conf
- 加入: SystemLog /var/log/proftpd/proftpd.log
- 若要連密碼錯誤也一併計入 "maxretry":
- 編輯 /etc/fail2ban/filter.d/proftpd.conf
- 於 failregex 加入一行: Incorrect password
參考資料
Posted by Jamyy at 2007年06月06日 16:11
Trackback Pings
TrackBack URL for this entry:
http://cha.homeip.net/cgi-bin/mt/mt-tb.cgi/285
Comments
写得不错,你这里 介绍拉一些我不清楚或者不知道的东西!
而且也感觉兄弟你非常的扎实,不知道我写的简体字你是否认识.
呵呵,一个内地的小sa
祝你快乐,坚持写下去!
Posted by: Anonymous at 2007年06月07日 10:32
謝謝您的鼓勵, 我會繼續努力的 :)
Posted by: Jamyy at 2007年06月07日 12:46
站長您好~~有個小問題請教
我發現後的主機有開了一個port 790
執行netstat -antp 後結果如下
tcp 0 0 0.0.0.0:790 0.0.0.0:* LISTEN 1880/rpc.statd
執行 nmap localhost後結果
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
199/tcp open smux
443/tcp open https
790/tcp open unknown
3000/tcp open ppp
5900/tcp open vnc
不知790這個rpc.statd有什麼做用,是不安全的嗎?
Posted by: 阿榮 at 2007年06月26日 10:57
其實我也不是很了解 rpc.statd 是什麼東西, 在 fedora core distro 中, 它是 nfs-utils package 裡的其中一個成員
以下摘錄自 man page of rpc.statd:
It is used by the NFS file locking service, rpc.lockd, to implement lock recovery when the NFS server machine crashes and reboots.
如果怕不安全, 可以用 tcp_wrapper 來保護它:
vi /etc/hosts.deny
statd: ALL EXCEPT .your.com
Posted by: Jamyy at 2007年06月26日 15:13
站長 您好
我的系統是CENTOS5,我將nfslock這一個服務停掉後,790 PORT就關閉了,因為我這一台NAT主機,不用NFS服務
所以應該是和NFS服務有關吧!
Posted by: 阿榮 at 2007年06月26日 15:53
沒錯, 關掉不需要的服務, 系統會更安全些 (至少漏洞會少一點 :)
Posted by: Jamyy at 2007年06月27日 01:00
站長您好
有個問題是最近nat主機上面logwatch 中一直出現
Connection attempts using mod_proxy:
122.126.102.233 -> mail2.xps.idv.tw:25: 1 Time(s)
122.126.109.47 -> mail2.xps.idv.tw:25: 1 Time(s)
122.126.116.224 -> mail2.xps.idv.tw:25: 1 Time(s)
122.126.98.148 -> mail2.xps.idv.tw:25: 1 Time(s)
可是我並沒有裝proxy的服務,這log看來好像是對方利用proxy和我連線!
目前我想說用iptables 擋掉
/sbin/iptables -A INPUT -i ppp0 -s 122.126.102.233 -j DROP
/sbin/iptables -A INPUT -i ppp0 -s 122.126.109.47 -j DROP
/sbin/iptables -A INPUT -i ppp0 -s 122.126.116.224 -j DROP
/sbin/iptables -A INPUT -i ppp0 -s 122.126.98.148 -j DROP
可是如果每天都不用ip不就麻煩
站長有啥好方法提供一下嗎?
Posted by: 阿榮 at 2007年07月18日 08:49
我只知道 mod_proxy 是 apache http server 的東西
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
如果把 httpd.conf 裡的 LoadModule proxy_* 都註解掉的話, 應該就不會有這個問題了吧
網路上也有一些關於這個問題的討論, 例如:
http://forums.fedoraforum.org/archive/index.php/t-91619.html
我是在 google 用 attempts using mod_proxy 這幾個字找的
Posted by: Jamyy at 2007年07月18日 09:43
非常感謝這有用的資訊 :Q
0.8.1似乎就不用
於 failregex 加入一行: Incorrect password
最近實在被跳板式FTP攻擊搞到Log有夠肥大的...
Posted by: 那顆爛蔥 at 2007年08月23日 02:39