前面分两次介绍了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.0
proto tcp
port 44331
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/tietou.crt
key /etc/openvpn/server/tietou.key
dh /etc/openvpn/server/dh.pem
topology subnet
server 10.153.113.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
push "route 192.168.10.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
duplicate-cn
keepalive 20 120
persist-key
persist-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 Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/server.conf
然后重新加载系统服务,并尝试启动openvpn服务。
systemctl daemon-reload
systemctl start openvpn
systemctl status openvpn
查看一下端口监听信息:
ss -atnp |grep 44331
ss -atnp |grep openvpn
最后配置一下openvpn服务的开启启动就好了。
systemctl enable openvpn
systemctl 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,并在文件中增加如下配置:
client
dev tun
proto tcp
remote 192.168.1.76 44331
ca ca.crt
cert tiejunge.crt
key tiejunge.key
nobind
resolv-retry infinite
persist-key
persist-tun
verb 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 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: