在 CentOS 上管理 WebLogic 用户权限
一 操作系统层安全基线
- 创建专用的系统用户与组,WebLogic 进程以非 root 运行,降低提权风险:
- 创建组与用户:
sudo groupadd weblogic、sudo useradd -g weblogic weblogic、sudo passwd weblogic
- 目录与权限:将域目录(如 /u01/app/oracle/middleware/user_projects/domains/your_domain)属主设为 weblogic:weblogic,常用权限为 750/755(目录 755、文件 644),避免使用 777
- 启动与切换:使用
sudo su - weblogic 切换到 weblogic 用户后启动服务,避免以 root 直接启动
- 基础加固(可选但强烈建议):
- 防火墙仅开放必要端口(如 7001/7002/5556 等),示例:
firewall-cmd --zone=public --add-port=7001/tcp --permanent && firewall-cmd --reload
- 更改默认管理端口,避免被脚本扫描
- 启用日志与审计,定期审计登录与关键操作
- 保持 WebLogic 与 JDK 的及时更新与补丁应用
二 控制台与 WLST 的用户 组 角色与策略
- 核心概念与路径
- 安全领域(Security Realms):默认 myrealm
- 认证提供者(Authentication Providers):默认 DefaultAuthenticator
- 用户与组(Users/Groups):在 myrealm 中维护
- 角色与策略(Roles/Policies):在 myrealm 的 Roles 与 Policies 页配置,策略绑定到资源(如应用、EJB、Web 资源等)
- 控制台操作要点
- 创建用户与组:进入 Security Realms > myrealm > Users and Groups,新建用户、组,必要时加入内置组(如 Administrators)
- 口令策略:进入 Security Realms > myrealm > Providers > DefaultAuthenticator > Provider Specific,设置 Minimum Password Length ≥ 8,并配置复杂度与锁定策略(如 Lockout Enabled=true、Lockout Threshold=10、Lockout Duration=300 秒)
- 角色与策略:在 myrealm > Roles 定义角色(可按组或用户),在 myrealm > Policies 为具体资源授予角色访问权限(如 URL 模式、EJB 方法、JMS 队列等)
- WLST 自动化示例(连接后执行)
- 连接域:
connect('weblogic','weblogic123','t3://127.0.0.1:7001')
- 创建用户与组:
createUser('appuser','App@2025','')、createGroup('appdev','')
- 加入组:
addMemberToGroup('appdev','appuser')
- 创建角色(示例全局角色):
createRole('AppDeveloperRole')
- 授权(示例将全局角色授予组):
assignRoleToGroup('AppDeveloperRole','appdev')
- 提交更改:
save()、activate()
- 说明:WLST 适合批量、可重复的安全基线落地与自动化运维
三 应用与资源的访问控制
- Web 应用目录浏览限制
- 登录与会话安全
- 在控制台为关键资源设置访问控制策略(URL 模式、HTTP 方法等),仅授予必要角色
- 结合 Web 容器与应用的会话超时配置,降低会话劫持风险
- 服务器与网络层
- 仅开放必要端口,限制来源 IP(配合防火墙/安全组)
- 启用 SSL/TLS 保护管理通道与业务流量
四 运维与应急操作
- 免密启动与凭据管理
- 在域目录 servers/AdminServer/security/ 下创建 boot.properties,写入
username= 与 password=,首次启动自动加密,避免明文写在命令行
- 忘记管理员密码或鉴权异常
- 审计与日志
- 在控制台启用安全审计与访问日志,记录账号、时间、来源 IP、成功/失败结果,便于合规与溯源