Skip to main content

Linuxで自動更新を使用してJavaエージェントをインストール

ユーザによっては、ContrastのJavaエージェントを自動的に最新バージョンに更新したい場合があります。Linuxユーザの場合、一般的なLinuxツールであるcroncurlを使用して、Maven CentralからJavaエージェントの更新をスケジュールできます。

ここでは、Ubuntu 18.04 LinuxホストでJavaエージェントの更新ジョブをスケジュールするよう設定する方法について説明します。

注記

本項で説明する内容のファイルの作成には、お好きなエディタを使用してください。以下の例では、teeコマンドを使用してファイルを作成します。

  1. ここでの手順に沿って各ステップを実行したい場合は、VagrantVirtualBoxを使用して、Ubuntu 18.04の仮想マシンを新規に作成することもできます。

    vagrant init ubuntu/bionic64
    
    vagrant up
    
    vagrant ssh
    
  2. Contrastソフトウェア用の共有ディレクトリを作成します。

    sudo mkdir -p /opt/contrast
  3. 最新のJavaエージェントをインストールするためのスクリプトを/etc/cron.dailyディレクトリに作成します。このディレクトリ内のスクリプトは毎日1回実行され、その結果、ホストで毎日Javaエージェントが最新に更新されます。

  4. teeを使用してこのスクリプトを作成します。全ての行を入力し終わったら、CTRL+Dを押します。

    $ sudo tee -a /etc/cron.daily/install-latest-contrast-agent > /dev/null
    #!/bin/bash -u
    
    CONTRAST_DIRECTORY=/opt/contrast
    CONTRAST_FILE_NAME=contrast-agent.jar
    
    CONTRAST_VERSION=$(curl --fail --silent 'https://search.maven.org/solrsearch/select?q=g:com.contrastsecurity+a:contrast-agent' | sed -e 's/[{}]/''/g' | sed s/\"//g | awk -v RS=',' -F: '$1=="latestVersion"{print $2}' | grep -v -e '^$')
    curl --fail --silent --location "https://repo1.maven.org/maven2/com/contrastsecurity/contrast-agent/${CONTRAST_VERSION}/contrast-agent-${CONTRAST_VERSION}.jar" -o "contrast-agent-${CONTRAST_VERSION}.jar"
    if [ $? -ne 0 ]; then
        echo "Failed to download Contrast Java agent" >&2
        exit 1
    fi
    mv /tmp/$CONTRAST_FILE_NAME $CONTRAST_DIRECTORY/$CONTRAST_FILE_NAME
  5. 新しいスクリプトファイルに実行権限を設定します。

    sudo chmod +x /etc/cron.daily/install-latest-contrast-agent
  6. スクリプトをテストするために、スクリプトを実行します。statを使用してファイルが存在することを確認します。

    $ sudo /etc/cron.daily/install-latest-contrast-agent
    $ stat /opt/contrast/contrast-agent.jar
    stat /opt/contrast/contrast-agent.jar
      File: /opt/contrast/contrast-agent.jar
      Size: 10568283        Blocks: 20648      IO Block: 4096   regular file
    Device: 801h/2049d      Inode: 256034      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2019-04-11 02:02:01.265775928 +0000
    Modify: 2019-04-11 02:24:47.849796936 +0000
    Change: 2019-04-11 02:24:47.849796936 +0000
     Birth: -
  7. Contrastエージェントには、Contrastサーバと通信するための設定が必要です。エージェントのキー情報はこちらを参照してください。

  8. ContrastエージェントをLinuxホストにインストールしたら、通常は、ホスト上でContrastが有効な各Webアプリケーションが、Contrastサーバへの接続に必要なパラメータなどの基本的な設定値を共有できるように構成します。通常、ContrastはLinuxホスト上のパス/etc/contrast/java/contrast_security.yamlにあるYAMLファイルの設定を探します。

  9. /etc/contrast/javaディレクトリを作成してください。

    sudo mkdir -p /etc/contrast/java
  10. teeコマンドを使用して、設定ファイルを作成します。<contrast_url><your_api_key><agent_user_name><agent_user_service_key>を、前述のステップでContrastから取得した値に置き換えます。

    $ sudo tee -a /etc/contrast/java/contrast_security.yaml > /dev/null
    api:
      url: <contrast_url>
      api_key: <your_api_key>
      user_name: <agent_user_name>
      service_key: <agent_user_service_key>
  11. 全ての行を入力し終わったら、CTRL+Dを押してください。

  12. Contrastがインストールされ、正しく設定されていることを確認するために、診断テストを実行します。診断テストを実行するには、ホストにJavaがインストールされている必要があります。

    sudo apt install --yes openjdk-11-jre-headless
  13. 最後に、Javaエージェントの診断テストを実行します。エージェントが正しくインストールされ、/etc/contrast/java/contrast_security.yamlの設定パラメータを使用して、Contrastサーバと通信できることを確認します。

    $ java -jar /opt/contrast/contrast-agent.jar diagnostic
    *** Contrast Agent (version 3.6.3-SNAPSHOT)
    [!] Attempting to connect to the Contrast TeamServer at https://apptwo.contrastsecurity.com/Contrast (No proxy).
    [!] Attempting to resolve domain: apptwo.contrastsecurity.com
            Resolved domain apptwo.contrastsecurity.com to IP Address 52.200.215.12
    [+] Client successfully resolved the DNS of the Contrast TeamServer. No proxy needed.
    [!] Issuing HTTP request to Contrast...
            Executing request...
            Reading response [200]
            Response size = 4209
            Snippet: <!doctype html> <!--[if gt IE 8]><!--> <html class="no-js" i
    [+] Client can connect directly to the Contrast TeamServer. No proxy needed.