GNU/Linux >> Linux の 問題 >  >> Linux

OpenVPN を使用して Linux VPN サーバーとクライアントをセットアップする方法

VPN は Virtual Private Network の略です。

仮想プライベート ネットワークにより、コンピューターは、あるプライベート ネットワークから、パブリック ネットワーク (インターネット) 経由で接続された別のプライベート ネットワークにデータを送受信できます。

これは、会社のイントラネットの外にいて、オフィス ネットワークに安全に接続して内部サーバーにアクセスしたい場合に役立ちます。 VPN は、複数の支社を一緒に接続する場合にも役立ちます。

複数の支社を一緒に接続していない場合でも、VPN セットアップを使用して、従業員がラップトップからリモートで接続できるようにすることができます。データセンターとシステムへのアクセス

場合によっては、企業が専用回線を購入して WAN ( ワイド エリア ネットワーク ) を形成し、支社と通信することがあります。専用線は安全で信頼性がありますが、高価です。

VPN は、パブリック ネットワークを介してポイント ツー ポイントの仮想接続を提供することで、ギャップを埋めます。 VPN は、地理的に異なる場所にまたがるより多くのユーザーに簡単に対応できるように拡張できます。

VPN の種類

大まかに言えば、次の 2 種類の VPN があります。

  • リモート アクセス
  • サイト間

リモート アクセスとは、VPN 経由で個々のコンピューターをネットワークに接続することです。 「サイト間」は、VPN を介して 2 つのネットワークを接続します。

OpenVPN とは

OpenVPN の男性から:

<ブロック引用>

OpenVPN は、James Yonan によるオープン ソースの VPN デーモンです。 OpenVPN は、堅牢で柔軟性の高い VPN デーモンです。 OpenVPN は、SSL/TLS セキュリティ、イーサネット ブリッジング、プロキシまたは NAT を介した TCP または UDP トンネル トランスポート、動的 IP アドレスと DHCP のサポート、数百または数千のユーザーへのスケーラビリティ、およびほとんどの主要な OS プラットフォームへの移植性をサポートします。

このチュートリアルでは、リモート アクセス用に OpenVPN サーバーとクライアントをセットアップおよび構成するプロセスについて説明します。

I. OpenVPN の構成 – サーバー側

1. OpenVPN をインストール

サーバーとクライアント マシンの両方に openvpn パッケージをインストールします。

$ sudo apt-get install openvpn

作業しているディストリビューションのそれぞれのパッケージ マネージャーを使用します。 yum を使用している場合は、次の手順を実行してください

$ yum install openvpn

2.ディレクトリの作成と環境変数の設定

/etc/openvpn 内にディレクトリを作成します easy-rsa をコピーします それに内容。これは、パッケージがアップグレードされたときにスクリプトに加えられた変更が失われないようにするために行われます。現在のユーザーがファイルを作成する権限を持つように、所有者を現在のユーザーとして変更します。

$ sudo mkdir /etc/openvpn/easy-rsa

$ sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa

$ sudo chown -R $USER /etc/openvpn/easy-rsa/

次に、/etc/openvpn/easy-rsa/vars を編集します。 あなたの環境に適応するために。

export KEY_COUNTRY="IN"
export KEY_PROVINCE="TN"
export KEY_CITY="CHN"
export KEY_ORG="tgs"
export KEY_EMAIL="[email protected]"

3. CA の作成 – 認証局 (ルート証明書)

openvpn サーバーを構築するための次のステップは、サーバーとクライアントが相互に認証できるように公開鍵インフラストラクチャを確立することです。

$ cd /etc/openvpn/easy-rsa/

$ source vars

$ ./clean-all

$ ln -s openssl-1.0.0.cnf openssl.cnf

$ ./build-ca

Generating a 1024 bit RSA private key
........++++++
......++++++
unable to write 'random state'
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) [IN]:
State or Province Name (full name) [TN]:
Locality Name (eg, city) [CHN]:
Organization Name (eg, company) [tgs]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]:
Name [changeme]:lakshmanan
Email Address [[email protected]]:[email protected]

一度 ./build-ca 完了すると、「ca.key」という名前のファイルが表示されます 」および「ca.crt 」内 /etc/openvpn/easy-rsa/keys/

