Help us understand the problem. What is going on with this article?

ConohaのVPS一台でVPNを立てたうえでローカルアドレスにアクセスしてみる。

More than 3 years have passed since last update.

重要

もしかしたらうまくいってないかも・・・
ツッコミ歓迎です。というか誰かやり方おしえてくだされ・・・

はじめに

前の投稿でPritunlを使ってVPNを構築してみたのですが、イマイチうまい使いみちが思いつかなかったのですが、ConohaのVPSではローカルネットワークが独自に構築できるということを知りました。
なので、VPS一台ではありますが、VPNからローカルネットワークにアクセスできる環境を構築してみました。

Conoha上にローカルネットワークを構築

ここを参照。
サブネットマスクは10.0.0.0/24、IPアドレスは10.0.0.11としました。

構築イメージ

Untitled Diagram.png

Dockerが独自に立てるネットワーク、VPNで構築されるネットワーク、グローバルIP、ローカルネットワークとサーバ一台なのにネットワークが4つ。もう意味がわからない。
otherserviceはDockerで構築する際に10.0.0.11からのアクセスを許容するようにし、pritunlはグローバルIPからのVPN接続を許容、かつローカルネットワークにブリッジさせます。

Docker-Composeの設定

前回からの設定と違い、docker-compose.ymlの記法はversion2を利用します。
version2からはネットワークスタックなどもdocker-compose.ymlに定義できるようになっているので、より自由度の高い構築ができるようになっています。

docker-compose.yml
version: '2'

services:
  mongo:
    image: mongo
    volumes:
      - ./mongo:/data/db
    networks:
      - default
      - local
    ports:
      - "127.0.0.1:9700:443"
      - "1194:1194/udp"
      - "1194:1194/tcp"
    restart: always
  pritunl:
    image: fridus/pritunl
    privileged: true
    environment:
      - MONGO_URI=mongodb://127.0.0.1:27017/pritunl
    restart: always
    network_mode: service:mongo

networks:
  local:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 10.0.10.0/24
          ip_range: 10.0.10.0/24
          gateway: 10.0.10.1

前回と違い、ネットワーク専用のサービスは削除して、MongoDBのサービスのネットワークにPritunlがあいのりするようにしました。
MongoDBはデフォルトのDockerのネットワークおよびNetworksで定義しているローカルネットワークに接続しつつ、Portsで外部に対してVPN用のポートおよび管理コンソール用のポートを開放しています。

Pritunlの設定

ここを参照

その他のサービスの設定

その他のサービスについては、以下のように設定して10.0.0.11へのアクセスが可能なようにしておきます。

docker-compose.yml
version: '2'

services:
  service:
    image: hogehoge
    ports:
      - "127.0.0.1:8080:80"
      - "10.0.0.11:8080:80"
    restart: always

その後はUFWを解放してあげて終了。
Pritunlがつくった192.168.232.0/24からのアクセスだけ許可してあげればいいのかな?
ちょっとココらへんが怪しい

$ sudo ufw allow from 192.168.232.0/24
$ sudo ufw allow from 10.0.10.0/24

あとはdocker-compose upでローカルネットワークにもアクセスできる環境が構築できます。
一応10.0.0.11:8080に対してTelnetが通ることだけは確認。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away