资讯专栏INFORMATION COLUMN

Weblogic T3、IIOP协议批量禁用

IT那活儿 / 2525人阅读
Weblogic T3、IIOP协议批量禁用

近期各地各行业护网运动开展如火如荼,各系统、中间件、数据库、开源软件层面漏洞层出不穷,另相关的维护专业这苦不堪言。本文要讲的就是与weblogic中间件近期不断被曝出的T3协议、IIOP协议0day漏洞有关。在护网期间,官方补丁又未更新的情况下,能做的可能就是通过及时的禁用相关的协议,以达到漏洞修复的目的,但是通常任务紧、时间短、实例数量又众多的情况下,我们如何快速的做到对实例进行批量的处理呢,且看下文介绍。


[
IIOP协议批量禁用
]


首先禁用IIOP协议,需要在应用侧确认反馈应用未使用该协议的前提下,才能进行禁用处理。

单台或者少量实例,处理方法很简单,可以直接登陆控制台,警用IIOP协议即可,方法如下:

Weblogicconsole  -> “服务”->”xxxServer”->”协议”,取消“启用IIOP”的勾选,重启服务即可。


但是成百上千个实例,一个个登陆console修改配置,显然不切实际,那我们就需要使用批量方案了。批量禁用可以使用weblogic自带的wlst工具,通过脚本进行批量禁用,该方法脚本逻辑简单清晰,分享如下。

weblogic_iiop.sh:通过shell脚本去调用weblogicwlst,执行禁用的python脚本。

#!/bin/bash

. $HOME/.bash_profile

WLS_HOME="/weblogic/Oracle/Middleware/wlserver"

echo [`date +%Y-%m-%d %H:%M:%S`]" =====[BEGIN]========================="

${WLS_HOME}/common/bin/wlst.sh weblogic_iiop.py

echo [`date +%Y-%m-%d %H:%M:%S`]" =====[END]==========================="


weblogic_iiop.py:获取配置文件中的weblogic控制台账号、口令,循环去禁用每一个实例的IIOP协议。

cfg = open("./conf.cfg", "rb")


for line in cfg:

