2018年10月29日

CentOS7 SoftEtherでVPN接続(1)サーバ構築

ようやく本題。
今回は家内の仮想サーバ(VMware ESXi)にCentOS7を構築し、そちらにSoftEther(VPNサーバ)をインストールする。

何ゆえこの選択なのかは、住んでるところが賃貸でインターネット回線完備なんだけど、部屋に来ている回線は建物設置のルータからなので、部屋にはプライベートIPしか割り振られないから。
建物のルータなんて個人にいじらせてくれるはずもないので、こいつを何とか突破しなければならないが、それが出来るのがSoftEhterというわけだ。

まぁ本来ならどこからVPSサーバでも借りてそこで Pritunl でもインストールしたほうが導入も運用も楽なんだろうけど。
まぁ、それはそのうちで。
なにはなくともやっていく。


SoftEtherダウンロード


SoftEther VPN プロジェクトからSoftEtherをダウンロードする。
左側のメニューから【ダウンロード】→【SoftEther VPN のダウンロード】と進む。
ダウンロードするもの選択は今回の環境では
  • ダウンロードするソフトウェアを選択:
     SoftEther VPN(Freeware)
  • コンポーネントを選択:
     SoftEther VPN Server
  • プラットフォームを選択:
     Linux
  • CPU を選択:
     インテルx64 / AMD64 (64ビット)
となる。
自分の環境に合わせて選択すること。

ダウンロードしたファイルはサーバに転送しておく。
今回は作業端末のWindowsマシンでダウンロードしたから転送作業とか必要になったけど、サーバでダウンロードしたほうが楽かも。


必要パッケージのインストール


SoftEtherには下記のパッケージが必要となるそうなのでインストールする。
yum -y install readline-devel ncurses-devel openssl-devel



SoftEtherインストール


必要パッケージがインストール出来たらSoftEtherのインストールに入る。
  1. ダウンロードしたファイルの解凍 ファイルは/root/vpnディレクトリに保存したものとする。
    cd /root/vpn
    
    tar zxvf softether-vpnserver-v4.28-9669-beta-2018.09.11-linux-x64-64bit.tar.gz
    

  2. 解凍出来るとvpnserverというディレクトリが出来ているので、その中に入り、makeする。 インストールに必要な事項を伝えてくるので適時答える。
    cd vpnserver
    
    make
    Do you want to read the License Agreement for this software ?

    1. Yes
    2. No

    Please choose one of above number:
    1 #入力

     (略)

    Did you read and understand the License Agreement ?
    (If you couldn't read above
    ext, Please read 'ReadMeFirst_License.txt'
    file with any text editor.)

    1. Yes
    2. No

    Please choose one of above number:
    1 #入力

    Did you agree the License Agreement ?

    1. Agree
    2. Do Not Agree

    Please choose one of above umber:
    1 #入力

    Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
    ---------------------------------------------------
    SoftEther VPN 動作環境チェックツール

    Copyright (c) SoftEther VPN Project.
    All Rights Reserved.

    この動作環境チェックツールを実行したシステムがテストに合格した場合は、
    SoftEther VPN ソフトウェアが動作する可能性が高いです。
    チェックにはしばらく時間がかかる場合があります。そのままお待ちください...

    'カーネル系' のチェック中...
    [合格] ○
    'メモリ操作系' のチェック中...
    [合格] ○
    'ANSI / Unicode 文字列処理系' のチェック中...
    [合格] ○
    'ファイルシステム' のチェック中...
    [合格] ○
    'スレッド処理システム' のチェック中...
    [合格] ○
    'ネットワークシステム' のチェック中...
    [合格] ○

    すべてのチェックに合格しました。
    このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。
    コマンドは正常に終了しました。
    色々とチェックが入り、チェックに合格するとプログラムが作成される。

  3. 作成されたプログラムをvpnserverディレクトリごと、/user/localに移動させる。
    cd ..
    
    mv vpnserver/ /usr/local/
    

  4. vpnserverディレクトリのパーミッションを変更する。
    cd /usr/local/vpnserver
    
    chmod 600 *
    chmod 700 vpncmd
    chmod 700 vpnserver
    

  5. 動作確認する。
    ./vpncmd
    vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
    SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
    Version 4.28 Build 9669 (Japanese)
    Compiled 2018/09/11 12:23:27 by yagi at pc33
    Copyright (c) SoftEther VPN Project. All Rights Reserved.

    vpncmd プログラムを使って以下のことができます。

    1. VPN Server または VPN Bridge の管理
    2. VPN Client の管理
    3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)


    1 - 3 を選択: 3 #入力

    VPN Tools を起動しました。HELP と入力すると、使用できるコマンド一覧が表示できま す。

    VPN Tools>check Check コマンド - SoftEther VPN の動作が可能かどうかチェックする
    ---------------------------------------------------
    SoftEther VPN 動作環境チェックツール

    Copyright (c) SoftEther VPN Project.
    All Rights Reserved.

    この動作環境チェックツールを実行したシステムがテストに合格した場合は、
    SoftEther VPN ソフトウェアが動作する可能性が高いです。
    チェックにはしばらく時間がかかる場合があります。そのままお待ちください...

    'カーネル系' のチェック中...
    [合格] ○
    'メモリ操作系' のチェック中...
    [合格] ○
    'ANSI / Unicode 文字列処理系' のチェック中...
    [合格] ○
    'ファイルシステム' のチェック中...
    [合格] ○
    'スレッド処理システム' のチェック中...
    [合格] ○
    'ネットワークシステム' のチェック中...
    [合格] ○

    すべてのチェックに合格しました。
    このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われます。

    コマンドは正常に終了しました。

    VPN Tools>exit #入力
    テストに合格していればOK。
