CentOS环境下WebLogic安全设置指南
root用户运行WebLogic,创建专用用户及组(如weblogic),并设置强密码。groupadd weblogic
useradd -g weblogic weblogic
passwd weblogic # 设置复杂密码(如包含大小写字母、数字、特殊字符)
firewalld开放必要端口(如管理控制台7001、SSH22),限制访问源IP(如仅允许可信网段访问)。firewall-cmd --zone=public --add-port=7001/tcp --permanent # WebLogic管理端口
firewall-cmd --zone=public --add-port=22/tcp --permanent # SSH远程管理
firewall-cmd --reload
sendmail、cups),减少攻击面。systemctl stop sendmail && systemctl disable sendmail
systemctl stop cups && systemctl disable cups
/etc/ssh/sshd_config,禁用root远程登录、启用公钥认证,提升SSH安全性。sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
systemctl restart sshd
weblogic用户,使用静默安装方式部署WebLogic,避免权限过高导致的安全风险。su - weblogic
java -jar /opt/weblogic/fmw_14.1.1.0.0_wls_lite_generic.jar -silent -responseFile /opt/weblogic/wls.rsp
weblogic管理员用户名,创建自定义管理员账号(如admin_domain),并设置强密码。production mode),关闭自动部署功能(防止恶意WAR包自动上传部署)。cd /opt/weblogic/domains/base_domain/bin
./setDomainEnv.sh # 编辑此文件,设置RUN_MODE=prod
console)进入“安全领域→myrealm→密码策略”,设置:
Admin角色仅授予管理员,Monitor角色授予监控人员),避免权限过度授予。# 管理控制台路径:安全领域→myrealm→身份断言→新建→选择LDAP类型→配置LDAP服务器连接信息
keytool生成自签名证书(生产环境建议使用CA签发的证书),并导入至WebLogic密钥库。keytool -genkey -alias weblogic_ssl -keyalg RSA -keystore /opt/weblogic/domains/base_domain/security/weblogic.keystore -keysize 2048 -validity 365
7002),并指定密钥库路径与密码。# 管理控制台路径:配置→监听端口→新建→选择SSL→设置端口、密钥库路径
console)及关键应用使用HTTPS协议,防止数据在传输过程中被窃取。# 管理控制台路径:安全领域→myrealm→审计→启用审计→选择审计项(如登录、授权)
/opt/weblogic/domains/base_domain/config/config.xml,设置日志文件大小(如100MB)与保留天数(如7天),避免日志文件过大占用磁盘空间。<log>
<file-name>logs/weblogic.log</file-name>
<rotation-type>bySize</rotation-type>
<max-size>100</max-size>
<max-history>7</max-history>
</log>
grep、awk等工具分析日志,及时发现异常行为(如频繁的登录失败、未授权访问尝试)。grep "Failed login" /opt/weblogic/domains/base_domain/logs/weblogic.log # 查找登录失败记录
weblogic.xml配置文件中,设置indexDirectories为false,防止用户通过浏览器直接访问目录结构。<weblogic-web-app>
<container-descriptor>
<index-directories>false</index-directories>
</container-descriptor>
</weblogic-web-app>
max-open-sockets=5000),防止DDoS攻击导致资源耗尽。