在我們使用Linux或Unix組建服務器時,為了方便遠程維護和管理,基本上都會開放sshd服務。雖然ssh將聯機的封包通過加密的技術來進行資料的傳遞,能夠有效地抵御黑客使用網絡偵聽來獲取口令和秘密信息,但是仍然不乏大量入侵者進行密碼嘗試或其他手段來攻擊ssh服務器以圖獲得服務器控制權。如何才能使自己的服務器更安全可靠呢?只要我們對ssh服務器的配置略加調整,就可以極大地提高系統的安全性,降低網絡入侵的風險。具體操作如下:
1.修改sshd服務器的配置文件/etc/ssh/sshd_config,將部分參數參照如下修改,增強安全性。
Port 5555
系統缺省使用22號端口,將監聽端口更改為其他數值(最好是1024以上的高端口,以免和其他常規服務端口沖突),這樣可以增加入侵者探測系統是否運行了sshd守護進程的難度。
ListenAddress 192.168.0.1
對於在服務器上安裝了多個網卡或配置多個IP地址的情況,設定sshd只在其中一個指定的接口地址監聽,這樣可以減少sshd的入口,降低入侵的可能性。
PermitRootLogin no
如果允許用戶使用root用戶登錄,那麼黑客們可以針對root用戶嘗試暴力破解密碼,給系統安全帶來風險。
PermitEmptyPasswords no
允許使用空密碼系統就像不設防的堡壘,任何安全措施都是一句空話。
AllowUsers sshuser1 sshuser2
只允許指定的某些用戶通過ssh訪問服務器,將ssh使用權限限定在最小的范圍內。
AllowGroups sshgroup
同上面的AllowUsers類似,限定指定的用戶組通過ssh訪問服務器,二者對於限定訪問服務器有相同的效果。
Protocol 2
禁止使用版本1協議,因為其存在設計缺陷,很容易使密碼被黑掉。
禁止所有不需要的(或不安全的)授權認證方式。
X11Forwarding no
關閉X11Forwarding,防止會話被劫持。
MaxStartups 5
sshd服務運行時每一個連接都要使用一大塊可觀的內存,這也是ssh存在拒絕服務攻擊的原因。一台服務器除非存在許多管理員同時管理服務器,否則上面這個連接數設置是夠用了。
注意:以上參數設置僅僅是一個示例,用戶具體使用時應根據各自的環境做相應的更改。
2.修改sshd服務器的配置文件/etc/ssh/sshd_config的讀寫權限,對所有非root用戶設置只讀權限,防止非授權用戶修改sshd服務的安全設置。
chmod 644 /etc/ssh/sshd_config
3.設置TCP Wrappers。服務器默認接受所有的請求連接,這是非常危險的。使用TCP Wrappers可以阻止或允許應用服務僅對某些主機開放,給系統在增加一道安全屏障。這部分設置共涉計到兩個文件:hosts.allow和hosts.deny。
將那些明確允許的請求添加到/etc/hosts.allow中。如系統僅允許IP地址為192.168.0.15和10.0.0.11的主機使用sshd服務,則添加如下內容:
sshd:192.168.0.15 10.0.0.11
將需要禁止使用的信息添加到/etc/hosts.deny中。如對除了在hosts.allow列表中明確允許使用sshd的用戶外,所有其他用戶都禁止使用sshd服務,則添加如下內容到hosts.deny文件中:
sshd:All
注意:系統對上述兩個文件的判斷順序是先檢查hosts.allow文件再查看hosts.deny文件,因此一個用戶在hosts.allow允許使用網絡資源,而同時在hosts.deny中禁止使用該網絡資源,在這種情況下系統優先選擇使用hosts.allow配置,允許用戶使用該網絡資源。
4.盡量關閉一些系統不需要的啟動服務。系統默認情況下啟動了許多與網絡相關的服務,因此相對應的開放了許多端口進行LISTENING(監聽)。我們知道,開放的端口越多,系統從外部被入侵的可能也就越大,所以我們要盡量關閉一些不需要的啟動服務,從而盡可能的關閉端口,提供系統的安全性。
通過以上步驟基本上將sshd服務設置上可能出現的漏洞堵上了,不需要投資,只要我們稍微花點時間調整一下配置,就可極大提高系統的安全環境,何樂而不為呢?