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

CentOS 8 /Ubuntu18.04にOpenVPNクライアントをインストールして構成する

OpenVPNサーバーに接続してイントラネットのローカルリソースにアクセスできるようにするには、OpenVPNクライアントが必要です。このガイドでは、CentOS 8 /Ubuntu18.04にOpenVPNクライアントをインストールして構成する方法を学習します。 OpenVPNソフトウェアは、サーバーまたはクライアントとして機能するように構成できることに注意してください。

以下のリンクをたどって、CentOS8にOpenVPNサーバーをインストールして構成する方法を学びます。

CentOS8でOpenVPNサーバーをセットアップする

CentOS 8 /Ubuntu18.04にOpenVPNクライアントをインストールして構成する

異なるイントラネット上の2つのサーバーの通信を示すために、Ubuntu18.04とCentOS8の2つのサーバーがあります。これらは、OpenVPNサーバー経由でのみ到達可能な異なるLANネットワーク上にあるため通信できません。 2つのサーバーには、NATインターフェイスのみが接続されています。

Ubuntu18.04にOpenVPNクライアントをインストールする

OpenVPNは、OpenVPNクライアントの最新の安定したリリースバージョンをインストールできるいくつかのOpenVPN(OSS)ソフトウェアリポジトリを維持しています。ただし、以下に示すように、これらのソースリストを手動で作成する必要があります。

OpenVPNリポジトリ署名キーをインストールします。

wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg| sudo apt-key add -

次に、Ubuntu18.04のソースリストをインストールします。

echo "deb http://build.openvpn.net/debian/openvpn/stable $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/openvpn-aptrepo.list

パッケージキャッシュを更新します。

apt update

Ubuntu18.04にOpenVPNクライアントをインストールします

apt install openvpn

次に、以下のコマンドを実行してバージョンを確認できます;

openvpn --version

CentOS8にOpenVPNクライアントをインストールする

CentOS 8では、この記事の執筆時点で最新のOpenVPNバージョン2.4.8がEPELリポジトリによって提供されています。

dnf info openvpn
Name         : openvpn
Version      : 2.4.8
Release      : 1.el8
Arch         : x86_64
Size         : 540 k
Source       : openvpn-2.4.8-1.el8.src.rpm
Repo         : epel
Summary      : A full-featured SSL VPN solution
URL          : https://community.openvpn.net/
License      : GPLv2
...

CentOS 8にOpenVPNクライアントをインストールするには、EPELリポジトリをインストールする必要があります。インストールしていない場合は、

dnf install epel-release

次に、コマンド;

dnf install openvpn
を実行して、OpenVPNクライアントをインストールできます。

CentOS 8 /Ubuntu18.04でOpenVPNクライアントを構成する

OpenVPNサーバーに接続できるようにするには、CA証明書、クライアントサーバー証明書、およびキーを含むクライアントの構成を作成する必要があります。

CentOS 8でのOpenVPNサーバーのセットアップに関するガイドに従った場合は、クライアントの証明書ファイルとキーを生成する方法について説明しました。

キーを生成したら、それらをクライアントにコピーし、キーが保存されているパスをメモします。

また、HMACキーとCA証明書をクライアントにコピーする必要があります。

その後、OpenVPNクライアント構成を作成できます。

たとえば、クライアント用のOpenVPN構成ファイルを作成するには、 koromicha 、その証明書とキーは、 koromicha.crt およびkoromicha.key;

vim koromicha.ovpn
client
tls-client
pull
dev tun
proto udp4
remote 192.168.2.132 1194
resolv-retry infinite
nobind
#user nobody
#group nogroup
persist-key
persist-tun
key-direction 1
remote-cert-tls server
auth-nocache
comp-lzo
verb 3
auth SHA512
tls-auth ta.key 1
ca ca.crt
cert koromicha.crt
key koromicha.key

このセットアップでは、クライアント証明書、キー、CA証明書、およびHMACキーは、OpenVPNクライアント構成自体と同じパスであるkoromicha.ovpnに配置されていることに注意してください。

