CentOS7搭建OpenVPN服务
1. 验证是否支持OpenVPN
1 | cat /dev/net/tun |
2. 服务器端
2.1. 关闭selinux
vim /etc/selinux/config,将SELINUX=enforcing修改为SELINUX=disabled,随后reboot重启系统
2.2. 安装软件
1 | # 安装easy-rsa,如果找不到包则更新源:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo |
2.3. 防火墙配置
2.3.1. 禁用firewalled防火墙
1 | systemctl mask firewalld.service |
2.3.2. 安装iptables防火墙
yum install iptables-services –y
2.3.3. 配置iptables防火墙
vim /etc/sysconfig/iptables
1 | # sample configuration for iptables service |
2.3.4. 启动iptables防火墙
1 | # 启动iptables防火墙 |
2.4. 开启内核转发
编辑 /etc/sysctl.conf文件,将net.ipv4.ip_forward = 0修改为net.ipv4.ip_forward = 1,然后执行sysctl -p
2.5. 生成证书
1 | mkdir /etc/openvpn |
证书相关文件的存储位置如下表:
| 项目 | 位置 |
|---|---|
| CA证书文件 | /etc/openvpn/easyrsa/pki/ca.crt |
| 私钥所在目录 | /etc/openvpn/easyrsa/pki/private |
| 证书所在目录 | /etc/openvpn/easyrsa/pki/issued |
| DH文件 | /etc/openvpn/easyrsa/pki/dh.pem |
| ta.key文件 | /etc/openvpn/easyrsa |
| 证书列表文件 | /etc/openvpn/easyrsa/pki/index.txt |
2.6. 编辑服务器端配置文件
vim /etc/openvpn/server.conf,内容如下(需要根据实际业务情况进行修改):
1 | local 192.168.1.1 # 监听网卡地址 |
2.7. 启动openvpn并设置自启动
1 | systemctl start openvpn@server |
2.8. 固定客户端地址(可选)
客户端的的IP地址变动和openvpn的版本变动会导致分配的IP地址变动,可能会导致客户端之间无法正常通讯,vim /etc/openvpn/ip/[clientname],[clientname]为对应客户端名称,内容则形如ifconfig-push 10.8.0.17 10.8.0.18,ifconfig-push后面跟着的是两个连续的成组IP地址
1 | [ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] |
3. 客户端连接
3.1. windows
下载OpenVPN客户端安装程序并安装,放置证书、密钥等文件,创建配置文件open.ovpn,内容如下(需要根据实际业务情况进行修改):
1 | client |
保存,启动openvpn客户端应用程序即可
3.2. Linux
安装openvpn(参照2.2节)后,放置证书、密钥等文件,创建配置文件open.ovpn,直接openvpn open.ovpn即可
3.2.1. 设置自启动(进程结束自动重启)
创建自启动脚本vim /etc/openvpn/crond.sh,内容如下:
1 |
|
为自启动脚本添加可执行权限chmod +x /etc/openvpn/crond.sh,编辑计划任务配置文件vim /etc/crontab,在文件末尾添加一行*/1 * * * * root /etc/openvpn/crond.sh,代表每分钟执行一次该脚本,随后重启计划任务服务systemctl restart crond.service
4. 附件:配置文件详解
4.1. 服务器端
1 | ################################################# |
4.2. 客户端
1 | ############################################## |