TShopping

 找回密碼
 註冊
搜索
查看: 743|回復: 3

[教學] 腳本防止SSH和vsftpd暴力破解

  [複製鏈接]
發表於 2012-1-8 18:47:29 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
我的一台公網服務器,由於網站採取的是雙備份策略,所以開放了vsftpd的21端口,近來發現許多人在嘗試暴力破解vsftpd和ssh,我隨便看了看/var/log/secure日誌,顯示如下:
  1. 118.33.110.52=2834
  2. 119.145.254.77=37
  3. 121.254.179.199=226
  4. 121.88.250.243=35
  5. 200.29.110.104=168
  6. 202.78.173.199=250
  7. 222.221.2.210=373
複製代碼

這裡面除了119.145.254.77和121.88.250.243是正常的外,其它的基本都是惡意IP。
由於我的服務器是置於LVS集群後面,所以我原來想用iptables的recent模塊解決這個問題的方法估計是行不通的。而且,服務器的系統安裝的是CentOS 5.5 x86_64,iptables還暫時不支持此模塊,報錯如下:
iptables: Unknown error 18446744073709551615iptables: Unknown error 18446744073709551615而由於機器已經在跑重要的業務,我又不想去升級內核,免得影響正常的網站運營,所以iptables的想法暫時告一段落;後來我又想到用HostsDeny的方法來解決這個問題,感覺這個方法還是比較繁瑣,還不如自己手動寫腳本來解決這個麻煩,腳本內容如下:
  1. #! /bin/bash
  2. cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt
  3. DEFINE="100"
  4. for i in `cat /root/black.txt`
  5. do
  6. IP=`echo $i |awk -F= '{print $1}'`
  7. NUM=`echo $i|awk -F= '{print $2}'`
  8. if [ $NUM -gt $DEFINE ];
  9. then
  10. grep $IP /etc/hosts.deny > /dev/null
  11. if [ $? -gt 0 ];
  12. then
  13. echo "sshd:$IP" >> /etc/hosts.deny
  14. echo "vsftpd:$IP" >> /etc/hosts.deny
  15. fi
  16. fi
  17. done
複製代碼

腳本思路如下:由於/var/log/secure是以星期為輪詢的,所以我們每次可以查看這個文件,利用SHELL腳本統計出其中訪問失敗比較頻繁的IP,並定義一個閥值為100,如果大於100的話就將其放進/etc/hosts.deny文件,阻止其繼續訪問vsftpd和ssh;然後將其寫進 crontab計劃列表裡,每隔一段時間進行一次排查,如果下次排查的某IP次數又大於100,首先檢查它在不在我們的黑名單,如果在的話就無視過去;如果不在,就繼續添加進/etc/hosts.deny文件。
我的/etc/crontab文件最後一行為
* */1 * * * root sh /root/hosts_deny.sh即每隔1小時就重複執行一次這個腳本,這裡也有一個情況要說明下,/var/log/secure是每隔一個星期輪詢一次的,所以我們這裡可以根據服務器的具體情況來配置多少時間執行一次此腳本,暴力破解頻繁的機器可適當縮小這個週期。
我的公網機器運行腳本一段時間後,/etc/hosts.deny文件如下:
  1. sshd:119.145.254.77
  2. vsftpd:119.145.254.77
  3. sshd:222.221.2.210
  4. vsftpd:222.221.2.210
  5. sshd:118.218.136.25
  6. vsftpd:118.218.136.25
  7. sshd:118.33.110.52
  8. vsftpd:118.33.110.52
  9. sshd:123.196.113.11
  10. vsftpd:123.196.113.11
  11. sshd:14.140.172.74
  12. vsftpd:14.140.172.74
  13. sshd:200.29.110.104
  14. vsftpd:200.29.110.104
  15. sshd:202.102.89.81
  16. vsftpd:202.102.89.81
  17. sshd:202.78.173.199
  18. vsftpd:202.78.173.199
複製代碼


 

臉書網友討論
發表於 2013-11-9 01:09:35 | 顯示全部樓層
不錯,感謝版主

版主招募中

發表於 2013-11-9 01:09:35 | 顯示全部樓層
ding   支持  


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-12 05:38 , Processed in 0.060222 second(s), 19 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表