7.4. インストールと展開¶
7.4.1. 概要¶
Ericom Shieldは、環境アーキテクチャと接続要件に応じて、さまざまな方法を使用してインストールできます。
インストール方法 | 説明 | 推奨 | 要件 |
---|---|---|---|
スクリプトによるオンラインインストール | 最新のShieldインフラストラクチャスクリプトとインストールファイルのリアルタイムダウンロード。 | 最新の安定したShieldバージョンを必要とするインターネット接続のある環境。 | Ubuntu Server18.04とインターネット接続 |
OVA /レジストリを介したオフラインインストール | ローカルレジストリからのShieldのインストール。 | インターネットに接続できない環境。 | Ubuntu Server18.04およびレジストリOVA。
注: レジストリサーバーは、Shieldサーバーにすることもできます。
|
高可用性の本番環境(推奨)の場合、マスター(クラスタ管理)マシンが3台必要です。
7.4.2. スクリプトによるオンラインインストール¶
推奨は、クラスタのデプロイと管理に使用する専用のLinuxマシンをセットアップすることです。このマシンは、Rancher Serverマシンと呼ばれます。このマシンには、すべての内部コンポーネント(KubectlやHelmなど)が含まれます。Rancher Serverは、別のマシンでも、マスターマシン(etcdとControl Planeを実行)の1つでもよい。システム内の他のすべてのノードは、デプロイメントタイプによって決まります。
ノードの準備¶
これらの要件に従って、希望する展開に応じた必要台数のマシンを準備します。Shieldシステム内のすべてのマシンが持っている必要があります。
- 固定IPアドレス
- 同じタイムゾーン(システム内の他のマシンと同じ)であること
- 一意のホスト名
以下の手順でマシンを準備します。
- DNSとネットワークの設定は、Ubuntuの勧告に従って行ってください(Name Resolutionで検索してください)。
- すべてのマシンを同期させる必要があります。マシンのNTP(Network Time Protocol)とタイムゾーンを設定する。
sudo timedatectl set-ntp on
sudo systemctl restart systemd-timesyncd
timedatectl set-timezone <Continent>/<City>
マシンの名前をユニークな名前に変更します(クラスタを正しく作成するために必要です)。rootで、実行します。
hostnamectl set-hostname <NewUniqueHostname>
/etc/hosts ファイルで新しいホスト名を更新します。不足している場合は、追加してください。
ShieldシステムにSSLインスペクションを使用するUpstream Proxyが含まれている場合、マシンに一致する証明書をインストールします。usr/local/share/ca-certificate/cert-1.crt に移動して、cert-1.crt というファイルを作成し、実行してください。
sudo update-ca-certificate
マシンを再起動する。
システム内の各マシンについて、この手順を繰り返します。
Rancherサーバーを準備する¶
注意
Shieldのオンラインリポジトリには、有効なパスワードが必要です。続行する前に、Ericom Shield プロフェッショナルサービスに連絡して、有効なパスワードを入手してください。
LinuxのRancher Serverマシンで、このコマンドをコピーして実行します。
curl -so install-shield.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/master/Kube/scripts/install-shield.sh
chmod +x install-shield.sh
sudo ./install-shield.sh -l -p <PASSWORD>
このコマンドは、Rancherをすべてのラベルで実行し(-l)、最新のShieldリポジトリを使用します。
スクリプトが正常に終了すると、このようなリンク画面が表示されます。

