Ubuntu Oracle配置安全指南
导读:Ubuntu环境下Oracle数据库安全配置指南 在Ubuntu系统上配置Oracle数据库安全需从操作系统层、数据库层、网络层三个维度综合防护,覆盖权限管理、加密传输、审计监控等关键环节,以下是具体实施步骤: 一、操作系统级安全配置 1....
Ubuntu环境下Oracle数据库安全配置指南
在Ubuntu系统上配置Oracle数据库安全需从操作系统层、数据库层、网络层三个维度综合防护,覆盖权限管理、加密传输、审计监控等关键环节,以下是具体实施步骤:
一、操作系统级安全配置
1. 系统更新与补丁管理
定期更新Ubuntu系统和Oracle数据库,修复已知安全漏洞。执行以下命令更新系统:
sudo apt-get update &
&
sudo apt-get upgrade -y
对于Oracle数据库,需通过Oracle官方补丁门户下载并应用最新安全补丁,确保数据库版本无已知高危漏洞。
2. 用户与权限管理
- 创建专用Oracle用户:避免以root用户运行Oracle服务,创建
oracle用户并加入oinstall(安装组)、dba(数据库管理员组)等必要组:sudo groupadd oinstall dba sudo useradd -g oinstall -G dba -s /bin/bash oracle sudo passwd oracle # 设置强密码 - 强化密码策略:修改
/etc/login.defs文件,设置密码有效期(如90天)、最小长度(如12位)、锁定时间(如1天)等参数;使用chage命令为用户设置密码过期提醒:sudo chage -M 90 -m 7 -W 3 oracle # 密码有效期90天,提前7天提醒,过期3天锁定 - 限制root访问:禁用root用户SSH登录,修改
/etc/ssh/sshd_config文件:
重启SSH服务使配置生效:PermitRootLogin nosudo systemctl restart sshd。
3. 文件与目录权限
Oracle安装目录(如/u01/app/oracle/product/19.0.0/dbhome_1)和数据目录(如/u01/oradata)需严格控制权限,防止未授权访问:
sudo chown -R oracle:oinstall /u01/app/oracle /u01/oradata
sudo chmod -R 750 /u01/app/oracle /u01/oradata
关键配置文件(如listener.ora、tnsnames.ora)权限设置为640,仅允许Oracle用户和dba组读取:
sudo chmod 640 $ORACLE_HOME/network/admin/*.ora
sudo chown oracle:dba $ORACLE_HOME/network/admin/*.ora
```。
## 二、Oracle数据库级安全配置
### 1. 用户角色与权限管理
- **最小权限原则**:仅为用户分配完成工作所需的最小权限,避免授予`DBA`等高权限角色。例如,创建普通用户时仅授权`SELECT`、`INSERT`权限:
```sql
CREATE USER app_user IDENTIFIED BY StrongPassword;
GRANT CONNECT, RESOURCE TO app_user;
- 禁用默认账户:锁定Oracle默认账户(如
SYS、SYSTEM),修改其密码并限制登录方式:ALTER USER SYS IDENTIFIED BY NewStrongPassword ACCOUNT LOCK; ALTER USER SYSTEM IDENTIFIED BY NewStrongPassword ACCOUNT LOCK; - 密码策略强化:修改数据库默认profile,设置密码复杂度(如包含大小写字母、数字、特殊字符)、长度(≥12位)、有效期(≤90天):
ALTER PROFILE DEFAULT LIMIT PASSWORD_LENGTH 12 PASSWORD_LIFE_TIME 90 PASSWORD_REUSE_MAX 5 PASSWORD_VERIFY_FUNCTION ORACLE_VERIFY_FUNCTION; ```。
2. 网络与连接安全
- 配置监听器安全:修改
$ORACLE_HOME/network/admin/listener.ora文件,限制监听器端口(默认1521)仅允许受信任IP访问,禁用动态注册:重启监听器使配置生效:LISTENER = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) SECURE_REGISTER = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))lsnrctl stop & & lsnrctl start。 - 启用SSL加密:为Oracle客户端与服务端通信配置SSL/TLS,生成证书并修改
sqlnet.ora文件:将证书导入Oracle钱包,确保客户端连接时使用SQLNET.AUTHENTICATION_SERVICES = (TCPS) SSL_CLIENT_AUTHENTICATION = TRUE SSL_VERSION = 1.2TCPS协议。
3. 数据加密
- 传输加密:通过SSL/TLS加密客户端与数据库之间的数据传输,防止中间人攻击(如数据窃取、篡改)。
- 存储加密:使用Oracle透明数据加密(TDE)对敏感表空间或列(如用户密码、银行卡号)进行加密,保护数据在存储介质上的安全。启用TDE需创建钱包并加密目标对象。
4. 审计与监控
- 启用审计功能:配置Oracle审计策略,记录关键操作(如
SELECT * FROM sensitive_table、DROP TABLE、用户登录/注销),便于追溯异常行为:查看审计日志:AUDIT SELECT TABLE, INSERT TABLE, UPDATE TABLE, DELETE TABLE BY ACCESS; AUDIT CREATE SESSION, DROP TABLE, ALTER SYSTEM BY SYS, SYSTEM;SELECT * FROM DBA_AUDIT_TRAIL WHERE TIMESTAMP > SYSDATE - 7; - 实时监控:使用Oracle Enterprise Manager(OEM)或第三方工具(如Zabbix)监控数据库性能、登录行为、空间使用等指标,设置异常告警(如频繁登录失败、磁盘空间不足)。
三、网络安全配置
1. 防火墙设置
使用Ubuntu自带的ufw(Uncomplicated Firewall)限制对Oracle数据库端口的访问,仅允许受信任IP(如应用服务器IP)访问1521端口:
sudo ufw allow from 192.168.1.0/24 to any port 1521 proto tcp
sudo ufw enable
禁止其他不必要的端口(如FTP、Telnet),减少攻击面。
2. 禁用不必要的服务
通过systemctl命令禁用Ubuntu系统中未使用的服务(如Apache、MySQL、CUPS),降低系统被攻击的风险:
sudo systemctl stop apache2 mysql cups
sudo systemctl disable apache2 mysql cups
```。
## 四、持续维护与优化
- **定期备份**:使用Oracle RMAN(Recovery Manager)工具定期备份数据库(全备+增量备),备份文件存储在安全位置(如异地服务器、云存储),并测试备份的可恢复性。
- **日志审查**:每日检查系统日志(`/var/log/syslog`、`/var/log/auth.log`)和Oracle审计日志,分析异常行为(如大量失败登录、未授权访问),及时响应安全事件。
- **安全评估**:每季度进行一次安全评估,使用漏洞扫描工具(如Nessus、OpenVAS)检测系统和数据库漏洞,根据评估结果调整安全策略。
以上配置需根据Ubuntu和Oracle的具体版本(如Ubuntu 22.04 LTS、Oracle 19c/21c)进行调整,执行前请参考官方文档并备份重要数据。安全性是持续过程,需定期更新策略以应对新威胁。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Oracle配置安全指南
本文地址: https://pptw.com/jishu/735411.html
