少し前の記事で、ConohaなどのVPSサービスを使用して自前のVPNサーバを作成する方法を紹介しました。
ですが最近、より簡単にVPNサーバを立てる方法を発見しました。本日は具体的なVPNサーバの構築についてのお話です(長文ご容赦を!)。
VPSはConohaを使用
さて、今回はConoha VPSを利用してVPNサーバを立てていますが、他のVPSサービスでも手順は変わりないです。実際、筆者も主要なVPSサービス業者を一通り試してみたので。
実は今回紹介する、日本にサーバのあるVPS業者で自前のOpenVPNを構築するという方法で、海外にいてもTverやAmazon Prime Video(日本)を閲覧できます。ですが…Hulu、Paraviは無理なんです(;_;。
なので、VPSの会社を変えれば閲覧可能になるのではと複数の会社で試してみたのですが、私が実施した限り、いずれもNGでした(-_-)。
なので、VPSでVPNサーバ(Open VPN)を立てる方式では、Hulu、Paraviは無理とお考えくださいませ。
Ubuntuをインストール
Conoha VPSは最強にとっつきやすい
一方、メインに見たいのが日本のAmazon Prime Videoだったり、Tverである場合は、自前のVPNの方が快適です。
まずは、Conohaなり他のVPSを使用して、UbuntuのOSをインストールします。ただし、今回紹介する方法は、DebianやCentOSでも行けるらしいので、お好みで選択しましょう。
Conoha VPSのサービスの場合は、最初にアカウントを作成し、コントロールパネルにログインしたら、「サーバー追加」から、料金プランとイメージタイプを選択するだけで簡単にUbuntuがインストールできます。
Conoha VPSは、初期費用はゼロ円ですし、VPSの料金が時間単位(1時間1円)なので、インストールをしてみて、自分には無理!となってもサーバーを削除すれば作業時間分しかお金がかからないので、気軽に試せるのが秀逸です。
VPNサーバとして利用するだけなら、512MBの一番安い料金プラン(1か月税抜630円)で十分です。
いざ作業開始!
というわけで、さっそく作業開始です。OSはUbuntuの18.04(64bit)を選択しておきます。
OSの種類を選択したら、下にスクロールして、rootパスワード(アルファベット小文字、大文字、数字、記号を含める必要あり)を設定します。rootパスワードは必ずメモっておきましょう。万一rootパスワードを忘れた場合は、サーバーを削除して再度作り直しましょう。初期コストがかからず、時間単位の料金なので、気軽にサーバーを削除できるのがConohaの良いところです。
また、SSH接続のセキュリティ強化を行いたい場合、SSH Keyの項目でキーを新規作成することで、公開鍵設定ができます。公開鍵は後でも設定できますので、今回は「使用しない」にしておきます。
SSH接続のセキュリティを強化
Ubuntuがインストールされ、サーバが稼働しましたら、SSH接続で、サーバにログインします。SSH接続はPutty、TeraTerm、RLoginなど複数の方法がありますが、私はRLoginを利用しています。RLoginはSFTP接続もできるので、あとでファイルをダウンロードするときに便利です。
ログインができたら、いきなり次のステップ(SSH接続をする)へ行ってしまっても良いですが、できることならどこかで
- 公開鍵を設定する
- 一般ユーザーを作成し、rootでのログインを無効化する
- SSH接続のポート番号を変更する
などのセキュリティ対策を行っておくと良いでしょう。私が参考にさせていただいたのは以下のサイトです。この場を借りてお礼を申し上げます。
- 新規ユーザーと、新規ユーザーにSudo権限を付与する(開発ブログのJoeさん)
- Rloginで新規ユーザーの公開鍵を生成(さくらのナレッジの上村崇さん)
- SSHのポート番号の変更(塩焼きブログのせとうちさん)
今回は、テスト的にVPNサーバを作るので、公開鍵、ポート番号の変更、一般ユーザーの設定は行わず、このままrootでログインしちゃいます。
SSH接続をする
まずは、SSH接続でログインします。今回は、テスト的に作成したVPSですが、RLoginから接続してみました。
図中の赤い場所に、上から…
1.VPSの名前(ここは適当でOK)
2. VPS会社から提供されたIPアドレス
Conohaの場合ですと、ブラウザはConohaのウェブページ右上のボタンからログインして、メニューのサーバーリストをクリックすると、詳細ページに飛ぶので、そこでIPアドレスをチェックしましょう。今回はこんな感じ。赤線の部分ですね。
再び上のRLogin画面の設定に戻りまして…
3.SSHでログインするID。ルートでログインする場合は、ConohaのUbuntuの場合は「root」です。ほかのVPSだとubuntuになってる場合もあるかもしれません。一般ユーザーを作ってる場合は、そのIDを入力します。
4.SSHで接続する際のパスワード。rootのパスワードなら、VPS作成時に入力したものを、一般ユーザーの場合は、後から自分で設定したパスワードを入力します。
5.SSHのポート番号を変更した場合は、ここに新しいポート番号。何もいじっていないなら、「ssh」のままで。
6.公開鍵を設定している場合は、ここをクリックしてファイルを読み込んでおきます。設定していないなら、そのままで。
必要情報を入力したら、SSH接続を行ってUbuntuに接続します。
apt-get updateとupgradeをやっておく
こうして無事ログインできましたら、恒例の
sudo apt-get update sudo apt-get upgrade
をしておきます(rootで入ってる場合は、sudoは必要ないです)。
ただ、VPSを作ってすぐだと、apt-get upgradeが上手くできないんですよね。どういうわけか
E: Could not get lock /var/lib/dpkg/lock-frontend – open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
というエラーメッセージが出てきてしまって先に進まない。最初は、えぇなんで!って悩んだんですけど、どうやらVPS作成直後だと、後ろで何かのプログラムが走ってるっぽい(技術的なこと分かってなくてスミマセン!)。もし、上記のエラーが出た場合、5分~20分ほど待ってから、apt-get upgradeを実行するとうまくいきますので、少し待ってみると良いでしょう。
VPNサーバ構築のスクリプトを実行
そして、いよいよVPNサーバの構築なのですが…、実はとっても簡単。なんと一行のスクリプトを実行するだけです。
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
これ、Githubから見つけたのですが、スペイン在住(奇遇!)のNyrさんという方が作成したもののようです。
ホント、めっちゃ便利。Nyrさんに、この場を借りてお礼を申し上げます(..)_。
まれにGitが入っていない場合があるので、その場合は、上のスクリプトを実行する前に
sudo apt-get install git
としておきます。ただ、ConohaのVPSのUbuntu18.04の場合は、gitのインストールを実行する必要はありませんでした。
というわけで、先の1行をコンソールから実行しますと…
いくつか質問を聞いてきます。そこで画面のとおりに、
- 何のプロトコルを使用しますか→1と入力(UDP)
- OpenVPNに使用したいポートはどれにしますか→1194と入力(ここは個人の設定次第ですが)
- VPNにはどのDNSを使用しますか→1と入力(これもお好みで)
- クライアントの認証に使用する名前を教えてください→VPNのログイン時に使用したい名前を入力(今回は便宜的にtestとしました)
最後にどこでも良いのでキーを押すと…インストールが始まりました。
そして、終了すると…
あなたのクライアントの設定はここで利用できますと書いてあるので、フォルダを把握してください。上の図の赤丸のところですね。今回は、root直下に作られていました。
メッセージの最後には、「さらにクライアントを追加したい場合は再びこのスクリプトを実行してください」とあります。
というわけで、完了。ウェーイ!簡単。
次回からは…
一度インストールしてしまえば、次回からは再び以下のスクリプトをルート権限で入力すれば、メニュー画面に行くことができます。
bash openvpn-install.sh
すると、画面上に以下のように出てくるので、
- 新規ユーザー作成(別の端末向けにovpnファイルを作成したい場合)
- 既存のユーザーの取り消し(以前に作成したユーザーを削除したい場合)
- OpenVPNの削除(OpenVPNをアンインストールしたい場合)
- 終了(メニューを終了する場合)
となっているので、希望する番号を入力すると、操作が行なえます。なので、1を選択すれば、何度でも複数台の端末向けに違うプロファイル名でのovpnファイルが作成できます。
同じovpnファイルを複数台で使用したい場合
さて、スマホやPCなど複数の端末からアクセスする際に、同じovpnファイルを使用したい場合、少し設定を変更する必要があります。
セキュリティ的には、上のスクリプトを複数回実行して、別々のクライアント名でアクセスするのが望ましいのでしょうか、それはちょっと面倒という場合の話です。
個人的には、端末ごとにクライアント名を変えた方がいいかなと思っておりますが、以下の方法も紹介しておきます。これ必要ない、という人は次の項目に飛んでしまってください。
具体的には、server.confというファイルに一行加えます。
server.confは、/etc/openvpn/server/server.confに格納されています。
試しにcatで内容を確認してみると…
cat /etc/openvpn/server/server.conf
情報がだだーっと出てきたので、こちらをVimで編集して、
vim /etc/openvpn/server/server.conf
次の一行をserver.confファイルのどこかに加えます。
duplicate-cn
こんな感じ。
なお、vimは、「i」キーで文字が挿入できるようになり、入力が終わったら「ESCキー」を押して、「:wq」と入力すると、上書きして編集を終了できます。「vim 使い方」でググるといろいろ出てきます。これでサーバー側の設定は終わりです。
設定ファイル(ovpn)を確認
次はクライアントの設定ファイルを見てみましょう。基本、ユーザフォルダの直下に入っているはずです。ファイルは、先ほど入力したクライアントのユーザー名にovpnの拡張子が付いています。今回は、rootの直下にあるtest.ovpnファイルがそれにあたります。
このovpnファイルをダウンロードします。Rloginだと、ファイル→SFTPファイルの転送から、該当ファイルを選んで右クリック(ファイルのダウンロード)で簡単にダウンロードできるから便利です。
いざスマホなりPCからアクセス!
これで準備完了。あとはVPNサーバの接続を行うだけです。
VPNサーバへの接続は、OpenVPNのアプリを使用します。ダウンロードはこちらから。
なお、上のサイトでは、Android用のアプリに、「OpenVPN Connect」のリンクがありますが、「OpenVPN for Android」というアプリでも使用できます。
Windows10の場合
Windows10の場合だと、上のサイトからWindowsインストーラ(Windows10用)をインストール後、パソコン右下のアイコンからOpenVPN GUIというのを見つけて右クリックするとimport fileというのが出てくるので、そこから先にダウンロードしたovpnファイルを選択します。
そして、同じく右クリックからクライアント名→接続とするとVPNサーバに接続できます。切断も同様に。
すごくシンプルで、簡単です。
AndroidやiOSの場合
iOSやAndroidのアプリでも同様です。今回はAndroid端末に「OpenVPN Connect」のアプリをインストールして試してみます。
アプリをインストールしたら、一番下のOVPN Profileというのをクリックします。
「機器内の写真、メディア、ファイルへのアクセスをOpenVPN Connectに許可しますか?」というメッセージが表示されるので、許可を選択します。
すると…
ovpnファイルを選択する場面が現れるので、あらかじめスマホに移動させておいたovpnファイル(今回はtest.ovpn)を選択します。なお、PCからスマホへのファイルの移動は、クラウドサービスを使うのが簡単です。私は、MicrosoftのOffice 365 SoloのOne Driveを使用しています。もちろん古典的に、Eメールの添付ファイル!でもいけますけどね。
ovpnファイルを選んだら右上のIMPORTボタンを押します。
なんかいろいろ文章が出てくるので、AGREEをクリック。
オレンジの文字で、「プロフィールは無事にインポートされました」と英語でメッセージが出てきて、ovpnファイルに記載されたIPアドレスが表示されています。ここで、右上のADDボタンを押します。
基本、これで完了です。あとは、下の画面から、灰色になっている丸印をリリックすると…
接続リクエストというメッセージが出てくるので、OKボタンを押すと…
きちんとVPNサーバに接続されました。
このOpenVPNのアプリは、パソコンはもちろん、AndroidやiOS(iPadOS)、さらにはAmazon のFireタブレットやFire Stickにもインストールできるので、日本の番組を見たくなったら、接続ボタンを押して、アプリを立ち上げると、地域で制限されず自由に閲覧できます。
以上、参考になれば幸いです。
コメント
始めまして。こちらを参考に行ったところ簡単にできました!
最初にこちらを参考にしたのですが、
https://qiita.com/miyanaga/items/590b25596d8a716e7e68
SoftEtherを使用したvpnサーバーだと通信速度が仮想デスクトップからの接続だと、仮想NICの原因か速度が3MBしか出なかったのですが、OpenVPNのこちらの方法で試したところ120MBと実用に耐える速度になりました。ありがとうございます。
ひとつ質問なのですが、conohaVPSでIPアドレスを150円で追加できますが、こちらの構築したサーバー一つに追加IPアドレスにて設定する方法はありますでしょうか?
初心者さん、こんにちは。コメントありがとうございます。さて、質問いただいた件ですが、追加したIPアドレスで設定する方法は、スミマセン、私も素人なのであまり分かっていませんが、追加したIPアドレスでサーバーにSSHでアクセスをして、同様の設定を行なうというのではダメでしょうか。自分が試したわけではないので、そんなことはできません的な適当なことを言ってしまっていたら、申し訳ないです。
まだこの方法でアマゾンプライムを視聴できていますか?VPNサービスに加入してみたのですが、使えなくなってしまったのでこの方法を試してみようかと考えています
VPSはじめてさん、こんにちは。コメントありがとうございます。さて、質問いただいた件ですが、現在のところ我が家の環境では、日本のアマゾンプライムは問題なく視聴できています。ご参考になれば幸いです。