スクリプトが完全に完了しない場合は、install-shield.sh スクリプトを再度実行してください。
sudo ./install-shield.sh -l -p <PASSWORD>
サーバーノードの準備¶
複数ノードのシステムを展開する場合、Shieldクラスタに参加する各サーバーノードは、クラスタを作成する前に準備する必要があります。Linux Rancher Serverマシンから実行します。
./shield-prepare-servers [-u <USER>] <ServerIPAddress(s)>
ユーザーは全ノードに存在するユーザで置き換えてください.ServerIPAddress(s)をシステムノードのIPアドレスのリスト(ServerIPAddress(s)を含む)で置き換えます. IPアドレスは、スペース(" ")で区切って複数入力することができます。
例)
./shield-prepare-servers -u ericom xx.xx.xx.xx yy.yy.yy.yy
Shieldのアップグレード(スプリットモード以外)¶
既存の非分割モードデプロイメントをアップグレードするには、以下を実行します。
home/ericom/ericomshield/config-backup/dailyからShield設定ファイル(Json)をバックアップする。
sudo ./stop.sh (Ubuntu 20で実行する場合 - sudo -E を使用) (これはすべての "sudo" コマンドに適用されるコメントです)
- curl -s -o install-shield.sh https://raw. githubusercontent. com/EricomSoftwareLtd/Shield/master/Kube/scripts/install-shield.sh
(オフラインでのアップグレードには、古い install-shield.sh スクリプト、またはレジストリマシンで利用できるスクリプトを使用します。)
sudo chmod +x install-shield.sh
- sudo ./install-shield.sh -v <VERSION NUMMER> (例: Rel-22.08.934)
Ubuntu 20.04 に新規インストールする場合、以下のコマンドを使用します。
sudo -E ./install-shield.sh -l -p Ericom98765$ -v Rel-22.08.934
アップグレードが完了したら、すべてのサービスが開始されるまで数分待ちます。
注意
Shield を新しいバージョンにアップグレードする場合、Shield ノード上で shield-prepare-servers スクリプトを実行しないでください。このスクリプトは、クラスタに追加した新しいノードでのみ実行する必要があります。
注意
インストール後、ファイルプレビューに既知の問題があり、問題が発生した場合、関連するポッド(es-file-preview)を再起動する必要があります。

Shieldを展開する¶
Shieldの展開(続き)の手順を実行します。
7.4.3. OVA /レジストリを介したオフラインインストール¶
Shield OVA / Registryは、サーバーにShieldをインストールするため、およびインターネット接続がない場合に必要なすべてのサービスのコレクションです。
注意
Shield OVA / Registryは、準備された他のUbuntuサーバーにShieldをインストールするために使用することも、Shieldサーバー自体として使用することもできます。
準備されたUbuntuサーバーにShieldをインストールする場合、Shieldレジストリ自体(レジストリVMと呼ばれる)専用の単一のマシンが必要です。この特定のマシンの要件は次のとおりです。
- 最小:1コア / 2GBメモリ
- おすすめされた:2コア / 4GBメモリ
Shieldシステムを計画するときは、クラスターの展開と管理に使用される専用のLinuxマシンをセットアップすることをお勧めします。このマシンは、RancherServerマシンと呼ばれます。このマシンには、すべての内部コンポーネント(Kubectl&Helmなど)が含まれます。ランチャーサーバーは、別のマシンにすることも、マスターマシンの1つ(etcdとコントロールプレーンを実行する)に置くこともできます。システム内の他のすべてのノードは、デプロイメントタイプによって決定されます。
このウィジェットには以下のデータが含まれます:
- システムの一部となるすべてのノードを準備します
- ShieldレジストリVMを作成します
- ランチャーサーバーを作成する
- 他のノードをクラスターに追加します。
ノードの準備¶
Shieldシステムのすべてのマシンには、次のものが必要です。
- 固定IPアドレス
- 一意のホスト名
- 同じタイムゾーン(システム内の他のマシンと同じ)
次の手順に従って、マシンを準備します。
ericom / ericomshieldを使用してログインします。マシンのIPを一意で静的になるように構成します。
/etc/systemd/network に移動し、20-wired.networkファイルを編集します。 DHCP = ipv4の行を変更して、特定のIPアドレス/サブネットを参照します。次に例を示します。
[マッチ]
名前= en *
[通信網]
アドレス= 10.1.10.12 / 24
ゲートウェイ= 10.1.10.1
DNS = 10.1.10.1
#オプション、倍数を使用できます
#DNS = 10.1.10.2
IPForward = ipv4
注意
DHCPサーバーが環境に存在する場合は、予約済み(静的)IPをレジストリVMにリースするように構成します。最初の起動時にレジストリVMに指定されたIPアドレスによってノードのMACアドレスを判別できるはずです。
すべてのマシンを同期する必要があります。マシンのNTP(ネットワークタイムプロトコル)とタイムゾーンを構成します。
sudo timedatectl set-ntp on
sudo systemctl restart systemd-timesyncd
timedatectl set-timezone <Continent> / <City>
マシンの名前を一意の名前に変更します(クラスターを正しく作成するために必要です)。ルートとして、次を実行します。
hostnamectl set-hostname <NewUniqueHostname>
/etc/hosts ファイルの新しいホスト名を更新します。欠落している場合は追加します。
ShieldシステムにSSL検査を使用するアップストリームプロキシが含まれる場合は、一致する証明書をマシンにインストールする必要があります。これを行うには、/usr/local/share/ca-certificate/cert-1.crt の下にファイル cert-1.crt を作成し、次のコマンドを実行します。
sudoupdate-ca-certificate
マシンを再起動します
システム内のマシンごとにこれらの手順を繰り返します。
必要に応じて、OSのサイズを増やします(VMwareのサイズと一致するように)。以下を実行します:
growpart /dev/sda1
resize2fs /dev/sda1
ShieldレジストリVMを準備します¶
Shield Registryをダウンロードし、VMを起動します。
https://shield-ova.s3.amazonaws.com/shield-kube-Rel-21.07.780.1.ova
ダウンロードしたファイルには、バージョン名が含まれています。それを保管してください。
さらに、このVMのIPアドレス(RegistryIPAddressと呼ばれる)を保持します。インストールプロセス中に両方の詳細が必要になります。
注意
レジストリVMは常に稼働している必要があります。Dockerオフラインレジストリはポート5000でアクセスできます
サーバーノードを準備する¶
注意
OVA /レジストリサーバーをShieldサーバー自体として使用する場合は、この手順をスキップできます。
Shieldクラスターに参加する各サーバーノードは、クラスターを作成する前に準備する必要があります。レジストリVMにログインして、以下を実行します。
./shield-prepare-servers -u <USER> --offline-mode --offline-registry <RegistryIPAddress:5000> <ServerIPAddress(s)>
USERを、すべてのノードに一致するユーザーに置き換えます。ServerIPAddress(s)を、システム内のすべてのノードのIPアドレスのリストに置き換えます。 スペース( 「」)で区切って、複数のIPアドレスを入力できます。
- 例:
./shield-prepare-servers -u ericom --offline-mode --offline-registry vv.vv.vv.vv:5000 xx.xx.xx.xx yy.yy.yy.yy zz.zz.zz.zz
ランチャーサーバーを準備する¶
システム内のノードの1つにログインします。このノードはRancherサーバーになります。
レジストリVMから次のファイルを取得します(RegistryIPAddressを実際のIPに置き換えてください。ポート85が使用されていることに注意してください):
curl -s -o install-shield.sh http://<RegistryIPAddress>:85/ericomshield/install-shield.sh
chmod x install-shield.sh
sudo ./install-shield.sh -l -p <PASSWORD> -v <version-name> --registry <RegistryIPAddress:5000>
バージョン名の形式は次のとおりです。Rel-yy.mm.xxx(例:Rel-21.01.734)。 Shield Registryファイル(以前にダウンロードされたファイル)に記載されているバージョン名を使用します。
Shield を展開する¶
Shieldの展開(続き)の手順を実行します。
7.4.4. Shieldの展開(続き)¶
サーバーノードをクラスターマスターに接続する¶
Rancherを https://RancherServerIPAddress:8443 (Rancher ServerのIPアドレスを使用)開きます。
デフォルトのパスワードadminとericomshieldでログインします。
注意
スクリプトインストールを使用する場合、スクリプトが完了してから5~10分待ってからRancherのURLに移動してください。
クラスタに移動し、[編集]を選択します

