温馨提示×

如何在CentOS上配置WebLogic的安全策略

小樊
43
2025-11-01 21:51:01
栏目: 智能运维

一、CentOS系统级安全配置(基础)

1. 创建专用WebLogic用户与组

避免以root用户运行WebLogic,降低系统权限泄露风险。执行以下命令创建用户和组:

groupadd weblogic  # 创建weblogic组
useradd -g weblogic weblogic  # 创建weblogic用户并加入组
passwd weblogic  # 设置用户密码(需符合复杂度要求)

2. 强化系统口令策略

修改/etc/login.defs文件,强制要求用户口令长度≥10位,包含大小写字母、数字和特殊字符:

PASS_MIN_LEN 10  # 设置最小口令长度

锁定不必要的系统账户(如admlpsync等),防止未授权登录:

usermod -L adm  # 锁定adm账户(示例)

保护口令文件,防止未授权修改:

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow

3. 配置防火墙限制访问

使用firewalld开放WebLogic默认端口(如7001),并限制仅允许可信IP访问:

firewall-cmd --zone=public --add-port=7001/tcp --permanent  # 开放端口
firewall-cmd --reload  # 重新加载配置
# 限制IP访问(示例:仅允许192.168.1.0/24网段访问)
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="7001" accept' --permanent
firewall-cmd --reload

4. 禁用不必要的系统服务

关闭系统自动启动的非必要服务(如telnetftp),减少攻击面:

systemctl stop telnet.socket  # 停止telnet服务
systemctl disable telnet.socket  # 禁止开机启动

二、WebLogic Server级安全配置(核心)

1. 以非root用户运行WebLogic

确保WebLogic进程由weblogic用户启动,避免权限提升风险。进入WebLogic安装目录的bin目录,执行:

su - weblogic  # 切换至weblogic用户
./startWebLogic.sh  # 启动WebLogic(需提前配置好环境变量)

2. 配置强管理员口令

登录WebLogic管理控制台(http://<服务器IP>:7001/console),进入Security Realms > myrealm > Users and Groups,修改管理员账户(如AdminServer)的口令,要求包含大小写字母、数字和特殊字符,长度≥8位。

3. 启用SSL加密传输

通过SSL证书保护客户端与服务器之间的数据传输,防止信息泄露:

  • 生成自签名证书(测试环境使用):
    keytool -genkey -alias weblogic -keyalg RSA -keystore /home/weblogic/keystore.jks -keysize 2048 -validity 365
    
  • 配置WebLogic SSL监听
    登录管理控制台,进入Environment > Servers > AdminServer > Configuration > SSL,点击Advanced,设置Listen Port(如7002),上传生成的keystore.jks文件,并指定密码。

4. 配置安全审计

开启审计功能,记录用户登录、操作等行为,满足合规性要求:
进入Security Realms > myrealm > Auditing,勾选Enable Auditing,设置审计日志存储路径(如/home/weblogic/audit_logs),并配置审计级别(如AllFailure)。

5. 限制目录列表访问

防止通过浏览器直接查看WebLogic目录结构,修改weblogic.properties文件(位于$DOMAIN_HOME/config/config.xml同级目录),添加以下配置:

weblogic.httpd.indexDirectories=false

6. 禁用服务器信息泄露

修改WebLogic响应头,隐藏服务器版本、主机名等信息,降低针对性攻击风险:
进入Environment > Servers > AdminServer > Configuration > General,点击Advanced,勾选Hide Server Version InformationHide Hostname in Server Header

7. 设置运行模式为生产模式

生产模式关闭自动部署功能,增强安全性:
进入Environment > Servers > AdminServer > Configuration > General,点击Change Mode,选择Production Mode,重启WebLogic生效。

8. 使用WLST脚本自动化配置

通过WebLogic Scripting Tool(WLST)批量创建用户、组及权限,减少手动操作错误:

# 连接到WebLogic管理服务器
connect('weblogic', 'weblogic1234', 't3://localhost:7001')

# 创建组
cmo.createGroup('AdminGroup')

# 创建用户并分配到组
cmo.createUser('adminUser', 'Admin@1234', 'AdminGroup')

# 分配角色权限(示例:授予AdminGroup管理员权限)
realm = cmo.getSecurityConfiguration().getDefaultRealm()
group = realm.lookupGroup('AdminGroup')
role = realm.lookupRole('Admin')
role.addMember(group)

# 断开连接
disconnect()

三、Java安全策略配置(可选但推荐)

若需更细粒度的权限控制(如限制应用程序访问文件、网络等),可配置Java Security Manager:

1. 修改weblogic.policy文件

编辑$WL_HOME/wlserver/server/lib/weblogic.policy文件,添加自定义权限(示例):

// 授予应用程序读取配置文件的权限
grant codeBase "file:${weblogic.home}/servers/AdminServer/tmp/_WL_internal/com.bea_wls_internal_-1.0.0.0_12.2.1.3.0/-/-/-/-/-/-/-/-/-/-/-/-/-/-/" {
    permission java.io.FilePermission "${weblogic.home}/config/*", "read";
};

// 授予应用程序访问网络的权限
grant {
    permission java.net.SocketPermission "*", "connect,resolve";
};

2. 启动WebLogic时启用Java Security Manager

修改startWebLogic.sh脚本(位于$DOMAIN_HOME/bin),添加以下JVM参数:

JAVA_OPTIONS="$JAVA_OPTIONS -Djava.security.manager -Djava.security.policy==$WL_HOME/wlserver/server/lib/weblogic.policy"

四、日常维护与监控

  • 定期更新补丁:关注Oracle官方发布的安全补丁,及时升级WebLogic和CentOS系统,修复已知漏洞。
  • 监控日志文件:定期检查/home/weblogic/audit_logs(审计日志)和$DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log(服务器日志),识别异常登录、操作行为。
  • 备份配置文件:定期备份weblogic.policyboot.propertiesconfig.xml等重要配置文件,防止误删或篡改。

0