oracle 數據庫安全基線


目錄

一、服務器基線

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. 取消重要文件suidsgid權限

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. 取消重要文件suidsgid權限

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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM