WebLogic 在 Ubuntu 的权限管理策略
一 操作系统层最小权限
- 创建专用的系统用户与组,严格禁止以 root 直接运行 WebLogic。示例:groupadd weblogic;useradd -g weblogic weblogic;passwd weblogic。安装与域目录统一归属该用户:chown -R weblogic:weblogic /opt/weblogic /opt/weblogic/Oracle/Middleware/user_projects/domains。启动前用 su - weblogic 切换身份,确保进程最小权限运行。
- 目录与脚本权限遵循“最小够用”:安装目录与域目录属主为 weblogic,脚本具备执行权限(如 chmod +x),严禁使用 777。遇到“权限不足/启动失败”时,优先核查目录属主与脚本权限,而非直接改用 root。
- 系统层面配合:更新系统(apt update/upgrade)、禁用 root SSH 登录、使用 SSH 密钥认证、开启 UFW 防火墙仅放行必要端口(如 8001/tcp、8002/tcp)、可选启用 Fail2Ban 等,降低横向与暴力破解风险。
二 WebLogic 域与文件权限
- 运行模式与部署:将域设置为生产模式,关闭自动部署,移除示例应用(如 examples、console),减少攻击面。
- 日志与审计:启用 HTTP 访问日志;在“安全→域→审计”启用审计(如 FileAuditProvider),并将日志文件权限收紧为仅管理员可读写(如 chmod 600 …/logs/*.log),确保可追溯。
- 端口与协议:修改默认 HTTP/HTTPS/SSL 端口(如 7001→8001、7002→8002),启用 SSL 并记录拒绝日志,配置合适的主机名验证策略。
- 连接与信息泄露防护:在“服务器→安全→连接过滤器”配置 ConnectionFilterImpl,仅允许可信网段(如 192.168.1.0/24);在“协议→HTTP”中取消发送服务器标头,隐藏版本信息。
- 会话与超时:设置控制台与 HTTPS 会话超时(如控制台 ≤ 300 秒),降低会话劫持风险。
三 用户账户与认证授权
- 控制台账户安全:设置复杂度(长度 ≥ 8,包含大小写字母、数字与特殊字符)与生命周期(如 90 天);配置账号锁定(失败 5 次锁定,持续 ≥ 30 分钟),防止暴力破解。
- 域级角色与授权:通过控制台或 WLST 创建用户/组并分配到 Administrators 等角色,遵循最小权限原则;避免在命令行硬编码口令,优先使用更安全的凭据管理方式。
- 运维与自动化:使用 WLST 脚本批量管理用户、组与角色,确保变更可审计、可回滚。
四 网络边界与补丁管理
- 边界防护:在 UFW 仅放行业务所需端口(如 8001/tcp、8002/tcp),其余默认拒绝;在 WebLogic 启用连接过滤器做二次来源限制,形成纵深防御。
- 加密与传输:启用 SSL/TLS,使用 keytool 生成密钥与证书并配置到服务器,禁用明文监听。
- 持续加固:定期应用 WebLogic 与 JDK 安全补丁,升级至受支持的 JDK 8 安全版本(如 1.8u381+),并定期审查日志与审计记录。
五 权限排错与加固清单
- 常见排错:若出现“权限不足/启动异常”,检查安装与域目录属主是否为 weblogic、脚本是否可执行、必要时以 weblogic 用户重新执行;不要以 root 启动。
- 快速加固清单:
- 以 weblogic 用户运行;2) 目录属主统一且权限最小化;3) 生产模式+关闭自动部署;4) 修改默认端口并启用 SSL;5) 启用访问日志/审计并收紧日志权限;6) 配置连接过滤器与防火墙;7) 账户锁定与复杂度策略;8) 定期补丁与日志审查。