# 1.什么是Openvpn? ``` 是否系统在连接到不受信任的网络,(例如酒店、咖啡店的wifi)时,从智能手机或笔记本电脑安全,安全的访问internet?虚拟专用网络 (VPN)能允许你像在专用网络上一样私密安全的遍历不受信任的网络。流量从vpn 服务器出现,并继续其到达目的的过程。 与https 连接结合使用时,此设置可让你保护无限登录和交易。你可以绕过地理限制和审查制度,并屏蔽不受信任的网络的位置和所有未加密的http流量。 ``` # 隧道模式 ##### Server ``` 第一步:vim /etc/sysctl.conf #打开配置文件 net.ipv4.ip_forward=1 #进行取消注释,并保存退出 第二步:sysctl -p #重新识别配置文件 net.ipv4.ip_forward = 1 #出现此效果代表正确 第三步: apt install openvpn -y #安装openvpn软件包 第四步:cp -r /usr/share/easy-rsa/ /etc/openvpn/ #复制目录下所有文件 第五步:cd /etc/openvpn/easy-rsa #进入路径 第六步:mv vars.example vars #进行重命名 第七步:vim vars #打开配置文件 1.打开序列号 2.来到97行 3.输写以下内容 export KEY_COUNTRY="INDIA" #国家 export KEY_PROVINCE="CA" #省 export KEY_CITY="Junagadh" #城市 export KEY_ORG="Howtoforge" #组织 export KEY_EMAIL="admin@example.com" #邮件 export KEY_OU="OpenVPN" #组织单位 4.编写完成后,保存退出 ``` ![配置文件][1] ``` 第八步:./easyrsa init-pki #命令初始化PKI 第九步:./easyrsa build-ca nopass #构建没有密码的CA 1.直接回车即可 2.如果需要构建有密码的CA,去掉nopass ./easyrsa build-ca 第十步:./easyrsa gen-req server nopass #生成服务器密钥 第十一步:./easyrsa sign-req server server #签署服务器证书 1.yes即可 第十二步:./easyrsa gen-dh #构建Diffie-Hellman密钥交换 第十三步: openvpn --genkey --secret ta.key #生成HMAC签名 第十四步:cp ta.key /etc/openvpn/ #复制HMAC签名 第十五步:cp pki/ca.crt /etc/openvpn/ #复制 第十六步:cp pki/private/server.key /etc/openvpn/ #复制公钥 第十七步:cp pki/issued/server.crt /etc/openvpn/ #复制私钥 第十八步:cp pki/dh.pem /etc/openvpn/ 第十九步: ./easyrsa gen-req client nopass #生成客户端证书 1.直接回车即可 第二十步: ./easyrsa sign-req client client #签署客户端证书 1.直接yes即可 第二十一步:cp pki/ca.crt /etc/openvpn/client/ #复制CA证书 第二十二步:cp pki/issued/client.crt /etc/openvpn/client/ #复制公钥 第二十三步:cp pki/private/client.key /etc/openvpn/client/ #复制私钥 第二十四步:cd #退出到root路径 第二十五步:gzip -dm /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz && cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/ #解压压缩包,将配置文件进行复制到指定路径 第二十六步:cd /etc/openvpn/ #进入路径 第二十七步: vim server.conf #打开配置文件 1.取消注释 ; = # 200行 #DNS配置 201行 274行 #VPN的用户 275行 296行 #输入Openvpn日志 297行 2.取消注释或修改 85行 dh dh2048.pem 修改成 dh dh.pem 141行 #取消注释 推送内网路由信息 3.保存退出 第二十八步:systemctl start openvpn@server #开启服务 第二十九步:systemctl status openvpn@server #查看服务状态信息 第三十步:ip a #查看网卡信息 当有tun0启动时代表成功 ``` ![1][2] ![2][3] ![3][4] ![4][5] ![5][6] ![6][7] ##### Client ``` 第一步:apt install openvpn -y #安装服务 第二步:gzip -dm /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz && cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server.conf.bak && cd /etc/openvpn && grep -Ev '^(#|$)' server.conf.bak > client.conf #解压压缩包、#复制配置文件,并进行重命名、#进入路径、#过滤配置文件,并重定向一个文件。 第三步:vim /etc/openvpn/client.conf #打开配置文件 1.添加: 第一行添加client remot nobind resolv-retry infinte 2.取消注释: user nobody group nogroup #其余不必要配置统统删除或者注释 3.修改 (10-11行)关于server.crt和server.key全部修改成client (12行)dh2048修改为dh (32行)tls-auth ta.key (0改1) 最终获得效果: 保存退出 ``` ![请输入图片描述][8] ``` 第四步: #此处IP地址是服务器IP 如果不是10.1网段请自行更换相对应的网段 scp root@192.168.10.1:/etc/openvpn/client/ca.crt /etc/openvpn/ scp root@192.168.10.1:/etc/openvpn/client/client.crt /etc/openvpn/ scp root@192.168.10.1:/etc/openvpn/client/client.key /etc/openvpn/ scp root@192.168.10.1:/etc/openvpn/ta.key /etc/openvpn/ 第五步:systemctl start openvpn@client #开启服务 第六步:ip a #查看是否成功 ``` ![网卡][9] ##### 旁批: ``` 如果获取不到tun0 的话 将服务端和客户端的时间 同步到同一时间。 ``` # 网桥模式 ##### Sever ``` 新增网卡 ``` ![网卡模式][10] ``` 第一步:vim /etc/sysctl.conf #打开配置文件 net.ipv4.ip_forward=1 #进行取消注释,并保存退出 第二步:sysctl -p #重新识别配置文件 net.ipv4.ip_forward = 1 #出现此效果代表正确 第三步: apt install openvpn -y #安装openvpn软件包 第四步:cp -r /usr/share/easy-rsa/ /etc/openvpn/ #复制目录下所有文件 第五步:cd /etc/openvpn/easy-rsa #进入路径 第六步:mv vars.example vars #进行重命名 第七步:vim vars #打开配置文件 1.打开序列号 2.来到97行 3.输写以下内容 export KEY_COUNTRY="INDIA" #国家 export KEY_PROVINCE="CA" #省 export KEY_CITY="Junagadh" #城市 export KEY_ORG="Howtoforge" #组织 export KEY_EMAIL="admin@example.com" #邮件 export KEY_OU="OpenVPN" #组织单位 4.编写完成后,保存退出 第八步:./easyrsa init-pki #命令初始化PKI 第九步:./easyrsa build-ca nopass #构建没有密码的CA 1.直接回车即可 2.如果需要构建有密码的CA,去掉nopass ./easyrsa build-ca 第十步:./easyrsa gen-req server nopass #生成服务器密钥 1.直接回车即可 第十一步:./easyrsa sign-req server server #签署服务器证书 1.yes即可 第十二步:./easyrsa gen-dh #构建Diffie-Hellman密钥交换 第十三步: openvpn --genkey --secret ta.key #生成HMAC签名 第十四步:cp ta.key /etc/openvpn/ #复制HMAC签名 第十五步:cp pki/ca.crt /etc/openvpn/ #复制 第十六步:cp pki/private/server.key /etc/openvpn/ #复制公钥 第十七步:cp pki/issued/server.crt /etc/openvpn/ #复制私钥 第十八步:cp pki/dh.pem /etc/openvpn/ 第十九步: ./easyrsa gen-req client nopass #生成客户端证书 第二十步: ./easyrsa sign-req client client #签署客户端证书 1.yes即可 第二十一步:cp pki/ca.crt /etc/openvpn/client/ #复制CA证书 第二十二步:cp pki/issued/client.crt /etc/openvpn/client/ #复制公钥 第二十三步:cp pki/private/client.key /etc/openvpn/client/ #复制私钥 第二十四步:cd #退出到root路径 第二十五步:gzip -dm /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz && cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/ #解压压缩包,将配置文件进行复制到指定路径 第二十六步:cd /etc/openvpn/ #进入路径 第二十七步:cp server.conf server.conf.bak #复制配置文件 第二十八步:grep -Ev '^($|#)' server.conf.bak > server.conf #过滤配置文件 第二十九步: vim server.conf #打开配置文件 1.注释 dev tun server 10.8.0.0 255.255.255.0 2.取消注释 dev tap 3.新增 server-bridge 192.168.10.0 255.255.255.0 192.168.10.201 192.168.10.250 client-to-client 4.修改 dh dh2048.pem 修改成 dh dh.pem ``` ![配置文件][11] ``` 第三十步:systemctl start openvpn@server #开启服务 第三十一步:ip a #查看新增网卡名称 第三十二步:vim /etc/network/interfaces #打开网卡配置 1.将原本 ens33网卡修改成外网地址 2.新增配置 auto br0 iface ens37 inet manual iface tap0 inet manual iface br0 inet static address 192.168.10.253/24 bridge-ports tap0 ens37 ``` ![网卡配置文件][12] ``` #保存退出 第三十二步:apt install bridge-utils net-tools -y #安装相对应的模块 第三十三步:systemctl restart networking #重启网卡服务 ``` ##### Client ``` 第一步:apt-get install openvpn -y #安装服务 第二步:cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn #复制配置文件 第三步:cd /etc/openvpn #进入路径 第四步:cp client.conf client.conf.bak #复制配置文件 第五步:grep -Ev '^($|#)' client.conf.bak > client.conf #对配置文件进行过滤 第六步:vim client.conf #打开配置文件 1.注释 dev tun remote my-server-1 1194 2.删除注释 dev tap 3.新增 remote 10.1.1.1 1194 #此处IP是服务器的IP地址,1194是VPN端口 4.保存退出 ``` ![配置文件][13] ``` 第七步:vim /etc/network/interfaces #打开配置文件 1.修改成外网 相同网段IP ``` ![网卡配置文件][14] ``` 第八步:systemctl restart networking #重启网卡服务 第九步: #复制证书 scp root@10.1.1.1:/etc/openvpn/client/ca.crt /etc/openvpn/ scp root@10.1.1.1:/etc/openvpn/client/client.crt /etc/openvpn/ scp root@10.1.1.1:/etc/openvpn/client/client.key /etc/openvpn/ scp root@10.1.1.1:/etc/openvpn/ta.key /etc/openvpn/ 第十步:systemctl start openvpn@server #开启服务 ``` [1]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150647.jpeg [2]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150732.jpeg [3]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150734.jpeg [4]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150736.jpeg [5]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150737.jpeg [6]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150739.jpeg [7]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150742.jpeg [8]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007150943.jpeg [9]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007151001.jpeg [10]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007151026.jpeg [11]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007151137.jpeg [12]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007151209.jpeg [13]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007151232.jpeg [14]: https://panfeng-biji.oss-cn-beijing.aliyuncs.com/oss/20211007151249.jpeg
最后修改:2021 年 10 月 08 日
如果觉得我的文章对你有用,欢迎打赏