ページの一番下までスクロールし、必要なチェックボックスをマークして(計画された展開に従って)、一番下のコマンドをコピーします(右側の[クリップボードにコピー]オプションを使用)。

コピーしたコマンドを各サーバーノードで実行し(SSH経由)、クラスターに参加させます。コピーしたコマンドが、参加するノード(Master/Worker)と一致していることを確認してください。クラスタメニューの[ノード]をクリックして、ノードの参加に従います。

クラスターが更新を開始します。

プロセスが終了するまで待ちます。ノードがクラスターに参加すると、ページの下部に緑色のメッセージが表示されます。クラスタが完了するまで、ノードごとにこのプロセスを繰り返します。
- ノードラベルの設定
計画されている展開に従って、各マシンのノードラベルを設定します。
ランチャーで、[ノード]を選択し、編集するノードごとに、右側のメニューから[編集]オプションを選択します。

[ノードの編集]ダイアログで、[ラベルと注釈]セクションを展開し、目的のラベルをノードに追加します。ラベルごとに、値acceptを設定します。可能なラベルは次のとおりです。

ラベルは、手動で1つずつ追加することも、次のラベルの1つ以上の行にコピー/貼り付けを使用して追加することもできます。
shield-role/management=accept
shield-role/proxy=accept
shield-role/elk=accept
shield-role/farm-services=accept
shield-role/remote-browsers=accept
保存を押します。更新されたラベルがノードの詳細に表示されます。

この時点で、Rancherに組み込まれているクラスター監視ツールであるPrometheusとGrafanaを有効にすることをお勧めします。
監視ツールを有効にするには、[クラスター] | [クラスター]に移動します。ツール|モニタリング:

