VPS + Dockerで専用VPNサーバーを立ち上げる
公開日: 2020.9.9
VPS + Dockerで専用VPNサーバーを立ち上げる方法をまとめました。リモートワークやWiMAXのモバイル回線などで固定IPアドレスを使いたいときにも利用できます。
VPSでDocker環境を用意する
Dockerは基本的にどのLinuxにも対応しているので、好きなディストリビューション使っても問題ありません。
ConoHa VPSやDigital OceanだとDockerのテンプレートイメージが配布されているので便利です。
「時間料金」「豊富なテンプレート簡単立ち上げ」など、他社サービスに先行してVPSをより使いやすくしたVPSサービス「Conoha VPS」。登録アカウント数が55万人を突破し、名実共に国内VPSベンダーの中でも人気上位VPSとなっています。
docker-compose.ymlを用意する
サーバーにSSH接続したら、VPNサーバーであるpritunlコンテナを立ち上げるdocker-composeファイルを作成します。作成場所は、任意の場所で構いません。
version: '2'
services:
pritunl:
container_name: pritunl
restart: always
image: jippi/pritunl
privileged: true
environment:
- PRITUNL_MONGODB_URI=mongodb://mongo:27017/pritunl
ports:
- 80:80
- 443:443
- 1194:1194
mongo:
container_name: mongo
restart: always
image: mongo
privileged: true
volumes:
- /data/db:/data/db
ちなみに、利用するVPSサーバーがWebサーバーなどと同居している場合は、上記のdocker-compose.ymlの80番ポート、443番ポートを任意のものに変更してください。
VPN管理サーバー・コンテナを立ち上げる
作成したら、管理サーバーコンテナを立ち上げます。
sudo docker-copmose up -d
エラーがおきなければログの表示後にpritunl管理画面サーバーが立ち上がっているので、ログインします。ログイン認証が出てきます。ID・パスワードはどちらも「pritunl」です。
https://VPSのIPアドレス/
ここで立ち上げているのはあくまでVPNサーバーを管理するためのサーバーで、VPNサーバー自体は管理画面から作成します。
pritunl管理画面から各種設定をする
Organization、User、Serverを作成する
作成順序としては、
- Organization
- User
- Server
の順番です。
UserにはOrganizationが必要で、Serverが必要です。そして、Userがいないと接続が作成できません。
順番に作成していきます。
作成をしたらStart ServerボタンでVPNサーバーを立ち上げます。立ち上がると「Portという項目にxxxxx/udp」という数字が出るので、xxxxxの数字をコピーしておきます。
VPSサーバーに戻ってUDPポートをアサインする
このままだとVPNサーバーが使うUDPポートがDockerコンテナにアサインされていないので、docker-composeを編集して再起動します。
version: '2'
services:
pritunl:
container_name: pritunl
restart: always
image: jippi/pritunl
privileged: true
environment:
- PRITUNL_MONGODB_URI=mongodb://mongo:27017/pritunl
ports:
- 80:80
- 443:443
- 1194:1194
- xxxxx:xxxxx/udp # <-- ここ
mongo:
container_name: mongo
restart: always
image: mongo
privileged: true
volumes:
- /data/db:/data/db
ポート指定の「/udp」は必須です。入れないとTCP接続になります。
変更したら、
sudo docker-compose up -d --build
でコンテナを再生成します。再生成しても設定データはMongoDB側に残っているので問題ありません。
再生成が成功すればOKです。
クライアントのVPN設定で接続すればOK
VPNの接続方法はそれぞれなので割愛します。下記のページなどをご参考にどうぞ。
pritunl VPNサーバへVPNクライアントを利用して接続する方法
注意ポイント
Firewall設定は不要な場合がある
ネット上の記事では、firewalldやufwでファイアウォールのポートを開ける作業を紹介しているケースがありますが、VPSサーバーの場合、デフォルトでファイアウォールが動いているとは限りません。
VPSサーバーでは、独自のファイアウォールをVPSインスタンスの前に用意していることがあるので(Digital Oceanなどはこのパターン)、その場合は、VPSインスタンス内のでファイアウォールの設定をするのではなく、管理画面からポートを開けます。
管理画面は設定したらポートを閉じよう
pritunlの管理画面は、簡単なパスワード式なので総当たり攻撃などをされたら簡単に乗っ取られてしまいます。
VPNサーバーは動いている限り変更することは少ないので、VPSの管理画面ポートは設定をしたら閉じてしまいましょう。今回の例の場合は、80番と443番です。
VPSの転送上限に気をつけよう
VPSサーバーの場合、月間転送量に上限が設定されていることがほとんどです。
ブラウザやメールくらいなら上限を超えることはあまりありませんが、動画の視聴やオンラインゲームなどを大量に行うと、月間転送量上限を超えることもあるので注意してください。
VPS + Dockerで専用VPNサーバーを立ち上げる方法を見てきました。
リモートワークで社内環境に外部からアクセスする場合や、携帯やWiMAXなどのモバイル回線で固定IPを使う際に、固定IPサービスを利用するよりも安くて便利なので、ぜひ試してみてください。
この記事で紹介したサーバーサービス
「時間料金」「豊富なテンプレート簡単立ち上げ」など、他社サービスに先行してVPSをより使いやすくしたVPSサービス「Conoha VPS」。登録アカウント数が55万人を突破し、名実共に国内VPSベンダーの中でも人気上位VPSとなっています。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
VPSの新着記事
- VPSDockerでStrapi 5プロジェクトを立ち上げる方法 2024.9.25
- VPS「4倍の処理能力」の実力は?シンVPSの最安値プランをベンチマーク比較 2024.7.23
- VPSVPSのDockerアプリケーションイメージでEC-CUBEサイトを超速で構築する方法 2024.7.20
- VPSVPSの低価格プランを選ぶ際のポイントと注意点 2024.6.4
- VPSドメインが無料になるVPSはあるのか? 2024.5.27
- VPSVPSサーバーの「時間課金」の仕組みをわかりやすく解説 2024.5.23
- VPSNextcloudのOSS版とEnterprise版の違いまとめ 2023.12.26
- VPSどちらを選ぶべき?ownCloudとNextcloudのOSS版の違いを徹底比較! 2023.12.25