ツールのダウンロード
<動作環境>
本ツールは、sshコマンドを利用し、内部ネットワークのWebサーバとVAddyのサーバとを繋ぎます。
- javaとssh, ssh-keygen, psコマンドを利用します。
- sshコマンドがOSに標準装備されているMacOS、Linux/Unixをサポートしています。
- sshは外部のsshサーバ(pfd.vaddy.net)の22番ポートに接続しますので、外部ネットワークへssh接続が許可されている必要があります。
<ダウンロード>
gitを利用している方は、 https://github.com/vaddy/go-vaddyからダウンロードしてください。
$ git clone https://github.com/vaddy/go-vaddy.git
それ以外の方は、 https://github.com/vaddy/go-vaddy/archive/master.zipからzipダウンロードしてください。
<ディレクトリ構成>
ダウンロードしたファイルで、PrivateNet版VAddyに関するものは、privatenetというフォルダになります。
システムの概要と設定方法は、 https://github.com/vaddy/go-vaddy/blob/master/privatenet/README_ja.md に記載しています。
ツールの設定
<設定ファイル>
次に、privatenet/conf/vaddy.conf.example ファイルをprivatenet/conf/vaddy.confにコピーして、設定情報を書き込みます。 このvaddy.confでは、検査に必要な値を環境変数にセットしています。OS側やCircleCI, TravisCIなどのようなCI側でセットした環境変数は、このconfファイルでセットする必要はありませんので、不要な行はコメントアウトしてください。
※ここで一度【STEP 1】スキャン対象サーバーの登録・認証に進み、FQDN登録と認証ファイルの設置まで済ませた後に、下記の環境変数のセットをお願いします。
環境変数 | 説明 |
---|---|
VADDY_AUTH_KEY | VAddyの画面で発行したWebAPIキー |
VADDY_FQDN | VAddyで登録したサーバ名(FQDN) *1 例: www.example.com |
VADDY_VERIFICATION_CODE | VAddyでサーバ登録した際に発行されるVerification Code。*2 |
VADDY_USER | VAddyにログインする際に利用するユーザ名 |
VADDY_YOUR_LOCAL_IP | 検査対象のWebサーバーのIPアドレス*3 。 localhostや、イントラネットのサーバのIP (例:172.16.1.10) |
VADDY_YOUR_LOCAL_PORT | 検査対象のポート。 80, 443など*4。 |
VADDY_CRAWL |
オプション項目。クロールIDやクロールラベルの文字を指定すると、そのクロールが利用される |
*1 ここにはSTEP1でVAddy管理画面から登録したFQDNをセットします。
なお、登録するFQDNはダミーで結構です。DNS登録されている必要はございません。
*2 STEP1で取得した認証ファイルに記述されている文字列。プロジェクトTOP画面にも表示されています。
*3 VADDY_YOUR_LOCAL_PORTは1つのポートしか指定できないため、検査対象のアプリケーションはHTTPもしくはHTTPSのどちらかになります。
*4 VADDY_YOUR_LOCAL_PORTで指定するポート番号で、HTTPかHTTPSかを決められます。
<接続事前準備>
一度、手動で下記のコマンドを実行してください。
ssh portforward@pfd.vaddy.net
下記のようなメッセージが出た場合は、yesと入力してください。その後、すぐにコマンドは終了します。この時点ではまだssh接続エラーが出ますが問題ありません。次の接続テストに進んでください。
Are you sure you want to continue connecting (yes/no)
<接続テスト>
privatenetフォルダに移動し、シェルスクリプトを実行します。
./vaddy_privatenet.sh connect
すると、下記のようなメッセージが返り、コマンドが終了します。
################################################################
# VAddy Private Net Tools (Version: 1.0.3)
# This software is released under the MIT License,
#
# This tool needs Mac or Linux, Java, ssh command
#
################################################################
---------------- setting information -----------------
FQDN: www.example.com
User: your user name
Local IP: 127.0.0.1
Local Port: 8888
------------------------------------------------------
=== Connect ===
Log file setup : vaddy/2017_06_13_12_50_14.txt
ssh and ssh-keygen OK.
DNS OK.
HTTPS connectivity OK.
Connection to web server OK.
SSH files exist OK.
..........
ssh -i vaddy/ssh/id_rsa -N -R 0.0.0.0:2001:127.0.0.1:8888 portforward@pfd.vaddy.net
pid:4391
Checking E2E connectivity...
Checking E2E connectivity...
E2E connectivity OK.
Connect Status: 0
上記の出力結果の最後に、Connect Status: 0となっていれば大丈夫です。
下記のコマンドを実行して、接続を終了してください。
./vaddy_privatenet.sh disconnect
<接続が失敗した場合>
本コマンドは、sshコマンドを利用しています。本ツールの実行マシンから外部ネットワークへssh接続ができない環境では利用できません。
接続が失敗した場合は、private/vaddy/ 以下にエラーログが出力されます。VAddyサポートデスクにお問い合わせの際には、そのログも送付していただければ解決が早くなります。
接続が失敗した場合は、下記のような画面出力になりますので、private/conf/vaddy.confをもう一度確認してください。
Connect Status: 1
Error: Can not make connection for private net.
コマンド実行した出力の中に、
The authenticity of host 'pfd.vaddy.net (13.112.146.129)' can't be established.
ECDSA key fingerprint is xx:xx:xx:xx:xx:xx:xx.
Are you sure you want to continue connecting (yes/no)?
といった文字が見える時は、一度下記のsshコマンドを手動で実行し、 yes と入力してください。その後、もう一度VAddyコマンドを実行すれば接続できるようになります。
ssh portforward@pfd.vaddy.net
CI環境でよく起こる問題
Github ActionsやCircleCIなど毎回異なる環境がセットアップされてVAddyのPrivateNetツールを使う場合、sshのホスト認証によって接続できないケースがあります。エラーとしてはHost key verification failed.と出るようなタイプです。
この場合はその環境からsshする前にssh configファイル(~/.ssh/config)にホスト認証を回避する設定を記載ください。
Host *.vaddy.net
StrictHostKeyChecking no