UNIX系統(tǒng)通用安全標(biāo)準(zhǔn)手冊(cè).doc
《UNIX系統(tǒng)通用安全標(biāo)準(zhǔn)手冊(cè).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《UNIX系統(tǒng)通用安全標(biāo)準(zhǔn)手冊(cè).doc(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
UNIX系統(tǒng)通用安全標(biāo)準(zhǔn) UNIX是一種多用戶、多任務(wù)的操作系統(tǒng)。這類操作系統(tǒng)的一種基本功能就是防止使用同一臺(tái)計(jì)算機(jī)的不同用戶之間的相互干擾。對(duì)于UNIX自身的安全機(jī)制,我們將從以下幾個(gè)方面進(jìn)行描敘。 1身分標(biāo)識(shí) 在UNIX 系統(tǒng)中一些系統(tǒng)管理命令只能由超級(jí)用戶運(yùn)行.超級(jí)用戶擁有其它用戶所沒有的特權(quán),超級(jí)用戶不管文件存取許可方式如何,都可以讀,寫任何文件,運(yùn)行任何程序。系統(tǒng)管理員通常使用命令: /bin/su 或以 root 進(jìn)入系統(tǒng)從而成為超級(jí)用戶。作為超級(jí)用戶可以控制一切,包括:用戶帳號(hào)、文件和目錄、網(wǎng)絡(luò)資源。用戶登錄到系統(tǒng)中,需輸入用戶名標(biāo)識(shí)其身份。內(nèi)部實(shí)現(xiàn)時(shí),系統(tǒng)管理員在創(chuàng)建用戶帳號(hào)時(shí),為其分配一個(gè)惟一的標(biāo)識(shí)號(hào)(UID)。 1.1 賬戶設(shè)定 UNIX系統(tǒng)中的/etc/passwd文件含有全部系統(tǒng)需要知道的關(guān)于每個(gè)用戶的信息(加密后的口令也可能存于/etc/shadow文件中)。 超級(jí)用戶則可以使用passwd命令更改所有用戶的登錄口令或規(guī)定用戶的登錄口令的屬性。 ? passwd [name]:修改用戶name的帳號(hào)口令 ? passwd –s [-a]:顯示所有用戶的口令信息,超級(jí)用戶使用 ? passwd –s [name]:顯示用戶name的口令信息,超級(jí)用戶使用 ? passwd [-l|-d][-f][-n min][-x max][-w warn] name: -l:鎖住用戶name的帳號(hào),超級(jí)用戶使用 -d:刪除某一用戶的口令,超級(jí)用戶使用 -f:使用戶name的口令失效,強(qiáng)迫用戶下次登錄時(shí)更改口令,超級(jí)用戶使用 -n min:規(guī)定口令在min天后失效,超級(jí)用戶使用 -x max:規(guī)定用戶口令壽命的最長(zhǎng)天數(shù),超級(jí)用戶使用 -w warn:設(shè)置在用戶口令失效后的警告信息,超級(jí)用戶使用 在UNIX中,用戶組的引入是為了方便用戶對(duì)文件和其它資源的共享,同時(shí)又保證系統(tǒng)的安全性。所謂用戶組是指共同在UNIX系統(tǒng)中開發(fā)同一項(xiàng)目,因此共享文件和其它系統(tǒng)資源的用戶的集合。 Group文件:定義了UNIX系統(tǒng)中所有的用戶組,它位于系統(tǒng)的/etc目錄下。文件的每一行定義一個(gè)用戶組,格式為: group-name: * : gid: additional-user,Group-name 中包含組的名稱(文本格式);“*”這一項(xiàng)是為了與老版本的UNIX兼容,沒有實(shí)際意義。Gid域是一個(gè)唯一標(biāo)識(shí)組名的數(shù)字;additional-user域包含了屬于該組的用戶名單。 增加和刪除用戶組:通過groupadd和groupdel命令超級(jí)用戶可以直接增加和刪除用戶組。這實(shí)際上是對(duì)/etc/group文件的操作。 Groupadd命令通過在group文件中增加一行來(lái)在系統(tǒng)中增加一個(gè)新的用戶組,命令格式為: groupadd [-g gid] [-o] group-name # groupadd –g 200 exam 增=-08gid為200的用戶組exam。 Groupdel命令將刪除group文件中的一行來(lái)刪除系統(tǒng)中的一個(gè)用戶組,命令格式為:groupdel group-name 作為超級(jí)用戶,系統(tǒng)管理員可以直接對(duì)/ect/group文件進(jìn)行編輯,實(shí)現(xiàn)用戶組的增加和刪除。 1.2 用戶屬性 通過用戶的權(quán)限的設(shè)置,可以實(shí)現(xiàn)以下重要的安全防范: ? 防止未授權(quán)存取:這是計(jì)算機(jī)安全最重要的問題:未被使用系統(tǒng)的人進(jìn)入系統(tǒng). 用戶意識(shí),良好的口令管理(由系統(tǒng)管理員和用戶雙方配合),登錄活動(dòng)記錄和報(bào)告, 用戶和網(wǎng)絡(luò)活動(dòng)的周期檢查,這些都是防止未授權(quán)存取的關(guān)鍵. ? 防止泄密:這也是計(jì)算機(jī)安全的一個(gè)重要問題,防止已授權(quán)或未授權(quán)的用戶相互存取相互的重要信息.文件系統(tǒng)查帳,su登錄和報(bào)告。用戶管理是防止泄密的重要措施。 ? 防止用戶拒絕系統(tǒng)的管理:這一方面的安全應(yīng)由操作系統(tǒng)來(lái)完成,一個(gè)系統(tǒng)不應(yīng)被一個(gè)有意試圖使用過多資源的用戶損害,UNIX上通過用PS命令,記帳程序df和du周期地檢查系統(tǒng),查出過多占用CUP的進(jìn)程和大量占用磁盤的文件。 超級(jí)用戶引起的問題root是UNIX系統(tǒng)安全方面的主要弱點(diǎn),取得root之后可以對(duì)系統(tǒng)作任何想作的事情。? 在大型的分布式系統(tǒng)中,為了統(tǒng)一對(duì)用戶的管理,通常將每一臺(tái)工作站上的口令文件存放在網(wǎng)絡(luò)服務(wù)器上。 用戶的.profile文件? ????由于用戶的HOME目錄下的.profile文件在用戶登錄時(shí)就被執(zhí)行.若該文件對(duì)其它人是可寫的則系統(tǒng)的任何用戶都能修改此文件,使其按自己的要求工作.這樣可能使得其它用戶具有該用戶相同的權(quán)限.? 通過修改/etc/profile文件,從中增加一段程序,使之能與我們預(yù)先設(shè)定的有關(guān)用戶、端口、工作時(shí)間等一些信息的文件進(jìn)行比較,判斷當(dāng)前注冊(cè)用戶的登錄端口、日期和時(shí)間是否在我們?cè)试S的范圍內(nèi),否則不允許注冊(cè)登錄。 1.3 停用無(wú)用的用戶 “Guest”該帳戶應(yīng)該在系統(tǒng)上是不被允許的。UNIX 內(nèi)含一些使用者ID ,而其密碼是無(wú)效的( password (*) )。若ID 含有無(wú)效的密碼(invalid password),其意謂者沒有任可使用者可以藉此登入至系統(tǒng)。這些ID 是: bin Owner of the system executable files sys Owner of system devices adm Owner of system accounting utilities uucp Owner of UNIX-to-UNIX Copy Program nuucp For UUCP lpd Owner of printer spooler utility guest Guest account nobody used by NFS 并不建議移除所有無(wú)用的帳戶,如: uucp, nuucp, lpd, guest, and nobody等。此乃因 有時(shí)候當(dāng)安裝更新程序時(shí),安裝程序會(huì)嘗試使用這些系統(tǒng)定義的使用者,譬如,更改檔案的所有權(quán)給自已。假如該帳戶不存在,則安裝可能會(huì)失敗, 并造成更新程序在一個(gè)“未定義”或“broken” 狀態(tài)。這樣是非常困難去回復(fù)先前的錯(cuò)誤。 因此除了guest user,不要移除其它系統(tǒng)帳戶信息。 2身分鑒別 2.1使用/etc/passwd文件 用戶名是個(gè)標(biāo)識(shí),它告訴計(jì)算機(jī)該用戶是誰(shuí),而口令是個(gè)確認(rèn)證據(jù)。當(dāng)用戶登錄系統(tǒng)時(shí),需要輸入口令來(lái)鑒別用戶身份。/etc/passwd中存放的加密的口令用于用戶登錄時(shí)輸入的口令經(jīng)計(jì)算后相比較,符合則允許登錄,否則拒絕用戶登錄。該文件僅對(duì)root可寫,用戶可用passwd命令修改自己的口令,不能直接修改/etc/passwd中的口令部份。文件中每行的一般格式為: LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL 每行的頭兩項(xiàng)是登錄名和加密后的口令,后面的兩個(gè)數(shù)是UID和GID,接著的 一項(xiàng)是系統(tǒng)管理員想寫入的有關(guān)該用戶的任何信息,最后兩項(xiàng)是兩個(gè)路徑名: 一個(gè)是分配給用戶的HOME目錄,第二個(gè)是用戶登錄后將執(zhí)行的shell(若為空格則 缺省為/bin/sh)。 下面是一個(gè)沒shadow的passwd文件的分析說明: root:iKjDBNKWOUkVo:0:1:Super-User:/:/bin/sh? | |? |?|? |? ?| |_________用戶登陸shell | |? |?|? | |_______________________用戶主目錄 | |? |?|? |___________用戶真實(shí)姓名或更多關(guān)于用戶的信息 |? ?| ?|?|__________________________GID |? ?| ?|_________________________________UID |? ?|_____________________________________________經(jīng)過加密的口令 |__________________________________________________________?用戶名? 不同的信息段用“:”來(lái)區(qū)分。第一個(gè)字段的root是該用戶登陸時(shí)的用戶名,而第二個(gè)字段是經(jīng)過加密后的用戶口令,然后我們看到root用戶的UID是0這在UNIX系統(tǒng)中很關(guān)鍵,Super-User信息是對(duì)用戶屬性描述,GID=1這說明了root的用戶組!Super-user:/:的那個(gè)/這是用戶登錄后的主目錄,也就是當(dāng)你進(jìn)去之后/(在UNIX里表示最上一級(jí)的根目錄)將是你的當(dāng)前目錄。/bin/sh?是用戶登錄后的shell。 由于/etc/passwd文件對(duì)任何 用戶都可讀,故常成為攻擊的目標(biāo)。真正的用戶口令可能存在其它文件中,如/etc/shadow,該文件對(duì)普通用戶不可讀。用戶的口令經(jīng)加密后存放在/etc/shadow文件中,該文件對(duì)應(yīng)/etc/passwd文件,每行用冒號(hào)分隔為四個(gè)域:用戶名、口令、最后一次修改時(shí)間、口令需修改的最小期限、口令最大有效期限。/etc/shadow文件中第二個(gè)域被置為x。 當(dāng)用戶輸入口令時(shí),UNIX用相應(yīng)的加密方法對(duì)口令進(jìn)行加密。當(dāng)前SUN OS有兩個(gè)鑒別系統(tǒng):UNIX和DES。 UNIX鑒別機(jī)制 SUN早期的各種網(wǎng)絡(luò)服務(wù)都建立在UNIX鑒別機(jī)制之上,證書部分包含站名, 用戶號(hào),組號(hào)和同組存取序列,而核對(duì)器是空白。這個(gè)系統(tǒng)存在兩個(gè)問題:首先, 最突出的問題是核對(duì)器是空的,這就使得偽造一份證書是非常容易的。 另一個(gè)問題是UNIX鑒別系統(tǒng)只適用于UNIX系統(tǒng),但需要在一個(gè)網(wǎng)絡(luò)中所有的站都使用UNIX系統(tǒng)是不現(xiàn)實(shí)的。 DES鑒別系統(tǒng)的安全性建立在發(fā)送者對(duì)當(dāng)前時(shí)間的編碼能力上,它使接收 者能解碼并對(duì)照自己的時(shí)鐘來(lái)進(jìn)行檢驗(yàn).時(shí)鐘標(biāo)記也使用DES編碼. 這樣的機(jī)制 要工作有兩件事是必須的: 發(fā)送者和接收者雙方必須對(duì)什么是當(dāng)前時(shí)間進(jìn)行約定; 發(fā)送者和接收者必須使用同樣的編碼關(guān)鍵字。 2.2設(shè)置密碼規(guī)則 良好的密碼是抵御未授權(quán)進(jìn)入系統(tǒng)的第一道有效防線,它們是以下類型: ? 大小寫字母的混合 ? 字母、數(shù)字或標(biāo)點(diǎn)符號(hào)的組合。此外,它們可以包含特殊字符,如 ~!@#$%^&*()-_=+[]{}|\;:'",.<>?/< 空格> ? 未寫在任何地方 ? 如果使用 /etc/security/passwd 文件,那么長(zhǎng)度最少為 7 個(gè)字符最大 8 個(gè)字符。 ? 不是在字典中可查到的真實(shí)單詞 ? 不是鍵盤上字母的排列模式,例如 qwerty ? 不是真實(shí)單詞或已知排列模式的反向拼寫 ? 不包含任何與您自己、家庭或朋友有關(guān)的個(gè)人信息 ? 不與從前一個(gè)密碼的模式相同 ? 可以較快輸入,這樣邊上的人就不能確定您的密碼 3訪問控制 文件和目錄許可 文件和目錄屬性決定了被訪問權(quán)限,即誰(shuí)能存取或執(zhí)行該文件和目錄。我們知道UNIX是一個(gè)多用戶的操作系統(tǒng),那么,它是怎樣來(lái)區(qū)分一個(gè)文件是屬于誰(shuí)的,這個(gè)文件是什么類型的文件的呢?下面我們通過一個(gè)例子來(lái)說明這個(gè)問題。 我們現(xiàn)在使用ls命令列出當(dāng)前目錄下的文件: #ls -la # -rw-rw-rw-??? 1??? root????? wheel??? 170??? jan 7 19:46??? mnk # -rw-r-----??? 1??? root????? wheel??? 18204? jan 8 20:34??? nmap.tar.gz # -rwxr-xr--??? 1??? candy???? user???? 1204?? may 23 13:00?? mysh.sh # drwx------??? 2??? netdemon? user???? 512??? may 23 14:23?? mydoc |-----1------|--2--|----3-----|---4---|---5---|------6------|-----7-------| 在這里第一部分是文件屬性,第二部分是文件數(shù)量,第三是所有者,第四是所屬組,第五是文件大小,第六是文件修改時(shí)間,第七是文件名,第三部分表明了一個(gè)文件的擁有者是誰(shuí),就mnk這個(gè)文件來(lái)說,它的擁有者是root,是屬于wheel這個(gè)組的,而mysh.sh的擁有者是candy,user組的,通常情況下,如果用戶屬于這個(gè)組,那么這個(gè)文件也就屬于這個(gè)組,第二部分指出連接到此文件的連接的數(shù)量,我們都知道,在win系統(tǒng)上,我們可以創(chuàng)建快捷方式,比如在桌面上創(chuàng)建一個(gè)快捷方式,指向某個(gè)文件,UNIX的連接也大致是一樣的概念,如果在系統(tǒng)尚有一個(gè)連接是指向mnk的,那么在這里它的1就會(huì)變成2 第一部分一共有10位數(shù)來(lái)表示,第一位表示文件類型,"-"表示這個(gè)一個(gè)文件,"d"表示這個(gè)一個(gè)目錄,"l"表示這是一個(gè)連接,接下來(lái)的9位,我們把他們每3位分為一段來(lái)看,第一段對(duì)應(yīng)于文件擁有者用u表示(user),第二段對(duì)應(yīng)屬組用g表示(group),第三段對(duì)應(yīng)任何人用o表示(other),而每一段的第一位代表讀權(quán)限(r),第二為代表寫權(quán)限(w),第三位代表執(zhí)行(x)(對(duì)文件而言)或可進(jìn)入(對(duì)目錄而言)權(quán)限,現(xiàn)在我們拿第二個(gè)文件nmap.tar.gz來(lái)作說名,第一位"-"表明這是一個(gè)文件,接下來(lái)的"rw-"表明root可以讀寫這個(gè)文件,但不能執(zhí)行它,再接下來(lái)的"r--"表明了屬于wheel這個(gè)組的人可以讀這個(gè)文件,但不能修改(不可寫)也不能執(zhí)行這個(gè)文件,最后的"---"表明了其它的任何人都不能讀、寫、執(zhí)行這個(gè)文件。由此,我們現(xiàn)在可以知道,mnk這個(gè)文件是任何一個(gè)人都可以讀寫但不能執(zhí)行的一個(gè)文件,因?yàn)樗拿恳徊糠侄际?rw-",而第三個(gè)mysh.sh就是candy可讀可寫可執(zhí)行,netdemon可以執(zhí)行但不能修改或刪除,為什么呢?通過第4個(gè)mydoc,我們看出netdemon也是屬于user組的一個(gè)用戶,而mysh.sh的表示組權(quán)限的這一段是"r-x",所以netdemon有執(zhí)行這個(gè)文件的權(quán)限,但是其它的人就只能看了,這是因?yàn)樽詈蟮?r--"說明的這個(gè)規(guī)則。第四個(gè)mydoc,由第一位的"d",說明這是一個(gè)目錄而不是一個(gè)文件,netdemon可以讀寫進(jìn)入這個(gè)目錄,但其它的人都不可以包括同一組的candy,因?yàn)樗詈蠖际?---"。 UNIX把表示屬性的9位數(shù)分為三段,user,group,other,各段的權(quán)限(rwx)換為二進(jìn)制,再變?yōu)?0進(jìn)制的結(jié)果,有"r"或"w","x"權(quán)限的用1表示,沒有的用0表示,即"---"為000,"rwx"為111,那么,"r-x"的二進(jìn)制就表示為 101,而101的十進(jìn)制數(shù)為 1*2e2+0*2e1+1*2e0=1*4+0*2+1*1=5,再把u,g,o各自的值串起來(lái)就成了755 644等的這些表示法了,比如"rwxr-xr-x" ,因?yàn)閡為rwx,二進(jìn)制是111,十進(jìn)制是7,g和o都為r-x,二進(jìn)制是101,十進(jìn)制是5,所以,"rwxr-xr-x"也可以用755表示,下面給出各種權(quán)限的二進(jìn)制和十進(jìn)制的值 權(quán)限??????? 二進(jìn)制??????十進(jìn)制 --------------------------------------- ---???????? 000???????? 0 --x???????? 001???????? 1 -w-???????? 010???????? 2 -wx???????? 011???????? 3 r--???????? 100???????? 4 r-x???????? 101???????? 5 rw-???????? 110???????? 6 rwx???????? 111???????? 7 --------------------------------------- 文件類型的表示符 --------------------------------------- d???????? 目錄 b???????? 二進(jìn)制特殊文件 c???????? 文本特殊文件 l???????? 符號(hào)連接 p???????? Pipe s???????? Socket -???????? 普通文件 改變?cè)S可權(quán)限 如果一個(gè)文件或目錄屬于你所有,那么你可以改變它的許可權(quán),用改變模式 chmod命令實(shí)現(xiàn)這個(gè)目的。告訴 chmod命令欲更改許可權(quán)的文件或目錄名,以及各用戶的權(quán)限變化情況。 為了改變用戶、小組和其它使用者對(duì)文件的許可權(quán),常常利用字母加上符號(hào)來(lái)表示,由以下幾個(gè)部分組成: ? 修改對(duì)象:用 u表示用戶,即文件的所有者,用 g表示小組,用o表示其它用戶。 ? 許可權(quán)允許表示:”+”表示允許,”-”表示不允許。 ? 許可權(quán)的類型: r表示讀, w表示寫, x表示執(zhí)行。 例如,允許每個(gè)人都能讀文件file,即所有的人都對(duì)文件file擁有讀執(zhí)行權(quán)時(shí),輸入命令為: chmod ugo+r file 以上命令告訴系統(tǒng):所有者、小組以及其它用戶可以讀該文件。 又如,除用戶所有者之外,任何人不具有修改文件的權(quán)限,應(yīng)輸入命令為: chmod go-w file 當(dāng)然 chmod命令中也可以使用絕對(duì)許可權(quán)-──即二進(jìn)制數(shù)的形式來(lái)表示。例如允許所有者和相關(guān)的小組具有讀和修改文件權(quán)限時(shí),輸入命令為: chmod 660 file 由上述命令行可知,將所有者和小組的許可權(quán)分別設(shè)置成6,對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)為110,即說明它們分別具有讀和寫的權(quán)限,而其它用戶的許可權(quán)設(shè)置成0,對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)為000,即表明不能做任何事情。 可以用改變文件許可權(quán)同樣方式來(lái)改變目錄的許可權(quán),例如, 輸入命令: chmod go-w /home/guest 該命令則表示guest目錄中所有文件除所有者外其余用戶都無(wú)寫的權(quán)限。 改變文件或目錄的所有者 當(dāng)有人給你一個(gè)文件時(shí),將它拷貝到你的主目錄中來(lái),但是在 UNIX系統(tǒng)中,將文件拷貝給你的人仍然是文件的主人。若要改變文件所有者,在 System v中,可以用 chown命令改變文件所有者(在 BSD中,只有超級(jí)用戶才能改變文件的所有者)。改變所有者時(shí),必須告訴命令 chown文件新的所有者以及要改變的文件名,例如: chown zhli file 上述命令將 file文件所有者改變?yōu)?zhli。改變文件所有者的另一種方式是建立文件的一個(gè)拷貝。如果你拷貝了一個(gè)文件,那么你就可以成為該文件的所有者。 改變目錄的所有者的命令與改變文件的所有者的命令類似, 例如: chown zhli /home/guest 上述命令將 /home/guest目錄所有者改變?yōu)?zhli。 系統(tǒng)中的鏈接是一個(gè)已經(jīng)存在的文件的另一個(gè)名字,它不復(fù)制文件的內(nèi)容。有兩種鏈接方式,一種是硬鏈接(hard link),另一種是符號(hào)鏈接(symbolic link),又稱軟鏈接。硬鏈接和原有文件是存儲(chǔ)在同一物理地址的兩個(gè)不同的名字,因此硬鏈接是相互的;符號(hào)鏈接的內(nèi)容只是一個(gè)所鏈接文件的文件名,在使用ls –l時(shí),符號(hào)鏈接的第一項(xiàng)的第一位為“l(fā)”。 umask命令 umask設(shè)置用戶文件和目錄的文件創(chuàng)建缺省屏蔽值,若將此命令放入.profile文件,就可控制該用戶后續(xù)所建文件的存取許可.umask命令與chmod命令的作用正好相反,它告訴系統(tǒng)在創(chuàng)建文件時(shí)不給予什么存取許可。 設(shè)置用戶ID和同組用戶ID許可 SUID表示“設(shè)置用戶ID”,SGID表示“設(shè)置組ID”。當(dāng)用戶執(zhí)行一個(gè)SUID文件時(shí),用戶ID在程序運(yùn)行過程中被置為文件擁有者的用戶ID。如果文件屬于root,那用戶就成為超級(jí)用戶。同樣,當(dāng)一個(gè)用戶執(zhí)行SGID文件時(shí),用戶的組被置為文件的組。。我們知道,在Unix系統(tǒng)中,是有用戶控制系統(tǒng)的,對(duì)權(quán)限不同的用戶有不同限制,包括對(duì)軟件和硬件的使用,這種限制非常的嚴(yán)格,以至于有時(shí)候會(huì)與我們的實(shí)際需要產(chǎn)生矛盾,比如說,在*nix下一些硬件設(shè)備默認(rèn)需要有root權(quán)限才可以得到使用,可是有時(shí)候又需要讓非root用戶使用它,這個(gè)時(shí)候怎么辦呢?我們不可能為此把這個(gè)用戶升級(jí)成root吧。suid就是針對(duì)這種情況的解決的辦法,假設(shè)我是root,我可以chmod +s xxx (xxx是你想要setuid的設(shè)備或程序名),xxx將會(huì)以我即root的身份運(yùn)行,即使你不是root,你現(xiàn)在也可以使用它了。概括說來(lái),就是用一些setuid的程序,setuid成為root,那么用戶運(yùn)行的時(shí)候這些程序就具有root權(quán)限。例如普通用戶允許改變口令,這就要求改變/etc/passwd文件的口令域。然而系統(tǒng)管理員決不允許普通用戶擁有直接改變這個(gè)文件的權(quán)利,運(yùn)行passwd命令時(shí),他能夠修改/etc/passwd文件,盡管文件是屬于root的。這成為可能是因?yàn)閜asswd命令以root的SUID權(quán)限運(yùn)行。 SUID程序代表了重要的安全漏洞,特別是SUID設(shè)為root的程序。Unix系統(tǒng)安全的一種典型攻擊就是創(chuàng)建一個(gè)SUID是root的shell拷貝,然后把他隱藏。通過調(diào)用后門,攻擊者就獲得了root的權(quán)利。 因此,系統(tǒng)管理員應(yīng)該定期察看系統(tǒng)中有哪些SUID和SGID文件。用下面的命令可以實(shí)現(xiàn): find?/?-type?f?\(?-perm?–4000?–o?–perm?–2000?\)?–ls 4安全事件審計(jì) UNIX系統(tǒng)的審計(jì)機(jī)制監(jiān)控系統(tǒng)中發(fā)生的事件,及時(shí)提供對(duì)系統(tǒng)異常報(bào)警提示,并提供事后查詢功能。豐富的日志為UNIX的安全運(yùn)行提供了保障,常見的的日志文件包括: ? /usr/adm 早期版本的Unix ? /var/adm 較新版本的Unix ? /var/log 用于Solaris、Linux、BSD等 ? /etc Unix system V早期版本 在這些目錄下,或其子目錄下,你可以找到以下日志文件(也許是其中的一部分): ? lastlog 記錄用戶最后一次成功登錄時(shí)間 ? loginlog 不良的登陸嘗試記錄 ? messages 記錄輸出到系統(tǒng)主控臺(tái)以及由syslog系統(tǒng)服務(wù)程序產(chǎn)生的消息 ? utmp 記錄當(dāng)前登錄的每個(gè)用戶 ? utmpx 擴(kuò)展的utmp ? wtmp 記錄每一次用戶登錄和注銷的歷史信息 wtmpx 擴(kuò)展的wtmp ? vold.log 記錄使用外部介質(zhì)出現(xiàn)的錯(cuò)誤 ? xferkig 記錄Ftp的存取情況 sulog 記錄su命令的使用情況 ? acct 記錄每個(gè)用戶使用過的命令 ? aculog 撥出自動(dòng)呼叫記 lastlog文件 Unix在lastlog日志文件中記錄每一個(gè)用戶注冊(cè)進(jìn)入系統(tǒng)的最后時(shí)間,在你每一次進(jìn)入系統(tǒng)時(shí),系統(tǒng)會(huì)顯示出這個(gè)時(shí)間: login: blackeyes password: h3ll0 Last login :Tue Jul 27 09:55:50 on tty01 lastlog告訴用戶,要核對(duì)一下最后注冊(cè)進(jìn)入系統(tǒng)的時(shí)間是否正確,若系統(tǒng)顯示的時(shí)間與你上次進(jìn)入系統(tǒng)的時(shí)間不符,說明發(fā)生了非授權(quán)用戶注冊(cè),若這種情況發(fā)生了,用戶應(yīng)該馬上修改帳戶口令,并通知管理員。 在每次注冊(cè)時(shí),lastlog新的內(nèi)容沖掉老的內(nèi)容。 標(biāo)準(zhǔn)版本的Unix沒有提供服務(wù)程序可以閱讀lastlog文件,有些程序可以提供這個(gè)服務(wù),這里不做過多描述。 loginlog文件 Unix system V版本中,可以把不成功的登錄行為記錄在/var/adm/loginlog中。要登記不成功的注冊(cè)行為,可以用下列命令建立/var/adm/loginlog文件: #touch /var/adm/loginlog #chmod 600 /var/adm/loginlog #chown root /var/adm/loginlog 如果你知道一個(gè)系統(tǒng)的用戶名,而你又想猜出密碼,/var/adm/loginlog就會(huì)記錄你的失敗的登錄嘗試 管理員看看/var/adm/loginlog的內(nèi)容,你的企圖就被發(fā)現(xiàn)了: #cat /var/adm/loginlog hacker: from 202.88.88.xx: Tue Jul 27 02:40:50 1999 hacker: from 202.88.88.xx: Tue Jul 27 02:41:50 1999 hacker: from 202.88.88.xx: Tue Jul 27 02:42:50 1999 hacker: from 202.88.88.xx: Tue Jul 27 02:43:50 1999 hacker: from 202.88.88.xx: Tue Jul 27 02:44:50 1999 其中,最常用的的審計(jì)服務(wù)程序是syslog,它可實(shí)現(xiàn)靈活配置、集中式管理。記錄輸出到系統(tǒng)主控臺(tái)以及由syslog系統(tǒng)服務(wù)程序產(chǎn)生的消息syslog采用可配置的、統(tǒng)一的系統(tǒng)登記程序,隨時(shí)從系統(tǒng)各處接受log請(qǐng)求,然后根據(jù)/etc/syslog.conf中的預(yù)先設(shè)定把log信息寫入相應(yīng)文件中、郵寄給特定用戶或者直接以消息的方式發(fā)往控制臺(tái)。值得注意的是,為了防止入侵者修改、刪除messages里的記錄信息,可以采用用打印機(jī)記錄或跨越網(wǎng)絡(luò)登記的方式來(lái)挫敗入侵者的企圖。 syslog.conf的詳細(xì)配置說明。 /etc/syslog.conf的一般格式如下: 設(shè)備.行為級(jí)別.記錄行為 設(shè)備描述 auth used by authorization systems (login) 認(rèn)證系統(tǒng),即詢問用戶名和口令 cron used for the cron and at systems 系統(tǒng)定時(shí)系統(tǒng) daemon system/netword daemon 其它系統(tǒng)的daemons kern produced by kernel messages 內(nèi)核 lpr printing system 打印機(jī)系統(tǒng) mail mail system 郵件系統(tǒng) mark internally used for time stamps 定時(shí)發(fā)送消息的時(shí)標(biāo)程序 news reserved for the news system 新聞系統(tǒng) user default facility, used for any program 正式用戶處理程序 uucp reserved for the uucp system uucp子系統(tǒng) local0..7 reserved for local use 留做指定站點(diǎn)使用 行為級(jí)別 描述 debug normally used for debugging 調(diào)試程序時(shí)的消息 info informational messages 信息消息 notice conditions that may require attention 要注意的消息 warning any warnings 警告 err any errors 一般性錯(cuò)誤 crit critical conditions like hardware problems 嚴(yán)重情況 alert any condition that demand immediate attention 應(yīng)該立即被糾正的情況 emerg any emergency condition 緊急情況 none Do not send messages from the indicated 指定的服務(wù)程序未給所選擇的 facility to the selected file. 文件發(fā)送信息 記錄歸屬描述 /dev/console send messages to devices 控制臺(tái) /var/adm/messages write messages to files 寫入/var/adm/messages @loghost forward messages to a loghost 其它的日志記錄服務(wù)器 fred,user1 send messages to users 傳送消息給用戶 * send messages to all logged-in users 傳送消息給所有的在線用戶 下面是一個(gè)/etc/syslog.conf的模式 *.notice;mail.info /var/log/notice *.crit /var/log/critical kern,mark.debug /dev/console kern.err @server *.emerg * *.alert root,operator *.alert;auth.warning /var/log/auth 如果用打印機(jī)來(lái)記錄日志文件,可以采用如下方法: 把打印機(jī)連接到終端端口/dev/ttya上,在 /etc/syslog.conf中加入配置語(yǔ)句,例如: auth.* dev/ttya 這樣就可以記錄如不正確口令等信息了。 如果采用跨越網(wǎng)絡(luò)登記,可以在/etc/syslog.conf中加入配置語(yǔ)句,例如: auth.* @loghost 可以采用非unix主機(jī)來(lái)作為日志記錄機(jī),這樣的話入侵者就算是得到了root權(quán)限也沒有辦法修改日志文件。 當(dāng)前的UNIX系統(tǒng)很多都支持“C2級(jí)審計(jì)”,即達(dá)到了由TCSEC所規(guī)定的C2級(jí)的審計(jì)標(biāo)準(zhǔn)。 5數(shù)據(jù)保護(hù) 5.1 加密 加密是指一個(gè)消息(明文)用一個(gè)數(shù)學(xué)函數(shù)和一個(gè)專門的加密口令(密鑰)轉(zhuǎn)換為另一個(gè)消息(密文)的過程。解密是它的反過程:密文用一個(gè)數(shù)學(xué)函數(shù)和一個(gè)密鑰轉(zhuǎn)換為明文。 在UNIX系統(tǒng)中采用加密系統(tǒng)是必須的。超級(jí)用戶可以繞過文件系統(tǒng)的所有口令檢查,雖然它的權(quán)限很大,但如果文件加密,他在不知道密鑰的情況下仍是無(wú)法解密文件的。 當(dāng)前UNIX系統(tǒng)中常使用的加密程序有: ? Crypt 最初的UNIX加密程序 ? Des 數(shù)據(jù)加密標(biāo)準(zhǔn)在?UNIX上的應(yīng)用 ? Pgp Phil Zimmermann的Pretty Good Privary程序 ?crypt命令可提供給用戶以加密文件,使用一個(gè)關(guān)鍵詞將標(biāo)準(zhǔn)輸入的信息編碼為不可讀的雜亂字符串,送到標(biāo)準(zhǔn)輸出設(shè)備.再次使用此命令,用同一關(guān)鍵詞作用于加密后的文件,可恢復(fù)文件內(nèi)容. ????一般來(lái)說,在文件加密后,應(yīng)刪除原始文件,只留下加密后的版本,且不能忘記加密關(guān)鍵詞. ????在vi中一般都有加密功能,用vi -x命令可編輯加密后的文件.關(guān)于加密關(guān)鍵詞的選取規(guī)則與口令的選取規(guī)則相同. ????由于crypt程序可能被做成特洛依木馬,故不宜用口令做為關(guān)鍵詞.最好在加密前用pack或compress命令對(duì)文件進(jìn)行壓縮后再加密. DES傳送數(shù)據(jù)的一般形式是以代入法密碼格式按塊傳送數(shù)據(jù),DES采用另一加密方法,一次加密一位或一個(gè)字節(jié),形成密碼流.密碼流具有自同步的特點(diǎn),被傳送的密碼文本中發(fā)生的錯(cuò)誤和數(shù)據(jù)丟失,將只影響最終的明碼文本的一小段(64位).這稱為密碼反饋.在這種方法中,DES被用作虛擬隨機(jī)數(shù)發(fā)生器,產(chǎn)生出一系列用于對(duì)明碼文本的隨機(jī)數(shù).明碼文本的每n位與一個(gè)DESn位的加密輸出數(shù)進(jìn)行異或,n的取值為1-64,DES加密處理的輸入是根據(jù)前邊傳送的密碼文本形成的64位的數(shù)值. ????發(fā)n為1時(shí),加密方法是自同步方式:錯(cuò)一位或丟失1位后,64位的密碼文本將不能被正確地解密,因?yàn)椴徽_的加密值將移入DES輸入的末端.但是一旦接收到正確的64位密碼,由于DES的加密和解密的輸入是同步的,故解密將繼續(xù)正確地進(jìn)行. ??????DES的初始輸入稱為種子,是一個(gè)同時(shí)由傳輸器和接收器認(rèn)可的隨機(jī)數(shù).通常種子由一方選擇,在加密前給另一方.而加密關(guān)鍵詞不能以明碼格式通過網(wǎng)絡(luò)傳送,當(dāng)加密系統(tǒng)加電時(shí)在兩邊都寫入加密關(guān)鍵詞,并且在許多階段期間加密關(guān)鍵詞都保持不變,用戶可以選擇由主關(guān)鍵詞加密的階段關(guān)鍵詞,發(fā)送到數(shù)據(jù)傳送的另一端,當(dāng)該階段結(jié)束后,階段關(guān)鍵詞就不再使用了.主關(guān)鍵詞對(duì)用戶是不可見的,由系統(tǒng)管理員定期改變,選擇哪一種關(guān)鍵詞管理方法,常由所用的硬件來(lái)確定.如果加密硬件都有相應(yīng)的設(shè)備,則用種子還是用主關(guān)鍵詞階段關(guān)鍵詞是無(wú)關(guān)緊要的. PGP—Pretty Good Privacy,是一個(gè)基于RSA公匙加密體系的郵件加密軟件??梢杂盟鼘?duì)你的郵件保密以防止非授權(quán)者閱讀,它還能對(duì)你的郵件加上數(shù)字簽名從而使收信人可以確信郵件是你發(fā)來(lái)的。它讓你可以安全地和你從未見過的人們通訊,事先并不需要任何保密的渠道用來(lái)傳遞密匙。它采用了:審慎的密匙管理,一種RSA和傳統(tǒng)加密的雜合算法,用于數(shù)字簽名的郵件文摘算法,加密前壓縮等,還有一個(gè)良好的人機(jī)工程設(shè)計(jì)。它的功能強(qiáng)大,有很快的速度。而且它的源代碼是免費(fèi)的 5.2 使用MD5 Checksum 檢查一致性 建議使用MD5 Checksum 來(lái)確?!案鲁绦颉被蛉魏巍白儎?dòng)程序”未被修改過。MD5 使用檔案的內(nèi)容產(chǎn)生一個(gè)128位加解密摘要值。此值被認(rèn)定如高可信度般的指紋可用來(lái)檢查檔案內(nèi)容的一致性。一旦有任一位被修改,則MD5 Checksum值將不同,要偽造產(chǎn)生同樣MD5 Checksum值是極端固難的。 原始程序代碼及其它信息可用FTP 從ftp://ftp.cerias.purdue.edu/pub/tools/unix/crypto/md5 取得。 6網(wǎng)絡(luò)服務(wù)設(shè)定 當(dāng)前UNIX系統(tǒng)多是運(yùn)行在網(wǎng)絡(luò)環(huán)境中,默認(rèn)支持TCP/IP協(xié)議。網(wǎng)絡(luò)安全性指如何防止本機(jī)或本網(wǎng)被非法入侵、訪問。來(lái)保證本系統(tǒng)的可靠、正常運(yùn)行。 UNIX系統(tǒng)提供如下手段把SUN OS變的相對(duì)安全些,它們是: ? 防止堆棧溢出 ? 關(guān)閉不用的服務(wù) ? 給系統(tǒng)打補(bǔ)丁 防止堆棧溢出 至少90%以上的安全問題都是來(lái)自所謂的“堆棧溢出”。攻擊者通過給一個(gè)以root身份運(yùn)行的程序提供比它所預(yù)期的輸入多得多的東西,使被攻擊程序無(wú)法處理而改變執(zhí)行流程去執(zhí)行攻擊者指定的代碼。 Solaris 2.6和Solaris 7都具備把用戶堆棧設(shè)成不可執(zhí)行的能力,以使這種攻擊不能得逞。變成root后執(zhí)行如下操作: 1. 對(duì)/etc/system文件做個(gè)拷貝cp /etc/system /etc/system.BACKUP; 2. 用編輯器編輯/etc/system文件; 3. 到文件的最后,插入set noexec_user_stack=1;set noexec_user_stack_log=1; 4. 保存文件,退出編輯器。 一旦重啟機(jī)器,這些改變就會(huì)生效。 inetd.conf中關(guān)閉用不著的服務(wù) inetd?進(jìn)程負(fù)責(zé)監(jiān)聽各個(gè)TCP和UDP端口的連接請(qǐng)求,并根據(jù)連接請(qǐng)求啟動(dòng)相應(yīng)的服務(wù)器進(jìn)程。該配置文件?/etc/inetd.conf?基本形式如下: (1)? (2) ?(3)? (4)? (5) ?(6)? (7)? shell?stream?tcp?nowait?root?/usr/sbin/in.rshd?in.rshd login?stream?tcp?nowait?root?/usr/sbin/in.rlogind?in.rlogind? exec?stream?tcp?nowait?root?/usr/sbin/in.rexecd?in.rexecd??? comsat?dgram?udp?wait?root?/usr/sbin/in.comsat?in.comsat?? talk?dgram?udp?wait?root?/usr/sbin/in.talkd?in.talkd?? 1:第一欄是服務(wù)名稱。服務(wù)名通過查詢?/etc/services?文件(供?TCP?和?UDP?服務(wù)使用)或?portmap?守護(hù)進(jìn)程(供?RPC?服務(wù)使用)映射成端口號(hào)。RPC(遠(yuǎn)程過程調(diào)用)服務(wù)由?name/num?的名字格式和第三欄中的?rpc?標(biāo)志識(shí)別。 2:第二欄決定服務(wù)使用的套接口類型:stream、dgram?或?raw。一般說來(lái),stream?用于?TCP?服務(wù),dgram?用于?UDP,?raw?的使用很少見。? 3:第三欄標(biāo)識(shí)服務(wù)使用的通信協(xié)議。允許的類型列在?protocols?文件中。協(xié)議幾乎總是?tcp?或?udp。RPC?服務(wù)在協(xié)議類型前冠以?rpc/。?? 4:如果所說明的服務(wù)一次可處理多個(gè)請(qǐng)求(而不是處理一個(gè)請(qǐng)求后就退出),那么第四欄應(yīng)置成?wait,這樣可以阻止?inetd?持續(xù)地派生該守護(hù)進(jìn)程的新拷貝。此選項(xiàng)用于處理大量的小請(qǐng)求的服務(wù)。如果?wait?不合適,那么在本欄中填?nowait。? 5:第五欄給出運(yùn)行守護(hù)進(jìn)程的用戶名。 6:第六欄給出守護(hù)進(jìn)程的全限定路徑名。? 7:守護(hù)進(jìn)程的真實(shí)名字及其參數(shù)。?如果所要處理的工作微不足道(如不需要用戶交互),inetd?守護(hù)進(jìn)程便自己處理。此時(shí)第六、七欄只需填上?'internal'?即可。所以,要安裝一個(gè)便利的后門,可以選擇一個(gè)不常被使用的服務(wù),用可以產(chǎn)生某種后門的守護(hù)進(jìn)程代替原先的守護(hù)進(jìn)程。例如,讓其添加?UID?0?的帳號(hào),或復(fù)制一個(gè)?suid?shell。 有許多用不著的服務(wù)自動(dòng)的處于使能狀態(tài)。它們中可能存在的漏洞將使攻擊者甚至不需要一個(gè)賬戶就能控制你的機(jī)器。關(guān)閉這些不需要的服務(wù)來(lái)保護(hù)你的系統(tǒng),變成root后用如下方法來(lái)關(guān)閉: 對(duì)inetd的配置文件/etc/inetd.conf做個(gè)拷貝cp /etc/inetd.conf /etc/inetd.conf.BACKUP; 編輯/etc/inetd.conf文件,未被激活的服務(wù)是在前面被“#“符號(hào)注釋掉的; 在/etc/inetd.conf中做出改變之后,找到inetd進(jìn)程的id號(hào),用kill向它發(fā)送HUP信號(hào)來(lái)刷新它。一定要確保kill了inetd進(jìn)程后,它還在運(yùn)行。 給系統(tǒng)打補(bǔ)丁 跟所有的復(fù)雜系統(tǒng)一樣,UNIX有它的漏洞,其中的一些從性質(zhì)上來(lái)說是相當(dāng)嚴(yán)重的。SUN公司有向它的客戶甚至是沒有技術(shù)支持的客戶提供補(bǔ)丁的優(yōu)良傳統(tǒng)。這些補(bǔ)丁或者以集合包或者以單個(gè)補(bǔ)丁的形式存在的。不幸的是,要完全修補(bǔ)系統(tǒng),既需要大的補(bǔ)丁集合包,又需要單個(gè)的補(bǔ)丁。這里將介紹一種把補(bǔ)丁包和單個(gè)補(bǔ)丁結(jié)合起來(lái)使用的方法。 7網(wǎng)絡(luò)監(jiān)視和入侵檢測(cè) 在最新的UNIX版本中配備了這種入侵防范功能。利用UNIX配備的工具和從因特網(wǎng)下載的工具,可以使系統(tǒng)具備較強(qiáng)的入侵檢測(cè)能力。包括:讓UNIX記錄入侵檢測(cè)企圖,當(dāng)攻擊發(fā)生時(shí)及時(shí)給出報(bào)警;讓UNIX在規(guī)定情況的攻擊發(fā)生時(shí),采取事先確定的措施;讓UNIX發(fā)出一些錯(cuò)誤信息,比如模仿成其它操作系統(tǒng)。 8 備份/恢復(fù) 系統(tǒng)的安全性和可靠性和備份/恢復(fù)密切相關(guān)的,備份的常用類型有三種:零時(shí)間備份、整體備份、增量備份。系統(tǒng)的備份應(yīng)根據(jù)具體情況指定合理的策略,備份文檔應(yīng)經(jīng)過處理(壓縮、加密等)合理保存。 在UNIX系統(tǒng)中,有幾個(gè)專門的備份程序:dump/restore、backup、網(wǎng)絡(luò)備份程序有:rdump/ restore、rcp、ftp、rdist等。- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
3 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- UNIX 系統(tǒng) 通用 安全標(biāo)準(zhǔn) 手冊(cè)
鏈接地址:http://weibangfood.com.cn/p-1501176.html