.key 」 ファイルは機密に保つ必要があります。

4.サーバーの証明書を作成

次のステップは、Openvpn サーバーの証明書を作成することです。

$ /etc/openvpn/easy-rsa/build-key-server vpnserver
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

vpnserver はサーバーのホスト名であることに注意してください。このコマンドは、前のコマンドと同様に、ユーザーからの入力を受け取ります。このコマンドは、サーバーの証明書と鍵ファイルを作成します。

5.クライアントの証明書を作成

VPN クライアントには、サーバーで認証するための証明書も必要です。複数のクライアントを構成する場合は、クライアントごとに個別に証明書を作成する必要があります。

$ ./build-key vpnclient1
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

vpnclient1 はクライアントのホスト名です。このコマンドは、クライアントの証明書とキー ファイルを作成します。

6. Diffie Hellman パラメータの作成

$ ./build-dh

上記のすべての手順が正常に完了すると、/etc/openvpn/easy-rsa/keys 内に多くのキーと証明書ファイルが作成されます。 .

7.証明書をそれぞれの場所にコピーします

ルート証明書、サーバー証明書、クライアント証明書を作成しました。それらを適切な場所にコピーする必要があります。

$ cd /etc/openvpn/easy-rsa/keys/

$ sudo cp ca.crt vpnserver.crt vpnserver.key dh1024.pem /etc/openvpn/

$ scp ca.crt vpnclient1.key  vpnclient1.crt root@vpnclient1:/etc/openvpn

これで、クライアント証明書とキーがクライアント マシンにコピーされました。鍵ファイルをコピーするときは、scp などの安全なメディアを使用することを忘れないでください。

8.サーバーの構成

OpenVPN はデフォルトの server.conf を提供します。必要に応じて変更できます。

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

$ sudo gzip -d /etc/openvpn/server.conf.gz

/etc/openvpn/server.conf を編集します。 「.

...
ca ca.crt
cert vpnserver.crt
key vpnserver.key
dh dh1024.pem
...

OpenVPN サーバーを起動します:

$ sudo /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'server'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255

デフォルトでは、openVPN は syslog ファイルにエラーを記録します。

II. OpenVPN の構成 – クライアント側

9.クライアント構成ファイルのセットアップ

次に、クライアントとして機能するように openVPN を構成します。すでにクライアントに openvpn パッケージがインストールされており、/etc/openvpn/ に「ca.crt」、「vpnclient1.key」、vpnclient1.crt があることを思い出してください。

サンプル client.conf を /etc/openvpn にコピーします .

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/

/etc/openvpn/client.conf を編集します .

...
# Specify that this is openvpn client
client

remote vpnserver 1194

ca ca.crt

cert vpnclient1.crt

key vpnclient1.key
...

クライアントで OpenVPN を開始します

$ /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'client'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255

10. VPN 設定をテストする

クライアント マシンから vpnserver に ping を実行して、VPN が機能しているかどうかを確認します。

$ ping 10.8.0.1

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=2.14 ms

ping を実行できる場合は、正しいセットアップが行われています。

次の点に注意してください:

<オール>
  • クライアントとサーバーが同じプロトコルとポート番号を使用していることを確認してください。
  • クライアントとサーバーは、キーサイズ、圧縮などの一部のパラメーターに関して同じ構成を使用する必要があります…
  • 問題が発生した場合は、設定でログの詳細度を上げ、トラブルシューティングのために syslog ファイルを確認してください。

  • Linux
    1. Debian 9StretchLinuxでNTPサーバーとクライアントをセットアップする方法

    2. Rocky / AlmaLinux8でNFSサーバーとクライアントをセットアップする方法

    3. Linux NTP サーバーとクライアントをインストールして構成する方法

    1. LinuxサーバーにcPanelをインストールしてセットアップする方法

    2. LinuxでパスワードなしのSSHを設定する方法

    3. YPServ Linux NIS サーバーおよびクライアントをセットアップおよび構成する方法

    1. AlmaLinuxでFTP/SFTPサーバーとクライアントをセットアップする方法

    2. AlmaLinuxでSambaサーバーとクライアントをセットアップする方法

    3. UbuntuLinuxでFTPサーバーをセットアップして使用する方法