1. 首页 > IT综合教程 > 正文

IT教程FG344-中间件安全管理

一、中间件安全概述

中间件作为企业应用的核心基础设施,其安全性直接关系到整个业务系统的安全。中间件安全管理涵盖访问控制、通信加密、漏洞防护、审计日志等多个方面,需要建立全面的安全防护体系。

学习交流加群风哥微信: itpux-com,在FGedu企业的中间件安全实践中,我们遵循最小权限原则、纵深防御原则和安全审计原则,确保中间件的安全稳定运行。

1.1 安全风险分析

中间件面临的主要安全风险包括未授权访问、数据泄露、拒绝服务攻击等。

# 中间件安全风险矩阵
风险类型:
1. 访问控制风险
– 默认账户未修改
– 弱密码策略
– 未启用认证
– 权限配置不当

2. 通信安全风险
– 明文传输敏感数据
– SSL/TLS配置不当
– 证书过期或无效

3. 应用安全风险
– 已知漏洞未修补
– 不安全的配置
– 敏感信息泄露

4. 运维安全风险
– 日志记录不完整
– 缺乏审计机制
– 备份数据未加密

# 安全检查清单
基础安全检查:
□ 修改默认管理员账户和密码
□ 禁用不必要的默认用户
□ 配置强密码策略
□ 启用账户锁定策略
□ 配置SSL/TLS加密
□ 禁用不必要的端口和服务
□ 配置安全日志审计
□ 定期更新安全补丁
□ 配置文件权限控制
□ 禁用目录列表

# 安全配置基线
WebLogic安全基线:
– 管理端口:7001(建议修改)
– 控制台访问:限制IP
– SSL:强制启用
– 密码策略:8位以上,包含大小写数字特殊字符

WebSphere安全基线:
– 管理端口:9060/9043
– 全局安全:启用
– SSL:配置双向认证
– 审计日志:启用

Tomcat安全基线:
– 管理端口:8005(建议修改)
– AJP端口:8009(建议禁用或限制)
– 管理应用:限制访问
– 错误页面:自定义

二、WebLogic安全配置

2.1 用户认证与授权

配置WebLogic的安全认证机制,确保只有授权用户可以访问。

# WebLogic安全配置

# 1. 修改默认密码
# 登录WebLogic控制台
http://10.0.1.11:7001/console

# 导航到:Security Realms -> myrealm -> Users and Groups
# 修改weblogic用户密码

# 使用WLST脚本修改密码
$ cd /oracle/app/oracle/middleware/oracle_common/common/bin
$ ./wlst.sh

