VPN简介

虚拟专用网络 Virtual Private Network

主要功能是在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。

VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。

VPN可通过服务器、硬件、软件等多种方式实现。

虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。

顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,目前在交换机,防火墙设备或WINDOWS2000等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。

用途

  1. 降低成本。VPN利用现有的互联网组建虚拟专网,不需要使用专用线路就能实现数据的安全传输,提供比其他通信方式(如专线和长途电话)更低廉的成本。

  2. 易于扩展。在公司分部增多、内部网络节点越来越多时,专线连接网络结构趋于复杂,费用昂贵。而采用VPN只需在节点处架设VPN设备,就可利用互联网建立安全连接。如果有新的内部网络想加入安全连接,只需添加一台VPN设备,改变相关配置即可。

  3. 保证安全。为了保障信息的安全,VPN利用可靠的加密认证技术,在内部网络建立隧道,以防止信息被泄露、篡改和复制。

分类

VPN的应用分类

  1. Access VPN(远程接入VPN):客户端到网关,使用公网作为骨干网在设备之间传输VPN数据流量

  2. Intranet VPN(内联网VPN):网关到网关,通过公司的网络架构连接来自同公司的资源

  3. Extranet VPN(外联网VPN):与合作伙伴企业网构成Extranet,将一个公司与另一个公司的资源进行连接。

VPN的隧道协议分类

  1. PPTP

工作在OSI模型的第二层,数据链路层,又称为二层隧道协议

  1. L2TP

工作在OSI模型的第二层,数据链路层

  1. IPSec

工作在OSI模型的第三层,网络层,又称为三层隧道协议

IPSec

简介

Internet Protocol Security,互联网安全协议,是通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议簇

随着Internet的飞速发展,IPSec的应用领域越来越广。与此同时,互联网安全问题也日趋严重,网络上的数据非常容易被他人恶意窃听和篡改。IPSec协议是一个标准的网络安全协议,也是一个开放标准的网络架构,通过加密以确保网络的安全通信。IPSec的作用主要包括确保IP数据安全以及抵抗网络攻击。

功能

  1. 数据机密性

IPSec发送方将包加密后再通过网络发送。

  1. 数据完整性

IPSec可以验证IPSec发送方发送的包,以确保数据传输时没有被改变。

  1. 数据认证

IPSec接受方能够鉴别IPsec包的发送起源。此服务依赖数据的完整性。

  1. 反重放

IPSec接受方能检查并拒绝重放包。

组成

  1. 认证头(AH),为IP数据报提供无连接数据完整性、消息认证以及防重放攻击保护;

  2. 封装安全载荷(ESP),提供机密性、数据源认证、无连接完整性、防重放和有限的传输流(traffic-flow)机密性;

  3. 安全关联(SA),提供算法和数据包,提供AH、ESP操作所需的参数。

  4. 密钥协议(IKE),提供对称密码的钥匙的生存和交换。

IPSec环境搭建(macOS)

1.Homebrew安装

Homebrew是一款Mac OS平台下的软件包管理工具

拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

Enter按下后显示如图界面,可选择任一镜像下载源

首次下载需要额外下载安装Git,并在成功安装后关闭重启MAC终端

或执行以下命令:

source /Users/admin/.profile

2.strongSwan安装

strongSwan是一个开源、基于IPsec的VPN解决方案

https://www.strongswan.org/
①安装

在MAC终端(terminal)输入如下命令:即可完成安装strongSwan

cd /usr/local
brew install strongswan

过程中需要输入MAC密码,输入显示为空,直接回车即可

②两种删除旧配置文件方法(任选其一)
  1. 使用终端命令

rm -f /usr/local/etc/ipsec.conf
rm -f /usr/local/etc/ipsec.secrets

  1. 文件夹内手动删除

#1.打开任意文件夹

#2.Command+shift +G

#3.输入/usr/local/etc,回车

#4.删除ipsec.conf和ipsec.secrets

确保删除后/usr/local/etc路径下没有ipsec.conf和ipsec.secrets两文件即可

③替换 swanctl.conf配置文件

控制 strongSwan 的工具有两种:starter 和 swanctl。

这里描述的过程是使用 swanctl 时的过程。

提供了配置文件模板,根据个人实际网络环境对应修改

connections {
  conn {
    proposals = aes128-sha2_384-prfsha256-modp3072
    version = 2
    remote_addrs = 192.168.10.88  # ★
    local {
      auth = psk
    }
    remote {
      auth = psk
    }

    children {
      home {
        esp_proposals = aes128-sha2_384-modp3072
        mode = transport
        start_action = trap
      }
    }
  }
}

secrets {
  ike2 {
    secret = "12345678" # ★
  }
}

①remote_addrs:为实际客户端设备IP

②secret:都行,八位以上,建议12345678

文件作成后,复制替换swanctl.conf

1.打开任意文件夹
2.Command+shift +G
3.输入/usr/local/etc/swanctl,回车
4.删除旧swanctl.conf
5.拖动复制提供的swanctl.conf模板

④验证是否安装成功

MAC终端(terminal)输入如下命令:

which swanctl

显示:/usr/local/bin/swanctl ,则表示安装完成

3.IPsec进程运行

①终端切换管理员Root身份

可能出现MAC终端默认用户权限不够无法启动进程的情况,故建议在进行下面流程前先切换root【管理员】身份

在MAC终端输入如下命令:

sudo -s

sudo su -

②启动IPsec的Charon主进程

Charon为strongSwan的主进程

负责IPSec SA的创建和更新操作

sudo /usr/local/Cellar/strongswan/5.9.6/libexec/ipsec/charon &

③载入Swanctl配置并运行
sudo swanctl --load-all

④查看IPsec连接状态
sudo swanctl --list-sa

将在成功连接PC Remote或FTP后开始显示Ping信息

否则在未连接 IPsec 时不显示任何内容

用完将IPsec关闭

在MAC终端(terminal)输入如下命令:

sudo kill `cat /var/run/charon.pid`