首页主机资讯Ubuntu中Oracle数据库的安全设置

Ubuntu中Oracle数据库的安全设置

时间2025-10-02 02:49:03发布访客分类主机资讯浏览671
导读:Ubuntu系统中Oracle数据库的安全设置 在Ubuntu上部署Oracle数据库时,需从操作系统加固、Oracle数据库配置、网络访问控制、数据保护、监控审计五大维度构建多层安全防线,以下是具体实施步骤: 一、操作系统级安全配置 1....

Ubuntu系统中Oracle数据库的安全设置
在Ubuntu上部署Oracle数据库时,需从操作系统加固、Oracle数据库配置、网络访问控制、数据保护、监控审计五大维度构建多层安全防线,以下是具体实施步骤:

一、操作系统级安全配置

1. 系统更新与补丁管理

定期更新Ubuntu系统和Oracle数据库软件包,修复已知安全漏洞。执行以下命令更新系统:

sudo apt update &
    &
     sudo apt upgrade -y

建议安装unattended-upgrades包实现自动更新,降低未修补漏洞的风险。

2. 用户与权限管理

  • 禁用root远程登录:编辑/etc/ssh/sshd_config,设置PermitRootLogin no,并重启SSH服务:
    sudo systemctl restart sshd
    
  • 设置密码策略:通过/etc/login.defs文件定义密码规则(如最长使用90天、最小长度12位),并结合chage命令强制用户定期修改密码:
    sudo chage -M 90 -m 7 -W 14 oracle  # 强制oracle用户90天内修改密码,提前7天警告,过期14天锁定
    
  • 最小权限原则:为Oracle服务创建专用用户(如oracle),仅授予其运行数据库所需的权限,避免使用root账户运行数据库进程。

3. 文件与目录权限

Oracle安装目录(如/u01/app/oracle/product/19.0.0/dbhome_1)和数据目录(如/u01/app/oracle/oradata)需严格限制访问权限:

sudo chown -R oracle:oinstall /u01/app/oracle  # 所属用户为oracle,所属组为oinstall
sudo chmod -R 750 /u01/app/oracle             # 用户可读写执行,组可读执行,其他用户无权限

关键配置文件(如/etc/passwd/etc/shadow)需设置为仅root可读:

sudo chmod 600 /etc/shadow

4. 内核参数优化

编辑/etc/sysctl.conf,添加Oracle推荐的性能与安全参数(如限制本地端口范围、禁用IP转发):

fs.file-max = 6815744          # 最大文件描述符数
net.ipv4.ip_local_port_range = 1024 65000  # 本地端口范围
net.ipv4.tcp_fin_timeout = 30  # TCP连接超时时间(秒)
net.ipv4.ip_forward = 0        # 禁用IP转发

应用配置:

sudo sysctl -p

二、Oracle数据库自身安全配置

1. 用户角色与权限管理

  • 禁用默认账户:锁定SYS、SYSTEM等默认账户(除非必要),避免使用默认密码:
    ALTER USER SYS ACCOUNT LOCK;
        
    ALTER USER SYSTEM ACCOUNT LOCK;
        
    
  • 最小权限分配:为用户分配仅满足业务需求的权限,避免授予DBA等高权限角色。例如,创建角色app_user并授予基本权限:
    CREATE ROLE app_user;
        
    GRANT CONNECT, RESOURCE TO app_user;
        
    GRANT SELECT ON scott.emp TO app_user;
          # 仅授予特定表的查询权限
    
  • 密码策略强化:修改默认profile,设置密码复杂度(如包含大小写字母、数字、特殊字符)、有效期(90天)、锁定时间(1天):
    ALTER PROFILE DEFAULT LIMIT 
      PASSWORD_LENGTH 12 
      PASSWORD_LIFE_TIME 90 
      PASSWORD_LOCK_TIME 1 
      PASSWORD_REUSE_MAX 5 
      PASSWORD_VERIFY_FUNCTION verify_function_11G;
          -- 使用Oracle内置的密码验证函数
    