ここまででインストールは完了。


サービス化


VPNサーバをサービス化して常駐させる。 下記のファイルを作成する。
vi /etc/systemd/system/vpnserver.service
ファイル内
[Unit]
Description=SoftEther VPN Server
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
  
[Install]
WantedBy=multi-user.target
作成が完了したら起動と自動化を設定する。
systemctl start vpnserver
systemctl enable vpnserver
ステータスを確認し、active(running)となっていればOK。
systemctl status vpnserver



ファイアウォールの設定


SoftEtherが使用するポートをファイアウォールに登録する。 まずはつながるようにしておいて後で整理。
firewall-cmd --zone=public --permanent --add-port=443/tcp
firewall-cmd --zone=public --permanent --add-port=992/tcp
firewall-cmd --zone=public --permanent --add-port=1194/tcp
firewall-cmd --zone=public --permanent --add-port=5555/tcp
firewall-cmd  --reload



仮想環境の設定


今回ContOSはVMware ESXiの上にインストールされている。
この場合、仮想環境の方でちょっと設定が必要になる。

VMwareの管理画面にブラウザから入り、ナビゲータから仮想マシンが接続しているネットワーク(当環境ではVM Network)の設定の編集を開く。
開いたウィンドウの中のセキュリティから無差別モードを『承諾』に変更する。
VMware ESXi管理画面
ここまで出来たら、いったんサーバ側の作業は終わり。
次はウィンドウズ側で作業を行う。


サーバマネージャのインストール


CentOSに立てたVPN ServerのセットアップをWindowsから行う。
最初と同じくSoftEther VPN プロジェクトからSoftEtherのサーバマネージャをダウンロードする。
左側のメニューから【ダウンロード】→【SoftEther VPN のダウンロード】と進む・
ダウンロードするものは
  • ダウンロードするソフトウェアを選択:
     SoftEther VPN(Freeware)
  • コンポーネントを選択:
     SoftEther VPN Server Manager for Windows
  • プラットフォームを選択:
     Windows
  • CPU を選択:
     インテル (x86およびx64)
となる。
Macの人はfor Macとか選んでください。

