宝兰德BES中间件单机版安全加固相关操作

2023-10-28

因某公司对安全的要求,需要对bes中间件进行安全加固,安全加固的内容主要包括对控制台默认地址修改,实例默认端口修改,控制台默认密码修改,密码加密,加密后的实例启停方式等。

首先说一下今天安全加固操作的前提,需要已经分离式部署安装成功bes单机版中间件,创建实例没有要求,一个或多个实例都可以,今天我用创建了一个实例的bes中间件做演示。

一、新增一个实例,和另外一个实例进行对比

1) 在应用账号下临时声明JAVA_HOME环境变量。

export JAVA_HOME=/bes/jdk1.8.0_131

2) 在应用账号下执行如下命令,新建instance02实例。

sh /bes/BES952/bin/besservers -c=/bes/BES952/conf/server.config -p=/app/besinstances/instance02 -s=create

  • -c:指定BES中间件配置文件;

  • -p:指定BES应用系统运行目录,包含应用系统运行所需的相关文件;

  • -s:指定当前操作类型,create创建实例,stop停止运行实例。

二、控制台账号密码修改

2.1 在应用账号bin目录下启动需要修改的实例。

2.2 使用应用账号bin目录下的iastool工具,进行修改控制台账号密码。

./iastool --passport B#2008_2108#es --user=admin --password=B#2008_2108#es --port 1900  update --file-user --realmname admin-realm --userpassword 'Hello!123' --confirmpassword 'Hello!123' admin

使用此工具修改控制台账号密码需要给几个参数,分别为passport密码,用户密码,以及该实例目前的控制台端口,后面几个参数为修改后的密码。

[app@localhost bin]$ ./iastool --passport B#2008_2108#es --user=admin --password=B#2008_2108#es --port 1900 update --file-user --realmname admin-realm --userpassword 'Hello!123' --confirmpassword 'Hello!123' adminLogin information is not saved for host name [localhost] and port [1900]Login information is not saved for host name [localhost] and port [1900]Command update --file-user executed successfully.

这里为修改控制台密码的返回显示结果。

三、生成密码加密文件

在应用账号的bin目录下利用iastool工具:

./iastool create  --passport B#2008_2108#es --password-file --adminpassword 'Hello!123' --iastoolpassport B#2008_2108#es ./adminpasswordfile

此处加密密码应和上面修改后的密码一致。

[app@localhost bin]$ ./iastool create  --passport B#2008_2108#es --password-file --adminpassword 'Hello!123' --iastoolpassport B#2008_2108#es ./adminpasswordfileCommand create --password-file executed successfully.

这里为生成加密文件的返回显示结果。

四、实例默认端口修改

4.1 首先查看一下默认端口的值,进入/app/besinstances/instance02/conf下查看:

可以清晰的在此看见控制台默认端口,http1端口,jmx端口等。

4.2 进入实例bin目录下执行如下命令:

./iastool --user admin --passwordfile adminpasswordfile --port 1900 set server.web-container.http-listener.http-listener-1.port=11001

由于在上个步骤已经生产加密文件,所以在此处可以直接使用加密文件,不用输入明文密码。此处的port给的依旧是实例当前的控制台端口。

4.3 实例的jmx端口默认是开启的,在这里顺便说一下jmx端口怎么关闭。

./iastool --user admin --passwordfile adminpasswordfile --port 1900 set server.jmx-connector.enabled=false

4.4 控制台默认端口修改,依旧在实例的bin目

录下,用iastool工具:

./iastool --passwordfile adminpasswordfile --user admin --port 1900 set server.web-container.http-listener.admin-listener.port=9999

4.5 至此实例的默认端口已经全部修改,可以再次查看server.config文件,验证是否修改完成:

可以在图中红框看出,默认端口已全部修改为想要的端口,jmx端口也已经关闭。

五、控制台默认地址修改

默认的控制台地址都为127.0.0.1:port/console,不修改默认地址很容易让人猜到控制台的地址,所以修改控制台默认地址很重要。

5.1 使用产品账号,修改/bes/BES952/lib/system/apps/console/WEB-INF/web.xml 。

修改红框内的/console为想要的后缀即可。