ls
ca.crt koromicha.crt koromicha.key koromicha.ovpn ta.key

証明書とキーへのパスの問題を回避するために、構成ファイルにインラインで配置できます。

client
tls-client
pull
dev tun
proto udp4
remote 192.168.2.132 1194
resolv-retry infinite
nobind
#user nobody
#group nogroup
persist-key
persist-tun
key-direction 1
remote-cert-tls server
auth-nocache
comp-lzo
verb 3
auth SHA512
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
feb1af5407baa247d4e772c76aed6c75
...
-----END OpenVPN Static key V1-----
</tls-auth>
<ca>
-----BEGIN CERTIFICATE-----
MIIDTjCCAjagAwIBAgIUX0VQrHTgLDabUUIOAf7tD9cGp4YwDQYJKoZIhvcNAQEL
...
WA9BBk2shVWfR849Lmkep+GPyqHpU47dZAz37ARB2Gfu3w==
-----END CERTIFICATE-----
</ca>
<cert>
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
...
/7FvJaeLqmUHnvSs5eBlRZSgtOL19SCFkG0HXdnw3LtBaoHQXxgzOkDPW1+5
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+DI7kg6MsRoCs
...
6WdLcNtWKAcU294xJEZoOA8/
-----END PRIVATE KEY-----
</key>

VPNに接続する必要があるすべてのユーザーのすべてのクライアントサーバーで同じことを行います。

お気づきの方は、エラーを回避するために以下の行にコメントが付けられています。エラー:Linuxルート追加コマンドが失敗しました:外​​部プログラムがエラーステータスで終了しました:2 作成したルートをフラッシュしてから、再接続時に再度追加します。

#user nobody
#group nogroup

これで、OpenVPNクライアント構成ファイルの準備が整いました。

その後、オンデマンドでOpenVPNサーバーに接続するか、システムが再起動するたびにVPN構成ファイルを確立するようにサーバーを構成できます。

オンデマンドで接続するには、openvpnコマンドを次のように使用します;

sudo openvpn client.ovpn

または

sudo openvpn --config client.ovpn

OpenVPNサーバーへの接続が成功すると、Initialization Sequence Completedが表示されます。 。

...
Wed Apr 14 15:23:19 2020 ROUTE_GATEWAY 10.0.2.2/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:8d:b0:f8
Wed Apr 14 15:23:19 2020 TUN/TAP device tun0 opened
Wed Apr 14 15:23:19 2020 TUN/TAP TX queue length set to 100
Wed Apr 14 15:23:19 2020 /sbin/ip link set dev tun0 up mtu 1500
Wed Apr 14 15:23:19 2020 /sbin/ip addr add dev tun0 10.8.0.3/24 broadcast 10.8.0.255
Wed Apr 14 15:23:19 2020 /sbin/ip route add 192.168.2.132/32 via 10.0.2.2
Wed Apr 14 15:23:19 2020 /sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Wed Apr 14 15:23:19 2020 /sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Wed Apr 14 15:23:19 2020 Initialization Sequence Completed

IPアドレスを確認するには;

[[email protected] ~]$ ip add show tun0
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.3/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::8d65:4038:acb0:b954/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever
[email protected]:~$ ip add show tun0
10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.2/24 brd 10.8.0.255 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 fe80::bd3d:27ff:84d5:e587/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

2つのリモートサーバー間の接続をテストします。

[email protected]:~$ ping 10.8.0.3 -c 4
PING 10.8.0.3 (10.8.0.3) 56(84) bytes of data.
64 bytes from 10.8.0.3: icmp_seq=1 ttl=64 time=3.78 ms
64 bytes from 10.8.0.3: icmp_seq=2 ttl=64 time=3.59 ms
64 bytes from 10.8.0.3: icmp_seq=3 ttl=64 time=3.61 ms
64 bytes from 10.8.0.3: icmp_seq=4 ttl=64 time=3.30 ms

