Centos7.8部署openVPN傻瓜式详细教程

一、同步服务时间(不然证书报错)

ntpdate 203.107.6.88

//这个ip根据你所在地区设置响应ntp地址

hwclock –hctosys

//同步系统时间和硬件时间

clock -w

//保存时钟

二、如果Iptables无法保存,可以先修改此项

systemctl stop firewalld

yum install iptables-services

systemctl enable iptables

systemctl restart iptables

三、永久关闭selinux

cd /etc/selinux/config

vim /etc/selinux/config

改成SELINUX=disabled

四、安装epel 仓库源

yum install epel-release -y

五、安装openvpn

yum install openvpn -y

  • 安装easy-rsa

a、在github 上,下载最新的easy-rsa Linux安装包

https://github.com/OpenVPN/easy-rsa

b、上传到 /etc/openvpn目录后

cd /etc/openvpn

c、解压(根据自己的格式选择一个解压命令)

unzip easy-rsa-3.0.8.zip

tar xf EasyRSA-3.0.8.tgz

d、重命名  mv EasyRSA-3.0.8 easy-rsa

e、配置编辑vars文件

cd /etc/openvpn/easy-rsa

cp vars.example vars

vim vars

根据自己环境配置,就修改以下内容,非必须改

set_var EASYRSA_REQ_COUNTRY    "CN"
set_var EASYRSA_REQ_PROVINCE   "Sichuan"
set_var EASYRSA_REQ_CITY       "Chengdu"
set_var EASYRSA_REQ_ORG        "xx Ltd."
set_var EASYRSA_REQ_EMAIL      "vpn@xx.com"
set_var EASYRSA_REQ_OU         "xx OpenVPN"

 

七、easy-rsa生成证书

a、创建服务端证书及key

初始化

./easyrsa init-pki

创建根证书

./easyrsa build-ca nopass

创建服务器端证书

./easyrsa gen-req server nopass

签约服务端证书

./easyrsa sign-req server server

提示Type the word ‘yes’ to continue, or any other input to abort.

Confirm request details: 输入yes

b、创建客户端key及生成证书

./easyrsa gen-req yuk  //名字自己定义

//记住生成是自己客户端登录输入的密码,可带nopass不输用密码

签约客户端证书 ./easyrsa sign-req client yuk

//这里生成client所以必须为client,along要与之前导入名字一致

注:移除离职人员证书

./easyrsa revoke 证书名

./easyrsa gen-crl

c、创建TLS认证密钥( ta.key拒绝服务攻击证书 非必须)

openvpn –genkey –secret /etc/openvpn/ta.key

d、创建Diffie-Hellman,确保key穿越不安全网络的命令

./easyrsa gen-dh

八、把必要文件放到对应目录下

cd /etc/openvpn/easy-rsa/pki/
cp ca.crt dh.pem /etc/openvpn/
cp private/server.key issued/server.crt /etc/openvpn/server/
cp private/yuk.key issued/yuk.crt /etc/openvpn/client/

 

九、为服务端编写配置文件

当你安装好了openvpn时候,他会提供一个server配置的文件例子,在/usr/share/doc/openvpn-2.3.2/sample/sample-config-files 下会有一个server.conf文件,我们将这个文件复制到/etc/openvpn

rpm -ql openvpn |grep server.conf查看当前版本

cp /usr/share/doc/openvpn-2.4.11/sample/sample-config-files/server.conf /etc/openvpn/

修改配置文件

vim /etc/openvpn/server.conf

仅供参考,根据需求更改

