Linux系統(tǒng)中內(nèi)部和外部安全性概述_第1頁
Linux系統(tǒng)中內(nèi)部和外部安全性概述_第2頁
Linux系統(tǒng)中內(nèi)部和外部安全性概述_第3頁
Linux系統(tǒng)中內(nèi)部和外部安全性概述_第4頁
Linux系統(tǒng)中內(nèi)部和外部安全性概述_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Linux系統(tǒng)中內(nèi)部和外部安全性概述簡介 維護一個完全安全的系統(tǒng)是不可能的。然而,只要勤奮,則有可能使 Linux 機器足夠安全,并讓大多數(shù)偶爾出現(xiàn)的駭客、腳本小子(script-kiddies)以及其它的“壞家伙”止步而去騷擾其他人。請記住:僅僅遵循本教程不 會產(chǎn)生一個安全的系統(tǒng)。相反,我們希望您接觸到主要主題的多個方面,并向您提供一些有關(guān)如何入門的有用示例。 Linux 系統(tǒng)安全性可分為兩個部分:內(nèi)部安全性和外部安全性。內(nèi)部安全性指預(yù)防用戶無意或惡意地破壞系統(tǒng)。外部安全性指防止未授權(quán)用戶獲得對系統(tǒng)的訪問。 本章將首先介紹內(nèi)部安全性,然后介紹外部安全性,最后介紹一些常規(guī)指導(dǎo)原則和技巧。 日志

2、文件的文件權(quán)限 內(nèi)部安全性可以是很大的任務(wù),這要看您對用戶的信任程度。這里介紹的指導(dǎo)原則是設(shè)計用來防止偶然用戶訪問敏感信息和防止不公平地使用系統(tǒng)資源。 至于文件權(quán)限,您可能希望修改以下三種情況的權(quán)限: 首先,/var/log 中的日志文件不需要是所有人都可以讀取的。沒有理由讓非 root 用戶窺視日志。為了創(chuàng)建具有適當權(quán)限的日志。 root 用戶其它文件的文件權(quán)限 其次,root 用戶的點文件對于普通用戶應(yīng)是不可讀的。檢查 root 用戶主目錄中的文件(ls -la)以確保它們受到適當?shù)谋Wo。甚至可以使整個目錄僅對 root 用戶可讀: # cd# pwd/root# chmod 700 .用

3、戶文件的文件權(quán)限 最后,用戶文件在缺省情況下通常被創(chuàng)建為所有人可讀。那可能不是用戶所期望的,而且它當然不是最好的策略。應(yīng)該使用與下面類似的命令在 /etc/profile 中設(shè)置缺省的 umask: if "$UID" = 0 ; then# root user; set world-readable by default so that# installed files can be read by normal users.umask 022else# make user files secure unless they explicitly open them# fo

4、r reading by other usersumask 077fi應(yīng)該查詢 umask(2) 和 bash(1) 手冊頁以獲取有關(guān)設(shè)置 umask 的更多信息。請注意:umask(2) 手冊頁涉及 C 函數(shù),但它所包含的信息也適用于 bash 命令。 查找 SUID/SGID 程序 尋求 root 訪問權(quán)的惡意用戶總是會在系統(tǒng)上尋找設(shè)置了 SUID 或 SGID 位的程序。就象我們在 LPI 101 系列第 3 部分中討論的那樣,這些位使程序始終作為擁有該文件的用戶或組運行。有時這是程序正確運行所必需的。問題是任何程序都可能包含允許用戶在不正確地使用程序 時獲得特權(quán)的錯誤。 應(yīng)該仔細考慮每

5、個程序以確定是否需要將其 SUID 或 SGID 位打開。系統(tǒng)上有些 SUID/SGID 程序可能是根本不需要的。 要搜索具有這樣性質(zhì)的程序,可使用 find 命令。例如,可以在 /usr 目錄中啟動對 SUID/SGID 程序的搜索: # cd /usr# find . -type f -perm +6000 -xdev -exec ls ;-rwsr-sr-x 1 root root 593972 11-09 12:47 ./bin/gpg-r-xr-sr-x 1 root man 38460 01-27 22:13 ./bin/man-rwsr-xr-x 1 root root 1557

6、6 09-29 22:51 ./bin/rcp-rwsr-xr-x 1 root root 8256 09-29 22:51 ./bin/rsh-rwsr-xr-x 1 root root 29520 01-17 19:42 ./bin/chfn-rwsr-xr-x 1 root root 27500 01-17 19:42 ./bin/chsh-rwsr-xr-x 1 lp root 8812 01-15 23:21 ./bin/lppasswd-rwsr-x- 1 root cron 10476 01-15 22:16 ./bin/crontab在這個清單中,我已經(jīng)發(fā)現(xiàn)了需要更仔細檢查的侯

7、選對象:lppasswd 是 CUPS 打印軟件分發(fā)版的一部分。因為沒有在系統(tǒng)上提供打印服務(wù),所以我會考慮除去 CUPS,那也會除去 lppasswd 程序。lppasswd 中可能沒有危及安全性的錯誤,但為什么要在不使用的程序上冒險呢?同樣地,應(yīng)該關(guān)閉所有不使用的服務(wù)。您總是可以在需要時再啟用它們。 用 ulimit 設(shè)置用戶限制 bash 中的 ulimit 命令提供了限制特定用戶的資源使用情況的方法。一旦限制降低,則在進程的生命期內(nèi)無法提高該限制。此外,該限制會被所有子進程繼承。結(jié)果是:可以在 /etc/profile 中調(diào)用 ulimit,而限制將以不能撤消的方式應(yīng)用于所有用戶(假設(shè)用

8、戶正在運行 bash 或另一個 shell,該 shell 在登錄時運行 /etc/profile)。 要檢索當前限制,可使用 ulimit -a: # ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedfile size (blocks, -f) unlimitedmax locked memory (kbytes, -l) unlimitedmax memory size (kbytes, -m) unlimitedopen files (-n) 1024pipe size (512 byte

