问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

史上最详细保姆级教程部署OpenVPN

创作时间:
作者:
@小白创作中心

史上最详细保姆级教程部署OpenVPN

引用
CSDN
1.
https://blog.csdn.net/XLBYYDS/article/details/141145409

本文将详细介绍如何在CentOS 7系统上部署OpenVPN服务器,并配置Windows客户端进行连接。通过本教程,读者将能够掌握OpenVPN的基本部署流程,实现安全的数据传输。

整体环境搭建

主机
内网(均无网关)
外网
CentOS 7
192.168.37.10/24
192.168.124.10/24
Win10
N/A
192.168.124.100/24
Win Server 2008
192.168.37.100/24
N/A

VPN Server(CentOS 7)

  • 添加两张网卡:
  • VMnet 1(192.168.37.10/24),连接内网
  • VMnet 8(192.168.124.10/24),连接外网

Client(Win10)

Client(Win 2008)

一、OpenVPN证书制作工具下载

下载easy-rsa

1. 修改vars文件证书参数

使vars文件生效

[root@xlb_agent 2.0]# source vars

生成keys目录,用来存放证书的信息,如私钥

[root@xlb_agent 2.0]# ./clean-all

2. 生成根证书和根密钥

[root@xlb_agent 2.0]# ./build-ca

keys目录生成ca.crt和ca.key文件

3. 生成服务端证书和密钥

[root@xlb_agent 2.0]# ./build-key-server server

keys目录下生成server.crt、server.key、server.csr等文件

4. 生成客户端证书和密钥

[root@xlb_agent 2.0]# ./build-key client

keys目录下生成client.crt、client.key、client.csr等文件

5. 生成密钥交换文件

[root@xlb_agent 2.0]# ./build-dh

keys目录下生成dh2048.pem文件

二、配置OpenVPN服务器

1. 配置阿里云源

[root@xlb_agent ~]# cd /etc/yum.repos.d/
[root@xlb_agent yum.repos.d]# curl -o epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@xlb_agent yum.repos.d]# yum clean all
[root@xlb_agent yum.repos.d]# yum makecache

2. 安装OpenVPN

[root@xlb_agent ~]# yum -y install openvpn

3. 配置OpenVPN

openvpn目录下建立keys文件夹

[root@xlb_agent ~]# cd /etc/openvpn/
[root@xlb_agent openvpn]# mkdir keys

将ca.crt、server.crt、server.key、dh2048.pem文件拷贝到/etc/openvpn/keys目录中

[root@xlb_agent openvpn]# cd ~
[root@xlb_agent ~]# cd /easy-rsa-old-master/easy-rsa/2.0/keys
[root@xlb_agent keys]# cp {ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn/keys

//openvpn安装好后指定目录有模板文件
//(usr/share/doc/open...,不知道可以用Tab键补全提示)
//将模板配置文件server.conf复制到/etc/openvpn目录下

[root@xlb_agent keys]# cd ..
[root@xlb_agent openvpn]# cp /usr/share/doc/openvpn-2.4.12/sample/sample-config-files/server.conf ./

修改配置文件vim server.conf

  1. 更改文件位置,以当前配置文件位置为准
  2. 修改vpn虚拟网段,用户通过vpn拨号进来就能自动获取到该网段IP地址
  3. 定义路由转发
  4. 修改拒绝服务攻击证书文件ta.key位置(还未建立)
  5. 修改加密模式,2.4版本后不能用CBC,得改成GCM

4. 启用路由转发功能

将net.ipv4.ip_forward = 1导入到内核里去,使系统永久生效开启路由转发功能

[root@xlb_agent openvpn]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

生效指令

[root@xlb_agent openvpn]# sysctl -p

5. 建立ta.key文件(拒绝服务攻击证书文件)

[root@xlb_agent openvpn]# cd keys
[root@xlb_agent keys]# openvpn --genkey --secret ta.key

6. 启动OpenVPN服务

[root@xlb_agent keys]# cd ..
[root@xlb_agent openvpn]# openvpn --daemon --config server.conf //启动openvpn服务
[root@xlb_agent openvpn]# netstat -lntup | grep 1194 //查看openvpn是否启动成功

7. 查看并关闭VPN Server防火墙

[root@xlb_agent ~]# firewall-cmd --state
[root@xlb_agent ~]# systemctl stop firewalld
[root@xlb_agent ~]# systemctl disable firewalld

8. 临时关闭selinux策略

[root@xlb_agent ~] # setenforce 0

三、配置OpenVPN客户端

1. 复制并修改模板client.conf配置文件

[root@xlb_agent openvpn]# cd
[root@xlb_agent ~]# mkdir openvpn_client
[root@xlb_agent ~]# cd openvpn_client/
[root@xlb_agent openvpn_client]# cp /usr/share/doc/openvpn-2.4.12/sample/sample-config-files/client.conf ./

编辑配置文件vim client.conf

  1. 添加远程主机
  2. 修改加密模式为GCM

2. 打包上传客户端所需证书等文件

将ca.crt、client.key、client.crt、ta.key文件拷贝到/root/openvpn_client目录中

[root@xlb_agent openvpn_client]# cd ~
[root@xlb_agent ~]# cd easy-rsa-old-master/easy-rsa/2.0/keys
[root@xlb_agent keys]# cp {ca.crt,client.key,client.crt} /root/openvpn_client
[root@xlb_agent keys]# cd /etc/openvpn/keys
[root@xlb_agent keys]# cp ta.key /root/openvpn_client

将client.conf改名为client.ovpn(因客户端识别ovpn后缀文件)

[root@xlb_agent openvpn_client]# mv client.conf client.ovpn

将ca.crt、client.key、client.crt、ta.key、client.ovpn打包上传至客户端

[root@xlb_agent ~]# zip openvpn_client.zip openvpn_client/*

3. 安装OpenVPN Windows客户端

4. 虚拟专用网连接设置

将openvpn_client.zip解压到OpenVPN安装目录的config文件夹中

新建client.log文件放入OpenVPN安装目录的log文件夹中

更改配置路径

四、Windows 客户端连接测试

1. 连接虚拟专用网


2. 查看隧道接口地址分配

Client外网:

VPN Server:

3. 虚拟专用网Ping测试

五、测试内网连通性

1. 查看路由表

2. 外网Ping内网接口

3. 外网Ping内网服务器

六、配置NAT地址转换功能

1. 配置iptables的NAT功能

[root@xlb_agent network-scripts]# iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j MASQUERADE

2. 外网Ping内网服务器

七、功能测试

1. 内网提供共享文件

2. 内网添加新用户供外网访问共享文件

3. 外网访问内网共享文件

输入账号密码

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号