Skip to content

Latest commit

 

History

History
239 lines (147 loc) · 9.73 KB

java.md

File metadata and controls

239 lines (147 loc) · 9.73 KB

1.下载探针

  1. 登陆 洞态IAST平台部署IAST 中下载洞态IAST的Agent。根据需求选择下载方式:
  • 点击下载 jar 包到本地

  • curl 命令下载

  1. 将 agent.jar 文件放入WEB服务器(中间件)所在机器上,保证 agent.jar 文件所在目录具有可写权限,如:/tmp

2. 安装探针

2.1 自动安装探针

上传 DongTai Java Agent 探针到应用服务器,查看 Web 应用的进行 Web 应用的进行 id,运行命令安装探针,如下:

java -jar agent.jar -m install -p <pid>

2.2 手动安装探针

2.2.1 SpringBoot

  1. 如果使用war包的方式部署,agent的安装方式为以下具体中间件的安装方式

  2. 如果使用java -jar app.jarJava 命令部署,则在启动命令中增加启动参数-javaagent:/path/to/agent.jar

    java -javaagent:/path/to/agent.jar -Dproject.name=<project name> -jar app.jar
  • 注意:-Dproject.name=<project name> 参数中的 <project name> 是项目名称,当项目名称与洞态IAST官网上项目管理中创建的项目名称保持一致的话,agent将自动关联至项目。

