現在的互聯網非常不安全,最近本人就經歷了一場有驚無險的有關係統安全的事件:公司的一個測試服務器由於之前密碼設置太簡單,被人掃描後暴力破解了root密碼並登陸到服務器上,還創建了一個uid爲0的個人賬號,留下了一個後門,還好及時發現了,否則後果不堪設想!後來我查日誌發現了很多不同的IP一直在嘗試暴力破解我這太服務器的sshd端口,所以我在網上找到了DenyHosts這款軟件做了防暴力破解,這是鄙人第一次寫博客,有不周到的地方還請各位看官多多包涵!
以下安裝配置和最後的解除IP限制都是我在網上找到的資料並做了一些整合。
DenyHosts官方網站爲:http://denyhosts.sourceforge.net/
1、下載DenyHosts 並解壓
# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
# tar zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
2、安裝、配置和啓動
# python setup.py install
默認是安裝到/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每次重起後自動啓動還需做如下設置:
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 345 denyhosts on
或者執行下面的命令,將會修改/etc/rc.local文件:
# echo "/usr/share/denyhosts/daemon-control start" >> /etc/rc.local
DenyHosts配置文件denyhosts.cfg說明:
SECURE_LOG = /var/log/secure
#sshd日誌文件,它是根據這個文件來判斷的,不同的操作系統,文件名稍有不同。
HOSTS_DENY = /etc/hosts.deny
#控制用戶登陸的文件
PURGE_DENY = 5m
#過多久後清除已經禁止的
BLOCK_SERVICE = sshd
#禁止的服務名
DENY_THRESHOLD_INVALID = 1
#允許無效用戶失敗的次數
DENY_THRESHOLD_VALID = 10
#允許普通用戶登陸失敗的次數
DENY_THRESHOLD_ROOT = 5
#允許root登陸失敗的次數
HOSTNAME_LOOKUP=NO
#是否做域名反解
DAEMON_LOG = /var/log/denyhosts
更多的說明請查看自帶的README文本文件,好了以後維護VPS就會省一些心了,但是各位VPSer們注意了安全都是相對的哦,沒有絕對安全,請定期或不定期的檢查你的VPS主機,而且要定時備份你的數據哦。
關於取消訪問限制:經本人測試,如果自己的IP或者是企業內部合法IP嘗試登陸失敗且被DenyHosts加入到/etc/hosts.deny文件裏了,該如何取消訪問限制呢?我開始以爲只要清空了/var/log/secure日誌,再刪除/etc/hosts.deny裏面的IP就可以了,如果你也是這樣想那就錯了,即使你清空了以上兩個文件,過不了多久,DenyHosts又會將你的IP寫入/etc/hosts.deny,這也是這款軟件的強大地方,DenyHosts會讀取多個記錄確保沒有漏網之魚,清空/var/log/secure和/etc/hosts.deny並不能完美解鎖自己的IP, 很快就會被DenyHosts重新鎖定。那該如何解除鎖定呢?
下面是解鎖的步驟:
首先停止DenyHosts, CentOS系統的可以用命令:
service denyhosts stop
然後清空下面的日誌和文件
cat /dev/null > /var/log/secure
cat /dev/null > /etc/hosts.deny
cat /dev/null > /usr/share/denyhosts/data/hosts
cat /dev/null > /usr/share/denyhosts/data/hosts-restricted
cat /dev/null > /usr/share/denyhosts/data/hosts-root
cat /dev/null > /usr/share/denyhosts/data/hosts-valid
cat /dev/null > /usr/share/denyhosts/data/offset
cat /dev/null > /usr/share/denyhosts/data/suspicious-logins
cat /dev/null > /usr/share/denyhosts/data/users-hosts
cat /dev/null > /usr/share/denyhosts/data/users-invalid
cat /dev/null > /usr/share/denyhosts/data/users-valid
然後重新開啓Deny Hosts:
service denyhosts start