wls:/offline> connect(‘weblogic’, ‘Fgedu@Wls123’, ‘t3://10.0.1.11:7001’)
wls:/fgedu_domain/serverConfig> cd(‘/SecurityConfiguration/fgedu_domain/Realms/myrealm/AuthenticationProviders/DefaultAuthenticator’)
wls:/fgedu_domain/serverConfig/…> cmo.changeUserPassword(‘weblogic’, ‘Fgedu@Wls123’, ‘NewFgedu@Wls456’)
wls:/fgedu_domain/serverConfig/…> save()
wls:/fgedu_domain/serverConfig/…> activate()

# 2. 配置密码策略
# 在config.xml中配置

myrealm 8
20
true
true
true
true
5
30

# 3. 创建角色和用户
wls:/fgedu_domain/serverConfig> cd(‘/SecurityConfiguration/fgedu_domain/Realms/myrealm’)
wls:/fgedu_domain/serverConfig/…> cmo.createUser(‘fgedu_admin’, ‘Fgedu@Admin123’, ‘FGedu Administrator’)
wls:/fgedu_domain/serverConfig/…> cmo.createGroup(‘FGeduAdmins’, ‘FGedu Administrators Group’)
wls:/fgedu_domain/serverConfig/…> cmo.addMemberToGroup(‘FGeduAdmins’, ‘fgedu_admin’)

# 4. 配置控制台访问限制
# 在config.xml中配置

AdminServer

AdminChannel admin 7001 true
false
false
false

# 5. 配置IP白名单
# 使用WebLogic Server过滤器



Console
/console/*


Admin


# 查看安全配置
$ curl -s -u weblogic:NewFgedu@Wls456 http://10.0.1.11:7001/management/weblogic/latest/domainConfig/securityConfiguration
{
“realm”: “myrealm”,
“enabled”: true
}

2.2 SSL/TLS配置

配置WebLogic的SSL/TLS加密通信,保护数据传输安全。

# WebLogic SSL配置

# 1. 创建密钥库
$ keytool -genkeypair -alias fgedu_server -keyalg RSA -keysize 2048 -validity 365 \
-keystore fgedu_keystore.jks -storepass Fgedu@Key123 \
-dname “CN=fgedu.net.cn, OU=IT, O=FGedu, L=Beijing, ST=Beijing, C=CN”

# 2. 生成CSR
$ keytool -certreq -alias fgedu_server -file fgedu.csr \
-keystore fgedu_keystore.jks -storepass Fgedu@Key123

# 3. 导入CA证书
$ keytool -importcert -alias rootca -file rootca.crt \
-keystore fgedu_keystore.jks -storepass Fgedu@Key123

# 4. 导入服务器证书
$ keytool -importcert -alias fgedu_server -file fgedu_server.crt \
-keystore fgedu_keystore.jks -storepass Fgedu@Key123

# 5. 配置WebLogic使用SSL
wls:/fgedu_domain/serverConfig> cd(‘/Servers/AdminServer/SSL/AdminServer’)
wls:/fgedu_domain/serverConfig/…> set(‘Enabled’, ‘true’)
wls:/fgedu_domain/serverConfig/…> set(‘ListenPort’, 7002)
wls:/fgedu_domain/serverConfig/…> set(‘KeyStoreFileName’, ‘/oracle/app/oracle/middleware/user_projects/domains/fgedu_domain/fgedu_keystore.jks’)
wls:/fgedu_domain/serverConfig/…> set(‘KeyStorePassPhraseEncrypted’, ‘Fgedu@Key123’)
wls:/fgedu_domain/serverConfig/…> set(‘ServerPrivateKeyAlias’, ‘fgedu_server’)
wls:/fgedu_domain/serverConfig/…> set(‘ServerPrivateKeyPassPhraseEncrypted’, ‘Fgedu@Key123’)

# 6. 配置SSL协议和密码套件
wls:/fgedu_domain/serverConfig> cd(‘/Servers/AdminServer/SSL/AdminServer’)
wls:/fgedu_domain/serverConfig/…> set(‘SSLProtocolVersion’, ‘TLSv1.2’)
wls:/fgedu_domain/serverConfig/…> set(‘CipherSuites’, jarray.array([‘TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384’, ‘TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256’], java.lang.String))

# 7. 强制HTTPS
wls:/fgedu_domain/serverConfig> cd(‘/Servers/AdminServer’)
wls:/fgedu_domain/serverConfig/…> set(‘WebServer’, ‘WebServer’)
wls:/fgedu_domain/serverConfig/…> cd(‘WebServer/AdminServer/WebServerLog/AdminServer’)
wls:/fgedu_domain/serverConfig/…> set(‘Enabled’, ‘true’)

# 8. 验证SSL配置
$ openssl s_client -connect 10.0.1.11:7002 -showcerts
CONNECTED(00000003)
depth=2 C = CN, O = FGedu, CN = FGedu Root CA
verify return:1
depth=1 C = CN, O = FGedu, CN = FGedu Intermediate CA
verify return:1
depth=0 C = CN, CN = fgedu.net.cn
verify return:1

Certificate chain
0 s:C = CN, CN = fgedu.net.cn
i:C = CN, O = FGedu, CN = FGedu Intermediate CA
a:PKEY: rsaEncryption, 2048 (bit); sig: rsaEncryption

SSL handshake has read 4567 bytes and written 890 bytes
Verification: OK

# 9. 测试HTTPS连接
$ curl -k https://10.0.1.11:7002/console



WebLogic Server Administration Console

三、WebSphere安全配置

3.1 全局安全配置

配置WebSphere的全局安全设置,启用认证和授权。

# WebSphere安全配置

# 1. 启用全局安全
# 登录WebSphere管理控制台
https://10.0.1.21:9043/ibm/console

# 导航到:Security -> Global security
# 勾选 “Enable application security”
# 勾选 “Use Java 2 security to restrict application access”

# 使用wsadmin脚本配置
$ cd /opt/IBM/WebSphere/AppServer/bin
$ ./wsadmin.sh -lang jython -user wasadmin -password Fgedu@Was123

# 启用全局安全
wsadmin> AdminConfig.modify(AdminConfig.list(‘Security’), ‘[[enabled true] [enforceJava2Security true]]’)
wsadmin> AdminConfig.save()

# 2. 配置LDAP认证
wsadmin> security = AdminConfig.list(‘Security’)
wsadmin> ldap = AdminConfig.create(‘LDAPUserRegistry’, security, [
[‘serverType’, ‘IBM_DIRECTORY_SERVER’],
[‘hostname’, ‘ldap.fgedu.net.cn’],
[‘port’, ‘389’],
[‘baseDN’, ‘dc=fgedu,dc=net,dc=cn’],
[‘bindDN’, ‘cn=admin,dc=fgedu,dc=net,dc=cn’],
[‘bindPassword’, ‘Fgedu@Ldap123’],
[‘searchTimeout’, ‘120’]
])
wsadmin> AdminConfig.save()

# 3. 配置密码策略
wsadmin> AdminConfig.modify(AdminConfig.list(‘Security’), [
[‘authData’, [
[‘minPasswordLength’, ‘8’],
[‘maxPasswordLength’, ’20’],
[‘passwordPolicy’, [
[‘requireDigit’, ‘true’],
[‘requireLowercase’, ‘true’],
[‘requireUppercase’, ‘true’],
[‘requireSpecialChar’, ‘true’]
]]
]]
])
wsadmin> AdminConfig.save()

# 4. 配置SSL
# 创建密钥库
$ /opt/IBM/WebSphere/AppServer/bin/ikeyman.sh

# 或使用命令行
$ keytool -genkeypair -alias fgedu_was -keyalg RSA -keysize 2048 \
-keystore /opt/IBM/WebSphere/AppServer/etc/fgedu_was.jks \
-storepass Fgedu@WasKey123 \
-dname “CN=fgedu-was.fgedu.net.cn, OU=IT, O=FGedu, L=Beijing, ST=Beijing, C=CN”

# 配置SSL设置
wsadmin> ssl = AdminConfig.list(‘SSLConfig’)
wsadmin> AdminConfig.modify(ssl, [
[‘keyStoreName’, ‘FGeduKeyStore’],
[‘trustStoreName’, ‘FGeduTrustStore’],
[‘sslProtocol’, ‘TLSv1.2’]
])
wsadmin> AdminConfig.save()

# 5. 配置审计日志
wsadmin> audit = AdminConfig.create(‘Audit’, AdminConfig.list(‘Security’), [
[‘enabled’, ‘true’],
[‘auditPolicy’, [
[‘auditAll’, ‘true’],
[‘auditAuthentication’, ‘true’],
[‘auditAuthorization’, ‘true’]
]]
])
wsadmin> AdminConfig.save()

# 6. 重启服务器使配置生效
wsadmin> AdminControl.invoke(AdminControl.queryNames(‘type=Server,name=server1,*’), ‘restart’)

# 查看安全配置
$ curl -k -u wasadmin:Fgedu@Was123 https://10.0.1.21:9043/ibm/console/sa/servlet/SecuritySettings
{
“globalSecurity”: “enabled”,
“ldapRegistry”: “configured”,
“sslEnabled”: “true”
}

四、Tomcat安全配置

4.1 Tomcat基础安全

配置Tomcat的基础安全设置,包括用户管理、端口配置等。

# Tomcat安全配置

# 1. 修改默认端口
# 编辑 server.xml





# 2. 配置管理用户
# 编辑 conf/tomcat-users.xml






# 3. 限制管理应用访问
# 编辑 webapps/manager/META-INF/context.xml


# 编辑 webapps/host-manager/META-INF/context.xml


# 4. 配置SSL/TLS
# 创建密钥库
$ keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 \
-keystore /opt/tomcat/conf/keystore.jks \
-storepass Fgedu@Tomcat123 \
-dname “CN=fgedu-tomcat.fgedu.net.cn, OU=IT, O=FGedu, L=Beijing, ST=Beijing, C=CN”

# 配置SSL连接器

# 5. 禁用目录列表
# 编辑 conf/web.xml
listings false

# 6. 配置错误页面
# 编辑 conf/web.xml

404
/error/404.html


500
/error/500.html


java.lang.Throwable
/error/error.html

# 7. 配置安全头部
# 编辑 conf/web.xml

httpHeaderSecurity
org.apache.catalina.filters.HttpHeaderSecurityFilter
hstsEnabled true
antiClickJackingEnabled true
xssProtectionEnabled true


httpHeaderSecurity
/*

# 8. 设置文件权限
$ chown -R tomcat:tomcat /opt/tomcat
$ chmod 700 /opt/tomcat/conf
$ chmod 600 /opt/tomcat/conf/*.xml
$ chmod 600 /opt/tomcat/conf/*.jks

# 验证配置
$ curl -I http://fgedudb:8180
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000

五、安全审计与日志

5.1 审计日志配置

配置中间件的审计日志,记录安全相关事件。

# WebLogic审计日志配置

# 1. 启用审计日志
wls:/fgedu_domain/serverConfig> cd(‘/SecurityConfiguration/fgedu_domain/Realms/myrealm/AuthenticationProviders/DefaultAuditor’)
wls:/fgedu_domain/serverConfig/…> set(‘Enabled’, ‘true’)
wls:/fgedu_domain/serverConfig/…> set(‘AuditSeverity’, ‘Information’)
wls:/fgedu_domain/serverConfig/…> set(‘AuditEventType’, [‘Authentication’, ‘Authorization’, ‘Configuration’])

# 2. 配置日志格式
wls:/fgedu_domain/serverConfig> cd(‘/Servers/AdminServer/Log/AdminServer’)
wls:/fgedu_domain/serverConfig/…> set(‘LogFileSeverity’, ‘Info’)
wls:/fgedu_domain/serverConfig/…> set(‘LogFileFormat’, ‘standard’)
wls:/fgedu_domain/serverConfig/…> set(‘FileName’, ‘/var/log/weblogic/admin-server.log’)

# 查看审计日志
$ tail -f /var/log/weblogic/admin-server.log
#### <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <1234567890>

# WebSphere审计日志配置
wsadmin> audit = AdminConfig.create(‘Audit’, AdminConfig.list(‘Security’), [
[‘enabled’, ‘true’],
[‘auditPolicy’, [
[‘auditAll’, ‘true’],
[‘auditAuthentication’, ‘true’],
[‘auditAuthorization’, ‘true’],
[‘auditInternalAuthorization’, ‘true’]
]],
[‘auditLog’, [
[‘logLocation’, ‘/var/log/websphere/audit.log’],
[‘maxLogSize’, ‘100’],
[‘logFormat’, ‘JSON’]
]]
])
wsadmin> AdminConfig.save()

# Tomcat访问日志配置
# 编辑 server.xml

# 查看访问日志
$ tail -f /var/log/tomcat/access_log.2026-04-03.txt
10.0.1.100 – fgedu_admin [03/Apr/2026:10:00:00 +0800] “GET /manager/html HTTP/1.1” 200 12345 125 “Mozilla/5.0”

# 日志分析脚本
#!/bin/bash
# 文件名: security_log_analysis.sh

echo “=== 中间件安全日志分析 ===”

# 分析登录失败
echo -e “\n1. 登录失败统计:”
grep -i “authentication failed\|login failed” /var/log/weblogic/*.log | \
awk ‘{print $NF}’ | sort | uniq -c | sort -rn | head -5

# 分析异常访问
echo -e “\n2. 异常访问IP:”
grep -E “40[0-9]|50[0-9]” /var/log/tomcat/access_log.* | \
awk ‘{print $1}’ | sort | uniq -c | sort -rn | head -5

# 分析配置变更
echo -e “\n3. 配置变更记录:”
grep -i “configuration change\|config modified” /var/log/websphere/audit.log | tail -10

# 分析权限变更
echo -e “\n4. 权限变更记录:”
grep -i “permission\|role.*change\|user.*change” /var/log/weblogic/*.log | tail -10

$ chmod +x security_log_analysis.sh
$ ./security_log_analysis.sh
=== 中间件安全日志分析 ===

1. 登录失败统计:
15 192.168.1.100
10 192.168.1.101

2. 异常访问IP:
25 10.0.1.100
15 10.0.1.101

3. 配置变更记录:
2026-04-03 10:00:00 Configuration change by weblogic

4. 权限变更记录:
2026-04-03 10:00:00 Role assignment changed for user fgedu_admin

六、安全加固最佳实践

6.1 安全加固检查清单

按照安全加固检查清单逐项检查和配置。

# 中间件安全加固检查清单

## 1. 账户安全
□ 修改所有默认账户密码
□ 删除不必要的默认账户
□ 禁用或删除演示账户
□ 配置密码复杂度要求
□ 配置账户锁定策略
□ 定期审查账户列表
□ 配置密码过期策略

## 2. 访问控制
□ 限制管理控制台访问IP
□ 配置最小权限原则
□ 禁用不必要的功能
□ 配置会话超时
□ 启用访问日志

## 3. 通信安全
□ 启用SSL/TLS加密
□ 禁用弱加密算法
□ 配置证书有效期监控
□ 强制HTTPS重定向
□ 配置安全头部

## 4. 应用安全
□ 删除示例应用
□ 禁用目录列表
□ 配置自定义错误页面
□ 禁用不必要的HTTP方法
□ 配置请求大小限制

## 5. 系统安全
□ 以非root用户运行
□ 配置文件权限
□ 禁用不必要的服务
□ 配置防火墙规则
□ 定期更新补丁

## 6. 审计日志
□ 启用访问日志
□ 启用审计日志
□ 配置日志轮转
□ 配置日志备份
□ 定期分析日志

# 安全加固脚本
#!/bin/bash
# 文件名: middleware_hardening.sh

echo “=== 中间件安全加固检查 ===”

# 检查默认密码
echo “1. 检查默认密码…”
if grep -r “weblogic.*weblogic\|admin.*admin” /opt/middleware/config 2>/dev/null; then
echo “警告: 发现默认密码配置”
else
echo “通过: 未发现默认密码”
fi

# 检查SSL配置
echo -e “\n2. 检查SSL配置…”
if grep -r “SSLEnabled=\”true\”” /opt/middleware/config 2>/dev/null; then
echo “通过: SSL已启用”
else
echo “警告: SSL未启用”
fi

# 检查端口配置
echo -e “\n3. 检查默认端口…”
if netstat -tlnp | grep -E “:7001|:9060|:8080” 2>/dev/null; then
echo “警告: 使用默认端口”
else
echo “通过: 已修改默认端口”
fi

# 检查文件权限
echo -e “\n4. 检查文件权限…”
if find /opt/middleware/conf -perm -002 2>/dev/null | head -5; then
echo “警告: 发现可写配置文件”
else
echo “通过: 配置文件权限正确”
fi

# 检查示例应用
echo -e “\n5. 检查示例应用…”
if ls /opt/middleware/webapps/examples 2>/dev/null; then
echo “警告: 存在示例应用”
else
echo “通过: 已删除示例应用”
fi

$ chmod +x middleware_hardening.sh
$ ./middleware_hardening.sh
=== 中间件安全加固检查 ===
1. 检查默认密码配置…
通过: 未发现默认密码

2. 检查SSL配置…
通过: SSL已启用

3. 检查默认端口…
通过: 已修改默认端口

4. 检查文件权限…
通过: 配置文件权限正确

5. 检查示例应用…
通过: 已删除示例应用

总结

中间件安全管理是保障企业应用安全的重要环节,需要从认证授权、通信加密、应用安全、审计日志等多个维度建立全面的安全防护体系。本教程详细介绍了WebLogic、WebSphere和Tomcat三种主流中间件的安全配置方法,以及安全审计和安全加固的最佳实践。

更多学习教程www.fgedu.net.cn,在实际工作中,建议定期进行安全检查和漏洞扫描,及时更新安全补丁,同时建立完善的安全事件响应机制,确保中间件的安全稳定运行。

风哥风哥提示:中间件安全配置要特别注意默认账户和默认端口,这是攻击者最常利用的入口。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息