2. 数据加密

  • 传输层加密(SSL/TLS):配置Oracle Net Services使用SSL加密客户端与服务器之间的通信,防止数据被窃听。需生成证书、配置sqlnet.ora(添加SQLNET.AUTHENTICATION_SERVICES=(TCPS))和listener.ora(指定SSL端口,如8443)。
  • 存储层加密(透明数据加密,TDE):对敏感表空间或列(如用户密码、银行卡号)进行加密,即使数据文件泄露也无法直接读取。需配置Wallet(钱包)并启用TDE:
    ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/u01/app/oracle/keystore' IDENTIFIED BY "strong_password";
        
    ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY "strong_password";
        
    ALTER TABLESPACE users ENCRYPTION USING 'AES256';
        
    

3. 审计功能启用

开启Oracle审计功能,记录用户操作(如登录、数据修改、权限变更),便于事后追溯。设置审计轨迹存储在数据库(DB)和扩展格式(EXTENDED)中:

ALTER SYSTEM SET audit_trail = DB, EXTENDED SCOPE=SPFILE;
    
SHUTDOWN IMMEDIATE;
    
STARTUP;
    
-- 示例:审计所有用户对EMP表的SELECT操作
AUDIT SELECT ON scott.emp BY ACCESS;
    

定期检查审计日志(位于DBA_AUDIT_TRAIL视图),识别异常行为。

三、网络安全防护

1. 防火墙配置

使用Ubuntu自带的ufw(Uncomplicated Firewall)限制对Oracle端口的访问,仅允许受信任的IP地址访问数据库端口(默认1521)和SSH端口(默认22):

sudo ufw allow from trusted_ip to any port 1521  # 替换trusted_ip为受信任的IP地址
sudo ufw allow 22/tcp
sudo ufw enable

通过sudo ufw status验证规则是否生效。

2. SSH加固

修改SSH配置文件(/etc/ssh/sshd_config),提升远程管理安全性:

  • 修改默认端口(如2222):Port 2222
  • 禁用root登录:PermitRootLogin no
  • 仅允许密钥认证:PasswordAuthentication no
  • 设置空闲超时(如30分钟):ClientAliveInterval 1800
    重启SSH服务使配置生效:
sudo systemctl restart sshd

3. 限制网络访问

通过Oracle监听器配置限制可连接的IP地址,在listener.ora中添加TCP.VALIDNODE_CHECKING=yesTCP.INVITED_NODES=(trusted_ip1,trusted_ip2),仅允许指定IP地址连接数据库:

# listener.ora示例
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521))
    )
  )
TCP.VALIDNODE_CHECKING = YES
TCP.INVITED_NODES = (192.168.1.100, 10.0.0.5)

重启监听器使配置生效:

lsnrctl stop
lsnrctl start

四、监控与维护

1. 日志监控

定期检查Ubuntu系统日志(/var/log/syslog/var/log/auth.log)和Oracle告警日志(位于$ORACLE_BASE/diag/rdbms/< db_name> /< instance_name> /trace/alert_< instance_name> .log),监控异常登录、权限变更、数据库错误等信息。

2. 安全更新

定期检查Oracle官方安全公告(如My Oracle Support),及时应用数据库补丁,修复已知漏洞。建议设置自动补丁提醒,避免遗漏关键更新。

3. 备份与恢复

制定定期备份策略(如每日增量备份、每周全量备份),使用RMAN(Recovery Manager)工具备份数据库,并将备份文件存储在异地或云存储中。定期测试备份的可恢复性,确保在发生安全事件(如数据篡改、删除)时能够快速恢复。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu中Oracle数据库的安全设置
本文地址: https://pptw.com/jishu/716573.html
如何更新Debian LNMP软件 Ubuntu如何实现Oracle数据恢复

游客 回复需填写必要信息