JBoss 服务器安装
如果你要开启远程管理,请先参考 文档,找到 三个关键参数,然后执行如下命令,
如果你只是运行单机版,只需要指定 -install 参数,
java -jar RaspInstall.jar -install <jboss_root>
安装成功后,需要重启 JBoss 服务器生效。
不重启安装
以上方式安装成功之后需要重启服务器,如果在服务器启动的情况下,不重启安装 OpenRASP,需要在以上命令后面增加 -pid 参数指定运行的服务器进程 id,JDK6 - JDK8 样例命令如下,
# <server_pid> 为 jboss 进程 id
java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar RaspInstall.jar -install <jboss_root> -pid <server_pid>
由于无法在运行时增加 JbossEAP 对 OpenRASP 的运行时依赖,所以无法支持 JbossEAP 的不重启安装
jdk9 ~ jdk11 不支持不重启安装
1. 安装软件
进入到 jboss 安装目录(绝对路径包含空格将导致启动失败),e.g /opt/jboss
复制安装包内的 rasp
目录到当前目录,
cp -R ~/Downloads/rasp-20170721/rasp .
OpenRASP 需要在 rasp 目录下释放一些动态链接库,所以还需要修改 rasp 目录的权限,e.g
2. 配置 JBoss
打开bin/run.sh
, 找到任意以 JAVA_OPTS=
为起始的行,e.g
# Setup JBoss specific properties
JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"
# Setup JBoss specific properties
JAVA_OPTS="-Dprogram.name=$PROGNAME $JAVA_OPTS"
JAVA_OPTS="-javaagent:${JBOSS_HOME}/rasp/rasp.jar ${JAVA_OPTS}"
standalone模式
打开bin/standalone.sh
,找到# Display our environment
处,在下面添加:
JAVA_OPTS="${JAVA_OPTS} -javaagent:${JBOSS_HOME}/rasp/rasp.jar"
domain模式
server-group方式配置rasp
如果按照server-group配置rasp,那么此group下面所有的服务器都会安装rasp,打开文件,找到<server-groups>
标签,在需要安装rasp的server-group中找到<jvm>
标签添加如下配置:
server方式配置rasp
如果只对某个server-group的特定的server安装rasp,打开domain/configuration/host.xml
文件,找到<servers>
标签,在需要安装rasp的server中添加如下配置:
<jvm name="default">
<jvm-options>
<option value="-javaagent:<jboss_root>/rasp/rasp.jar"/>
</jvm-options>
</jvm>
3. 开启远程管理
配置方法同 ,不再赘述。
4. 验证安装是否成功
重启 JBoss 服务器,观察启动日志中是否出现 OpenRASP Engine Initialized
字段,出现则说明安装成功
1. 安装软件
进入到 jboss 安装目录,e.g D:\\jboss
复制安装包内的 rasp
目录到当前目录
2. 配置 JBoss
打开脚本后,找到任意以 set JAVA_OPTS
为起始的行,如:
set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%
在下面增加 set JAVA_OPTS=-javaagent:%JBOSS_HOME%\rasp\rasp.jar %JAVA_OPTS%
:
set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%
set JAVA_OPTS=-javaagent:%JBOSS_HOME%\rasp\rasp.jar %JAVA_OPTS%
standalone模式
打开 找到第一次
出现rem Setup JBoss specific properties
处,在下面添加:
domain模式
方法同 Linux 版本
3. 开启远程管理
配置方法同 Tomcat 开启远程管理,不再赘述。
4. 验证安装是否成功
重启 JBoss 服务器,观察启动日志(默认输出到终端)中是否出现 OpenRASP Engine Initialized
字段,出现则说明安装成功;或者访问一下服务器,检查是否存在 X-Protected-By: OpenRASP
响应头,存在即表示安装成功。
1. java.io.ObjectInputStream 错误
这个并不是 OpenRASP 的问题,请尝试更新JDK到最新版本
参考资料
2. JDK 9 以上版本兼容性问题
请参考 手动修改启动参数。我们会尽快修改 RaspInstall 程序,并自动添加这个配置。
3. org.jboss.logmanager.PropertyConfigurator cannot be cast to org.jboss.as.logging.logmanager.ConfigurationPersistence 异常
("subsystem" => "logging"),
("console-handler" => "CONSOLE")
]): java.lang.ClassCastException: org.jboss.logmanager.PropertyConfigurator cannot be cast to org.jboss.as.logging.logmanager.ConfigurationPersistence
at org.jboss.as.logging.logmanager.ConfigurationPersistence.getOrCreateConfigurationPersistence(ConfigurationPersistence.java:93)
at org.jboss.as.logging.logmanager.ConfigurationPersistence.getOrCreateConfigurationPersistence(ConfigurationPersistence.java:81)
at org.jboss.as.logging.LoggingOperations$LoggingOperationStepHandler.execute(LoggingOperations.java:154)
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:440) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:322) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:229) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:224) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at org.jboss.as.controller.ParallelBootOperationStepHandler$ParallelBootTask.run(ParallelBootOperationStepHandler.java:334) [jboss-as-controller-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]
,有两种解决方法:
- 升级到 JBoss EAP 6.1.1
- 手动修正 JBOSS_MODULES_SYSTEM_PKGS 配置,暴露相关的Jar给javaagent