雷麗娟 許敏
摘 要 本文對(duì)Linux系統(tǒng)安全進(jìn)行了簡(jiǎn)單的介紹,并從系統(tǒng)的用戶管理和一些安全工具的使用方面闡述如何保護(hù)Linux安全。
關(guān)鍵詞 Linux 系統(tǒng)安全 用戶管理 安全工具
中圖分類號(hào):TP316.8 文獻(xiàn)標(biāo)識(shí)碼:A
安全是當(dāng)今IT相關(guān)頭條新聞的重要話題。經(jīng)常出現(xiàn)的系統(tǒng)漏洞和安全補(bǔ)丁以及病毒和蠕蟲是每個(gè)使用計(jì)算機(jī)的人都耳熟能詳?shù)拿~。因?yàn)閹缀趺颗_(tái)計(jì)算機(jī)系統(tǒng)都連接到另外的計(jì)算機(jī)或者連接到Internet,因此確保這些計(jì)算機(jī)的安全,對(duì)于減少入侵、數(shù)據(jù)竊取或丟失、誤用甚至對(duì)第三方的責(zé)任而言都是至關(guān)重要的。①
Linux作為一個(gè)現(xiàn)代的、開放源代碼的操作系統(tǒng),它允許用戶自由的復(fù)制和修改其源代碼,用戶可以根據(jù)自己的環(huán)境定制Linux、向操作系統(tǒng)添加新部件等,正是由于軟件的每個(gè)用戶和開發(fā)者都可以訪問其源代碼,因而有許多人在控制和審視源代碼中可能的安全漏洞。軟件缺陷很快會(huì)被發(fā)現(xiàn)。一方面,這會(huì)導(dǎo)致這些缺陷更早被利用;另一方面,很快就會(huì)有可用的安全補(bǔ)丁。
當(dāng)系統(tǒng)連接到網(wǎng)絡(luò)并向其他計(jì)算機(jī)提供服務(wù)時(shí),系統(tǒng)就會(huì)有可能成為被攻擊的對(duì)象。在這種情況下,系統(tǒng)漏洞可能會(huì)讓入侵者控制計(jì)算機(jī)。因此,從開始計(jì)劃直到拆除系統(tǒng)的整個(gè)系統(tǒng)生命周期中安全都是一個(gè)最基本的問題。
那么,如何保護(hù)Linux安全呢?
1 系統(tǒng)的用戶管理
與其他UNIX操作系統(tǒng)一樣,在進(jìn)入Linux系統(tǒng)時(shí)需要驗(yàn)證賬號(hào)和密碼。Linux一般將密碼加密之后,存放在/etc/passwd文件中,Linux系統(tǒng)上的所有用戶都可以讀到該文件,這種方法不太安全,因?yàn)橐话愕挠脩艨梢岳矛F(xiàn)成的密碼破譯工具,用窮舉法猜測(cè)出密碼。②比較安全的方法是設(shè)定影子文件/etc/shadow,通過(guò)影子文件允許特殊權(quán)限的用戶閱讀該文件。在Linux系統(tǒng)中,如果要采用影子文件,必須將所有的公用程序重新編譯,才能支持影子文件。這種方法比較麻煩,比較簡(jiǎn)單的方法是采用插入式驗(yàn)證模塊(PAM)。很多Linux系統(tǒng)都帶有PAM,它是一種身份驗(yàn)證機(jī)制,可以用來(lái)動(dòng)態(tài)地改變身份驗(yàn)證的方法和要求,而不要求重新編譯其他公用程序。這是因?yàn)镻AM采用封閉包的方式,將所有與身份驗(yàn)證有關(guān)的邏輯全部隱藏在模塊內(nèi),因此它是影子文件的最佳幫手。
除密碼之外,用戶賬號(hào)也有安全等級(jí),這是因?yàn)樵贚inux上每個(gè)賬號(hào)可以被賦予不同的權(quán)限,因此在建立一個(gè)新用戶ID時(shí),系統(tǒng)管理員應(yīng)該根據(jù)需要賦予該賬號(hào)不同的權(quán)限,并且歸并到不同的用戶組中。
在Linux系統(tǒng)中,可以在/etc/hosts.allow文件中設(shè)定允許上機(jī)人員的名單,同時(shí)在/etc/hosts.deny文件中設(shè)置不允許上機(jī)人員的名單,Linux將自動(dòng)把允許進(jìn)入或不允許進(jìn)入的結(jié)果記錄到/rar/log/secure文件中,系統(tǒng)管理員可以據(jù)此查出可疑的進(jìn)入記錄。
每個(gè)賬號(hào)ID應(yīng)該有專人負(fù)責(zé)。在企業(yè)中,如果負(fù)責(zé)某個(gè)ID的職員離職,管理員應(yīng)立即從系統(tǒng)中刪除該賬號(hào)。很多入侵事件都是利用了那些很久不用的賬號(hào)。
在用戶賬號(hào)之中,尤其要注意具有root權(quán)限的賬號(hào),這種超級(jí)用戶權(quán)力無(wú)限,可以修改或刪除各種系統(tǒng)設(shè)置。因此,在給任何賬號(hào)賦予root權(quán)限之前,都必須仔細(xì)考慮,最好不要輕易將超級(jí)用戶授權(quán)出去。Linux系統(tǒng)中的/etc/security文件包含了一組能夠以root賬號(hào)登陸的終端機(jī)名稱,該文件的初始值僅允許本地虛擬控制臺(tái)(rtys)以root權(quán)限登陸,而不允許遠(yuǎn)程用戶以root權(quán)限登陸,最好不要修改該文件。有些程序的安裝和維護(hù)工作必須要求有超級(jí)用戶的權(quán)限,在這種情況下,可以利用sudo這樣的工具讓這類用戶有部分超級(jí)用戶的權(quán)限。
2 安全工具
下面介紹一些可以用于Linux的安全工具,這些工具使用戶的服務(wù)器運(yùn)行起來(lái)更加安全,可以解決各方面的問題。
2.1 nmap和nessus網(wǎng)絡(luò)安全掃描工具
nmap工具是一個(gè)端口掃描工具,它能掃描整個(gè)網(wǎng)絡(luò)或一臺(tái)主機(jī)上的開放端口。如果讀者對(duì)安全擔(dān)憂或者要尋找攻擊者將會(huì)發(fā)現(xiàn)的漏洞,那么應(yīng)花些時(shí)間來(lái)安裝并使用nmap。nmap集成了大量的掃描技術(shù)。nmap工具還可以使用TCP/IP指紋來(lái)識(shí)別一個(gè)遠(yuǎn)程系統(tǒng)運(yùn)行的是哪種操作系統(tǒng)。該工具處于系統(tǒng)管理員和攻擊工具之間的灰色區(qū)域。如果讀者負(fù)責(zé)一個(gè)網(wǎng)絡(luò),可以使用nmap檢測(cè)本地網(wǎng)絡(luò)是否有安全漏洞。
nessus是一個(gè)功能強(qiáng)大而又易于使用的遠(yuǎn)程安全掃描器,它不僅免費(fèi)而且更新極快。安全掃描器的功能是對(duì)指定網(wǎng)絡(luò)進(jìn)行安全檢查,找出該網(wǎng)絡(luò)是否存在會(huì)導(dǎo)致對(duì)手攻擊的安全漏洞。該系統(tǒng)被設(shè)計(jì)為C/S模式,服務(wù)器段負(fù)責(zé)進(jìn)行安全檢查,客戶端用來(lái)配置管理服務(wù)器。nessus的安全檢查是由大量插件完成的,其擴(kuò)展性強(qiáng),容易使用,功能強(qiáng)大,可以掃描出多種安全漏洞。
2.2 弱點(diǎn)測(cè)試工具
(1)chkacct。chkacct是一個(gè)檢查用戶賬號(hào)安全的工具。它能檢查文件的權(quán)限并恢復(fù)到初始權(quán)限。它還能尋找那些能被所有用戶可讀的文件并查看以點(diǎn)號(hào)開頭的文件。它可以被用戶使用或者被系統(tǒng)或安全管理員專用。
(2)Courtney。Courtney檢測(cè)一個(gè)網(wǎng)絡(luò),查明SATAN探索的結(jié)果 ,并試圖識(shí)別他們的來(lái)源。它從tcpdump獲得輸入并計(jì)算一臺(tái)機(jī)器在一個(gè)特定時(shí)段內(nèi)產(chǎn)生新的服務(wù)請(qǐng)求的次數(shù)。如果在該時(shí)段內(nèi),一臺(tái)機(jī)器和大量服務(wù)器連接,Courtney就把該機(jī)器識(shí)別為一個(gè)潛在的SATAN主機(jī)
3 日志工具(logrotate,swatch,logcheck)
(1)logrotate。一般的Linux發(fā)行版中都自帶這個(gè)工具,能夠解決日志文件過(guò)大的問題。它可以自動(dòng)使日志循環(huán),刪除保存最久的日志??梢园阉旁赾rontab中,每天定期運(yùn)行。這在很多Linux發(fā)行版中都是默認(rèn)設(shè)置的。
(2)swatch。Swatch是一個(gè)實(shí)時(shí)的日志監(jiān)控工具。讀者可以設(shè)置感興趣的時(shí)間,它可以在事件發(fā)生的時(shí)候告訴讀者。Swatch有兩種運(yùn)行方式:一種可以在檢查日志完畢退出,另一種可以連續(xù)監(jiān)視日志中的新信息。
4 SSH和Tripwire
(1)SSH服務(wù)
傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序,如ftp、pop和telnet在本周上都是不安全的,因?yàn)樗鼈冊(cè)诰W(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù),別有用心的人非常容易截獲這些口令和數(shù)據(jù)。而且,這些服務(wù)程序的安全驗(yàn)證方式也是有其弱點(diǎn)的,就是很容易收到“中間人”方式的攻擊。這些“中間人”冒充真正的服務(wù)器接收用戶傳給服務(wù)器的數(shù)據(jù),然后冒充用戶的數(shù)據(jù)傳給真正的服務(wù)器。
通過(guò)使用SSH,用戶可以把所有傳輸?shù)臄?shù)據(jù)進(jìn)行加密,這樣“中間人”這種攻擊方式就不可能實(shí)現(xiàn)了,而且也能夠防止DNS和IP欺騙。還有一個(gè)額外的好處就是傳輸?shù)臄?shù)據(jù)是經(jīng)過(guò)壓縮的,所以可以加快傳輸?shù)乃俣取?/p>
(2)Tripwire
如果有人侵入了你的系統(tǒng),在系統(tǒng)中放置了木馬和后門,你怎么才能知道呢?tripwire就是這樣一個(gè)對(duì)系統(tǒng)做完整性檢查的工具,它是目前最為著名的Linux下文件系統(tǒng)完整性檢查的軟件工具,這一軟件采用的技術(shù)核心就是對(duì)每個(gè)要監(jiān)控的文件產(chǎn)生一個(gè)數(shù)字簽名,保留下來(lái)。當(dāng)文件現(xiàn)在的數(shù)字簽名與保留的數(shù)字簽名不一致時(shí),那么現(xiàn)在這個(gè)文件必定被改動(dòng)過(guò)了。
5 反掃描工具Portsentry
通過(guò)防火墻可以限制自己系統(tǒng)中什么端口開放,什么端口不開放。對(duì)于外部的人們來(lái)說(shuō),這些信息都是保密的。黑客為了得到他人計(jì)算機(jī)中開放的端口,往往會(huì)進(jìn)行各種方式的掃描,這樣的掃描在互聯(lián)網(wǎng)上也推出課件。一般的掃描活動(dòng)都是進(jìn)行入侵的前奏,對(duì)安全是極大的威脅。Portsentry就是這樣一個(gè)反掃描工具,它可以實(shí)時(shí)發(fā)現(xiàn)并分析記錄對(duì)本機(jī)的掃描,它通過(guò)syslog做記錄,將掃描的主機(jī)加入/etc/hosts.deny,馬上禁止所有通向掃描主機(jī)的網(wǎng)絡(luò)流量,同時(shí)過(guò)濾掉所有來(lái)自掃描主機(jī)的網(wǎng)絡(luò)流量。
從計(jì)算機(jī)安全角度來(lái)看,世界上沒有百分之百安全的計(jì)算機(jī)系統(tǒng),Linux系統(tǒng)也不例外,作為L(zhǎng)inux系統(tǒng)管理員,需要保持一定的安全防范意識(shí),對(duì)系統(tǒng)要定期做檢查,發(fā)現(xiàn)問題要立即采取措施,根據(jù)實(shí)際的應(yīng)用場(chǎng)景,靈活地綜合采取以上方法和工具,才能取得較好的效果。
注釋
① 何世曉,等.Linux管理師[M].機(jī)械工業(yè)出版社,2009.
② 張智龍.淺談Linux系統(tǒng)安全[J].安防科技,2006(57).