温馨提示×

centos sqlplus安全配置有哪些

小樊
46
2025-11-05 19:17:03
栏目: 云计算

CentOS环境下SQL*Plus安全配置要点

1. 操作系统级用户安全配置

SQL*Plus作为Oracle数据库的命令行工具,其安全基础依赖于操作系统用户的配置。需通过以下设置强化操作系统用户安全性:

  • 禁止空密码:检查/etc/shadow文件(密码加密存储位置),确保用户密码字段无空值(空密码用户无法登录);
  • 设置密码有效期:修改/etc/login.defs文件,调整PASS_MAX_DAYS(密码最大使用天数,如90天)、PASS_MIN_DAYS(修改密码后再次修改的最小间隔,如7天)、PASS_WARN_AGE(密码过期前提醒天数,如10天);
  • 强化密码复杂度:修改/etc/pam.d/system-auth/etc/pam.d/password-auth文件,添加pam_pwquality.so参数(如dcredit=-1要求至少1个数字、ucredit=-1要求至少1个大写字母、lcredit=-1要求至少1个小写字母、ocredit=-1要求至少1个特殊字符、minlen=12要求最小长度12位),并启用remember=5记录最近5次密码防止重复使用;
  • 锁定失败账户:在/etc/pam.d/system-auth/etc/pam.d/password-auth中添加pam_tally2.so参数(如deny=5允许输错5次、unlock_time=300锁定300秒),并通过pam_tally2 -u username查询锁定状态、pam_tally2 -r -u username解锁。

2. SQL*Plus自身配置安全

  • 隐藏敏感信息:编辑SQL*Plus配置文件(通常位于用户家目录,如~/.sqlnet.ora),添加SQLNET.LOG_FILE=/dev/nullSQLNET.LOG_LEVEL=OFF关闭日志记录,避免密码等敏感信息泄露;
  • 限制密码明文显示:在~/.sqlnet.ora中添加SQLNET.AUTHENTICATION_SERVICES=(NONE),防止密码在命令行历史或进程列表中暴露;
  • 设置密码提示:编辑SQL*Plus启动脚本(如~/sqlplus.sh),将默认提示行(如SQL*Plus: Release x.x.x.x - Production)修改为仅提示输入用户名(如Enter user-name:),增强交互安全性。

3. 网络访问控制

  • 配置防火墙:使用firewall-cmd命令开放SQL*Plus默认端口(1521/tcp),并限制访问源IP(如仅允许运维服务器IP):
    firewall-cmd --zone=public --add-port=1521/tcp --permanent
    firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="1521" protocol="tcp" accept' --permanent
    firewall-cmd --reload
    
  • 禁用远程root登录:若需远程使用SQL*Plus,禁止root用户直接远程登录(修改/etc/ssh/sshd_config中的PermitRootLogin no),创建专用数据库用户(如app_user)并分配最小权限(如CREATE SESSIONSELECT)。

4. 数据库权限管理

  • 最小权限原则:为用户分配仅满足业务需求的权限(如GRANT CREATE SESSION, SELECT ON schema.table TO app_user),避免授予DBA等高权限角色;
  • 设置默认角色:若需用户默认拥有某组角色(如read_only_role),使用ALTER USER app_user DEFAULT ROLE read_only_role,确保用户登录后自动获得必要权限;
  • 定期审计权限:通过SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'APP_USER';查询用户权限,及时回收不必要的权限(如REVOKE DROP ANY TABLE FROM app_user)。

5. 审计与监控

  • 启用数据库审计:通过Oracle审计功能记录SQL*Plus操作(如AUDIT CREATE SESSION BY app_user;),并定期查看审计日志(SELECT * FROM DBA_AUDIT_TRAIL WHERE USERNAME = 'APP_USER';);
  • 系统日志监控:配置rsyslogauditd监控SQL*Plus相关日志(如/var/log/secure中的登录记录),及时发现异常登录行为(如频繁输错密码、异地登录)。

0