定期更新Ubuntu系统和Oracle数据库软件包,修复已知安全漏洞。执行sudo apt update && sudo apt upgrade更新系统;安装unattended-upgrades包配置自动更新,确保系统始终运行最新安全版本。
/etc/ssh/sshd_config文件,设置PermitRootLogin no,禁止root用户通过SSH远程登录,降低账户被暴力破解的风险。/etc/login.defs文件配置密码最长使用天数(如PASS_MAX_DAYS 90)、密码到期警告天数(如PASS_WARN_AGE 7);使用chage命令强制用户定期更换密码(如chage -M 90 oracle)。oracle)用于管理Oracle数据库,避免使用root账户;仅为该用户授予完成工作所需的最低权限(如sudo权限仅用于系统管理任务)。sudo ufw allow ssh允许SSH连接(用于远程管理),sudo ufw allow 1521/tcp允许Oracle数据库默认端口(1521),然后启用防火墙(sudo ufw enable),限制仅受信任IP地址访问数据库端口。/etc/ssh/sshd_config文件,将SSH默认端口(22)更改为非标准端口(如Port 2222);设置PasswordAuthentication no启用密钥认证(需提前配置SSH密钥对);设置ClientAliveInterval 300让SSH在300秒无活动后自动断开连接,防止空闲会话被劫持。确保Oracle安装目录(如/u01/app/oracle/product/19.0.0/dbhome_1)和数据目录(如/u01/app/oracle/oradata)的权限正确。执行chown -R oracle:oinstall /u01/app/oracle将目录所有者设为oracle用户和oinstall组;执行chmod -R 750 /u01/app/oracle限制目录访问权限(所有者可读写执行,组成员可读执行,其他用户无权限)。
DBA等高权限角色,仅为用户分配完成工作所需的最低权限(如CREATE SESSION用于登录、SELECT用于查询数据)。例如,创建用户并授予权限的命令:CREATE USER hr_user IDENTIFIED BY StrongPassword123 DEFAULT TABLESPACE users QUOTA 10M ON users; GRANT CREATE SESSION, SELECT ON employees TO hr_user;。hr_role),将常用权限授予角色,再将角色授予用户,简化权限管理。例如:CREATE ROLE hr_role; GRANT SELECT, INSERT ON employees TO hr_role; GRANT hr_role TO hr_user;。SYS、SYSTEM等内置超级账户,设置强密码(如包含大小写字母、数字和特殊字符,长度不少于12位);避免使用这些账户进行日常操作,仅在必要时使用。ADMINISTER KEY MANAGEMENT CREATE WALLET OPEN IDENTIFIED BY wallet_password;)、加密表空间(ALTER TABLESPACE users ENCRYPTION USING 'AES256' DEFAULT STORAGE(ENCRYPT);)。sqlnet.ora文件中配置SQLNET.AUTHENTICATION_SERVICES=(TCPS)、在listener.ora文件中配置SSL_CLIENT_AUTHENTICATION=TRUE。ALTER SYSTEM SET audit_trail=DB, EXTENDED SCOPE=SPFILE;命令启用审计,记录用户的关键操作(如登录、数据修改、权限变更)。重启数据库使设置生效(SHUTDOWN IMMEDIATE; STARTUP;)。$ORACLE_BASE/diag/rdbms/<db_name>/<instance_name>/trace/audit.log文件中,定期检查日志以发现异常行为(如频繁的失败登录尝试、未授权的数据访问)。禁用Oracle数据库中不必要的服务,减少攻击面。例如,禁用自动工作负载存储库(AWR):EXEC dbms_workload_repository.modify_snapshot_settings(interval => 0);;禁用Oracle Enterprise Manager(OEM):修改emca.rsp配置文件,取消OEM的自动启动设置。
编辑/etc/sysctl.conf文件,添加Oracle推荐的内核参数以提升性能和安全性。例如:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.wmem_default = 262144
执行sysctl -p使参数生效。
定期进行数据库备份(包括逻辑备份如expdp/impdp和物理备份如RMAN备份),确保备份文件存储在安全位置(如异地存储)。测试备份恢复过程,确保在发生安全事件(如数据泄露、硬件故障)时能够快速恢复数据。
定期检查Oracle官方网站(如My Oracle Support)发布的安全补丁,及时下载并应用补丁。可使用Oracle的opatch工具管理补丁安装,确保数据库始终运行最新安全版本。