--- 10.8.0.3 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 3.307/3.576/3.786/0.172 ms
[[email protected] ~]$ ping 10.8.0.2 -c 4
PING 10.8.0.2 (10.8.0.2) 56(84) bytes of data.
64 bytes from 10.8.0.2: icmp_seq=1 ttl=64 time=6.77 ms
64 bytes from 10.8.0.2: icmp_seq=2 ttl=64 time=1.57 ms
64 bytes from 10.8.0.2: icmp_seq=3 ttl=64 time=4.37 ms
64 bytes from 10.8.0.2: icmp_seq=4 ttl=64 time=13.6 ms

--- 10.8.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 15ms
rtt min/avg/max/mdev = 1.571/6.572/13.577/4.443 ms

サーバールートの設定によっては、インターネットアクセスも利用できるはずです。

OpenVPNクライアントをSystemdサービスとして実行する

サーバーが再起動するたびに自動的に接続を確立するために、OpenVPNクライアントsystemdサービスを有効にすることができます。

これを行う前に、VPN構成ファイルの拡張子を.ovpn .conf 。それに応じてファイル名を置き換えます。

cp koromicha.ovpn koromicha.conf

.confをコピーします OpenVPNクライアント構成ディレクトリへのファイル、 /etc/openvpn/client

cp koromicha.conf /etc/openvpn/client

次に、OpenVPNクライアントsystemdサービスを開始します。名前をコロミチャに置き換えます .conf構成ファイルの名前を使用します。

systemctl start [email protected]koromicha

ステータスを確認するには;

systemctl status [email protected]
[email protected] - OpenVPN tunnel for koromicha
   Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-04-14 16:00:35 EAT; 8s ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
 Main PID: 6877 (openvpn)
   Status: "Initialization Sequence Completed"
    Tasks: 1 (limit: 2300)
   CGroup: /system.slice/system-openvpn\x2dclient.slice/[email protected]
           └─6877 /usr/sbin/openvpn --suppress-timestamps --nobind --config koromicha.conf

Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: ROUTE_GATEWAY 10.0.2.2/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:4b:ff:18
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: TUN/TAP device tun0 opened
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: TUN/TAP TX queue length set to 100
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip link set dev tun0 up mtu 1500
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip addr add dev tun0 10.8.0.2/24 broadcast 10.8.0.255
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip route add 192.168.2.132/32 via 10.0.2.2
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip route add 0.0.0.0/1 via 10.8.0.1
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: /sbin/ip route add 128.0.0.0/1 via 10.8.0.1
Elb 14 16:00:37 ubuntu1804.kifarunix-demo.com openvpn[6877]: Initialization Sequence Completed

システム起動時に実行できるようにするには、

systemctl enable [email protected]

これで、Ubuntu18.04とCentOS8にOpenVPNクライアントを正常にインストールしてセットアップできました。これで、CentOS 8 /Ubuntu18.04にOpenVPNクライアントをインストールして構成する方法に関するチュートリアルは終了です。

関連チュートリアル

OpenVPNクライアントに静的IPアドレスを割り当てる

Ubuntu 18.04 /CentOS8でstrongSwanVPNクライアントを構成する

Ubuntu18.04でStrongSwanを使用してIPSECVPNを構成する

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

Fedora 29 /CentOS7にOpenVPNサーバーをインストールしてセットアップする

OpenVPN
  1. Ubuntu20.04にFreeIPAクライアントをインストールして構成する方法

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

  3. Ubuntu20.04にOpenVPNサーバーをインストールして構成する方法

  1. Ubuntu20.04にOpenVPNサーバーをインストールしてセットアップする

  2. CentOS 8 /Ubuntu18.04のネットワークマネージャーを使用してOpenVPNに接続します

  3. Ubuntu 18.04 /CentOS8でstrongSwanVPNクライアントを構成する

  1. CentOS7にNginxをインストールして構成する方法

  2. CentOS7にOpenVPNサーバーとクライアントをインストールする方法

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