堵住系統(tǒng)漏洞 保證您Linux系統(tǒng)安全
發(fā)表時(shí)間:2023-05-24 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Linux作為開放式的操作系統(tǒng)受到很多程序員的喜愛, 很多高級(jí)程序員都喜歡編寫Linux操作系統(tǒng)的相關(guān)軟件。 這使得Linux操作系統(tǒng)有著豐富的軟件支持, 還有無數(shù)的技術(shù)人員作為技術(shù)后盾和技術(shù)支持...
Linux作為開放式的操作系統(tǒng)受到很多程序員的喜愛, 很多高級(jí)程序員都喜歡編寫Linux操作系統(tǒng)的相關(guān)軟件。 這使得Linux操作系統(tǒng)有著豐富的軟件支持, 還有無數(shù)的技術(shù)人員作為技術(shù)后盾和技術(shù)支持, 這使得Linux越來越受到程序員的歡迎。
但這種開放式的操作系統(tǒng)有一個(gè)最大的弊端就是每個(gè)程序員的水平不等, 編寫相關(guān)軟件后并未注意自己程序中的漏洞。 沒有統(tǒng)一的漏洞檢查, 這使得Linux的軟件中會(huì)出現(xiàn)很多的漏洞, 而軟件開發(fā)者卻很難察覺自己編寫程序的漏洞, 但黑客們會(huì)非常注意這些漏洞, 并且會(huì)利用這些漏洞來達(dá)到自己的目的。 那么是不是Linux系統(tǒng)就不安全了呢?其實(shí)大可不必?fù)?dān)心, 只要做好下述幾點(diǎn)便可安心的使用Linux系統(tǒng)。
一、取消不必要的服務(wù)
早期的Unix版本中, 每一個(gè)不同的網(wǎng)絡(luò)服務(wù)都有一個(gè)服務(wù)程序在后臺(tái)運(yùn)行, 后來的版本用統(tǒng)一的/etc/inetd服務(wù)器程序擔(dān)此重任。 Inetd是Internetdaemon的縮寫, 它同時(shí)監(jiān)視多個(gè)網(wǎng)絡(luò)端口, 一旦接收到外界傳來的連接信息, 就執(zhí)行相應(yīng)的TCP或UDP網(wǎng)絡(luò)服務(wù)。
由于受inetd的統(tǒng)一指揮, 因此Linux中的大部分TCP或UDP服務(wù)都是在/etc/inetd.conf文件中設(shè)定。 所以取消不必要服務(wù)的第一步就是檢查/etc/inetd.conf文件, 在不要的服務(wù)前加上“#”號(hào)。
一般來說, 除了http、smtp、telnet和ftp之外, 其他服務(wù)都應(yīng)該取消, 諸如簡(jiǎn)單文件傳輸協(xié)議tftp、網(wǎng)絡(luò)郵件存儲(chǔ)及接收所用的imap/ipop傳輸協(xié)議、尋找和搜索資料用的gopher以及用于時(shí)間同步的daytime和time等。
還有一些報(bào)告系統(tǒng)狀態(tài)的服務(wù), 如finger、efinger、systat和netstat等, 雖然對(duì)系統(tǒng)查錯(cuò)和尋找用戶非常有用, 但也給黑客提供了方便之門。 例如, 黑客可以利用finger服務(wù)查找用戶的電話、使用目錄以及其他重要信息。 因此, 很多Linux系統(tǒng)將這些服務(wù)全部取消或部分取消, 以增強(qiáng)系統(tǒng)的安全性。
Inetd除了利用/etc/inetd.conf設(shè)置系統(tǒng)服務(wù)項(xiàng)之外, 還利用/etc/services文件查找各項(xiàng)服務(wù)所使用的端口。 因此, 用戶必須仔細(xì)檢查該文件中各端口的設(shè)定, 以免有安全上的漏洞。
在Linux中有兩種不同的服務(wù)型態(tài):一種是僅在有需要時(shí)才執(zhí)行的服務(wù), 如finger服務(wù);另一種是一直在執(zhí)行的永不停頓的服務(wù)。 這類服務(wù)在系統(tǒng)啟動(dòng)時(shí)就開始執(zhí)行, 因此不能靠修改inetd來停止其服務(wù), 而只能從修改/etc/rc.d/rc[n].d/文件或用Run level editor去修改它。 提供文件服務(wù)的NFS服務(wù)器和提供NNTP新聞服務(wù)的news都屬于這類服務(wù), 如果沒有必要, 最好取消這些服務(wù)。
二、限制系統(tǒng)的出入
在進(jìn)入Linux系統(tǒng)之前, 所有用戶都需要登錄, 也就是說, 用戶需要輸入用戶賬號(hào)和密碼, 只有它們通過系統(tǒng)驗(yàn)證之后, 用戶才能進(jìn)入系統(tǒng)。
與其他Unix操作系統(tǒng)一樣, Linux一般將密碼加密之后, 存放在/etc/passwd文件中。 Linux系統(tǒng)上的所有用戶都可以讀到/etc/passwd文件, 雖然文件中保存的密碼已經(jīng)經(jīng)過加密, 但仍然不太安全。 因?yàn)橐话愕挠脩艨梢岳矛F(xiàn)成的密碼破譯工具, 以窮舉法猜測(cè)出密碼。 比較安全的方法是設(shè)定影子文件/etc/shadow, 只允許有特殊權(quán)限的用戶閱讀該文件。
在Linux系統(tǒng)中, 如果要采用影子文件, 必須將所有的公用程序重新編譯, 才能支持影子文件。 這種方法比較麻煩, 比較簡(jiǎn)便的方法是采用插入式驗(yàn)證模塊(PAM)。 很多Linux系統(tǒng)都帶有Linux的工具程序PAM, 它是一種身份驗(yàn)證機(jī)制, 可以用來動(dòng)態(tài)地改變身份驗(yàn)證的方法和要求, 而不要求重新編譯其他公用程序。 這是因?yàn)镻AM采用封閉包的方式, 將所有與身份驗(yàn)證有關(guān)的邏輯全部隱藏在模塊內(nèi), 因此它是采用影子檔案的最佳幫手。
此外, PAM還有很多安全功能:它可以將傳統(tǒng)的DES加密方法改寫為其他功能更強(qiáng)的加密方法, 以確保用戶密碼不會(huì)輕易地遭人破譯;它可以設(shè)定每個(gè)用戶使用電腦資源的上限;它甚至可以設(shè)定用戶的上機(jī)時(shí)間和地點(diǎn)。
Linux系統(tǒng)管理人員只需花費(fèi)幾小時(shí)去安裝和設(shè)定PAM, 就能大大提高Linux系統(tǒng)的安全性, 把很多攻擊阻擋在系統(tǒng)之外。
三、保持最新的系統(tǒng)核心
由于Linux流通渠道很多, 而且經(jīng)常有更新的程序和系統(tǒng)補(bǔ)丁出現(xiàn), 因此, 為了加強(qiáng)系統(tǒng)安全, 一定要經(jīng)常更新系統(tǒng)內(nèi)核。
Kernel是Linux操作系統(tǒng)的核心, 它常駐內(nèi)存, 用于加載操作系統(tǒng)的其他部分, 并實(shí)現(xiàn)操作系統(tǒng)的基本功能。 由于Kernel控制計(jì)算機(jī)和網(wǎng)絡(luò)的各種功能, 因此, 它的安全性對(duì)整個(gè)系統(tǒng)安全至關(guān)重要。
早期的Kernel版本存在許多眾所周知的安全漏洞, 而且也不太穩(wěn)定, 只有2.0.x以上的版本才比較穩(wěn)定和安全, 新版本的運(yùn)行效率也有很大改觀。 在設(shè)定Kernel的功能時(shí), 只選擇必要的功能, 千萬不要所有功能照單全收, 否則會(huì)使Kernel變得很大, 既占用系統(tǒng)資源, 也給黑客留下可乘之機(jī)。
在Internet上常常有最新的安全修補(bǔ)程序, Linux系統(tǒng)管理員應(yīng)該消息靈通, 經(jīng)常光顧安全新聞組, 查閱新的修補(bǔ)程序。
四、增強(qiáng)安全防護(hù)工具
SSH是安全套接層的簡(jiǎn)稱, 它是可以安全地用來取代rlogin、rsh和rcp等公用程序的一套程序組。 SSH采用公開密鑰技術(shù)對(duì)網(wǎng)絡(luò)上兩臺(tái)主機(jī)之間的通信信息加密, 并且用其密鑰充當(dāng)身份驗(yàn)證的工具。
由于SSH將網(wǎng)絡(luò)上的信息加密, 因此它可以用來安全地登錄到遠(yuǎn)程主機(jī)上, 并且在兩臺(tái)主機(jī)之間安全地傳送信息。 實(shí)際上, SSH不僅可以保障Linux主機(jī)之間的安全通信, Windows用戶也可以通過SSH安全地連接到Linux服務(wù)器上。
五、限制超級(jí)用戶的權(quán)力
我們?cè)谇懊嫣岬剑?root是Linux保護(hù)的重點(diǎn), 由于它權(quán)力無限, 因此最好不要輕易將超級(jí)用戶授權(quán)出去。 但是, 有些程序的安裝和維護(hù)工作必須要求有超級(jí)用戶的權(quán)限, 在這種情況下, 可以利用其他工具讓這類用戶有部分超級(jí)用戶的權(quán)限。 Sudo就是這樣的工具。
Sudo程序允許一般用戶經(jīng)過組態(tài)設(shè)定后, 以用戶自己的密碼再登錄一次, 取得超級(jí)用戶的權(quán)限, 但只能執(zhí)行有限的幾個(gè)指令。
六、設(shè)定用戶賬號(hào)的安全等級(jí)
除密碼之外, 用戶賬號(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)上的tcpd中, 可以設(shè)定允許上機(jī)和不允許上機(jī)人員的名單。 其中, 允許上機(jī)人員名單在/etc/hosts.allow中設(shè)置, 不允許上機(jī)人員名單在/etc/hosts.deny中設(shè)置。 設(shè)置完成之后, 需要重新啟動(dòng)inetd程序才會(huì)生效。 此外, 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)修改或刪除各種系統(tǒng)設(shè)置, 可以在系統(tǒng)中暢行無阻。 因此, 在給任何賬號(hào)賦予root權(quán)限之前, 都必須仔細(xì)考慮。
Linux系統(tǒng)中的/etc/securetty文件包含了一組能夠以root賬號(hào)登錄的終端機(jī)名稱。 例如, 在RedHatLinux系統(tǒng)中, 該文件的初始值僅允許本地虛擬控制臺(tái)(rtys)以root權(quán)限登錄, 而不允許遠(yuǎn)程用戶以root權(quán)限登錄。 最好不要修改該文件, 如果一定要從遠(yuǎn)程登錄為root權(quán)限, 最好是先以普通賬號(hào)登錄, 然后利用su命令升級(jí)為超級(jí)用戶
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。