Google Cloud Platformを使ってVPNを構築してみた GCP環境構築編
あらすじ
大学が延期になったり、オンラインになったりでいろいろと大変なことが起きている現状です.
この機に何か面白いことしてみたいなーと思った頃,突然思いついたこととしてVPN構築してみたいなーと思いました.
(ついでにUbuntuとかに建てればLinux触れて楽しいとか思ったりしてました)
VirtualBoxにて仮想環境を組んだうえで建てるやり方とクラウドサービスを利用して外部にサーバーを建てるやり方をまず考え,少し考えた結果今後クラウドサービスを使う機会も多くなると考え後者を選ぶことにしました.
環境
・Google Cloud Platform
・Ubuntu 16.04 LTS
・OpenVPN 2.4.8
・easy-rsa 3.0.7-1
まずはGCPの環境構築
そんなわけでまずはGCPに登録してクラウドを借りるところから始まります.
サクッと無料トライアル押してGoogleアカウントとクレジットカードを使って登録していきます.
無料枠内での使用であれば料金は自動発生しません.
登録が完了した後はVPNを構築するための機械を作成していきます.
まずは機械を管理するためのプロジェクトを作成します.
プロジェクト作成
初期画面にて①をクリックして②の新しいプロジェクトを選択します.
プロジェクト名に任意の名前を入力します.
※後から名前は変更できません
VMインスタンス作成
次にプロジェクト内にVPNサーバとなる機械,VMインスタンスを作成します.
左上のハンバーガーメニューからCompute EngineからVMインスタンスを選択します.
作成ボタンを選択した後,VMインスタンスの設定画面が開きます.
無料枠内での利用のために次のように設定します.
- 名前
任意の名前を入力します - リージョン・ゾーン
リージョンを「us-west1」,ゾーンを「us-west1-a」にします - マシンの構成
マシンタイプを「f1-micro」にします - ブートディスク
オペレーティングシステムを「Ubuntu」 バージョンを「Ubuntu 16.04 LTS」にします - 管理、セキュリティ、ディスク、ネットワーク、単一テナンシー内のネットワーキング
IP転送を「オン」にします
設定後作成を押せば無事に作成することが出来ました!
VPNを構築するための準備
上の画面内の接続からSSHを選択するとGCP内にて起動することが出来ます.
この中にVPNサーバを立てていきます.
ただ私はTera Tarmなどで接続したい人なのでもうひと手間加えます.
(外部ソフトで接続しなくてもいい人は飛ばしても大丈夫です.)
SSH鍵を生成する
自分の利用しているPCに戻り,ターミナルを起動します.(windowsの場合はWindowsPowerShell)
ターミナル内にて下記のコードを実行します.
ssh-keygen -t rsa -b 4096 -C "任意のユーザ名"
そのあと3回入力を求められます.
1回目は保存場所(とファイル名)を指定されますので任意の場所に保存します.
2回目と3回目はパスワードを聞かれますので,任意のパスワードか空欄のままエンターを押します.
続いて,保存先のフォルダ内に2つファイルが生成されていますので,.pubのほうをターミナルのcatを使うか,メモ帳などで開いて表示します.
中身の文字列をコピーします.文字列を利用するので他の物をコピーしたりしないでください.
ssh-rsa AAAA ........... 設定したユーザ名
SSH鍵をGCP内に登録する
先ほど作成したVMインスタンスをクリックして詳細を開きます.
その後上の編集を選択した後,SSH鍵がN個ありますの下の表示して編集するを選択します.
選択した後,先ほどコピーした文字列を貼り付けます.
その後,下の保存を選択します.
Tera Tarmにて接続する
最後にTera Tarmにて外部から接続します.
Tera Tarmを開いて以下のように設定してOKを押します.
OKを押すと認証画面が出るので,RSA/DSA/ESDSA/ED25519鍵を使うを選択して,秘密鍵から先ほど生成された.pubじゃないほうを選択してOKを押します.
これで接続できれば完了です.
(ターミナルで接続する場合は
ssh 設定したユーザ名@VMインスタンスの外部IP -i ~/.ssh/”.pubじゃないほうのファイル名”
にて接続できます.)
最低限のGCP設定完了です
これでGCPを「とりあえず」使えるようになりました!
近日中にてVMインスタンス内にVPNサーバ構築方法について記載したいと思うのでよろしくお願いします.
次回:
Google Cloud Platformを使ってVPNを構築してみた VPN構築編 - yzk_yzk_yzk’s blog