これは、サーバーとクライアント間のトラフィックを暗号化するために証明書を利用することを意味します。信頼できる証明書を発行するには、独自の単純な認証局(CA)をセットアップします。これを行うには、プロジェクトの公式GitHubリポジトリからCA公開キー基盤(PKI)の構築に使用するEasyRSAの最新バージョンをダウンロードします。前提条件で述べたように、スタンドアロンサーバー上にCAを構築します。このアプローチの理由は、攻撃者がサーバーに侵入できた場合、CA秘密キーにアクセスし、それを使用して新しい証明書に署名し、VPNにアクセスできるようになるためです。したがって、スタンドアロンマシンからCAを管理すると、権限のないユーザーがVPNにアクセスするのを防ぐのに役立ちます。さらなる予防措置として、キーの署名に使用されていない場合はCAサーバーをオフにしておくことをお勧めします。CAマシンとOpenVPNサーバーの両方*でEasyRSAの最新バージョンをダウンロードします。*ページ]にアクセスし、「。+」で終わるファイルのダウンロードリンクをコピーします。~/次に、tarballを抽出します。EasyRSA-.tgzサーバーとCAマシンに必要なすべてのソフトウェアを正常にインストールしました。EasyRSAが使用する変数の設定と、CAディレクトリの設定に進み、そこからサーバーとクライアントがVPNにアクセスするために必要なキーと証明書を生成します。ステップ2-EasyRSA変数の構成とCAの構築EasyRSAには、CAの多くの変数を定義するために編集できる構成ファイルがインストールされています。RSAディレクトリに移動します。vars.example`という名前のファイルがあります。+」という名前を付けます。vars任意のテキストエディターを使用してこの新しいファイルを開きます。vars新しい証明書のフィールドのデフォルトを設定する設定を見つけます。これは次のようになります。.これらの行のコメントを外し、強調表示された値を任意の値に更新しますが、空白のままにしないでください。.終了したら、ファイルを保存して閉じます。easyrsa」というスクリプトがあります。+`オプションを指定してこのスクリプトを実行し、CAサーバーで公開鍵インフラストラクチャを開始します。`スクリプトを呼び出します。ca.keyが作成されます。+`ファイルのコピーが必要です。`は、CAマシンがサーバーとクライアントのキーと証明書に署名するために使用する秘密キーです。`ファイルにアクセスすると、証明書リクエストに署名してVPNにアクセスできるようになり、そのセキュリティが妨げられます。+`ファイルがCAマシン上にのみ存在する必要がある理由であり、理想的には、追加のセキュリティ対策として証明書要求に署名しない場合はCAマシンをオフラインに保つ必要があります。+`コマンドを実行できます。name_を確認するよう求められます。CA]:共通名は、認証局のコンテキストでこのマシンを参照するために使用される名前です。+」を押してデフォルト名を受け入れます。これで、CAが配置され、証明書要求への署名を開始する準備が整いました。手順3-サーバー証明書、キー、および暗号化ファイルの作成CAの準備ができたので、サーバーから秘密キーと証明書の要求を生成し、署名するために要求をCAに転送して、必要な証明書を作成できます。暗号化プロセス中に使用される追加のファイルを自由に作成することもできます。OpenVPNサーバー*のEasyRSAディレクトリに移動して開始します。+`スクリプトを実行します。このコマンドは既にCAマシンで実行していますが、サーバーとCAには個別のPKIディレクトリがあるため、ここで実行する必要があります。」スクリプトを再度呼び出します。繰り返しになりますが、これはあなたが好きなものであれば何でもかまいませんが、説明的なものにするのに役立ちます。このチュートリアルでは、OpenVPNサーバーの一般名は単に「サーバー」になります。+`オプションも含めてください。しないと、要求ファイルがパスワードで保護され、後でアクセス許可の問題が発生する可能性があります。」という証明書要求ファイルが作成されます。+`ファイルをCAマシンに転送します。RSAディレクトリに移動します。+`ファイルをインポートします。type_と共通名を続けて、リクエストに署名します。server」のいずれかです。+」リクエストタイプを使用してください。server出力では、リクエストが信頼できるソースからのものであることを確認するよう求められます。ENTER」を押してこれを確認します。details:CAキーを暗号化した場合、この時点でパスワードの入力を求められます。次に、安全な方法を使用して、署名された証明書をVPNサーバーに転送します。+`ファイルもサーバーに転送します。+`ディレクトリにコピーします。RSAディレクトリに移動します。EasyRSA-/そこから、次のように入力して、キー交換中に使用する強力なDiffie-Hellmanキーを作成します。gen-dhこれには数分かかる場合があります。それが完了したら、HMAC署名を生成して、サーバーのTLS整合性検証機能を強化します。/etc/openvpn/これで、サーバーに必要なすべての証明書とキーファイルが生成されました。クライアントマシンがOpenVPNサーバーへのアクセスに使用する、対応する証明書とキーを作成する準備が整いました。手順4-クライアント証明書とキーペアの生成クライアントマシンで秘密鍵と証明書要求を生成し、それをCAに送信して署名させることもできますが、このガイドでは、サーバーで証明書要求を生成するプロセスの概要を説明します。この利点は、必要なすべてのキーと証明書を含むクライアント構成ファイルを自動的に生成するスクリプトを作成できることです。これにより、キー、証明書、および構成ファイルをクライアントに転送する必要がなくなり、VPNへの参加プロセスが合理化されます。このガイドでは、単一のクライアントキーと証明書のペアを生成します。複数のクライアントがある場合、クライアントごとにこのプロセスを繰り返すことができます。クライアントごとに一意の名前の値をスクリプトに渡す必要があることに注意してください。ホームディレクトリ内にディレクトリ構造を作成して、クライアント証明書とキーファイルを保存します。~/client-configs/keysクライアントの証明書/キーペアと設定ファイルをこのディレクトリに保存するので、セキュリティ対策としてその権限をすぐにロックダウンする必要があります。+`スクリプトを実行します。」を押して、共通名を確認します。+`ファイルをCAマシンに転送します。@:/tmpCAマシンにログインし、EasyRSAディレクトリに移動して、証明書要求をインポートします。client1次に、前のステップでサーバーに対して行ったように要求に署名します。+`リクエストタイプを必ず指定してください。+」と入力して、証明書リクエストに署名するつもりであり、信頼できるソースからのものであることを確認します。details:繰り返しますが、CAキーを暗号化した場合、ここでパスワードの入力を求められます。+`という名前のクライアント証明書ファイルが作成されます。このファイルをサーバーに転送して戻します。+`ディレクトリにコピーします。+`ディレクトリにもコピーします。~/client-configs/keys/これにより、サーバーとクライアントの証明書とキーがすべて生成され、サーバー上の適切なディレクトリに保存されます。これらのファイルを使用して実行する必要のあるアクションがまだいくつかありますが、それらは後のステップで提供されます。今のところ、サーバーでのOpenVPNの構成に進むことができます。ステップ5-OpenVPNサービスの構成クライアントとサーバーの両方の証明書とキーが生成されたので、これらの資格情報を使用するようにOpenVPNサービスの構成を開始できます。サンプルOpenVPN構成ファイルを構成ディレクトリにコピーすることから始めて、セットアップの基礎として使用するためにそれを抽出します。/etc/openvpn/server.conf.gz任意のテキストエディターでサーバー構成ファイルを開きます。+`ディレクティブを探してHMACセクションを見つけます。*」を削除してコメント解除します。」行を探して、暗号化暗号に関するセクションを見つけます。AES-256-CBC`暗号は適切なレベルの暗号化を提供し、十分にサポートされています。*」を削除するだけです。`ディレクティブを追加して、HMACメッセージダイジェストアルゴリズムを選択します。`ディレクティブを含む行を見つけます。EasyRSAに最近加えられたいくつかの変更のため、Diffie-Hellmanキーのファイル名は、サンプルのサーバー構成ファイルにリストされているものと異なる場合があります。2048+」を削除して、ここにリストされているファイル名を変更し、前の手順で生成したキーと一致するようにします。*」を削除して、これらの行のコメントを解除します。+`ファイルに加えた変更が必要です。以下に概説する変更はオプションですが、多くの一般的なユースケースにも必要です。(オプション)DNSの変更をプッシュして、VPNを介してすべてのトラフィックをリダイレクトする上記の設定により、2台のマシン間にVPN接続が作成されますが、トンネルを使用する接続は強制されません。VPNを使用してすべてのトラフィックをルーティングする場合は、DNS設定をクライアントコンピューターにプッシュすることができます。`ファイルには、この機能を有効にするために変更する必要があるいくつかのディレクティブがあります。*」を削除してコメント解除します。+」セクションがあります。*」を削除して、コメントを外します。208.67.220.220"これは、クライアントがデフォルトゲートウェイとしてVPNトンネルを使用するようにDNS設定を再構成する際に役立ちます。(オプション)ポートとプロトコルを調整しますデフォルトでは、OpenVPNサーバーはポート「1194」とUDPプロトコルを使用してクライアント接続を受け入れます。`オプションを変更できます。+`は通常ファイアウォールルールで許可されているため、一般的な選択肢です。Optional!port多くの場合、プロトコルもそのポートに制限されます。+」をUDPからTCPに変更します。+`に変更する必要があります。TCPの使用中にこれを行わないと、OpenVPNサービスを開始するときにエラーが発生します。Optional!explicit-exit-notify別のポートとプロトコルを使用する必要がない場合は、これら2つの設定をデフォルトのままにしておくことをお勧めします。