2.2.2 Tomcat

  1. 进入tomcat所在目录

  2. 修改配置文件

  • Linux环境下,在 tomcat/bin 目录下编辑 catalina.sh 文件,加入参数:

    ```shell
    CATALINA_OPTS=-javaagent:/path/to/server/agent.jar" "-Dproject.name=<project name>
    ```
    

    tomact_config_catalina.png

  • Windows环境下,在 tomcat/bin 目录下编辑 catalina.bat 文件,在首行加入参数:

    set CATALINA_OPTS=-javaagent:/path/to/server/agent.jar -Dproject.name=<project name>

    若无法使用修改 catalina.bat 的方式,请参考以下方式配置:

    • 如果是下载的 "32-bit/64-bit Windows Service Installer" 安装包

      tomact_config_catalina.png

      打开 bin/tomcatXw.exe ,切换到 Java 标签页。在 Java Options 下面增加启动参数,注意替换下绝对路径,e.g

      -javaagent:path\to\agent.jar
      

      对于JDK9以上版本,还需要额外增加如下内容

      --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED
      --add-opens=java.base/java.net=ALL-UNNAMED
      
    • 如果是下载的 "Windows zip" 安装包

      打开 bin\catalina.bat, 找到 :setArgs 处:

      :setArgs
      if ""%1""=="""" goto doneSetArgs
      set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1

      :setArgs 下增加新的 JAVA_OPTS,e.g

      :setArgs
      if "%ACTION%" == "start" set JAVA_OPTS=-javaagent:%CATALINA_HOME%\path\to\agent.jar %JAVA_OPTS%
      if ""%1""=="""" goto doneSetArgs
      set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1

      对于JDK9以上版本,还需要额外增加两个JDK启动参数,e.g

      :setArgs
      if "%ACTION%" == "start" set JAVA_OPTS=-javaagent:%CATALINA_HOME%\path\to\agent.jar --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED %JAVA_OPTS%
      if ""%1""=="""" goto doneSetArgs
      set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
      
  • 注意:-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。

2.2.3 JBoss/Wildfly

  • JBossAS 6

    1. 进入JBoss容器的主目录,在bin/run.sh文件中找到# Setup JBoss specific properties所在行,在该行的下面插入如下行:

      JAVA_OPTS="-javaagent:/opt/jboss/iast/agent.jar $JAVA_OPTS"
      JAVA_OPTS="-Dproject.name=<project name> $JAVA_OPTS"
    • 注意,-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。
  • JBossAS 7、JBossWildfly

    1. 进入JBoss容器的主目录,根据当前服务器的启动类型:standalone、domain修改对应的配置文件

      Standalone模式

      打开bin/standalone.sh文件,定位# Display our environment所在的行,在其上方插入自定义配置,如下:

      JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/jboss/iast/agent.jar"
      JAVA_OPTS="$JAVA_OPTS -Dproject.name=<project name>"

      domain模式

      • server-group方式配置
          <jvm-options>
              <option value="-javaagent:<jboss_root>/path/to/agent.jar"/>
              <option value="-Dproject.name=<project name>"/>
          </jvm-options>
      • server方式配置
        <jvm name="default">
            <jvm-options>
                <option value="-javaagent:<jboss_root>/rasp/rasp.jar"/>
                <option value="-Dproject.name=<project name>"/>
            </jvm-options>
        </jvm>
    • 注意,-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。

2.2.4 Resin

1.进入Resin的主目录,

2.打开conf/cluster-default.xml文件,定位到<server-default>所在的行,

3.在该行下面插入

<jvm-arg>-javaagent:/opt/Resin/iast/agent.jar</jvm-arg>
<jvm-arg>-Dproject.name=<project name></jvm-arg>
  • 注意,-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。

4.重启Resin

2.2.5 Jetty

1.进入jetty的主目录

2.打开bin/jetty.sh文件,找到Add jetty properties to Java VM options.所在行

3.在改行的下面插入JAVA_OPTIONS+=( "-javaagent:/path/to/agent.jar --Dproject.name=<project name>")

  • 注意,-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。

4.重启jetty服务器

2.2.6 WebLogic

  1. 通过WebLogic的console控制台

    访问weblogic的console,例如:

    • 找到“环境”下的“服务器”,然后在服务器列表中点击需要安装agent的服务器,如:AdminServer

      adminserver.png

    • 进入服务器详情,点击“服务器启动”,在下方的参数一栏中填入javaagent的参数

      JAVA_OPTS="$JAVA_OPTS "-javaagent:/opt/jboss/iast/agent.jar" "-Dproject.name=<project name>

      注意,-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。

      adminserver.png

    • 重启服务器,使配置生效

      adminserver.png

  2. 通过修改weblogic的config.xml文件

    找到/u01/oracle/weblogic/user_projects/domains/base_domain/config目录下的config.xml文件,定位到<server-start>标签下的<arguments>标签,在标签内添加如下配置: -javaagent:/path/to/agent.jar -Dproject.name=<project name>

    注意,-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。

2.2.7 WebSphere

  1. 进入WebSphere WEB端的管理后台,在控制台左侧的导航栏里,选择Servers -> Server Types -> WebSphere Application Server,进入应用列表界面:

    app.png

  2. 选择需要安装agent的应用(以server1为例),点击进入管理页面。在新页面向下翻,找到Server Infrastructure -> Process definition,并点击进入:

    server1.png

  3. 点击Additional Properties -> Java Virtual Machine进入JVM启动参数编辑界面

    jvmarg.png

  4. 找到Generic JVM arguments选项,开始编辑并在里面填写以下内容并保存-javaagent:/path/to/agent.jar -Dproject.name=<project name>

    注意,-Dproject.name=<project name> 为可选参数,<project name>与创建的项目名称保持一致,agent将自动关联至项目;如果不配置该参数,需要进入项目管理中进行手工绑定。

3. 重启应用服务

请重启您的应用服务器。 若尚未启动 Web 应用服务器,请启动 Web 应用服务器。然后再浏览器访问应用。稍等1-2分钟,刷新系统配置页面,点击引擎管理,查看探针是否注册成功。如果没有注册成功,按照如下步骤进行排查:

  1. 检查 agent.jar 文件

    运行 java -jar /path/to/agent.jar 命令,查看是否反馈 agent.jar 的使用帮助,如果没有,说明 agent.jar 文件不正确,请重新下载然后检查 agent.jar 文件,如果仍然不正确,请前往 github 给工程师提交 issue,我们会及时给您回复。

  2. 检查网络情况

    在 Web 应用服务器中,检查是否可访问 https://openapi.iast.io 服务,如果不可访问,说明网络不通,请解决网络访问的问题;如果网络不存在问题,请前往 github 给工程师提交 issue,我们会及时给您回复。