在Linux系统上进行Oracle数据库的安全设置是确保数据库完整性和保密性的关键步骤。以下是一些重要的安全设置措施:
关闭防火墙:
# systemctl status firewalld.service
# systemctl stop firewalld.service
# systemctl disable firewalld.service
修改系统标识和内核参数:
# echo "redhat-76" > /etc/redhat-release
# echo "fs.aio-max-nr =1048576
fs.file-max=6815744
kernel.shmmni =4096
kernel.sem =25032000100128
kernel.shmall =2097152
kernel.shmmax =2147483648
net.ipv4.ip_local_port_range =9000-65500
net.ipv4.icmp_echo_ignore_broadcasts =1
net.ipv4.conf.all.rp_filter =1
net.core.rmem_default =262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048576" > /etc/sysctl.conf
# sysctl -p
创建用户和组:
# groupadd oinstall
# groupadd dba
# useradd -g dba -m oracle
# useradd -g oinstall -m oracle
# passwd oracle
# usermod -a -G oinstall oracle
# usermod -a -G dba oracle
修改用户的安全性能设置:
/etc/security/limits.conf
文件,设置用户的安全性能。@student - maxlogins 4
oraclesoft nproc 2047
oraclehard nproc 16384
oraclesoft nofile 1024
oraclehard nofile 65536
修改用户环境变量:
/home/oracle/.bashrc
文件。export ORACLE_BASE=/data/oracle
export ORACLE_HOME=/product/11.2.0/db_1
export ORACLE_BASE /product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
数据字典保护:
SQL> alter system set O7_DICTIONARY_ACCESSIBILITY = FALSE;
限制DBA组中的用户数量:
userdel
命令删除多余的DBA组中的操作系统用户,只留一个Oracle安装用户。设置数据库口令复杂度:
PASSWORD_VERIFY_FUNCTION (PASSWORD_POLICY (PASSWORD_LIFE_TIME 90 PASSWORD_REUSE_TIME 0 PASSWORD_REUSE_MAX UNLIMITED FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 1 / 24 PASSWORD_GRACE_TIME 10 PASSWORD_VERIFY_FUNCTION verify_function))
启用数据库审计:
SQL> alter system set audit_trail='DB or OS' scope=spfile;
配置可信IP地址访问控制:
ORACLE_HOME/network/admin/sqlnet.ora
文件,添加或修改如下配置。tcp.validnode_checking = yes
tcp.invited_nodes = (192.168.1.0, 192.168.1.1)
网络传输数据加密:
sqlnet.encryption required
设置连接数:
SQL> alter system set processes=200 scope=spfile;
通过实施上述安全设置和最佳实践,可以显著提高Oracle数据库的安全性,保护数据免受未授权访问和各种网络威胁。