Linux 上DenyHosts阻止SSH暴力***

   現在的互聯網非常不安全,最近本人就經歷了一場有驚無險的有關係統安全的事件:公司的一個測試服務器由於之前密碼設置太簡單,被人掃描後暴力破解了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


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