密码学应用
-
数字信封:结合对称和非对称加密,从而保证数据传输的机密性。
-
数字签名:采用散列算法,从而保证数据传输的完整性。
-
数字证书:通过第三方机构(CA)对公钥进行公证,从而保证数据传输的不可否认性。
VPN简介
-
虚拟专用网VPN(VirtualPrivateNetwork)是一种“通过共享的公共网络建立私有的数据通道,将各个需要接入这张虚拟网的网络或终端通过通道连接起来,构成一个专用的、具有一定安全性和服务质量保证的网络”。
-
虚拟:用户不再需要拥有实际的专用长途数据线路,而是利用Internet的长途数据线路建立自己的私有网络。
-
专用网络:用户可以为自己制定一个最符合自己需求的网络。
VPN分类
-
L3VPN
- 三层VPN主要是指VPN技术工作在协议栈的网络层。以IPSecVPN技术为例,IPSec报头与IP报头工作在同一层次,封装报文时或者是以IPinIP的方式进行封装,或者是IPSec报头与IP报头同时对数据载荷进行封装。
-
L2VPN
- 与三层VPN类似,二层VPN则是指VPN技术工作在协议栈的数据链路层,即数据链路层。二层VPN主要包括的协议有点到点隧道协议(PPTP,Point-to-Point Tunneling Protocol)、二层转发协议(L2F,Layer 2 Forwarding)以及二层隧道协议(L2TP,Layer 2 Tunneling Protocol)。
VPN的应用场景
-
Site-to-Site VPN
-
用于两个局域网之间建立连接。
-
可采用的VPN技术:IPSec、L2TP、L2TP over IPSec、GRE over IPSec、IPSec over GRE。
-
-
Client-to-Site VPN
-
用于客户端与企业内网之间建立连接。
-
可采用的VPN技术:SSL、IPSec、L2TP、L2TP over IPSec。
-
L2TP VPN简介
L2TP (Layer Two Tunneling Protocol) 二层隧道协议
为在用户和企业的服务器之间透明传输PPP报文而设置的隧道协议。提供了对PPP链路层数据包的通道(Tunnel)传输支持。
三种使用场景
NAS-Initiated VPN
LAC自动拨号
Client-Initiated VPN
Client-Initiated VPN方式L2TPVPN
Client-Initiated VPN隧道和会话建立过程
(1.a)LAC:发送SCCRQ报文,告知LNS使用1作为Tunnel
ID与其通信。一个LAC或LNS设备都可以同时简立多条隧道,不同的隧道用来传输不同的业务,使用Tunnel
ID来区分。L2TP隧道协商使用UDP+1701(目标端口)(1.b)LNS:返回SCCRP报文,告知LAC也使用1作为Tunnel ID与其通信
(1.c)LAC:发送SCCCN确认报文,隧道ID协商结束,L2TP VPN隧道建立完毕。
(2.a)LAC:发送ICRQ 报文,告知LNS使用81作为Session ID 与其通信。
(2.b)LNS:返回ICRP报文,告知LAC使用77作为Session ID与其通信
(2.c)LAC:发送ICCN确认报文。隧道双方Session ID协商结束,L2TP会话建立完毕
3.LAC与LNS建立PPP连接
LAC:发送LCP Request请求报文,协商链路层参数
LNS:返回LCP ACK确认报文
用户认证(PAP/CHAP)
LAC:发送PAP Request报文,请求LNS进行身份认证
LNS:返回认证结果PAP ACK报文,身份认证完成
认证通过后,(网络层参数协商)
LAC向LNS发送**IPCP **Request消息,请求LNS向其分配企业内网IP地址。
LNS向LAC返回IPCP ACK消息,在此消息中携带了为LAC分配的企业内网IP地址,PPP连接建立
-
Client-InitiatedVPN中,每个接入用户和LNS之间均建立一条隧道;每条隧道中仅承载一条L2TP会话和PPP连接。
-
L2TP隧道的呼叫建立流程
-
当接入用户拨号到LNS时,首先触发接入用户和LNS之间建立L2TP隧道。
-
L2TP隧道建立成功后,在隧道基础上建立L2TP会话。
-
LNS对用户进行认证。
-
用户与LNS之间建立PPP连接。
-
用户在PPP连接基础上,通过LNS访问内网资源。
-
配置Call-LNS场景下的L2TP VPN(本地认证)
配置步骤
- 配置LAC
1.配置接口IP地址,并将接口加入安全区域
sys
sys LAC
int g1/0/1
ip add 1.1.1.1 24
q
int g1/0/0
ip add 172.16.1.2 24
q
firewall zone untrust
add int g1/0/1
q
firewall zone trust
add int g1/0/0
q
2.配置L2TP功能。
如果LAC需要和多个LNS建立L2TP VPN隧道,请在start l2tp命令中指定多个LNS的IP地址。(start l2tp ip 1.1.1.2 ip 1.1.1.5 fullusername user0001
)
l2tp enable
l2tp-group 1
#l2tp组
tunnel name LAC
#设置隧道名称
start l2tp ip 1.1.1.2 fullusername user0001
#触发l2tp隧道建立的条件
tunnel authentication
#设置隧道认证
tunnel password cipher Hello123
q
3.配置VT(虚拟模板)接口。(用来完成PPP会话协商的相关功能)
interface Virtual-Template1
ppp authentication-mode chap
y
ppp chap user user0001
ppp chap password cipher Password123
ip address ppp-negotiate
#call-lns local-user user0001
#完成用户名的触发,完成拨号的条件
q
firewall zone dmz
add interface Virtual-Template1
q
4.配置路由
a.配置到总部内网服务器的路由,出接口为LAC上的VT接口。
ip route-static 10.2.2.0 24 Virtual-Template1
b.配置到Internet上的缺省路由,假设LAC通往Internet的下一跳IP地址为1.1.1.2。
ip route-static 0.0.0.0 0 1.1.1.2
5.配置出接口方式的源NAT策略。
LAC拨号成功后,LNS会生成一条目的地址是LAC VT口地址(LAC VT口地址是LNS从地址池分配出去的)的路由,且路由的下一跳地址也是LAC VT口的IP地址。LNS响应LAC内网的流量会按照该路由进入L2TP隧道转发。因此,LAC内网的报文在发往LNS前,需要将报文的源地址转换成LAC VT口的IP地址,经过了NAT转换,LNS响应LAC的内网流量才能正常返回。不做源NAT转换,会造成业务不通。
nat-policy
rule name p1
source-zone trust
egress-interface Virtual-Template1
#
source-address 10.1.1.0 mask 255.255.255.0
action source-nat easy-ip
6.配置LAC上的域间安全策略。
配置trust与dmz之间的安全策略,允许分支用户访问总部内网以及总部内网访问分支用户的双向业务流量通过。
security-policy
rule name service_trust_dmz
source-zone trust
destination-zone dmz
source-address 10.1.1.0 mask 255.255.255.0
destination-address 10.2.2.0 mask 255.255.255.0
action permit
q
配置从local到untrust方向的安全策略,允许L2TP报文通过。
rule name l2tp_local_untrust
source-zone local
destination-zone untrust
source-address 1.1.1.1 mask 255.255.255.255
destination-address 1.1.1.2 mask 255.255.255.255
service l2tp
action permit
- 配置LNS。
1.配置接口IP地址,并将接口加入安全区域。
sys
sys LNS
int g1/0/1
ip add 1.1.1.2 24
int g1/0/0
ip add 172.16.2.2 24
q
firewall zone untrust
add int g1/0/1
q
firewall zone trust
add int g1/0/0
q
2.配置地址池。
如果真实环境中地址池地址和总部内网地址配置在了同一网段,则必须在LNS连接总部网络的接口上配置虚拟转发功能,保证LNS可以对总部服务器发出的ARP请求进行应答。
ip pool pool
section 1 192.168.1.2 192.168.1.254
q
3.配置业务方案
aaa
service-scheme l2tp
#创建一个计划
ip-pool pool
q
4.配置认证域及其下用户。
a.配置认证域
如果需要对L2TP接入用户进行基于用户名的策略控制,认证域的接入控制必须包含internetaccess
aaa
domain default
service-type l2tp
q
b.配置分支用户及其对应的用户组。
aaa
user-manage group /default/branch
#创建一个组
q
user-manage user user0001
#创建一个用户
parent-group /default/branch
#将用户加入组
password Password123
q
5.配置VT接口
interface Virtual-Template1
ip address 192.168.1.1 255.255.255.0
#这个地址和地址池里的在同一个网段,但在不要再里面
ppp authentication-mode chap
y
remote service-scheme l2tp
#对应前面的“配置业务方案”
q
firewall zone dmz
add interface Virtual-Template1
q
6.配置L2TP Group
l2tp enable
l2tp-group 2
#这个编号可以和对端的一样,也可以不一样
allow l2tp virtual-template 1 remote LAC
#允许远程连接的,这个”LAC”是对端的隧道名称
tunnel authentication
tunnel password cipher Hello123
q
7.配置到Internet上的缺省路由,假设LNS通往Internet的下一跳IP地址为1.1.1.1。
ip route-static 0.0.0.0 0 1.1.1.1
8.配置LNS上的域间安全策略。
配置trust与dmz之间的安全策略,允许分支用户访问总部内网以及总部内网访问分支用户的双向业务流量通过。
security-policy
rule name service_dmz_trust
source-zone dmz
destination-zone trust
source-address 192.168.1.0 mask 255.255.255.0
destination-address 10.2.2.0 mask 255.255.255.0
action permit
q
q
配置从untrust到local方向的安全策略,允许L2TP报文通过。
security-policy
rule name l2tp_untrust_local
source-zone untrust
destination-zone local
destination-address 1.1.1.2 mask 255.255.255.255
service l2tp
ation-address 1.1.1.2 mask 255.255.255.255
service l2tp
action permit