以下のリンクをたどって、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サーバーをインストールしてセットアップする