一、賬號(hào)和口令安全策略 1.1更改口令文件、影像文件、組文件的權(quán)限 /etc/passwd 必須所有用戶都可讀,root用戶可寫 –rw-r—r— /etc/shadow 只有root可讀 –r-------- /etc/group 必須所有用戶都可讀,root用戶可寫 –rw-r—r— 1.2修改不必要的系統(tǒng)賬號(hào) 移去或者鎖定那些系統(tǒng)賬號(hào),比如sys、uucp、nuucp、listen、lp、adm等等,簡(jiǎn)單的辦法是在/etc/shadow的password域中放上NP字符。還可以考慮將/etc/passwd文件中的shell域設(shè)置成/bin/false 1.3修改口令策略 修改/etc/default/passwd文件 MAXWEEKS=4 口令至少每隔4星期更改一次 MINWEEKS=1 口令至多每隔1星期更改一次 WARNWEEKS=3 修改口令后第三個(gè)星期會(huì)收到快要修改口令的信息 PASSLENGTH=6 用戶口令長度不少于6個(gè)字符 二、用戶授權(quán)安全策略 2.1移去組及其它用戶對(duì)/etc的寫權(quán)限。 執(zhí)行命令#chmod -R go-w /etc 2.2禁止root遠(yuǎn)程登錄 在/etc/default/login中設(shè)置 CONSOLE=/dev/concle 2.3setuid和setgid特殊權(quán)限。 Setuid是指設(shè)置程序的有效執(zhí)行用戶身份(uid)為該文件的屬主,而不是調(diào)用該程序進(jìn)程的用戶身份。Setgid與之類似。Setuid和setgid用1s -1顯示出來為s權(quán)限,存在于主人和屬組的執(zhí)行權(quán)限的位置上。系統(tǒng)設(shè)置特殊權(quán)限,使用戶執(zhí)行某些命令時(shí),具有root的執(zhí)行權(quán)限, 命令執(zhí)行完成, root身份也隨之消失。因此特殊權(quán)限關(guān)系系統(tǒng)的安全,可執(zhí)行命令#find / -perm -4000 -print 尋找系統(tǒng)中具有setuid權(quán)限的文件,存為列表文件,定時(shí)檢查有沒有這之外的文件被設(shè)置了setuid權(quán)限。 2.4審計(jì)并日志所有以root身份的登陸情況 添加或編輯/etc/default/login文件如下: SYSLOG= YES syslog記錄root的登陸失敗,成功的情況。 2.5設(shè)置遠(yuǎn)程登陸會(huì)話超時(shí)時(shí)間 添加或編輯/etc/default/login文件如下: TIMEOUT= 300 2.6確定登陸需要密碼驗(yàn)證 添加或編輯/etc/default/login文件如下: PASSREQ= YES 2.7 UMASK設(shè)置 umask命令設(shè)置用戶文件和目錄的文件創(chuàng)建缺省屏蔽值,若將此命令放入.profile文件,就可控制該用戶后續(xù)所建文件的存取許可.umask命令與chmod命令的作用正好相反,它告訴系統(tǒng)在創(chuàng)建文件時(shí)不給予什么存取許可. 安裝配置完操作系統(tǒng)之后確認(rèn)root的umask設(shè)置是077或者027,執(zhí)行 /usr/bin/umask [-S] 確認(rèn)。 2.7.1增加或修改/etc/default/login文件中如下行 UMASK=027 2.7.2并增加上行到如下的文件中: /etc/.login /etc/.profile /etc/skel/local.cshre /etc/skel/local.login /etc/skel/local.profile 2.8用戶環(huán)境配置文件的PATH或者LD_LIBRARY_PATH中移去“.” 。 從如下的文件中移走”.”,確認(rèn)root的PATH環(huán)境變量設(shè)置是安全的,應(yīng)該只包含/usr/bin:/sbin:/usr/sbin,避免當(dāng)前工作目錄.出現(xiàn)在PATH環(huán)境變量中,這有助于對(duì)抗特洛伊木馬。 #echo $PATH | grep ":." 確認(rèn) /.login /etc/.login /etc/default/login /.cshrc /etc/skel/local.profile /etc/skel/local.cshrc /.profile /etc/skel/local.login /etc/profile 三、網(wǎng)絡(luò)與服務(wù)安全策略 3.1關(guān)閉不用的服務(wù) 3.1.1在inetd.conf中關(guān)閉不用的服務(wù) 首先復(fù)制/etc/inet/inetd.conf。 #cp /etc/inet/inetd.conf /etc/inet/inetd.conf.backup然后用vi編輯器編輯inetd.conf文件,對(duì)于需要注釋掉的服務(wù)在相應(yīng)行開頭標(biāo)記“#”字符即可。 3.1.2在Services中關(guān)閉不用的服務(wù) 首先復(fù)制/etc/inet/services。 #cp /etc/inet/services /etc/inet/services.backup 然后用vi編輯器編輯Services文件,對(duì)于需要注釋掉的服務(wù)在相應(yīng)行開頭標(biāo)記“#”字符即可。 在inetd.conf、services中進(jìn)行修改后,找到inetd進(jìn)程的ID號(hào),用kill向其發(fā)送HUP信號(hào)進(jìn)行刷新。舉例如下。 #ps -ef | grep inetd #kill -HUP 進(jìn)程號(hào) 或/usr/sbin/inetd –s –t 增加-t選項(xiàng)以加強(qiáng)網(wǎng)絡(luò)訪問控制 3.1.3根據(jù)需要關(guān)閉不用的服務(wù) 可關(guān)閉如下服務(wù):tftp、ypupdate(NIS程序)、 dtspcd(郵件收發(fā)程序) 、rquotad、name、uucp(網(wǎng)絡(luò)實(shí)用系統(tǒng))、snmp(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)等。 3.2關(guān)閉系統(tǒng)的自啟動(dòng)服務(wù) 在系統(tǒng)/etc/rc*.d的目錄下,根據(jù)需要停用以下服務(wù): sendmail 把/etc/rc2.d/S88sendmai更名為tc/rc2.d/X88sendmail DNS 將/etc/rc2.d/S72inetsv注釋掉in.named一項(xiàng) lp 把/etc/rc2.d/S80lp更名為 /etc/rc2.d/X80lp uucp 把/etc/rc2.d/S70uucp更名為/etc/rc2.d/x70uucp snmp把/etc/rc3.d/S76snmpdx和 /etc/rc3.d/S77dmi 更名 為/etc/rc3.d/s76snmpdx和/etc/rc3.d/s77dmi autoinstall 把/etc/rc2.d/S72autoinstallg更名為/etc/rc2.d/s72autoinstall 3.3加強(qiáng)FTP服務(wù)安全 3.3.1禁止系統(tǒng)用戶的FTP服務(wù) 把所有的系統(tǒng)賬戶加入到/etc/ftpusers(solaris 9的該文件現(xiàn)更改為/etc/ftpd/ftpusers)文件: root 、daemon、sys、bin、adm、lp、uucp、nuucp、listen、nobody 3.3.2禁止FTP&服務(wù)暴露系統(tǒng)敏感信息 編輯/etc/default/ftpd文件,假如文件不存在就新建一個(gè),在文件中的加進(jìn)入下一項(xiàng): BANNER=XXXX(XXXX可以任意改變?yōu)槿魏我粋€(gè)版本信息),將該系統(tǒng)版本信息屏蔽. 3.3.3ftp服務(wù)會(huì)話日志記錄 /etc/inet/inetd.conf中的ftpd為(記錄) ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd –dl 3.4加強(qiáng)Telnet服務(wù)安全 3.4.1禁止Telnet服務(wù)暴露系統(tǒng)敏感信息 防止telnetd banner泄露信息 ,修改/etc/default/telnetd文件 ,加入以下一項(xiàng):BANNER=XXXX(XXXX可以任意改變?yōu)槿魏我粋€(gè)版本信息),將該系統(tǒng)版本信息屏蔽. 3.4.2更改Telnet服務(wù)端口號(hào) 修改文件/etc/services的Telnet一項(xiàng),將端口號(hào)改為非23,使用Telnet服務(wù)時(shí)需注明端口號(hào)。 3.5加強(qiáng)NFS服務(wù)安全 檢查/etc/dfs/dfstab文件share語句,缺省時(shí)共享目錄為可讀可寫,加入“-o”選項(xiàng)增加安全,“-o rw”可讀可寫,“-o ro”只讀,可授權(quán)某系統(tǒng)和某用戶。 3.6防止TCP序列號(hào)預(yù)測(cè)攻擊(ip欺騙) 在/etc/default/inetinit中增加設(shè)置來防止TCP序列號(hào)預(yù)測(cè)攻擊(ip欺騙)TCP_STRONG_ISS=2 3.7系統(tǒng)路由安全 如果Solaris機(jī)器有超過一塊的網(wǎng)卡的話,它將會(huì)在不同網(wǎng)卡間轉(zhuǎn)發(fā)數(shù)據(jù)包,這一行為可以在/etc/init.d/inetinit中得到控制。要在Solaris 2.4或者更低版本機(jī)器下關(guān)閉它,可以將ndd -set /dev/ip ip_forwarding 0添加于在inetinit文件未尾。在Solaris 2.5以上,只要touch /etc/notrouter.網(wǎng)絡(luò)系統(tǒng)用靜態(tài)路由比較安全。 3.8調(diào)整網(wǎng)絡(luò)參數(shù),加強(qiáng)網(wǎng)絡(luò)安全 使IP forwarding和sourec routing(源路)由無效 在Inetinit中使IP forwarding和sourec routing(源路)由無效(假如有超過一個(gè)網(wǎng)絡(luò)接口的話)。在/etc/init.d/inetinit中增加下面所示設(shè)置: 禁止系統(tǒng)轉(zhuǎn)發(fā)定向廣播包 #ndd -set /dev/ip ip_forward_directed_broadcasts 0 關(guān)閉原路由尋址 :#ndd -set /dev/ip ip_forward_src_routed 0 禁止系統(tǒng)轉(zhuǎn)發(fā)IP包:#ndd -set /dev/ip ip_forwarding 0 縮短ARP的cache保存時(shí)間: (default is 5 min) #ndd -set /dev/arp arp_cleanup_interval 2 min 關(guān)閉echo廣播來防止ping攻擊( # default is 1 ) #ndd -set /dev/ip ip_respond_to_echo_broadcast 0 四、防止堆棧緩沖益出安全策略 入侵者常常使用的一種利用系統(tǒng)漏洞的方式是堆棧溢出,他們?cè)诙褩@锴擅畹夭迦胍欢未a,利用它們的溢出來執(zhí)行,以獲得對(duì)系統(tǒng)的某種權(quán)限。要讓你的系統(tǒng)在堆棧緩沖溢出攻擊中更不易受侵害,你可以在/etc/system里加上如下語句:set noexec_user_stack=1 set noexec_user_stack_log =1 第一句可以防止在堆棧中執(zhí)行插入的代碼,第二句則是在入侵者想運(yùn)行exploit的時(shí)候會(huì)做記錄。 五、日志系統(tǒng)安全策略 5.1定時(shí)檢查系統(tǒng)日志文件 Solaris系統(tǒng)通過syslogd進(jìn)程運(yùn)行日志系統(tǒng),配置文件/etc/syslog.conf,可編輯此文件讓日志系統(tǒng)記錄更多信息,需重啟/usr/sbin/syslogd進(jìn)程,重讀取配置文件。通常日志系統(tǒng)的文件分別存放在兩個(gè)位置,/var/adm保存本地系統(tǒng)日志,/var/log保存登錄其它系統(tǒng)時(shí)日志。 5.2設(shè)置utmpx和wtmpx文件權(quán)限,確保日志系統(tǒng)安全。 文件/var/adm/utmpx記錄了所有當(dāng)前登錄到系統(tǒng)中的用戶,文件/var/adm/wtmpx記錄了系統(tǒng)所有的登錄和注銷。這兩個(gè)文件是以數(shù)據(jù)庫的格式存在的。 設(shè)置權(quán)限#chmod 544 /var/adm/utmpx #chmod 544 /var/adm/wtmpx 六、其它系統(tǒng)安全設(shè)置 6.1 crontab命令 6.1.1不要使用crontab –e命令,因?yàn)樗鼤?huì)在/tmp下建立所有用戶都可讀的crontab副本訪問cron系統(tǒng)。用如下的方法: 編輯文件:mycronfile crontab<mycronfile 6.1.2在/etc/default/cron文件中增加如下行: CRONLOG=YES 記錄所有的crontab行為 6.2對(duì)su的紀(jì)錄 創(chuàng)建/etc/default/su文件 SULOG=/var/adm/sulog SYSLOG=YES CONSOLE=/dev/console PATH=/usr/bin: SUPATH=/usr/sbin:/usr/bin 6.3為OpenBoot設(shè)置密碼 在Solaris中設(shè)置密碼 #eeprom security-password 在OpenBoot中設(shè)置密碼 ok password 在Solaris中設(shè)置安全級(jí)別(command) #eeprom security-mode=command 在OpenBoot中設(shè)置安全級(jí)別(command) ok setenv security-mode command 在OpenBoot中設(shè)置安全級(jí)別(full) ok setenv security-mode full 6.4限制.rhosts和/etc/hosts.equiv文件的使用 配置文件具有兩種功能:r系列命令使用這些文件來訪問系統(tǒng);在某用戶的目錄下存在.rhosts文件或/etc/hosts.equiv文件配有某系統(tǒng),任何用戶都可以通過rlogin不需要口令以該用戶的身份登錄到系統(tǒng)。因此要為這些文件加鎖,先創(chuàng)建它們,然后修改其屬性為零即可。這樣除了root用戶就沒有其它用戶能創(chuàng)建或修改它們了。 /usr/bin/touch /.rhosts /etc/hosts.equiv /usr/bin/chmod 0 /.rhosts /etc/hosts.equiv .rhosts文件可以作為一個(gè)典型的后門文件使用,運(yùn)行下面的命令全局查找.rhosts文件 #find -name“.rhosts”-print 6.5給系統(tǒng)打補(bǔ)丁 象其它的系統(tǒng)一樣,Solaris系統(tǒng)也有它的漏洞,其中的一些從性質(zhì)上來說是相當(dāng)嚴(yán)重的。SUN公司長期向客戶提供各種版本的最新補(bǔ)丁,放在http://sunsolve.網(wǎng)站。可用#showrev –p命令檢查系統(tǒng)已打的補(bǔ)丁或到/var/sadm/patch目錄下查已打過的補(bǔ)丁號(hào),用patchadd命令給系統(tǒng)打補(bǔ)丁。 七、Setuid設(shè)置和Solaris操作系統(tǒng)安全 http://bbs./forum/viewtopic.php?t=302945&highlight=Setuid 在Solaris中,文件除了讀、寫、執(zhí)行權(quán)限外,還有一些特殊權(quán)限。 Setuid和setgid是其中的一類。它與Solaris系統(tǒng)的安全關(guān)系緊密。 Setuid是指設(shè)置程序的有效的執(zhí)行用戶身份(uid)為該文件的主人,而不是調(diào)用該程序的進(jìn)程的uid。Setgid與之類似。Setuid和setgid用ls –l顯示出來為s權(quán)限,存在于主人和屬組的執(zhí)行權(quán)限的位置上。 這種權(quán)限的設(shè)置方法如下: 只設(shè)setuid: chmod 4xxx filename (xxx為一般讀、寫、執(zhí)行權(quán)限) 只設(shè)setgid: chmod 2xxx filename 同時(shí)設(shè)setuid和setgid: chmod 6xxx filename 取消兩種權(quán)限: chmod 0xxx filename 這種權(quán)限怎么用? 舉個(gè)例子來說,假如某一命令(程序)的主人是root用戶,并且該文件有setuid屬性,但是該文件的讀、寫、執(zhí)行權(quán)限的屬性表明普通用戶user1可以執(zhí)行該命令,那么就表示:當(dāng)該用戶執(zhí)行該命令時(shí),他具有root的執(zhí)行身份,并獲得相應(yīng)的權(quán)限。一旦該命令執(zhí)行完成,該身份也隨之消失。 為什么系統(tǒng)中需要有這樣的權(quán)限呢?請(qǐng)執(zhí)行以下操作: 7.1. $ ls –l /etc/shadow /bin/passwd -r-sr-sr-x 3 root sys 99792 1999 2月 12 /bin/passwd -r-------- 1 root sys 261 1月 3 13:12 /etc/shadow /etc/shadow文件由于存有用戶的加密口令信息,對(duì)系統(tǒng)的安全至關(guān)重要,因此權(quán)限很嚴(yán),只有root憑其對(duì)系統(tǒng)的至高無上的權(quán)限才得以對(duì)/etc/shadow可讀可寫。但是系統(tǒng)必須允許普通用戶也能修改自己的口令。要讓他們對(duì)/etc/shadow可寫,又不能可讀,而且可寫又不能允許他們改別人的口令,怎么辦?系統(tǒng)就采取這樣一個(gè)辦法:做一個(gè)程序, 也就是/bin/passwd,通過它可以在不顯示文件內(nèi)容的情況下直接修改/etc/shadow文件??墒沁@個(gè)程序怎么能有這樣的權(quán)限?因?yàn)橄到y(tǒng)賦予它setuid權(quán)限,而且它屬于root.這樣,用戶在使用/bin/passwd改口令時(shí)就有root權(quán)限.由于/bin/passwd命令本身功能的局限性,用戶并不能用它做更多的不利于系統(tǒng)安全的事。 7.2. 用普通用戶身份修改口令 $ passwd Enter login password: **** New password:****** Re-enter new password:****** Passwd(SYSTEM): passwd successfully changed for xxx . 可以成功。 7.3. 用超級(jí)用戶修改/bin/passwd的權(quán)限 # chmod 0555 /bin/passwd 7.4. 再重復(fù)2,是否還成功?當(dāng)然不。 7.5.把/bin/passwd的權(quán)限恢復(fù)原狀。 # chmod 6555 /bin/passwd 對(duì)此可以打一個(gè)生動(dòng)的比喻:有一個(gè)絕密機(jī)關(guān),不得已必須有一些不能見這些秘密的人進(jìn)來做一些事情。于是授權(quán)一些特殊的“車輛”(沒有窗戶,門緊閉,所以看不到外面。只有一個(gè)小洞允許乘坐的人伸出一只手臂),帶著所乘坐的人開到要去的地方,允許它辦完事情馬上帶他出來。這樣是不是很安全?不一定。如果“車輛”沒有經(jīng)過精挑細(xì)選是有很多“門窗”,那系統(tǒng)可就危險(xiǎn)了。 這種安全威脅在Solaris中也有可能出現(xiàn)。比如做一下下面這個(gè)實(shí)驗(yàn): 7.6. $ vi /etc/shadow /etc/shadow: Permission denied. 7.7. 用超級(jí)用戶身份 # chmod 6555 /bin/vi # chown root /bin/vi 7.8. 這次再用普通用戶身份試一試第6步,有什么結(jié)果?這次你能以普通用戶身份修改 /etc/shadow了??!但是 $ more /etc/shadow仍然不成功,說明在執(zhí)行/bin/passwd時(shí)有超級(jí)用戶權(quán)限,平時(shí)仍是普通用戶身份。 再來看一個(gè)令人不安的情況: 7.9.用超級(jí)用戶身份 # chmod 6555 /bin/ksh # chown root /bin/ksh 7.10. 用普通用戶身份 $ ksh # 發(fā)生了什么情況??普通用戶不需要root口令就變成了root!?。? 好可怕。如果有一個(gè)用戶曾有一次獲得超級(jí)用戶權(quán)限,并通過類似的方式給自己設(shè)置了后門(也可能放了一個(gè)類似的文件在他自己的家目錄中),以后他就可以隨時(shí)變成超級(jí)用戶了。 怎么能避免setuid的不安全影響,又利用其方便的地方?這里有幾點(diǎn)建議: 關(guān)鍵目錄應(yīng)嚴(yán)格控制寫權(quán)限。比如/,/usr等。 對(duì)不管是root賬號(hào)還是普通用戶賬號(hào)的保密都有足夠的重視。最好不要設(shè)置類似于guest、public、test之類公用的容易猜出口令的賬號(hào)。 對(duì)系統(tǒng)中應(yīng)該具有setuid權(quán)限的文件作一列表,定時(shí)檢查有沒有這之外的文件被設(shè)置了setuid權(quán)限。 下面有一個(gè)自己編的小程序與大家分享。 程序功能描述:檢查有沒有/usr/secu/masterlist文件記錄之外的其它文件被設(shè)置了setuid權(quán)限 事先要求:在系統(tǒng)調(diào)試完成,所有需要安裝的軟件安裝好以后,執(zhí)行下面命令生成檢查對(duì)照文件 # mkdir –p /usr/secu # find / -perm –4000 –print >; /usr/secu/masterlist 程序: cd /tmp [ -f secrcheck ] && rm secrcheck find / -perm -4000 -print >;secrcheck for f in `cat secrcheck` do grep -w $f /usr/secu/masterlist >;/dev/null if [ "$?" != "0" ]; then echo $f is not in list fi done rm secrcheck 在需要對(duì)系統(tǒng)做檢查時(shí),執(zhí)行本shell程序。也可以放在定時(shí)進(jìn)程中定時(shí)檢查。程序由于需要在整個(gè)文件系統(tǒng)中做查找操作,需要比較長的時(shí)間。 請(qǐng)您作完本文中的實(shí)驗(yàn)后,別忘把文件的權(quán)限改回原狀。 八、Solaris系統(tǒng)安全之審計(jì) 作為C2安全等級(jí)操作系統(tǒng)(公安部二級(jí)),Solaris最主要的安全功能之一就是審計(jì)功能,本文將簡(jiǎn)單介紹Solaris審計(jì)功能的使用和啟動(dòng)。 目的:紀(jì)錄系統(tǒng)和用戶事件,并對(duì)審計(jì)過程自身進(jìn)行保護(hù)。這里值得注意的就是紀(jì)錄事件的細(xì)度。Solaris提供了很強(qiáng)大的審計(jì)功能,甚至可以紀(jì)錄每一條調(diào)試信息,但是這樣做是不明智的,因?yàn)楹芏嘈畔?duì)用戶沒用,而且會(huì)使系統(tǒng)性能下降。審計(jì)細(xì)度需要管理員根據(jù)用途和需要自行訂制。 實(shí)現(xiàn): 8.1. 查看日志 1) history文件 通常在根目錄下,隱藏文件,記錄了root執(zhí)行的命令 2) /var/adm messages:記載來自系統(tǒng)核心的各種運(yùn)行日志,可以記載的內(nèi)容是由/etc/syslog.conf決定的 sulog:記載著普通用戶嘗試su成為其它用戶的紀(jì)錄。它的格式為: 發(fā)生時(shí)間 +/-(成功/失敗) pts號(hào) utmpx:這兩個(gè)文件是不具可讀性的,它們記錄著當(dāng)前登錄在主機(jī)上的用戶,管理員可以用w,who等命令來看 wtmpx:相當(dāng)于歷史紀(jì)錄,記錄著所有登錄過主機(jī)的用戶,時(shí)間,來源等內(nèi)容,可用last命令來看 3) /var/log syslog文件,這個(gè)文件的內(nèi)容一般是紀(jì)錄mail事件的 8.2. syslog 1) 實(shí)時(shí)錯(cuò)誤檢查: tail –f /var/adm/messages -f在監(jiān)視器上允許看見每條記錄 /var/adm/messages記錄事件路徑 2) /etc/syslog.conf語法: *.err;kern.debug;deamon.notice;mail.crit /var/adm/messages 工具認(rèn)可的值 值 描述 user 用戶進(jìn)程產(chǎn)生的消息。這是來自沒有在文件列表中的設(shè)備的消息的默認(rèn)優(yōu)先級(jí) kern 由內(nèi)核產(chǎn)生的消息 mail 郵件系統(tǒng) daemon 系統(tǒng)守護(hù)進(jìn)程 auth 授權(quán)系統(tǒng),如login、su lpr 行式打印機(jī)假脫機(jī)系統(tǒng) news 網(wǎng)絡(luò)新聞系統(tǒng)USENET保留值 uucp 為UUCP系統(tǒng)保留值,目前UUCP不使用syslog機(jī)制 cron Cron/at工具;crontab、at、cron local0-7 為本地使用保留 mark 內(nèi)部用于由syslog產(chǎn)生的時(shí)間戳消息 * 除標(biāo)記工具之外的所有工具 級(jí)別認(rèn)可的值(按重要性降序排列) emerg 用于通常必須廣播給所有用戶的恐慌情況 alert 必須立即被修正的情況,例如被損壞的系統(tǒng)數(shù)據(jù)庫 crit 用戶對(duì)關(guān)鍵情況的告警,例如設(shè)備錯(cuò)誤 err 用于其他錯(cuò)誤 warning 用于所有的警告信息 notice 用于沒有錯(cuò)誤但是可能需要特別處理的情況。 info 通知消息 debug 用于通常只在調(diào)試時(shí)才使用的消息 none 不發(fā)送從指出的設(shè)備發(fā)來的消息到選定文件中 3) 例如如果要紀(jì)錄登錄信息(telnet),可以這樣做: /etc/default/login中:SYSLOG=YES /etc/syslog.conf中添加:auth.notice /export/home/wangyu/log (把日志記錄在/export/home/wangyu/log文件中,中間不是空格,是Tab) 重新啟動(dòng)syslog守護(hù)進(jìn)程 當(dāng)telnet上去的時(shí)候,我們看到/export/home/wangyu/log中有: Sep 11 10:07:25 hlstar login: [ID 254462 auth.notice] ROOT LOGIN /dev/pts/1 FROM 192.168.0.9 8.3. Loghost 編輯/etc/syslog.conf,語法: *.err;kern.debug;deamon.notice;mail.crit @loghost (記錄登錄信息) 重新啟動(dòng)syslog守護(hù)進(jìn)程 假設(shè)這次我們使用linux做日志主機(jī): [root@wangyu root]#/sbin/setup 打開配置界面-->;firewall configuration-->;custom-->;other ports: 寫入 syslog:udp 重新啟動(dòng)防火墻 /etc/init.d/iptables restart或者/etc/init.d/ipchains restart 設(shè)置loghost接收網(wǎng)絡(luò)日志數(shù)據(jù),修改/etc/sysconfig/syslog配置文件: 修改 SYSLOGD_OPTIONS="-m 0" 為 SYSLOGD_OPTIONS="-r -m 0" 重新啟動(dòng)syslog守護(hù)進(jìn)程 此時(shí)/var/log/messages最下端附近會(huì)看到類似下面的信息 Aug 11 21:20:30 logserver syslogd 1.3-3: restart. (remote reception) 當(dāng)telnet上去的時(shí)候,我們看到/var/log/messages中有類似下面的信息: Sep 5 11:08:31 mastadon login: [ID 507249 auth.notice] Login failure on /dev/pts/3 from 192.168.0.9, root 8.4. 記帳 Solaris操作系統(tǒng)可以通過設(shè)置日志文件可以對(duì)每個(gè)用戶的每一條命令進(jìn)行紀(jì)錄,這一功能默認(rèn)是不開放的 運(yùn)行/usr/lib/acct/accton [路徑][文件名] (如/usr/lib/acct/accton /export/home/wangyu/test,將日志記錄到test中) 查看的時(shí)候?qū)⑽募苿?dòng)到/var/adm目錄下,改名為pacct 執(zhí)行查看命令lastcomm(比如查看用戶root,用命令lastcomm root) 8.5. BSM(以下部分節(jié)減自freedemon的“SecU Solaris p2.3 BSM審計(jì)系統(tǒng)”,詳見 http://bbs./index.php?act=ST&f=10&t=147174) 1) 開啟BSM: # init 1 (重新引導(dǎo)或改變運(yùn)行級(jí)別到單用戶狀態(tài)) #/etc/security/bsmconv (運(yùn)行BSM初始化腳本,開啟審計(jì)功能) # reboot (重新啟動(dòng)系統(tǒng),或者Ctrl+D改變到多用戶狀態(tài)) 2) 關(guān)閉BSM審計(jì)功能: # init 1 # /etc/security/bsmunconv # reboot 3) 配置文件的功能: BSM所有的配置文件都存放在/etc/security目錄下( (4)代表詳細(xì)信息察看man (4) : audit_class(4) 審計(jì)類別定義 audit_control(4) 審計(jì)進(jìn)程控制信息 audit_data(4) 審計(jì)進(jìn)程當(dāng)前信息 audit.log(4)審計(jì)日志格式 audit_event(4) 時(shí)間定義到類別的映射文件 audit_user(4) 按用戶審計(jì)時(shí)的用戶定義文件 除了上面的配置文件之外,系統(tǒng)中還有一些用于BSM管理的腳本。 audit_startup(1M) 啟動(dòng)BSM進(jìn)程運(yùn)行。 auditconfig(1M) 讀取配置文件,重新配置audit進(jìn)程。 auditd(1M) 審計(jì)監(jiān)控服務(wù)。 auditreduce(1M) 審計(jì)事件日志管理,可以調(diào)整日志格式,生成時(shí)間周期等信息。 auditstat(1M) 先是內(nèi)核審計(jì)進(jìn)程狀態(tài)。 bsmconv(1M) 開啟BSM功能。 bsmunconv(1M) 關(guān)閉BSM功能。 praudit(1M) 打印BSM審計(jì)日志內(nèi)容。 4) BSM應(yīng)用 在默認(rèn)配置情況下,BSM每天(24小時(shí))會(huì)生成一個(gè)以當(dāng)天日期為名字的審計(jì)日志,存放在 /var/audit目錄下,這個(gè)文件具有自己的數(shù)據(jù)結(jié)構(gòu),所以直接查看時(shí)是亂碼,必須使用系統(tǒng)命令 praudit來查看。 # praudit /var/audit/xxxxxx.xxxxxx.log 另一個(gè)可能用到的命令是auditreduce ,這個(gè)命令允許管理員對(duì)審計(jì)日志做一些設(shè)置,例如調(diào)整審計(jì)事件集或調(diào)整審計(jì)日志生成周期等等。auditreduce和praudit是系統(tǒng)中BSM管理最基本的兩個(gè)命令,組合起來可以完成相當(dāng)多的功能: 用管道聯(lián)合兩個(gè)命令,會(huì)顯示系統(tǒng)中所有的歷史審計(jì)事件。 # auditreduce | praudit 再加上lp,將把所有審計(jì)事件直接打印出來。 # auditreduce | praudit | lp 如果系統(tǒng)中有相當(dāng)多的審計(jì)信息的話,查找將是非常困難的事情,這條命令可以按照yymmdd的時(shí)間格式顯示目標(biāo)時(shí)間段內(nèi)的審計(jì)事件,范例為顯示April 13, 1990, 用戶fred的登錄類別審計(jì)事件集。 # auditreduce -d 900413 -u fred -c lo | praudit 過濾目標(biāo)時(shí)間所有的登錄日志信息(Class:lo),并且輸出到一個(gè)單獨(dú)的日志文件中: # auditreduce -c lo -d 870413 -O /usr/audit_summary/logins auditreduce的 -b 和 -a 選項(xiàng)允許用戶按照 yyyymmdd00:00:00 的時(shí)間格式制定一個(gè)時(shí)間段(Before & After)。 # auditreduce -a 91071500:00:00 | praudit # auditreduce -b 91071500:00:00 | praudit 5) 管理工具: eXpert-BSMTM 一個(gè)很強(qiáng)大的商業(yè)BSM分析工具,不過目前也可以免費(fèi)使用,支持Solaris 7/8 (Sparc|Intel)平臺(tái),可以在下面地址下載。 http://www.sdl./projects/emerald/releases/eXpert-BSM/download.html Sun WBEM Solaris內(nèi)置的圖形界面管理工具,也就是AdminConsole,在WBEM 2.3之后的版本支持對(duì)BSM信息的管理。可以用下面命令開啟: # /usr/sadm/bin/wbemadmin (第一次運(yùn)行時(shí)會(huì)安裝一系列的管理腳本) # /usr/sadm/bin/smc (開啟管理終端) 以上,對(duì)Solaris審計(jì)系統(tǒng)進(jìn)行了配置,相信大部分用戶行為和入侵行為都被記錄下來了,并且對(duì)日志自身也進(jìn)行了一定保護(hù)。如果管理員能及時(shí)分析日志,相信可以捕獲大部分入侵企圖和行為。 |
|