Oracle在Ubuntu上的安全配置指南
定期更新Ubuntu系统和Oracle数据库,修复已知安全漏洞。执行以下命令更新系统:
sudo apt update && sudo apt upgrade -y
安装unattended-upgrades包实现自动安全更新,编辑/etc/apt/apt.conf.d/50unattended-upgrades文件,确保包含以下内容以自动安装安全补丁:
Unattended-Upgrade::Allowed-Origins { "$distro_id:$distro_codename-security"; };
对于Oracle数据库,需定期检查Oracle官网补丁更新页面,下载并应用最新安全补丁(如CPU、PSU),必要时重新链接Oracle库。
oracle)及组(oinstall、dba、oper),遵循最小权限原则:sudo groupadd oinstall && sudo groupadd dba && sudo useradd -g oinstall -G dba -s /bin/bash oraclesudo passwd oracle/etc/security/limits.conf,添加以下参数限制进程数、文件描述符等:oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536/etc/pam.d/login,添加session required pam_limits.so使限制生效。sudo apt install ufw -ysudo ufw allow 22/tcpsudo ufw allow 1521/tcpsudo ufw enable/etc/ssh/sshd_config文件,设置以下参数:Port 65534(修改为非标准端口)PermitRootLogin no(禁用root远程登录)PubkeyAuthentication yes(启用密钥认证)PasswordAuthentication no(禁用密码认证)ClientAliveInterval 300(设置空闲超时退出)sudo systemctl restart sshd/etc/sysctl.conf,添加以下参数限制端口扫描和DoS攻击:net.ipv4.tcp_sack = 0(禁用TCP SACK机制)net.ipv4.ip_local_port_range = 1024 65000(限制本地端口范围)sudo sysctl -p。确保Oracle安装目录及数据目录权限正确,防止未授权访问。例如,若Oracle安装在/u01/app/oracle/product/19.0.0/dbhome_1,执行:
sudo chown -R oracle:oinstall /u01/app/oracle
sudo chmod -R 750 /u01/app/oracle
限制对敏感配置文件(如/etc/passwd、/etc/shadow)的访问权限:
sudo chmod 644 /etc/hosts.allow /etc/hosts.deny
sudo chmod 755 /etc/group /etc/passwd
可选:使用ACL进一步细化权限(如限制特定用户对数据目录的访问)。
ALTER SYSTEM SET audit_trail = DB, EXTENDED SCOPE=SPFILE;sudo systemctl restart oracleALTER PROFILE DEFAULT LIMIT PASSWORD_LENGTH 12;ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90;(密码有效期90天)ALTER PROFILE DEFAULT LIMIT PASSWORD_LOCK_TIME 1;(锁定1天后解锁)ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_MAX 5;(密码重复使用次数限制)ALTER PROFILE DEFAULT LIMIT PASSWORD_STRENGTH MEDIUM;(中等强度密码)listener.ora和sqlnet.ora文件,启用SSL_CLIENT_AUTHENTICATION=TRUE,确保客户端与数据库之间的数据传输加密。/etc/apparmor.d/usr.sbin.oracle文件,限制Oracle进程的访问权限(如禁止访问/tmp目录),然后重新加载配置:sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.oraclejournalctl命令监控系统日志,关注Oracle相关的异常记录(如登录失败、权限变更):sudo journalctl -u oracle -f(实时监控Oracle服务日志)sudo grep -i "oracle\|error" /var/log/syslog(查找Oracle错误信息)logrotate工具,定期归档Oracle日志文件(如alert.log、trace文件),防止日志文件过大占用磁盘空间。