OpenVPNは、2つのポイント間に暗号化されたトンネルを作成し、サードパーティがネットワークトラフィックにアクセスするのを防ぎます。仮想プライベートネットワーク(VPN)サーバーを設定することにより、独自のVPNプロバイダーになります。多くの人気のあるVPNサービスはすでにOpenVPNを使用していますが、完全に制御できるのに、なぜ接続を特定のプロバイダーに結び付けるのですか?
このシリーズの最初の記事ではVPN用のサーバーをセットアップし、2番目の記事ではOpenVPNサーバーソフトウェアをインストールして構成する方法を示しました。この3番目の記事では、認証を使用してOpenVPNを開始する方法を示します。
セキュリティの詳細
- 防御的なコーディングガイド
- ウェビナー:システムのセキュリティと標準オペレーティングシステムへの準拠の自動化
- Linuxコンテナセキュリティの10層
- SELinuxの塗り絵
- その他のセキュリティ記事
OpenVPNサーバーをセットアップするには、次のことを行う必要があります。
- 構成ファイルを作成します。
-
sysctl
を設定します 値net.ipv4.ip_forward = 1
ルーティングを有効にします。 - すべての構成ファイルと認証ファイルに適切な所有権を設定して、root以外のアカウントでOpenVPNサーバーデーモンを実行します。
- 適切な構成ファイルで開始するようにOpenVPNを設定します。
- ファイアウォールを構成します。
/etc/openvpn/server/
にサーバー構成ファイルを作成する必要があります 。必要に応じて最初から始めることができます。OpenVPNには、開始点として使用するいくつかのサンプル構成ファイルが含まれています。 /usr/share/doc/openvpn/sample/sample-config-files/
をご覧ください それらすべてを見ることができます。
構成ファイルを手動で作成する場合は、server.conf
のいずれかから開始します。 またはroadwarrior-server.conf
(必要に応じて)、構成ファイルを/etc/openvpn/server
に配置します 。どちらのファイルにも広範囲にコメントが付けられているので、コメントを読んで、どちらが状況に最も適しているかを判断してください。
ビルド済みのサーバーとクライアントの構成ファイルテンプレートとsysctl
を使用することで、時間と悪化を節約できます。 ネットワークルーティングをオンにするファイル。この構成には、接続と切断をログに記録するためのカスタマイズも含まれます。 OpenVPNサーバーのログを/etc/openvpn/server/logs
に保持します 。
テンプレートを使用する場合は、IPアドレスとホスト名を使用するようにテンプレートを編集する必要があります。
ビルド済みの構成テンプレート、スクリプト、およびsysctl
を使用するには IP転送をオンにするには、スクリプトをダウンロードします:
$ curl \
https://www.dgregscott.com/ovpn/OVPNdownloads.sh > \
OVPNdownloads.sh
スクリプトを読んで、スクリプトの機能を理解してください。そのアクションの概要は次のとおりです。
- OpenVPNサーバーに適切なディレクトリを作成します
- サーバーとクライアントの構成ファイルテンプレートを自分のWebサイトからダウンロードします
- カスタムスクリプトをダウンロードして、適切な権限を持つ適切なディレクトリに配置します
- ダウンロード
99-ipforward.conf
そしてそれを/etc/sysctl.d
に配置します 次回の起動時にIP転送をオンにします -
/etc/openvpn
内のすべての所有権を設定します
スクリプトの機能を理解したことを確認したら、スクリプトを実行可能にして実行します。
$ chmod +x OVPNdownloads.sh
$ sudo ./OVPNdownloads.sh
コピーするファイルは次のとおりです(ファイルの所有権に注意してください):
$ ls -al -R /etc/openvpn
/etc/openvpn:
total 12
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 .
drwxr-xr-x. 139 root root 8192 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 client
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 server
/etc/openvpn/client:
total 4
drwxr-xr-x. 2 openvpn openvpn 33 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
-rw-r--r--. 1 openvpn openvpn 1764 Apr 6 20:35 OVPNclient2020.ovpn
/etc/openvpn/server:
total 4
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 34 Apr 6 20:35 ..
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 ccd
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 logs
-rw-r--r--. 1 openvpn openvpn 2588 Apr 6 20:35 OVPNserver2020.conf
/etc/openvpn/server/ccd:
total 8
drwxr-xr-x. 2 openvpn openvpn 59 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
-rwxr-xr-x. 1 openvpn openvpn 917 Apr 6 20:35 client-connect.sh
-rwxr-xr-x. 1 openvpn openvpn 990 Apr 6 20:35 client-disconnect.sh
/etc/openvpn/server/logs:
total 0
drwxr-xr-x. 2 openvpn openvpn 6 Apr 6 20:35 .
drwxr-xr-x. 4 openvpn openvpn 56 Apr 6 20:35 ..
これが99-ipforward.conf
です ファイル:
# Turn on IP forwarding. OpenVPN servers need to do routing
net.ipv4.ip_forward = 1
OVPNserver2020.conf
を編集します およびOVPNclient2020.ovpn
IPアドレスを含めます。また、OVPNserver2020.conf
を編集します 以前のサーバー証明書名を含めるため。後で、OVPNclient2020.ovpn
のコピーの名前を変更して編集します クライアントコンピュータで使用します。 ***?
で始まるブロック 編集する場所を示します。
私のWebサイトの自動スクリプトを使用した場合、ファイルの所有権はすでに設定されています。そうでない場合は、システムにopenvpn
というユーザーがいることを確認する必要があります openvpn
という名前のグループのメンバーです 。 /etc/openvpn
ですべての所有権を設定する必要があります そのユーザーとグループに。 useradd
が原因でユーザーとグループがすでに存在するかどうかわからない場合は、これを行っても安全です。 すでに存在するユーザーと同じ名前のユーザーの作成を拒否します:
$ sudo useradd openvpn
$ sudo chown -R openvpn.openvpn /etc/openvpn
手順1でfirewalldサービスを無効にしないことにした場合、サーバーのファイアウォールサービスはデフォルトでVPNトラフィックを許可しない可能性があります。 firewall-cmd
を使用する コマンドを使用すると、OpenVPNサービスを有効にできます。これにより、必要なポートが開き、必要に応じてトラフィックがルーティングされます。
$ sudo firewall-cmd --add-service openvpn --permanent
$ sudo firewall-cmd --reload
iptablesの迷路に迷う必要はありません!
これで、OpenVPNサーバーを起動できます。再起動後に自動的に起動するようにするには、enable
を使用します systemctl
のサブコマンド :
systemctl enable --now [email protected]
この記事の4番目で最後の記事では、OpenVPNに遠くから接続するようにクライアントを設定する方法を示します。
この記事はD.GregScottのブログに基づいており、許可を得て再利用されています。