GNU/Linux >> Linux の 問題 >  >> Panels >> OpenVPN

LinuxでOpenVPNサーバーを構成する

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のブログに基づいており、許可を得て再利用されています。


OpenVPN
  1. 特定のDNSサーバーを使用するようにOpenVPNクライアントを構成する

  2. RockyLinux8にOpenVPNクライアントをインストールして構成する

  3. RockyLinux8でOpenVPNサーバーをセットアップする

  1. LinuxPCにOpenVPNをインストールします

  2. Linuxサーバーで最初の10分間に行う9つのこと

  3. OpenVPNサーバーFreeBSD12のインストールと設定

  1. Linuxサーバーを保護するための7つのステップ

  2. Linuxサーバーを監視する方法は?

  3. LinuxでOpenVPNサーバーをインストールおよび構成する最も簡単な方法