Unix系統管理員安全手冊

本文從系統管理員的角度討論安全問題.系統管理員是管理系統的人:啓動系統,中止系統運行,安裝新軟件,增長新用戶,刪除老用戶,以及完成保持系統發展和運行的平常事務工做. 1.安全管理 安全管理主要分爲四個方面:   (1)防止未受權存取:這是計算機安全最重要的問題:未被使用系統的人進入系統.用戶意識,良好的口令管理(由系統管理員和用戶雙方配合),登陸活動記錄和報告,用戶和網絡活動的週期檢查,這些都是防止未受權存取的關鍵.   (2)防止泄密:這也是計算機安全的一個重要問題.防止已受權或未受權的用戶相互存取相互的重要信息.文件系統查賬,su登陸和報告,用戶意識,加密都是防止泄密的關鍵.   (3)防止用戶拒絕系統的管理:這一方面的安全應由操做系統來完成.一個系統不該被一個有意試圖使用過多資源的用戶損害.不幸的是,UNIX不能很好地限制用戶對資源的使用,一個用戶可以使用文件系統的整個磁盤空間,而 UNIX基本不能阻止用戶這樣作.系統管理員最好用PS命令,記賬程序df和du週期地檢查系統.查出過多佔用CUP的進程和大量佔用磁盤的文件.   (4)防止丟失系統的完整性:這一安全方面與一個好系統管理員的實際工做(例如:週期地備份文件系統,系統崩潰後運行fsck檢查,修復文件系統,當有新用戶時,檢測該用戶是否可能使系統崩潰的軟件)和保持一個可靠的操做系 統有關(即用戶不能常常性地使系統崩潰).   本文其他部分主要涉及前兩個問題,第三個問題在"安全查賬"一節討論. 2.超級用戶   一些系統管理命令只能由超級用戶運行.超級用戶擁有其餘用戶所沒有的特權,超級用戶無論文件存取許可方式如何,均可以讀,寫任何文件,運行任何程序.系統管理員一般使用命令: /bin/su 或以 root 進入系統從而成爲超級用戶.在後面文章中以#表示應敲入必須由超級用戶運行的命令,用$表示應敲入由全部其餘用戶運行的命令. 3.文件系統安全 (1)UNIX文件系統概述   UNIX文件系統是UNIX系統的心臟部分,提供了層次結構的目錄和文件.文件系統將磁盤空間劃分爲每1024個字節一組,稱爲(block)(也有用512字節爲一塊的,如:SCO XENIX).編號從0到整個磁盤的最大塊數.所有塊可劃分爲四個部分,塊0稱爲引導塊,文件系統不用該塊;塊1稱爲專用塊,專用塊含有許多信息,其中有磁盤大小和所有塊的其它兩部分的大小.從塊2開始是i節點表,i節點表中含有i節點,表的塊數是可變的,後面將作討論.i節點表以後是空閒存儲塊(數據存儲塊),可用於存放文件內容.文件的邏輯結構和物理結構是十分不一樣的,邏輯結構是用戶敲入cat命令後所看到的文件,用戶可獲得表示文件內容的字符流.物理結構是文件實際上如何存放在磁盤上的存儲格式.用戶認爲本身的文件是邊疆的字符流,但實際上文件可能並非以邊疆的方式存放在磁盤上的,長於一塊的文件一般將分散地存放在盤上.然而當用戶存取文件時,UNIX文件系統將以正確的順序取各塊,給用戶提供文件的邏輯結構. 固然,在UNIX系統的某處必定會有一個表,告訴文件系統如何將物理結構轉換爲邏輯結構.這就涉及到i節點了.i節點是一個64字節長的表,含有有關一個文件的信息,其中有文件大小,文件全部者,文件存取許可方式,以及文件爲普通文件,目錄文件仍是特別文件等.在i節點中最重要的一項是磁盤地址表.該表中有13個塊號.前10個塊號是文件前10塊的存放地址.這10個塊號能給出一個至多10塊長的文件的邏輯結構,文件將以塊號在磁盤地址表中出現的順序依次取相應的塊.當文件長於10塊時又怎樣呢?磁盤地址表中的第十一項給出一個塊號,這個塊號指出的塊中含有256個塊號,至此,這種方法知足了至多長於266塊的文件(272,384字節).若是文件大於266塊,磁盤地址表的第十二項給出一個塊號,這個塊號指出的塊中含有256個塊號,這256個塊號的每個塊號又指出一塊,塊中含256個塊號,這些塊號才用於取文件的內容.磁盤地址中和第十三項索引尋址方式與第十二項相似,只是多一級間接索引.這樣,在UNIX系統中,文件的最大長度是16,842,762塊,即17,246,988,288字節,有幸是是UNIX系統對文件的最大長度(通常爲1到2M字節)加了更實際的限制,使用戶不會無心中創建一個用完整個磁盤窨全部塊的文件. 文件系統將文件名轉換爲i節點的方法實際上至關簡單.一個目錄其實是一個含有目錄表的文件:對於目錄中的每一個文件,在目錄表中有一個入口項,入口項中含有文件名和與文件相應的i節點號.當用戶敲入cat xxx時,文件系統就在當前目錄表中查找名爲xxx的入口項,獲得與文件xxx相應的i節點號,而後開始取含有文件xxx的內容的塊. (2)設備文件   UNIX系統與邊在本系統上的各類設備之間的通信,經過特別文件來實現, 就程序而言,磁盤是文件,MODEM是文件,甚至內存也是文件.全部鏈接到系統上的設備都在/dev目錄中有一個文件與其對應.當在這些文件上執行I/O操做時,由UNIX系統將I/O操做轉換成實際設備的動做.例如,文件/dev/mem是系統的內存,若是cat這個文件,其實是在終端顯示系統的內存.爲了安全起見,這個文件對普通用戶是不可讀的.由於在任一給定時間,內存區可能含有用戶登陸口令或運行程序的口令,某部分文件的編輯緩衝區,緩衝區可能含有用ed -x命令解密後的文本,以及用戶不肯讓其餘人存取的種種信息. 在/dev中的文件一般稱爲設備文件,用ls /dev命令能夠看看系統中的一些設備: acuo 呼叫自動撥號器 console 系統控制檯 dsknn 塊方式操做磁盤分區 kmem 核心內存 mem 內存 lp 打印機 mto 塊方式操做磁帶 rdsknn 流方式操做的磁盤分區 rmto 流方式操做的磁帶 swap 交換區 syscon 系統終端 ttynn 終端口 x25 網絡端口 等等 (3)/etc/mknod命令   用於創建設備文件.只有root能使用這個命令創建設備文件.其參數是文件名,字母c或b分別表明字符特別文件或塊特別文件,主設備號,次設備號.塊特別文件是像磁帶,磁盤這樣一些以塊爲單位存取數據的設備.字符特別文件是如像終端,打印機,MODEM,或者其它任何與系統通信時,一次傳輸一個字符的設備,包括模仿對磁盤進行字符方式存取的磁盤驅動器.主設備號指定了系統子程序(設備驅動程序),當在設備上執行I/O時,系統將調用這個驅動程序.調用設備驅動程序時,次設備號將傳遞給該驅動程序(次設備規定具體的磁盤驅 動器,帶驅動器,信號線編號,或磁盤分區).每種類型的設備通常都有本身的設備驅動程序.文件系統將主設備號和次設備號存放在i節點中的磁盤地址表內,因此沒有磁盤空間分配給設備文件(除i節點自己佔用的磁盤區外).當程序試圖在設備文件上執行I/O操做時,系統識別出該文件是一個特別文件,並調用由主設備號指定的設備驅動程序,次設備號做爲調用設備驅動程序的參數. (4)安全考慮   將設備處理成文件,使得UNIX程序獨立於設備,即程序沒必要必定要了解正使用的設備的任何特性,存取設備也不須要記錄長度,塊大小,傳輸速度,網絡協議等這樣一些信息,全部煩人的細節由設備驅動程序去關心考慮,要存取設備,程序只須打開設備文件,而後做爲普通的UNIX文件來使用.從安全的觀點來看這樣處理很好,由於任何設備上進行的I/O操做只通過了少許的渠道(即設備文件).用戶不能直接地存取設備.因此若是正確地設置了磁盤分區的存取許可,用戶就只能經過UNIX文件系統存取磁盤.文件系統有內部安全機制(文件許可).不幸的是,若是磁盤分區設備得不正確,任何用戶都可以寫一個程序讀磁盤分區中的每一個文件,做法很簡單:讀一i節點,而後以磁盤地址表中塊號出現的順序,依次讀這些塊號指出的存有文件內容的塊.故除了root之外,決不要使盤分區對任何人可寫.由於全部者,文件存取許可方式這樣一些信息存放於i節點中,任何人只要具備已安裝分區的寫許可,就能設置任何文件的SUID許可,而無論文件的全部者是誰,也沒必要用chmod()命令,還可避過系統創建的安全檢查.以上所述對內存文件mem,kmem和對換文件swap也是同樣的.這些文件含有用戶信息,一個"耐心"的程序能夠將用戶信息提取出來.要避免磁盤分區(以及其它設備)可讀可寫,應當在創建設備文件前先用umask命令設置文件創建屏蔽值.通常狀況下,UNIX系統上的終端口對任何人都是可寫的,從而使用戶能夠用write命令發送信息.雖然write命令易引發安全方面的問題,但大多數用戶以爲用write獲得其餘用戶的信息很方便,因此係統將終端設備的存取許可設置成對全部用戶可寫./dev目錄應當是755存取許可方式,且屬root全部.不容許除root外的任何用戶讀或寫盤分區的原則有一例外,即一些程序(一般是數據庫系統)要求對磁盤分區直接存取,解決這個問題的經驗的盤分區應當由這種程序專用(不安裝文件系統),並且應當告知使用這種程序的用戶,文件安全保護將由程序本身而不是UNIX文件系統完成. (5)find命令   find命令用於搜索目錄樹,並對目錄樹上的全部文件執行某種操做,參數是目錄名錶(指出從哪些起點開始搜索),還可給出一個或多個選項,規定對每一個文件執行什麼操做. find . -print 將列出當前工做目錄下的目錄樹的每個文件. find / -user bob -print 將列出在系統中可找到的屬於bob用戶的全部文件. find /usr/bob -perm 666 -print 將列出/usr/bob目錄樹下全部存取許可爲666的文件.若將666改成-666則將列出全部具備包含了666在內的存取許可方式的文件(如777). find /usr/bob -type b -print 將列出/usr/bob目錄樹下全部塊特別文件(c爲字符特別文件). find / -user root -perm -4000 -exec ls -l {} \; 是一個較複雜一點的命令,-exec COMMAND \;容許對所找到的每一個文件運行指定的命令COMMAND.若COMMAND中含有{},則{}將由find所找到的文件名替換.COMMAND必須以\;結束. 以上舉例介紹find的用法,各選項可組合使用以達到更強的功能. (6)secure程序   系統管理員應當作一個程序以按期檢查系統中的各個系統文件,包括檢查設備文件和SUID,SGID程序,尤爲要注意檢查SUID,SGID程序,檢查/etc/passwd和/etc/group文件,尋找久未登陸的戶頭和校驗各重要文件是否被修改. (源程序清單將在從此發表) (7)ncheck命令   用於檢查文件系統,只用一個磁盤分區名做爲參數,將列出i節點號及相應的文件名.i節點相同的文件爲建鏈文件. 注意:所列出的清單文件名與mount命令的第一個域相同的文件名前部分將不會列出來.由於是作文件系統內部的檢查,ncheck並不知道文件系統安裝點以上部分的目錄. 也可用此命令來搜索文件系統中全部的SUID和SGID程序和設備文件,使用-s選項來完成此項功能. (8)安裝和拆卸文件系統   UNIX文件系統是可安裝的,這意味着每一個文件系統能夠鏈接到整個目錄樹的任意節點上(根目錄老是被安裝上的).安裝文件系統的目錄稱爲安裝點./etc/mount命令用於安裝文件系統,用這條命令可將文件系統安裝在現有目錄結構的任意處.安裝文件系統時,安裝點的文件和目錄都是不可存取的,所以未安裝文件系統時,不要將文件存入安裝點目錄.文件系統安裝後,安裝點的存取許可方式和全部者將改變爲所安裝的文件根目錄的許可方式和全部者.安裝文件系統時要當心:安裝點的屬性會改變!還要注意新建的文件,除非新文件系統是由標準文件創建的,系統標準文件會設置適當的存取許可方式,不然新文件系統的存取許可將是777!可用-r選項將文件系統安裝成只讀文件系統.須要寫保護的帶驅動器和磁盤應當以這種方式來安裝.不帶任何參數的/etc/mount可得到系統中所安裝的文件系統的有關信息. 包括:文件系統被安裝的安裝點目錄,對應/dev中的哪一個設備,只讀或可讀寫,安裝時間和日期等.從安全的觀點來說,可安裝系統的危險來自用戶可能請求系統管理員爲其安裝用戶本身的文件系統.若是安裝了用戶的文件系統,則應在容許用戶存取文件系統前,先掃描用戶的文件系統,搜索SUID/SGID程序和設備文件.在除了root外任何人不能執行的目錄中安裝文件系統,用find命令或secure列出可疑文件,刪除不屬用戶全部的文件的SUID/SGID許可.用戶的文件系統用完後,可用umount命令卸下文件系統.並將安裝點目錄的全部者改回root,存取許可改成755. (9)系統目錄和文件   UNIX系統中有許多文件不容許用戶寫,如:/bin,/usr/bin,/usr/lbin, /etc/passwd,/usr/lib/crontab,/unix,/etc/rc,/etc/inittab這樣一些文件和目錄(大多數的系統目錄),可寫的目錄容許移動文件,會引發安全問題.系統管理員應常常檢查系統文件和目錄的許可權限和全部者.可作一個程序根據系統提供的規則文件(在/etc/permlist文件中)所描述的文件全部者和許可權規則檢查各文件.(源程序清單將在從此發表)   注意:若是系統的安全管理很差,或系統是新安裝的,其安全程序不夠高,能夠用make方式在安全強的系統上運行上述程序,將許可規則文件拷貝到新系統來,再以設置方式在新系統上運行上述程序,就可提升本系統的安全程序.但要記住,兩個系統必須運行相同的UNIX系統版本. 4.做爲root運行的程序   在UNIX系統中,有些程序由系統做爲root進程運行.這些程序並不老是具備SUID許可,由於其很多程序僅由root運行,系統管理員須要清楚這些程序作什麼,以及這些程序還將運行其它什麼程序. (1)啓動系統   當某些UNIX系統(如SCO UNIX/XENIX)啓動時,是以被稱爲單用戶的方式運行,在這種方式中普通用戶不能登陸,惟有的進程是init, swapper,以及一些由系統管理員從控制檯運行的進程.UNIX系統的單用戶方式啓動,使系統管理員能在容許普通用戶登陸之前,先檢查系統操做,確保系統一切正常,當系統處於單用戶方式時,控制檯做爲超級用戶,命令揭示是"#",有些UNIX系統不要確認超級用戶口令就承認控制檯是root,給出#提示符.這就可能成爲一個安全問題. (2)init進程   UNIX系統老是以某種方式或稱爲某種級運行,系統有若干種運行級,這些運行級由init進程控制.UNIX系統啓動時以單用戶方式運行,也叫1級或S級.對於其餘用戶登陸進入系統,UNIX有一種多用戶運行方式,也叫2級.init進程控制系統運行級,它讀入文件/etc/ inittab,該文件詳細地規定了哪些進程在哪一級運行.當root敲入init n(數字),系統就進入n級.init讀該文件以肯定終止哪些進程,啓動哪些進程.有效的運行級的數值是從0到6與s.   注意:由init創建的進程以UID爲0運行(root)從/etc/inittab運行的程序 也做爲root運行,因此係統管理員要確保本身知道/etc/inittab中的程序作什麼工做,確保這些程序以及這些程序所在的目錄直到/和/etc/inittab除root外無人可寫. (3)進入多用戶   當UNIX系統進入多用戶方式時,將寢化一系列事件,接着開始執行gettys,容許其餘用戶登陸進入系統.若是再看看/etc/inittab文件,會看到gettys定義在運行級2,至少三個shell程序/etc/brc,/etc/bcheckrc,/etc/rc*也定義在運行級2.這些程序都在gettys啓動前運行.這些shell程序做爲root運行,也不能僅對root可寫還應當檢查shell程序運行的命令,由於這些命令也將做爲root運行. (4)shutdown命令   用shutdown命令關係統,shutdown shell程序發送警告通知全部用戶離開系統,在"給定的期限時間"到了後,就終止進程,拆卸文件系統,進入單用戶方式或關機狀態.一旦進入單用戶方式,全部的gettys中止運行,用戶再不能登陸.進入關機狀態後可將系統關電. shutdown僅能由做爲root登陸的用戶從系統控制檯上運行.因此任何的shutdown運行的命令僅能對root可寫. (5)系統V的cron程序   cron在UNIX系統是多用戶方式時運行,根據規定的時間安排執行指定的命令,每隔一分鐘檢查一次文件/usr/lib/crontab,尋找是否有應當運行的程序? 若是找到要運行的程序,就運行該程序,不然睡眠等待一分鐘. 實際的/usr/lib/crontab用於根據全天的規則時間表運行程序,也可在夜晚運行白天不肯運行怕下降其餘用戶速度的程序.一般由cron運行的程序是如記賬,存文件這樣的程序.cron通常在系統進入多用戶後由/etc/rc啓動,當shutdown運行killall命令時便終止運行.由cron運行的程序做爲root,因此應當注意放什麼程序在crontab中,還要確保/usr/lib/crontab和該表中列出的任何程序對任何人不可寫.若是用戶須要由cron執行一個程序,系統管理員可用su命令在crontab表中創建一個入口,使用戶的程序不能得到root的權限. (6)系統V版本2以後的cron程序   在系統V版本2中,cron被修改爲容許用戶創建本身的crontab入口,/usr/lib/crontab文件再也不存在,由目錄/usr/spool/cron/crontabs中的文件代替.這些文件的格式與crontab相同,但每一個文件與系統中的一個用戶對應,並以某用戶的名義由cron運行.若是想限制能創建crontab的用戶,可在文/usr/lib/cron/cron.allow文件中列出容許運行crontab命令的用戶.任何未列於該文件的用戶不能運行crontab.反之,若更願意列出不容許運行crontab命令的用戶,則可將他們列入/usr/lib/cron/ cron.deny文件中,未列於該文件的其餘用戶將被容許創建 crontab. 注意:若兩個文件都存在,系統將使用cron.allow,忽略cron.deny.若是兩個文件都不存在,則只有root可運行crontab.因此,若要容許系統中的全部用戶均可運行crontab命令,應當創建一個空的cron.deny文件,若是cron.allow也存在,則刪除該文件.這個版本的cron命令的安全程度比前一個高,由於用戶只能看本身的 crontab,系統管理員也沒必要擔憂其餘用戶的程序是否會做爲root運行,因爲容許每一個系統登陸用戶有本身的crontab,也簡化了對程序必須由cron運行,但沒必要做爲root運行的系統程序的處理.必須確保root的crontab文件僅對root可寫,而且該文件所在的目錄及全部的父目錄也僅對root可寫. (7)/etc/profile 每當用戶(包括root在內)登陸時,由shell執行/etc/profile文件,應確保這個文件以及從這個文件運行的程序和命令都僅對root可寫. 5./etc/passwd文件 /etc/passwd文件是UNIX安全的關鍵文件之一.該文件用於用戶登陸時校驗用戶的口令,固然應當僅對root可寫.文件中每行的通常格式爲:LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL每行的頭兩項是登陸名和加密後的口令,後面的兩個數是UID和GID,接着的一項是系統管理員想寫入的有關該用戶的任何信息,最後兩項是兩個路徑名:一個是分配給用戶的HOME目錄,第二個是用戶登陸後將執行的shell(若爲空格則缺省爲/bin/sh). (1)口令時效 /etc/passwd文件的格式使系統管理員能要求用戶按期地改變他們的口令.在口令文件中能夠看到,有些加密後的口令有逗號,逗號後有幾個字符和一個冒號.如: steve:xyDfccTrt180x,M.y8:0:0:admin:/:/bin/sh restrict:pomJk109Jky41,.1:0:0:admin:/:/bin/sh pat:xmotTVoyumjls:0:0:admin:/:/bin/sh 能夠看到,steve的口令逗號後有4個字符,restrict有2個,pat沒有逗號.逗號後第一個字符是口令有效期的最大週數,第二個字符決定了用戶再次修改口信以前,原口令應使用的最小週數(這就防止了用戶改了新口令後馬上 又改回成老口令).其他字符代表口令最新修改時間.要能讀懂口令中逗號後的信息,必須首先知道如何用passwd_esc計數,計數的方法是: .=0 /=1 0-9=2-11 A-Z=12-37 a-z=38-63系統管理員必須將前兩個字符放進/etc/passwd文件,以要求用戶按期的修改口令,另外兩個字符當用戶修改口令時,由passwd命令填入.注意:若想讓用戶修改口令,可在最後一次口令被修改時,放兩個".",則下一次用戶登陸時將被要求修改本身的口令.有兩種特殊狀況: . 最大週數(第一個字符)小於最小週數(第二個字符),則不容許用戶修改口令,僅超級用戶能夠修改用戶的口令. . 第一個字符和第二個字符都是".",這時用戶下次登陸時被要求修改口令,修改口令後,passwd命令將"."刪除,此後再不會要求用戶修改口令. (2)UID和GID /etc/passwd中UID信息很重要,系統使用UID而不是登陸名區別用戶.通常來講,用戶的UID應當是獨一無二的,其餘用戶不該當有相同的UID數值.根據慣例,從0到99的UID保留用做系統用戶的UID(root,bin,uucp等).若是在/etc/passwd文件中有兩個不一樣的入口項有相同的UID,則這兩個用戶對相互的文件具備相同的存取權限. 6./etc/group文件 /etc/group文件含有關於小組的信息,/etc/passwd中的每一個GID在本文件中應當有相應的入口項,入口項中列出了小組名和小組中的用戶.這樣可方便地瞭解每一個小組的用戶,不然必須根據GID在/etc/passwd文件中從頭到尾地尋找同組用戶./etc/group文件對小組的許可權限的控制並非必要的,由於系統用UID,GID(取自/etc/passwd)決定文件存取權限,即便/etc/group文件不存在於系統中,具備相同的GID用戶也能夠小組的存取許可權限共享文件.小組就像登陸用戶同樣能夠有口令.若是/etc/group文件入口項的第二個域爲非空,則將被認爲是加密口令,newgrp命令將要求用戶給出口令,而後將口令加密,再與該域的加密口令比較.給小組創建口令通常不是個好做法.第一,若是小組內共享文件,如有某人猜着小組口令,則該組的全部用戶的文件就可能泄漏;其次,管理小組口令很費事,由於對於小組沒有相似的passwd命令.可用/usr/lib/makekey生成一個口令寫入/etc/group.如下狀況必須創建新組: (1)可能要增長新用戶,該用戶不屬於任何一個現有的小組. (2)有的用戶可能時常須要獨自爲一個小組. (3)有的用戶可能有一個SGID程序,須要獨自爲一個小組. (4)有時可能要安裝運行SGID的軟件系統,該軟件系統須要創建一個新組. 要增長一個新組,必須編輯該文件,爲新組加一個入口項. 因爲用戶登陸時,系統從/etc/passwd文件中取GID,而不是從/etc/group中取GID,因此group文件和口令文件應當具備一致性.對於一個用戶的小組,UID和GID應當是相同的.多用戶小組的GID應當不一樣於任何用戶的UID,通常爲5位數,這樣在查看/etc/passwd文件時,就可根據5位數據的GID識別多用戶小組,這將減小增長新組,新用戶時可能產生的混淆. 7.增長,刪除,移走用戶 (1)增長用戶 增長用戶有三個過程: . 在/etc/passwd文件中寫入新用戶的入口項. . 爲新登陸用戶創建一個HOME目錄. . 在/etc/group中爲新用戶增長一個入口項. 在/etc/passwd文件中寫入新的入口項時,口令部分可先設置爲NOLOGIN,以避免有人作爲此新用戶登陸.在修改文件前,應mkdir /etc/ptmp,以避免他人同時修改此文件.新用戶通常獨立爲一個新組,GID號與UID號相同(除非他要加入目前已存在的一個新組),UID號必須和其餘人不一樣,HOME目錄通常設置在/usr或/home目錄下創建一個以用戶登陸名爲名稱的目錄作爲其主目錄. (2)刪除用戶 刪除用戶與加用戶的工做正好相反,首先在/etc/passwd和/etc/group文件中刪除用戶的入口項,而後刪除用戶的HOME目錄和全部文件.rm -r /usr/loginname 刪除整個目錄樹.若是用戶在/usr/spool/cron/crontabs中有crontab文件,也應當刪除. (3)將用戶移到另外一個系統 這是一個複雜的問題,不僅是拷貝用戶的文件和用戶在/etc/passwd文件中的入口項.首先一個問題是用戶的UID和GID可能已經用於另外一個系統,如果出現這種狀況,必須給要移的用戶分配另外的UID和GID,若是改變了用戶的UID和GID,則必須搜索該用戶的所有文件,將文件的原UID和GID改爲新的UID和GID.用find命令能夠完成這一修改: find . -user olduid -exec chown newuid {} \; find . -group oldgid -exec chgrp newgid {} \; 也許還要爲用戶移走其它一些文件:/usr/mail/user和/usr/spool/cron/crontabs/user.若是用戶從一個不是本系統管理員的系統移來,則應對該用戶的目錄結構運行程序來檢查.一個不安全系統的用戶,可能有與該用戶其它文件存在一塊兒的SUID/SGID程序,而這個SUID/SGID程序屬於另外一個用戶.在這種狀況下,若是用cpio或tar命令將用戶的目錄結構拷貝到本系統,SUID/SGID程序也將會拷貝到本系統而沒有任何警告信息.應當在容許用戶使用新系統之前先刪除這種文件的SUID/SGID許可.總之,始終堅持檢查所移用戶的文件老是更安全些.也能夠用su命令進入用戶的戶頭,再拷貝用戶文件,這樣文件的全部者就是該用戶,而不是root. 8.安全檢查 像find和secure這樣的程序稱爲檢查程序,它們搜索文件系統,尋找出SUID/SGID文件,設備文件,任何人可寫的系統文件,設有口令的登陸用戶,具備相同UID/GID的用戶等等. (1)記賬 UNIX記賬軟件包可用做安全檢查工具,除最後登陸時間的記錄外,記賬系統還能保存全天運行的全部進程的完整記錄,對於一個進程所存貯的信息包括UID,命令名,進程開始執行與結束的時間,CPU時間和實際消耗的時間,該進程是不是root進程,這將有助於系統管理員瞭解系統中的用戶在幹什麼.acctcom命令能夠列出一天的賬目表.有明,系統中有多個記賬數據文件,記賬信息保存在文件/usr/adm/pacct*中,/usr/adm/pacct是當前記錄文件,/usr/adm/pacctn是之前的記賬文件(n爲整型數).如有若干個記賬文件要查看,可在acctcom命令中指定文件名: acctcom /usr/adm/pacct? /usr/adm/pacct要檢查的問題的其中之一是:在acctcom的輸出中查找一個用戶過多的登陸過程,如有,則說明可能有人一遍遍地嘗試登陸,猜想口令,企圖非法進入系統.此外,還應查看root進程,除了系統管理員用su命令從終端進入root,系統啓動,系統中止時間,以及由init(一般init只啓動getty,login,登陸shell),cron啓動的進程和具備root SUID許可的命令外,不該當有任何root進程.由記賬系統也可得到有關每一個用戶的CPU利用率,運行的進程數等統計數據. (2)其它檢查命令 *du:報告在層次目錄結構(當前工做目錄或指定目錄起)中各目錄佔用的磁盤塊數.可用於檢查用戶對文件系統的使用狀況. *df:報告整個文件系統當前的空間使用狀況.可用於合理調整磁盤空間的使用和管理. *ps:檢查當前系統中正在運行的全部進程.對於用了大量CPU時間的進程, 同時運行了許多進程的用戶,運行了很長時間但用了不多CPU時間的用戶進程應當深刻檢查.還能夠查出運行了一個無限制循環的後臺進程的用戶,未註銷戶頭就關終端的用戶(通常發生在直接連線的終端). *who:能夠告訴系統管理員系統中工做的進展狀況等等許多信息,檢查用戶的登陸時間,登陸終端. *su:每當用戶試圖使用su命令進入系統用戶時,命令將在/usr/adm/sulog文件中寫一條信息,若該文件記錄了大量試圖用su進入root的無效操做信息,則代表了可能有人企圖破譯root口令. *login:在一些系統中,login程序記錄了無效的登陸企圖(若本系統的login程序不作這項工做而系統中有login源程序,則應修改login).天天總有少許的無效登陸,若無效登陸的次數忽然增長了兩倍,則代表可能有人企圖經過猜想登陸名和口令,非法進入系統. (3)安全檢查程序的問題 關於以上的檢查方法的一個警告,如有誘騙,則這些方法中沒有幾個能防誘騙.如find命令,若是碰到路徑名長於256個字符的文件或含有多於200個文件的目錄,將放棄處理該文件或目錄,用戶就有可能利用創建多層目錄結構或大目錄隱藏SUID程序,使其逃避檢查(但find命令會給出一個錯誤信息,系統管理員應手工檢查這些目錄和文件).也可用ncheck命令搜索文件系統,但它沒有find命令指定搜索哪一種文件的功能.若是按期存取.profile文件,則檢查久未登陸用戶的方法就不奏效了.而 用戶用su命令時,除非用參數-,不然su不讀用戶的.profile. 有三種方法可尋找久未登陸的賬戶: . UNIX記賬系統在文件/usr/adm/acct/sum/login中爲每一個用戶保留了最後一次登陸日期.用這個文件的好處是,該文件由系統維護,因此可徹底確定登陸日期是準確的.缺點是必須在系統上運行記賬程序以更新loginlog文件,若是在清晨(午夜後)運行記賬程序,一天的登陸日期可能就被清除了. . /etc/passwd文件中的口令時效域將能告訴系統管理員,用戶的口令是否過時了,若過時,則意味着自過時以來,戶頭再未被用過.這一方法的好處在於系統記錄了久未用的戶頭,檢查過程簡單,且不須要記賬系統所須要的磁盤資源,缺點是也許系統管理員不想在系統上設置口令時效,並且這一方法僅在口令的最大有效期(只有幾周)纔是準確的. . 系統管理員能夠寫一個程序,天天(和從新引導系統時)掃描/etc/wtmp,本身保留下用戶最後登陸時間記錄,這一方法的好處是不須要記賬程序,而且時間準確,缺點是要本身寫程序.以上任何方法均可和/usr/adm/sulog文件結合起來,查出由login或su登陸戶頭的最後登陸時間.若是有人存心破壞系統安全,第一件要作的事就是尋找檢查程序.破壞者將修改檢查程序,使其不能報告任何異常事件,也可能中止系統記賬,刪除記賬文件,使系統管理員不能發現破壞者幹了些什麼.這裏最重要的一點是:系統管理沒越熟悉本身的用戶和用戶的工做習慣,就越能快速發現系統中任何不尋常的事件,而不尋常的事件意味着系統已被人竊密. (4)系統泄密後怎麼辦? 發現有人已經破壞了系統安全的時候,這時系統管理員首先應作的是面對肇事用戶.若是該用戶所作的事不是蓄意的,並且公司沒有關於"破壞安全"的規章,也未形成損壞,則系統管理員只需清理系統,並留心該用戶一段時間.若是該用戶形成了某些損壞,則應當報告有關人士,而且應儘量地將系統恢復到原來的狀態.若是肇事者是非受權用戶,那就得作最壞的假設了:肇事者已設法成爲root且本系統的文件和程序已經泄密了.系統管理員應當想法查出誰是肇事者,他形成了什麼損壞?還應當對整個文件作一次全面的檢查,並不僅是檢查SUID和SGID,設備文件.若是系統安全被一個敵對的用戶破壞了,應當採用下面的步驟: . 關係統,而後從新引導,不要進入多用戶方式,進入單用戶方式. . 安裝含有本系統原始UNIX版本的帶和軟盤. . 將/bin,/usr/bin,/etc,/usr/lib中的文件拷貝到一個暫存目錄中. . 將暫存目錄中全部文件的校驗和(用原始版本的suM程序拷貝作校驗和, 不要用/bin中的suM程序作)與系統中全部對就的文件的校驗和進行比較,若是有任何差異,要查清差異產生的緣由.若是兩個校驗和不一樣,是因爲安裝了新版本的程序,確認一相是否的確是安裝了新版本程序.若是不能找出校驗和不一樣的緣由,用暫存目錄中的命令替換系統中的原有命令. . 在確認系統中的命令還未被竄改以前,不要用系統中原命令.用暫存目錄中的shell,並將PATH設置爲僅在暫存目錄中搜索命令. . 根據暫存目錄中全部系統命令的存取許可,檢查系統中全部命令的存取許可. . 檢查全部系統目錄的存取許可,若是用了perms,檢查permlist文件是否被竄改過. . 若是系統UNIX(/unix)的校驗和不一樣於原版的校驗和,而且系統管理員從未修改過核心,則應當認爲,一個非法者"很能幹",從暫存緩衝區從新裝入系統.系統管理員能夠從逐步增長的文件系統備份中恢復用戶的文件,可是在檢查備份中的"有趣"文件以前,不能作文件恢復. . 改變系統中的全部口令,通知用戶他們的口令已改變,應找系統管理員獲得新口令. . 當用戶來要新口令時,告訴用戶發生了一次安全事故,他們應查看本身的文件和目錄是否潛伏着危害(如SUID文件,特洛依***,任何人可寫的目錄),並報告系統管理員任何異乎尋常的狀況. . 設法查清安全破壞是如何發生的?若是沒有肇事者說明,這也許是不可能弄清的.若是能發現肇事者如何進入系統,設法堵住這個安全漏洞.第一次安裝UNIX系統時,能夠將shell,sum命令,全部文件的校驗和存放在安全的介質上(帶,軟盤,硬盤和任何能夠卸下並鎖焉起來的介質).因而沒必要再從原版系統帶上從新裝入文件,能夠安裝備份介質,裝入shell和sum,將存在帶上的校驗和與系統中文件的校驗和進行比較.系統管理員也許想本身寫一個計 算校驗和的程序,破壞者將不能知道該程序的算法,若是將該程序及校驗和保存在帶上,這一方法的保密問題就減少到一個物理的安全問題,即只需將帶鎖起來...... 9.加限制的環境 (1)加限制的shell(rsh) 該shell幾乎與普通的shell相同,可是該shell的設計能限制一個用戶的能力,不容許用戶有某些標準shell所容許的行爲: . 不能改變工做目錄(cd). . 不能改變PATH或SHELL shell變量. . 不能使用含有"/"的命令名. . 不能重定向輸出(>和>>). . 不能用exec執行程序. 用戶在登陸時,招待.profile文件後系統就強加上了這些限制,若是用戶在.profile文件正被解釋時按了BREAK鍵或Delete鍵,該用戶將被註銷. 這些簡單的限制,使用寫受限制用戶的.profile文件的系統管理員能夠對用戶能使用什麼命令,進行徹底的控制.應當注意:系統V加限制的shell實際上不是很安全,在敵對的用戶時不要用.系統V版本2之後的版本中加限制的shell更安全些.但若容許受限制的用戶使用某些命令(如env,cp,ln),用戶將能逃避加限制的shell,進入非限制的shell. (2)用chroot()限制用戶 若是的確想限制一個用戶,可用chroot()子程序爲用戶創建一個徹底隔離的環境,改變了進程對根目錄的概念,所以可用於將一個用戶封在整個文件系統的某一層目錄結構中,使用戶沒法用cd命令轉出該層目錄結構,不能存取文件系統中其他部分的任何文件.這種限制方式比加限制的shell好得多.用戶使用的命令應由系統管理員在新的root目錄中創建一個bin目錄,並創建用戶可用命令的鏈到系統的/bin目錄中相應命令文件上(若在不一樣的文件系統則應拷貝命令文件).還應創建新的passwd文件,保留系統登陸戶頭(爲了使ls -l正確地報告與受限制的子文件系統中的文件相關的正確登陸名)和用戶賬戶,但系統賬戶的口令改成NOLOGIN以使受限制的用戶不能取得系統登陸的真實口令,使"破密"程序的任何企圖成爲泡影.utmp文件是who所須要的,該文件含有系統中已登陸用戶的列表.新的/etc/ profile文件也不是建鏈文件,以便受限制的用戶能夠執行不一樣的啓動命令./dev目錄中的終端設備文件被連接到新的/dev目錄下,由於命令who產生輸出時要查看這些文件.在系統V及之後的UNIX版本中,login命令有chroot()的功能.若是口令文件中用戶入口項的登陸shell域(最後一個域)是*,login將調用chroot()把用戶的根目錄設置成爲口令文件中用戶入口項登陸目錄域指定的目錄.而後再調用exec()執行login,新的login將在新子系統文件中執行該用戶的登陸.chroot()並非把root封鎖在一個子文件系統中,因此給受限制用戶用的命令時應加以考慮,具備root的SUID許可的程序可能會給予用戶root的能力.應當將這種可能減低到最小程度,交給用戶使用的命令應當取自清除了SUID陷井的系統命令.連接文件可減小磁盤佔用區,但要記住,當與敵對用戶打交道時,連接到chroot目錄結構(尤爲是命令)的系統文件是很危險的.若是創建一個像這樣的限制環境,應確保對安裝到新的/bin的每條命令都作過測試,有些程序可能有系統管理員不曾想到的出乎意料的執行結果.爲了使這些命令能運行,還得在加限制的子文件系統中加服務目錄或文件如:/tmp, /etc/termcap, /usr/lib/terminfo,/dev/mem,/dev/kmem,/dev/swap,用戶所登陸的/dev中的tty文件以及/unix.有些程序在子文件系統中運行時不會很好,若是將假脫機程序和網絡命令拷貝到加限制的子文件系統中,並放在爲兩條命令專建的目錄層結構下,它們可能也運行不了. 10.小系統安全 任何足夠小,運行於辦公室的UNIX系統就是小系統.這類小系統也包括全部臺式UNIX機器.根據安全觀點,使小系統很特別而值得特別的有如下幾點: . 小系統的用戶比大系統的用戶少,一般是很小一組用戶,使系統管理員能熟悉每一個人,安全問題能夠直接地面對面處理. . 因爲小UNIX系統管理更簡單,可能只須要一個系統管理員,於是維護系統安全的責任只有一我的擔負. . 若是既是用戶又是系統管理員,將不能花大量時間考慮系統安全. . 若是本身擁有系統而且是系統管理員,就可能有權直接將違反規的用戶從系統中刪除,而沒有幾個大系統的管理員能有這種權利. . 若是本身是系統的惟一用戶,則將既是用戶又是管理員,維護系統安全的任務就很簡單了,只須確保系統中全部登陸戶頭的口令是好的. . 若是不能將系統鎖起來,就把敏感的數據存放在軟盤上,把軟盤鎖起來. . 即便系統中有若干個用戶,但若是系統的終端之產是有線鏈接,而且用戶們保持門上鎖,則系統也將是安全的,至少在本組用戶內是安全的. . 小系統一般有可移動的介質(軟盤),可用mount命令將其安裝到系統上,提供一種安全的方法讓用戶本身在系統上安裝軟盤,不然系統管理員要一天到晚地幹這些瑣碎的安裝盤事務.容許用戶安裝軟盤的一般作法是給用戶一個SUID程序,該程序基本完成與系統管理員安裝用戶軟盤一樣的操做,首先檢查軟盤上有無SUID/SGID/設備文件,若發現任何奇怪的文件,則拒絕安裝該軟盤. . 當小系統開電源後,系統通常在從硬盤引導之前,先試圖從軟盤引導.這就意味着計算機將首先試圖從軟盤裝入程序,若軟盤不在驅動器中,系統將從硬盤裝入UNIX內核.軟盤幾乎能夠含有任何程序,包括在控制檯啓動root shell的UNIX系統版本.若是破壞者有一把螺絲起子和有關係統內部的一些知識,則即使系統有被認爲防止安全事故發生的特殊"微碼"口令,也可能被誘騙去從軟盤引導. . 即便小系統晚上不鎖,凡從不將我的的或祕密的信息存放在大系統上的人他們不可能認識全部系統上的用戶),也不會想把這樣的信息存放在小系統上. . 小系統的系統管理員在使用UNIX系統方面常不如大系統管理員有經驗,而安全地管理系統須要必定的使用系統的知識. 11.物理安全 對於運行任何操做系統的小型或大型計算機,物理安全都是一個要考慮的重要問題,物理安全包括:鎖上放置計算機的屋子,報警系統,警衛,全部安置在不能上鎖的地方的通信設施,包括有線通信線,電話線,局域網,遠程網,應答MODEM,鑰匙或信用卡識別設備,給用戶的口令和鑰匙分配,任何前置通信設施的加密裝置,文件保護,備份或恢復方案(稱爲安全保險方案,用做應付偶然的或蓄意的數據或計算設備被破壞的狀況),上鎖的輸出仃,上鎖的廢物箱和碎紙機.物理安全中所飲食的總考慮應是:在安全方案上所付出的代價不該當多於值得保護的(硬件或軟件的)價值.下面着重討論保護用戶的各類通信線.對於任何可在不上鎖的地方存取的系統,通信是特別嚴重的安全薄弱環節.當容許用戶經過掛到地方電話公司的撥號MODEM存取系統時,系統的安全程度就將大大地削弱,有電話和MODEM的任何人就可能非法進入該系統.應當避免這一狀況,要確保MODEM的電話號碼不被列於電話薄上,而且最好將電話號碼放在不一樣於本公司普通電話號碼所在的交換機上.總之,不要假設沒人知道本身的撥入號碼!大多數家庭計算機都能編程用一個MODEM成天地依次調用撥號碼,記錄下鏈接上其它MODEM的號碼.若是可能,安裝一個局 域PBX,使得對外界的撥號產生一秒鐘的撥號蜂音,而且必須輸入一個與MODEM相關聯的擴展號碼. 12.用戶意識 UNIX系統管理員的職責之一是保證用戶安全.這其中一部分工做是由用戶的管理部門來完成,可是做爲系統管理員,有責任發現和報告系統的安全問題,由於系統管理員負責系統的運行.避免系統安全事故的方法是預防性的,當用戶登陸時,其shell在給出提示前先執行/etc/profile文件,要確保該文件中的PATH指定最後搜索當前工做目錄,這樣將減小用戶能運行特洛依***的機會.將文件創建屏蔽值的設置放在該文件中也是很合適的,可將其值設置成至少將防止用戶無心中創建任何人都能寫的文件(022/026).要當心選擇此值,若是限制太嚴,則用戶會在本身的.profile中從新調用umask以抵制系統管理員的意願,若是用戶大量使用小組權限共享文件,系統管理員就一要設置限制小組存取權限的屏蔽值.系統管理員必須創建系統安全和用戶的"痛苦量"間的平衡(痛苦量是安全限制引發的憤怒的函數).按期地用grep命令查看用戶.profile文件中的umask,可瞭解系統安全限制是否超過了用戶痛苦極限.系統管理員可每星期隨機抽選一個用戶,將該用戶的安全檢查結果(用戶的登陸狀況簡報,SUID/SGID文件列表等)發送給他的管理部門和他本人.主要有四個目的: . 大多數用戶會收到至少有一個文件檢查狀況的郵件,這將引發用戶考慮安全問題(雖然並不意味着用戶們會採起增強安全的行動). . 有大量可寫文件的用戶,將一星期獲得一次郵件,直到他們取消可寫文件的寫許可爲止.冗長的煩人的郵件信息也許足以促使這些用戶採起措施,刪除文件的寫許可. . 郵件將列出用戶的SUID程序,引發用戶注意本身有SUID程序,使用戶知道是否有不是本身創建的SUID程序. . 送安全檢查表可供用戶管理本身的文件,並使用戶知道對文件的管理關係到數據安全.若是系統管理員打算這樣作,應事先讓用戶知道,以便他們瞭解安全檢查郵件的目的. 發送郵件是讓用戶具備安全意識,不要抱怨發送郵件. 管理意識是提升安全性的另外一個重要因素.若是用戶的管理部門對安全要求不強烈,系統管理員可能也忘記強化安全規則.最好讓管理部門創建一套每一個人都必須遵照的安全標準,若是系統管理員在此基礎上再創建本身的安全規則,就強化了安全.管理有助於增強用戶意識,讓用戶明確,信息是有價值的資產.系統管理員應當使安全保護方法對用戶儘量地簡單,提供一些提升安全的工具,如:公佈鎖終端的lock程序,讓用戶本身運行secure程序,將pwexp(檢查用戶口令信息的程序)放入/etc/profile中,使用戶知道本身的口令時間.多教給用戶一些關於系統安全的知識,確保用戶知道本身的許可權限和umask命令的設置值.若是注意到用戶在作蠢事,就給他們一些應當怎樣作纔對的提示.用戶知道的關於安全的知識越多,系統管理員在保護用戶利益方面作的事就越少. 13.系統管理員意識 (1)保持系統管理員我的的登陸安全 若系統管理員的登陸口令泄密了,則竊密者離竊取root只有一步之遙了,由於系統管理員常常做爲root運行,竊密者非法進入到系統管理員的戶頭後,將用特洛依***替換系統管理員的某些程序,系統管理員將做爲root運行這些已被替換的程序.正是由於這個緣由,在UNIX系統中,管理員的戶頭最常受到***.即便su命令一般要在任何都不可讀的文件中記錄全部想成爲root的企圖,還可用記賬數據或ps命令識別運行su命令的用戶.也是如此,系統管理員做爲root運行程序時應當特別當心,由於最微小的疏忽也可能"沉船".下列一些指導規則可以使系統管理員駕駛一艘"堅固的船": . 不要做爲root或以本身的登陸戶頭運行其餘用戶的程序,首先用su命令進入用戶的戶頭. . 決不要把當前工做目錄排在PATH路徑表的前邊,那樣實際是招引特洛依***.當系統管理員用su命令進入root時,他的PATH將會改變,就讓PATH保持這樣,以免特洛依***的侵入. . 敲入/bin/su執行su命令.如有su源碼,將其改爲必須用全路徑名運行(即su要確認argv[0]的頭一個字符是"/"才運行).隨着時間的推移,用戶和管理員將養成敲/bin/su的習慣. . 不要未註銷戶頭就離開終端,特別是做爲root用戶時更不能這樣.當系統管理員做爲root用戶時,命令提示符是"#",這個提示符對某些人來講多是個紅燈標誌. . 不容許root在除控制檯外的任何終端登陸(這是login的編譯時的選項),若是沒有login源碼,就將登陸名root改爲別的名,使破壞者不能在root登陸名下猜想各類可能的口令,從而非法進入root的戶頭.錄名下猜想各類可能的口令,從而非法進入root的戶頭. . 常常改變root的口令. . 確認su命令記下的想運行su企圖的記錄/usr/adm/sulog,該記錄文件的許可方式是600,並屬root全部.這是非法者喜歡選擇來替換成特洛依***的文件. . 不要讓某人做爲root運行,即便是幾分鐘,即便是系統管理員在一旁註視着也不行! (2)保持系統安全 . 考慮系統中一些關鍵的薄弱環節: a. 系統是否有MODEM?電話號碼是否公佈? b. 系統是否鏈接到?還有什麼系統也鏈接到該網絡? c. 系統管理員是否使用未知來處或來處不可靠的程序? d. 系統管理員是否將重要信息放在系統中? e. 系統的用戶是熟悉系統的使用仍是新手? f. 用戶是否很重視關心安全? g. 用戶的管理部門是否重視安全? . 保持系統文件安全的完整性.檢查全部系統文件的存取許可,任何具備SUID許可的程序都是非法者想偷換的選擇對象. . 要特別注意設備文件的存取許可. . 要審查用戶目錄中具備系統ID/系統小組的SUID/SGID許可的文件. . 在未檢查用戶的文件系統的SUID/SGID程序和設備文件以前,不要安裝用戶的文件系統. . 將磁盤的備份存放在安全的地方. . 設置口令時效,若是能存取UNIX的源碼,將加密口令和信息移到僅對root可讀的文件中,並修改系統的口令處理子程序.這樣可增長口令的安全.修改passwd,使passwd能刪去口令打頭和末尾的數字,而後根據spell詞典和 /etc/passwd中用戶的我的信息,檢查用戶的新口令,也檢查用戶新口令中子串等於登陸名的狀況.若是新口令是spell詞典中的單詞,或/etc/passwd中的入口項的某項值,或是登陸名的子串,passwd將不容許用戶改變口令. . 記錄本系統的用戶及其受權使用的系統. . 查出久未使用的登陸戶頭,並取消該戶頭. . 確保沒有無口令的登陸戶頭. . 啓動記賬系統. . 查出不尋常的系統使用狀況,如大量的佔用磁盤,大量的使用CPU時間,大量的進程,大量的使用su的企圖,大量無效的登陸,大量的到某一系統的網絡傳輸,奇怪的uucp請求. . 修改shell,使其等待了必定時間而無任務時終止運行. . 修改login,使其打印出用戶登陸的最後時間,三次無效登陸後,將通信線掛起,以便系統管理員能檢查出是否有人試圖非法進入系統.確保login不讓root在除控制檯外的任何地方登陸. . 修改su,使得只有root能以過時口令經過su進入某一戶頭. . 當安裝來源不可靠的軟件時,要檢查源碼和makefile文件,查看特殊的子程序調用或命令. . 即便是安裝來源可靠的軟件,也要檢查是否有SUID(SGID)程序,確認這些許可的確是必要的.若是可能,不要讓這些程序具備系統ID(或組)的SUID(SGID)許可,而應該創建一個新用戶(或給)供該軟件運行. . 若是系統在辦公室中,門應上鎖,將重要數據保存在軟盤上或帶上,並鎖起來. . 將secure,perms和任何其它作安全檢查的shell程序存取許可置爲僅執行,更好的是將這些shell程序存於可拆卸的介質上. . 記住,只要系統有任何人均可調用的撥號線,系統就不可能真正的安全.系統管理員能夠很好地防止系統受到偶然的破壞.可是那些有耐心,有計劃, 知道本身在幹什麼的破壞者,對系統直接的有預謀的***卻經常能成功. . 若是系統管理員認爲系統已經泄密,則應當設法查出肇事者.若肇事者是本系統的用戶,與用戶的管理部門聯繫,並檢查該用戶的文件,查找任何可疑的文件,而後對該用戶的登陸當心地監督幾個星期.若是肇事者不是本系統的用戶,可以讓本公司採起合法的措施,並要求全部的用戶改變口令,讓用戶知道出了安全事故,用戶們應當檢查本身的文件是否有被竄改的跡象.若是系統管理員認爲系統軟件已被更改了,就應當從原版系統帶(或;軟盤)上重裝入全部系統軟件,保持系統安全比道歉更好.
相關文章
相關標籤/搜索