ダウンロードが完了したらインストーラを起動する。
インストール始めますかと聞かれたら次へ。
  1. 何をインストールするかを聞かれるので【SoftEther VPN サーバ管理マネージャ(管理ツールのみ)】を選択し、次へ。
    SoftEther VPN セットアップウィザード
  2. 使用許諾がでてくるので同意しますにチェックを入れ、次へ。
  3. 重要事項の説明がでてくるので、次へ。
  4. インストール先の選択がでてくるので、適時選択し、次へ。
  5. 準備完了になったら、次へ。
  6. インストールが終わったら完了。


サーバ設定


インストールが終わったらサーバ管理マネージャを立ち上げる。
(インストール完了時に立ち上げるにチェックが入っていれば勝手に立ち上がる)

  1. 『新しい接続設定』ボタンを押下し、サーバの設定を始める。
    サーバ管理マネージャ

  2. 『新しい接続設定の作成』画面で必要な設定を入力していく。
    接続設定名:お好きなものを
    ホスト名:CentOSサーバのIPアドレス
    ポート番号:5555
    入力が完了したら『OK』ボタン押下
    新しい接続設定の作成画面

  3. サーバ管理マネージャに作成した接続先が表示されているので、それを選択し『接続』ボタン押下。
    サーバ管理マネージャ

  4. 管理者パスワードの設定画面が開かれるので、適時入力して『OK』ボタン押下。
    管理者パスワード設定

  5. SoftEtherの簡易セットアップ画面が開かれるので、『リモートアクセスVPNサーバ』にチェックを入れて『次へ』ボタン押下。
    SoftEther簡易セットアップ画面
    警告が表示されるが『はい』を押下。

  6. 仮想ハブの作成画面が現れるので、適時名前を入力し『OK』ボタン押下。
    仮想ハブの名前決定

  7. ダイナミックDNS機能登録の画面がでてくるので、適時自分の好きなものに決めて『閉じる』押下。
    今回の環境だとグローバルIPもらえないので、意味はない。 が、後述のAzureの機能と統合化されいて、ダイナミックDNSの機能を止めるとAzureの機能も止まる。
    まあこの画面では何もできないので、次に進む。
    ダイナミックDNS機能登録

  8. IPsec / L2TP / EtherIP / L2TPv3 設定の画面が表示されるので、『L2TPサーバ機能を有効にする(L2TP over IPsec)』にチェックを入れ、『IPsec事前共有鍵』を適時入力し、『OK』ボタン押下。
    ※重要
    『L2TPサーバ機能を有効にする(暗号化されてない L2TP)』にはチェックを入れないように!!
    IPsec / L2TP / EtherIP / L2TPv3 設定

  9. ようやく重要なところに来ました。
    直接VPNサーバとクライアントが接続するのではなく、SoftEther社が運営するVPN Azure クラウドを経由することで、プライベートIPしかない家の中のネットワークにも接続できる設定。
    当然、当環境ではこれがないと導入する意味すら失うので、設定して『OK』押下。
    VPN Azure クラウド

  10. 簡易セットアップ実行の画面がでてくるので『ユーザを作成する』ボタンを押下。
    簡易セットアップ実行

  11. ユーザの新規作成画面でユーザ名・パスワードを設定し『OK』ボタン押下。
    ユーザの新規作成画面

  12. 簡易セットアップの実行に戻ったら『ローカルブリッジの設定』から使用するLANカードを選択し、『閉じる』を押下。
    簡易セットアップ

  13. 仮想環境で構築していると、ここで仮想NICについて警告がでる。
    今回は上記ですでに行っているので、そのまま『OK』。
    VM 内でのローカルブリッジ機能の使用

長かったがここまででサーバ側の一通りの設定が完了した。


次回に続く


細かい設定はあちこちいじれるが、サーバとしてはとりあえず稼働する状態まで持って行けたので今回はここまで。
次回、クライアント(Windows、Android、iOS)からの接続テストを行う。
posted by Ren at 00:00 | Comment(0) | TrackBack(0) | PC サーバ CentOS
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/184766762
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック