目錄
一、服務器基線
1. 環境與軟硬件規范
1.1. 運行環境
1.2. 軟件版本
1.3. ASM磁盤組
2. 操作系統安裝規范
2.1. 字符集
2.2. 時區
3. 操作系統配置規范
3.1. 系統服務
3.2. SELinux
3.3. 透明大頁
3.4. NTP配置
3.5. 多路徑軟件配置
3.6. 系統內核參數
3.7. SHELL配置
4. ORACLE數據庫配置規范
4.1. 表空間配置規范
4.2. 數據文件管理規范
4.3. ASM實例參數調整
4.4. 數據庫參數調整
4.5. Redo log配置規范
4.6. 控制文件參數調整
4.7. 監聽器端口調整
4.8. Oracle用戶與密碼過期調整
4.9. 密碼錯誤10次鎖定調整
5. 安全基線配置
5.1. SNMP服務配置
5.2. 禁用ctrl+alt+del組合鍵
5.3. 鎖定用戶
5.4. 配置賬戶認證失敗次數限制
5.5. 配置SSH方式賬戶認證失敗次數限制
5.6. 配置記錄用戶對設備的操作(pacct)
5.7. 配置安全事件日志
5.8. 取消重要文件suid和sgid權限
5.9. 檢查需關閉的服務
5.10. 配置su權限
5.11. 配置數據庫用戶權限
一、服務器基線
1. 環境與軟硬件規范
1.1. 運行環境
| 序號 |
名稱 |
規范 |
備注 |
| 1 |
高可用模式 |
數據庫集群 |
|
| 2 |
數據庫集群方式 |
ORACLE RAC |
|
| 3 |
RAC存儲管理方式 |
ORACLE ASM |
|
| 4 |
操作系統 |
Linux |
64bit |
1.2. 軟件版本
| 序號 |
運行環境名稱 |
運行環境統一規范 |
備注 |
| 1 |
ORACLE GI初始版本 |
GRID 11.2.0.4.0 |
按年度動態更新 |
| 2 |
ORACLE GI PSU |
PSU 11.2.0.4.10 |
按年度動態更新 |
| 3 |
ORACLE DATABASE初始版本 |
DATABASE 11.2.0.4.0 |
按年度動態更新 |
| 4 |
ORACLE DATABASE PSU |
PSU 11.2.0.4.10 |
按年度動態更新 |
| 5 |
操作系統初始版本 |
RHEL 6.8 |
按年度動態更新 |
1.3. ASM磁盤組
| 序號 |
磁盤組名稱 |
用途 |
冗余方式 |
RAID類型 |
建議設置 |
| 1 |
+DATA01 |
存放業務數據 |
外部冗余 |
RAID 5 |
按資源分配的方式單為依據來划分大小 |
| 2 |
+ARCH |
存放歸檔日志 |
外部冗余 |
RAID 5 |
初始空間1000G,后期根據備份策略動態調整。 |
| 3 |
+OCR_VOTE |
存放VOTING DISK和OCR |
標准冗余 |
RAID 1+0 |
配置3塊或以上大小相同的磁盤,建議大小為10GB |
| 4 |
+REDO_LOG |
存放在線日志 |
外部冗余 |
RAID 1+0 |
建議磁盤大小為10GB,日志分組見6.5小節 |
2. 操作系統安裝規范
2.1. 字符集
統一采用英文界面安裝,以保證采用英文作為操作系統缺省的語言環境。同時,在安裝附加語言支持時,選擇簡體中文。
2.2. 時區
(1)時區選擇東八區:Shanghai,Asia;
(2)系統時鍾不使用 UTC(世界協調時間);若有特殊要求,可根據實際需求調整。
3. 操作系統配置規范
3.1. 系統服務
| 序號 |
服務名稱 |
服務說明 |
建議 |
| 1 |
ip6tables |
ipv6包過濾軟件防火牆服務 |
關閉 |
| 2 |
iptables |
包過濾軟件防火牆服務 |
關閉 |
| 3 |
sshd |
ssh遠程服務 |
開啟 |
| 4 |
NTP |
時間服務器 |
開啟 |
| 5 |
Bluetooth |
藍牙服務 |
關閉 |
| 6 |
postfix |
電子郵件服務 |
關閉 |
| 7 |
cups |
cups打印機服務 |
關閉 |
| 8 |
cpuspeed |
cpu速率調整服務 |
關閉 |
| 9 |
NetworkManager |
網絡自動管理服務 |
關閉 |
| 10 |
vsftpd |
ftp服務 |
關閉 |
| 11 |
dhcpd |
dhcp服務 |
關閉 |
| 12 |
nfs |
網絡文件共享服務 |
關閉 |
| 13 |
nfslock |
nfs鎖機制服務 |
關閉 |
| 14 |
ypbind |
nis客戶端服務 |
關閉 |
3.2. SELinux
SELinux 全稱 Security Enhanced Linux,因當前生產環境采用了硬件防火牆,建議關閉SELinux安全策略,以免降低性能。
3.3. 透明大頁
透明大頁(Transparent HugePages )在RAC環境下會導致性能問題,ORACLE官方不建議使用。
3.4. NTP配置
配置NTP服務時注意啟用-x微調模式選項。
3.5. 多路徑軟件配置
(1)多路徑軟件和存儲連接要求最少兩條鏈路,設置為負載均衡模式。
(2)建議優先選用存儲廠商提供的多路徑軟件。若使用操作系統自帶的multipath配置存儲多路徑,按下面的規范進行配置:
3.6. 系統內核參數
| 序號 |
參數名 |
參數說明 |
建議值 |
| 1 |
kernel.shmmni |
共享內存段的最大數量 |
4096 |
| 2 |
kernel.shmall |
控制共享內存頁數 |
根據計算公式進行調整,物理內存*0.7*1024*1024KB/4KB |
| 3 |
kernel.shmmax |
單個共享內存段的最大值 |
根據計算公式進行調整,物理內存*0.7*1024*1024*1024 |
| 4 |
kernel.sem |
每個進程通訊需要的信號燈 |
250 32000 100 128 |
| 5 |
fs.file-max |
同時打開的文件數目 |
6815744 |
| 6 |
fs.aio-max-nr |
同時可以擁有的的異步IO請求數目 |
1048576 |
| 7 |
net.core.rmem_default |
接收套接字緩沖區默認大小 |
262144 |
| 8 |
net.core.rmem_max |
接收套接字緩沖區最大值 |
4194304 |
| 9 |
net.core.wmem_default |
發送套接字緩沖區默認大小 |
262144 |
| 10 |
net.core.wmem_max |
發送套接字緩沖區最大值 |
1048576 |
| 11 |
net.ipv4.ip_local_port_range |
端口的范圍 |
9000 65500 |
| 12 |
net.ipv4.ipfrag_high_thresh |
IP分片匯聚的最大內存用量 |
4194304 |
| 13 |
net.ipv4.ipfrag_low_thresh |
用於IP分片匯聚的最小內存用量 |
3145728 |
| 14 |
vm.min_free_kbytes |
系統虛擬內存最低保留的大小 |
512000 |
| 15 |
vm.vfs_cache_pressure |
內核回收用於directory和inode cache內存的傾向 |
200 |
| 16 |
vm.swappiness |
控制系統將內存交換到SWAP積極性 |
20 |
| 17 |
vm.nr_hugepages |
啟用大頁管理,該參數指明了內存頁數 |
DB_SGA+ASM_SGA+1GB/Hugepagesize |
3.7. SHELL配置
編輯limits.conf文件,設置grid和oracle用戶的資源限制,並把pam_limits.so加入啟動文件中以確保配置生效。
# vi /etc/pam.d/login #編輯login文件,加入以下內容
session required pam_limits.so
4. ORACLE數據庫配置規范
4.1. 表空間配置規范
| 序號 |
名稱 |
建議初始大小 |
數據文件存放位置 |
| 1 |
SYSTEM表空間 |
30G |
+DATA01 |
| 2 |
SYSAUX表空間 |
60G |
+DATA01 |
| 3 |
UNDOTBS1表空間 |
120G |
+DATA01 |
| 4 |
UNDOTBS2表空間 |
120G |
+DATA01 |
| 5 |
TEMP表空間 |
>=60G |
+DATA01 |
| 6 |
業務表空間 |
|
+DATA01 |
4.2. 數據文件管理規范
UNDO、TEMP表空間中的文件,必須關閉自動擴展;業務表空間,建議關閉自動擴展。
4.3. ASM實例參數調整
Oracle11g默認asm實例的SGA大小為272M,在實際生產過程中,經常會由於磁盤組的增加導致ASM實例提示4031錯誤。因此建議增加ASM實例的SGA大小。
| 序號 |
參數名稱 |
參數說明 |
建議值 |
| 1 |
ASM實例SGA_TARGET |
設置ASM實例SGA目標值 |
Oracle11g默認asm實例的SGA大小為272M,修改為4G
兩個節點分別操作(+ASM1根據實際名稱修改) export ORACLE_SID=+ASM1 sqlplus /as asmdba alter system set sga_max_size = 4096M scope=spfile; |
4.4. 數據庫參數調整
| 序號 |
參數名稱 |
參數說明 |
建議值 |
| 1 |
SGA_TARGET |
SGA設置目標值 |
初始值建議為:(總物理內存* 0.7) * 0.8,后續需要定期分析系統做適應性調整 |
| 2 |
PGA_AGGREGATE_TARGET |
PGA設置目標值 |
(總物理內存* 0.7) * 0.2,后續需要定期分析系統做適應性調整 |
| 3 |
SGA_MAX_SIZE |
SGA設置最大值 |
初始值建議為:(總物理內存* 0.7) * 0.8,后續需要定期分析系統做適應性調整 |
| 4 |
DB_CACHE_SIZE |
數據庫緩存大小 |
建議設置一個最小值,初始為SGA的50%左右,具體值需要根據物理內存大小、SGA大小而確定,后續需要定期分析系統做適應性調整 |
| 5 |
SHARED_POOL_SIZE |
共享池大小 |
建議設置一個最小值,初始為SGA的25%左右,具體值需要根據物理內存大小、SGA大小而確定,后續需要定期分析系統做適應性調整 |
| 6 |
MEMORY_TARGET |
AMM管理設置內存大小 |
建議值0(11G及以后版本) |
| 7 |
SESSION_CACHED_CURSOR |
會話緩存游標 |
建議初始300,具體需要根據系統特性而確定,后續需要定期分析系統做適應性調整 |
| 8 |
LOG_BUFFER |
日志緩存 |
建議初始200MB,后續需要定期分析系統做適應性調整 |
| 9 |
AUTO_SPACE_ADVISOR |
自動空間審計維護任務 |
建議停用該自動維護任務 |
| 10 |
_GC_UNDO_AFFINITY |
關閉DRM特性 |
建議值FALSE |
| 11 |
_GC_POLICT_TIME |
關閉DRM特性 |
建議值0 |
| 12 |
PARALLEL_FORCE_LOCAL |
並行跨實例查詢 |
建議值TRUE |
| 13 |
OPEN_CURSORS |
每個會話允許最大游標 |
建議初始500,后續需要定期分析系統做適應性調整 |
| 14 |
PROCESSES |
用戶進程 |
建議初始5000,具體需要根據系統特性而確定,后續需要定期分析系統做適應性調整 |
| 15 |
DB_FILES |
最大允許數據文件 |
建議2000以上(初始為200) |
| 16 |
UNDO_RETENTION |
保留過期undo段 的時間 |
建議初始10800(3小時),注意undo表空間要足夠大(初始最少120GB以上),后續需要定期分析系統做適應性調整 |
| 17 |
_OPTIMIZER_EXTENDED_CURSOR_SHARING |
關閉ACS特性 |
建議值NONE,規避ACS功能可能引起的BUG |
| 18 |
_OPTIMIZER_EXTENDED_CURSOR_SHARING_REL |
關閉ACS特性 |
建議值NONE,規避ACS功能可能引起的BUG |
| 19 |
_SERIAL_DIRECT_READ |
關閉直接路徑讀 |
建議值NEVER,關閉11G的這個新特性 |
| 20 |
RECYCLEBIN |
回收站 |
建議關閉 |
| 21 |
AWR的SNAP_INTERVAL |
采集快照間隔時間 |
建設值30分鍾 |
| 22 |
LOG_ARCHIVE_DEST_1 |
歸檔路徑 |
+ARCH |
| 23 |
LARGE_POOL_SIZE |
大池大小 |
建議設置為256M |
| 24 |
AUDIT_TRAIL |
審計痕跡 |
建議值NONE |
4.5. Redo log配置規范
| 序號 |
指標名稱 |
建議值 |
| 1 |
redo日志組個數 |
每個實例12組以上,具體需要根據系統特性而確定,后續需要定期分析系統做適應性調整 |
| 2 |
redo日志成員文件大小 |
每組大小1GB,具體需要根據系統特性而確定,后續需要定期分析系統做適應性調整 |
4.6. 控制文件參數調整
| 序號 |
指標名稱 |
建議值 |
| 1 |
控制文件個數 |
最少2個,最多3個,一個分布DATA01磁盤組,一個分布於OCR磁盤組。 |
4.7. 監聽器端口調整
為安全起見,監聽器端口不使用默認端口1521,按國網端口規范要求統一使用非缺省端口11521。
4.8. Oracle用戶與密碼過期調整
Oracle 11g版本中對用戶密碼過期等默認參數有了修改,從原來的UNLIMITED修改為有效期180天,考慮到業務系統實際情況,為避免影響業務生產,建議禁用密碼過期設置,需要將以下參數進行修改。
| alter profile default limit password_life_time unlimited; |
4.9. 密碼錯誤10次鎖定調整
用戶登錄數據庫失敗次數,默認10次,建議設置unlimited。
| alter profile default limit failed_login_attempts unlimited; |
5. 安全基線配置
5.1. SNMP服務配置
檢查是否安裝snmp服務,如果未安裝snmp服務,則認為合規,否則需要修改public默認團體字。
| vi /etc/snmp/snmpd.conf com2sec notConfigUser default public 修改為 com2sec notConfigUser default strongpass |
5.2. 禁用ctrl+alt+del組合鍵
| vi /etc/inittab 注釋如下行ca::ctrlaltdel:/sbin/shutdown***,之后重啟系統。 |
5.3. 鎖定用戶
使用usermod –L鎖定以下用戶:
adm,lp,mail,uucp,operator,games,gopher,ftp,nobody,nobody4,noaccess,listen,webservd,rpm,dbus,avahi,mailnull,smmsp,nscd,vcsa,rpc,rpcuser,nfs,sshd,pcap,ntp,haldaemon,distcache,apache,webalizer,squid,xfs,gdm,sabayon,named
| vi /etc/shadow bin,daemon,adm,lp,sync,shutdown,halt,mail,uucp,operator,games,gopher,ftp,nobody,nfsnobody密碼列的*改為!! |
5.4. 配置賬戶認證失敗次數限制
| vi /etc/pam.d/system-auth-ac 修改成以下內容: #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1 try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5 password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so auth required pam_tally.so deny=5 unlock_time=600 no_lock_time |
5.5. 配置SSH方式賬戶認證失敗次數限制
| vi /etc/pam.d/sshd 修改成以下內容: #%PAM-1.0 auth required pam_sepermit.so auth include password-auth auth required pam_tally.so deny=5 unlock_time=600 no_lock_time account required pam_nologin.so account include password-auth account required pam_tally.so password include password-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open env_params session optional pam_keyinit.so force revoke session include password-auth |
5.6. 配置記錄用戶對設備的操作(pacct)
| chkconfig psacct on service psacct start touch /var/log/pacct accton /var/log/pacct |
5.7. 配置安全事件日志
| mkdir /var/adm touch /var/adm/messages chmod 666 /var/adm/messages chmod 755 /var/adm/ /etc/init.d/rsyslog restart |
5.8. 取消重要文件suid和sgid權限
| chmod a-s /usr/bin/chage chmod a-s /usr/bin/gpasswd chmod a-s /usr/bin/wall chmod a-s /usr/bin/chfn chmod a-s /usr/bin/chsh chmod a-s /usr/bin/newgrp chmod a-s /usr/bin/write chmod a-s /usr/sbin/usernetctl chmod a-s /bin/mount chmod a-s /bin/umount chmod a-s /sbin/netreport |
5.9. 檢查需關閉的服務
| kshell、time、ntalk、lpd、sendmail、printer、klogin、nfslock、echo、discard、chargen、bootps、tftp、nfs、ypbind、ident、daytime |
5.10. 配置su權限
| mv /etc/pam.d/su /etc/pam.d/su.bak echo "auth sufficient pam_rootok.so">>/etc/pam.d/su echo "auth required pam_wheel.so group=wheel">>/etc/pam.d/su cat /etc/pam.d/su.bak >>/etc/pam.d/su chmod 644 /etc/pam.d/su chmod 644 /etc/pam.d/su.bak |
5.11. 配置數據庫用戶權限
業務賬號不允許DBA權限,僅賦予RESOURCE和connect權限。
| grant resource to username; grant connect to username; |
