目录
前言:openvpn不符合博客内容要求,所以不对。
VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,OpenVPN无疑是Linux下开源VPN的先锋,提供了良好的性能和友好的用户GUI。
(1) 配置epel源
mkdir /tmp/openvpncd /tmp/openvpnwget https://repo.huaweicloud.com/epel/epel-release-latest-7.noarch.rpmrpm -ivh epel-release-latest-7.noarch.rpmyum update
(2) 安装依赖
yum install -y openssl lzo pam easy-rsa
yum源安装openvpn
yum install openvpn
(3) 源码安装openvpn(可选)
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/lzo-2.06-8.el7.x86_64.rpmwget http://mirror.centos.org/centos/7/os/x86_64/Packages/lzo-devel-2.06-8.el7.x86_64.rpmwget http://mirror.centos.org/centos/7/os/x86_64/Packages/lzo-minilzo-2.06-8.el7.x86_64.rpmyum update lzo-2.06-8.el7.x86_64.rpm lzo-minilzo-2.06-8.el7.x86_64.rpmyum install lzo-devel-2.06-8.el7.x86_64.rpmyum install -y lz4-devel wget https://swupdate.openvpn.org/community/releases/openvpn-2.4.6.tar.gztar -zxvf openvpn-2.4.6.tar.gzcd openvpn-2.4.6./configuremake make install
默认安装位置:/usr/local/sbin/openvpn
2.1 CA证书
查看easy-rsa路径,以3.0版本为例,
whereis easy-rsa
cd /usr/share/easy-rsa/3./easyrsa init-pki
./easyrsa build-ca
记住输入的密码(pass phrase),后续签名需要使用。
2.2 Server证书
下面的$EntityName就是给server取个名字,注意前后统一就行,比如都叫server。
cd /usr/share/easy-rsa/3./easyrsa gen-req $EntityName nopass
签名证书
./easyrsa sign-req server $EntityName
生成Diffie-Hellman
./easyrsa gen-dh
最终目录结构如下:
2.3 客户端证书
另外创建一个目录用于存放client证书
mkdir -p /tmp/openvpn/client1cd /tmp/openvpn/client1/usr/share/easy-rsa/3/easyrsa init-pki/usr/share/easy-rsa/3/easyrsa gen-req client1
记录输入的密码,client登录时使用
签名client证书:
cd /usr/share/easy-rsa/3/./easyrsa import-req /tmp/openvpn/client1/pki/reqs/client1.req client1
./easyrsa sign-req client client1
这里输入的制作CA证书时的密码。
客户端证书pki目录如下:
2.4 归档证书
将server证书放在同一个目录下
mkdir /etc/openvpncp /usr/share/easy-rsa/3/pki/ca.crt /etc/openvpn/cp /usr/share/easy-rsa/3/pki/private/server.key /etc/openvpn/cp /usr/share/easy-rsa/3/pki/issued/server.crt /etc/openvpn/cp /usr/share/easy-rsa/3/pki/dh.pem /etc/openvpn/
客户端需要的文件:
mkdir /tmp/client1cp /usr/share/easy-rsa/3/pki/ca.crt /tmp/client1/cp /usr/share/easy-rsa/3/pki/issued/client1.crt /tmp/client1/cp /tmp/openvpn/client1/pki/private/client1.key /tmp/client1/
3.1 配置服务端
如果没有默认配置文件可以从源码包拷贝一份
cp /tmp/openvpn/openvpn-2.4.6/sample/sample-config-files/server.conf /etc/openvpn
vim /etc/openvpn/server.conf如果是yum源安装则配置路径在这/usr/share/doc/openvpn-2.4.6/sample/sample-config-files/server.conf
server.conf配置文件如下
local 192.168.1.5 #云主机内网ipport 11094proto tcpdev tunca ca.crtcert server.crtkey server.keydh dh.pemauth SHA512#tls-crypt tc.keytopology subnetserver 10.8.0.0 255.255.255.0push "redirect-gateway def1 bypass-dhcp"ifconfig-pool-persist ipp.txtpush "dhcp-option DNS 192.168.1.2"client-to-clientkeepalive 10 120cipher AES-256-CBCuser nobodygroup nobodypersist-keypersist-tunverb 3#crl-verify crl.pem
service openvpn@server start
源码安装的可能没有启动脚本,可以从源码里面拷贝一份:
cp /tmp/openvpn/openvpn-2.4.6/distro/systemd/openvpn-server@.service.in /usr/lib/systemd/system/openvpn-server.servicevim /usr/lib/systemd/system/openvpn-server.service
修改启动命令:
systemctl enable openvpn@serversystemctl start openvpn@server
ifconfig 可以看到多了一个tun0的网卡设备,ip是10.8.0.1
netstat -unlp可以查看监听的端口,我这里没有使用默认的1194端口
3.2 windows客户端配置
下载安装包 如openvpn-install-2.4.9-I601-Win10.exe
安装后,将ca.crt、client1.crt、client1.key拷贝到openvpn安装目录下的config目录下;
然后将安装目录sample-config/client.ovpn拷贝到config目录下,
client.ovpn内容如下:
clientdev tunproto tcpremote 175.6.40.67 11094resolv-retry infinitenobindpersist-keypersist-tunremote-cert-tls serverauth SHA512cipher AES-256-CBC#ignore-unknown-option block-outside-dns #注释该行,解决开启vpn不能外网的问题#block-outside-dns #注释该行,解决开启vpn不能外网的问题verb 3route-nopull #解决开启vpn不能外网的问题ca ca.crtcert client1.crtkey client1.key
然后打开./bin/openvpn-gui.exe,输入制作client证书时输入的密码即可连接成功
给其它同事开通vpn权限:从2.3开始生成证书即可
来源地址:https://blog.csdn.net/zzchances/article/details/123862632