下にスクロールして有効にします。
注意
クラスタ監視ツールはいくつかのリソースを消費します。クラスタレベルで十分なリソースがある場合は、これらのツールを強くお勧めします。ただし、Shieldシステムの機能には必須ではありません。
システムを再起動して、追加されたノードと定義されたラベルを適用します
sudo ./stop.sh
sudo ./start.sh
これで、新しいクラスターの準備が整いました。
システムステータスの確認¶
ランチャーで、[ワークロード]でシステムが稼働しているかどうかを確認します。詳細については、クイックガイド|Shieldステータスの確認方法セクションをご覧ください。
7.4.5. スプリットモード¶
Shieldは、一部のコンポーネントをLANに、他のコンポーネントをDMZに配置するSplit Modeで展開されることがあります。
これが選択された場合、2つのクラスタが作成され、その場所(DMZ/LAN)ごとに定義されます。

管理クラスタ(クラスタ A)は LAN にあり、管理コンポーネントとプロキシコンポーネントが含まれます。ファームクラスタ(クラスタB)はDMZにあり、ELKとブラウザファームが含まれています。
この場合、2つのクラスタ間を接続し、一方のクラスタのコンポーネントをもう一方のクラスタに認識させ、通信することで、Shieldを正しく機能させるための設定が必要です。
管理者用コンフィギュレーション¶
Admin | Settings | Dynamic Nodes に移動し、Dynamic Nodes Farm の URL を更新して、30443 ポートを使用してファームを指すようにします。例:ericom-farm.mydomain.local:30443
Admin | Settings | Advanced に移動し、Websocket URL を ericom-farm.mydomain.local を指すように更新します。
異なるコンポーネントを設定する¶
クラスタA(ドメイン)の設定変更
注意
以下の説明には、YAMLファイルのいくつかの変更が含まれています。正しいインデントを維持する必要があり、スペースのみを使用することに注意してください。タブの使用はYAMLではサポートされておらず、エラーの原因となります。
Cluster Aが稼働しているマシンに行き、以下のyamlファイルを更新します。
custom-management.yaml と custom-proxy.yaml を編集します(ファイル内の説明に従ってください)。
Split-Mode: uncomment these lines and replace the IP (dashes separated) of the server running the Browser Farm
# farmAddress: |
# - name: FARMURL
# value: https://ericom-farm.mydomain.local:30443
# - name: FARMENABLED
# value: 'true'
# When ELK is running on a different system (e.g. Split Mode), uncomment this
# line and replace the IP (enter the IP of the server running ELK)
# elasticHost: "ericom-farm.mydomain.local:9200"# Split-Mode: uncomment these lines and replace the IP (dashes separated) of the server running the Browser Farm
# farmAddress: |
# - name: FARMURL
# value: https://ericom-farm.mydomain.local:30443
# - name: FARMENABLED
# value: 'true'
# When ELK is running on a different system (e.g. Split Mode), uncomment this
# line and replace the IP (enter the IP of the server running ELK)
# elasticHost: "ericom-farm.mydomain.local:9200"Detected apache
注意
ericom-farm.mydomain.local は、使用する特定のサーバー、または複数のサーバーを使用する場合は VIP を指す必要があります。
custom-common.yamlを編集し、ファイル内の指示に従って、Managementの関連ファイルをアンコメントします。
For Split Mode only on Management Uncomment these lines:
# Replace the IP (enter the IP of the server running ELK)
# logstash:
# elasticHost: "ericom-farm.mydomain.local:9200"
# logstashHost: ""
# logstashPort: "30500"# For Split Mode only on Management Uncomment these lines:
# Replace the IP (enter the IP of the server running ELK)
# logstash:
# elasticHost: "ericom-farm.mydomain.local:9200"
# logstashHost: ""
# logstashPort: "30500"Detected apache
さらに、IPをCluster BのIPアドレス(DMZ内)に更新します。
クラスタB(DMZ)の設定変更
注意
以下の説明には、YAMLファイルのいくつかの変更が含まれています。正しいインデントを維持する必要があり、スペースのみを使用することに注意してください。タブの使用はYAMLではサポートされておらず、エラーの原因となります。
Cluster Bが動作しているマシンに移動し、custom-farm.yamlを編集します。ファイル内の指示に従って、以下の行をアンコメントします。
Split-Mode: uncomment these lines:
# proxyless:
# sslip:
# enabled: true
# extProxyIngress: true
# extProxyIngressPort: 30128# Split-Mode: uncomment these lines:
# proxyless:
# sslip:
# enabled: true
# extProxyIngress: true
# extProxyIngressPort: 30128Detected shell
custom-common.yamlを編集し、ファイル内の指示に従って、Farmの該当行をアンコメントします。
For Split Mode only on FARM - Uncomment these lines:
# logstash:
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'
# filebeat:
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'# For Split Mode only on FARM - Uncomment these lines:
# logstash:
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'
# filebeat:
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'Detected shell
custom-values-elk.yamlファイルを編集し、コメントを外します。
On split mode Uncomment and change to the appropriate port
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'
# logstash:
# cloudProvider: "local"
# service:
# type: NodePort
# ports:
# - name: beats
# protocol: TCP
# nodePort: 30500
# port: 5000
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'# On split mode Uncomment and change to the appropriate port
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'
# logstash:
# cloudProvider: "local"
# service:
# type: NodePort
# ports:
# - name: beats
# protocol: TCP
# nodePort: 30500
# port: 5000
# consulvar: |
# - name: CONSUL_HOST
# valueFrom:
# fieldRef:
# fieldPath: status.hostIP
# - name: CONSUL_PORT
# value: '8500'Detected shell
Portsの表から、Yes/Exclusiveと表示されているポートがすべて開かれていることを確認します。
Shieldのアップグレード(スプリットモード)¶
既存の非分割モードデプロイメントをアップグレードするには、以下を実行します。
注意
ステップ 3 と 10 は、ファームノードでのみ実行されます。
- home/ericom/ericomshield/config-backup/dailyからシールド設定ファイル(Json)をバックアップ。
- sudo ./stop.sh -n <必要なら関連する名前空間も> Ubuntu 20で実行している場合 - sudo -Eを使用 (これはすべての "sudo" コマンドに適用されるコメントです)。
- custom-farm.yaml (ericomshield ディレクトリ)を編集用に開き、avOnFarm: true という行を追加。この行のインデントが重要です。
- custom-values-elk.yamlの名前を変更し、バックアップ用とする。
- curl -s -o install-shield.sh https://raw.githubusercontent.com/EricomSoftwareLtd/Shield/master/Kube/scripts/install-shield.sh (オフラインでのアップグレードには、古い install-shield.sh スクリプトか、レジストリマシンで利用できるスクリプトを使用します)
- sudo chmod +x install-shield.sh
- sudo ./install-shield.sh -v <VERSION NUMMER> (例: Rel-22.08.934) Ubuntu 20.04 に新規インストールする場合、以下のコマンドを使用します。
オフラインモードの場合は以下を実行します。
- sudo rm /etc/iptables/rules.v4 を実行。
- OVAレジストリのマシンからinstall-shield.shをコピー。
- curl -so install-shield.sh http://<RegistryIPAddress>:85/ericomshield/install-shield.sh
- パーミッションの変更: chmod +x install-shield.sh
- sudo ./install-shield.sh -v <バージョン名> n <必要に応じて関連する名前空間を含む> –registry <RegistryIPAddress>:5000
例えば、sudo ./install-shield.sh -v Rel-22.08.934 -n shield-farm -n shield-elk –registry 10.0.1.102:5000 です。
以下のように設定を続けます。
- custom-values-elk.yaml を編集用に開き、分割モードの設定をアンコメントします。ファイル内に手動で変更した箇所があれば、手順4で行ったバックアップからコピーする
- sudo cp custom-farm.yaml custom-farm.yaml.orig
- custom-farm.yaml を開いて編集し、minio を true に設定します。

sudo ./start.sh -n shield-elk shield-farm -f
Ubuntu 20の場合 - sudo -Eを使用します。
アップグレードが完了したら、すべてのサービスが開始されるまで数分待ちます。
注意
インストール後、ファイルプレビューに既知の問題があり、問題が発生した場合、関連するポッド(es-file-preview)を再起動する必要があります。
注意
スプリットモードで「CDR in Allow」を使用しないでください。この展開タイプではサポートされていません。
注意
Shield を新しいバージョンにアップグレードする場合、Shield ノード上で shield-prepare-servers スクリプトを実行しないでください。このスクリプトは、クラスタに追加した新しいノードでのみ実行する必要があります。
注意
Rancher では、インストール/アップグレード/再起動後に cdr-dispatcher と cdr-controller のポッドを再起動する必要があります。
注意
オフラインデプロイメントでは、アップグレード後に Shield-elk-management に既知の問題が発生します - 問題が発生した場合は、関連するポッドを再起動する必要があります。