# 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 日
© 允许规范转载