在 CentOS 8/Ubuntu 18.04 上安装和配置 OpenVPN 客户端

为了连接到OpenVPN服务器以允许您访问内部网本地资源,您只需要一个 OpenVPN 客户端。在本指南中,我们将学习如何在 CentOS 8/Ubuntu 18.04 上安装和配置 OpenVPN 客户端。请注意,OpenVPN 软件可以配置为作为服务器或客户端工作。

通过以下链接了解如何在 CentOS 8 上安装和配置 OpenVPN 服务器;

在 CentOS 8 上设置 OpenVPN 服务器

在 CentOS 8/Ubuntu 18.04 上安装和配置 OpenVPN 客户端

为了演示不同 Intranet 上两台服务器的通信,我们有两台服务器,Ubuntu 18.04 和 CentOS 8,它们无法通信,因为它们位于不同的 LAN 网络上,只能通过 OpenVPN 服务器访问。两台服务器仅连接了 NAT 接口。

在 Ubuntu 18.04 上安装 OpenVPN 客户端

OpenVPN 维护着多个 OpenVPN (OSS) 软件存储库,可以从中安装最新和稳定版本的 OpenVPN 客户端。但是,您需要手动创建这些源列表,如下所示;

安装 OpenVPN 存储库签名密钥。

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

接下来,安装 Ubuntu 18.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

在 Ubuntu 18.04 上安装 OpenVPN 客户端

apt install openvpn

然后,您可以通过运行以下命令来验证版本;

openvpn --version

在 CentOS 8 上安装 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

然后就可以通过执行命令安装OpenVPN客户端了;

dnf install openvpn

在 CentOS 8/Ubuntu 18.04 上配置 OpenVPN 客户端

为了能够连接到 OpenVPN 服务器,您需要创建包含 CA 证书、客户端服务器证书和密钥的客户端配置。

如果您遵循我们在 CentOS 8上设置 OpenVPN 服务器的指南,我们描述了如何生成客户端证书文件和密钥。

生成密钥后,将它们复制到客户端并记下它们的存储路径。

您还需要将 HMAC 密钥和 CA 证书复制到客户端。

然后您可以创建 OpenVPN 客户端配置。

例如,为客户端koromicha创建 OpenVPN 配置文件,其证书和密钥为koromicha.crtkoromicha.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地址;

[koromicha@centos8 ~]$ 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
koromicha@ubuntu1804:~$ 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

测试两台远程服务器之间的连通性;

koromicha@ubuntu1804:~$ 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
[koromicha@centos8 ~]$ 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 服务。将名称koromicha替换为.conf 配置文件的名称。

systemctl start openvpn-client@koromicha

检查状态;

systemctl status openvpn-client@koromicha
● openvpn-client@koromicha.service - OpenVPN tunnel for koromicha
   Loaded: loaded (/lib/systemd/system/openvpn-client@.service; 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/openvpn-client@koromicha.service
           └─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 openvpn-client@koromicha

您已经在 Ubuntu 18.04 和 CentOS 8 上成功安装和设置了 OpenVPN 客户端。到此我们结束了关于如何在 CentOS 8/Ubuntu 18.04 上安装和配置 OpenVPN 客户端的教程。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:番茄网 » 在 CentOS 8/Ubuntu 18.04 上安装和配置 OpenVPN 客户端

分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

像番茄一样 表里如一

表里如一表里如一
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活