企业内网神器OpenVPN


企业内网神器OpenVPN

文章插图
 
VPN详解一、VPN介绍
  1. 什么是vpn?
# VPN是虚拟专用网络的缩写,它是两个或多个物理网络(或设备)之间沟通互联网/公共网络创建的虚拟网络,可以为企业之间或者个人与企业之间提供安全(加密)的数据传输隧道服务 。
  1. vpn的作用是什么?
# vpn的功能主要就是帮助不在公司内部局域网内的人员可以通过数据加密的方式远程访问公司内部资源
  1. 两种基本的vpn类型
1. 远程访问vpn 允许用户远程连接到专用网络,通过完全安全的internet连接进行连接2. 站点到站点vpn 最常用的为公司与公司之间使用vpn,即可实现设在不同地点的公司之间进行数据共享
  1. 常见的vpn协议
PPTP(点对点隧道协议)
优:windows自带,无需安装,网络连接较为稳定
缺:安全性低,可以被防火墙阻止(不建议用于公司或商业用途)
L2TP/IPsec------PPTP升级版
优:安全性较之pptp高,windows自带,无需安装,可用于具有相同vpn配置的多个设备
缺:速度较慢(加密算法导致),不建议用于cpu性能较低的计算机 。
IKEv2/IPsec
优:速度加快;安全性较高;重连速度较快;与手机兼容性也较强(较适合用于手机)
缺:搭建较为困难,暂时支持的平台不是很多
OpenVPN
优:安全性较高;可配置性较强;可以绕过防火墙
缺:需要安装第三方软件;安装过程较为复杂;移动端支持较差(手机)
二、VPN部署
【企业内网神器OpenVPN】实验环境如下
公网IP:192.168.5.3
内网IP:172.16.5.3
主机名:server
---------------------------'openvpn安装'-------------------------------# 下载安装OpenVPN以及证书管理工具[root@server ~]# yum -y install openvpn[root@server ~]# yum -y install easy-rsa---------------------------'准备相关配置文件'-------------------------------# 生成服务器配置文件[root@server ~]# cp /usr/share/doc/openvpn-2.4.11/sample/sample-config-files/server.conf /etc/openvpn/# 准备证书签发相关文件[root@server ~]# cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa-server# 准备签发证书相关变量的配置文件[root@server ~]# cp /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/openvpn/easy-rsa-server/vars# 注意默认ca证书以及服务器证书有效期分别为3650天以及825天,可修改以下文件# ca证书修改#set_var EASYRSA_CA_EXPIRE3650set_var EASYRSA_CA_EXPIRE36500# 服务器证书修改 #set_var EASYRSA_CERT_EXPIRE825set_var EASYRSA_CERT_EXPIRE3650---------------------------'初始化PKI并生成PKi相关目录和文件'-------------------------------[root@server ~]# cd /etc/openvpn/easy-rsa-server/3[root@server 3]# ./easyrsa init-pki---------------------------'生成CA证书'-------------------------------[root@server 3]# pwd/etc/openvpn/easy-rsa-server/3# nopass代表不加密私钥,主要方便后面导出公钥与颁发服务器证书# 此步骤做完即在/etc/openvpn/easy-rsa-server/3/pki下生成了ca.crt证书[root@server 3]# ./easyrsa build-ca nopass# openssl x509主要用于输出证书信息,也能签署证书请求文件、自签署、转换证书格式等# -in 指定证书输入文件# -noount 默认out选项为指定输出文件,noout为默认不输出到文件# -text 以text格式输出证书内容,即以最全格式输出# 所以此项的内容为 格式化输出证书内容..[root@server 3]# openssl x509 -in pki/ca.crt -noout -text---------------------------'创建服务端证书申请'-------------------------------[root@server 3]# ./easyrsa gen-req server nopass'会有以下输出'Common Name (eg: your user, host, or server name) [server]:# 直接回车req: /etc/openvpn/easy-rsa-server/3/pki/reqs/server.req # 生成请求文件key: /etc/openvpn/easy-rsa-server/3/pki/private/server.key # 生成私钥文件---------------------------'签发服务端证书'-------------------------------[root@server 3]# ./easyrsa sign server server'会有以下输出'Confirm request details:# 输入yes回车# 生成服务器证书文件(server.crt)Certificate created at: /etc/openvpn/easy-rsa-server/3/pki/issued/server.crt[root@server 3]# diff pki/certs_by_serial/C27FBCEF83E7E2370D5E923F48618049.pem pki/issued/server.crt ---------------------------'创建Diffie-Hellman密钥'-------------------------------'以下方法二选一'方法一:[root@server 3]# pwd/etc/openvpn/easy-rsa-server/3# 此命令会生成/etc/openvpn/easy-rsa-server/3/pki/dh.pem文件[root@server 3]# ./easyrsa gen-dh方法二:# 此命令会生成/etc/openvpn/dh2048.pem文件[root@server 3]# openssl dhparam -out /etc/openvpn/dh2048.pem 2048---------------------------'客户端证书环境'-------------------------------[root@server pki]# cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa-client[root@server pki]# cp /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/openvpn/easy-rsa-client/3/varsa[root@server pki]# cd /etc/openvpn/easy-rsa-client/3# 初始化证书目录----client环境下[root@server 3]# pwd/etc/openvpn/easy-rsa-client/3[root@server 3]# ./easyrsa init-pki# 生成证书# 生成用户shilin的req以及key文件[root@server 3]# ./easyrsa gen-req shilin nopass'会有以下输出'Common Name (eg: your user, host, or server name) [shilin]: # 直接默认回车即可req: /etc/openvpn/easy-rsa-client/3/pki/reqs/shilin.req # 生成shilin.req文件key: /etc/openvpn/easy-rsa-client/3/pki/private/shilin.key # 生成shilin.key文件# 将客户端证书请求文件复制到CA的工作目录[root@server 3]# cd /etc/openvpn/easy-rsa-server/3[root@server 3]# ./easyrsa import-req /etc/openvpn/easy-rsa-client/3/pki/reqs/shilin.req shilin[root@server 3]# pwd/etc/openvpn/easy-rsa-server/3# 签发客户端证书,会生成/etc/openvpn/easy-rsa-server/3/pki/issued/shilin.crt文件,需输入yes[root@server 3]# ./easyrsa sign client shilin---------------------------'将ca和服务器证书相关文件复制到服务器响应目录'-------------------------------[root@server 3]# mkdir /etc/openvpn/certs[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/ca.crt /etc/openvpn/certs/[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/issued/server.crt /etc/openvpn/certs/[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/private/server.key /etc/openvpn/certs/[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/dh.pem /etc/openvpn/certs/[root@server 3]# ls /etc/openvpn/certs/ca.crtdh.pemserver.crtserver.key---------------------------'将客户端私钥与证书相关文件复制到服务器相关的目录'-------------------------------[root@server 3]# mkdir /etc/openvpn/client/shilin[root@server 3]# find /etc/openvpn/ ( -name "shilin.key" -o -name "shilin.crt" -o -name ca.crt ) -exec cp {} /etc/openvpn/client/shilin ;[root@server 3]# cd /etc/openvpn/client/shilin/[root@server shilin]# lsca.crtshilin.crtshilin.key


推荐阅读