Linux 上 WebLogic 安全策略配置指南
一 操作系统与运行环境加固
- 以非 root专用用户运行 WebLogic:创建用户与组(如 weblogic:weblogic),将域目录属主设为该用户,避免使用 root 启动进程。
- 最小化开放端口与访问面:仅开放必要端口(如 7001/7002/22),使用 firewalld/iptables 实施白名单策略。
- 更改默认管理端口(如 7001)与控制台上下文路径,降低自动化扫描命中率。
- 启用系统安全基线:限制 root 自动注销(如 TMOUT=300)、限制 su 使用、禁用 Ctrl+Alt+Del 重启、精简登录横幅信息。
- 保持 WebLogic 与 JDK 及时更新,并定期审查系统与安全日志。
以上做法可显著降低攻击面并满足合规要求。
二 传输层安全 SSL TLS 与证书
- 准备身份与信任:创建 Identity Keystore(含服务器证书与私钥)与 Trust Keystore(受信 CA 证书),确保证书链完整。
- 在管理控制台配置 SSL:进入 Environment > Servers > > Configuration > SSL,指定身份/信任库、私钥别名与密码;在 Advanced 中按需配置主机名验证与双向 SSL(客户端证书校验)。
- 设置协议与加密套件:生产环境建议仅启用 TLS 1.2/1.3,禁用 SSLv2/SSLv3/TLS1.0/TLS1.1 与不安全套件。可通过启动参数控制:
-Dweblogic.security.SSL.minimumProtocolVersion=TLSv1.2(或更高)
不建议使用已废弃的 SSLv3/TLS1.0/1.1。
- 证书校验与 CRL:配置入站/出站证书校验策略(内置校验或叠加 CertPathValidator),并按需配置 CRL 分发点与本地缓存刷新,提升吊销检查有效性。
- 验证与排错:使用 utils.ValidateCertChain 校验证书链;必要时开启 SSL 调试日志定位握手与校验失败原因。
以上步骤覆盖单向/双向 SSL、主机名校验、协议约束与证书链校验的关键环节。
三 身份与访问控制
- 认证提供者:在 Security Realms > Providers > Authentication 中配置 WebLogic Default Authenticator 或 LDAP/AD 等认证提供者;如使用 LDAP,需按目录结构正确设置 UserNameAttribute/AllUsersFilter/UserFromNameFilter 等属性,避免用户名包含 , + " \ < > ; 等非法字符导致检索失败。
- 账户与口令策略:在控制台设置最小口令长度、账户锁定(失败次数/锁定时间)、登录超时等;对管理口与敏感操作启用更强的口令复杂度与周期轮换。
- 授权与策略:基于 角色-组-用户 实施细粒度授权,仅授予最小必要权限;对管理操作、部署、数据源变更等启用审批与双人复核。
- Web 服务安全(如启用 OWSM):为 Web Service 选择 Authentication 或 Authentication + Message Protection 等预置策略,并按需配置 SAML/Kerberos 等令牌与登录模块。
以上措施覆盖控制台与应用的认证、授权与 Web 服务令牌场景。
四 网络与连接安全
- 边界与域边界防护:在 Linux 防火墙仅放行必要来源 IP 与端口;在 WebLogic 启用 Connection Filters,限制来源/目标地址与端口范围,减少横向移动与扫描面。
- 监听与端口:将 SSL 监听端口与 管理端口分离,仅在内网可达;对外仅暴露必要协议与路径。
- 禁用示例与示例应用,关闭自动部署,以生产模式运行,减少被滥用的风险。
通过防火墙与连接过滤的组合,可显著提升域内外通信的可控性与安全性。
五 审计日志与持续运营
- 启用审计与日志:在 Security Realms 启用审计提供者,记录登录成功/失败、权限变更、管理操作等关键事件;统一收集与分析 server 日志/审计日志,设置保留周期与归档策略。
- 会话与超时:配置 HTTP/HTTPS 会话超时与控制台会话超时,对管理口设置空闲自动登出。
- 变更与发布:遵循“变更申请-评审-双人复核-变更窗口-回滚预案”流程;变更后在预发环境验证安全策略生效。
- 补丁与漏洞管理:订阅 Oracle 安全通告,定期升级 WebLogic/JDK/OS,并对新引入风险进行回归测试。
- 快速核查清单(示例命令与路径,按实际环境调整):
- 查看运行用户:ps -ef | grep weblogic
- 防火墙放行管理端口:firewall-cmd --zone=public --add-port=7002/tcp --permanent && firewall-cmd --reload
- 启动参数启用 TLS1.2+:在 startWebLogic.sh 的 JAVA_OPTIONS 中加入
-Dweblogic.security.SSL.minimumProtocolVersion=TLSv1.2
- 控制台路径:http(s)://:/console
以上实践有助于形成可审计、可追溯、可持续改进的安全运营闭环。