DenyHosts是Python語言寫的一個程序孽鸡,它會分析sshd的日志文件(/var/log/secure)蹂午,當發(fā)現(xiàn)重 復的攻擊時就會記錄IP到/etc/hosts.deny文件栏豺,從而達到自動屏IP的功能彬碱。
1. 到官網(wǎng)下載DenyHosts
DenyHosts官網(wǎng):http://denyhosts.sourceforge.net/
2. 解壓并安裝
# 官網(wǎng)下載包安裝
[root@www ~]# tar zxvf DenyHosts-2.6.tar.gz
[root@www ~]# cd DenyHosts-2.6
[root@www DenyHosts-2.6]# yum install python -y
[root@www DenyHosts-2.6]# python setup.py install
[root@www DenyHosts-2.6]# cd /usr/share/denyhosts/
[root@www denyhosts]# cp denyhosts.cfg-dist denyhosts.cfg //配置文件
[root@www denyhosts]# cp daemon-control-dist daemon-control //啟動文件
[root@www denyhosts]# chown root daemon-control
[root@www denyhosts]# chmod 700 daemon-control
# yum安裝
[root@www ~]# yum install -y denyhosts
3. 配置文件內(nèi)容說明
[root@www denyhosts]# vi denyhosts.cfg
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 #阻止服務名
PURGE_THRESHOLD = #定義了某一IP最多被解封多少次。某IP暴力破解SSH密碼被阻止/解封達到了PURGE_THRESHOLD次奥洼,則會被永久禁止巷疼;
DENY_THRESHOLD_INVALID = 1 #允許無效用戶登錄失敗的次數(shù)
DENY_THRESHOLD_VALID = 10 #允許普通用戶登錄失敗的次數(shù)
DENY_THRESHOLD_ROOT = 5 #允許root登錄失敗的次數(shù)
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 = #設置管理員郵件地址
DAEMON_LOG = /var/log/denyhosts #DenyHosts日志位置
ps:配置文件內(nèi)容根據(jù)自己需要自行調(diào)整
4. 啟動自啟動服務
# ./daemon-control start #啟動DenyHosts
# ln -s /usr/share/denyhosts/daemon-control /etc/init.d //對daemon-control進行軟連接,方便管理
# /etc/init.d/daemon-control start //啟動denyhosts
# chkconfig daemon-control on //將denghosts設成開機啟動
或者
# vi /etc/rc.local --------->加入下面這條命令:
/usr/share/denyhosts/daemon-control start
5. 以后可以直接查看hosts.deny文件就能找到攻擊ip的記錄
# vi /etc/hosts.deny