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