- 論壇徽章:
- 0
|
第一章 Solaris系統(tǒng)安全安裝
1.1 安裝步驟
下面將以安裝Solaris 8 為例,描述系統(tǒng)安裝的過程及相關(guān)的安全注意事項。請系統(tǒng)管理員在安裝系統(tǒng)前,認(rèn)真閱讀Sun公司提供的系統(tǒng)安裝指南和參考手冊,了解系統(tǒng)安裝的基本操作步驟。
斷開網(wǎng)絡(luò)連接
請確定網(wǎng)絡(luò)是斷開,即網(wǎng)線沒有接入網(wǎng)絡(luò)中。如果用戶希望自動配置NIS服務(wù),則需要網(wǎng)絡(luò)處于連通狀態(tài),但是這樣做會帶來一些安全隱患,因為在安裝期間,RPC服務(wù)處于啟動狀態(tài),存在潛在的安全威脅。建議在系統(tǒng)處于安全保護狀態(tài)下,才將系統(tǒng)聯(lián)入網(wǎng)絡(luò)。
Openboot口令和安全
請首先插入CD。為了防止無關(guān)人員執(zhí)行EEPROM上的命令,請在OK提示符下,使用命令"setenv"設(shè)置EEPROM的安全模式為”command”,并設(shè)置相應(yīng)的口令,要求口令至少為8位,必須有字母、數(shù)字和標(biāo)點,不能使用名字、完整的英文單詞或生日作為口令。下面是一個示例:
ok setenv security-mode command
security-mode = command
請再次確定已經(jīng)設(shè)置了EEPROM的安全模式和口令,并且口令滿足一定的復(fù)雜讀要求。
· OK boot cdrom
在OK狀態(tài)下,設(shè)置系統(tǒng)啟動設(shè)備為CD-ROM。
開始Solaris 安裝程序
進入系統(tǒng)安裝初期,請系統(tǒng)管理員按照SUN公司提供安裝手冊所描述的步驟進行。在系統(tǒng)安裝min-root,并進入StartWeb安裝環(huán)境后,系統(tǒng)管理員注意下列安全事項:
1. 設(shè)置root口令
設(shè)置一個強壯的root的口令,使其符合復(fù)雜性要求,即口令長度必須為8位,包含數(shù)字、字母和標(biāo)點,不能為完整的英文單詞或句子。
2. 選擇系統(tǒng)安裝的類型
選擇系統(tǒng)安裝的類型是系統(tǒng)安裝中關(guān)鍵一步,系統(tǒng)管理員需要根據(jù)系統(tǒng)安裝的策略和最小化原則選擇相應(yīng)的系統(tǒng)軟件包。
強烈建議:系統(tǒng)安裝選擇自定義核心組(core group)軟件包,并且不安裝附帶軟件和附加產(chǎn)品。
下一步是選擇群集和包,在自定義核心組的默認(rèn)選擇的軟件包基礎(chǔ)上,可以增加如下軟件包:
軟件包編號
軟件包描述
備注
SUNWast
通過監(jiān)視或限制對系統(tǒng)文件和目錄的訪問來提高系統(tǒng)安全性的管理公用程序
此為SUN提供的安全工具,具體使用可以參閱有關(guān)手冊
關(guān)于Solaris 8 系統(tǒng)安裝的軟件包信息,請系統(tǒng)管理員參閱附錄3,以便根據(jù)具體應(yīng)用選取相應(yīng)的軟件包。
3. 網(wǎng)絡(luò)配置
如果系統(tǒng)需要DHCP或NIS,則需要將系統(tǒng)接入網(wǎng)絡(luò),注意接入網(wǎng)絡(luò)的時間要盡可能短,如果配置DHCP或NIS完畢,請暫時將網(wǎng)絡(luò)再次斷開。下一步是選擇IP或DHCP,這里會詢問是否安裝IPv6,除非必要,否則禁用。同時,SUN的建議是安裝所需要的所有服務(wù),因為服務(wù)安全的,但是不要采用這個選項。后期在配置服務(wù)和網(wǎng)絡(luò)的時候會證明前者的做法是會帶來安全問題的,因為在默認(rèn)安裝后,系統(tǒng)將開放RPC、aotumount、NFS等可能不必要且有潛在危險的服務(wù)。
4. 名字服務(wù)配置
下一步是配置NIS,建議最好不要使用NIS,除非必要。不要在安裝中配置DNS,因為在安裝時,系統(tǒng)要求聯(lián)網(wǎng)以便校驗DNS服務(wù)。系統(tǒng)就暴露在不安全的網(wǎng)絡(luò)環(huán)境下了。建議在系統(tǒng)完成安裝,并且根據(jù)本手冊提供的方法完成系統(tǒng)加固之后,才對DNS進行配置。同樣的,如果DNS服務(wù)的配置是必要的,那么系統(tǒng)接入網(wǎng)絡(luò)的時間要盡可能的短,配置完畢立即斷開網(wǎng)絡(luò)連接。
5. 磁盤分區(qū)
首先將/var分區(qū)與root分區(qū)分開,以防止日志文件耗盡root分區(qū)的空間。確保root分區(qū)足夠大,建立一個/var分區(qū)用于存放系統(tǒng)記錄文件和Email文件等。Swap分區(qū)為RAM的2倍。通常使用SUN的默認(rèn)配置,需要進行一些調(diào)整。建議分為三個區(qū),即/、/opt和/var?梢栽/opt區(qū)創(chuàng)建/usr/local,以方便備份管理。
6. 注意
其它版本的Solaris系統(tǒng)安裝的順序可能略有不同,系統(tǒng)管理員可根據(jù)具體情況,在上述相應(yīng)的安裝步驟中做好安全配置工作。
安裝服務(wù)越少的軟件,潛在的安全漏洞就越少,盡量選擇最小安裝,提高效率。了解更多關(guān)于建立最小安裝的信息,請察看Solaris Minimization for Security。
1.2 安裝后的工作
關(guān)閉不必要的服務(wù)
系統(tǒng)在安裝core group后,默認(rèn)開放如下不必要的服務(wù):
1、 NFS
2、 RPC
3、 automount
4、 echo、time、chargen等TCP/IP簡單服務(wù)
備份系統(tǒng)基本信息
系統(tǒng)安裝完成后,系統(tǒng)管理員應(yīng)該查看和備份系統(tǒng)關(guān)鍵信息,包括系統(tǒng)進程、網(wǎng)絡(luò)服務(wù)信息、suid/sgid文件或目錄、系統(tǒng)用戶等。
安裝和啟用輔助安全工具
為了提高系統(tǒng)的安全性以及可維護性,建議安裝建議的安全輔助工具。
安裝補丁程序
在安裝完其他系統(tǒng)軟件和第三方軟件后,馬上更新系統(tǒng)補丁程序。并更新Tripwire數(shù)據(jù)庫(如果使用了該軟件的話)。 第二章 Solaris系統(tǒng)安全配置
2.1 系統(tǒng)安全配置的原則
Solaris的安全配置可以從以下幾個方面來考慮:
2.1.1 本地安全增強
包括限制某些命令的訪問、設(shè)置正確的文件權(quán)限、應(yīng)用組和用戶的概念、suid/sgid的文件最少、rw-rw-rw的文件最少等。
2.1.2 網(wǎng)絡(luò)安全增強
包括使用安全的協(xié)議來管理、禁止所有不需要的服務(wù)、禁止系統(tǒng)間的信任關(guān)系、禁止不需要的帳號、增強認(rèn)證需要的密碼、保護存在危險的網(wǎng)絡(luò)服務(wù)、限制訪問等。
2.1.3 應(yīng)用安全增強
包括限制用戶的權(quán)限、限制進程所有者的權(quán)限、檢查應(yīng)用相關(guān)文件權(quán)限、限制訪問其他系統(tǒng)資源、應(yīng)用所依賴的suid/sgid文件最少、使用應(yīng)用本身的安全特性、刪除samples和其他無用的組件等。
2.1.4 監(jiān)控與警報
包括日志、完整性、入侵檢測等一些使用工具等。
2.2 主機的基本安全配置
主機的基本安全配置包括以下主要內(nèi)容:
1、 系統(tǒng)補丁更新
2、 控制臺安全
3、 文件系統(tǒng)安全
4、 用戶管理
5、 系統(tǒng)啟動與關(guān)閉
6、 內(nèi)核調(diào)整
7、 日志與審核
8、 其它
2.2.1 系統(tǒng)補丁更新
及時更新系統(tǒng)補丁是系統(tǒng)管理員做好日常維護的一項重要工作。更新系統(tǒng)補丁的目的,除了滿足某些兼容性的要求外,它的主要目的是修補系統(tǒng)的安全漏洞,避免系統(tǒng)漏洞被入侵者所利用。系統(tǒng)補丁包括操作系統(tǒng)的補丁,以及其它應(yīng)用服務(wù)軟件的補丁,諸如WEB服務(wù)、DNS服務(wù)、郵件服務(wù)、數(shù)據(jù)庫等等。
1、 強烈建議定期從操作系統(tǒng)提供商或應(yīng)用軟件提供商的官方網(wǎng)站下載最新的系統(tǒng)補丁集,SUN的操作系統(tǒng)補丁列表可以以下網(wǎng)站獲取:
ftp://sunsolve1.sun.com/pub/patches/
http://sunsolve1.sun.com/
2、 完整性檢查,使用校驗工具檢查下載的補丁軟件是否被篡改,以防止補丁軟件感染病毒或植入木馬程序。建議使用MD5檢驗工具(一般的SUN提供的補丁包內(nèi)會有一個MD5校驗數(shù)據(jù)文件,可以使用MD5校驗工具計算文件的MD5值與之對照)。
3、 如果條件允許的情況下,建議最好先做補丁修補實驗,因為某些補丁可能會影響部分服務(wù)的正常運行;
4、 在安裝系統(tǒng)補丁軟件后,建議按照本手冊提供的方法和步驟對系統(tǒng)配置進行安全檢查,因為某些系統(tǒng)補丁安裝后可能會啟動系統(tǒng)的默認(rèn)配置,使系統(tǒng)狀態(tài)發(fā)生變化,可能會導(dǎo)致系統(tǒng)服務(wù)異常或者使系統(tǒng)開放了某些不必要的服務(wù)而違背系統(tǒng)最小化原則。
另外,系統(tǒng)管理員可以使用showrev -p命令查看系統(tǒng)補丁修補情況,示例如下:
[root]$showrev -p
Patch: 106541-16 Obsoletes: 106832-03, 106976-01, 107029-01, 107030-01, 107334-u
Patch: 106793-07 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWa
Patch: 107544-03 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWr
Patch: 107451-05 Obsoletes: Requires: 107117-03 Incompatibles: Packages: SUNWu
Patch: 107454-05 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 107792-02 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 108301-02 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWa
Patch: 108482-02 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 106950-13 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWx
Patch: 107018-03 Obsoletes: Requires: 106938-01 Incompatibles: Packages: SUNWu
Patch: 109253-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 108798-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 108838-02 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 109744-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 107443-13 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu, SUNWc
Patch: 107477-03 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 108748-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 108760-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
Patch: 108764-01 Obsoletes: Requires: Incompatibles: Packages: SUNWcsu
2.2.2 控制臺安全
1. 設(shè)置OpenBoot的安全級別
設(shè)置OpenBoot的安全級別主要是防止可以物理接觸系統(tǒng)的人任意修改系統(tǒng)OpenBoot參數(shù),達到完全控制系統(tǒng)的目的。一方面,可以訪問OpenBoot的用戶能夠從外部硬盤或光盤上啟動系統(tǒng),從而完全控制系統(tǒng);另一方面,能夠用Stop-A停止系統(tǒng)的用戶可以修改所有OpenBoot環(huán)境變量。
Openboot的安全級別有3種:none、command和full。
· None是不需要任何口令,所有的OpenBoot設(shè)置都可以修改(包括系統(tǒng)啟動的硬盤分區(qū)),所有的OpenBoot命令都可以執(zhí)行。任何可以物理接觸系統(tǒng)的人就完全控制了系統(tǒng)。
· Command是除了boot和go之外的所有命令都需要口令。系統(tǒng)可以從默認(rèn)的啟動設(shè)備啟動。Go命令(在按下Stop-A或者發(fā)送中斷序列之后繼續(xù)系統(tǒng)操作)可以執(zhí)行。對于任何其它命令,用戶都必須輸入OpenBoot命令;
· Full是除了go命令(在按下Stop-A或者發(fā)送中斷序列之后繼續(xù)系統(tǒng)操作)之外的所以命令都需要OpenBoot口令。
建議把安全級別設(shè)為command。因為設(shè)置為full的話,如果忘記了OpenBoot口令,就只好更換PROM了。設(shè)置方法有兩種:
a) 在root下,下面是一個配置示例:
# eeprom security-mode= command
Changing PROM password:
New password: password
Retype new password: password
b) 在OpenBoot PROM下,下面是一個配置示例:
ok setenv security-mode command
security-mode = command
ok setenv security-password password
security-password =
如果希望修改OpenBoot口令可以使用如下命令。
# eeprom security-password=
Changing PROM password:
New password: password
Retype new password: password
注意:
“=”不要忘記鍵入了,否則會出現(xiàn)錯誤信息:security-password:data not available;
在修改口令時,不會詢問以前的口令。
如果希望禁用該項安全功能只需要將security-mode設(shè)置為none。方法同上。
2. 監(jiān)視EEPROM 口令
如果用戶敲錯了OpenBoot的口令將被記錄下來,使用下面的命令可以查看總共有多少次錯誤的嘗試:
# eeprom security-#badlogins
security-#badlogins=3
可以使用下列命令初始化它的計數(shù)器:
# eeprom security-#badlogins=0
security-#badlogins=0
2.2.3 文件系統(tǒng)安全
文件系統(tǒng)是計算機系統(tǒng)的重要組成部分,用于存儲和管理計算機中的信息,包括操作系統(tǒng)、應(yīng)用程序和數(shù)據(jù)等。管理系統(tǒng)文件的工作主要包括設(shè)置訪問權(quán)限、控制用戶訪問文件的方式(讀、寫、執(zhí)行)。
一 文件權(quán)限
由于具備suid/sgid位的可執(zhí)行文件可能會被入侵者利用獲得系統(tǒng)最高權(quán)限r(nóng)oot,因此,如果該文件或目錄不需要suid/sgid權(quán)限的話,應(yīng)該去除其相應(yīng)的suid/sgid位。
1. 刪除所有不使用的suid文件
大多數(shù)setuid程序都只是由root運行的,或者是由某些特定用戶或組運行,那就可以將其setuid位移去,系統(tǒng)管理員應(yīng)該根據(jù)實際需要的情況進行增減。請系統(tǒng)管理員參看SUN網(wǎng)站或CERT的安全公告,如果發(fā)現(xiàn)已知有漏洞的的程序還存在setuid位,請及時下載補丁進行補丁更新。若目前暫時無法獲得相應(yīng)補丁程序時,一個簡單的臨時解決方案是將該程序的setuid位去掉。而且還應(yīng)該建立一個setuid/setgid程序的列表,以便作為系統(tǒng)審核的依據(jù)之一,這樣可以通過對比發(fā)現(xiàn)是否有新的setuid程序出現(xiàn)。如果發(fā)現(xiàn)來歷不明的帶有setuid位的程序,就把它刪掉。
可能需要用到的操作命令示例如下:
列出系統(tǒng)中所有suid 文件
Find / -type f \( -perm -4000 \) -exec ls -al {} \; find / -type f \( -perm -4000 \) -exec ls -al {} \; >; $HOME/search-4-suid-files.txt
首先備份 suid 文件:
mkdir /opt/backup/suid find / -type f \( -perm -4000 \) -print |cpio -pudm /opt/backup/suid
刪除前建立tar備份,不要刪除suid-files.tar!!
cd /opt/backup; tar -cvpf suid-files.tar /opt/backup/suid/* rm -r /opt/backup/suid
去除所有suid 文件中的suid位
find / -type f \( -perm -4000 \) -exec chmod -s {} \;
再查一遍
find / -type f \( -perm -4000 \) -exec ls -al {} \;
對一些常用文件建立suid位
chmod u+s /usr/bin/su chmod u+s /usr/bin/passwd chmod u+s /usr/bin/ps
2. 變更不必要sgid文件的權(quán)限
可能需要用到的操作命令示例如下:
列出系統(tǒng)中所有 sgid 文件
find / -type f \( -perm -2000 \) -exec ls -al {} \; find / -type f \( -perm -2000 \) -exec ls -al {} \; >; $HOME/search-4-sgid-files.txt
備份 sgid 文件:
mkdir /opt/backup/sgid find / -type f \( -perm -2000 \) -print |cpio -pudm /opt/backup/sgid
對一些常用且必要的文件建立sgid 位。一般的是系統(tǒng)管理員在實踐中根據(jù)應(yīng)用的需要而設(shè)置,通常不必設(shè)置。
3. 去掉/etc下不必要的組可寫文件的寫權(quán)限
可能需要用到的操作命令示例如下:
列出所有組可寫的文件
find /etc -type f \( -perm -20 \) -exec ls -al {} \; find /etc -type f \( -perm -20 \) -exec ls -al {} \; >; search-4-group-writeable-in-etc.txt find /etc -type f \( -perm -20 \) -exec chmod g-w {} \;
結(jié)合上述所列文件信息,系統(tǒng)管理員可以視具體需要,更改文件權(quán)限。
4. 去掉/etc下不必要的所有人可寫文件的寫權(quán)限
可能需要用到的操作命令示例如下:
列出所有人可寫的文件
find /etc -type f -perm -2 -exec xargs ls -als {} \; find /etc -type f -perm -2 -exec xargs ls -als {} \; >; search-4-world-writeable-in-etc.txt
結(jié)合上述所列文件信息,系統(tǒng)管理員可以視具體需要,更改文件權(quán)限。
5. 可以將不必要權(quán)限為所有人都可以讀寫(rw-rw-rw-)的文件改為權(quán)限為所有人可讀僅屬主可寫(rw-r-r-)的文件
可能需要用到的操作命令示例如下:
find / -type f -perm 666 |xargs ls -al >; perm-666-before-change.txt
結(jié)合上述所列文件信息,系統(tǒng)管理員可以視具體需要,更改文件權(quán)限。
6. 改變所有人可讀寫執(zhí)行(rwxrwxrwx)文件的權(quán)限為所有人可讀可執(zhí)行僅屬主可寫的(rwxr-xr-x)文件
可能需要用到的操作命令示例如下:
find / -type f -perm 777 -exec xargs ls -al {} \; >; perm-777-before-change.txt
結(jié)合上述所列文件信息,系統(tǒng)管理員可以視具體需要,更改文件權(quán)限。
7. 查找world,group可寫的目錄
操作命令示例如下:
find / -type d -perm 2 -print >; search-4-world-writeable-directories.txt find /etc -type f -perm -20 -print >; search-4-group-writeable-dir.txt
8. 確保每個root啟動的腳本屬于root
首先查找所有啟動腳本的屬主
find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp |Mail" | xargs ls -al >; rc_files_before_change_ txt
改變屬主
find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xargs chown root:root find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xa rgs ls -al >; rc-files-after-change.txt ls -al /etc/init.d >; etc-init.d-before.change.txt chown root:root /etc/init.d ls -al /etc/init.d >; etc-init.d-after-change.txt
9. 確保所有cron行為有記錄
在/etc/default/cron中 CRONLOG=YES
刪除/var/spool/cron/crontabs 目錄中除了root文件外所有文件
10. 查找無用戶的文件
操作命令示例如下:
find / -type f -nouser >; files-nouser-before-change
11. 查找無組的文件
操作命令示例如下:
find / -type f -nogroup >; files-nogroup-before-change
12. 改變/var/cron權(quán)限
chmod 700 /var/cron && chown root /var/cron && chgrp sys /var/cron
13. 改變utmp\wtmp的權(quán)限
utmp文件記錄當(dāng)前登錄到系統(tǒng)中的所有用戶,wtmp文件記錄用戶登錄和退出事件,如果這些文件是所有用戶可寫,那就可以輕松地修改或刪除訪問系統(tǒng)的記錄。所以/var/adm/utmp、/var/adm/utmpx、/var/adm/wtmp、/var/adm/wtmpx的文件權(quán)限都應(yīng)該設(shè)為644。
chmod 644 /var/adm/utmp && /var/adm/utmpx && /var/adm/wtmp && /var/adm/wtmpx
下面總結(jié)了常用系統(tǒng)目錄的權(quán)限分配情況:
文件 權(quán)限或?qū)僦?
/etc/utmp 644
/var/adm/wtmp 644
/etc/syslog.pid或/var/run/syslog.pid 644
/etc, /usr/etc, /bin, /usr/bin, /sbin, /usr/sbin, /tmp and /var/tmp 由root所擁有
/tmp 和/var/tmp 設(shè)置sticky-bit粘滯位
日志/var/log/ 只能由root寫入
二 mount選項
在mount選項設(shè)置為nosuid的分區(qū)內(nèi)的文件即使有suid位也不會被入侵者用以提升權(quán)限。如果mount 選項設(shè)置為只讀(ro)則可以防止用戶修改該分區(qū)內(nèi)的關(guān)鍵數(shù)據(jù)文件,因此,推薦按照下表修改/etc/vfstab文件。
#device device mount FS fsck mount mount #to mount to fsck point type pass at boot options /dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 / ufs 1 no - /dev/dsk/c0t3d0s4 /dev/rdsk/c0t3d0s4 /usr ufs 1 no ro /dev/dsk/c0t3d0s5 /dev/rdsk/c0t3d0s5 /var ufs 1 no nosuid /dev/dsk/c0t3d0s6 /dev/rdsk/c0t3d0s6 /opt ufs 2 yes nosuid,ro
注意:/usr分區(qū)建議設(shè)置為只讀,但是不要設(shè)置為nosuid,因為該分區(qū)下的部分命令有nosuid位。
需要把NFS服務(wù)器共享的目錄裝入到系統(tǒng)中時,建議加上nosuid和ro的選項,這樣目錄就會以只讀的方式裝入,并且以setuid運行也是不允許的。
三 卷管理
Solaris的卷管理可以方便簡單地管理可移動介質(zhì)設(shè)備,在有CD-ROM、軟驅(qū)等設(shè)備接入時會自動安裝到系統(tǒng)中,而不需要超級用戶的介入。但是這樣容易被入侵者所利用,入侵者只需要在CD-ROM、軟盤等介質(zhì)中存儲有suid的命令,便可用以提升權(quán)限達到完全控制系統(tǒng)的目的。
因此,建議服務(wù)器不要使用自動mount的功能,而工作站如果需要使用自動mount功能,需要修改/etc/rmmount.conf使mount的文件系統(tǒng)具備nosuid的選項。在/etc/rmmount.conf加入如下信息:
mount hsfs -o nosuid mount ufs -o nosuid
四 其它
1、確定EXINIT的環(huán)境變量禁用了.exrc文件功能,并且刪除了系統(tǒng)內(nèi)不必要.exrc文件。可以使用如下命令查找.exrc文件:
# /bin/find / -name '.exrc' -exec /bin/cat {} \; -print
2、確定用戶HOME目錄下的.forward文件不能被非授權(quán)命令或程序所執(zhí)行,郵件服務(wù)可能會由于錯誤配置導(dǎo)致普通用戶的擁有root特權(quán)?梢允褂萌缦旅畈檎.forward文件:
# /bin/find / -name '.forward' -exec /bin/cat {} \; -print
2.2.4 用戶管理
1、禁止所有不需要的系統(tǒng)帳戶
管理性的帳號應(yīng)該被封鎖起來,避免被入侵者所利用。這些帳號包括daemon、bin、sys、adm、lp、uucp、nuucp、listen、nobody和noaccess。封鎖方法為在/etc/passwd文件中,將其對應(yīng)的shell 置為/bin/false。
如果系統(tǒng)沒有shadow文件,則編輯/etc/passwd,將需要禁止帳戶的**用NP代替
Example: noaccess:NP:60002:60002:No Access User:/:/sbin/noshell
如果系統(tǒng)有shadow文件,則編輯shadow文件,在用戶名后面直接加入‘:NP’。
daemon:NP:6445:::::: bin:NP:6445:::::: sys:NP:6445:::::: adm:NP:6445:::::: lp:NP:6445:::::: uucp:NP:6445:::::: nuucp:NP:6445::::::
2、口令及口令策略
· 長度至少為8位,必須包括數(shù)字、字母和標(biāo)點。
· 設(shè)置密碼相關(guān)參數(shù),編輯/etc/default/passwd設(shè)置:
MINWEEKS=1 # 最短改變時間 MAXWEEKS=4 # 密碼最長有效時間 PASSLENTH=8 # 最短密碼長度
· 確保提示輸入密碼
可以在直接鍵入如下命令:
# passreq=YES
或者編輯/etc/login/文件,更改相應(yīng)條目。
· 檢查是否每個用戶都設(shè)置了密碼
檢查/etc/passwd和/etc/shadow,每個用戶的密碼欄是否為空。
3、修改登錄(login)配置文件
· 防止root遠程登錄
建議超級用戶不要直接登錄,設(shè)置方法為在/etc/default/login文件中設(shè)置CONSOLE=/dev/null。這樣任何需要成為超級用戶的系統(tǒng)管理員都必須先用普通帳號登錄,然后用su命令切換成超級用戶,因為系統(tǒng)會記錄下用戶使用su命令的情況,以便審計的用戶行為。
編輯/etc/default/login,加上:
# If CONSOLE is set, root can only login on that device. CONSOLE=/dev/console
· 記錄所有root登錄嘗試
編輯/etc/default/login
# SYSLOG determines whether the syslog(3) LOG_AUTH facility should be used # to log all root logins at level LOG_NOTICE and multiple failed login # attempts at LOG_C SYSLOG=YES
· 設(shè)置session超時時間
編輯/etc/default/login,加上:
# TIMEOUT sets the number of seconds (between 0 and 900) to wait before # abandoning a login session. TIMEOUT=120
· 設(shè)置缺省umask
編輯/etc/default/login,加上:
# UMASK sets the initial shell file creation mode mask. See umask(1). UMASK=027
權(quán)限設(shè)置為750. "rw--r------"
對于如下文件,同樣加上缺省umask:
/etc/.login, /etc/profile ,/etc/skel/local.cshrc
/etc/skel/local.login, /etc/skel/local.profile
· 設(shè)置Shell環(huán)境變量
編輯/etc/default/login,加上:
# ALTSHELL determines if the SHELL environment variable should beset ALTSHELL=YES
4、設(shè)置root的umask
檢查root的.profile,確保umask為027或077 。
5、在所有path中,去掉所有"."路徑。
檢查所有缺省啟動腳本和root啟動腳本,在所有路徑變量中刪除"."路徑,包括以下文件:
/.login , /etc/.login, /etc/default/login, /.cshrc, /etc/skel/local.cshrc, /etc/skel/local.login, /etc/skel/local.profile, /.profile , /etc/profile
6、使用sugroup來限制su,將可以su的用戶添加到這個組
在 /etc/group中創(chuàng)建特殊的組sugroup將系統(tǒng)管理員帳號加到這個組 ;
改變 /bin/su 的權(quán)限為:r-sr-sr-x 1 root sugroup
#chmod 550 /bin/su
#chmod +s /bin/su
#chown root:sugroup /bin/su
#ls -al /bin/su
-r-sr-s--- 1 root sugroup 18360 Jan 15 1998 /bin/su
#grep sugroup /etc/group
sugroup::600:root,httpadm,wspher
這樣,只有sugroup組中的用戶可以使用su,提升為超級用戶,另外一個可行的方法是使用sudo來替代su。
2.2.5 系統(tǒng)啟動與關(guān)閉
一.系統(tǒng)啟動和關(guān)閉
1、檢查系統(tǒng)的啟動和關(guān)閉程序也就是/etc/init.d、/etc/rc.X目錄和/etc/inittab文件,將這些文件和目錄的權(quán)限設(shè)為只有超級用戶可寫。
2、在rc.x目錄中將不需要的服務(wù)禁用,可以采取一定的格式進行更名處理,以便在有需要的時候可以重新啟動服務(wù)。更名舉例如下:
mv /etc/rc3.d/S92volmgt /etc/rc3.d/no_use_S92volmgt
以下服務(wù)原則上應(yīng)該禁用,但是系統(tǒng)管理員可以根據(jù)系統(tǒng)應(yīng)用需求,按照系統(tǒng)最小化原則進行取舍:
snmpdx autofs (Automounter) volmgt (Volume Deamon) lpsched (LP print service) nscd (Name Service Cache Daemon) Sendmail (注意,如果確要使用sendmail處理郵件信息,則請參照“網(wǎng)絡(luò)服務(wù)安全配置”的相關(guān)內(nèi)容進行配置) keyserv (注意Keyserv Deamon 在安裝了NIS+ 或NFS才使用,如果啟動時使用了-d 的選項,則默認(rèn)的"nobody" key 是禁用的)
另外,rpcbind提供遠程呼叫,依靠遠程系統(tǒng)的IP地址和遠程用戶的ID進行驗證,這樣很容易偽造和改變。建議關(guān)閉rpcbind服務(wù)。
3、禁止所有DMI服務(wù)
禁止所有DMI服務(wù):mv /etc/rc3.d/S??dmi /etc/rc3.d/no_use??dmi
/etc/init.d/init.dmi中啟動的dmi服務(wù)有:
/usr/lib/dmi/dmispd
/usr/lib/dmi/snmpXdmid
/etc/dmi/ciagent/ciinvoke
4、檢查所有的.rhosts文件
.rhosts允許不要密碼遠程訪問,
預(yù)先生成$HOME/.rhosts文件,并且設(shè)置為0000,防止被寫入”+ +”。(攻擊者經(jīng)常使用類似符號鏈接或者利用ROOTSHELL寫入)。
注:這種情況會導(dǎo)致一些如SSH的RCP命令無法使用(需要使用$HOME/.rhosts文件的一些命令)
touch /.rhosts ;chmod 0 /.rhosts
.rhosts可以被普通用戶所創(chuàng)建在個人目錄下。推薦使用腳本來發(fā)現(xiàn).rhosts文件。并且利用cron自動檢查,報告給特定用戶。
Script for Find.rhost:
#!/bin/sh
/usr/bin/find /home -name .rhosts | (cat <<EOF
this only find .rhost:
EOF
cat
) | /bin/mailx -s "Content of .rhosts file audit report" yourmailbox
5、禁止使用.rhosts認(rèn)證
在/etc/pam.conf中刪除
rlogin auth sufficient /usr/lib/security/pam_rhosts_auth.so.1
將rsh的行改為:
rsh auth required /usr/lib/security/pam_unix.so.1
6、檢查信任關(guān)系
檢查/etc/hosts.equiv文件,確保為空
二.審核啟動和關(guān)閉機制
由于在系統(tǒng)啟動和關(guān)閉階段,系統(tǒng)的保護措施暫時沒有運行或訪問,因此,提請系統(tǒng)管理員需要特別關(guān)注系統(tǒng)啟動和關(guān)閉腳本的完整性。可以借助工具審核系統(tǒng)的啟動和關(guān)閉腳本,如Tripwire。需要審核的文件和目錄包括:/etc/rc*.X、/etc/inetd.conf等。
2.2.6 內(nèi)核調(diào)整
修正堆棧錯誤,防止溢出(2.6以后版本已修正)
把堆棧設(shè)置為不可執(zhí)行。步驟方法為:把下面兩行加入/etc/system中
set noexec_user_stack=1 set noexec_user_stack_log=1
然后改變文件權(quán)限:#chmod 644 /etc/system
不可執(zhí)行堆?梢栽谝欢ǔ潭壬系钟跅#⊿tack)的緩沖區(qū)溢出攻擊,但是,緩沖區(qū)溢出的攻擊手段可以有多種方式實現(xiàn),基于棧的溢出攻擊只是其中的一種攻擊手段,因此,設(shè)置不可執(zhí)行堆棧不能抵御其它類型的緩沖區(qū)溢出攻擊,如基于堆(Heap)的溢出攻擊、基于函數(shù)指針的溢出攻擊等。系統(tǒng)管理員應(yīng)該時常關(guān)注系統(tǒng)安全漏洞信息,及時采取補救措施。
建議禁止系統(tǒng)進行核心轉(zhuǎn)儲(coredump),因為它會占用大量磁盤空間,并且可能會泄露某些敏感信息。設(shè)置方法為:在/etc/system中加入
set sys:coredumpsize=0
注意:以上三項配置都要重啟系統(tǒng)后才能生效。
2.2.7 日志和審核
1、設(shè)置合適cron logfiles
編輯配置文件/etc/cron.d/logchecker中 LIMIT項。
系統(tǒng)管理員可以根據(jù)實際經(jīng)驗設(shè)置,一般要考慮的因素是日志查看的周期與通常情況下日志產(chǎn)生的信息量大小,建議對cron日志的審核以7天為一個周期。
2、記錄所有inetd服務(wù)
編輯/etc/init.d/inetsvc,查找inetd的啟動選項,示例如下:
/usr/sbin/inetd -s -t &
3、修改syslog.conf
編輯syslog.conf,增加
*.debug /var/adm/compass.messages #記錄debug信息
auth.info /var/log/authlog
4、創(chuàng)建/var/adm/loginlog來記錄登錄失敗信息
touch /var/adm/loginlog
chmod 600 /var/adm/loginlog
chown root /var/adm/loginlog
chgrp sys /var/adm/loginlog
5、輔助工具
建議使用Tripwire對系統(tǒng)文件進行完整性檢查,這樣能有效防止木馬。具體Tripwire的安裝與使用,請參見附錄。
建議安裝日志檢測工具,比如swatch,以提高日志分析的效率。具體swatch的安裝和使用,請參見附錄。
2.2.8其它
1、cron和at是定時執(zhí)行命令。因此要嚴(yán)格限制可以執(zhí)行cron(at)命令的用戶,以防止被入侵者所利用。
設(shè)置方法為:創(chuàng)建一個空的/etc/cron.d/cron.deny(/etc/cron.d/at.deny)文件,然后把可以執(zhí)行cron(at)命令的用戶加到/etc/cron.d/cron.allow(/etc/cron.d/at.allow)文件中。
2、不要使用crontab -e命令來配置cron,因為它會把用戶的crontab文件的一份所有用戶都可讀的副本放在/tmp目錄下,入侵者就可以根據(jù)這個副本探索出與cron項有關(guān)的可能的安全缺陷。
建議的設(shè)置方法為:首先輸入命令crontab -l >;mycronfile;編輯mycronfile文件,完成所有需要的修改;最后輸入命令crontab <mycrontab。
2.3 系統(tǒng)網(wǎng)絡(luò)服務(wù)安全配置
2.3.1網(wǎng)絡(luò)接口的安全配置
利用ndd命令,可以檢測或者更改網(wǎng)絡(luò)設(shè)備驅(qū)動程序的特性。在/etc/init.d/inetinit啟動腳本中增加以下各條命令,然后重啟系統(tǒng),可以提高網(wǎng)絡(luò)的安全性。
1. 忽略并且不發(fā)送ICMP重定向報文
如果系統(tǒng)使用了動態(tài)路由機制,則攻擊者可能會利用ICMP重定向報文更改路由信息,導(dǎo)致IP數(shù)據(jù)包流向轉(zhuǎn)變,形成拒絕服務(wù)攻擊或者被監(jiān)聽。
忽略ICMP重定向報文 /usr/sbin/ndd -set /dev/ip ip_ignore_redirect 1(默認(rèn)值為 0)
禁止發(fā)送ICMP重定向報文 /usr/sbin/ndd -set /dev/ip ip_send_redirects 0 (默認(rèn)值為 1)
2. 關(guān)閉數(shù)據(jù)包轉(zhuǎn)發(fā)
除非系統(tǒng)需要路由轉(zhuǎn)發(fā)功能,否則應(yīng)該關(guān)閉數(shù)據(jù)包轉(zhuǎn)發(fā)。
/usr/sbin/ndd -set /dev/ip ip_forwarding 0
3. 不轉(zhuǎn)發(fā)源路由數(shù)據(jù)包
源路由數(shù)據(jù)包是指由發(fā)送方指定傳送路徑的數(shù)據(jù)包。如果系統(tǒng)轉(zhuǎn)發(fā)源路由數(shù)據(jù)包,則會帶來潛在的安全隱患,入侵者可以將大量數(shù)據(jù)流引向攻擊目標(biāo)形成拒絕服務(wù)攻擊。
/usr/sbin/ndd -set /dev/ip ip_forward_src_routed 0
4. 設(shè)置更安全的TCP初始序列號產(chǎn)生方式
TCP_STRONG_ISS的值決定TCP初始序列號的產(chǎn)生方式,它的可能取值有三個:
· 0 :舊式的序列號產(chǎn)生方式
· 1 :經(jīng)過改進的序列號產(chǎn)生方式,每次建立新TCP連接的初始序列號不再連續(xù)取值,而是在此基礎(chǔ)上增加一個隨機的分量,這樣就增大了TCP初始序列號猜測攻擊的難度。
· 2 : 使用新型的序列號產(chǎn)生方法,杜絕根據(jù)一個初始序列號猜測下一次連接初始序列號的可能性。
/usr/sbin/ndd -set /dev/tcp tcp_strong_iss 2(默認(rèn)值為1)
5. 縮短ARP緩存有效期
ARP緩存有效期如果太長,遭受ARP欺騙攻擊后需要更長時間恢復(fù)。雖然縮短ARP緩存有效期不能真正阻止ARP欺騙攻擊,但是加大了攻擊難度。
/usr/sbin/ndd -set /dev/arp arp_cleanup_interval 60000
以毫秒為單位,缺省值為300000,60000只是建議值,也可以根據(jù)自己需要取其它值。
2.3.2網(wǎng)絡(luò)訪問控制
網(wǎng)絡(luò)系統(tǒng)的安全建立在這個基本原理之上:去掉不必要的網(wǎng)絡(luò)訪問,在所需要的網(wǎng)絡(luò)訪問周圍建立訪問控制。
一.停止運行不必要的網(wǎng)絡(luò)服務(wù)
1、停止由inetd啟動的網(wǎng)絡(luò)服務(wù)
由internet服務(wù)器過程inetd啟動的網(wǎng)絡(luò)服務(wù)是由兩個配置文件/etc/inet/services和/etc/inet/inetd.conf來配置的。
/etc/inet/services文件指定每個服務(wù)的端口號和端口類型,該配置文件的部分示例如下:
…
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
…
/etc/inet/inetd.conf文件指定服務(wù)所對應(yīng)的系統(tǒng)服務(wù)程序,該配置文件的部分示例如下:
…
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
…
當(dāng)要停止某個服務(wù),如ftp、telnet等時,只要注釋掉文件/etc/inet/services和/etc/inet/inetd.conf中的相應(yīng)條目,也就是在那一行的開頭加上#字符,然后讓inetd重新讀配置文件,過程示例如下:
# ps -ef |grep inetd root 149 1 0 Jan 18 ? 0:00 /usr/sbin/inetd -s root 24621 24605 0 15:53:01 pts/1 0:00 grep inetd # kill -HUP 149
以上第一條命令是為了獲得inetd的進程號,示例中輸出的第二列內(nèi)容就是進程號(149),然后將該進程號填入第二條命令的相應(yīng)位置。
2、停止由rc腳本啟動的網(wǎng)絡(luò)服務(wù)
有些網(wǎng)絡(luò)服務(wù)不是由inetd來啟動,而是由自己的rc文件來啟動的,如:
sendmail /etc/rc2.d/S88sendmail
automounter /etc/rc2.d/S74autofs
ntp /etc/rc2.d/S74xntpd
syslog /etc/rc2.d/S74syslog
打印服務(wù) /etc/rc2.d/S80lp
apache /etc/rc3.d/S50apache
要停止以上服務(wù),只需用mv命令把它們的啟動文件改名,如把/etc/rc2.d/S88sendmail改名為/etc/rc2.d/X88sendmail,然后先查找出相應(yīng)的進程號(進程號查找方法同上,以下不再贅述),再用“kill -9 進程號”停止相應(yīng)的進程。
要停止DNS服務(wù)時,在文件/etc/rc2.d/S72inetsvc中把運行in.named的一項注釋掉,然后再停止相應(yīng)的進程。
要停止NFS服務(wù)器時,首先注釋掉/etc/dfs/dfstab文件中的所有條目,然后用mv命令把/etc/rc3.d/S15nfs.server文件改名為/etc/rc3.d/X15nfs.server,最后停止nfsd進程。
要停止NFS客戶端時,首先注釋掉/etc/vfstab文件中fstype為nfs的所有條目,接著用umount命令釋放所有NFS裝入的文件系統(tǒng),最后用mv命令把文件/etc/rc2.d/S73nfs.client改名為/etc/rc2.d/X73nfs.client即可。
3、具有潛在危險的服務(wù)
以下是一些具有潛在危險的服務(wù)列表,除非有必要,否則建議關(guān)掉它們:
finger:該服務(wù)會泄漏系統(tǒng)的有關(guān)信息
exec、login、shell:這些服務(wù)是由r系列命令所使用的
tftp:一般文件傳輸協(xié)議服務(wù),它沒有任何的用戶或系統(tǒng)身份驗證機制
echo、discard、chargen:這些簡單的TCP服務(wù)有可能被利用來充滿網(wǎng)絡(luò)或消耗系統(tǒng)資源
再次提醒系統(tǒng)管理員,只打開必須使用的服務(wù),其余的服務(wù)都應(yīng)該關(guān)掉。這也是由安全管理的“最小化原則”所要求的。
二.加強網(wǎng)絡(luò)訪問控制
對于必須開放的服務(wù),就要加強網(wǎng)絡(luò)訪問控制。
a)使用共享軟件tcp_wrapper
利用tcp_wrapper可以控制哪些系統(tǒng)或這些系統(tǒng)中的哪些用戶可以訪問在文件/etc/inet/inetd.conf中定義的網(wǎng)絡(luò)服務(wù)。當(dāng)系統(tǒng)安裝tcp_wrapper后,文件/etc/inet/inetd.conf中的條目就會變成下面的形式:
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
tcpd程序截獲來自客戶端的服務(wù)請求、記錄請求發(fā)生的時間和IP地址,并按訪問控制進行檢查。當(dāng)本次連接的用戶、請求源的IP等信息符合管理員的預(yù)設(shè)值時,才將該次請求傳遞給系統(tǒng)in.telnetd完成后續(xù)工作;若連接不符合要求,該連接請求將被拒絕。參見附錄1中的Tcp_wrapper。
b)R系列命令
R系列命令包括rlogin、rsh、rexec、rdist等,它們通過/etc/hosts.equiv或$HOME/.rhosts文件來設(shè)置信任關(guān)系。而這種信任關(guān)系具有很大的危險性,如果入侵者在以上文件中加入++,那遠程用戶就可以不輸入口令直接成為本地系統(tǒng)用戶。如果沒有建立等價關(guān)系,那用戶就會被提示輸入口令,而口令在傳輸?shù)臅r候沒有任何的加密措施。所以強烈建議不要使用R系列命令,并把系統(tǒng)中的/etc/hosts.equiv和$HOME/.rhosts文件刪除。
2.3.3常見網(wǎng)絡(luò)服務(wù)的安全配置
一 Telnet
因為telnet的口令和內(nèi)容在網(wǎng)絡(luò)上都是明文傳輸?shù)模苋菀妆桓`聽,所以建議盡量使用ssh來替代telnet,參見附錄1中的OpenSSH。
對于需要開放telnet端口的系統(tǒng),建議在/etc/services文件中修改telnet 的端口號,最好將該端口號改為五位數(shù)以上,以避免攻擊者的掃描檢測。示例如下:
telnet 23232/tcp
然后讓inetd重新讀配置文件,具體方法同上。
創(chuàng)建/etc/default/telnetd文件,寫入BANNER="",這樣telnet上來以后就不會顯示系統(tǒng)信息,而只是顯示login:,這就可以防止入侵者通過telnet來搜集系統(tǒng)信息。甚至可以在BANNER中寫入其它的操作系統(tǒng)版本信息,以誤導(dǎo)入侵者,增加入侵的難度。
二 FTP
與telnet類似,通過創(chuàng)建/etc/default/ftpd文件,寫入BANNER="",這樣ftp上來以后就不會顯示系統(tǒng)信息,可以防止入侵者通過ftp來搜集系統(tǒng)信息。甚至可以在BANNER中寫入其它的操作系統(tǒng)版本信息,以誤導(dǎo)入侵者,增加入侵的難度。
ftp和telnet類似,所有的傳輸內(nèi)容都是沒有經(jīng)過加密的,所以絕對不能以超級用戶身份使用FTP,因為口令在網(wǎng)絡(luò)上傳輸?shù)臅r候是不加密的。要強制做到這一點,可在文件/etc/ftpusers中增加超級用戶。
不要使用匿名ftp,只需在文件/etc/passwd中把ftp用戶注釋掉即可。
將ftpd的記錄和調(diào)試功能打開,這時在文件/etc/inet/inetd.conf中的ftpd一項應(yīng)該是:
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd -dl
然后讓inetd重新讀配置文件。
三 電子郵件
sendmail歷史上安全問題嚴(yán)重,而且它的配置比較復(fù)雜,容易由于配置不當(dāng)帶來系統(tǒng)的安全隱患,所以如果系統(tǒng)不是作為郵件服務(wù)器的話,就不要把sendmail作為守護進程來運行,而是定時啟動sendmail來發(fā)送郵件,設(shè)置步驟如下:
把sendmail服務(wù)關(guān)掉,可以參見4.3.2.1的相關(guān)步驟處理。
調(diào)整文件/etc/mail/aliases中的別名項,如帳號smith使用的是工作站gram,郵件服務(wù)器系統(tǒng)的名稱是house,就應(yīng)該做如下修改:
舊的別名: smith smith@gram
新的別名: smith smith@house
按照標(biāo)準(zhǔn)的NFS步驟,將服務(wù)器的/var/mail目錄下相應(yīng)的文件導(dǎo)出并裝入到客戶系統(tǒng)。
用crontab命令加入如下一項
0 * * * * /usr/lib/sendmail -q
這樣就可以每隔一個小時把客戶機上所有加入隊列的待發(fā)送郵件送到郵件服務(wù)器上。
如果機器要作為郵件服務(wù)器的話,要確保使用的是最新版本的sendmail,或者打上了最新的補丁。
四 DNS
DNS安全問題主要來源是當(dāng)名字服務(wù)器高速緩存了無效數(shù)據(jù),且該無效數(shù)據(jù)將在高速緩存中保留一段時間,從而可能誤導(dǎo)查詢結(jié)果。但多數(shù)系統(tǒng)都要使用DNS服務(wù),不能把DNS完全禁止,只能盡量減少DNS緩存的數(shù)據(jù)和數(shù)據(jù)緩存時間。DNS的域名服務(wù)緩存進程是nscd,它把主機、口令和組等信息進行緩存。Nscd的配置文件是/etc/nscd.conf,應(yīng)當(dāng)通過調(diào)整其中的參數(shù),把nscd緩存的條目數(shù)和緩存時間調(diào)到盡可能小。配置文件中Cachename可以是hosts、passwd或groups。
相關(guān)參數(shù)說明如下:
positive-time-to-live cachename value:是成功的查詢在指定的cache中的緩存時間,這個值是以秒為單位。這個值應(yīng)該調(diào)到盡量調(diào)小。
negative-time-to-live cachename value:是不成功的查詢在指定的cache中的緩存時間,這個值是以秒為單位。這個值也應(yīng)該調(diào)到盡量的小。
keep-hot-count cachename value:是在指定cache中當(dāng)前的緩存的條目數(shù)。一般地,緩存內(nèi)的條目數(shù)應(yīng)接近24小時內(nèi)經(jīng)常訪問到的條目數(shù)量。
調(diào)整完后,執(zhí)行nscd -g命令,可以確認(rèn)是否調(diào)整成功。示例如下:
[root]$nscd -g nscd configuration: 0 server debug level "/dev/null" is server log file passwd cache: Yes cache is enabled 617 cache hits on positive entries 1 cache hits on negative entries 39 cache misses on positive entries 7 cache misses on negative entries 93% cache hit rate 0 queries deferred 9 total entries 211 suggested size 600 seconds time to live for positive entries 5 seconds time to live for negative entries 20 most active entries to be kept valid Yes check /etc/{passwd,group,hosts} file for changes No use possibly stale data rather than waiting for refresh ……
五 NFS
NFS服務(wù)器的目錄是通過share命令來共享的。要提高NFS服務(wù)器共享的安全性,首先要對哪些系統(tǒng)可以裝入這個服務(wù)器的NFS目錄進行限制,而不應(yīng)把目錄開放給所有的系統(tǒng)。盡可能以只讀的方式共享目錄,同時共享目錄應(yīng)該盡可能地少。最好采用比較強的身份驗證方式,如AUTH_DES或AUTH_KERB。
設(shè)置nfs特殊tcp,udp端口
ndd -set /dev/tcp tcp_extra_priv_ports_add 2049
ndd -set /dev/udp udp_extra_priv_ports_add 2049
默認(rèn)情況下NFS會對所有UDP端口的請求作出響應(yīng),建議設(shè)置NFS portmon,那么系統(tǒng)會忽略從非特權(quán)端口發(fā)出的NFS裝入和I/O請求。設(shè)置方法為:在/etc/system中加入
set nfssrv:nfs_portmon=1
set nfs:nfs_portmon = 1
六 X window
缺省配置下,系統(tǒng)對X server缺乏有效的訪問控制。此時,任何主機上的任何用戶都可以打開X窗口并運行任何程序,因此可以連接到X server的客戶端應(yīng)該被嚴(yán)格控制。
盡量不要允許任何主機訪問X server。要確!眡host +”命令沒有被包含在系統(tǒng)的任何文件中,包括.xsession文件和域X server有關(guān)系的任何腳本中,因為執(zhí)行”xhost +”命令,會使任何主機都可以訪問X server。
確保目錄/tmp的訪問權(quán)限被設(shè)置為1777(即drwxrwxrxt),也就是說該目錄的sticky位要被設(shè)置。該目錄的所有者必須設(shè)為root。這樣只有root才有權(quán)限刪除文件/tmp/.X11-unix/X0,該文件是X server的一個socket,一旦該文件被刪除,用戶就不能訪問系統(tǒng)的X server。這可以防止惡意用戶進行破壞。
七 WEB
以常見的web服務(wù)器軟件Apache為例,默認(rèn)安裝下,系統(tǒng)將在rc3.d下產(chǎn)生一個啟動腳本S50apache,應(yīng)首先將該腳本更名,并停用相應(yīng)的守護進程httpd,然后選擇如下提供的安全措施以加固系統(tǒng):
· 在chroot的環(huán)境下運行httpd服務(wù),這樣服務(wù)器就可以控制http客戶對系統(tǒng)磁盤的訪問。
· 幾乎所有的httpd漏洞都是因為CGI配置的錯誤或者不合理造成的,因此若非必要,建議禁用CGI腳本。Cgi-bin目錄的屬性應(yīng)設(shè)置為755或751。
· 在應(yīng)用允許的前提下(如httpd端口可以綁定于1024以上,且不采用chroot安全模式),不要以root的身份來運行httpd守護進程,這樣即使黑客發(fā)現(xiàn)了httpd服務(wù)上的安全漏洞,他們也只能以非root用戶的身份來訪問系統(tǒng),從而降低系統(tǒng)受損害的可能性。
2.4系統(tǒng)管理員的日常安全工作
2.4.1 安全補丁
系統(tǒng)管理員日常最重要的安全工作,就是給系統(tǒng)打上最新的補丁。
Solaris的安全補丁可以以下官方網(wǎng)站獲。
ftp://sunsolve.sun.com/pub/patches/ <ftp://sunsolve1.sun.com/pub/patches/>;
<http://sunsolve.sun.com/>;
2.4.2 監(jiān)測
操作系統(tǒng)一般由文件系統(tǒng)和進程系統(tǒng)構(gòu)成,文件系統(tǒng)的特點是靜態(tài)的,而進程則是動態(tài)的。
系統(tǒng)的配置一般是以文件的形式存放的,unix系統(tǒng)的配置文件一般是放置在/etc目錄下,如/etc/services為系統(tǒng)可以提供的服務(wù)列表、/etc/default/login為系統(tǒng)登錄時的默認(rèn)配置等等。因此,優(yōu)秀的系統(tǒng)管理員會對系統(tǒng)配置情況有清楚的了解和掌握。例如,系統(tǒng)管理員可以通過查看對于系統(tǒng)當(dāng)前開放的網(wǎng)絡(luò)服務(wù)情況,檢查系統(tǒng)是否有可疑的端口開放,判斷是否被入侵者安裝了木馬程序?赏ㄟ^如下命令進行查看:
netstat -an | more
Solaris下常見的網(wǎng)絡(luò)端口服務(wù)列表如下:
UDP
111 sunrpc
4045 lockd
517 talk
512 biff
42 name
TCP
111 sunrpc
514 shell
540 exec
512 login
進程是系統(tǒng)運行的單元,是一個系統(tǒng)運行的動態(tài)表現(xiàn)。系統(tǒng)管理員必須對系統(tǒng)的運行情況進行適當(dāng)監(jiān)控,及時發(fā)現(xiàn)系統(tǒng)的異常。例如,我們可以查看通過如下命令查看當(dāng)前系統(tǒng)運行的所有進程情況:ps -ef。
下面的幾個命令可以幫助系統(tǒng)管理員來查看系統(tǒng)的其他信息:
1、 查看CPU的性能
[root]$uptime 8:50pm up 6:46, 1 user, load average: 0.98, 1.01, 2.09
上面是一個示例,其中l(wèi)oad average表示平均負載,數(shù)據(jù)0.98、 1.01、2.09表示前1分鐘、5分鐘、15分鐘的系統(tǒng)平均負載情況。系統(tǒng)管理員可以定期運行該命令,以觀察系統(tǒng)的平均負載及變化趨勢。一般的,UNIX系統(tǒng)負載數(shù)在2~3之間為輕載,5~6為中等負載,而10以上為過載。系統(tǒng)負載增大時,說明有多條命令阻塞在內(nèi)存或I/O系統(tǒng),可能有入侵者正在竊取系統(tǒng)的重要數(shù)據(jù)或者企圖消耗系統(tǒng)資源使系統(tǒng)無法正常提供服務(wù),即所謂的拒絕服務(wù)攻擊(DoS)。
另外,solaris系統(tǒng)還為用戶提供一個圖形化的工具可以直觀的觀察系統(tǒng)的變化趨勢,即perform,它可以顯示系統(tǒng)的CPU利用率、交換作業(yè)個數(shù)、網(wǎng)絡(luò)數(shù)據(jù)包個數(shù)、運行隊列平均個數(shù)等信息。
2、 查看內(nèi)存的使用情況
[root]$vmstat procs memory page disk faults cpu r b w swap free re mf pi po fr de sr f0 s0 s1 s2 in sy cs us sy id 0 0 0 467024 583904 0 0 1 0 0 0 0 0 0 0 0 403 37 29 0 0 100
命令vmstat不僅可以顯示虛存的使用情況,而且還可以查看到系統(tǒng)進程、CPU等活動情況。在”procs”列下表示進程情況,”r”為進程運行隊列,”b”表示進程阻塞個數(shù),”w”表示可運行的但是在交換區(qū)(swap)內(nèi)的進程個數(shù)。”memory”表示虛存使用情況,”swap”表示交換區(qū)的可供使用的空間大小,”free”表示虛存內(nèi)未使用的空間!眕age”表示內(nèi)存頁的使用情況,”re”表示頁回收,”mf”表示鏡像錯誤,”pi”表示進入頁的數(shù)據(jù)量,”po”表示數(shù)據(jù)換出頁的大小。
3、 查看磁盤系統(tǒng)的性能
[root]$iostat tty fd0 sd0 sd1 sd21 cpu tin tout kps tps serv kps tps serv kps tps serv kps tps serv us sy wt id 0 0 0 0 0 1 0 30 0 0 0 0 0 0 0 0 0 100
命令iostat可以查看磁盤的輸入輸出,報告吞吐量、利用率、隊列長度、傳輸率等信息。對磁盤而言,”kps”表示每秒傳送的比特率,”tps”表示每秒傳送的次數(shù),”serv”表示平均服務(wù)時間。系統(tǒng)管理員還可以使用參數(shù)”-xtc”得到每個磁盤的使用的詳細信息,即”iostat -xtc”,具體可以參考系統(tǒng)提供的手冊。
4、 查看網(wǎng)絡(luò)性能
[root]$netstat -i Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue lo0 8232 loopback localhost 65 0 65 0 0 0 hme0 1500 sun450 sun450 37515 0 209 0 0 0
總的來說,系統(tǒng)管理員需要掌握系統(tǒng)配置的信息和系統(tǒng)運行狀態(tài),做到心中有數(shù)。
2.4.3 配置
了解了系統(tǒng)安全配置的所在,下一步就是學(xué)會配置。系統(tǒng)安全配置的原則是系統(tǒng)最小化原則,對系統(tǒng)資源訪問做出限制,啟用一些安全功能,限制對外的服務(wù),以增加入侵者的攻擊代價(包括時間與金錢)。
對于操作系統(tǒng)而言,通常需要系統(tǒng)管理員進行配置的工作包括:
1、 有效嚴(yán)格的系統(tǒng)訪問控制,對系統(tǒng)文件和用戶訪問權(quán)限進行嚴(yán)格的限制;
2、 完善的口令策略,對口令的長度、復(fù)雜度以及時效做出合理的限制;
3、 安全的網(wǎng)絡(luò)服務(wù),根據(jù)系統(tǒng)最小化原則關(guān)閉不必要的網(wǎng)絡(luò)服務(wù)。
我們還可以啟用系統(tǒng)的安全功能以增強系統(tǒng)的安全性,如可執(zhí)行堆棧的保護(見4.2.6)、配置Tcp Wrapper建立防火墻(見附錄)等等。
總的來說,系統(tǒng)管理員需要學(xué)會使用系統(tǒng)提供安全工具,按照系統(tǒng)最小化的原則對系統(tǒng)資源訪問做好限制,以增加入侵者的代價。
2.4.4 審計
跟蹤目前系統(tǒng)常見的嚴(yán)重漏洞,收集解決方案。因為系統(tǒng)安全是一個動態(tài)的過程,每天都可能會有新的漏洞被發(fā)現(xiàn),可能被利用來攻擊系統(tǒng)。因此,系統(tǒng)管理員需要養(yǎng)成一個好習(xí)慣,就是每天上網(wǎng)瀏覽一下有沒有出現(xiàn)新的系統(tǒng)漏洞,它的危害有多大,它是否可以通過遠程的手段進行系統(tǒng)攻擊,目前是否有可行的解決方案。
可供參考網(wǎng)絡(luò)資源如下:
<http://www.cert.org>; or <http://www.cert.org.cn>;
<http://www.securityfocus.com>;
<ftp://sunsolve1.sun.com/pub/patches/>;
<http://sunsolve1.sun.com/>;
2.4.5 借助工具
可以適當(dāng)采用一些輔助工具以減輕系統(tǒng)管理員的負擔(dān),提高效率。例如,使用個人防火墻、系統(tǒng)文件校驗工具、日志審核工具、漏洞掃描工具、口令破解工具。
1、 個人防火墻:目前在Unix平臺上有一些防火墻軟件包,這些工具都可以在一定程度上保護系統(tǒng)安全,并能夠及時提供報警和日志功能。
2、 系統(tǒng)文件校驗工具:重要的系統(tǒng)文件,尤其是啟動時運行的文件是需要定期進行校驗看是否被篡改。一個簡單可行的方法是對重要文件進行備份,以備在出現(xiàn)可疑情況的時候查看文件大小是否有變化。
3、 日志審核工具:借助日志的審核工具可以大大提高系統(tǒng)管理員審核日志的效率。
4、 漏洞掃描工具:使用漏洞掃描工具可以對系統(tǒng)進行模擬攻擊以發(fā)現(xiàn)安全隱患,有針對性對系統(tǒng)配置做調(diào)整。
5、 口令破解工具:使用口令破解工具有助于及時發(fā)現(xiàn)弱口令的問題,盡可能避免弱口令問題的出現(xiàn)。
注意:掃描工具和口令破解工具的使用必須在授權(quán)下才能進行。 |
|