<session-config><session-timeout>30</session-timeout><cookie-config><path>/besmanager</path></cookie-config></session-config>

修改图中的加深处的console,改为和上述修改一致即可。

<filter><filter-name>CsrfFilter</filter-name><filter-class>com.bes.enterprise.console.core.filters.CsrfPreventionFilter</filter-class><init-param><param-name>entryPoints</param-name><param-value>/besmanager/index.action,/besmanager//index.action,/besmanager/,/besmanager,/besmanager/login.html,/besmanager/doLogin.action,/besmanager/certCode.action</param-value></init-param><init-param><param-name>entryPrefixPoints</param-name><param-value>/besmanager/pages/error,/besmanager/favicon.ico,/besmanager/resources/image,/besmanager/resources/js,/besmanager/resources/style,/besmanager/resources/loading.gif</param-value></init-param></filter>

5.2 使用应用账号,进入需要修改的实例目录下:

/app/besinstances/instance01/conf/server.config

修改红框内的两处,将enable=”fales”改为true,另外一处所修改后的内容应该和产品账号web.xml中修改的一致。

六、修改启停脚本

6.1 由于修改后的所有内容需要重启生效,所以先停止实例。

此处因为修改了控制台的默认密码,所以启停脚本中的密码配置无效,需要手动输入用户名,修改后的密码。

6.2 修改启脚本,并且在startserver中增加JAVA_HOME环境变量,否则需要一直临时声明环境变量。

6.3 修改停脚本,并且在stopserver中增加JAVA_HOME。记得将控制台端口改为修改之后的。

6.4 验证启停脚本,控制台地址。

可以不用输入账号密码启动实例,启停脚本即为验证成功,并且在启停脚本中使用密码加密文件,不能出现明文密码。

输入修改后的控制台后缀和端口,和修改后的控制台密码可以进入控制台,即为修改安全加固完成。

友情提醒:第一次修改控制台默认地址,需要进入一遍http://127.0.0.1:port/console之后,才能进入修改后缀之后的控制台地址。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

