無料VPS、Oracle cloud使ったAlgo VPNの紹介

たまに海外のVPNサーバーがいる時がありますが、そのためにわざわざ月額払ってまで使いたくはないですよね。

しかし、既に仮想サーバーが海外に既にある場合はどうでしょうか?最近は無料のサーバーも結構あるようです。

CloudにAlgo VPNサーバーをインストールしてみました。

皆さんにこの情報が役立てればと思います。

免責

VPNを使用に関しては各自の責任で御使用願います。私はOracle CloudやVPNの使用について一切の責任を負いません。

インスタンス生成

  1. ここOracle Cloudでアカウントを作成します
    • ホームリージョンは、VPNを使用したい場所に設定します
  2. Webコンソールにアクセスして「Create a VM instance」ボタンをクリックします Insttance1
    • Ubuntu minimalを選んでpublic keyをアップロードします
      • sshキーがない場合は、次を参考に作成しますhow to create ssh key
  3. 「create」をクリックすると、次のように詳細を確認することができます Insttance2
    • 公認のIPアドレスをメモっておきます

さて、生成が完了するとssh経由でインスタンスに接続できます。

Algo VPNのインストール

上記の生成したインスタンスに接続して、次のようにVPNサーバーをインストールします。

Aptパッケージのインストール

$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y python3-virtualenv unzip vim

希望のエディタも忘れずに追加します。vimが慣れてない方は代わりnanoを使用しましょう。

Algoのダウンロード

$ wget https://github.com/trailofbits/algo/archive/master.zip
$ unzip master.zip

virtualenvの設定

$ cd algo-master
$ python3 -m virtualenv --python="$(command -v python3)" .env &&
  source .env/bin/activate &&
  python3 -m pip install -U pip virtualenv &&
  python3 -m pip install -r requirements.txt

ユーザーの追加

config.cfgを編集して、ユーザーを追加します。

$ vi config.cfg

ユーザーを共有すると時々問題があるそうなので、次のように十分に追加しておくことをお勧めします。

users:
  - phone
  - phone2
  - tablet
  - tablet2
  - laptop
  - laptop2
  - desktop
  - desktop2
  - server
  - server2
  - guest
  - guest2

配布スクリプトの実行

次は対話型のスクリプトです。いくつかの選択肢に答えると、スクリプトがインストールを行います。

$ ./algo
[Cloud prompt]
What provider would you like to use?
--> 11. Install to existing Ubuntu 18.04 or 20.04 server (for more advanced users)

最初の質問が最も重要です。現在接続したサーバーにインストールするので11番を選択します。

残りのほとんどはデフォルトの設定でエンターを押すだけで良いですが、次の2つの質問に違う答えを入れましょう。

[Retain the PKI prompt]
Do you want to retain the keys (PKI)? (required to add users in the future, but less secure)
[y/N]
--> Y
[local : pause]
Enter the public IP address or domain name of your server: (IMPORTANT! This is used to verify the certificate)
[localhost]
---> [Put the public IP adress of your instance]

これにより、次のように出力され、インストールが終了します。

'#                       Congratulations!                         #'
'#                  Your Algo server is running.                  #'
'# Config files and certificates are in the ./configs/ directory. #'
'#           Go to https://whoer.net/ after connecting            #'
'#     and ensure that all your traffic passes through the VPN.   #'
'#                  Local DNS resolver 172.29.**.**               #'
'#     The p12 and SSH keys password for new users is *********   #'
'#     The CA key password is ****************                    #'

何かが間違ったら、最初から再インストールすることが良いと言われます。現在のインスタンスを破棄し、新しいインスタンスを再作成します。

接続情報のコピー

次はVPNサーバーのssh接続は終了してもいいです。

今使用しているローカル環境でscpコマンドで接続情報をコピーします。次の「vpnserver」はVPNサーバーのパブリックIPに置き換えます。

$ scp -r ubuntu@vpnserver:algo-master/configs .

それでは「configs」ディレクトリにある接続情報が使えます。

VPNサーバーのポートの開放

VPNサーバー自体は用意できてますが、あとひとステップが残っています。

VPN接続に必要なポートは、通常閉じてあるので、手動で開けなければなりません。

VPN接続に使用するSecurity Listの作成

Oracle Cloudのウェブコンソールに接続します。

  1. Networking > Virtual Cloud Networksを開きます
  2. 右のVCN nameをクリックします
  3. 左の「Security Lists」をクリックします
  4. 「Create Security List」をクリックします
  5. ポップアップには、次のように入力します
    • Name: VPN
    • Additional Ingress Rule: Ingress Rule 1
      • Source CIDR: 0.0.0.0/0
      • Destination Port Range: 4160
    • Additional Ingress Rule: Ingress Rule 2
      • Source CIDR: 0.0.0.0/0
      • IP Protocol: UDP
      • Destination Port Range: 51820,500,4500
  6. Create Security Listをクリックして確定します

vpn ports

Security ListをPublic Subnetに繋ぐ

  1. Instace Details (Compute > Instaces > Instance Details)を開きます
  2. Primary VNICのSubnetをクリックします
  3. 「Add Security List」をクリックします
  4. ポップアップのsecurity listプルダウンのVPNを選択します
  5. 「Add Security List」をクリックして確定します

Clientの設定

取りあえずアイパッドにての設定法について説明します。

  1. AppstoreでWireGuardをインストールします(iOS 12以降が必要です)
  2. configs/localhost/wireguard/tablet.pngのようにユーザーに合ったPNGのQRコードを開きます 「configs」ディレクトリは、前の手順でコピーしておいたものです
  3. WireGuardを実行し、「+」ボタンをタッチして「Create from QR code」を選択します
  4. QR code撮ってtabletのように名前を付けときます
  5. その生成されたtabletの接続をオンにします

これでVPNに接続されます。

ブラウザを開いて「my ip」を検索するとVPN serverのアドレスが表示されるか確認します。

WireGuardアプリはMac and Windows 10にても使用可能なので、似たような方法で設定でます。

トラブルシューティング

サーバーに接続することができなくてもWireGuardアプリは黙ってインターネットが不通になります。 インターネット接続に問題がある場合VPN接続を終了し、サーバーの問題を解決した後、もう一度お試しください。

もっと読む