Linux主機操作系統加固規范
目 錄
第1章 概述... 1
1.1 目的... 1
1.2 適用范圍... 1
1.3 適用版本... 1
1.4 實施... 1
1.5 例外條款... 1
第2章 賬號管理、認證授權... 2
2.1 賬號... 2
2.1.1 用戶口令設置... 2
2.1.2 root用戶遠程登錄限制... 2
2.1.3 檢查是否存在除root之外UID為0的用戶... 3
2.1.4 root用戶環境變量的安全性... 3
2.2 認證... 4
2.2.1 遠程連接的安全性配置... 4
2.2.2 用戶的umask安全配置... 4
2.2.3 重要目錄和文件的權限設置... 4
2.2.4 查找未授權的SUID/SGID文件... 5
2.2.5 檢查任何人都有寫權限的目錄... 6
2.2.6 查找任何人都有寫權限的文件... 6
2.2.7 檢查沒有屬主的文件... 7
2.2.8 檢查異常隱含文件... 7
第3章 日志審計... 9
3.1 日志... 9
3.1.1 syslog登錄事件記錄... 9
3.2 審計... 9
3.2.1 Syslog.conf的配置審核... 9
第4章 系統文件... 11
4.1 系統狀態... 11
4.1.1 系統core dump狀態... 11
第1章 概述
1.1 適用范圍
本配置標准的使用者包括:服務器系統管理員、應用管理員、網絡安全管理員。
1.2 適用版本
LINUX系列服務器;
第2章 賬號管理、認證授權
2.1 賬號
2.1.1 用戶口令設置
| 安全基線項目名稱 |
操作系統Linux用戶口令安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-01-01 |
| 安全基線項說明 |
帳號與口令-用戶口令設置 |
| 檢測操作步驟 |
1、詢問管理員是否存在如下類似的簡單用戶密碼配置,比如: root/root, test/test, root/root1234 2、執行:more /etc/login,檢查PASS_MAX_DAYS/PASS_MIN_LEN/PASS_MIN_DAYS/PASS_WARN_AGE參數 3、執行:awk -F: '($2 == "") { print $1 }' /etc/shadow, 檢查是否存在空口令賬號 |
| 基線符合性判定依據 |
建議在/etc/login文件中配置:PASS_MIN_LEN=6 不允許存在簡單密碼,密碼設置符合策略,如長度至少為6 不存在空口令賬號 |
| 備注 |
|
2.1.2 root用戶遠程登錄限制
| 安全基線項目名稱 |
操作系統Linux遠程登錄安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-01-02 |
| 安全基線項說明 |
帳號與口令-root用戶遠程登錄限制 |
| 檢測操作步驟 |
執行:more /etc/securetty,檢查Console參數 |
| 基線符合性判定依據 |
建議在/etc/securetty文件中配置:CONSOLE = /dev/tty01 |
| 備注 |
|
2.1.3 檢查是否存在除root之外UID為0的用戶
| 安全基線項目名稱 |
操作系統Linux超級用戶策略安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-01-03 |
| 安全基線項說明 |
帳號與口令-檢查是否存在除root之外UID為0的用戶 |
| 檢測操作步驟 |
執行:awk -F: '($3 == 0) { print $1 }' /etc/passwd |
| 基線符合性判定依據 |
返回值包括“root”以外的條目,則低於安全要求; |
| 備注 |
補充操作說明 UID為0的任何用戶都擁有系統的最高特權,保證只有root用戶的UID為0 |
2.1.4 root用戶環境變量的安全性
| 安全基線項目名稱 |
操作系統Linux超級用戶環境變量安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-01-04 |
| 安全基線項說明 |
帳號與口令-root用戶環境變量的安全性 |
| 檢測操作步驟 |
執行:echo $PATH | egrep '(^|:)(\.|:|$)',檢查是否包含父目錄, 執行:find `echo $PATH | tr ':' ' '` -type d \( -perm -002 -o -perm -020 \) -ls,檢查是否包含組目錄權限為777的目錄 |
| 基線符合性判定依據 |
返回值包含以上條件,則低於安全要求; find `echo $PATH | tr ':' ' '` -type d \( -perm -777 -o -perm -777 \) -ls |
| 注 |
補充操作說明 確保root用戶的系統路徑中不包含父目錄,在非必要的情況下,不應包含組權限為777的目錄 |
2.1.5 遠程連接的安全性配置
| 安全基線項目名稱 |
操作系統Linux遠程連接安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-02-01 |
| 安全基線項說明 |
帳號與口令-遠程連接的安全性配置 |
| 檢測操作步驟 |
執行:find / -name .netrc,檢查系統中是否有.netrc文件, 執行:find / -name .rhosts ,檢查系統中是否有.rhosts文件 |
| 基線符合性判定依據 |
返回值包含以上條件,則低於安全要求; |
| 備注 |
補充操作說明 如無必要,刪除這兩個文件 |
2.1.6 用戶的umask安全配置
| 安全基線項目名稱 |
操作系統Linux用戶umask安全基線要求項 |
| 安全基線項說明 |
帳號與口令-用戶的umask安全配置 |
| 檢測操作步驟 |
執行:more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /etc/bashrc檢查是否包含umask值 |
| 基線符合性判定依據 |
umask值是默認的,則低於安全要求 |
| 備注 |
補充操作說明 直接vi /etc/bashrc 建議設置用戶的默認umask=077 數據庫機器不裝。 |
2.1.7 重要目錄和文件的權限設置
| 安全基線項目名稱 |
操作系統Linux目錄文件權限安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-02-03 |
| 安全基線項說明 |
文件系統-重要目錄和文件的權限設置 |
| 檢測操作步驟 |
執行以下命令檢查目錄和文件的權限設置情況: ls –l /etc/ ls –l /etc/rc.d/init.d/ ls –l /tmp ls –l /etc/inetd.conf ls –l /etc/passwd ls –l /etc/shadow ls –l /etc/group ls –l /etc/security ls –l /etc/services ls -l /etc/rc*.d |
| 基線符合性判定依據 |
若權限過低,則低於安全要求; |
| 備注 |
補充操作說明 對於重要目錄,建議執行如下類似操作: # chmod -R 750 /etc/rc.d/init.d/* 這樣只有root可以讀、寫和執行這個目錄下的腳本。 |
2.1.8 查找未授權的SUID/SGID文件
| 安全基線項目名稱 |
操作系統Linux SUID/SGID文件安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-02-04 |
| 安全基線項說明 |
文件系統-查找未授權的SUID/SGID文件 |
| 檢測操作步驟 |
用下面的命令查找系統中所有的SUID和SGID程序,執行: for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do find / \( -perm -04000 -o -perm -02000 \) -type f -xdev -print Done |
| 基線符合性判定依據 |
若存在未授權的文件,則低於安全要求; |
| 備注 |
補充操作說明 建議經常性的對比suid/sgid文件列表,以便能夠及時發現可疑的后門程序 |
2.1.9 檢查任何人都有寫權限的目錄
| 安全基線項目名稱 |
操作系統Linux目錄寫權限安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-02-05 |
| 安全基線項說明 |
文件系統-檢查任何人都有寫權限的目錄 |
| 檢測操作步驟 |
在系統中定位任何人都有寫權限的目錄用下面的命令: for PART in `awk '($3 == "ext2" || $3 == "ext3") \ { print $2 }' /etc/fstab`; do find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print Done |
| 基線符合性判定依據 |
若返回值非空,則低於安全要求; |
| 備注 |
|
2.1.10 查找任何人都有寫權限的文件
| 安全基線項目名稱 |
操作系統Linux文件寫權限安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-02-06 |
| 安全基線項說明 |
文件系統-查找任何人都有寫權限的文件 |
| 檢測操作步驟 |
在系統中定位任何人都有寫權限的文件用下面的命令: for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do find $PART -xdev -type f \( -perm -0002 -a ! -perm -1000 \) -print Done |
| 基線符合性判定依據 |
若返回值非空,則低於安全要求; |
| 備注 |
|
2.1.11 檢查沒有屬主的文件
| 安全基線項目名稱 |
操作系統Linux文件所有權安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-02-07 |
| 安全基線項說明 |
文件系統-檢查沒有屬主的文件 |
| 檢測操作步驟 |
定位系統中沒有屬主的文件用下面的命令: for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do find $PART -nouser -o -nogroup -print done 注意:不用管“/dev”目錄下的那些文件。 |
| 基線符合性判定依據 |
若返回值非空,則低於安全要求; |
| 備注 |
補充操作說明 發現沒有屬主的文件往往就意味着有黑客入侵你的系統了。不能允許沒有主人的文件存在。如果在系統中發現了沒有主人的文件或目錄,先查看它的完整性,如果一切正常,給它一個主人。有時候卸載程序可能會出現一些沒有主人的文件或目錄,在這種情況下可以把這些文件和目錄刪除掉。 |
2.1.12 檢查異常隱含文件
| 安全基線項目名稱 |
操作系統Linux隱含文件安全基線要求項 |
| 安全基線編號 |
SBL-Linux-02-02-08 |
| 安全基線項說明 |
文件系統-檢查異常隱含文件 |
| 檢測操作步驟 |
用“find”程序可以查找到這些隱含文件。例如: # find / -name ".. *" -print –xdev # find / -name "…*" -print -xdev | cat -v 同時也要注意象“.xx”和“.mail”這樣的文件名的。(這些文件名看起來都很象正常的文件名) |
| 基線符合性判定依據 |
若返回值非空,則低於安全要求; |
| 備注 |
補充操作說明 在系統的每個地方都要查看一下有沒有異常隱含文件(點號是起始字符的,用“ls”命令看不到的文件),因為這些文件可能是隱藏的黑客工具或者其它一些信息(口令破解程序、其它系統的口令文件,等等)。在UNIX下,一個常用的技術就是用一些特殊的名,如:“…”、“.. ”(點點空格)或“..^G”(點點control-G),來隱含文件或目錄。 |
第3章 日志審計
3.1 日志
3.1.1 syslog登錄事件記錄
| 安全基線項目名稱 |
操作系統Linux登錄審計安全基線要求項 |
| 安全基線編號 |
SBL-Linux-03-01-01 |
| 安全基線項說明 |
日志審計-syslog登錄事件記錄 |
| 檢測操作步驟 |
執行命令:more /etc/syslog.conf 查看參數authpriv值 |
| 基線符合性判定依據 |
若未對所有登錄事件都記錄,則低於安全要求; |
| 備注 |
|
3.2 審計
3.2.1 Syslog.conf的配置審核
| 安全基線項目名稱 |
操作系統Linux配置審計安全基線要求項 |
| 安全基線編號 |
SBL-Linux-03-02-01 |
| 安全基線項說明 |
日志審計-Syslog.conf的配置審核 |
| 檢測操作步驟 |
執行:more /etc/syslog.conf,查看是否設置了下列項: kern.warning;*.err;authpriv.none\t@loghost *.info;mail.none;authpriv.none;cron.none\t@loghost *.emerg\t@loghost local7.*\t@loghost |
| 基線符合性判定依據 |
若未設置,則低於安全要求; |
| 備注 |
補充操作說明 建議配置專門的日志服務器,加強日志信息的異地同步備份 |
第4章 系統文件
4.1 系統狀態
4.1.1 系統core dump狀態
| 安全基線項目名稱 |
操作系統Linux core dump 狀態安全基線要求項 |
| 安全基線編號 |
SBL-Linux-04-01-01 |
| 安全基線項說明 |
系統文件-系統core dump狀態 |
| 檢測操作步驟 |
執行:more /etc/security/limits.conf 檢查是否包含下列項: * soft core 0 * hard core 0 |
| 基線符合性判定依據 |
若不存在,則低於安全要求 |
| 備注 |
補充操作說明 core dump中可能包括系統信息,易被入侵者利用,建議關閉 |
