AWSとソフトウェアVPN(3) - SoftEther のAWS側クライアント接続:導入編

Katoです。前回は SoftEther VPN を導入するための下準備を行いました。今回は SoftEther VPN を導入し、サーバ設定ツールで接続してみます。

まず最初に SoftEther VPN の公式サイトから、 SoftEther VPN Server をダウンロードします。ダウンロードしたファイルを保存したいディレクトリに入ってから実行すると楽です。
SoftEther VPN のダウンロードセンターは http://www.softether-download.com/ja.aspx です。

wget ダウンロードURLをペースト

OpenSSL のPOODLE脆弱性に対応したバージョンもあるのですが、そちらはベータ版のみの提供です。

今回はテストですので未対策のRTM版を使うことにしましょう。
実際に企業環境で導入する場合は、POODLE脆弱性が及ぼす影響をしっかり吟味しリスク管理に則った選択を取って下さい。ダウンロードが完了したら書庫を展開し、make コマンドで実行ファイルを生成します。

make コマンドを実行するとライセンス条項などが表示されますので、一通り目を通して問題ないことを確認して下さい。

また、ライセンス条項に同意し実行ファイルの生成が完了すると、そのシステムで正常に SoftEther VPN が動作するかテストが行われます。AMIで提供される CentOS7 であればオールクリアできると思います。

tar xzf ダウンロードしたファイル名
cd vpnserver
make

vpnserver ディレクトリは wget コマンドでダウンロードしたディレクトリの中にありますので、必要であれば vpnserver ディレクトリを好みの場所へ移動します。

LinuxのFHS(※)に従うのであれば /opt が妥当かと思われます。SoftEther VPN の公式ドキュメントでは /usr/local を例としていますが、この場所はFHSの観点からすると不適切です。

(※)FHS=Filesystem Hierarchy Standardの略。Linuxファイルシステムにおける主要ディレクトリとその内容を定めたもの

さて、好みのディレクトリに vpnserver ディレクトリを移動させたらいよいよ vpnserver サービスを開始します。

./vpnserver start

このコマンドだけで vpnserver サービスは起動します。プロセスが存在することを次のコマンドで確認しましょう。

pgrep vpnserver

または

ps aux|grep vpnserver

pgrep コマンドならばプロセス番号が、ps コマンドならばプロセス名が得られていれば正常に稼働していることがわかります。

vpnserver の設定は vpncmd コマンドを利用すればコンソールからも可能ですが、今回は便利なGUIツールを利用しましょう。

このGUIツールはWindows専用ですので、管理端末に LinuxMac を用いている場合は vpncmd で頑張ることになります。

先ほどのダウンロードセンターのURL(http://www.softether-download.com/ja.aspx)を開き、SoftEther VPN Server Manager for Windows を選択します。

SoftEther-DL-Center
図1:SoftEther VPNダウンロードセンター

表示されるダウンロードリストから最新のRTM版を選択してダウンロードしてください。
インストール手順は簡単ですので手順は省略します。
インストールが完了したら Server Manager を起動します。

SoftEther-VPN-Manager-Top
図2:SoftEther VPN Manager起動画面

「新しい接続設定」ボタンを押すと下の図3のような画面が現れます。接続設定名はお好みの名前を入力して下さい。

SoftEther-VPN-Manager-New-Server
図3:新しい接続設定

ホスト名の欄は EC2 インスタンスのパブリックIPアドレスを入力します。

DNSサービスでIPアドレスと紐つけてある場合は、ここにFQDNを入力しても利用できます。
今回はテストということでDNSサービスを利用していませんので、直接IPアドレスを記入しましょう。
また、Server Manager はプロキシ経由の環境でも利用可能ですので、プロキシを経由する必要がある場合は設定を行って下さい。

右側のラジオボタンがサーバ管理モードになっていることを確認し、OKボタンを押します。

SoftEther-VPN-Manager-Select-Server
図4:作成した接続設定を選択

最初の起動画面に戻りますので、上の図4のように先ほど追加した設定を選択してOKボタンを押します。

初回の接続ですのでパスワードの設定を要求されます。好みの文字列にしてOKを押しましょう。
すると簡易セットアップ画面と IPsec 設定の確認画面が表示されますが、今回は両方とも閉じるボタンを押して閉じてしまいます。

最後に次の図5ようなウインドウが残ります。

SoftEther-VPN-Manager-Main
図5:Server Managerの基本画面

この画面が表示されると SoftEther VPN Server に接続されていることになります。


次はプライベートセグメントのテストサーバにVPN Clientをインストールします。

本来はVPNサーバと同一IPセグメントを持つサーバならばクライアント不要なのですが、AWSNIC のプロミスキャスモードが使えないことに起因する問題のためインストールが必要です。

この問題については、本連載「AWSとVPNソフトウェア」の第1回をご覧下さい。

まずはVPNサーバを踏み台にしてプライベートサーバにSSH接続しますが、この時もちろん接続用秘密鍵が必要です。
VPNサーバに安全な方法でコピーし、そのパーミッションを400にしておきましょう。

chmod 400 秘密鍵ファイル名
ls -al
ssh -i 秘密鍵ファイル名 centos@プライベートサーバアドレス

正常にログインできたら、以下のコマンドで基本的な設定を行いましょう。

yum install wget gcc ntp
setenforce 0</code>
vi /etc/selinux/config
→SELINUX=disabledに変更
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
vi /etc/locale.conf
→ja_JP.UTF-8に変更
. /etc/locale.conf
date
→ここで日付時刻が日本語で表示され、JSTとなっていることを確認
systemctl start ntpd
systemctl enable ntpd

ホスト名の変更と固定は必要ならば行います。今回はテスト用疎通確認サーバですので省略しますが、設定方法は前回のエントリに記載しています。以下のコマンドでVPNクライアントをインストールします。

wget VPNクライアントのURL
tar xzf ダウンロードしたファイル
cd vpnclient
make
→VPNサーバ同様、ライセンス条項を確認

実行ファイルが生成されたら、VPNサーバ同様 /optディレクトリを移動しましょう。その後、VPNクライアントのサービスを起動します。

/opt/vpnclient/vpnclient start

サービスの稼働確認はVPN Server同様、

pgrep vpnclient

または

ps aux|grep vpnclient

で行うことが可能です。プロセス番号やプロセス名が表示されれば正常稼働しています。

次回は管理GUIからの VPN Server の設定と、コンソールからの VPN Client の設定を行います。