不想你的ssh被暴力攻破?來個狠的!

最近一段時間經常接到老大們的投訴~
網站訪問很慢啊~~怎麼搞的!!!

當然不能告訴他們偶是怎麼搞的.....

自己訪問了一下,雖然服務器是老機器,但慢到這種程度也是該打屁股了...

只能用ssh登錄到服務器後臺看看機器性能了~

咦?有新發現!!!

#tail -n 500 /var/log/message
通過瀏覽系統日誌發現竟然有不少來者不善的ip在襲擊我...



如圖所示這些ip均是希望通過窮舉行爲破解服務器的ssh密碼來達到控制服務器的目的...

險惡啊!這個世界~

雖然服務器未被攻下,但這一來二往的消耗了服務器不少系統和網絡資源!唉,何必捏,和氣生財~

在防火牆一條條ip去封顯然不是辦法,於是偶找了個軟件來代理,那就是非常著名的砍殺工具DenyHosts。
顧名思義,DenyHosts就是用來幹封ip的活,DenyHosts通過分析sshd的日誌文件(/var/log/secure),如果發現同一個ip連續多次試圖暴力破解(連接次數可以自行設置),便會自動將該ip寫入/etc/hosts.deny文件,達到屏蔽該ip地址的效果。

帝國反擊戰現在開始!


1.獲得DenyHosts
軟件免費,可直接從官方網站獲得。
不過下載版本時要注意一下:
DenyHosts安裝和運行要依賴python,如果機器安裝了python,那需要檢查一下python的版本,由此去下載對應版本的rpm包。

如圖我機器安裝了python,版本是2.3


如果機器沒有安裝python,直接下載個帶python程序的tar.gz來安裝就行了。


2.安裝和啓動DenyHosts
#tar xzvf DenyHosts-2.6.tar.gz
將安裝包解壓到任意位置

#cd DenyHosts-2.6
進入解壓目錄

#python setup.py install
執行安裝程序,將DenyHosts安裝到默認位置

如圖所示:


DenyHosts默認安裝到/usr/share/denyhosts目錄
需要修改一下DenyHosts的配置文件才能正常啓動程序,繼續~

#cd /usr/share/denyhosts
進入denyhosts的主配置目錄

#cp denyhosts.cfg-dist denyhosts.cfg
#cp daemon-control-dist daemon-control
複製出默認配置文件和程序執行文件

#chmod 770 daemon-control
修改一下程序執行文件的操作權限

#./daemon-control start
啓動denyhosts

如圖所示denyhosts已正常啓動


如果想讓denyhosts每次隨系統自動啓動,可以執行以下操作~


#cd /etc/init.d

#ln -s /usr/share/denyhosts/daemon-control denyhosts
在/etc/init.d/目錄新建一個鏈接符號到daemon-control的啓動執行文件,鏈接名隨便起

#chkconfig --add denyhosts
#chkconfig --level 2345 denyhosts on

Ok!


3.配置DenyHosts

denyhosts.cfg就是denyhosts的配置文件!
下面介紹一些常用的配置項

SECURE_LOG = /var/log/secure //sshd日誌文件,denyhosts正是通過分析這個文件來屏蔽ip的,不同系統sshd的日誌文件和位置有些差別,配置文件裏都給列出來了,可以按實際情況修改

HOSTS_DENY = /etc/hosts.deny //控制用戶登錄文件,被屏蔽的ip都會寫入這個文件

PURGE_DENY = 20m //這裏可以設置經過多長時間解除已經屏蔽的ip的限制,單位是分鐘,偶這裏是留空的,表示不解禁~嘿嘿!

PURGE_DENY參數還有以下單位可參考

# 'm' = minutes
# 'h' = hours
# 'd' = days
# 'w' = weeks
# 'y' = years

BLOCK_SERVICE = sshd //禁止的服務名,除了sshd,denyhosts還可以用於其他服務,如smtp等

DENY_THRESHOLD_INVALID = 5 //允許無效用戶的登錄失敗次數,超過設置的一律cut~~

DENY_THRESHOLD_VALID = 3 //允許普通用戶的登錄失敗次數,超過設置的一律cut~~

DENY_THRESHOLD_ROOT = 1 //允許root用戶的登錄失敗次數,超過設置的一律cut~~

DENY_THRESHOLD_RESTRICTED = 1 //允許受限用戶的登錄失敗次數,超過設置的一律cut~~

HOSTNAME_LOOKUP=YES //是否做域名反解析,留空表示不做

DAEMON_LOG = /var/log/denyhosts //denyhosts日誌文件位置
 


其他設置一般默認即可~


4.確認DenyHosts運作正常

確認denyhosts是否在運作非常簡單,看看hosts.deny文件是否有寫入被屏蔽的ip地址即可。

#vi /etc/hosts.deny



如圖所示開始抓烏龜了~~哈哈~心裏爽極了!



大功告成!!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章