日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
談?wù)?ssh目錄的安全性

熟悉ssh的同學(xué)應(yīng)該都知道.ssh目錄,這個(gè)目錄用來(lái)保存ssh一些客戶端一些ssh配置、公鑰,公鑰認(rèn)證的文件。~/.ssh的是一個(gè)非常重要的目錄,也是安全隱患點(diǎn),處理不好該目錄安全設(shè)置,對(duì)導(dǎo)致嚴(yán)重安全問(wèn)題,讓主機(jī)被輕而易舉的被人黑掉。據(jù)蟲(chóng)蟲(chóng)所知,一些木馬、自動(dòng)挖礦腳本就借助該目錄信息自動(dòng)擴(kuò)散傳播。本文就給大家介紹~/.ssh/的安全性。

.ssh目錄介紹

目錄~/.ssh/是用來(lái)存儲(chǔ)SSH客戶端和服務(wù)器一些配置文件的位置,這些文件包括:

  • authorized_keys,SSH服務(wù)器默認(rèn)的公鑰認(rèn)證文件,服務(wù)器通過(guò)該文件配置可以使用該用戶認(rèn)證的用戶證書(shū)。SSH證書(shū)認(rèn)證就是客戶端生成證書(shū)(私鑰和公鑰對(duì)),將公鑰復(fù)制到該文件,每行一個(gè)證書(shū)。復(fù)制公鑰時(shí)候可以使用ssh-copy-id命令或者直接手動(dòng)配置authorized_keys文件即可。
  • id_*,包括id_rsa,id_dsa,id_ed25519,id_ecdsa等是保存在該用戶下的證書(shū)私鑰,用戶通過(guò)SSH證書(shū)認(rèn)證時(shí)候會(huì)自動(dòng)搜索這些私鑰進(jìn)行認(rèn)證。
  • id_*.pub 上述私鑰對(duì)應(yīng)的公鑰,以.pub為后綴。
  • known_hosts 保存該主機(jī)連接過(guò)的遠(yuǎn)程服務(wù)器及其對(duì)應(yīng)的主機(jī)公鑰(用來(lái)對(duì)主機(jī)認(rèn)證),再次連接到遠(yuǎn)程服務(wù)器如果公鑰相同,則直接連接認(rèn)證。如果沒(méi)有,或者遠(yuǎn)程服務(wù)器有變化,會(huì)提示:

需要輸入yes,確認(rèn)才行。

  • config 文件用來(lái)配置本地ssh連接的一些項(xiàng)目,比如配置主機(jī)別名的,可以解決同一主機(jī)或者多臺(tái)主機(jī)使用多個(gè)證書(shū),就可以用config配置,比如下面的配置:

 
 
 
 
  1. Host github.com  
  2. HostName github.com  
  3. User git  
  4. IdentityFile ~/.ssh/git/github_id_rsa  
  5.  
  6.  
  7. Host gitee.com  
  8. HostName gitee.com  
  9. User git  
  10. IdentityFile ~/.ssh/git/gitee_id_rsa  
  11.  
  12.  
  13. Host chongchong.com  
  14. HostName 112.34.6.71  
  15. Port 2222  
  16. User chongchong  
  17. IdentityFile ~/.ssh/id_ecdsa  
  18. ForwardX11 yes  
  19. Compression yes  
  20. TCPKeepAlive yes 

前兩個(gè)Host配置對(duì)github和馬云使用不同的證書(shū),后面一個(gè)Host對(duì)一臺(tái)主機(jī)配置使用非默認(rèn)的ssh端口、非默認(rèn)當(dāng)前用戶以及一些啟用一些ssh配置項(xiàng)目。關(guān)于ssh config的配置蟲(chóng)蟲(chóng)之前的文章《Linux SSH實(shí)用技巧幾則》做過(guò)介紹,大家可以參考。

.ssh目錄安全性問(wèn)題

主要的安全隱患,還是由于對(duì).ssh目錄的安全性認(rèn)識(shí)不夠或者由于管理疏忽,導(dǎo)致該目錄的權(quán)限設(shè)置有問(wèn)題?;蛘邔⒛夸洷┞对赪eb目錄或者git公開(kāi)倉(cāng)庫(kù)。比如有些Web服務(wù)器中的www用戶可以直接訪問(wèn)該目錄。由于直接將用戶目錄設(shè)置成了Web根目錄,而.ssh目錄又是用戶目錄的子目錄所以可以直接訪問(wèn)。

現(xiàn)在,絕大多數(shù)的管理員和開(kāi)發(fā)都知道使用密碼登陸服務(wù)是不安全的,因此都會(huì)用證書(shū)登陸。如果。ssh目錄泄露意味著:

  • 可以直接獲得/.ssh/id_rsa等私鑰;
  • 可以直接知道authorized_keys、known_hosts和config的內(nèi)容。

證書(shū)泄露

id_*文件是最重要級(jí)別的個(gè)人文件,該文件不允許泄露給第三人,根據(jù)不同的證書(shū)類型,私鑰文件名可能為了id_dsa(DSA證書(shū)已經(jīng)不是安全,請(qǐng)避免使用),id_rsa(RSA證書(shū),請(qǐng)保證2048位以上),id_ecdsa和id_ed25519,一般來(lái)說(shuō)私鑰文件都會(huì)PRIVATE KEY的注釋行,比如:

為了避免證書(shū)泄露后也能保持安全,建議私鑰都設(shè)置證書(shū)密碼:

以下密鑰沒(méi)有密碼,ssh-keygen -y -f id_ecdsa可以直接顯示公鑰

 
 
 
 
  1. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBmGXiNwudm3JaGNVERkl013/9OQVR0tfgvcmapONuecVl4EXNE4w0VyZA1ZD2s3hj02x/Y294IwfhExiaDhTyY= 

如果設(shè)置密碼保護(hù),則會(huì)提示輸入密碼:

 
 
 
 
  1. Enter passphrase: 
  2.  
  3. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBmGXiNwudm3JaGNVERkl013/9OQVR0tfgvcmapONuecVl4EXNE4w0VyZA1ZD2s3hj02x/Y294IwfhExiaDhTyY= 

authorized_keys泄露

就算是私鑰泄露來(lái),如果沒(méi)有其他信息,黑客也不知道私鑰能用來(lái)連接到哪里,這就是為啥要把關(guān)鍵主機(jī)、一般主機(jī)以及用于管理git的證書(shū)都分別獨(dú)立使用的,防止私鑰泄露后導(dǎo)致的問(wèn)題。但是黑客可以借助.ssh目錄下的其他文件來(lái)獲取更多的信息來(lái)精準(zhǔn)的利用竊取的私鑰。其中有個(gè)文件authorized_keys,前面我提到了,是用來(lái)配置可以連接到該主機(jī)用戶下的所有的證書(shū)公鑰。文件一行一個(gè)公鑰,公鑰以ssh-rsa,ssh-dss,ssh-ed25519,ssh-ecdsa開(kāi)頭,表示不同的證書(shū)類型。如果黑客獲取了這些密鑰,可以通過(guò)對(duì)比證書(shū)方式,驗(yàn)證對(duì)應(yīng)私鑰,然后可以利用私鑰最終攻陷主機(jī)。如果攻擊者成功,將會(huì)有完整SSH訪問(wèn)權(quán)限,能夠運(yùn)行任何命令。

known_hosts泄露

如果?/.ssh /known_hosts泄露,則導(dǎo)致的危險(xiǎn)性更大,因?yàn)樵撐募涗浟?,該主機(jī)私鑰可以連接的遠(yuǎn)程主機(jī)列表。

根據(jù)該文件中的主機(jī)名或IP地址,可以直接被用來(lái)私鑰來(lái)嘗試登陸。很多木馬傳播方式就是利用自動(dòng)解析該文件獲取IP或者主機(jī)自動(dòng)嘗試登陸。

上面是一個(gè)挖礦木馬自動(dòng)傳播部分腳本,從known_hosts獲取傳播目標(biāo):

 
 
 
 
  1. cat /root/.ssh/known_hosts|grep -v ,|awk '{print $1}' > /tmp/.h 
  2. cat /root/.ssh/known_hosts|grep ,|awk -F, '{print $1}' >> /tmp/.h 
  3. cat /root/.ssh/known_hosts|grep ,|awk -F, '{print $1}' >> /tmp/.h 

為了避免這種攻擊,可以設(shè)置ssh配置(/etc/ssh/ssh_config)的HashKnownHosts 為yes,則會(huì)對(duì)相關(guān)信息做哈希處理。則該文件條目就會(huì)被加密,結(jié)果如下:

 
 
 
 
  1. |1|wlPQdgFoYgYsqG6ae20lYopRLPI=|p61txQKmb+Hn49dsD+v0CNuEKd4= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzhZmG33G/3FG3vm0eDdyX1u++i0ceakIkJNgDxVVy6MpodRrpwqXXQj8/OGT 
  2. Iwb4YpRXGuL3236IkGugI9GUgFd00UNjMSMt3pqob4hKsEzADl7YfZeV1X7X0b617nze0otdO7TwDMlQ/5KWUwdUoxg50VfpieTzcOpUN/G4J159iKZ41iSF7o4vI+fYisX8y5rJ1BRbt1HO0Gi7w9HZ8tN0B  
  3. 0glM6JKyoE8TjvbZAeD9PWIWp9JpG1KTY4yXTV1B1CyvtxjRqTMm8mcb+gSGGvv6mSlWCNxJnlXhp91F2GtmgzKsE3FjcMUfkn3c0+P0bKaR8L3GtbyaXJmtDX4xQ== 

其中第二部分wlPQdgFoYgYsqG6ae20lYopRLPI=為hostname加密。

第三部分p61txQKmb+Hn49dsD+v0CNuEKd4=為加密的IP地址。

加密的方法是HMAC-SHA1,而且我們知道IP地址是有限的:四段,每段1-255(2^32)可以群舉,所以可以通過(guò)暴力攻擊,計(jì)算哈希,對(duì)比哈希。有興趣的同學(xué)可以嘗試下。

config泄露

SSH客戶端的配置文件通常包含hostname,別名,用戶名,ssh端口,證書(shū)位置等信息。如果該文件暴露,可為攻擊者提供更多信息,其危害類似known_hosts。

安全措施

要避免由于.ssh目錄導(dǎo)致的安全問(wèn)題,首先要設(shè)置目錄和文件的權(quán)限。比如.ssh目錄要設(shè)置為700,所有私鑰文件和config文件要設(shè)置為600。

其次,避免將.ssh目錄暴露到Web目錄。

使用代理轉(zhuǎn)發(fā)或ProxyJump。

在Web服務(wù)器的配置中添加特殊規(guī)則,阻止對(duì)/.ssh/目錄的訪問(wèn)。

最后,避免.ssh配置文件,證書(shū)文件暴露到git公共倉(cāng)庫(kù)(github)等。

 


分享文章:談?wù)?ssh目錄的安全性
路徑分享:http://www.5511xx.com/article/codhhpe.html