9、s, -p) 8stack size (kbytes, -s) unlimitedcpu time (seconds, -t) unlimitedmax user processes (-u) 3071virtual memory (kbytes, -v) unlimited以一種能實際提高系統(tǒng)安全性而不會對合法用戶造成麻煩的方式設(shè)置這些限制是相當復(fù)雜的,所以調(diào)整這些設(shè)置時要小心。 用 ulimit 設(shè)置 CPU 時間限制 作為 ulimit 的一個示例,我們嘗試將一個進程的 CPU 時間設(shè)置為 1 秒鐘,然后用一個忙循環(huán)使它超時。一定要確保啟動新的 bash 進程(象我們在下面做的那樣),以

10、在其中進行嘗試;否則將被注銷! # time bash# ulimit -t 1# while true; do true; doneKilledreal 0m28.941suser 0m1.990ssys 0m0.017s在上面的示例中,“user”時間加上“sys”時間等于該進程所用的全部 CPU 時間。當 bash 進程到達 2 秒標記時,Linux 斷定它超過 1 秒的限制,因此該進程被殺掉??岚?? 注:一秒鐘只是示例而已。不要對您的用戶這樣做!即使幾小時也是不對的,因為 X 真地很消耗時間(我當前的會話已用掉了 69+ 小時的 CPU 時間)。在實際的實現(xiàn)中,您可能要對某些項而不是

11、CPU 時間執(zhí)行 ulimit。 入侵預(yù)防 外部安全性可分為兩類:入侵預(yù)防和入侵檢測。采取入侵預(yù)防手段是為了防止未授權(quán)用戶訪問系統(tǒng)。如果這些手段失敗,那么入侵檢測在確定何時發(fā)生未授權(quán)訪問以及造成什么損壞方面或許有用。 完全的 Linux 安裝是巨大且復(fù)雜的系統(tǒng)。跟蹤已安裝的每一項是很困難的,而配置每個包的安全性特征就更困難了。安裝的包越少,則問題就變得越簡單。入侵預(yù)防的第一步是除去不需要的包。 關(guān)閉未使用的網(wǎng)絡(luò)服務(wù)(超級服務(wù)器) 關(guān)閉未使用的網(wǎng)絡(luò)服務(wù)一直是提高入侵預(yù)防能力的好方法。例如,如果正在運行因特網(wǎng)超 級服務(wù)器(如本教程前面描述的 inetd 或 xinetd),那么 in.rshd、i

12、n.rlogind 和 in.telnetd 通常都在缺省情況下啟用。這些網(wǎng)絡(luò)服務(wù)幾乎都已被更安全的替代項(如 ssh)所取代。 要在 inetd 中禁用服務(wù),只需在 /etc/inetd.conf 中在適當?shù)男星懊婕由稀?”將其注釋掉;然后重新啟動 inetd 即可。(這在本教程前面已有描述,若需要復(fù)習(xí),可返回幾頁快速瀏覽。) 要在 xinetd 中禁用服務(wù),可以執(zhí)行與 /etc/xinetd.d 中適當?shù)拇a片段相似的工作。例如,要禁用 telnet,可以將 /etc/xinetd.d/telnet 文件的整個內(nèi)容注釋掉,或簡單地刪除該文件。重新啟動 xinetd 以完成此過程。 如果正在

13、結(jié)合 inetd 使用 tcpd,或如果正在使用 xinetd,還可以選擇限制與可信的主機進行的進入連接。對于 tcpd,可參閱本教程的前幾章。對于 xinetd,可在 xinetd.conf(5) 手冊頁中搜索“only_from”。 關(guān)閉未使用的網(wǎng)絡(luò)服務(wù)(獨立服務(wù)器) 有些服務(wù)器并不由 inetd 或 xinetd 啟動,但卻作為“獨立”服務(wù)器始終運行著。這樣的服務(wù)器通常是 atd、lpd、sshd、nfsd 和其它服務(wù)器。事實上,inetd 和 xinetd 本身都是獨立服務(wù)器,如果在它們各自的配置文件中注釋掉所有的服務(wù),就選擇了將它們完全關(guān)閉。 獨立服務(wù)器通常在系統(tǒng)引導(dǎo)或更改運行級別時

14、由 init 系統(tǒng)啟動。如果不記得運行級別是如何工作的,可以看看 LPI 101 系列第 4 部分。 要使 init 系統(tǒng)不再啟動服務(wù)器,在每個運行級別目錄中找到指向該服務(wù)器啟動腳本的符號鏈接,然后刪除它。運行級別目錄的名稱通常為 /etc/rc3.d 或 /etc/rc.d/rc3.d(針對運行級別 3)。還需要檢查其它運行級別。 除去服務(wù)的運行級別符號鏈接后,仍需要關(guān)閉當前運行的服務(wù)器。最好用服務(wù)的初始化腳本完成這一操作,通常可以在 /etc/init.d 或 /etc/rc.d/init.d 中找到這一腳本。例如,要關(guān)閉 sshd: # /etc/init.d/sshd stop* Stopping sshd. ok 測試更改 在修改 inetd 或 xinetd 配置以禁用或限制服務(wù),或用服務(wù)器初始化腳本關(guān)閉該服務(wù)器后,應(yīng)該對所做的更改加以測試??梢允褂?telnet 客戶機通過指定服務(wù)名稱或號碼來測試 tcp 端口。例如,要驗證 rlogin 已被禁用: # grep login /etc/serviceslogin 513/tcp# telnet localhost 513Trying 127.0.0.1.t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論