一、 SSH 暴力破解檢測方法
如果你 CPU/記憶體異常爆表,連線速度極慢,有異常程式等情況,有可能你的 VPS 被人掃描破解或者已經淪陷。。
可以用下面方法檢測下多少人在 “盯著” 你的 VPS:
# cat /var/log/secure | awk ‘/Failed/{print $(NF-3)}’ | sort | uniq -c | awk ‘{print $2″ = “$1;}’
透過上面的命令可以檢視有哪些 IP 嘗試過連線和破解次數,如下所示:
47.88.101.47 = 6
51.254.240.50 = 2
58.218.204.107 = 42
58.218.204.211 = 9
…….
二、 DenyHosts 安裝與配置演示
<1>下載 DenyHosts
# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
# tar -xzf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
<2>安裝、配置、啟動
安裝前建議執行
# echo “” > /var/log/secure && service rsyslog restart
清空以前的日誌並重啟 rsyslog.
 
# python setup.py install
因為 DenyHosts 是基於 python 的,所以要已安裝 python,大部分 Linux 發行版一般都有。預設是安裝到/usr/share/denyhosts/目錄的, 進入相應的目錄修改配置檔案
 
# cd /usr/share/denyhosts/
# cp  denyhosts.cfg-dist denyhosts.cfg
# cp  daemon-control-dist daemon-control
預設的設定已經可以適合 centos 系統環境,你們可以使用 vi 命令檢視一下 denyhosts.cfg 和 daemon-control,裡面有詳細的解釋
接下來用命令啟動 denyhosts.
# chown root daemon-control
# chmod 700 daemon-control
# ./daemon-control start
 
如果要使 DenyHosts 自動啟動還需做如下設定:
# ln -sf /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
# chkconfig  –add denyhosts
# chkconfig –level 2345 denyhosts on
或者執行下面的命令加入開機啟動,將會修改/etc/rc.local 檔案:
echo “/usr/share/denyhosts/daemon-control start” >> /etc/rc.local
 
三、 DenyHosts 配置檔案/usr/share/denyhosts/denyhosts.cfg 說明:
SECURE_LOG = /var/log/secure
#sshd 日誌檔案,它是根據這個檔案來判斷的,不同的作業系統,檔名稍有不同。
 
HOSTS_DENY = /etc/hosts.deny
#控制使用者登陸的檔案
 
PURGE_DENY = 5m
DAEMON_PURGE = 5m
#過多久後清除已經禁止的 IP,如 5m(5 分鐘)、 5h(5 小時)、 5d(5 天)、 5w(5 周)、 1y(一年)
 
BLOCK_SERVICE = sshd
#禁止的服務名,可以只限制不允許訪問 ssh 服務,也可以選擇 ALL
 
DENY_THRESHOLD_INVALID = 5
#允許無效使用者失敗的次數
 
DENY_THRESHOLD_VALID = 10
#允許普通使用者登陸失敗的次數
 
DENY_THRESHOLD_ROOT = 5
#允許 root 登陸失敗的次數
 
HOSTNAME_LOOKUP=NO
#是否做域名反解
DAEMON_LOG = /var/log/denyhosts
 
四、為防止自己的 IP 被遮蔽,可以:
echo “你的IP” >> /usr/share/denyhosts/allowed-hosts 將你的 IP 加入白名單,再重啟 DenyHosts:/etc/init.d/denyhosts
如果已經被封,需要先按下面的命令刪除被封 IP 後再加白名單。
如有 IP 被誤封,可以執行下面的命令解封:
wget http://soft.vpser.net/security/denyhosts/denyhosts_removeip.sh && bash denyhost_removeip.sh 要解封的 IP
 
五、檢視攻擊 ip 記錄
# cat /etc/hosts.deny