どうも、平島です。VPN知ってますか?Virtual Private Networkの略で、インターネットで暗号通信を行う技術の1つですね。海外に渡航する際に利用したり、安全なインターネットのために利用したりしますね。いろいろ種類はあるのですが、お金を払って使うVPNサービスは結構あります。
今回は、AWSとSoftEther VPNというソフトを使ってこのVPNを自分で作ってみます。それでWindowsやスマホからも使えるようにします。SoftEtherは、最初にリリースされた2003年、NICを仮想化して異なるNWを繋ぐという発想にとても衝撃を受けたことを覚えているのですが、今回2020年でもこうやって利用をさせてもらってVPNを自分で作ることができるので感謝感謝です。
ちなみに、VPNを設定することを「トンネルを張る」「トンネリングする」と言います。他の人には見ることのできない自分だけの通信が通れる道を作るって意味合いですね。
そして今回も画面ベースで説明して、分かった気持ちになるシリーズです。もし質問や、ご助力できることがあったら、お気軽に連絡くださいね。誰かの役に立てると嬉しいです。
- 1.EC2インスタンスの作成
- 2.ターミナルでSoftEtherのインストール
- 3.SoftEtherの自動起動(サービス)の設定
- 4.SoftEther VPN Serverと、仮想HUBの設定
- 5.VPN接続テスト
- まとめ
1.EC2インスタンスの作成
まず、VPN ServerとなるEC2インスタンスを作成しましょう。
今回は、Amazon Linux 2で作成をしてみます。
インスタンスタイプはt2.microでいいでしょう。
一通り確認して、次ですね。
ストレージはこれくらいで問題ないでしょう。
セキュリティグループは、この2つを解除しておきましょう。VPNの接続ポートですね。
キーペアを作ってダウンロードしておきましょう。そしてインスタンス作成ですね。
インスタンス表示しましょう。
それで、名前を入力しておきましょうかね。
はい、入力も完了です。
2.ターミナルでSoftEtherのインストール
プライベートキーをダウンロードして、ログインして、SoftEtherをダウンロードしましょう。
$ sudo su –
# cd /usr/local/src
# wget https://www.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz
tarを使って展開しましょう。
# tar xvzf softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz
# cd /usr/local/src/vpnserver/
展開できたので、makeでコンパイルしましょう。
# make
続きますね。進めましょう。
まだ続きますね。
で、やっと進むと思ったらgccが無いそうで。
しかたないので入れましょう。
# yum install -y gcc
でインストールです。入りましたね!
ということで、もう一度makeして以下のところまで完了しました。ほっとしました。
もうちょっと準備が必要です。
# cd /usr/local/
# mv /usr/local/src/vpnserver /usr/local/
# cd /usr/local/vpnserver
# chmod 600 *
# chmod 700 vpncmd
# chmod 700 vpnserver
で、実行です!
# /usr/local/vpnserver/vpncmd
ちょっと、環境チェックしましょう。
問題ないっすね。
3.SoftEtherの自動起動(サービス)の設定
ここで、サービスに登録するために、この設定ファイルを書きます。
# vi /etc/systemd/system/vpnserver.service
[Unit]
Description=Softether VPN Server
After=network.target
[Service]
Type=forking
User=root
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Restart=on-abort
WorkingDirectory=/usr/local/vpnserver
ExecStartPre=/sbin/ip link set dev eth0 promisc on
[Install]
WantedBy=multi-user.target
今作った設定ファイルを使って、自動起動の設定をしましょう。
# chmod 644 /etc/systemd/system/vpnserver.service
# systemctl daemon-reload
# systemctl enable vpnserver
さて、起動をしてみましょう。
# systemctl start vpnserver
# systemctl status vpnserver
4.SoftEther VPN Serverと、仮想HUBの設定
次に、VPN Serverを設定します。
# /usr/local/vpnserver/vpncmd
サーバのパスワードを設定しましょう。
>ServerPasswordSet
続いて、仮想HUBを設定します。
>HubCreate test-hub
仮想HUBもできましたので、次にこの仮想HUBに対して具体的なVPNの設定を行いましょう。L2TP over IPsecの設定です。事前共有キーも設定します。この鍵を持っているかどうかで接続できるか決まるので、忘れないようにしましょうね。
>IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /DEFAULTHUB:test-hub
あとは、NATとDHCPも使うので設定しましょう。
>HUB test-hub
>SecureNatEnable
それで、この仮想HUBにユーザも作っておきましょう。
>UserCreate
パスワードも設定しましょうね。
>UserPasswordSet
はい、設定完了です。次に接続をしてみましょう。
5.VPN接続テスト
WindowsのVPN接続画面に行きます。そして、追加しましょう。
各種、これまで設定してきた内容を入力しましょう。
VPNの設定が出来上がりましたね。
「接続」ボタンをクリックです。
はい、無事接続できましたね。
念のため確認くんで確認したところ、ちゃんとIPアドレスはEC2のアドレスになっています。成功ですね!
おつかれさまでした!
まとめ
ということで、今回は「たった1時間で、VPNを立ち上げる方法 …AWSでSoftEther VPN構築編」をご紹介しました。
最後Windowsでの検証をおこないましたが、もちろんiPhoneなどでも接続可能です。費用はインスタンスの使用料に加えて、接続通信量の課金は発生しますが、お気を付けくださいね。(微々たるものですが)
ともかく、VPNが自分で構築できることって面白いです。日曜大工的にこうやっていろんなものを低価格で簡単に作れるととても良いです。
今日はここまで。もし質問や、ご助力できることがあったら、お気軽に連絡くださいね。誰かの役に立てると嬉しいです。