auth = line.split(#)

USERNAME = auth[0].strip()

PASSWORD = auth[1].strip()

ADMINURL = auth[2].strip()


print(-------------- + ADMINURL + -----------------------------------)

size = len(auth)

if size < 3 or USERNAME == "" or PASSWORD == "" or ADMINURL == "":

continue


connect(USERNAME,PASSWORD,ADMINURL)


edit()

cd(Servers)

allSrvs=cmo.getServers()

for srv in allSrvs:

print(--------------startEdit--------------------------------)

startEdit()

srvName=srv.getName();

print(Now begin modify server: + srvName)

cd(/Servers/ + srvName)

## true-开启, false-关闭

cmo.setIIOPEnabled(false)

save()

activate()

disconnect()

exit()


conf.cfg:目标weblogic实例的控制台账号、密码

weblogic#weblogic!123#t3://IP1:port

weblogic#weblogic!123#t3://IP2:port

…..


如上,只需将脚本部署到可以访问目标实例的服务器上,配置好conf.cfg配置文件,就可以很轻松的解决IIOP协议批量禁用的问题了,记得最后要重启服务才能生效哦。

[
T3协议批量禁用
]


首先禁用T3协议,原理上其实是通过在weblogicconsole中添加T3协议访问白名单的方式来控制T3协议访问,禁止白名单以外的IP或网段来访问服务,以达到屏蔽漏洞的作用。所以,在配置T3协议禁用之前,需要应用侧梳理出需要使用T3协议访问的IP或网段。单台或者少量实例,处理方法同样简单,可以直接登陆控制台配置即可,方法如下:

Weblogicconsole  -> “domain”->”安全”->”筛选器”,在“连接筛选器规则”处,配置规则即可。


但是成百上千个实例,一个个登陆console修改配置,费时费力,同样的,我们也有批量作业的方法,分享如下:


run.sh:通过shell脚本去调用weblogicwlst,同时读取weblogic控制台账号、口令,执行禁用的python脚本。

JAVA_HOME=/weblogic/jdk1.7.0_141

WLS_HOME=/weblogic/Oracle/Middleware/wlserver_10.3

FILENAME=conf.cfg

cat $FILENAME | while read LINE

do

echo "----$LINE------"

IP=`echo ${LINE} |awk -F"#" {print $1}`

PORT=`echo ${LINE} |awk -F"#" {print $2}`

USERNAME=`echo ${LINE} |awk -F"#" {print $3}`

PASSWORD=`echo ${LINE} |awk -F"#" {print $4}`

DOMAIN_NAME=`echo ${LINE} |awk -F"#" {print $5}`

echo $DOMAIN_NAME


$WLS_HOME/common/bin/wlst.sh weblogic_filter.py $IP $PORT $USERNAME $PASSWORD $DOMAIN_NAME

done


conf.cfg:目标weblogic实例的控制台账号、密码、域名

IP#port#weblogic#weblogic!123#testdomain

IP#prot#weblogic#weblogic!123#testdomain…..


weblogic_filter.py:对每一个weblogicdomain去配置T3协议白名单。

# coding=utf-8

# FileName: weblogic_filter.py

# Description:

import time,re,os,sys


IP = sys.argv[1]

print HOST_IP=,IP


PORT = sys.argv[2]

print PORT=,PORT


USERNAME = sys.argv[3]

print USERNAME=,USERNAME


PASSWORD = sys.argv[4]

print PASSWORD=,PASSWORD


mydomain = sys.argv[5]

mydomain = mydomain.rstrip()

print DOMAIN_NAME=,mydomain


URL=t3://+IP+:+PORT

connect(USERNAME,PASSWORD,URL)

edit()

startEdit()

cd(/SecurityConfiguration/ + mydomain)

cmo.setConnectionFilter(weblogic.security.net.ConnectionFilterImpl)

set(ConnectionFilterRules,jarray.array([String(IP1+ * * allow t3 t3s), String(IP2+  * * allow t3 t3s), String(IP3+  * * allow t3 t3s), String(IP4+  * * allow t3 t3s), String(0.0.0.0/0 * * deny t3 t3s)], String))

save()

activate()


如上,python脚本中,在set(ConnectionFilterRules,jarray.array([String(IP1+ * * allow t3 t3s), String(IP2+  * * allow t3 t3s)],String))中添加需要配置的白名单配置规则即可。显然然,这里笔者这里是偷懒了,有兴趣的朋友,可以将规则也配置到配置文件中去,那么脚本即可通用了,只需要修改配置文件即可,使用起来会更灵活。最后,只需将脚本部署到可以访问目标实例的服务器上,配置好conf.cfg配置文件,就可以很轻松的解决T3协议禁用的问题。


[
小结
]


以上提供的方法,需要注意的是相关的脚本中的一些JDK版本及路径、WLS_HOME路径是需要根据实际情况进行修改的。如果再结合相关自动化产品将对应的场景进行任务编排,通过产品去将调用批量作业脚本、服务重启等操作编排到一个任务里面去,实现自动化调度,白屏操作,这将是一个不错的运维场景。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130134.html

相关文章

  • weblogic 脚本创建Managed Server (受管服务器)

    摘要:直接执行该脚本即可运行工具。有离线和在线两种模式,通过命令可以从进入,按照目录形式对资源进行管理,甚至连操作的命令都和高度相似,比如是切换到指定资源路径下,是列出该目录下所有资源。 说明 weblogic安装目录下有一个创建Managed Server的脚本,脚本位于/u01/app/Oracle/Middleware/oracle_common/common/bin/config.s...

    shinezejian 评论0 收藏0
  • 理解HTTP session原理及应用

    摘要:理解原理及应用一术语在我的经验里,这个词被滥用的程度大概仅次于,更加有趣的是与在某些语境下的含义是相同的。其中的作用就是为了解决协议无状态的缺陷所作出的努力。 理解HTTP session原理及应用 一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 ...

    dreamGong 评论0 收藏0
  • 【负载均衡 ULB】ULB,VServer,服务节点的操作指南

    摘要:绑定解绑进入负载均衡页面,可对外网绑定的外网弹性进行以下操作。负载均衡算法监听器对数据包的负载方式服务节点一般情况,添加服务节点是需要在监听器创建完成后再进行。禁用服务节点后,现存的长连接不会断开。,点击确定,即完成批量禁用服务节点。创建ULB操作步骤1、进入负载均衡 ULB页面。2,点击创建负载均衡进行ULB实例创建。3、填写配置信息,进行ULB实例创建。详细配置说明见下方。4,点击立即购...

    Tecode 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<