Github 傳送門:Miscellaneous/基線檢查&加固/, 鏈接中給出了一些。
【檢測項】
以在CentOS 7.2上進行測試,檢測項如下。
2 操作系統 2.1 帳號管理 2.1.1 檢查是否設置除root之外UID為0的用戶 2.1.2 檢查是否按用戶分配賬號 2.1.3 檢查是否刪除與設備運行、維護等工作無關的賬號 2.2 口令策略 2.2.1 檢查是否設置口令生存周期 2.2.2 檢查是否設置口令更改最小間隔天數 2.2.3 檢查設備密碼復雜度策略 2.2.4 檢查是否設置口令過期前警告天數 2.2.5 檢查是否存在空口令賬號 2.2.6 檢查密碼重復使用次數限制 2.2.7 檢查賬戶認證失敗次數限制 2.3 認證授權 2.3.1 檢查用戶目錄缺省訪問權限設置 2.3.2 檢查是否設置SSH登錄前警告Banner 2.4 日志審計 2.4.1 檢查是否對登錄進行日志記錄 2.4.2 檢查是否啟用cron行為日志功能 2.4.3 檢查是否配置遠程日志功能 2.4.4 檢查是否配置su命令使用情況記錄 2.4.5 檢查日志文件權限設置 2.4.6 檢查安全事件日志配置 2.5 文件權限 2.5.1 檢查FTP用戶上傳的文件所具有的權限 2.5.2 檢查重要目錄或文件權限設置 2.6 網絡通信 2.6.1 檢查是否禁止root用戶遠程登錄 2.6.2 檢查使用IP協議遠程維護的設備是否配置SSH協議,禁用Telnet協議 2.6.3 檢查是否修改SNMP默認團體字 2.6.4 檢查是否禁止root用戶登錄FTP 2.6.5 檢查是否使用PAM認證模塊禁止wheel組之外的用戶su為root 2.7 其他配置 2.7.1 檢查是否禁止匿名用戶登錄FTP 2.7.2 檢查是否刪除了潛在危險文件 2.7.3 檢查是否設置命令行界面超時退出 2.7.4 檢查系統是否禁用Ctrl+Alt+Delete組合鍵 2.7.5 檢查root用戶的path環境變量 2.7.6 檢查歷史命令設置 2.7.7 檢查是否設置SSH成功登錄后Banner 2.7.8 檢查是否限制FTP用戶登錄后能訪問的目錄 2.7.9 檢查是否關閉數據包轉發功能 2.7.10 檢查別名文件/etc/aliase 2.7.11 檢查是否使用NTP(網絡時間協議)保持時間同步 2.7.12 檢查是否限制遠程登錄IP范圍 2.7.13 檢查NFS(網絡文件系統)服務配置 2.7.14 檢查是否配置定時自動屏幕鎖定 2.7.15 檢查是否安裝chkrootkit進行系統監測 2.7.16 檢查是否安裝OS補丁 2.7.17 檢查FTP banner設置 2.7.18 檢查Telnet banner設置 2.7.19 檢查系統內核參數配置 2.7.20 檢查系統openssh安全配置 2.7.21 檢查系統coredump設置 2.7.22 檢查是否關閉不必要的服務和端口
【輸出顯示】
腳本中,有做文字顏色輸出設定,可能會更炫一點。
# ================ Global function for print result =================== # 綠色字體輸出 pass=$(($pass+1)) print_pass(){ echo -e "\033[32m檢測結果 ==> PASS \033[0m" } # 紅色字體輸出 fail=$(($fail+1)) print_fail(){ echo -e "\033[31m檢測結果 ==> FAIL \033[0m" } # 黃色字體輸出 print_manual_check(){ echo -e "\033[33m請手工檢測 ==> Manual \033[0m" } # 藍色字體輸出 print_info(){ echo -e "\033[34m$1 \033[0m" } # 紫色字體輸出 print_check_point(){ echo "" echo -e "\033[35m[No.$1] $2 \033[0m" echo "------------------------------------------------------------------------" } print_summary(){ print_info "---------------------------- Summary -----------------------------" echo -e "\033[35m全部檢測項: $1 \033[0m" echo -e "\033[32m通過檢測項: $2 \033[0m" echo -e "\033[31m失敗檢測項: $3 \033[0m" echo -e "\033[33m手工檢測項: $4 \033[0m" print_info "------------------------------------------------------------------" }
【檢測項示例代碼】
print_info "---------------------- 正在執行操作系統基線檢查 ----------------------" index=0 # 檢測項編號 pass=0 # 通過的檢測項數 fail=0 # 未通過的檢測項數 manual=0 # 需手工復核的檢測項數 check_point="帳號管理-1:檢查是否設置除root之外UID為0的用戶" index=$(($index+1)) print_check_point $index $check_point result=`/bin/cat /etc/passwd | /bin/awk -F: '($3 == 0) { print $1 }'` print_info "UID為0的用戶如下:" print_info "[ $result ]" if [ "root" = $result ]; then pass=$(($pass+1)) print_pass else fail=$(($fail+1)) print_fail fi
【輸出示例】
... 以上省略幾百行 [No.45] 其他配置-20:檢查系統openssh安全配置 ------------------------------------------------------------------------ X11Forwarding => no MaxAuthTries => 4 IgnoreRhosts => yes HostbasedAuthentication => no PermitEmptyPasswords => no 檢測結果 ==> PASS [No.46] 其他配置-21:檢查系統coredump設置 ------------------------------------------------------------------------ 設置* soft core、* hard core為0,且注釋掉ulimit -S -c 0 > /dev/null 2>&1 檢測結果 ==> FAIL [No.47] 其他配置-22:檢查是否關閉不必要的服務和端口 ------------------------------------------------------------------------ ==>please check the output of the following command: # chkconfig --list 請手工檢測 ==> Manual ---------------------------- Summary ----------------------------- 全部檢測項: 47 通過檢測項: 24 失敗檢測項: 15 手工檢測項: 8 ------------------------------------------------------------------
也有做簡單的數據統計,便於了解大致的檢測項的符合情況。
以上,是操作系統的部分...
后續更新將直接在Github:Miscellaneous/基線檢查&加固/ 上直接更新,本文將不會更新。