前面分两次介绍了openVPN的关键配置文件server.conf(openVPN服务器配置的31个关键点)和证书的生成工具Easy-RSA(使用Easy-RSA配置生成SSL证书),今天终于可以配置客户端连接了。
我们前面不只一次的强调,SSL VPN是以SSL(Secure Sockets Layer,安全套接字层)为基础提供远程的安全连接服务,主要基于数字证书利用数字签名方法对SSL服务器和SSL客户端进行身份验证,“证书”不可或缺!(一篇能解决90%以上SSL VPN问题的武林秘籍)
先梳理一下已经生成的证书信息,把服务器端的必要文件(ca.crt、dh.pem、tietou.crt、tietou.key)复制到/etc/openvpn/server/目录下。
cp /etc/openvpn/easyrsa3/pki/ca.crt etc/openvpn/server/cp /etc/openvpn/easyrsa3/pki/dh.pem /etc/openvpn/server/cp /etc/openvpn/easyrsa3/pki/issued/tietou.crt /etc/openvpn/server/cp /etc/openvpn/easyrsa3/pki/private/tietou.key /etc/openvpn/server/

把客户端的必要文件(ca.crt、tiejunge.crt、tiejunge.key)复制到/etc/openvpn/client/目录下。
cp /etc/openvpn/easyrsa3/pki/ca.crt /etc/openvpn/client/cp /etc/openvpn/easyrsa3/pki/issued/tiejunge.crt /etc/openvpn/client/cp /etc/openvpn/easyrsa3/pki/private/tiejunge.key /etc/openvpn/client/

openVPN的配置文件server.conf这部分,前面已经着重介绍过了(openVPN服务器配置的31个关键点),熟悉之后,可以直接新建一个server.conf配置文件,内容如下:
local 0.0.0.0proto tcpport 44331dev tunca /etc/openvpn/server/ca.crtcert /etc/openvpn/server/tietou.crtkey /etc/openvpn/server/tietou.keydh /etc/openvpn/server/dh.pemtopology subnetserver 10.153.113.0 255.255.255.0ifconfig-pool-persist /etc/openvpn/ipp.txtpush "route 192.168.10.0 255.255.255.0"push "redirect-gateway def1 bypass-dhcp"duplicate-cnkeepalive 20 120persist-keypersist-tun

对配置文件做一个简单介绍:
openVPN使用TCP端口44331作为业务端口,监听所有接口地址,指定了根证书、服务器证书、私钥和DH文件。隧道接口类型为隧道,网络拓扑结构配置为子网,地址池网段为10.153.113.0/24,推送一条默认路由和明细路由192.168.10.0/24。
允许证书混用,隧道保活间隔为20秒,超时时间为120秒。固化服务器配置,配置客户端IP地址记录文件ipp.txt。
注意:如果要开启自动重连(配置:explicit-exit-notify 1),需要使用UDP协议,TCP协议不支持。告警信息:
Sat Aug 13 17:30:48 2022 Options error: --explicit-exit-notify can only be used with --proto udp
openVPN使用的端口号不能是知名端口号,也不能是其他服务已经使用的端口,否则会导致服务启动失败。告警信息:
Sat Aug 13 19:28:00 2022 us=292515 TCP/UDP: Socket bind failed on local address [AF_INET][undef]:3389: Permission denied (errno=13)Sat Aug 13 19:28:00 2022 us=292546 Exiting due to fatal error
关于日志文件,目前的报错信息是:
Sat Aug 13 17:37:02 2022 Warning: Error redirecting stdout/stderr to --log file: /etc/openvpn/log/openvpn.log: Permission denied (errno=13)Aug 13 17:37:02 localhost.localdomain openvpn[10233]: Options error: --status fails with '/etc/openvpn/log/openvpn-status.log': Permission denied (errno=13)
大概意思没有权限访问这两个文件,还没解决,有熟悉的大佬欢迎指导一下!


首先使能Linux的内核转发。
echo 1 > /proc/sys/net/ipv4/ip_forward
然后就是启动openVPN了,系统里的服务名称有点不太符合常规,是openvpn@server.service,为了方便起见,我们可以选择新建一个名为openvpn.service的服务。
先创建openvpn服务的启动文件。
vi /etc/systemd/system/openvpn.service[Unit]Description=OpenVPN ServerAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]ExecStart=/usr/sbin/openvpn --config /etc/openvpn/server.conf

然后重新加载系统服务,并尝试启动openvpn服务。
systemctl daemon-reloadsystemctl start openvpnsystemctl status openvpn

查看一下端口监听信息:
ss -atnp |grep 44331ss -atnp |grep openvpn

最后配置一下openvpn服务的开启启动就好了。
systemctl enable openvpnsystemctl status openvpn



以Windows客户端为例,首先在系统中安装openVPN的客户端OpenVPN Connect,我装的是个2.7的版本,安装包比较小,只有不到8 MB。(还有一个3.3的版本的,大小有68 MB)

安装过程中会弹出一个对话框,询问是否安装TAP网络适配器,不安装是连不了openVPN的。

仅有一次弹窗,客户端就安装好了,并且会在任务栏最小化运行。

客户端的默认安装路径是C:\Program Files (x86)\OpenVPN Technologies\OpenVPN Client,我们需要将服务器上生成的证书(存放于/etc/openvpn/client/目录下的ca.crt、tiejunge.crt和tiejunge.key)复制到OpenVPN安装目录的etc目录下。

接下来还是在存放证书的etc目录下,编写一个客户端配置文件tiejunge.ovpn,并在文件中增加如下配置:
clientdev tunproto tcpremote 192.168.1.76 44331ca ca.crtcert tiejunge.crtkey tiejunge.keynobindresolv-retry infinitepersist-keypersist-tunverb 4

简单介绍一下:
client表示当前VPN是客户端,服务器为192.168.1.76,使用TCP协议,端口为44331,使用隧道传输协议;同时指定相关的证书文件。
其他配置,不绑定本地特定的端口号,开启断线自动重新连接,并保持心跳检测超时后,不会变更密钥和网卡状态;日志级别为4。
然后我们右击任务栏的图标,选择“Import→From local file”导入刚才生成的tiejunge.ovpn配置文件。

导入成功之后,可以看到多了一个VPN服务器192.168.1.76,然后点击“Connect”连接VPN。

连接成功之后,任务栏中的OpenVPN图标会变成绿色,同时会有一个连接成功的提示。

查看网络适配器信息,可以看到新安装的TAP网卡连接成功,或是获得了一个OpenVPN服务器分配的IP地址10.153.113.3,客户端会使用该虚拟网络IP地址与服务器端进行通信;而比较奇怪的地方就是没有显示网关地址。

还记得我们服务器端的配置吗?我们给客户端推送了一条默认路由和明细路由192.168.10.0/24,可以看到明细路由192.168.10.0/24已经直接显示在路由表中了;而默认路由则是以0.0.0.0/1和120.0.0.0/1的形式下发的,这样的好处是会以最长匹配的方式直接覆盖掉默认路由,避免再因为路由优先级的原因出现不生效或冲突等情况。

最后测一下流量的转发路径。

经过openVPN服务器进行转发,验证成功!
本文链接:https://www.kinber.cn/post/3470.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
