赞
踩
需求:公司外部员工需要访问内部办公网服务器,所以需要搭建一个vpn提供外部员工使用。
服务器系统:CentOS Linux release 7.9.2009 (Core) 服务器配置:不重要 服务器IP: Openvpn服务器: 外网:124.70.49.106 内网:192.168.0.155 内网测试服务器:192.168.0.21 openvpn客户端服务器网段:172.16.16.0/24 OpenVpn版本:2.5.6 easy-rsa版本:3.0.8 安装包存放的路径:/tmp/install/ 程序安装目录:/data/openvpn 备注: root# 代表在root用户下执行的命令 $ 代表是在普通用户下执行的命令 # 单个#号代表注释
(以下所有操作均在Openvpn服务器操作) # 关闭防火墙 root# systemctl stop firewalld root# systemctl disable firewalld # 关闭selinux root# sed -i 's/enforcing/disabled/' /etc/selinux/config root# setenforce 0 # 安装依赖 root# yum install -y vim wget lrzsz gcc-c++ openssl openssl-devel net-tools lzo lzo-devel pam pam-devel # 下载安装包 root# mkdir /tmp/install root# cd /tmp/install root# wget https://swupdate.openvpn.org/community/releases/openvpn-2.5.6.tar.gz root# wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
#1)安装OpenVpn root# cd /tmp/install #创建目录 root# mkdir /data #解压缩 root# tar -zxvf openvpn-2.5.6.tar.gz root# cd openvpn-2.5.6 #--prefix= 后面路径是安装openvpn到那个文件路径下 root# ./configure --prefix=/data/openvpn/ #编译 root# make && make install #添加openvpn的环境变量 root# echo -e "PATH=\$PATH:/data/openvpn/sbin" >/etc/profile.d/openvpn256.sh #加载环境变量 root# source /etc/profile #执行下面的命令看看是否成功,出现以下内容表示成功 root# openvpn --version OpenVPN 2.5.6 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on May 5 2022 #2)安装EasyRSA root# cd /tmp/install root# tar -zxvf EasyRSA-3.0.8.tgz root# mv EasyRSA-3.0.8 /data/EasyRSA
#拷贝EasyRSA
root# cp -r /data/EasyRSA /data/openvpn/easy-rsa-server
root# cd /data/openvpn/easy-rsa-server
#准备签发证书的默认变量文件
root# egrep -v "^$|^#" vars.example >vars
#编辑vars文件,在最后一行增加以下内容
root# vim vars
#添加参数,设置CA证书有效期为100年(日期可以你自己决定设置多长)
set_var EASYRSA_CA_EXPIRE 36500
#添加参数,设置服务器证书为10年
set_var EASYRSA_CERT_EXPIRE 3650
#1)创建CA机构 root# cd /data/openvpn/easy-rsa-server #初始化,执行此命令会生成pki目录 root# ./easyrsa init-pki #创建CA机构,nopass代表不需要密码的意思 root# ./easyrsa build-ca nopass #这里是CA机构的名称,我这边使用的是CATEST,这个名字可以用默认的也可以你自己输入 Common Name (eg: your user, host, or server name) [Easy-RSA CA]: CATEST #执行创建ca机构成功的话,会出现下面的这个ca.crt文件 Your new CA certificate file for publishing is at: /data/openvpn/easy-rsa-server/pki/ca.crt #CA证书文件 root# ls -l /data/openvpn/easy-rsa-server/pki/ca.crt -rw------- 1 root root 1151 May 5 09:56 /data/openvpn/easy-rsa-server/pki/ca.crt #CA秘钥文件 root# ls -l /data/openvpn/easy-rsa-server/pki/private/ca.key -rw------- 1 root root 1679 May 5 09:56 /data/openvpn/easy-rsa-server/pki/private/ca.key #2)创建服务端证书 root# cd /data/openvpn/easy-rsa-server #创建服务端证书申请文件,openvpnserver为了区别参数标识,我这里设置为openvpnserver,如果你自己安装的话可以使用默认的server 这个名称 root# ./easyrsa gen-req openvpnserver nopass #默认回车就行 Common Name (eg: your user, host, or server name) [openvpnserver]: Keypair and certificate request completed. Your files are: #请求文件 req: /data/openvpn/easy-rsa-server/pki/reqs/openvpnserver.req #私钥文件 key: /data/openvpn/easy-rsa-server/pki/private/openvpnserver.key #3)签发服务端证书 root# cd /data/openvpn/easy-rsa-server #这里的server是代表服务端意思,openvpnserver这个是上面我们创建的服务端证书的名称 root# ./easyrsa sign server openvpnserver #输入yes Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes #服务端的证书文件 Certificate created at: /data/openvpn/easy-rsa-server/pki/issued/openvpnserver.crt #4)创建交互秘钥 root# cd /data/openvpn/easy-rsa-server root# ./easyrsa gen-dh DH parameters of size 2048 created at /data/openvpn/easy-rsa-server/pki/dh.pem #5) 启用安全增强配置 root# cd /data/openvpn/easy-rsa-server root# openvpn --genkey tls-auth ta.key
#创建openvpn用户 root# groupadd openvpn root# useradd -M -s /sbin/nologin -g openvpn openvpn # 创建证书存放目录 root# mkdir /data/openvpn/certificate # 创建日志存放目录 root# mkdir /data/openvpn/logs root# chown openvpn. /data/openvpn/logs # 将服务端证书秘钥和交互秘钥复制到certificate目录 root# cp /data/openvpn/easy-rsa-server/pki/ca.crt /data/openvpn/certificate/ root# cp /data/openvpn/easy-rsa-server/pki/issued/openvpnserver.crt /data/openvpn/certificate/ root# cp /data/openvpn/easy-rsa-server/pki/private/openvpnserver.key /data/openvpn/certificate/ root# cp /data/openvpn/easy-rsa-server/pki/dh.pem /data/openvpn/certificate/ root# cp /data/openvpn/easy-rsa-server/ta.key /data/openvpn/certificate/ #添加配置文件 root# cd /data/openvpn/ root# vim /data/openvpn/server.conf #__server.conf—stat___ #端口 port 1194 #协议 proto tcp dev tun #ca证书文件 ca /data/openvpn/certificate/ca.crt #服务端证书文件 cert /data/openvpn/certificate/openvpnserver.crt #服务端私钥文件 key /data/openvpn/certificate/openvpnserver.key #交换秘钥文件 dh /data/openvpn/certificate/dh.pem #安全增强文件,0是服务端,1是客户端 tls-auth /data/openvpn/certificate/ta.key 0 #分配客户端IP的网段,不能和服务器一个网段,不能冲突 server 10.8.0.0 255.255.255.0 #运行通讯的内网路由,可以多条 push "route 192.168.0.0 255.255.255.0" #会话检测,每十秒测试一下,超过120秒没回应就认为对方down keepalive 10 120 #加密算法 cipher AES-256-CBC #压缩算法 compress lz4-v2 #推送客户端使用lz4-v2算法 push "compress lz4-v2" #最大客户端数 max-clients 100 #运行openvpn的用户和用户组 user openvpn group openvpn #状态日志 status /data/openvpn/logs/openvpn-status.log log-append /data/openvpn/logs/openvpn.log #日志级别 verb 3 mute 20 #__server.conf—end___ #内核转发规则 root# echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf root# sysctl -p #iptablesNAT规则 #这里的ip就是server.conf 中的server 10.8.0.0 255.255.255.0 ;添加转发规则到开机启动项 root# echo 'iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE' >> /etc/rc.d/rc.local root# chmod +x /etc/rc.d/rc.local root# /etc/rc.d/rc.local
# 创建启动文件 root# vim /etc/systemd/system/openvpn.service [Unit] Description=OpenVPN Server After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] ExecStart=/data/openvpn/sbin/openvpn --config /data/openvpn/server.conf #加载系统服务 root# systemctl daemon-reload #开机启动 root# systemctl enable openvpn.service #启动服务 root# systemctl start openvpn.service #查看服务运行状态 root# systemctl status openvpn.service
#1)创建客户端申请证书 root# cp -r /data/EasyRSA /data/openvpn/easy-rsa-client root# cd /data/openvpn/easy-rsa-client #初始化,执行此命令会生成pki目录 root# ./easyrsa init-pki #创建客户端申请证书,我这里用的是名字全拼 root# ./easyrsa gen-req zhangsan nopass #直接回车就行 Common Name (eg: your user, host, or server name) [zhangsan]: req: /data/openvpn/easy-rsa-client/pki/reqs/zhangsan.req key: /data/openvpn/easy-rsa-client/pki/private/zhangsan.key #2)服务端签发证书 root# cd /data/openvpn/easy-rsa-server #将客户端证书复制到CA工作目录 root# ./easyrsa import-req /data/openvpn/easy-rsa-client/pki/reqs/zhangsan.req zhangsan #设置客户端证书有效期,我这里设置的是90天 root# sed -i "s/set_var EASYRSA_CERT_EXPIRE.*$/set_var EASYRSA_CERT_EXPIRE\t90/g" ./vars #签发证书 root# ./easyrsa sign client zhangsan #输入yes Type the word 'yes' to continue, or any other input to abort. Confirm request details:yes #生成的证书 Certificate created at: /data/openvpn/easy-rsa-server/pki/issued/zhangsan.crt
#创建存放目录 root# mkdir /data/openvpn/client/ #创建张三证书存放的目录 root# mkdir /data/openvpn/client/zhangsan #复制证书 root# find /data/openvpn/ \( -name "zhangsan.key" -o -name "zhangsan.crt" -o -name "ca.crt" -o -name "ta.key" \) -exec cp {} /data/openvpn/client/zhangsan \; root# vim /data/openvpn/client/zhangsan/client.ovpn client dev tun proto tcp remote 124.70.49.106 1194 resolv-retry infinite nobind ca ca.crt cert zhangsan.crt key zhangsan.key remote-cert-tls server tls-auth ta.key 1 cipher AES-256-CBC verb 3 compress lz4-v2
#将证书下载下来
root# cd /data/openvpn/client/
root# tar -zcvf zhangsan.tar.gz zhangsan
root# sz zhangsan.tar.gz
#win10 安装客户端(这里不演示了)
https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.5-I601.exe
#将 zhangsan.tar.gz 复制到 openvpn的config目录,然后点击链接
#双击运行
#这样表示链接成功了
#测试连接mysql数据库端口
官网下载地址:
openvpn 服务端下载地址:
https://swupdate.openvpn.org/community/releases/openvpn-2.5.6.tar.gz
openvpn 客户端下载地址:
https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.5-I601.exe
EasyRSA下载地址:
https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz
百度云盘下载地址:
链接:https://pan.baidu.com/s/1mRcz0MPGmN0uMzDn7JEpLQ
提取码:a134
看完觉得不错加个关注呗
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。