温馨提示×

Debian Oracle安全设置如何做

小樊
62
2025-09-17 11:39:32
栏目: 云计算

1. 系统准备与环境更新
在开始配置前,确保Debian系统处于最新状态,以修复已知漏洞并提升兼容性。执行以下命令更新系统:

sudo apt update && sudo apt upgrade -y

安装Oracle数据库所需的依赖包(如libaio1libssl-dev等),具体包名可根据Oracle版本调整。

2. 用户与权限管理

  • 创建专用Oracle用户组与用户:为Oracle数据库创建专用用户组(如oinstalldbabackupdba),并添加oracle用户(避免使用root管理数据库):
    sudo groupadd oinstall
    sudo groupadd dba
    sudo useradd -g oinstall -G dba -m -s /bin/bash oracle
    sudo passwd oracle  # 设置强密码
    
  • 配置资源限制:编辑/etc/security/limits.d/30-oracle.conf文件,限制Oracle用户的资源使用(防止资源耗尽攻击),示例如下:
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
    oracle hard stack 32768
    
  • 设置环境变量:编辑oracle用户的~/.bash_profile文件,添加Oracle环境变量(确保数据库正常运行):
    export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1  # 根据实际安装路径调整
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    export ORACLE_SID=orcl  # 根据实际SID调整
    source ~/.bash_profile  # 使配置生效
    

3. 内核参数优化
修改/etc/sysctl.d/98-oracle.conf文件,调整内核参数以提升Oracle性能和安全性:

fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
kernel.sem = 250 32000 100 128

执行sudo sysctl -p使参数生效。

4. 网络与防火墙配置

  • 配置Oracle监听器:编辑$ORACLE_HOME/network/admin/listener.ora文件,设置监听器地址和端口(默认1521):
    LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521))))
    SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = orcl)(ORACLE_HOME = $ORACLE_HOME)))
    
    启动监听器并设置为开机自启:
    lsnrctl start
    lsnrctl enable
    
  • 配置防火墙:使用ufw(推荐)或iptables限制对Oracle端口的访问。以ufw为例:
    sudo ufw allow 1521/tcp  # 允许Oracle监听端口
    sudo ufw enable          # 启用防火墙
    sudo ufw status          # 确认规则生效
    
    若使用iptables,需添加规则并保存:
    sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
    sudo netfilter-persistent save  # 保存规则(需安装iptables-persistent)
    

5. SSH安全加固

  • 启用密钥认证:生成SSH密钥对并将公钥复制到Oracle服务器,禁用密码登录:
    ssh-keygen -t rsa -b 4096  # 生成密钥对
    ssh-copy-id oracle@your_server_ip  # 复制公钥到服务器
    
    编辑/etc/ssh/sshd_config文件,修改以下参数:
    PasswordAuthentication no
    PermitRootLogin no
    
    重启SSH服务使配置生效:
    sudo systemctl restart sshd
    

6. 数据加密配置

  • 传输层加密(TLS/SSL):配置Oracle数据库使用SSL/TLS加密客户端与服务器之间的数据传输。编辑$ORACLE_HOME/network/admin/sqlnet.ora文件,添加以下内容:
    SQLNET.AUTHENTICATION_SERVICES = (TCPS)
    SSL_CLIENT_AUTHENTICATION = TRUE
    SSL_VERSION = 1.2
    
    配置listener.ora文件,启用SSL监听端口(如1522):
    LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = your_hostname)(PORT = 1522))))
    
  • 数据存储加密:对敏感表或表空间进行加密(如使用Oracle TDE功能),确保存储数据的安全性。

7. 审计与监控

  • 启用Oracle审计:通过SQL*Plus连接到数据库,启用审计功能(记录用户操作):
    sqlplus / as sysdba
    AUDIT SESSION;  -- 审计用户登录/注销
    AUDIT SELECT TABLE, INSERT TABLE, UPDATE TABLE, DELETE TABLE BY ACCESS;  -- 审计表操作
    
    查看审计日志(位于$ORACLE_HOME/rdbms/audit目录)。
  • 系统监控:使用LogwatchFail2ban监控系统日志,及时发现异常登录或攻击行为。安装Fail2ban并配置防护:
    sudo apt install fail2ban -y
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    

8. 定期更新与补丁管理
保持Oracle数据库和Debian系统的最新状态,定期检查并安装安全补丁。对于Oracle数据库,可通过Oracle Support获取最新的安全补丁包(如CPU、PSU),并按照官方文档进行安装;对于Debian系统,定期执行sudo apt update && sudo apt upgrade -y更新系统包。

9. 备份与恢复
制定定期备份计划,使用RMAN(Recovery Manager)工具备份数据库。示例如下:

rman target /
BACKUP DATABASE FORMAT '/path/to/backup/%U' TAG 'FULL_BACKUP';
BACKUP CURRENT CONTROLFILE FORMAT '/path/to/backup/controlfile.bak';

将备份文件存储在安全的异地位置(如云存储),并定期测试恢复流程。

0