上網被掃描是經常的事,為了避免 ssh 帳號和密碼被暴力破解,Ubuntu下可以利用安裝 denyhosts 來加強系統安全性。
1.安裝
sudo apt-get install denyhosts
2.配置 /etc/denyhosts.conf 。內容參考:
sshd 登錄日志文件。不同系統的不一樣。
SECURE_LOG = /var/log/auth.log
限制主機訪問的文件
HOSTS_DENY = /etc/hosts.deny
移除 HOSTS_DENY 中超過以下時間的舊條目
PURGE_DENY = 1w
阻止的服務。默認是 sshd ,可以設置為其他或全部。
BLOCK_SERVICE = sshd
當該主機利用無效用戶進行登錄嘗試失敗超過以下的次數時,阻止該主機
DENY_THRESHOLD_INVALID = 3
針對有效用戶的
DENY_THRESHOLD_VALID = 4
針對 root 用戶的
DENY_THRESHOLD_ROOT = 1
針對有限制的用戶的
DENY_THRESHOLD_RESTRICTED = 1
DenyHosts 用於寫數據用的。在裡面可以看到 hosts,hosts-root,offset,users-hosts,users-valid,hosts-restricted,hosts- valid,suspicious-logins,users-invalid 這些記錄。
WORK_DIR = /var/lib/denyhosts
當為 YES 時,如果允許的主機在登錄時被認為可疑,則對該主機進行記錄。當為 NO 時,如果允許的主機在登錄時被認為可疑也不對該主機進行記錄。在允許的主機范圍外的主機的可疑登錄全部會被記錄。
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
反向域名解釋
HOSTNAME_LOOKUP=NO
這個文件存在表示 Denyhosts 正在運行。用於保證每次只有一個實例在運行。
LOCK_FILE = /var/run/denyhosts.pid
管理員 EMail
ADMIN_EMAIL = root@localhost
SMTP 主機設置。如果有 SMTP 服務支持,可以給管理員發郵件。
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <nobody@localhost>
SMTP_SUBJECT = DenyHosts Report
如果在指定的時間內沒有失敗的登錄嘗試,將導致此主機的失敗計數重置為0。此值適用於除了 root 之外,所有有效用戶(在 /etc/passwd 中的)的登錄嘗試。如果沒有定義,這個計數將永遠不會重置。
AGE_RESET_VALID=5d
針對 root 用戶的
AGE_RESET_ROOT=25d
針對有限制的用戶的
AGE_RESET_RESTRICTED=25d
針對無效用戶(不在 /etc/passwd 中的)
AGE_RESET_INVALID=1w
當登錄成功時,把登錄成功的失敗計數重置為0。默認是 NO。
#RESET_ON_SUCCESS = yes
當以後台方式運行時,Denyhosts 的日志文件,留空不記錄日志。
#DAEMON_LOG = /var/log/denyhosts
當以後台方式運行時,每讀一次日志文件的時間間隔。
DAEMON_SLEEP = 30s
當以後台方式運行時,清除機制在 HOSTS_DENY 中終止舊條目的時間間隔。
DAEMON_PURGE = 1h
3.重啟 Denyhosts
sudo /etc/init.d/denyhosts restart