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;

posted @ 2022-04-01 15:41  beawh  阅读(896)  评论(0编辑  收藏  举报