DockerでOpenVPN Access Serverを使用した独自のVPNサーバーを動作させる
マシンを作成する
最初に、以下のリソースを持つマシンを作成します。 20 GHz CPU 16 GB RAM 20 GB SSD CloudSigmaのライブラリにあるUbuntu 18.04イメージを使用してディスクをマウントします。 Ubuntu 18.04:VirtIOドライバ、superuser、Python 2.7.15、Pip 18.0、OpenSSL 1.1.0i、Cloud-init、および2018年9月30日までの最新の更新がプリインストールされた64bit版。 マシン上のすべての既存のリポジトリとパッケージを更新します。
sudo apt update
sudo apt upgrade
システムが最新の状態になったら、Dockerのインストールに移ります。Dockerの詳細については、こちらをご覧ください。
Dockerをインストールする
次のコマンドを実行してDockerをインストールできます。
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
OpenVPN
Dockerが正常にインストールされたら、OpenVPN Access Serverの稼働を開始できます。次に示すのは、指定した設定でOpenVPN Access Serverの新しいDockerコンテナを作成するコマンドです。
docker create \
--name=openvpn-as \
-v <path to data>:/config \
-e PGID=<gid> -e PUID=<uid> \
-e TZ=<timezone> \
-e INTERFACE=<interface> \
--net=host --privileged \
linuxserver/openvpn-as
次のコマンドはDockerイメージのページに記載されています。
openvpn-asが設定ファイルを保存する場所:
-v /config
GroupIDの指定:
-e PGID
ユーザーIDの指定:
-e PUID
タイムゾーン設定:
-e TZ
openvpn-asのインターフェース設定(デフォルトはeth0):
-e INTERFACE
重要:ほとんどのユーザーは、ホストモードで操作する必要があります。
--net=host
重要:特権モード以外では動作しません。
--privileged
グループIDとユーザーIDを取得するには、次のコマンドを実行します。
id
ここでは、タイムゾーンをCETとします。
インターフェースの取得には、次のコマンドを実行します。
ip r
インターフェースは通常、ens3またはeth0です。今回のシステムの場合は、ens3になっています。
これらの指定をすべて追加して、次のコマンドを実行します。
sudo docker create --name=openvpn-as \
--restart=always \
-v /home/docker/openvpn-as/config:/config \
-e INTERFACE=ens3 \
-e PGID=1004 -e PUID=1000 \
-e TZ=Europe/Warsaw \
--net=host --privileged \
linuxserver/openvpn-as
まだイメージがシステムに存在しないため、イメージはサーバーから取得されます。出力は次のようになります。
Unable to find image 'linuxserver/openvpn-as:latest' locally
latest: Pulling from linuxserver/openvpn-as
56d9dc91333b: Pull complete
1356b0cfc067: Pull complete
155f3c53d4a5: Pull complete
05088c205b6d: Pull complete
112068b0fa4e: Pull complete
2ff5dd4a0d9b: Pull complete
7dd87385ca73: Pull complete
d966d969c7cd: Pull complete
4439dbcda217: Pull complete
5f960f89c64e: Pull complete
Digest: sha256:d65f743bcec24b6b6ad0b19f9d7876cd70d5237690a940301b2366d6d5767a80
Status: Downloaded newer image for linuxserver/openvpn-as:latest
f0a1eb5440b5a423f8f21081d8654aaba2c0bd9995d2dea88a979c97ea977e16
次のコマンドを使用してコンテナを起動します。
sudo docker start openvpn-as
ログインする
起動したら、アクセスサーバーの管理パネルに移動します。 次のURLに移動します。https://<>:943/admin
デフォルトでは、次のユーザー名とパスワードが要求されます。
ユーザー名:admin
パスワード:password
ログインすると、EULA(エンドユーザー使用許諾契約書)に同意するかどうかを尋ねられます。[Agree(同意する)]をクリックし、管理ダッシュボードに移動します。
セキュリティ上の理由から、adminアカウントのパスワードを変更することをお勧めします。次のコマンドを使用してパスワードを変更します。
docker exec -it openvpn-as passwd admin
DNSを設定する
サーバーが稼働したら、DNSを設定します。ドメインネームサーバー(DNS)の詳細については、こちらをクリックしてください。 最も高速なDNSサーバーの1つが、GoogleのDNSサーバーです。クライアントがWebサイトを簡単に見て回れるように、OpenVPN Access ServerでDNSを設定します。 [VPN settings(VPN設定)]を表示し、[DNS settings(DNS設定)]で、[Have clients use specific DNS servers(クライアントに特定のDNSサーバを使用させる)]を有効にします。
次に、DNSサーバーの欄に以下のアドレスを入力します。
Primary DNS Server(プライマリDNSサーバー):8.8.8.8
Secondary DNS Server(セカンダリDNSサーバー):8.8.8.4
設定を保存して、[Update Running Server(動作中のサーバーを更新)]をクリックします。これで、動作中のサーバーが更新されます。 サーバーが正しく設定されたら、システム経由でのVPNの接続に進むことができます。
次のクライアントUIにアクセスします。https://<>:943 adminのユーザー名とパスワードを入力するか、管理パネルの[User Management(ユーザー管理)]セクションで新しいユーザーを作成します。 ログインすると、OSごとのさまざまなオプションが表示されます。ここでは、Windowsを選択し、クライアントソフトウェアをダウンロードします。
インストールが完了したら、スタートメニューから起動するか、自動的に起動します。システムトレイから、先ほど設定したアカウントを使ってVPNに接続できます。
これで、VPNに接続されました。以上です。このようにしてDockerにVPNサーバーを作成します。