1四、單機運行環境搭建之 --Centos6.4下使用Denyhosts禁止針對linux sshd的暴力破解

當你的linux服務器暴露在互聯網之中,該服務器將會遭到互聯網上的掃描軟件進行掃描,並試圖猜想SSH登陸口令你會發現,天天會有多條SSH登陸失敗紀錄。那些掃描工具將對你的服務器構成威脅,你必須設置複雜登陸口令,並將嘗試屢次登陸失敗的IP給阻止掉,讓其在一段時間內不能訪問該服務器。簡單方法也能夠修改22端口號. python

 

    用DenyHosts能夠阻止試圖猜想SSH登陸口令,它會分析/var/log/secure等日誌文件,當發現同一IP在進行屢次SSH密碼嘗試時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏蔽該IP的目的。last命令的信息來自/var/log/wtmp,若是對有經驗的人可能會刪除掉這個。可是仍是會留下痕跡,使用nmap命令掃描端口,
nmap -PO -sS ip,使用lsof命令,停掉一些沒必要要的服務,多關注漏洞,配置強有力的iptables來保護本身的系統或者嘗試使用Chkrootkit應用程序對rootkit的跟蹤,嘗試AIDE來檢查文件系統的完整性。服務器上除了root外,Linux用戶越少越好,若是非要添加就添加shell爲nologin。
 
DenyHosts安裝

 1.環境檢查: 

安裝環境Centos x64 6.4

下載到/usr/src目錄中,查詢一下系統是否符合要求
ldd /usr/sbin/sshd|grep libwrap  //查看libwrap動態連接庫文件。 libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f4b2a1b9000) python -V             //查詢版本爲2.6.5 Python 2.6.6 

二、安裝步驟:

cd /usr/src yum install wget -y wget http://ncu.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz tar -xzvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6

python setup.py install   //安裝Denyhost

3. #切換目錄進入/usr/share/denyhosts目錄

cd /usr/share/denyhosts/  

  

4. 拷貝一份denyhosts.cfg

cp denyhosts.cfg-dist denyhosts.cfg

 

五、DenyHosts參數配置

vi  denyhosts.cfg linux

切換到命令行模式
:1,$d shell

清空內容,而後輸入以下內容: 安全

SECURE_LOG = /var/log/secure # format is: i[dhwmy] # Where i is an integer (eg. 7) # m = minutes # h = hours # d = days # w = weeks # y = years # # never purge: PURGE_DENY=50m HOSTS_DENY=/etc/hosts.deny BLOCK_SERVICE=sshd DENY_THRESHOLD_INVALID=1 DENY_THRESHOLD_VALID=10 DENY_THRESHOLD_ROOT=5 WORK_DIR=/usr/local/share/denyhosts/data DENY_THRESHOLD_RESTRICTED =1 LOCK_FILE=/var/lock/subsys/denyhosts HOSTNAME_LOOKUP=NO ADMIN_EMAIL=10402852@qq.com DAEMON_LOG=/var/log/denyhosts DAEMON_PURGE=10m

解釋以下: bash

SECURE_LOG = /var/log/secure #ssh日誌文件   # format is: i[dhwmy]   # Where i is an integer (eg. 7)   # m = minutes   # h = hours   # d = days   # w = weeks   # y = years   #   # never purge:   PURGE_DENY = 50m #過多久後清除已阻止IP   HOSTS_DENY = /etc/hosts.deny #將阻止IP寫入到hosts.deny   BLOCK_SERVICE = sshd #阻止服務名   DENY_THRESHOLD_INVALID = 1 #容許無效用戶登陸失敗的次數   DENY_THRESHOLD_VALID = 10 #容許普通用戶登陸失敗的次數   DENY_THRESHOLD_ROOT = 5 #容許root登陸失敗的次數   WORK_DIR = /usr/local/share/denyhosts/data #將deny的host或ip紀錄到Work_dir中   DENY_THRESHOLD_RESTRICTED = 1 #設定 deny host 寫入到該資料夾   LOCK_FILE = /var/lock/subsys/denyhosts #將DenyHOts啓動的pid紀錄到LOCK_FILE中,已確保服務正確啓動,防止同時啓動多個服務。   HOSTNAME_LOOKUP=NO #是否作域名反解   ADMIN_EMAIL =10402852@qq.com #設置管理員郵件地址   DAEMON_LOG = /var/log/denyhosts #本身的日誌文件   DAEMON_PURGE = 10m #該項與PURGE_DENY 設置成同樣,也是清除hosts.deniedssh 用戶的時間。

注意:不能把帶註釋的配置文件粘貼上去,會報錯!!! 服務器

 5.DenyHosts啓動文件配置

cd /usr/share/denyhosts


    
    
    
    

   
cp daemon-control-dist daemon-control chown root daemon-control chmod 700 daemon-control ./daemon-control start         #啓動DenyHosts

 若是要使DenyHosts每次重起後自動啓動還需作以下設置: session

ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts    #創建符號連接
chkconfig --add denyhosts                      #增長denyhosts服務進程
chkconfig  denyhosts on                      #設置開機啓動denyhosts
chkconfig --list denyhosts
 
denyhosts       0:off   1:off   2:on    3:on    4:on    5:on    6:off
 

6.查看日誌異常信息

tail -f /var/log/secure 
Feb 27 18:43:10 localhost login: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=test
Feb 27 18:43:12 localhost login: FAILED LOGIN 1 FROM (null) FOR test, Authentication failure
Feb 27 18:43:15 localhost login: FAILED LOGIN 2 FROM (null) FOR test, Authentication failure
Feb 27 18:43:21 localhost login: FAILED LOGIN 3 FROM (null) FOR test, Authentication failure
Feb 27 18:43:26 localhost login: pam_unix(login:session): session opened for user test by LOGIN(uid=0)
Feb 27 18:43:26 localhost login: LOGIN ON tty1 BY test
Feb 27 18:45:32 localhost su: pam_unix(su:auth): authentication failure; logname=test uid=500 euid=0 tty=tty1 ruser=test rhost=  user=root
Feb 27 18:45:47 localhost su: pam_unix(su-l:session): session opened for user root by test(uid=500)
Feb 27 19:00:03 localhost sshd[19861]: Accepted password for root from 192.168.40.41 port 4289 ssh2

設置入侵檢測工具之PortSentry ssh

 ========有可能用到:================= 工具

更改DenyHosts的默認配置以後,重啓DenyHosts服務便可生效: 
/etc/init.d/daemon-control restart         #重啓denyhosts ui


爲防止本身的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

更多的說明請查看自帶的README文本文件,好了之後維護VPS就會省一些心了,可是各位VPSer們注意了安全都是相對的哦,沒有絕對安全,將密碼設置的更Strong,並請按期或不按期的檢查你的VPS主機,並且要定時備份你的數據哦。

與DenyHosts相似的軟件還有fail2ban功能上更多,還能夠對ftp進行保護,本身能夠搜索看一下。

3.啓動服務

service denyhosts start

4. denyhos使用

若是不想讓主機拒絕某一個ip,作法以下:

vi /etc/hosts.allow   

sshd 192.168.0.1  #容許192.168.0.1訪問該主機的ssh服務

若是想拒絕某一個ip一樣使用vi /etc/hosts.deny添加就Ok


=========================

如何得知本身的VPS曾經或正在遭受帳號暴力破解登陸呢?執行如下命令,查詢出來的結果中包含了「ip地址=數量」就是攻擊者信息。

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
相關文章
相關標籤/搜索