centos下oracle如何进行安全管理
导读:一、操作系统层面安全配置 系统标识与内核参数优化:修改/etc/redhat-release文件内容(如替换为自定义标识),避免泄露系统版本信息;编辑/etc/sysctl.conf文件,添加或调整内核参数以提升性能与安全,例如fs.ai...
一、操作系统层面安全配置
- 系统标识与内核参数优化:修改
/etc/redhat-release
文件内容(如替换为自定义标识),避免泄露系统版本信息;编辑/etc/sysctl.conf
文件,添加或调整内核参数以提升性能与安全,例如fs.aio-max-nr = 1048576
(异步I/O最大数量)、fs.file-max = 6815744
(系统最大文件描述符数)、kernel.sem = 250 32000 100 128
(信号量参数)、net.ipv4.ip_local_port_range = 9000-65500
(本地端口范围)、net.ipv4.icmp_echo_ignore_broadcasts = 1
(忽略广播ICMP请求)等,修改后执行sysctl -p
使配置生效。 - 用户与组管理:创建专用Oracle用户组(
oinstall
用于安装、dba
用于数据库管理)和用户(如oracle
),并将用户加入对应组:groupadd oinstall; groupadd dba; useradd -g dba -G oinstall oracle; passwd oracle
(设置强密码)。修改/etc/security/limits.conf
文件,限制用户资源使用:oracle soft nproc 2047
(软进程数限制)、oracle hard nproc 16384
(硬进程数限制)、oracle soft nofile 1024
(软文件描述符限制)、oracle hard nofile 65536
(硬文件描述符限制),防止资源滥用。 - SELinux与防火墙配置:SELinux建议设置为
permissive
模式(setenforce 0
)或禁用(修改/etc/selinux/config
文件),避免其对Oracle服务的过度限制;使用firewalld
配置端口访问,仅开放Oracle必要端口(如监听端口1521、企业管理器端口1158),例如:firewall-cmd --permanent --add-port=1521/tcp; firewall-cmd --permanent --add-port=1158/tcp; firewall-cmd --reload
。关闭不必要的网络服务(如iptables
),减少攻击面。
二、Oracle数据库层面安全加固
- 身份认证与权限管理:
- 禁用远程操作系统认证:修改
$ORACLE_HOME/network/admin/sqlnet.ora
文件,设置sqlnet.authentication_services=(NONE)
,避免客户端通过操作系统自动认证;执行ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
(设置密码文件模式为独占)和ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE SCOPE=SPFILE;
(禁用远程OS认证),重启数据库和监听使配置生效。 - 最小权限原则:避免授予用户
DBA
等高权限角色,仅授予完成工作所需的最小权限(如SELECT
、INSERT
);撤销PUBLIC
角色对敏感程序包的执行权限(如utl_file
、utl_http
),执行REVOKE EXECUTE ON utl_file FROM PUBLIC;
,防止恶意代码执行。 - 修改默认口令:立即修改
SYS
、SYSTEM
等默认管理员账户的口令(如使用12位以上包含字母、数字、特殊字符的强密码),并锁定不需要的用户(如SCOTT
),执行ALTER USER SYS IDENTIFIED BY StrongPassword123; ALTER USER scott ACCOUNT LOCK;
。
- 禁用远程操作系统认证:修改
- 网络访问控制:
- IP限制:修改
$ORACLE_HOME/network/admin/sqlnet.ora
文件,启用IP过滤:tcp.validnode_checking=yes; tcp.invited_nodes=(192.168.1.10,192.168.1.20);
(仅允许指定IP访问),重启监听服务使配置生效。 - 修改默认端口:编辑
$ORACLE_HOME/network/admin/listener.ora
文件,修改监听端口(如从1521改为11251),执行lsnrctl stop; lsnrctl start
重启监听;同步修改客户端连接字符串,确保应用正常访问。 - 限制远程管理:通过
lsnrctl
工具为监听器设置管理口令(SET PASSWORD
命令),防止未授权修改监听配置;关闭监听器的远程管理功能(仅在必要时开启),降低管理接口风险。
- IP限制:修改
- 数据安全保护:
- 透明数据加密(TDE):使用TDE加密表空间或列级敏感数据(如身份证号、银行卡号),执行
CREATE TABLESPACE encrypt_ts ENCRYPTION DEFAULT STORAGE(ENCRYPT);
创建加密表空间,或ALTER TABLE employees MODIFY (salary ENCRYPT);
加密表列,确保静态数据即使泄露也无法读取。 - 审计配置:启用数据库审计,记录用户活动(如登录、数据修改),执行
ALTER SYSTEM SET audit_trail=DB SCOPE=SPFILE;
(设置审计轨迹为数据库),重启数据库后,通过AUDIT SELECT ON employees BY user1;
审计特定操作,定期审查DBA_AUDIT_TRAIL
视图中的审计日志。
- 透明数据加密(TDE):使用TDE加密表空间或列级敏感数据(如身份证号、银行卡号),执行
- 漏洞管理与补丁更新:定期检查Oracle官方安全公告(通过My Oracle Support或OTN网站),及时下载并应用安全补丁(如CPU、PSU补丁),修复已知漏洞;在测试环境验证补丁兼容性后,再部署到生产环境,避免补丁引发的业务问题。
三、监控与维护
- 审计日志分析:定期查询
DBA_AUDIT_TRAIL
视图,分析异常活动(如频繁的失败登录、未授权的数据访问),例如:SELECT USERNAME, TIMESTAMP, ACTION_NAME, OBJ_NAME FROM DBA_AUDIT_TRAIL WHERE STATUS='FAILED' ORDER BY TIMESTAMP DESC;
,及时发现潜在的安全威胁。 - 用户权限审查:定期审查用户权限,撤销未使用的权限(如用户
user1
不再需要SELECT
权限),执行REVOKE SELECT ON employees FROM user1;
;使用角色管理权限(如创建data_reader
角色,授予SELECT
权限,再将角色分配给用户),简化权限管理并提高一致性。 - 备份与恢复测试:使用RMAN工具定期执行全量备份(如每周一次)和增量备份(如每天一次),例如:
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
;定期测试备份恢复流程(如模拟数据丢失场景),确保备份数据的完整性和可用性,避免因数据丢失导致业务中断。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos下oracle如何进行安全管理
本文地址: https://pptw.com/jishu/715321.html