2014年4月24日 星期四

[轉貼] 用 Deny Hosts 保護你的 Linux 伺服器

文章來源 :用 Deny Hosts 保護你的 Linux 伺服器

我在管理 Linux 主機時最常遇到的一個問題就是只要系統一上線,就會開始有人來 try 我的主機,所以我通常把不太對外的 port 用 iptables 設定僅限於特定 IP 可以存取,不過有時後主機必須對外的時候,被 try 的機會就很高了,例如說 SSHD 就是最常被入侵攻擊的服務之一,今天將介紹 DenyHosts 套件,可有效的幫你阻擋非法的入侵行為。
DenyHosts 是一支用 python 寫成的 Script,主要目的就是幫助 Linux 系統管理者保護你的 SSH 伺服器,避免被駭客用字典攻擊或暴力攻擊(就是一直用不同的帳號、密碼嘗試登入就是了)。如果你有固定在看你的 /var/log/auth.log (或 /var/log/secure)安全紀錄檔的話,就可以知道有多少人在攻擊或嘗試登入你的主機了。而 DenyHosts 就是用來分析這個檔案,將非法登入的行為紀錄下來,超過允許的次數後就會將遠端的 IP 寫入到 /etc/hosts.deny 檔案裡,直接將該 IP 給封鎖住,讓駭客無法再連線。
DenyHosts 真的很簡單易用,不像 iptables 要設定許多複雜的 rules,如果你是用 Ubuntu 的話,只要下一行指令就可以完成所有安裝、設定、啟用服務的工作了,如下:
yum install denyhosts
如果你想讓 DenyHosts 偵測到攻擊行為時發一封 Email 通知你的話,你也可以設定 /etc/denyhosts.conf 檔案
根據自己需要進行相應的配置(解釋見下文件的配置文件)

DenyHosts配置文件:

SECURE_LOG = /var/log/secure
#ssh 日誌文件,它是根據這個文件來判斷的。

HOSTS_DENY = /etc/hosts.deny
#控制用戶登陸的文件

PURGE_DENY = 5m
#過多久後清除已經禁止的

BLOCK_SERVICE = sshd
#禁止的服務名

DENY_THRESHOLD_INVALID = 1

#允許無效用戶失敗的次數

DENY_THRESHOLD_VALID = 3
#允許普通用戶登陸失敗的次數

DENY_THRESHOLD_ROOT = 5
#允許root登陸失敗的次數

HOSTNAME_LOOKUP=NO
#是否做網域名稱反解

ADMIN_EMAIL = mickeysplay@gmail.com
#管理員郵件地址,它會給管理員發郵件

DAEMON_LOG = /var/log/denyhosts
#自己的日誌文件












啟動服務

讓他和系統啟動時一起啟動

#/etc/ini.d/denyhosts start
#chkconfig denyhosts on

可以用一台電腦遠端連接過來測試.如果可以看到/etc/hosts.deny內是否有禁止的IP,有的話說明已經裝設成功了。


注.我發現時間deny以後,刪除ip的時間不是很準.解決的方法是改變DAEMON_PURGE = 這個的時間.我發現系統刪除時間是以他為準.

DAEMON_PURGE:預設清除:當DenyHosts在預設模式下執行,執行清除機械作用過期最久的HOSTS_DENY,這個會影響PURGE_DENY的間隔



設定好之後必須要重新啟動 DenyHosts:


/etc/init.d/denyhosts restart


相關連結


沒有留言:

張貼留言