本文參考自 站長評測網
- 清除SSH登錄記錄,防止裝完屏蔽自己。
echo "" > /var/log/auth.log - 安裝denyhosts
apt-get install denyhosts - vim /etc/denyhosts.conf
SECURE_LOG = /var/log/auth.log
PURGE_DENY = 30m #過多久清除已阻止IP
HOSTS_DENY = /etc/hosts.deny #將阻止IP寫入到hosts.deny
BLOCK_SERVICE = sshd
DENY_THRESHOLD_INVALID = 3 #允許無效用戶登錄失敗的次數
DENY_THRESHOLD_VALID = 5 #允許普通用戶登錄失敗的次數
DENY_THRESHOLD_ROOT = 3 #允許root登錄失敗的次數
DENY_THRESHOLD_RESTRICTED = 1 #設定 deny host 寫入到該資料夾
WORK_DIR = /var/lib/denyhosts #將deny的host或ip紀錄到Work_dir中
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
#如果為YES,所有在$WORK_DIR/allowed-host時面的IP地址將會被認為是可疑的,如果設置為NO,所有在allowd-hosts試圖登陸的結果,將不會發送警告郵件!所有不在$WORK_DIR/allowed-host時面的IP地址將會發送警告!
HOSTNAME_LOOKUP=NO #是否將IP地址解析為主機名。
LOCK_FILE = /var/run/denyhosts.pid #定義PID文件的位置,確保同時只有一個Denyhost進程在運行
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_VALID=5d #多長時間后,用戶登錄失敗的次數被置為0,這里是指在/etc/passwd里面定義的用戶,如果不設置,永遠都不會置0
AGE_RESET_ROOT=25d #多長時間后,root用戶登錄失敗的次數置為0,如果不設置,永遠都不會置0
AGE_RESET_RESTRICTED=25d #在$WORK_DIR/hosts-restricted時面定義的用戶,多長時間失敗次數計數器被置為0
AGE_RESET_INVALID=10d #無效用戶(不在/etc/passwd里面的用戶)的失敗次數計數器,多長時間被置為0
RESET_ON_SUCCESS = yes #當某個IP使用某個用戶登錄成功后,該IP對應的用戶失敗次數將會被置為0
DAEMON_LOG = /var/log/denyhosts #當denyhost運行在守護進程模式的時候,日志文件存儲的位置
DAEMON_SLEEP = 30s #輪詢查看SSHD日志的間隔
DAEMON_PURGE = 1h #多長時間清空$HOSTS_DENY中的IP地址,如果PURGE_DENY為空,這個設置將無效 - 重啟/etc/init.d/denyhosts restart
- 設定白名單(出現不小心打錯密碼被列入黑名單後, 雖然手動去 /etc/hosts.deny 移除, 但不久又被 denyhosts 自動加回時, 需要處理的程序)
vim /etc/hosts.allow