Ubuntu16.04でOpenVPNサーバーをセットアップする方法
序章
ホテルやコーヒーショップのWiFiなどの信頼できないネットワークに接続しているときに、スマートフォンやラップトップからインターネットに安全かつ確実にアクセスしたいですか? 仮想プライベートネットワーク(VPN)を使用すると、信頼できないネットワークをプライベートネットワーク上にいるかのようにプライベートかつ安全にトラバースできます。 トラフィックはVPNサーバーから出て、宛先への移動を続けます。
HTTPS接続と組み合わせると、この設定により、ワイヤレスログインとトランザクションを保護できます。 地理的な制限や検閲を回避し、場所と暗号化されていないHTTPトラフィックを信頼できないネットワークから保護することができます。
OpenVPN は、幅広い構成に対応するフル機能のオープンソースSecure Socket Layer(SSL)VPNソリューションです。 このチュートリアルでは、Droplet上にOpenVPNサーバーをセットアップし、Windows、OS X、iOS、Androidからのアクセスを構成します。 このチュートリアルでは、これらのセットアップのインストールと構成の手順を可能な限り簡単にします。
注: DigitalOcean DropletにOpenVPNサーバーをセットアップする場合は、多くのホスティングプロバイダーと同様に、帯域幅の超過に対して課金されることに注意してください。 このため、サーバーが処理しているトラフィックの量に注意してください。
詳細については、このページを参照してください。
前提条件
このチュートリアルを完了するには、Ubuntu16.04サーバーにアクセスする必要があります。
非rootユーザーを設定する必要があります sudo
このガイドを開始する前に特権。 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/SSLVPNです。 これは、サーバーとクライアント間のトラフィックを暗号化するために証明書を利用することを意味します。 信頼できる証明書を発行するには、独自の単純な認証局(CA)を設定する必要があります。
まず、コピーすることができます easy-rsa
テンプレートディレクトリをホームディレクトリに make-cadir
指図:
- make-cadir ~/openvpn-ca
新しく作成されたディレクトリに移動して、CAの構成を開始します。
- cd ~/openvpn-ca
手順3:CA変数を構成する
CAが使用する値を構成するには、 vars
ディレクトリ内のファイル。 そのファイルをテキストエディタで今すぐ開きます。
- nano 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"
. . .
赤の値を好きなように編集しますが、空白のままにしないでください。
. . .
export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York City"
export KEY_ORG="DigitalOcean"
export KEY_EMAIL="[email protected]"
export KEY_OU="Community"
. . .
ここにいる間、編集します KEY_NAME
サブジェクトフィールドに入力されるこのセクションのすぐ下の値。 これを簡単にするために、これを呼び出します server
このガイドの内容:
export KEY_NAME="server"
終了したら、ファイルを保存して閉じます。
ステップ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サーバー証明書とキーペアを生成することから始めます。 これを行うには、次のように入力します。
注:以外の名前を選択した場合 server
ここでは、以下の手順のいくつかを調整する必要があります。 たとえば、生成されたファイルをにコピーする場合 /etc/openvpn
directroy、正しい名前に置き換える必要があります。 また、変更する必要があります /etc/openvpn/server.conf
後で正しいファイルを指すようにファイルします .crt
と .key
ファイル。
- ./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]:y
1 out of 1 certificate requests certified, commit? [y/n]y
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 client1
代わりに、パスワードで保護された一連の資格情報を作成する場合は、 build-key-pass
指図:
- cd ~/openvpn-ca
- source vars
- ./build-key-pass client1
繰り返しになりますが、デフォルトを設定する必要があるため、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
基本構成
まず、HMACセクションを探して見つけます tls-auth
指令。 「;」を削除してコメントを解除します tls-auth
ライン:
tls-auth ta.key 0 # This file is secret
次に、コメントアウトされたものを探して、暗号暗号に関するセクションを見つけます cipher
行。 The AES-128-CBC
暗号は、優れたレベルの暗号化を提供し、十分にサポートされています。 「;」を削除してコメントを解除します cipher AES-128-CBC
ライン:
cipher AES-128-CBC
この下に、 auth
HMACメッセージダイジェストアルゴリズムを選択する行。 このため、 SHA256
良い選択です:
auth SHA256
最後に、 user
と group
設定を行い、先頭の「; 」を削除して、これらの行のコメントを解除します。
user nobody
group nogroup
(オプション)DNSの変更をプッシュして、VPNを介してすべてのトラフィックをリダイレクトします
上記の設定により、2台のマシン間にVPN接続が作成されますが、接続でトンネルを使用するように強制されることはありません。 VPNを使用してすべてのトラフィックをルーティングする場合は、DNS設定をクライアントコンピューターにプッシュすることをお勧めします。
これを行うには、VPNを介してすべてのWebトラフィックをリダイレクトするようにクライアントマシンを構成するいくつかのディレクティブのコメントを解除します。 を見つける redirect-gateway
セクションを作成し、セミコロン「;」を先頭から削除します redirect-gateway
コメントを外す行:
push "redirect-gateway def1 bypass-dhcp"
このすぐ下で、 dhcp-option
セクション。 繰り返しますが、両方の行の前から「; 」を削除して、コメントを解除します。
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
これは、クライアントがDNS設定を再構成して、VPNトンネルをデフォルトゲートウェイとして使用するのに役立ちます。
(オプション)ポートとプロトコルを調整します
デフォルトでは、OpenVPNサーバーはポート1194とUDPプロトコルを使用してクライアント接続を受け入れます。 クライアントが存在する可能性のあるネットワーク環境が制限されているために別のポートを使用する必要がある場合は、 port
オプション。 OpenVPNサーバーでWebコンテンツをホストしていない場合、ポート443は通常、ファイアウォールルールで許可されているため、一般的な選択肢です。
# Optional!
port 443
多くの場合、プロトコルがそのポートにも制限される場合。 もしそうなら、変更します proto
UDPからTCPへ:
# Optional!
proto tcp
別のポートを使用する必要がない場合は、これら2つの設定をデフォルトのままにしておくことをお勧めします。
(オプション)デフォルト以外の資格情報を指す
中に別の名前を選択した場合 ./build-key-server
以前のコマンド、変更 cert
と key
適切なものを指すために表示される線 .crt
と .key
ファイル。 デフォルトを使用した場合 server
、これはすでに正しく設定されているはずです:
cert server.crt
key server.key
終了したら、ファイルを保存して閉じます。
手順8:サーバーネットワーク構成を調整する
次に、OpenVPNがトラフィックを正しくルーティングできるように、サーバーのネットワーキングのいくつかの側面を調整する必要があります。
IP転送を許可する
まず、サーバーがトラフィックを転送できるようにする必要があります。 これは、VPNサーバーに提供させたい機能にとって非常に重要です。
この設定を調整するには、 /etc/sysctl.conf
ファイル:
- sudo nano /etc/sysctl.conf
内部で、設定する行を探します net.ipv4.ip_forward
. 行の先頭から「#」文字を削除して、その設定のコメントを解除します。
net.ipv4.ip_forward=1
終了したら、ファイルを保存して閉じます。
ファイルを読み取り、現在のセッションの値を調整するには、次のように入力します。
- sudo sysctl -p
UFWルールを調整してクライアント接続をマスカレードする
前提条件でUbuntu16.04初期サーバーセットアップガイドに従っている場合は、UFWファイアウォールを設置する必要があります。 ファイアウォールを使用して不要なトラフィックをブロックするかどうかに関係なく(ほとんどの場合、これを実行する必要があります)、サーバーに着信するトラフィックの一部を操作するには、このガイドのファイアウォールが必要です。 ルールファイルを変更して、マスカレードを設定する必要があります。 iptables
クライアント接続を正しくルーティングするためのオンザフライの動的NATを提供する概念。
ファイアウォール構成ファイルを開いてマスカレードを追加する前に、マシンのパブリックネットワークインターフェイスを見つける必要があります。 これを行うには、次のように入力します。
- ip route | grep default
パブリックインターフェイスは「dev」という単語の後に続く必要があります。 たとえば、この結果は次の名前のインターフェイスを示しています wlp11s0
、以下で強調表示されています:
Outputdefault via 203.0.113.1 dev wlp11s0 proto static metric 600
デフォルトルートに関連付けられたインターフェースがある場合は、 /etc/ufw/before.rules
関連する構成を追加するファイル:
- sudo nano /etc/ufw/before.rules
このファイルは、従来のUFWルールがロードされる前に配置する必要のある設定を処理します。 ファイルの先頭に向かって、下に強調表示された行を追加します。 これにより、のデフォルトポリシーが設定されます POSTROUTING
チェーン nat
VPNからのトラフィックをテーブルに入れてマスカレードします。
注:忘れずに交換してください wlp11s0
の中に -A POSTROUTING
上記のコマンドで見つけたインターフェースを以下の行に示します。
#
# 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
#
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to wlp11s0 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o wlp11s0 -j MASQUERADE
COMMIT
# END OPENVPN RULES
# 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
:
DEFAULT_FORWARD_POLICY="ACCEPT"
終了したら、ファイルを保存して閉じます。
OpenVPNポートを開き、変更を有効にします
次に、ファイアウォール自体を調整して、OpenVPNへのトラフィックを許可します。
でポートとプロトコルを変更しなかった場合 /etc/openvpn/server.conf
ファイルの場合、ポート1194へのUDPトラフィックを開く必要があります。 ポートやプロトコルを変更した場合は、ここで選択した値に置き換えてください。
前提条件のチュートリアルに従うときにSSHポートを追加するのを忘れた場合に備えて、SSHポートも追加します。
- sudo ufw allow 1194/udp
- sudo ufw allow OpenSSH
これで、UFWを無効にしてから再度有効にして、変更したすべてのファイルから変更を読み込むことができます。
- sudo ufw disable
- sudo ufw enable
これで、OpenVPNトラフィックを正しく処理するようにサーバーが構成されました。
ステップ9:OpenVPNサービスを開始して有効にする
ついにサーバーでOpenVPNサービスを開始する準備が整いました。 systemdを使用してこれを行うことができます。
systemdユニットのファイル名の後にインスタンス変数として設定ファイル名を指定してOpenVPNサーバーを起動する必要があります。 サーバーの構成ファイルは次のように呼び出されます。 /etc/openvpn/server.conf
、追加します @server
それを呼び出すときにユニットファイルの終わりに:
- sudo systemctl start openvpn@server
次のように入力して、サービスが正常に開始されたことを再確認します。
- sudo systemctl status openvpn@server
すべてがうまくいけば、出力は次のようになります。
Output● [email protected] - OpenVPN connection to server
Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
Active: active (running) 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 openvpn@server
ステップ10:クライアント構成インフラストラクチャを作成する
次に、クライアント構成ファイルを簡単に作成できるシステムをセットアップする必要があります。
ClientConfigディレクトリ構造の作成
ファイルを保存するために、ホームディレクトリ内にディレクトリ構造を作成します。
- 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
選択したポートへ:
. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote server_IP_address 1194
. . .
プロトコルがサーバー構成で使用している値と一致していることを確認してください。
proto udp
次に、コメントを外します user
と group
「;」を削除することによるディレクティブ:
# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup
を設定するディレクティブを見つけます ca
, cert
、 と key
. ファイル自体に証明書とキーを追加するため、これらのディレクティブをコメントアウトします。
# 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
ミラーリング cipher
と auth
で設定した設定 /etc/openvpn/server.conf
ファイル:
cipher AES-128-CBC
auth SHA256
次に、 key-direction
ファイルのどこかにディレクティブ。 サーバーと連携するには、この
key-direction 1
最後に、コメントアウト行をいくつか追加します。 これらをすべての構成に含めたいのですが、 /etc/openvpn/update-resolv-conf
ファイル。 このスクリプトは resolvconf
LinuxクライアントのDNS情報を更新するユーティリティ。
# script-security 2
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
クライアントがLinuxを実行していて、 /etc/openvpn/update-resolv-conf
ファイルの場合、生成されたOpenVPNクライアント構成ファイルからこれらの行のコメントを解除する必要があります。
終了したらファイルを保存します。
構成生成スクリプトの作成
次に、関連する証明書、キー、および暗号化ファイルを使用して基本構成をコンパイルするための簡単なスクリプトを作成します。 これにより、生成された構成が ~/client-configs/files
ディレクトリ。
と呼ばれるファイルを作成して開きます make_config.sh
以内 ~/client-configs
ディレクトリ:
- nano ~/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:クライアント構成を生成する
これで、クライアント構成ファイルを簡単に生成できます。
ガイドに沿って従えば、クライアント証明書とキーを作成しました。 client1.crt
と client1.key
それぞれを実行することによって ./build-key client1
手順6のコマンド。 に移動することで、これらのクレデンシャルの構成を生成できます ~/client-configs
ディレクトリと作成したスクリプトの使用:
- cd ~/client-configs
- ./make_config.sh client1
すべてがうまくいけば、 client1.ovpn
私たちのファイル ~/client-configs/files
ディレクトリ:
- ls ~/client-configs/files
Outputclient1.ovpn
クライアントデバイスへの構成の転送
クライアント構成ファイルを関連するデバイスに転送する必要があります。 たとえば、これはローカルコンピュータまたはモバイルデバイスである可能性があります。
この転送を実行するために使用される正確なアプリケーションは、選択とデバイスのオペレーティングシステムによって異なりますが、アプリケーションでバックエンドでSFTP(SSHファイル転送プロトコル)またはSCP(セキュアコピー)を使用する必要があります。 これにより、暗号化された接続を介してクライアントのVPN認証ファイルが転送されます。
これは、client1.ovpnの例を使用したSFTPコマンドの例です。 このコマンドは、ローカルコンピューター(OS XまたはLinux)から実行できます。 それは配置します .ovpn
ホームディレクトリのファイル:
- sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn ~/
サーバーからローカルコンピューターにファイルを安全に転送するためのいくつかのツールとチュートリアルを次に示します。
手順12:クライアント構成をインストールする
次に、Windows、OS X、iOS、およびAndroidにクライアントVPNプロファイルをインストールする方法について説明します。 これらのクライアントの指示はいずれも相互に依存していないため、該当する方にスキップしてください。
OpenVPN接続は、名前を付けたものに関係なく呼び出されます .ovpn
ファイル。 この例では、これは接続が呼び出されることを意味します client1.ovpn
生成した最初のクライアントファイル用。
ウィンドウズ
インストール
Windows用のOpenVPNクライアントアプリケーションは、OpenVPNのダウンロードページにあります。 ご使用のバージョンのWindowsに適切なインストーラーバージョンを選択してください。
ノート
OpenVPNをインストールするには、管理者権限が必要です。
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 は、MacOSX用の無料のオープンソースOpenVPNクライアントです。 最新のディスクイメージは、TunnelblickDownloadsページからダウンロードできます。 ダウンロードしたものをダブルクリックします .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 client1.ovpn
を見つけることができた場合は、DNS設定を調整するために配置した3行のコメントを解除します update-resolv-conf
ファイル:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
CentOSを使用している場合は、 group
から nogroup
に nobody
ディストリビューションの利用可能なグループと一致させるには:
group nobody
ファイルを保存して閉じます。
これで、をポイントするだけでVPNに接続できます。 openvpn
クライアント構成ファイルへのコマンド:
- sudo openvpn --config client1.ovpn
これにより、サーバーに接続されます。
iOS
インストール
iTunes App Storeから、公式iOSOpenVPNクライアントアプリケーションであるOpenVPNConnectを検索してインストールします。 iOSクライアント構成をデバイスに転送するには、デバイスをコンピューターに直接接続します。
ここでは、iTunesを使用した転送の完了について概説します。 コンピュータでiTunesを開き、 iPhone > appsをクリックします。 ファイル共有セクションまで下にスクロールして、OpenVPNアプリをクリックします。 右側の空白のウィンドウOpenVPNDocuments は、ファイルを共有するためのものです。 をドラッグします .ovpn
OpenVPNドキュメントウィンドウにファイルします。
次に、iPhoneでOpenVPNアプリを起動します。 新しいプロファイルをインポートする準備ができたという通知が表示されます。 緑色のプラス記号をタップしてインポートします。
接続する
これで、OpenVPNを新しいプロファイルで使用する準備が整いました。 ConnectボタンをOnの位置にスライドさせて接続を開始します。 同じボタンをオフにスライドさせて切断します。
ノート
設定の下のVPNスイッチを使用してVPNに接続することはできません。 試してみると、OpenVPNアプリを使用してのみ接続するように通知が届きます。
アンドロイド
インストール
GooglePlayストアを開きます。 公式のAndroidOpenVPNクライアントアプリケーションであるAndroidOpenVPNConnectを検索してインストールします。
The .ovpn
プロファイルは、AndroidデバイスをUSBでコンピューターに接続し、ファイルをコピーすることで転送できます。 または、SDカードリーダーをお持ちの場合は、デバイスのSDカードを取り外し、プロファイルをコピーしてから、カードをAndroidデバイスに挿入し直すことができます。
OpenVPNアプリを起動し、メニューをタップしてプロファイルをインポートします。
次に、保存されたプロファイルの場所に移動します(スクリーンショットでは /sdcard/Download/
)そしてファイルを選択します。 アプリは、プロファイルがインポートされたことを記録します。
接続する
接続するには、接続ボタンをタップするだけです。 OpenVPNアプリケーションを信頼するかどうかを尋ねられます。 OKを選択して接続を開始します。 VPNから切断するには、OpenVPNアプリに戻り、切断を選択します。
ステップ13:VPN接続をテストする
すべてがインストールされたら、簡単なチェックですべてが正しく機能していることを確認します。 VPN接続を有効にせずに、ブラウザを開いてDNSLeakTestに移動します。
このサイトは、インターネットサービスプロバイダーによって割り当てられたIPアドレスを、世界中に表示されたとおりに返します。 同じWebサイトでDNS設定を確認するには、拡張テストをクリックすると、使用しているDNSサーバーが表示されます。
次に、OpenVPNクライアントをDropletのVPNに接続し、ブラウザーを更新します。 これで、VPNサーバーの完全に異なるIPアドレスが表示されます。 それが今、あなたが世界に現れる方法です。 繰り返しになりますが、DNSLeakTestの Extended Test は、DNS設定をチェックし、VPNによってプッシュされたDNSリゾルバーを使用していることを確認します。
ステップ14:クライアント証明書を取り消す
場合によっては、OpenVPNサーバーへのそれ以上のアクセスを防ぐために、クライアント証明書を取り消す必要があります。
これを行うには、CAディレクトリを入力し、 vars
ファイル:
- cd ~/openvpn-ca
- source vars
次に、 revoke-full
取り消すクライアント名を使用したコマンド:
- ./revoke-full client3
これにより、いくつかの出力が表示され、 error 23
. これは正常であり、プロセスは必要な失効情報を正常に生成しているはずです。この情報は、というファイルに保存されています。 crl.pem
以内 keys
サブディレクトリ。
このファイルをに転送します /etc/openvpn
構成ディレクトリ:
- sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
次に、OpenVPNサーバー構成ファイルを開きます。
- sudo nano /etc/openvpn/server.conf
ファイルの下部に、 crl-verify
オプション。これにより、OpenVPNサーバーは、接続が試行されるたびに作成した証明書失効リストをチェックします。
crl-verify crl.pem
ファイルを保存して閉じます。
最後に、OpenVPNを再起動して、証明書の失効を実装します。
- sudo systemctl restart openvpn@server
これで、クライアントは古いクレデンシャルを使用してサーバーに正常に接続できるようになります。
追加のクライアントを取り消すには、次のプロセスに従います。
- を調達して、新しい証明書失効リストを生成します
vars
のファイル~/openvpn-ca
ディレクトリを呼び出してからrevoke-full
クライアント名のスクリプト。 - 新しい証明書失効リストをにコピーします
/etc/openvpn
古いリストを上書きするディレクトリ。 - OpenVPNサービスを再起動します。
このプロセスを使用して、サーバーに対して以前に発行した証明書を取り消すことができます。
結論
おめでとう! これで、インターネットを安全に移動して、身元、場所、トラフィックをスヌーパーや検閲者から保護できます。
より多くのクライアントを構成するには、追加のデバイスごとに6および11-13の手順に従うだけです。 クライアントへのアクセスを取り消すには、手順14に従います。