09
2023
01
10:21:41

openVPN连接操作指南



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

前面分两次介绍了openVPN的关键配置文件server.confopenVPN服务器配置的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)

              大概意思没有权限访问这两个文件,还没解决,有熟悉的大佬欢迎指导一下!

              启动openVPN

              首先使能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客户端

                        以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://hqyman.cn/post/3470.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

                          分享到:





                          休息一下,本站随机推荐观看栏目:


                          « 上一篇 下一篇 »

                          发表评论:

                          ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

                          您的IP地址是: