Linux操作系統(tǒng)的安全策略及相關(guān)知識(shí)
Linux操作系統(tǒng)的安全策略及相關(guān)知識(shí)
Linux操作系統(tǒng)同樣會(huì)受到很多網(wǎng)絡(luò)病毒攻擊。下面由學(xué)習(xí)啦小編為大家整理了Linux操作系統(tǒng)的安全策略及相關(guān)知識(shí),希望對(duì)大家有幫助!
Linux操作系統(tǒng)的安全策略及相關(guān)知識(shí)
1. Linux系統(tǒng)的基本安全機(jī)制介紹
1.1 Linux系統(tǒng)的用戶帳號(hào)
用戶帳號(hào)是用戶的身份標(biāo)志,由用戶名和口令組成。用戶名存放在/etc/passwd文件 中,口令以加密的形式存放在/etc/shadow文件中。在正常情況下,這些口令和其他信息 由操作系統(tǒng)保護(hù),能夠?qū)ζ溥M(jìn)行訪問(wèn)的只能是超級(jí)用戶(root)和操作系統(tǒng)的一些應(yīng)用程 序。但是如果配置不當(dāng)或在一些系統(tǒng)運(yùn)行出錯(cuò)的情況下,這些信息很可能被非法用戶得 到,帶來(lái)安全隱患。
1.2 Linux的文件系統(tǒng)權(quán)限
Linux文件系統(tǒng)的安全如同其它系統(tǒng)一樣主要是通過(guò)設(shè)置文件的權(quán)限來(lái)實(shí)現(xiàn)的。每一個(gè)Linux的文件或目錄,都有3組屬性,分別定義文件或目錄的所有者,用戶組和其他人的使用權(quán)限,主要有只讀,可寫,可執(zhí)行,允許SUID,允許SGID等。在這里我們需要注意,權(quán)限為SUlD和SGID的可執(zhí)行文件,在程序運(yùn)行過(guò)程中,會(huì)給進(jìn)程賦予所有者的權(quán)限,非法用戶很容易發(fā)現(xiàn)這種情況,如果加以利用就會(huì)給系統(tǒng)造成極大危害。
1.3 Linux的系統(tǒng)日志文件
Linux的日志文件用來(lái)記錄整個(gè)操作系統(tǒng)使用狀況。下面介紹一下幾個(gè)重要的系統(tǒng)日志文件:a. /var/log/1astlog文件。此文件中記錄最后登錄系統(tǒng)的用戶登錄時(shí)間,是否登錄成功等信息。管理員登錄后可以用lastlog命令查看文件中記錄的所用帳號(hào)的最后登錄時(shí)問(wèn),再與自己的用機(jī)記錄對(duì)比一下就可以發(fā)現(xiàn)該帳弓是否被非法用戶盜用。 b. /var/log/secure文件。記錄系統(tǒng)自開(kāi)通以來(lái)所有用戶的登錄時(shí)間和地點(diǎn),可以給系統(tǒng)管理員提供更多的參考,c. /var/log/wtmp文件。此文件可以用last命令查看歷史上登錄到系統(tǒng)的用戶的登錄時(shí)間和注銷時(shí)間等信息,刪除這個(gè)文件可以清除系統(tǒng)登錄信息,然后系統(tǒng)會(huì)生成新的登錄信息。
2. Linux系統(tǒng)安全漏洞介紹
本章主要簡(jiǎn)述Linux系統(tǒng)常見(jiàn)安全漏洞,讓讀者對(duì)Linux安全有一個(gè)簡(jiǎn)單的認(rèn)識(shí)并增強(qiáng)管理員在系統(tǒng)安全領(lǐng)域上的憂患意識(shí),更好地維護(hù)系統(tǒng)。
2.1口令和帳號(hào)安全漏洞
非法用戶往往通過(guò)破解帳號(hào)口令來(lái)進(jìn)行系統(tǒng)的攻擊,植入木馬程序來(lái)達(dá)到目的。
2.2端口漏洞
非法用戶通過(guò)探測(cè)工具掃描到利于自己攻擊的端口后進(jìn)行相應(yīng)的破解,達(dá)到攻擊目的。比如Web端口80,ftp端口,snmp端口,sendmail端口等。
2.3遠(yuǎn)程過(guò)程調(diào)用(RPC)
RPC是一個(gè)遠(yuǎn)程工具,它允許在一臺(tái)計(jì)算機(jī)上的程序運(yùn)行在另一個(gè)遠(yuǎn)程計(jì)算機(jī)上。RPC所引起的最大的威脅是它的執(zhí)行權(quán)限,通常情況下它不需要執(zhí)行嚴(yán)格授權(quán)就可以運(yùn)行,這使得非法用戶可以很容易的訪問(wèn)根(管理員)用戶帳戶。在系統(tǒng)上RPC常常處于激活狀態(tài),因此,RPC對(duì)于大多數(shù)情況下的Linux系統(tǒng)來(lái)說(shuō)是一個(gè)潛在的威脅。
2.4 Sendmail
Sendmail作為郵件傳輸代理,它的廣泛使用意味著老版本或者未打補(bǔ)丁的版本中已知的安全漏洞將成為非法用戶們的共同目標(biāo)。
2.5明文服務(wù)
Sniffer攻擊是最常見(jiàn)的攻擊,Sniffer程序是一種利用以太網(wǎng)的特性把網(wǎng)絡(luò)適配卡置為雜亂模式狀態(tài)的工具,一旦網(wǎng)卡設(shè)置為這種模式,它就能接收傳輸在網(wǎng)絡(luò)上的每一個(gè)信息包。而事實(shí)上許多Linux服務(wù),如FTP對(duì)于會(huì)話的任何部分,即使是登錄信息也不加密,這使得這種常見(jiàn)攻擊實(shí)施起來(lái)更容易。Tcpdump程序?qū)@示所有的明文傳輸過(guò)程,非法用戶能夠使用這個(gè)工具來(lái)查看安全漏洞。TcpDump是Linux中強(qiáng)大的網(wǎng)絡(luò)數(shù)據(jù)采集分析工具之一。用簡(jiǎn)單的話來(lái)定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者的定義對(duì)網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行截獲的包分析工具。
2.6簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)
SNMP開(kāi)發(fā)于九十年代早期,其目的是簡(jiǎn)化大型網(wǎng)絡(luò)中設(shè)備的管理和數(shù)據(jù)的獲取。攻擊者通過(guò)SNMP一旦捕獲了網(wǎng)絡(luò)通信,就可以利用各種嗅探工具直接獲取通信字符串,來(lái)達(dá)到獲取重要信息的目的。
3. 攻擊Linux服務(wù)器的四種級(jí)別
隨著Linux企業(yè)應(yīng)用的擴(kuò)展,有大量的用戶使用Linux操作系統(tǒng)。Linux系統(tǒng)的安全性能受到越來(lái)越多的關(guān)注,本章根據(jù)Linux系統(tǒng)受到攻擊的程度通過(guò)級(jí)別形式列出,并提出不同的解決方案。 對(duì)Linux系統(tǒng)攻擊的定義是:攻擊是一種旨在妨礙,損害,削弱,破壞Linux系統(tǒng)安全的未授權(quán)行為。攻擊的范圍可以從服務(wù)拒絕直至完全危害和破壞Linux系統(tǒng)。對(duì)Linux系統(tǒng)攻擊有許多種類,本文從攻擊深度的角度由淺入深來(lái)詳細(xì)闡述。
攻擊級(jí)別一:服務(wù)拒絕攻擊(DoS)
DoS (Denial of Service)攻擊其中文含義是拒絕服務(wù)攻擊,這種攻擊行動(dòng)使網(wǎng)站服務(wù)器充斥大量要求回復(fù)的信息,消耗網(wǎng)絡(luò)帶寬或系統(tǒng)資源,導(dǎo)致網(wǎng)絡(luò)或系統(tǒng)不勝負(fù)荷以至于癱瘓而停止提供正常的網(wǎng)絡(luò)服務(wù)。非法用戶不正當(dāng)?shù)夭捎脴?biāo)準(zhǔn)協(xié)議或連接方法,向攻擊的服務(wù)發(fā)出大量的訊息,占用及超越受攻擊服務(wù)器所能處理的能力,使它當(dāng)(Down)機(jī)或不能正常地為用戶服務(wù)。由于DoS攻擊工具的泛濫,及所針對(duì)的協(xié)議層的缺陷短時(shí)無(wú)法改變的事實(shí),DoS也就成為了流傳最廣,最難防范的攻擊方式。在這些 DoS 攻擊方式中,又可以分為下列幾種:
a.TCP Syn Flooding:
在TCP/IP協(xié)議中,TCP協(xié)議提供可靠的連接服務(wù),采用三次握手建立一個(gè)連接。在每個(gè)TCP建立連接時(shí),都要發(fā)送一個(gè)帶SYN標(biāo)記的數(shù)據(jù)包,如果在服務(wù)器端發(fā)送應(yīng)答包后,客戶端不發(fā)出確認(rèn),服務(wù)器會(huì)等待到數(shù)據(jù)超時(shí),如果大量的帶SYN標(biāo)記的數(shù)據(jù)包發(fā)到服務(wù)器端后都沒(méi)有應(yīng)答,會(huì)使服務(wù)器端的TCP資源迅速枯竭,導(dǎo)致正常的連接不能進(jìn)入,甚至?xí)?dǎo)致服務(wù)器的系統(tǒng)崩潰。這就是TCP SYN Flooding攻擊的過(guò)程。TCP Syn 攻擊是由受控制的大量客戶發(fā)出 TCP 請(qǐng)求但不作回復(fù),使服務(wù)器資源被占用,再也無(wú)法正常為用戶服務(wù)。服務(wù)器要等待超時(shí)(Time Out)才能斷開(kāi)已分配的資源。
b.Smurf
非法用戶采用 ICMP(Internet Control Message Protocol RFC792)技術(shù)進(jìn)行攻擊。常用的ICMP有 ping 。首先非法用戶找出網(wǎng)絡(luò)上有哪些路由器會(huì)回應(yīng) ICMP 請(qǐng)求。然后用一個(gè)虛假的 IP 源地址向路由器的廣播地址發(fā)出訊息,路由器會(huì)把這訊息廣播到網(wǎng)絡(luò)上所連接的每一臺(tái)設(shè)備。這些設(shè)備又馬上回應(yīng),這樣會(huì)產(chǎn)生大量訊息流量,從而占用所有設(shè)備的資源及網(wǎng)絡(luò)帶寬,而回應(yīng)的地址就是受攻擊的目標(biāo)。例如用600K bit/sec 流量的ICMP echo (ping)包廣播到50 臺(tái)設(shè)備,產(chǎn)生 50 個(gè) ping 回應(yīng),便產(chǎn)生 12M bit/sec流量。這些流量流向被攻擊的服務(wù)器,便會(huì)使這服務(wù)器癱瘓。ICMP Smurf 的襲擊加深了ICMP的泛濫程度,導(dǎo)致了在一個(gè)數(shù)據(jù)包產(chǎn)生成千的ICMP數(shù)據(jù)包發(fā)送到一個(gè)根本不需要它們的主機(jī)中去,傳輸多重信息包的服務(wù)器用作Smurf 的放大器。
c.Fraggle:
基本概念及做法像 Smurf, 但它是采用UDP echo訊息。阻擋“拒絕服務(wù)”的攻擊的常用方法之一是:在網(wǎng)絡(luò)上建立一個(gè)過(guò)濾器(filter)或偵測(cè)器(sniffer),在信息到達(dá)網(wǎng)站服務(wù)器之前阻擋信息,過(guò)濾器會(huì)偵察可疑的攻擊行動(dòng)。如果某種可疑行動(dòng)經(jīng)常出現(xiàn),過(guò)濾器能接受指示,阻擋包含那種信息,讓網(wǎng)站服務(wù)器的對(duì)外連接線路保持暢通。
攻擊級(jí)別二:本地用戶獲取了他們非授權(quán)的文件的讀寫權(quán)限
本地用戶是指在本地網(wǎng)絡(luò)的任一臺(tái)機(jī)器上有口令,因而在某一驅(qū)動(dòng)器上有一個(gè)目錄的用戶。本地用戶獲取到了他們非授權(quán)的文件的讀寫權(quán)限的問(wèn)題是否構(gòu)成危險(xiǎn)很大程度上要看被訪問(wèn)文件的關(guān)鍵性。任何本地用戶隨意訪問(wèn)臨時(shí)文件目錄(/tmp)都具有危險(xiǎn)性,它能夠潛在地鋪設(shè)一條通向下一級(jí)別攻擊的路徑。
級(jí)別二的主要攻擊方法是:非法用戶誘騙合法用戶告知其機(jī)密信息或執(zhí)行任務(wù),有時(shí)非法用戶會(huì)假裝網(wǎng)絡(luò)管理人員向用戶發(fā)送郵件,要求用戶給他系統(tǒng)升級(jí)的密碼。由本地用戶啟動(dòng)的攻擊幾乎都是從遠(yuǎn)程登錄開(kāi)始。對(duì)于Linux系統(tǒng),最好的辦法是將所有shell賬號(hào)放置于一個(gè)
單獨(dú)的機(jī)器上,也就是說(shuō),只在一臺(tái)或多臺(tái)分配有shell訪問(wèn)的服務(wù)器上接受注冊(cè)。這可以使日志管理,訪問(wèn)控制管理,釋放協(xié)議和其他潛在的安全問(wèn)題管理更容易些。還應(yīng)該將存放用戶CGI的系統(tǒng)區(qū)分出來(lái)。這些機(jī)器應(yīng)該隔離在特定的網(wǎng)絡(luò)區(qū)段,也就是說(shuō),根據(jù)網(wǎng)絡(luò)的配置情況,它們應(yīng)該被路由器或網(wǎng)絡(luò)交換機(jī)包圍。其拓?fù)浣Y(jié)構(gòu)應(yīng)該確保硬件地址欺騙也不能超出這個(gè)區(qū)段。
攻擊級(jí)別三:遠(yuǎn)程用戶獲得特權(quán)文件的讀寫權(quán)限
第三級(jí)別的攻擊能做到的不只是核實(shí)特定文件是否存在,而且還能讀寫這些文件。造成這種情況的原因是:Linux系統(tǒng)配置中出現(xiàn)這樣一些弱點(diǎn):即遠(yuǎn)程用戶無(wú)需有效賬號(hào)就可以在服務(wù)器上執(zhí)行有限數(shù)量的命令。密碼攻擊法是第三級(jí)別中的主要攻擊法,損壞密碼是最常見(jiàn)的攻擊方法。密碼破解是用以描述在使用或不使用工具的情況下滲透網(wǎng)絡(luò),系統(tǒng)或資源以解鎖用密碼保護(hù)的資源的一個(gè)術(shù)語(yǔ)。用戶常常忽略他們的密碼,密碼政策很難得到實(shí)施。非法用戶有多種工具可以擊敗技術(shù)和社會(huì)所保護(hù)的密碼。主要包括:字典攻擊(Dictionary attack),混合攻擊(Hybrid attack),蠻力攻擊(Brute force attack)。一旦非法用戶擁有了用戶的密碼,他就有很多用戶的特權(quán)。密碼猜想是指手工進(jìn)入普通密碼或通過(guò)編好程序的正本取得密碼。防范第三級(jí)別的攻擊的最好的防衛(wèi)方法便是嚴(yán)格控制進(jìn)入特權(quán),即使用有效的密碼。主要包括密碼應(yīng)當(dāng)遵循字母,數(shù)字,大小寫(因?yàn)長(zhǎng)inux對(duì)大小寫是有區(qū)分)混合使用的規(guī)則。使用像“!”或“@”或“#”這樣的特殊字符也會(huì)添加復(fù)雜性。例如采用"Passw0rd",在它后面添加“!”(Passw0rd!),這樣您就擁有了一個(gè)相當(dāng)有效的密碼。
攻擊級(jí)別四:遠(yuǎn)程用戶獲得根權(quán)限
第四攻擊級(jí)別是最致命的攻擊。表示攻擊者擁有Linux系統(tǒng)的根,超級(jí)用戶或管理員許可權(quán),可以讀,寫并執(zhí)行所有文件。
攻擊級(jí)別四主要攻擊形式是TCP/IP連續(xù)偷竊,被動(dòng)通道聽(tīng)取和信息包攔截。TCP/IP連續(xù)偷竊,被動(dòng)通道聽(tīng)取和信息包攔截,是為進(jìn)入網(wǎng)絡(luò)收集重要信息的方法,不像拒絕服務(wù)攻擊,這些方法有更多類似偷竊的性質(zhì),比較隱蔽不易被發(fā)現(xiàn)。一次成功的TCP/IP攻擊能讓非法用戶阻攔兩個(gè)團(tuán)體之間的交易,提供中間人襲擊的良好機(jī)會(huì),然后非法用戶會(huì)在不被受害者注意的情況下控制一方或雙方的交易。通過(guò)被動(dòng)竊聽(tīng),非法用戶會(huì)操縱和登記信息,把文件送達(dá),也會(huì)從目標(biāo)系統(tǒng)上所有可通過(guò)的通道找到可通過(guò)的致命要害。非法用戶會(huì)尋找聯(lián)機(jī)和密碼的結(jié)合點(diǎn),認(rèn)出申請(qǐng)合法的通道。信息包攔截是指在目標(biāo)系統(tǒng)約束一個(gè)活躍的聽(tīng)者程序以攔截和更改所有的或特別的信息的地址。信息可被改送到非法系統(tǒng)閱讀,然后不加改變地送回給非法用戶。
TCP/IP連續(xù)偷竊實(shí)際就是網(wǎng)絡(luò)嗅探,如果確信有人接了嗅探器到自己的網(wǎng)絡(luò)上,可以去找一些進(jìn)行驗(yàn)證的工具。這種工具稱為時(shí)域反射計(jì)量器(Time Domain Reflectometer,TDR),TDR對(duì)電磁波的傳播和變化進(jìn)行測(cè)量。將一個(gè)TDR連接到網(wǎng)絡(luò)上,能夠檢測(cè)到未授權(quán)的獲取網(wǎng)絡(luò)數(shù)據(jù)的設(shè)備。對(duì)于防范嗅探器的攻擊最好的方法是:
a.安全的拓?fù)浣Y(jié)構(gòu):
嗅探器只能在當(dāng)前網(wǎng)絡(luò)段上進(jìn)行數(shù)據(jù)捕獲,這就意味著,將網(wǎng)絡(luò)分段工作進(jìn)行得越細(xì),嗅探器能夠收集的信息就越少。
b.會(huì)話加密:
不用特別地?fù)?dān)心數(shù)據(jù)被嗅探,而是要想辦法使得嗅探器不認(rèn)識(shí)嗅探到的數(shù)據(jù)。這種方法的優(yōu)點(diǎn)是明顯的,即使攻擊者嗅探到了數(shù)據(jù),這些數(shù)據(jù)對(duì)他也是沒(méi)有用的。
Linux操作系統(tǒng)安全策略實(shí)例詳解
本人所負(fù)責(zé)的一個(gè)項(xiàng)目中16臺(tái)xSeries 服務(wù)器Red Hat Enterprise Linux 6 系統(tǒng)遭到非法用戶的攻擊,本章著重講述非法用戶如何利用安全漏洞攻擊系統(tǒng)以及針對(duì)Linux系統(tǒng)安全漏洞如何做安全配置。
1實(shí)例介紹
項(xiàng)目前期準(zhǔn)備中,用戶發(fā)現(xiàn)Red Hat Enterprise Linux 6系統(tǒng)無(wú)法登陸,上報(bào)給IT服務(wù)部門。經(jīng)過(guò)系統(tǒng)管理員對(duì)系統(tǒng)日志message.log和secure.log分析得出結(jié)論,非法用戶首先使用探測(cè)工具ping到服務(wù)器的外網(wǎng)地址,其次通過(guò)ssh默認(rèn)端口22破譯root口令,最后當(dāng)破解成功后登錄系統(tǒng)進(jìn)行操作,在退出系統(tǒng)同時(shí)刪除日志中所記錄的所有操作,給我們分析非法用戶究竟做了什么動(dòng)作帶來(lái)很大困難,從當(dāng)前的系統(tǒng)檢查看,非法用戶修改了root密碼,且修改了系統(tǒng)帳號(hào)部分配置文件。
附A:查看系統(tǒng)是否遭到攻擊的命令
#lastb | awk '{print }'|sort|uniq -c|sort -n
附B:系統(tǒng)日志secure.log節(jié)選
“Jan 26 13:57:59 RH65Test sshd[28330]: Failed password for invalid user kormoci from 61.142.106.34 port 56074 ssh2” “Jan 31 01:49:02 RH65Test sshd[12978]: Failed password for root from 36.39.246.121 port 42740 ssh2”
補(bǔ)充:Linux操作系統(tǒng)的安全配置
針對(duì)上述實(shí)例出現(xiàn)的安全漏洞,我們有針對(duì)性地主要從密碼策略,用戶設(shè)置,如何開(kāi)放服務(wù),系統(tǒng)補(bǔ)丁,驗(yàn)證方式等方面進(jìn)行系統(tǒng)的安全配置,以到達(dá)使Linux系統(tǒng)更安全,穩(wěn)定。
密碼策略:
a.設(shè)定最小密碼長(zhǎng)度為8位
b.密碼要求有大小寫字母,數(shù)字和特殊字符的組合方式(請(qǐng)參看第三章攻擊級(jí)別三)
c.不使用用戶名作為密碼的一部分或者全部
d.每90天更改一次密碼
e.帳戶不能重復(fù)使用最近8次(含8次)內(nèi)已使用的密碼
f.帳戶登錄次數(shù)設(shè)定為6次,一旦超過(guò)6次,則鎖定帳戶。在本案例中,我們看到非法用戶嘗試登錄次數(shù)最多達(dá)到了4681次,因此通過(guò)設(shè)定用戶嘗試登錄次數(shù)大大地提高了安全性。
用戶設(shè)置:
a.禁止root通過(guò)SSH端口直接登錄
b.創(chuàng)建管理用戶’itadmin’并賦予sudo權(quán)限。sudo是linux系統(tǒng)管理指令,是允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個(gè)工具,如halt,reboot,su等等。這樣不僅減少了root用戶的登錄和管理時(shí)間,同樣也提高了安全性。sudo扮演的角色注定了它要在安全方面格外謹(jǐn)慎,否則就會(huì)導(dǎo)致非法用戶攫取root權(quán)限。同時(shí),它還要兼顧易用性,讓系統(tǒng)管理員能夠更有效,更方便地使用它。sudo設(shè)計(jì)者的宗旨是:給用戶盡可能少的權(quán)限但仍允許完成他們的工作。
c.修改/etc/sudoers文件,使得普通用戶通過(guò)sudo獲取root權(quán)限。
d.設(shè)定自動(dòng)注銷帳號(hào)時(shí)間為10分鐘。如果用戶在離開(kāi)系統(tǒng)之前忘記注銷帳戶或者沒(méi)有關(guān)閉終端窗口,那將會(huì)帶來(lái)很大的安全隱患,應(yīng)該讓系統(tǒng)自動(dòng)注銷。通過(guò)修改賬戶中“TMOUT”參數(shù),實(shí)現(xiàn)用戶的終端在一個(gè)指定的時(shí)間內(nèi)一直空閑時(shí)自動(dòng)注銷。
服務(wù)管理:
在Linux系統(tǒng)的服務(wù)管理方面,如果想做到服務(wù)的最好安全,其中主要的就是升級(jí)服務(wù)本身的軟件版本,另外一個(gè)就是關(guān)閉系統(tǒng)不使用的服務(wù),做到服務(wù)最小化。
a.非法用戶慣用通過(guò)頻繁地使用ping命令方式來(lái)攻擊服務(wù)器,即使攻擊未遂也會(huì)導(dǎo)致網(wǎng)絡(luò)堵塞,降低傳輸效率,為了避免此類惡意的網(wǎng)絡(luò)攻擊,我們關(guān)閉ping服務(wù)。
b.針對(duì)第二章提到的常見(jiàn)安全漏洞4和6,我們需要關(guān)閉sendmail和snmp服務(wù)。
c.修改SSH默認(rèn)端口22為20022,增大非法用戶破解SSH端口的難度。
系統(tǒng)補(bǔ)丁:
搭建yum服務(wù)器,便于將必要的安全補(bǔ)丁升級(jí)到最新版本。
驗(yàn)證方式:
Linux默認(rèn)的遠(yuǎn)程登錄方式通常是SSH,而SSH默認(rèn)使用的驗(yàn)證方式是密碼,在本案例中我們針對(duì)密碼驗(yàn)證方式配置的安全策略,不過(guò)為了更加安全,或者說(shuō)從根本上杜絕非法用戶的攻擊,我們也可以采用Public Key認(rèn)證方式。Public Key(非對(duì)稱,asymmetric)認(rèn)證使用一對(duì)相關(guān)聯(lián)的Key Pair(一個(gè)公鑰Public Key,一個(gè)私鑰Private Key)來(lái)代替?zhèn)鹘y(tǒng)的密碼(或我們常說(shuō)的口令,Password)。顧名思義,Public Key是用來(lái)公開(kāi)的,可以將其放到SSH服務(wù)器自己的帳號(hào)中,而Private Key只能由自己保管,用來(lái)證明自己身份。使用Public Key加密過(guò)的數(shù)據(jù)只有用與之相對(duì)應(yīng)的Private Key才能解密。這樣在認(rèn)證的過(guò)程中,Public Key擁有者便可以通過(guò)Public Key加密一些東西發(fā)送給對(duì)應(yīng)的Private Key擁有者,如果在通信的雙方都擁有對(duì)方的Public Key(自己的Private Key只由自己保管),那么就可以通過(guò)這對(duì)Key Pair來(lái)安全地交換信息,從而實(shí)現(xiàn)相互認(rèn)證。