#监听本机ip地址
local 0.0.0.0
#监控本机端口号
port 9160
#指定采用的传输协议,可以选择tcp或udp
proto tcp
#指定创建的通信隧道类型,可选tun或tap
dev tun
#指定CA证书的文件路径
ca /etc/openvpn/ca.crt
#指定服务器端的证书文件路径
cert /etc/openvpn/server/server.crt
#指定服务器端的私钥文件路径
key /etc/openvpn/server/server.key
#指定迪菲赫尔曼参数的文件路径
dh /etc/openvpn/dh.pem
#指定虚拟局域网占用的IP地址段和子网掩码,此处配置的服务器自身占用.1的ip地址
server 172.16.0.0 255.255.255.0
#服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址(第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP)。
ifconfig-pool-persist ipp.txt
#自动推送客户端上的网关及DHCP
;push "redirect-gateway def1 bypass-dhcp"  //开启后访问外网流量都要经过服务器走一圈
#指定需要访问内网相关业务地址段
push "route 192.168.1.0 255.255.255.0"
#OpenVPN的DHCP功能为客户端提供指定的 DNS、WINS 等
;push "dhcp-option DNS 114.114.114.114"  //内网没有需要解析的不用
#允许客户端与客户端相连接,默认情况下客户端只能与服务器相连接
;client-to-client
#每10秒ping一次,连接超时时间设为120秒
keepalive 10 120
#开启TLS-auth,使用ta.key防御攻击。服务器端的第二个参数值为0,客户端的为1。
tls-auth /etc/openvpn/ta.key 0
#加密认证算法
cipher AES-256-GCM   #2.4版本后必须用此方式加密
#使用lzo压缩的通讯,服务端和客户端都必须配置
comp-lzo
#最大连接用户
;max-clients 100
#定义运行的用户和组
;user openvpn
;group openvpn
#重启时仍保留一些状态
persist-key
persist-tun
#输出短日志,每分钟刷新一次,以显示当前的客户端
status /etc/openvpn/openvpn-status.log
#日志保存路径
log /etc/openvpn/openvpn.log
log-append  /etc/openvpn/openvpn.log
#指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细
verb 3
#相同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中
mute 20
#如果采用tcp协议需要把这个注释掉
;explicit-exit-notify 1

每个项目都会由一大堆介绍,上述修改,openvpn提供的server.conf已经全部提供,我们只需要去掉前面的注释#,然后修改我们自己的有关配置

十、配置后的设置

chown root.openvpn /etc/openvpn/* -R

十一、iptables 设置nat 规则和打开路由转发

这两条根据情况配置信息

iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE

iptables -I INPUT -p tcp –dport 9160 -j ACCEPT

iptables -L -t nat 查看

 

echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf //打开路由转发

sysctl -p启用

 

service iptables save 保存

service iptables restart 重启

十二、开启openvpn 服务

三选一

/etc/openvpn/

A、openvpn –daemon –config server.conf

B、openvpn /etc/openvpn/server.conf

C、systemctl start openvpn@server

 

netstat -lntup | grep 9160查看9160端口是否起来

ps -ef | grep openvpn查询进程

kill -9 pid结束进程重启服务

 

如果开启后没有打开9160 端口,说明开启服务失败,可能是配置文件有错,也有可能是权限不够,自己查询日志解决。

十三、开机后需要手动开启,就输入这两个自启动

systemctl enable openvpn@service

systemctl enable iptables.service

十四、客户端连接openvpn

1、下载openvpn客户端安装

windows客户端

mac客户端

 

2、解压安装,配置client 端配置文件

在sample-config 文件下,有client.ovpn 模板

修改,并复制到config 目录下,修改内容如下

client
dev tun
proto tcp                   //服务器器有的就改为一样的
remote 39.xxx.xxx.xxx 1194    //OpenVPN服务器的外网IP和端口,ip和域名都行
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt     //client1的证书
key client.key     //client1的密钥
ka.key
remote-cert-tls server
cipher AES-256-GCM
comp-lzo
verb 3

 

3、把服务器端生成的证书文件复制到安装目录的config 文件下

ca.crt client.crt client.key ka.key //这四个文件

 

4、启动客户端

(1)启动,注意启动需以管理员权限启动

(2)输入自己设置的密码

(3)连接成功

5、测试是否成功

(1)在client 查询ip,确实是openvpn 给定的ip

(2)  访问内网业务是否正常

参考链接 http://www.linuxboy.net/linuxjc/128348.html

https://zhuanlan.zhihu.com/p/154309923

 

正文完
 1
365share
版权声明:本站原创文章,由 365share 于2022-03-18发表,共计4481字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。