Unix系統(tǒng)文件系統(tǒng)安全 續(xù)
Unix系統(tǒng)安全考慮
將設(shè)備處理成文件,使得unix程式獨(dú)立于設(shè)備,即程式不必一定要了解正使用的設(shè)備的所有特性,存取設(shè)備也不必記錄長(zhǎng)度,塊大小,傳輸速度,網(wǎng)絡(luò)協(xié)議等這樣一些信息,所有煩人的細(xì)節(jié)由設(shè)備驅(qū)動(dòng)程式去關(guān)心考慮,要存取設(shè)備,程式只須打開設(shè)備文件,然后作為普通的unix文件來使用.
從安全的觀點(diǎn)來看這樣處理非常好,因?yàn)樗性O(shè)備上進(jìn)行的i/o操作只經(jīng)過了少量的渠道(即設(shè)備文件).用戶不能直接地存取設(shè)備.所以如果正確地設(shè)置了磁盤分區(qū)的存取許可,用戶就只能通過unix文件系統(tǒng)存取磁盤.文件系統(tǒng)有內(nèi)部安全機(jī)制(文件許可).不幸的是,如果磁盤分區(qū)設(shè)備得不正確,所有用戶都能夠?qū)懸粋€(gè)程式讀磁盤分區(qū)中的每個(gè)文件,作法非常簡(jiǎn)單:讀一i節(jié)點(diǎn),然后以磁盤地址表中塊號(hào)出現(xiàn)的順序,依次讀這些塊號(hào)指出的存有文件內(nèi)容的塊.
故除了root以外,決不要使盤分區(qū)對(duì)所有人可寫.因?yàn)樗姓?文件存取許可方式這樣一些信息存放于i節(jié)點(diǎn)中,所有人只要具有已安裝分區(qū)的寫許可,就能設(shè)置所有文件的suid許可,而不管文件的所有者是誰,也不必用chmod()命令,還可避過系統(tǒng)建立的安全檢查.
以上所述對(duì)內(nèi)存文件mem,kmem和對(duì)換文件swap也是相同的.這些文件含有用戶信息,一個(gè)"耐心"的程式能將用戶信息提取出來.要避免磁盤分區(qū)(及其他設(shè)備)可讀可寫,應(yīng)當(dāng)在建立設(shè)備文件前先用umask命令設(shè)置文件建立屏蔽值.
一般情況下,unix系統(tǒng)上的終端口對(duì)所有人都是可寫的,從而使用戶能用write命令發(fā)送信息.雖然write命令易引起安全方面的問題,但大多數(shù)用戶覺得用write得到其他用戶的信息非常方便,所以系統(tǒng)將終端設(shè)備的存取許可設(shè)置成對(duì)所有用戶可寫.
/dev目錄應(yīng)當(dāng)是755存取許可方式,且屬root所有.
不允許除root外的所有用戶讀或?qū)懕P分區(qū)的原則有一例外,即一些程式(通常是數(shù)據(jù)庫系統(tǒng))需求對(duì)磁盤分區(qū)直接存取,解決這個(gè)問題的經(jīng)驗(yàn)的盤分區(qū)應(yīng)當(dāng)由這種程式專用(不安裝文件系統(tǒng)),而且應(yīng)當(dāng)告知使用這種程式的用戶,文件安全保護(hù)將由程式自己而不是unix文件系統(tǒng)完成.
Unix系統(tǒng)之find命令
find命令用于搜索目錄樹,并對(duì)目錄樹上的所有文件執(zhí)行某種操作,參數(shù)是目錄名表(指出從哪些起點(diǎn)開始搜索),還可給出一個(gè)或多個(gè)選項(xiàng),規(guī)定對(duì)每個(gè)文件執(zhí)行什么操作.
find . -print 將列出當(dāng)前工作目錄下的目錄樹的每一個(gè)文件.find / -user bob -print 將列出在系統(tǒng)中可找到的屬于bob用戶的所有文件.
find /usr/bob -perm 666 -print 將列出/usr/bob目錄樹下所有存取許可為666的文件.若將666改為-666則將列出所有具有包含了666在內(nèi)的存取許可方式的文件(如777).
find /usr/bob -type b -print 將列出/usr/bob目錄樹下所有塊特別文件(c為字符特別文件).
find / -user root -perm -4000 -exec ls -l {} ; 是個(gè)較復(fù)雜一點(diǎn)的命令,-exec command ;允許對(duì)所找到的每個(gè)文件運(yùn)行指定的命令command.若command中含有{},則{}將由find所找到的文件名替換.command必須以;結(jié)束.
以上舉例介紹find的用法,各選項(xiàng)可組合使用以達(dá)到更強(qiáng)的功能.
Unix系統(tǒng)之secure程式
系統(tǒng)管理員應(yīng)當(dāng)做一個(gè)程式以定期檢查系統(tǒng)中的各個(gè)系統(tǒng)文件,包括檢查設(shè)備文件和suid,sgid程式,尤其要注意檢查suid,sgid程式,檢查/etc/passwd和/etc/group文件,尋找久未登錄的戶頭和校驗(yàn)各重要文件是否被修改.(源程式清單將在今后發(fā)表)
Unix系統(tǒng)之ncheck命令
用于檢查文件系統(tǒng),只用一個(gè)磁盤分區(qū)名作為參數(shù),將列出i節(jié)點(diǎn)號(hào)及相應(yīng)的文件名.i節(jié)點(diǎn)相同的文件為建鏈文件.注意:所列出的清單文件名和mount命令的***個(gè)域相同的文件名前部分將不會(huì)列出來.因?yàn)槭亲鑫募到y(tǒng)內(nèi)部的檢查,ncheck并不知道文件系統(tǒng)安裝點(diǎn)以上部分的目錄.也可用此命令來搜索文件系統(tǒng)中所有的suid和sgid程式和設(shè)備文件,使用-s選項(xiàng)來完成此項(xiàng)功能
Unix系統(tǒng)之安裝和拆卸文件系統(tǒng)
unix文件系統(tǒng)是可安裝的,這意味著每個(gè)文件系統(tǒng)能連接到整個(gè)目錄樹的任意節(jié)點(diǎn)上(根目錄總是被安裝上的).安裝文件系統(tǒng)的目錄稱為安裝點(diǎn)./etc/mount命令用于安裝文件系統(tǒng),用這條命令可將文件系統(tǒng)安裝在現(xiàn)有目錄結(jié)構(gòu)的任意處.
安裝文件系統(tǒng)時(shí),安裝點(diǎn)的文件和目錄都是不可存取的,因此未安裝文件系統(tǒng)時(shí),不要將文件存入安裝點(diǎn)目錄.文件系統(tǒng)安裝后,安裝點(diǎn)的存取許可方式和所有者將改動(dòng)為所安裝的文件根目錄的許可方式和所有者.
安裝文件系統(tǒng)時(shí)要小心:安裝點(diǎn)的屬性會(huì)改動(dòng)!還要注意新建的文件,除非新文件系統(tǒng)是由標(biāo)準(zhǔn)文件建立的,系統(tǒng)標(biāo)準(zhǔn)文件會(huì)設(shè)置適當(dāng)?shù)拇嫒≡S可方式,否則新文件系統(tǒng)的存取許可將是777!
可用-r選項(xiàng)將文件系統(tǒng)安裝成只讀文件系統(tǒng).需要寫保護(hù)的帶驅(qū)動(dòng)器和磁盤應(yīng)當(dāng)以這種方式來安裝.
不帶所有參數(shù)的/etc/mount可獲得系統(tǒng)中所安裝的文件系統(tǒng)的有關(guān)信息.包括:文件系統(tǒng)被安裝的安裝點(diǎn)目錄,對(duì)應(yīng)/dev中的哪個(gè)設(shè)備,只讀或可讀寫,安裝時(shí)間和日期等.
從安全的觀點(diǎn)來講,可安裝系統(tǒng)的危險(xiǎn)來自用戶可能請(qǐng)求系統(tǒng)管理員為其安裝用戶自己的文件系統(tǒng).如果安裝了用戶的文件系統(tǒng),則應(yīng)在允許用戶存取文件系統(tǒng)前,先掃描用戶的文件系統(tǒng),搜索suid/sgid程式和設(shè)備文件.在除了root外所有人不能執(zhí)行的目錄中安裝文件系統(tǒng),用find命令或secure列出可疑文件,刪除不屬用戶所有的文件的suid/sgid許可.
用戶的文件系統(tǒng)用完后,可用umount命令卸下文件系統(tǒng).并將安裝點(diǎn)目錄的所有者改回root,存取許可改為755.
Unix系統(tǒng)之系統(tǒng)目錄和文件
unix系統(tǒng)中有許多文件不允許用戶寫,如:/bin,/usr/bin,/usr/lbin,/etc/passwd,/usr/lib/crontab,/unix,/etc/rc,/etc/inittab這樣一些文件和目錄(大多數(shù)的系統(tǒng)目錄),可寫的目錄允許移動(dòng)文件,會(huì)引起安全問題.系統(tǒng)管理員應(yīng)經(jīng)常檢查系統(tǒng)文件和目錄的許可權(quán)限和所有者.可做一個(gè)程式根據(jù)系統(tǒng)提供的規(guī)則文件(在/etc/permlist文件中)所描述的文件所有者和許可權(quán)規(guī)則檢查各文件.(源程式清單將在今后發(fā)表)。注意:如果系統(tǒng)的安全管理不好,或系統(tǒng)是新安裝的,其安全程式不夠高,能用make方式在安全強(qiáng)的系統(tǒng)上運(yùn)行上述程式,將許可規(guī)則文件拷貝到新系 統(tǒng)來,再以設(shè)置方式在新系統(tǒng)上運(yùn)行上述程式,就可提高本系統(tǒng)的安全程式.但要記住,兩個(gè)系統(tǒng)必須運(yùn)行相同的unix系統(tǒng)版本
【編輯推薦】
- Unix系統(tǒng)安全管理
- Unix系統(tǒng)文件系統(tǒng)安全
- Unix系統(tǒng)的安全策略
- Unix系統(tǒng)的安全策略之常用命令解析
- 淺析Unix主機(jī)系統(tǒng)安全漏洞存在的必然性