當你的linux服務器暴露在互聯網之中,該服務器將會遭到互聯網上的掃描軟件進行掃描,並試圖猜想SSH登陸口令你會發現,天天會有多條SSH登陸失敗紀錄。那些掃描工具將對你的服務器構成威脅,你必須設置複雜登陸口令,並將嘗試屢次登陸失敗的IP給阻止掉,讓其在一段時間內不能訪問該服務器。簡單方法也能夠修改22端口號. python
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
cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg
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 用戶的時間。
注意:不能把帶註釋的配置文件粘貼上去,會報錯!!! 服務器
cd /usr/share/denyhostscp daemon-control-dist daemon-control chown root daemon-control chmod 700 daemon-control ./daemon-control start #啓動DenyHosts
若是要使DenyHosts每次重起後自動啓動還需作以下設置: session
設置入侵檢測工具之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;}'