宝兰德BES中间件单机版安全加固相关操作 的相关文章

  • 如何在log4j的配置文件中为文件附加器提供环境变量路径

    我有一个log4j xml配置文件 和一个RollingFileAppender我需要提供用于存储日志的文件路径 问题是我的代码将作为可运行的 jar 部署在 Unix 机器上 所以如果我传递这样的参数 value logs message
  • 如何提取文件 jre-9/lib/modules?

    In JRE 9 lib目录 至少在 Windows 上 有一个名为modules其大小约为107 MB 是否可以提取该文件或在其中列出 java 模块 我可以看到一个名为jmod可以在jdk 9 bin jmod exe 但那是为了阅读
  • 在命令行java中突出显示文本[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一项任务是重新创建 unix cal 程序 除了一部分之外 相当简单 今天 它突出显示了该数字 我不知道该怎么做 关于如何在 Ja
  • 如何在Java中优雅地处理SIGKILL信号

    当程序收到终止信号时如何处理清理 例如 我连接到一个应用程序 希望任何第三方应用程序 我的应用程序 发送finish注销时的命令 发送该信息最好说什么finish当我的应用程序被破坏时的命令kill 9 编辑1 kill 9无法被捕获 谢谢
  • 检查 IPv4 地址是否在私有范围内

    在 Python 中 使用 IPy 模块您可以执行以下操作 gt gt gt ip iptype PRIVATE 有没有一个库或简单的方法可以在 Java 中执行相同的操作 似乎不完全是但是InetAddress有一些 isXX 方法 例如
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • Kafka Java Consumer 已关闭

    我刚刚开始使用卡夫卡 我面临着消费者的一个小问题 我用Java写了一个消费者 我收到此异常 IllegalStateException 此消费者已关闭 我在以下行中遇到异常 ConsumerRecords
  • 当 JMS Prod 位于辅助 POJO 类中时,如何在事务中包含 JMS Producer

    简短的问题 有没有办法强制无状态 EJB 调用的 POJO 存在于 EJB 的上下文中 以便事务和资源注入可以在 POJO 中工作 具体来说 在我想要做的事情的上下文中 如何在 EJB 的事务中包含 POJO JMS 生产者 该生产者在调用
  • 在 Junit 测试中使用 ReflectionTestUtils.setField()

    我是 JUnittesting 的新手 所以我有一个问题 谁能告诉我为什么我们使用ReflectionTestUtils setField 在我们的 Junit 测试示例中 正如评论中提到的 java 文档很好地解释了用法 但我还想给你们举
  • 关于Java泛型的一些问题

    假设我有以下接口和实现类 interface Foo
  • 正则表达式在 Velocity 模板中不起作用

    我在 Test java 中尝试过这个 String regex lt s br s s gt String test1 lt br gt System out println test replaceAll regex 但是当我在速度模板
  • 从 HttpClient 3 转换为 4

    我已经成功地对所有内容进行了更改 但以下内容除外 HttpClient client HttpPost method client new DefaultHttpClient method new HttpPost url InputStr
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • Jetty Plugin 9启动不喜欢icu4j-2.6.1.jar

    我对 mortbay 的 Maven jetty 插件 6 有相同的配置
  • Java8:流映射同一流中的两个属性

    我有课Model带有以下签名 class Model private String stringA private String stringB public Model String stringA String stringB this
  • java中的预增量/后增量

    有人可以帮助我理解为什么 int i 1 int j 1 int k 1 int l 1 System out println i i System out println j j System out println k k System
  • 使用自定义比较器在 Java 中创建 SortedMap

    我想创建一个TreeMap在 Java 中具有自定义排序顺序 排序后的键是字符串 需要根据第二个字符进行排序 这些值也是字符串 示例地图 Za FOO Ab Bar 您可以像这样使用自定义比较器 Comparator
  • Jackson 反序列化相当于 @JsonUnwrapped 吗?

    假设我有以下课程 public class Parent public int age JsonUnwrapped public Name name 生成 JSON age 18 first Joey last Sixpack 我如何将其反
  • @Embeddable 中的 @GenerateValue

    我已将实体的 id 分离到一个单独的 Embeddable 类中 该实体如下 Entity Table name users public class Users EmbeddedId private Users pk id private

随机推荐

  • Python入门

    一 进制 1 什么是进制 进制就是进位的制度 一种进位的方式 2 常见的进制 二进制 0和1 0 1 十进制 0 9的整数 0 1 2 3 4 5 6 7 8 9 八进制 0 7的整数 用数字0开头 0 1 2 3 4 5 6 7 十六进制
  • ipconfig不是内部或外部命令

    错误背景 windows r 输入cmd dos命令输入ipconfig 出现不是内部或外部命令 解决方案 1 电脑 系统属性 环境变量 找到path 在末尾处 如没有分号就添加c windows system32 确定 windows r
  • Qt5 信号槽连接 函数重载、参数不一致问题

    Qt5中使用以下方式代替Qt4的信号槽连接 在编译时即对连接的函数指针进行检测 提高了安全性 而Qt4的连接方式是基于字符串的 只能在运行时进行检测 在Qt4的connect方法上右键 Refactor gt Convert connect
  • [数据库系统]第7讲 关系模式的优化知识点整理

    第1节 关系模型的好坏 ER模型转换的关系是否就是最优的关系 不一定 关系模型潜在的问题 添加异常 修改异常 删除异常 数据冗余 冗余 当数据的某些部分能由其他部分推导出来 就意味着存在冗余 冗余的存在是因为存在完整性约束 如何解决冗余问题
  • Transformer学习笔记

    The Illustrated Transformer Jay Alammar Visualizing machine learning one concept at a time jalammar github io 上面是图片出处 是否
  • CSS列表与表格

    目录 编辑 HTML 列表和 CSS 列表属性 不同的列表项目标记 实例 图像作为列表项标记 实例 定位列表项标记 实例 删除默认设置 实例 列表 简写属性 实例 设置列表的颜色样式 实例 更多实例 所有 CSS 列表属性 表格边框 实例
  • python PDF转docx库的安装与使用

    python PDF转docx库的安装与使用 下载 使用 三种方法 效果 下载 anaconda中直接通过anaconda prompt下载pdf2docx库 pip install pdf2docx 使用 三种方法 可以直接通过命令行使用
  • SpringMVC基础(5): SpringMVC常用注解

    目录 1 handler method 参数绑定常用注解 2 常用注解 1 PathVariable 2 RequestHeader CookieValue 3 Re Body 5 RequestBody和 RequestParam区别 6
  • 安装部署mysql、redis、minio、nginx

    离线安装部署mysql redis minio nginx jar包启动 系统环境 centos7 9 架构 X86 安装目录 server 记录安装笔记 依赖项在线安装的 下载离线依赖 yum install y nginx downlo
  • 最新升级的STM32CubeIDE属于一站式工具,本文带你体验它的强大

    目录 下载安装 配置生成代码 硬件在线调试 1 写在前面 2 STM32CubeIDE介绍 主要特点 3 STM32CubeIDE下载 4 STM32CubeMX安装 5创建工程并编译 下载安装 配置生成代码 硬件在线调试 1 写在前面 S
  • Vue 如何使用WebSocket与服务器建立链接 持续保持通信

    WebSocket 浏览器通过JavaScript向服务器发出建立WebSocket链接的请求 链接建立后 客户端和服务器端就可以通过TCP链接直接交互数据 WebSocket链接后可以通过send 方法来向服务器发送数据 并通过onnes
  • 【nodejs课堂】Node.js 创建第一个应用

    在我们创建Node js第一个 hello world 应用前 先了解一下Node js应用由哪几部分组成 1 引入required模块 我们可以使用require指令来载入Node js模块 2 创建服务器 服务器可以监听客户端的请求 类
  • MyEclipse8 GA 下载地址 注册码 优化指南

    官方网站限制大陆IP 可以通过http ajava org 直接下载 下面是winodws linux的下载地址 其他版本请自行去http ajava org 下载 注册码7 5GA 8 0GA貌似通用 但不绝对 window版下载地址 h
  • 语义分割数据增强(Data augmentation for semantic segmentation)

    数据增强 深度学习模型的鲁棒性 robustness 和泛化性受到训练数据的多样性和数据量所影响 数据增强 data augmentation 是机器学习和深度学习中经常采用的一个方法 其目的是扩大训练样本的数量 语义分割是计算机视觉一个重
  • 期货十三篇 第七篇 平仓篇

    在期货交易中曾经流行这样一句话 会开仓的是徒弟 会平仓的是师傅 会空仓的是大师傅 在最初的期货交易过程中 我的开仓还算比较顺利 基本上都可以获得一定的盈利 但是我的平仓却十分糟糕 往往把自己的盈利单变成微利单或者亏损单而狼狈离场 我实在不能
  • 贝锐蒲公英:助力企业打造稳定高效的智能安防监控网络

    随着技术的快速发展和物联网的普及 企业面临着许多安全威胁和风险 如盗窃 入侵 信息泄露等 企业需要建立安防监控系统来保护其资产 员工和业务运营的安全 然而 企业在搭建安防监控系统的过程中 可能会面临一些难点 包括以下几个方面 1 监控设备多
  • sysdig_系统分析工具 Sysdig 详解

    Sysdig 是 Sysdig Cloud 开发的主要基于Lua语言的一个开源系统分析工具 Sysdig 能从运行的系统中 获取系统状态和行为 做过滤分析 功能上超同类开源工具 Sysdig 可以看做是 strace tcpdump lso
  • Java将图片转换成透明底图片

    package com stefan test import java awt Graphics2D import java awt Image import java awt image BufferedImage import java
  • android黑科技系列——手机端破解神器MT的内购VIP功能破解教程

    一 前言 在破解app的时候 我们现在几乎都是在PC端进行操作 但是之前bin神的MT管理器 可以在手机端直接破解 不过也有很大的局限性 但是对于一些简单的app破解没问题的 这个工具其实原理也很简单 就是解析apk中的dex arsc等文
  • 宝兰德BES中间件单机版安全加固相关操作

    因某公司对安全的要求 需要对bes中间件进行安全加固 安全加固的内容主要包括对控制台默认地址修改 实例默认端口修改 控制台默认密码修改 密码加密 加密后的实例启停方式等 首先说一下今天安全加固操作的前提 需要已经分离式部署安装成功bes单机