Ubuntu 16.04でOpenVPNサーバーをセットアップする方法

前書き

ホテルや喫茶店のWiFiなどの信頼できないネットワークに接続したときに、スマートフォンやラップトップからインターネットに安全かつ安全にアクセスしたいですか? https://en.wikipedia.org/wiki/Virtual_private_network [仮想プライベートネットワーク](VPN)を使用すると、信頼できないネットワークをプライベートネットワーク上にいるかのようにプライベートかつ安全にトラバースできます。 トラフィックはVPNサーバーから出て、宛先への旅を続けます。

HTTPS connectionsと組み合わせると、このセットアップによりワイヤレスログインとトランザクションを保護できます。 地理的な制限と検閲を回避し、信頼できないネットワークからの場所と暗号化されていないHTTPトラフィックを保護できます。

https://openvpn.net [OpenVPN]は、幅広い構成に対応するフル機能のオープンソースSSL(Secure Socket Layer)VPNソリューションです。 このチュートリアルでは、DropletでOpenVPNサーバーを設定し、Windows、OS X、iOS、Androidからのアクセスを設定します。 このチュートリアルでは、これらのセットアップのインストールと構成の手順をできる限り単純にします。

前提条件

このチュートリアルを完了するには、Ubuntu 16.04サーバーにアクセスする必要があります。

このガイドを開始する前に、 `+ sudo +`権限で非rootユーザーを設定する必要があります。 Ubuntu 16.04初期サーバーセットアップガイドに従って、適切な権限を持つユーザーをセットアップできます。 リンクされたチュートリアルでは、*ファイアウォール*も設定します。これは、このガイドで説明します。

開始する準備ができたら、Ubuntuサーバーに「+ sudo +」ユーザーとしてログインし、以下に進みます。

ステップ1:OpenVPNをインストールする

最初に、OpenVPNをサーバーにインストールします。 OpenVPNはUbuntuのデフォルトリポジトリで利用できるため、インストールには「+ apt 」を使用できます。 また、 ` easy-rsa +`パッケージをインストールします。これは、VPNで使用する内部CA(認証局)をセットアップするのに役立ちます。

サーバーのパッケージインデックスを更新し、必要なパッケージタイプをインストールするには:

sudo apt-get update
sudo apt-get install openvpn easy-rsa

これで、必要なソフトウェアがサーバー上にあり、構成の準備ができました。

ステップ2:CAディレクトリを設定する

OpenVPNはTLS / SSL VPNです。 これは、サーバーとクライアント間のトラフィックを暗号化するために証明書を利用することを意味します。 信頼できる証明書を発行するには、独自のシンプルな認証局(CA)をセットアップする必要があります。

まず、 `+ make-cadir `コマンドを使用して、 ` easy-rsa +`テンプレートディレクトリをホームディレクトリにコピーできます。

make-cadir ~/openvpn-ca

新しく作成したディレクトリに移動して、CAの構成を開始します。

cd ~/openvpn-ca

ステップ3:CA変数を構成する

CAが使用する値を設定するには、ディレクトリ内の `+ vars +`ファイルを編集する必要があります。 テキストエディターでそのファイルを開きます。

nano vars

内部には、証明書の作成方法を決定するために調整できる変数がいくつかあります。 これらのいくつかを心配するだけです。

ファイルの下部に向かって、新しい証明書のフィールドのデフォルトを設定する設定を見つけます。 これは次のようになります。

〜/ openvpn-ca / vars

. . .

export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="[email protected]"
export KEY_OU="MyOrganizationalUnit"

. . .

赤の値を好きなように編集しますが、空白のままにしないでください。

〜/ openvpn-ca / vars

. . .

export KEY_COUNTRY=""
export KEY_PROVINCE=""
export KEY_CITY=""
export KEY_ORG=""
export KEY_EMAIL=""
export KEY_OU=""

. . .

ここにいる間に、このセクションのすぐ下にある「+ KEY_NAME 」値を編集し、件名フィールドに値を入力します。 これを単純にするために、このガイドでは「 server +」と呼びます。

〜/ openvpn-ca / vars

export KEY_NAME=""

終了したら、ファイルを保存して閉じます。

ステップ4:認証局を構築する

これで、設定した変数と `+ easy-rsa +`ユーティリティを使用して認証局を構築できます。

CAディレクトリにいることを確認し、編集したばかりの `+ vars +`ファイルを入手します。

cd ~/openvpn-ca
source vars

正しくソースされている場合、次のように表示されます。

OutputNOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys

次のように入力して、クリーンな環境で動作していることを確認します。

./clean-all

次のように入力して、ルートCAを構築できます。

./build-ca

これにより、ルート認証局キーと証明書の作成プロセスが開始されます。 `+ vars +`ファイルに記入したため、すべての値が自動的に入力されます。 プロンプトで* ENTER *を押して、選択を確認します。

OutputGenerating a 2048 bit RSA private key
..........................................................................................+++
...............................+++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [US]:
State or Province Name (full name) [NY]:
Locality Name (eg, city) [New York City]:
Organization Name (eg, company) [DigitalOcean]:
Organizational Unit Name (eg, section) [Community]:
Common Name (eg, your name or your server's hostname) [DigitalOcean CA]:
Name [server]:
Email Address [[email protected]]:

これで、必要な残りのファイルを作成するために使用できるCAができました。

ステップ5:サーバー証明書、キー、および暗号化ファイルを作成する

次に、サーバー証明書とキーペア、および暗号化プロセス中に使用されるいくつかの追加ファイルを生成します。

OpenVPNサーバー証明書とキーペアを生成することから始めます。 これを行うには、次のように入力します。

./build-key-server server

繰り返しますが、プロンプトには、先ほど渡した引数( + server +)とソースした `+ vars +`ファイルの内容に基づいたデフォルト値があります。

  • ENTER を押して、デフォルト値を受け入れてください。 このセットアップのチャレンジパスワードを入力しないでください。 最後に、証明書に署名してコミットするには、2つの質問に y *を入力する必要があります。

Output. . .

Certificate is to be certified until May  1 17:51:16 2026 GMT (3650 days)
Sign the certificate? [y/n]:


1 out of 1 certificate requests certified, commit? [y/n]
Write out database with 1 new entries
Data Base Updated

次に、他のいくつかのアイテムを生成します。 次のように入力して、キー交換中に使用する強力なDiffie-Hellmanキーを生成できます。

./build-dh

これが完了するまでに数分かかる場合があります。

その後、HMAC署名を生成して、サーバーのTLS整合性検証機能を強化できます。

openvpn --genkey --secret keys/ta.key

ステップ6:クライアント証明書とキーペアを生成する

次に、クライアント証明書とキーペアを生成できます。 これはクライアントマシン上で実行でき、セキュリティ上の目的でサーバー/ CAによって署名されますが、このガイドでは、簡単にするためにサーバー上で署名付きキーを生成します。

このガイドでは単一のクライアントキー/証明書を生成しますが、複数のクライアントがある場合は、このプロセスを何度でも繰り返すことができます。 各クライアントのスクリプトに一意の値を渡します。

後でこの手順に戻る可能性があるため、 `+ vars `ファイルを再ソースします。 このガイドでは、最初の証明書/キーペアの値として「 client1 +」を使用します。

パスワードなしで認証情報を作成し、自動接続を支援するには、次のように `+ build-key`コマンドを使用します:

cd ~/openvpn-ca
source vars
./build-key

代わりに、パスワードで保護された資格情報のセットを作成する場合は、 `+ build-key-pass +`コマンドを使用します。

cd ~/openvpn-ca
source vars
./build-key-pass

繰り返しますが、デフォルトを設定する必要がありますので、続行するには* ENTER を押すだけです。 チャレンジパスワードを空白のままにして、証明書に署名してコミットするかどうかを尋ねるプロンプトに対して y *を入力することを確認します。

ステップ7:OpenVPNサービスを構成する

次に、生成した資格情報とファイルを使用してOpenVPNサービスの構成を開始できます。

ファイルをOpenVPNディレクトリにコピーする

まず、必要なファイルを `+ / etc / openvpn +`設定ディレクトリにコピーする必要があります。

生成したばかりのすべてのファイルから始めることができます。 これらは作成時に `+〜/ openvpn-ca / keys +`ディレクトリ内に配置されました。 CA証明書、サーバー証明書とキー、HMAC署名、およびDiffie-Hellmanファイルを移動する必要があります。

cd ~/openvpn-ca/keys
sudo cp ca.crt server.crt server.key ta.key dh2048.pem /etc/openvpn

次に、セットアップのベースとして使用できるように、サンプルOpenVPN構成ファイルを構成ディレクトリにコピーして解凍する必要があります。

gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

OpenVPN構成を調整する

ファイルが配置されたので、サーバー構成ファイルを変更できます。

sudo nano /etc/openvpn/server.conf
基本設定

最初に、 `+ tls-auth `ディレクティブを探してHMACセクションを見つけます。 「*; *」を削除して、「 tls-auth +」行のコメントを解除します。

/etc/openvpn/server.conf

tls-auth ta.key 0 # This file is secret

次に、コメントアウトされた「+ cipher 」行を探して、暗号化暗号に関するセクションを見つけます。 ` AES-128-CBC `暗号は、適切なレベルの暗号化を提供し、十分にサポートされています。 「; *」を削除して、「+ cipher AES-128-CBC +」行のコメントを解除します。

/etc/openvpn/server.conf

cipher AES-128-CBC

この下に、「+ auth 」行を追加して、HMACメッセージダイジェストアルゴリズムを選択します。 このため、 ` SHA256 +`は良い選択です。

/etc/openvpn/server.conf

auth SHA256

最後に、 + user`と + group`の設定を見つけて、先頭の「*; *」を削除して、これらの行のコメントを解除します。

/etc/openvpn/server.conf

user nobody
group nogroup
(オプション)DNSの変更をプッシュして、VPNを介してすべてのトラフィックをリダイレクトする

上記の設定により、2台のマシン間にVPN接続が作成されますが、トンネルを使用する接続は強制されません。 VPNを使用してすべてのトラフィックをルーティングする場合は、DNS設定をクライアントコンピューターにプッシュすることができます。

これを行うには、VPNを介してすべてのWebトラフィックをリダイレクトするようにクライアントマシンを構成するいくつかのディレクティブのコメントを外します。 `+ redirect-gateway `セクションを探し、 ` redirect-gateway +`行の先頭からセミコロン「*; *」を削除してコメント解除します。

/etc/openvpn/server.conf

push "redirect-gateway def1 bypass-dhcp"

このすぐ下に、「+ dhcp-option +」セクションがあります。 再び、両方の行の前にある「*; *」を削除して、コメントを外します。

/etc/openvpn/server.conf

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

これは、クライアントがデフォルトゲートウェイとしてVPNトンネルを使用するようにDNS設定を再構成する際に役立ちます。

(オプション)ポートとプロトコルを調整します

デフォルトでは、OpenVPNサーバーはポート1194とUDPプロトコルを使用してクライアント接続を受け入れます。 クライアントが存在する可能性のある制限的なネットワーク環境のために別のポートを使用する必要がある場合、 `+ port +`オプションを変更できます。 OpenVPNサーバーでWebコンテンツをホストしていない場合は、ポート443が一般的な選択肢です。これは通常、ファイアウォールルールで許可されているためです。

/etc/openvpn/server.conf

# Optional!
port

多くの場合、プロトコルもそのポートに制限されます。 その場合、「+ proto +」をUDPからTCPに変更します。

/etc/openvpn/server.conf

# Optional!
proto

別のポートを使用する必要がない場合は、これら2つの設定をデフォルトのままにしておくことをお勧めします。

(オプション)デフォルト以外の資格情報を指す

前の +。/ build-key-server +`コマンドで別の名前を選択した場合、適切な `+ .crt +`および `+を指すように表示される + cert + および + key + `行を変更します。 key + `ファイル。 デフォルトの `+ server +`を使用した場合、これはすでに正しく設定されているはずです。

/etc/openvpn/server.conf

cert .crt
key .key

終了したら、ファイルを保存して閉じます。

ステップ8:サーバーのネットワーク構成を調整する

次に、OpenVPNがトラフィックを正しくルーティングできるように、サーバーのネットワークのいくつかの側面を調整する必要があります。

IP転送を許可する

まず、サーバーがトラフィックを転送できるようにする必要があります。 これは、VPNサーバーが提供する機能にとって非常に重要です。

`+ / etc / sysctl.conf +`ファイルを変更することでこの設定を調整できます:

sudo nano /etc/sysctl.conf

内部で、 `+ net.ipv4.ip_forward`を設定する行を探します。 その設定のコメントを解除するには、行の先頭から「」文字を削除します。

/etc/sysctl.conf

net.ipv4.ip_forward=1

完了したら、ファイルを保存して閉じます。

ファイルを読み取り、現在のセッションの値を調整するには、次のように入力します。

sudo sysctl -p

UFWルールを調整してクライアント接続をマスカレードする

前提条件でUbuntu 16.04の初期サーバーセットアップガイドに従った場合は、UFWファイアウォールを設定する必要があります。 ファイアウォールを使用して不要なトラフィックをブロックするかどうか(ほとんどの場合、これを行う必要があります)にかかわらず、サーバーに着信するトラフィックの一部を操作するには、このガイドのファイアウォールが必要です。 マスカレードを設定するためにルールファイルを変更する必要があります。マスカレードは、クライアント接続を正しくルーティングするための動的NATをオンザフライで提供する「+ iptables +」の概念です。

ファイアウォール構成ファイルを開いてマスカレードを追加する前に、マシンのパブリックネットワークインターフェイスを見つける必要があります。 これを行うには、次を入力します。

ip route | grep default

公開インターフェースは、「dev」という語に従う必要があります。 たとえば、この結果は、以下で強調表示されている「+ wlp11s0 +」という名前のインターフェイスを示しています。

Outputdefault via 203.0.113.1 dev   proto static  metric 600

デフォルトルートに関連付けられたインターフェースがある場合、 `+ / etc / ufw / before.rules +`ファイルを開いて関連する設定を追加します:

sudo nano /etc/ufw/before.rules

このファイルは、従来のUFWルールがロードされる前に配置する必要がある設定を処理します。 ファイルの上部に向かって、強調表示された行を下に追加します。 これにより、 + nat`テーブルの + POSTROUTING`チェーンのデフォルトポリシーが設定され、VPNからのトラフィックがマスカレードされます。

/etc/ufw/before.rules

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#










# Don't delete these required lines, otherwise there will be errors
*filter
. . .

完了したら、ファイルを保存して閉じます。

デフォルトで転送されたパケットも許可するようにUFWに指示する必要があります。 これを行うには、 `+ / etc / default / ufw +`ファイルを開きます:

sudo nano /etc/default/ufw

内部で、 `+ DEFAULT_FORWARD_POLICY `ディレクティブを見つけます。 値を ` DROP `から ` ACCEPT +`に変更します。

/ etc / default / ufw

DEFAULT_FORWARD_POLICY=""

完了したら、ファイルを保存して閉じます。

OpenVPNポートを開き、変更を有効にします

次に、ファイアウォール自体を調整して、OpenVPNへのトラフィックを許可します。

`+ / etc / openvpn / server.conf +`ファイルでポートとプロトコルを変更しなかった場合、ポート1194へのUDPトラフィックを開く必要があります。 ポートやプロトコルを変更した場合は、ここで選択した値に置き換えてください。

前提条件のチュートリアルに従って追加するのを忘れた場合に備えて、SSHポートも追加します。

sudo ufw allow /
sudo ufw allow OpenSSH

これで、UFWを無効にしてから再度有効にして、変更したすべてのファイルから変更を読み込むことができます。

sudo ufw disable
sudo ufw enable

サーバーは、OpenVPNトラフィックを正しく処理するように構成されました。

ステップ9:OpenVPNサービスを開始して有効にする

サーバーでOpenVPNサービスを開始する準備ができました。 systemdを使用してこれを行うことができます。

systemdユニットファイル名の後にインスタンス変数として設定ファイル名を指定して、OpenVPNサーバーを起動する必要があります。 サーバーの設定ファイルは「+ / etc / openvpn / .conf 」と呼ばれるため、ユニットファイルを呼び出すときに「+」をユニットファイルの最後に追加します。

sudo systemctl start [email protected]

次のように入力して、サービスが正常に開始されたことを再確認します。

sudo systemctl status [email protected]

すべてがうまくいった場合、出力は次のようになります。

Output● [email protected] - OpenVPN connection to server
  Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
  Active:  since Tue 2016-05-03 15:30:05 EDT; 47s ago
    Docs: man:openvpn(8)
          https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
          https://community.openvpn.net/openvpn/wiki/HOWTO
 Process: 5852 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid (code=exited, sta
Main PID: 5856 (openvpn)
   Tasks: 1 (limit: 512)
  CGroup: /system.slice/system-openvpn.slice/[email protected]
          └─5856 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid

May 03 15:30:05 openvpn2 ovpn-server[5856]: /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
May 03 15:30:05 openvpn2 ovpn-server[5856]: /sbin/ip route add 10.8.0.0/24 via 10.8.0.2
May 03 15:30:05 openvpn2 ovpn-server[5856]: GID set to nogroup
May 03 15:30:05 openvpn2 ovpn-server[5856]: UID set to nobody
May 03 15:30:05 openvpn2 ovpn-server[5856]: UDPv4 link local (bound): [undef]
May 03 15:30:05 openvpn2 ovpn-server[5856]: UDPv4 link remote: [undef]
May 03 15:30:05 openvpn2 ovpn-server[5856]: MULTI: multi_init called, r=256 v=256
May 03 15:30:05 openvpn2 ovpn-server[5856]: IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
May 03 15:30:05 openvpn2 ovpn-server[5856]: IFCONFIG POOL LIST
May 03 15:30:05 openvpn2 ovpn-server[5856]: Initialization Sequence Completed

次のように入力して、OpenVPNの `+ tun0 +`インターフェースが使用可能であることを確認することもできます。

ip addr show tun0

設定済みのインターフェイスが表示されます。

Output4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100
   link/none
   inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
      valid_lft forever preferred_lft forever

すべてがうまくいった場合は、ブート時に自動的に開始されるようにサービスを有効にします。

sudo systemctl enable [email protected]

ステップ10:クライアント構成インフラストラクチャを作成する

次に、クライアント構成ファイルを簡単に作成できるシステムをセットアップする必要があります。

クライアント構成ディレクトリ構造の作成

ホームディレクトリ内にディレクトリ構造を作成して、ファイルを保存します。

mkdir -p ~/client-configs/files

クライアント構成ファイルにはクライアントキーが埋め込まれているため、内部ディレクトリのアクセス許可をロックダウンする必要があります。

chmod 700 ~/client-configs/files

基本構成の作成

次に、サンプルのクライアント構成をディレクトリにコピーして、基本構成として使用します。

cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

テキストエディターでこの新しいファイルを開きます。

nano ~/client-configs/base.conf

内部では、いくつかの調整を行う必要があります。

最初に、 `+ remote `ディレクティブを見つけます。 これにより、クライアントはOpenVPNサーバーのアドレスをポイントします。 これは、OpenVPNサーバーのパブリックIPアドレスである必要があります。 OpenVPNサーバーがリッスンしているポートを変更した場合は、「 1194+」を選択したポートに変更します。

〜/ client-configs / base.conf

. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote
. . .

プロトコルがサーバー構成で使用している値と一致していることを確認してください。

〜/ client-configs / base.conf

proto

次に、「;」を削除して、「 user」および「+ group」ディレクティブのコメントを解除します。

〜/ client-configs / base.conf

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

+ a ++ cert、および` + key`を設定するディレクティブを見つけます。 ファイル自体に証明書とキーを追加するため、これらのディレクティブをコメント化します。

〜/ client-configs / base.conf

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert client.crt
key client.key

`+ / etc / openvpn / server.conf `ファイルで設定した ` cipher `および ` auth +`設定をミラーリングします。

〜/ client-configs / base.conf

次に、ファイルのどこかに `+ key-direction +`ディレクティブを追加します。 サーバーで動作するには、これを「1」に設定する必要があります。

〜/ client-configs / base.conf

最後に、いくつかの*コメントアウト*行を追加します。 これらをすべての設定に含める必要がありますが、 `+ / etc / openvpn / update-resolv-conf `ファイルとともに出荷されるLinuxクライアントに対してのみ有効にする必要があります。 このスクリプトは、 ` resolvconf +`ユーティリティを使用してLinuxクライアントのDNS情報を更新します。

〜/ client-configs / base.conf

クライアントがLinuxを実行しており、 `+ / etc / openvpn / update-resolv-conf +`ファイルがある場合、生成されたOpenVPNクライアント設定ファイルからこれらの行のコメントを外す必要があります。

完了したらファイルを保存します。

構成生成スクリプトの作成

次に、関連する証明書、キー、および暗号化ファイルを使用して基本構成をコンパイルする簡単なスクリプトを作成します。 これにより、生成された設定が `+〜/ client-configs / files +`ディレクトリに配置されます。

`〜/ client-configs +`ディレクトリ内に ` make_config.sh +`というファイルを作成して開きます:

nano ~/client-configs/make_config.sh

内部に、次のスクリプトを貼り付けます。

〜/ client-configs / make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} \
   <(echo -e '<ca>') \
   ${KEY_DIR}/ca.crt \
   <(echo -e '</ca>\n<cert>') \
   ${KEY_DIR}/${1}.crt \
   <(echo -e '</cert>\n<key>') \
   ${KEY_DIR}/${1}.key \
   <(echo -e '</key>\n<tls-auth>') \
   ${KEY_DIR}/ta.key \
   <(echo -e '</tls-auth>') \
   > ${OUTPUT_DIR}/${1}.ovpn

完了したら、ファイルを保存して閉じます。

次のように入力して、ファイルを実行可能としてマークします。

chmod 700 ~/client-configs/make_config.sh

ステップ11:クライアント構成を生成する

これで、クライアント構成ファイルを簡単に生成できます。

ガイドに従って進めた場合は、手順6で `。/ build-key +`コマンドを実行して、それぞれ ` client1.crt `および ` client1.key `というクライアント証明書とキーを作成しました。 `〜/ client-configs +`ディレクトリに移動し、作成したスクリプトを使用して、これらの認証情報の設定を生成できます。

cd ~/client-configs
./make_config.sh

すべてがうまくいけば、 `〜/ client-configs / files +`ディレクトリに ` client1.ovpn +`ファイルがあるはずです:

ls ~/client-configs/files
Outputclient1.ovpn

クライアントデバイスへの構成の転送

クライアント構成ファイルを関連するデバイスに転送する必要があります。 たとえば、これはローカルコンピューターまたはモバイルデバイスである可能性があります。

この転送を行うために使用される正確なアプリケーションは、選択およびデバイスのオペレーティングシステムによって異なりますが、アプリケーションでバックエンドでSFTP(SSHファイル転送プロトコル)またはSCP(セキュアコピー)を使用する必要があります。 これにより、クライアントのVPN認証ファイルが暗号化された接続を介して転送されます。

この例を使用したSFTPコマンドの例を次に示します。 このコマンドは、ローカルコンピューター(OS XまたはLinux)から実行できます。 ホームディレクトリに `+ .ovpn +`ファイルを配置します:

sftp @:client-configs/files/client1.ovpn ~/

サーバーからローカルコンピューターにファイルを安全に転送するためのいくつかのツールとチュートリアルを次に示します。

ステップ12:クライアント構成をインストールする

次に、Windows、OS X、iOS、AndroidにクライアントVPNプロファイルをインストールする方法について説明します。 これらのクライアントの指示はどれも互いに依存していません。そのため、該当する方に自由にスキップしてください。

OpenVPN接続は、 `+ .ovpn `ファイルに名前を付けたものと呼ばれます。 この例では、これは、生成した最初のクライアントファイルの接続が ` client1.ovpn +`と呼ばれることを意味します。

Windows

インストール中

Windows用のOpenVPNクライアントアプリケーションは、https://openvpn.net/index.php/open-source/downloads.html [OpenVPNのダウンロードページ]にあります。 Windowsのバージョンに適したインストーラーバージョンを選択します。

Note

OpenVPNのインストール後、 `+ .ovpn +`ファイルを次の場所にコピーします。

C:\Program Files\OpenVPN\config

OpenVPNを起動すると、プロファイルが自動的に表示され、使用可能になります。

OpenVPNは、管理アカウントであっても、使用するたびに管理者として実行する必要があります。 VPNを使用するたびに右クリックして[管理者として実行]を選択せず​​にこれを行うには、これを事前設定できますが、これは管理アカウントから行う必要があります。 これは、標準ユーザーがOpenVPNを使用するために管理者のパスワードを入力する必要があることも意味します。 一方、標準ユーザーは、クライアントのOpenVPNアプリケーションに管理者権限がない限り、サーバーに適切に接続できないため、昇格した権限が必要です。

OpenVPNアプリケーションを常に管理者として実行するように設定するには、ショートカットアイコンを右クリックして、[プロパティ]に移動します。 [互換性]タブの下部にある[すべてのユーザーの設定を変更]ボタンをクリックします。 新しいウィンドウで、[このプログラムを管理者として実行する]をオンにします。

接続中

OpenVPN GUIを起動するたびに、Windowsはプログラムがコンピューターに変更を加えることを許可するかどうかを尋ねます。 [はい]をクリックします。 OpenVPNクライアントアプリケーションを起動すると、アプレットがシステムトレイに配置されるだけなので、VPNは必要に応じて接続および切断できます。実際にはVPN接続を確立しません。

OpenVPNが起動したら、システムトレイアプレットに移動し、OpenVPNアプレットアイコンを右クリックして接続を開始します。 これにより、コンテキストメニューが開きます。 メニューの上部にある[* client1 *]( `+ client1.ovpn +`プロファイル)を選択し、[接続]を選択します。

接続が確立されている間、ステータスウィンドウにログ出力が表示され、クライアントが接続されるとメッセージが表示されます。

同じ方法でVPNから切断します。システムトレイアプレットに移動し、OpenVPNアプレットアイコンを右クリックして、クライアントプロファイルを選択し、*切断*をクリックします。

OS X

インストール中

Tunnelblickは、Mac OS X用の無料のオープンソースOpenVPNクライアントです。 Tunnelblickダウンロードページから最新のディスクイメージをダウンロードできます。 ダウンロードした `+ .dmg +`ファイルをダブルクリックし、プロンプトに従ってインストールします。

インストールプロセスの最後に向かって、Tunnelblickは構成ファイルがあるかどうかを尋ねます。 *いいえ*と答えてTunnelblickを終了させる方が簡単です。 Finderウィンドウを開き、「+ client1.ovpn +」をダブルクリックします。 Tunnelblickはクライアントプロファイルをインストールします。 管理者権限が必要です。

接続中

  • Applications *フォルダーのTunnelblickをダブルクリックしてTunnelblickを起動します。 Tunnelblickが起動すると、接続を制御するための画面右上のメニューバーにTunnelblickアイコンが表示されます。 アイコンをクリックし、[接続]メニュー項目をクリックしてVPN接続を開始します。 * client1 *接続を選択します。

Linux

インストール中

Linuxを使用している場合、ディストリビューションに応じて使用できるさまざまなツールがあります。 デスクトップ環境またはウィンドウマネージャーには、接続ユーティリティも含まれている場合があります。

ただし、最も一般的な接続方法は、OpenVPNソフトウェアを使用することです。

UbuntuまたはDebianでは、次のように入力して、サーバーにインストールしたのと同じようにインストールできます。

sudo apt-get update
sudo apt-get install openvpn

CentOSでは、EPELリポジトリを有効にしてから、次のように入力してインストールできます。

sudo yum install epel-release
sudo yum install openvpn
設定中

ディストリビューションに `+ / etc / openvpn / update-resolv-conf +`スクリプトが含まれているかどうかを確認します。

ls /etc/openvpn
Outputupdate-resolve-conf

次に、転送したOpenVPNクライアント構成ファイルを編集します。

nano .ovpn

`+ update-resolv-conf +`ファイルが見つかった場合、DNS設定を調整するために配置した3行のコメントを解除します。

client1.ovpn

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

CentOSを使用している場合、ディストリビューションの使用可能なグループに一致するように、「+ group」を「+ group」から「+ nobody」に変更します。

client1.ovpn

group

ファイルを保存して閉じます。

これで、 `+ openvpn +`コマンドをクライアント設定ファイルにポイントするだけでVPNに接続できます:

sudo openvpn --config .ovpn

これにより、サーバーに接続されます。

iOS

インストール中

iTunes App Storeから、https://itunes.apple.com/us/app/id590379981 [OpenVPN Connect](公式iOS OpenVPNクライアントアプリケーション)を検索してインストールします。 iOSクライアント構成をデバイスに転送するには、デバイスをコンピューターに直接接続します。

iTunesでの転送の完了については、こちらをご覧ください。 コンピューターでiTunesを開き、* iPhone > * apps *をクリックします。 [ファイル共有]セクションまで下にスクロールして、OpenVPNアプリをクリックします。 右側の空のウィンドウ OpenVPN Documents *は、ファイルを共有するためのものです。 `+ .ovpn +`ファイルをOpenVPNドキュメントウィンドウにドラッグします。

image:https://assets.digitalocean.com/articles/openvpn_ubunutu/1.png [iPhoneにロードする準備ができているVPNプロファイルを示すiTunes]

iPhoneでOpenVPNアプリを起動します。 新しいプロファイルをインポートする準備ができたという通知があります。 緑色のプラス記号をタップしてインポートします。

image:https://assets.digitalocean.com/articles/openvpn_ubunutu/2.png [インポート可能な新しいプロファイルを表示するOpenVPN iOSアプリ]

接続中

これで、OpenVPNを新しいプロファイルで使用する準備ができました。 * Connect ボタンを On *の位置にスライドして、接続を開始します。 同じボタンを*オフ*にスライドして切断します。

Note

image:https://assets.digitalocean.com/articles/openvpn_ubunutu/3.png [VPNに接続されたOpenVPN iOSアプリ]

アンドロイド

インストール中

Google Playストアを開きます。 公式のAndroid OpenVPNクライアントアプリケーションであるhttps://play.google.com/store/apps/details?id=net.openvpn.openvpn[Android OpenVPN Connect]を検索してインストールします。

`+ .ovpn +`プロファイルを転送するには、AndroidデバイスをUSBでコンピューターに接続し、ファイルをコピーします。 または、SDカードリーダーをお持ちの場合は、デバイスのSDカードを取り外してプロファイルをコピーし、Androidデバイスにカードを挿入し直すことができます。

OpenVPNアプリを起動し、メニューをタップしてプロファイルをインポートします。

image:https://assets.digitalocean.com/articles/openvpn_ubunutu/4.png [OpenVPN Androidアプリプロファイルインポートメニュー選択]

次に、保存されたプロファイルの場所に移動し(スクリーンショットでは `+ / sdcard / Download / +`を使用)、ファイルを選択します。 アプリは、プロファイルがインポートされたことをメモします。

image:https://assets.digitalocean.com/articles/openvpn_ubunutu/5.png [インポートするVPNプロファイルを選択するOpenVPN Androidアプリ]

接続中

接続するには、[接続]ボタンをタップするだけです。 OpenVPNアプリケーションを信頼するかどうかを尋ねられます。 * OK *を選択して接続を開始します。 VPNから切断するには、OpenVPNアプリに戻り、*切断*を選択します。

image:https://assets.digitalocean.com/articles/openvpn_ubunutu/6.png [VPNに接続できるOpenVPN Androidアプリ]

ステップ13:VPN接続をテストする

すべてがインストールされたら、簡単なチェックですべてが正常に機能していることを確認します。 VPN接続を有効にせずに、ブラウザーを開いてhttps://www.dnsleaktest.com [DNSLeakTest]にアクセスします。

このサイトは、インターネットサービスプロバイダーによって割り当てられたIPアドレスと、世界中に表示されるIPアドレスを返します。 同じWebサイトからDNS設定を確認するには、* Extended Test *をクリックすると、使用しているDNSサーバーがわかります。

次に、OpenVPNクライアントをDropletのVPNに接続し、ブラウザーを更新します。 VPNサーバーの完全に異なるIPアドレスが表示されます。 それが今、あなたが世界に現れる方法です。 繰り返しますが、https://www.dnsleaktest.com [DNSLeakTest’s] * Extended Test *はDNS設定を確認し、VPNによってプッシュされたDNSリゾルバーを使用していることを確認します。

ステップ14:クライアント証明書の取り消し

OpenVPNサーバーへのさらなるアクセスを防ぐために、クライアント証明書を失効させる必要がある場合があります。

これを行うには、CAディレクトリを入力し、 `+ vars +`ファイルを再ソースします:

cd ~/openvpn-ca
source vars

次に、取り消したいクライアント名を使用して、 `+ revoke-full +`コマンドを呼び出します。

./revoke-full

これにより、「+ error 23+」で終わる出力が表示されます。 これは正常であり、プロセスは必要な失効情報を正常に生成するはずです。失効情報は、「+ keys 」サブディレクトリ内の「 crl.pem +」というファイルに保存されます。

このファイルを `+ / etc / openvpn +`設定ディレクトリに転送します:

sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn

次に、OpenVPNサーバー構成ファイルを開きます。

sudo nano /etc/openvpn/server.conf

ファイルの下部に、 `+ crl-verify +`オプションを追加して、OpenVPNサーバーが、接続が試行されるたびに作成した証明書失効リストをチェックするようにします。

/etc/openvpn/server.conf

crl-verify crl.pem

ファイルを保存して閉じます。

最後に、OpenVPNを再起動して証明書失効を実装します。

sudo systemctl restart [email protected]

これで、クライアントは古い資格情報を使用してサーバーに正常に接続できるようになります。

追加のクライアントを取り消すには、次のプロセスに従います。

  1. `〜/ openvpn-ca +`ディレクトリにある ` vars `ファイルを取得し、クライアント名で ` revoke-full +`スクリプトを呼び出すことにより、新しい証明書失効リストを生成します。

  2. 新しい証明書失効リストを `+ / etc / openvpn +`ディレクトリにコピーして、古いリストを上書きします。

  3. OpenVPNサービスを再起動します。

このプロセスは、サーバーに対して以前に発行した証明書を取り消すために使用できます。

結論

おめでとうございます。 これで、あなたの身元、場所、およびトラフィックをスヌーパーや検閲者から保護しながら、インターネットを安全に横断しています。

より多くのクライアントを構成するには、追加デバイスごとに手順* 6 および 11-13 を実行するだけです。 クライアントへのアクセスを取り消すには、ステップ 14 *に従ってください。

Related