DenyHosts是Python語言寫的一個程序,它會分析sshd的日志文件(/var/log/secure),當發現重 復的攻擊時就會記錄IP到/etc/hosts.deny文件,從而達到自動屏IP的功能。
參考文檔:
http://www.cnblogs.com/suihui/p/3899381.html
鑒於阿里雲已經是部署了epel鏡像源,所以直接使用yum安裝即可:
yum install denyhosts -y
配置文件/etc/denyhosts.cfg:
#日志文件存放位置(直接用默認即可) SECURE_LOG = /var/log/secure #系統控制用戶登錄文件 HOSTS_DENY = /etc/hosts.deny #過多久后清除已經禁止的 PURGE_DENY = #禁止服務名稱 BLOCK_SERVICE = sshd #無效用戶登錄失敗次數(/etc/passwd文件中沒有的用戶) DENY_THRESHOLD_INVALID = 1 #普通用戶登錄失敗次數(/etc/passwd文件中有的用戶 DENY_THRESHOLD_VALID = 10 #root登錄失敗次數 DENY_THRESHOLD_ROOT = 3 DENY_THRESHOLD_RESTRICTED = 1 #存放denyhosts信息的位置,可以從這里看到被攻擊的情況 WORK_DIR = /usr/share/denyhosts/data SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES #禁止做逆向域名解析 HOSTNAME_LOOKUP=NO LOCK_FILE = /var/lock/subsys/denyhosts #denyhosts自己的日志文件 DAEMON_LOG = /var/log/denyhosts #設置郵件報警 ADMIN_EMAIL = #mail1.apicloud.com,mail2.apicloud.com SMTP_HOST = mail.163.com SMTP_PORT = 25 SMTP_USERNAME=gitlab2015@163.com SMTP_PASSWORD=nxgfvizafijytymx SMTP_FROM = DenyHosts <gitlab2015@163.com> SMTP_SUBJECT = DenyHosts Report #重置設置 AGE_RESET_VALID=5d AGE_RESET_ROOT=25d AGE_RESET_RESTRICTED=25d AGE_RESET_INVALID=10d DAEMON_SLEEP = 30s DAEMON_PURGE = 1h
設置白名單:
echo "10.*.*.*" >> /var/lib/denyhosts/allowed-hosts #相當於將10.0.0.0/8整個內網網段加到白名單
刪除黑名單中的IP:
如果想刪除一個已經禁止的主機IP,並加入到允許主機例表,只在 /etc/hosts.deny 刪除是沒用的。需要進入 /var/lib/denyhosts 目錄,進入以下操作: 1、停止DenyHosts服務:$service denyhosts stop 2、在 /etc/hosts.deny 中刪除你想取消的主機IP 3、編輯 DenyHosts 工作目錄的所有文件,通過 $grep 192.168.1.191 /var/lib/denyhosts/* 然后一個個刪除文件中你想取消的主機IP所在的行: */var/lib/denyhosts/hosts */var/lib/denyhosts/hosts-restricted */var/lib/denyhosts/hosts-root */var/lib/denyhosts/hosts-valid */var/lib/denyhosts/users-hosts 4、添加你想允許的主機IP地址到 /var/lib/denyhosts/allowed-hosts vi /var/lib/denyhosts/allowed-hostsps # We mustn't block localhost 127.0.0.1 192.168.1.* 5、啟動DenyHosts服務: service denyhosts start