分支机构员工安全访问总部内网,可与总部网关建立L2TP over IPSec隧道连接。员工通过使用PC上Windows自带的软件进行拨号,从而访问总部服务器。员工和总部网关都要经过NAT才能访问外网,要在IKE中开启NAT穿越功能。
说明:
本举例中进行拨号的LAC客户端自带软件,可以为PC的Windows XP、Windows 7系统或iPhone、iPad等的自带软件。在使用Windows XP、Windows
7系统自带软件进行拨号时,请先修改注册表项。
本举例中的PC使用的是缺省的CHAP认证方式,如果PC使用EAP认证方式,请在LNS侧增加RADIUS服务器,进行RADIUS相关配置,并在LNS的虚拟接口模板视图下执行ppp
authentication-mode eap命令,将认证方式配置为EAP。
组网需求
如图1所示,分支机构员工作为LAC客户端通过分支机构网关(USG_A)连接到Internet。且此员工由于没有安装拨号软件,只能使用Windows系统自带软件向LNS端进行拨号连接。总部网关有两个,一个是LNS端,另外一个(USG_B)作为NAT设备与外网相连。USG_A、USG_B和LNS之间路由可达。
由LAC客户端直接向LNS发起连接请求,先进行IPSec协商建立IPSec隧道,再进行L2TP协商对身份进行认证,建立L2TP over
IPSec隧道连接。LAC客户端与LNS之间的通讯数据需要通过隧道进行传输,先使用L2TP封装第二层数据,再使用IPSec对数据进行加密。
图1 客户端使用Windows系统自带软件通过L2TP over
IPSec接入总部组网图
项目 |
数据 |
说明 |
|
USG_A |
(1) |
接口号:GigabitEthernet 0/0/1 IP地址:10.1.1.1/24 安全域:Trust |
– |
(2) |
接口号:GigabitEthernet 0/0/2 IP地址:20.1.1.1/24 安全域:Untrust |
– |
|
NAT配置 |
NAT地址池:20.1.1.10/24~20.1.1.110/24 |
– |
|
USG_B |
(3) |
接口号:GigabitEthernet 0/0/2 IP地址:30.1.1.1/24 安全域:Untrust |
– |
(4) |
接口号:GigabitEthernet 0/0/1 IP地址:10.2.1.1/24 安全域:Trust |
– |
|
NAT |
外部访问的IP地址:30.1.1.10/24 |
– |
|
LNS |
(5) |
接口号:GigabitEthernet 0/0/1 IP地址:10.2.1.2/24 安全域:Untrust |
– |
Virtual-Template接口 |
接口号:Virtual-Template 1 IP地址:10.3.1.1/24 安全域:Trust |
– |
|
地址池 |
IP 地址范围:10.3.1.2/24~10.3.1.100/24 |
说明: 建议IP地址池中的地址与总部内网地址设置为不在同一网段。此时要实现拨入用户对总部服务器的访问,需在公司总部设备配置到达10.3.1.0/24网段的路由,下一跳地址为LNS设备连接总部的接口IP地址。 |
|
L2TP配置 |
认证方式:CHAP 隧道验证:禁用 用户认证域名:vpdnuser@domain1.com 用户认证密码:Hello123 |
说明: LAC客户端使用Windows操作系统自带的L2TP客户端软件拨号,不支持隧道验证,故需在LNS端关闭隧道验证功能。 |
|
IPSec配置 |
建立方式:策略模板 封装模式:传输模式 安全协议:ESP ESP协议验证算法:SHA1 ESP协议加密算法:3DES IKE协商模式:主模式 IKE的预共享密钥:abcde IKE验证身份类型:IP IKE加密算法:3DES-cbc IKE NAT穿越:开启 IKE版本:IKEv1、IKEv2 |
– |
|
LAC |
IP地址 |
10.1.1.2/24 |
– |
L2TP配置 |
认证方式:CHAP 用户认证域名:vpdnuser@domain1.com 用户认证密码:Hello123 |
||
IPSec配置 |
IKE的预共享密钥:abcde 对端地址:30.1.1.10 |
配置思路
1. 完成USG_A、USG_B和LNS网关的接口基本配置、安全域间包过滤配置和路由配置。
2. 分支机构员工使用Windows自带软件与总部进行L2TP over
IPSec隧道连接。由于建立隧道的两端都处于内网,故需要分别在两端网关配置NAT。在USG_A上配置源NAT,将LAC
Client的IP地址转化为公网地址;USG_B上配置NAT Server,将接口(5)的IP地址以公网地址形式提供给用户。
3. 配置LNS端的L2TP参数,包括创建虚拟接口模板、配置L2TP组参数等。
4. 在LNS创建用户名、密码,用于出差员工登录。并创建IP地址池,分配给登录的出差员工。
5. LNS端通过配置高级ACL规则组来定义需要保护的数据流,保护的数据流匹配L2TP的端口号1701。
6. 在LNS端配置IPSec安全提议、IKE安全提议和IKE对等体。
由于Windows自带软件只支持传输模式,LNS上也只能配置传输模式的IPSec建立隧道。
IPSec封装模式中,由于AH对整个IP都进行验证,NAT网关会改变IP头的地址,造成AH验证失败。而ESP只对IP负载进行验证,因而须在隧道两端采用ESP封装模式。
IPSec隧道要穿越NAT设备,需要在LNS网关的IKE对等体配置中需开启NAT穿越功能。
7. 由于出差员工的IP地址不固定,在LNS侧使用安全策略模板方式配置IPSec安全策略,并将IPSec安全策略应用到接口上。
8. 在LAC
Client端配置L2TP和IPSec。
配置IPSec时,对端地址为接口(5)的IP地址经NAT Server转换后的公网地址。配置L2TP参数,参数设置要和LNS端相对应。
操作步骤
1. 按照图1配置接口IP地址。具体配置过程略。
2. 将接口加入安全区域。
# 配置USG_A的接口加入安全域。
[USG] sysname USG_A
[USG_A] firewall zone trust
[USG_A-zone-trust] add interface GigabitEthernet
0/0/1
[USG_A-zone-trust] quit
[USG_A] firewall zone untrust
[USG_A-zone-untrust] add interface GigabitEthernet
0/0/2
[USG_A-zone-untrust] quit
# 配置USG_B的接口加入安全域。
[USG] sysname USG_B
[USG_B] firewall zone trust
[USG_B-zone-trust] add interface GigabitEthernet
0/0/1
[USG_B-zone-trust] quit
[USG_B] firewall zone untrust
[USG_B-zone-untrust] add interface GigabitEthernet
0/0/2
[USG_B-zone-untrust] quit
# 配置LNS的接口加入安全域。
说明:
Virtual-Template接口可以加入到任意一个安全区域。请开启LNS接收和发送L2TP隧道报文的实际物理接口(本例中为接口(5))所在安全区域和Local安全区域之间的包过滤。
[USG] sysname LNS
[LNS] firewall zone untrust
[LNS-zone-untrust] add interface GigabitEthernet
0/0/1
[LNS-zone-untrust] quit
[LNS] firewall zone trust
[LNS-zone-trust] add interface Virtual-Template 1
[LNS-zone-trust] quit
3. 对于USG系列,配置域间包过滤,以保证网络基本通信正常。对于USG
BSR/HSR系列,不需要执行此步骤。
4. 配置USG_A上基于源IP地址的NAT。
a. 创建NAT地址池1,地址范围为:20.1.1.10/24~20.1.1.110/24。
[USG_A] nat address-group index 1 20.1.1.10 20.1.1.110
b. 创建Trust区域和Untrust区域之间的NAT策略,确定进行NAT转换的源地址范围,并且将其与NAT地址池1进行绑定。
c.
[USG_A] nat-policy interzone trust untrust outbound
d.
[USG_A-nat-policy-interzone-trust-untrust-outbound] policy
0
e.
[USG_A-nat-policy-interzone-trust-untrust-outbound-0] policy
source 10.1.1.0 0.0.0.255
f.
[USG_A-nat-policy-interzone-trust-untrust-outbound-0] action
source-nat
g.
[USG_A-nat-policy-interzone-trust-untrust-outbound-0] address-group 1
h.
[USG_A-nat-policy-interzone-trust-untrust-outbound-0] quit
[USG_A-nat-policy-interzone-trust-untrust-outbound] quit
5. 配置USG_B上的NAT Server。
[USG_B] nat server global 30.1.1.1 inside 10.2.1.2
6.
配置LNS侧的L2TP和IPSec特性。
a. 配置LNS侧的L2TP特性。
#
创建并配置虚拟接口模板,并指定LNS端对用户的认证方式为CHAP认证。
[LNS] interface virtual-template 1
[LNS-Virtual-Template1] ip address 10.3.1.1
255.255.255.0
[LNS-Virtual-Template1] ppp authentication-mode
chap
[LNS-Virtual-Template1] quit
#
开启L2TP服务。
[LNS] l2tp enable
#
创建一个L2TP组,并将此组绑定虚拟接口模板。LAC客户端使用Windows操作系统自带的L2TP客户端软件拨号,不支持隧道验证,故在本端关闭隧道验证功能。
[LNS] l2tp-group 1
[LNS-l2tp1] allow l2tp virtual-template
1
[LNS-l2tp1] undo tunnel authentication
说明:
由于对端隧道名称无法设置,故此处使用缺省组1,即可不配置对端隧道名称。对端用户登录访问时,所有用户都在组1中进行认证。
# 配置域名后缀分隔符,即将@后面的字符识别为域名。
[LAC] l2tp domain suffix-separator @
#
创建认证方案,并设置认证方式为本地认证。
[LNS-aaa] authentication-scheme domain1
[LNS-aaa-authen-domain1] authentication-mode local
# 配置用户接入时的域名domain1.com,并引用认证方案domain1。
[LNS-aaa] domain domain1.com
[LNS-aaa-domain-domain1.com] authentication-schem domain1
#
配置给用户分配地址的地址池。
[LNS-aaa-domain-domain1.com] ip pool 1 10.3.1.2
10.3.1.100
[LNS-aaa-domain-domain1.com] quit
#
设置AAA用户名及密码,使用此用户名和密码登录的用户能够通过认证。
[LNS-aaa] local-user vpdnuser@domain1.com password cipher
Hello123
#
在虚拟接口模板上绑定地址池1,为对端接口分配IP地址池中的地址。
[LNS] interface virtual-template 1
[LNS-Virtual-Template1] remote address pool
1
[LNS-Virtual-Template1] quit
b. 配置LNS侧的IPSec特性。本端使用模板方式建立IPSec,接受对方发起的连接。
#
配置需保护的数据流。由于L2TP over IPSec是先对报文进行L2TP封装,再进行IPSec封装,故此处使用L2TP报文的端口1701作为匹配条件。所有经过了L2TP封装的报文都走IPSec隧道。
[LNS] acl number 3001
[LNS-acl-adv-3001] rule permit udp source-port eq 1701
[LNS-acl-adv-3001] quit
说明:
1701端口为LNS作为隧道响应端处理L2TP报文的源端口。
#
配置IKE安全提议,IKE加密算法为3DES-cbc,IKE DH组为DH-group2,与对端所支持情况相一致。其他参数使用缺省值。
[LNS] ike proposal 1
[LNS-ike-proposal-1] encryption-algorithm
3des-cbc
[LNS-ike-proposal-1] dh group2
[LNS-ike-proposal-1] quit
#
创建IKE对等体,使用主模式建立连接,引用IKE安全提议1,设置预共享密钥参数。NAT穿越功能缺省为开启,可以不配置。
[LNS] ike peer peer1
[LNS-ike-peer-peer1] ike-proposal 1
[LNS-ike-peer-peer1] pre-shared-key
abcde
[LNS-ike-peer-peer1] nat traversal
[LNS-ike-peer-peer1] quit
说明:
此处不用指定对端的名称或IP地址,可以接受多个对端发起的连接。
#
配置IPSec安全提议,设置封装模式为传输模式。ESP协议验证算法为SHA1,ESP协议加密算法为3DES,与LAC
Client所支持的算法相一致。其余参数使用缺省值。
[LNS] ipsec proposal p1
[LNS-ipsec-proposal-p1] encapsulation-mode
transport
[LNS-ipsec-proposal-p1] esp authentication-algorithm
sha1
[LNS-ipsec-proposal-p1] esp encryption-algorithm
3des
[LNS-ipsec-proposal-p1] quit
#
配置IPSec安全策略,本端使用模板方式建立IPSec安全策略,接收多个对端发起的连接。
[LNS] ipsec policy-template template1 1
[LNS-ipsec-policy-template-template1-1] ike-peer
peer1
[LNS-ipsec-policy-template-template1-1] proposal
p1
[LNS-ipsec-policy-template-template1-1] security acl
3001
[LNS-ipsec-policy-template-template1-1] quit
[LNS] ipsec policy policy1 1 isakmp template template1
#
在连接Internet的接口上应用安全策略。
[LNS] interface GigabitEthernet 0/0/1
[LNS-GigabitEthernet0/0/1] ipsec policy
policy1
[LNS-GigabitEthernet0/0/1] quit
7. 配置LAC
Client的拨号参数。以Windows XP系统自带软件拨号为例。
a. 修改Windows
XP系统的注册表项。Windows操作系统的L2TP功能缺省启动证书方式的IPSec,需要修改为本举例中需要的方式。
i. 在“开始 > 运行”中,输入regedit命令,单击“确定”,进入注册表编辑器。
ii. 在“注册表编辑器”页面的左侧导航树中,选择“我的电脑 >
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services >
IPSec”。
iii. 在菜单栏上选择“编辑 > 新建 > DWORD值”。
iv. 键入AssumeUDPEncapsulationContextOnSendRule,然后按“ENTER”,修改文件名称。
v. 右键单击AssumeUDPEncapsulationContextOnSendRule,选择“修改”,进入修改界面。
vi. 在“数值数据”框中键入2,表示可以与位于NAT设备后面的服务器建立安全关联。
vii. 单击“确定”。
viii. 选择“我的电脑 >
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > RasMan
> Parameters”。
ix. 在菜单栏上选择“编辑 > 新建 > DWORD值”。
x. 键入ProhibitIpSec,然后按“ENTER”,修改文件名称。
xi. 右键单击ProhibitIpSec,选择“修改”,进入修改界面。
xii. 在“数值数据”框中键入0。
xiii. 单击“确定”,并退出注册表编辑器。
xiv. 重新启动该PC,使修改生效。
b. 查看IPSec服务状态,保证IPSec服务开启。
i. 在“开始 > 运行”中,输入services.msc命令,单击“确定”,进入“服务”界面。
ii. 在“名称”一列中,查看“IPSEC
Services”的状态,确保状态为“已启用”。如果不为“已启用”,请右键单击“IPSEC
Services”,选择“属性”,在“属性”中设置“启动类型”为自动,单击“应用”。之后在“服务状态”中选择“启动”。
iii. 关闭“服务”界面。
c. 创建L2TP over
IPSec连接。
i. 在“开始 > 运行”中,输入control命令,单击“确定”,进入控制面板。
ii. 打开“网络连接”,在“网络任务”中选择“创建一个新的连接”,在弹出的界面中选择“下一步”。
iii. 在“网络连接类型”中选择“连接到我的工作场所的网络”,单击“下一步”。
iv. 在“网络连接”中选择“虚拟专用网络连接”,单击“下一步”。
v. 在“连接名”下的“公司名”文本框中设置公司名称或VPN服务器名称,本配置举例中设置为lns,单击“下一步”。
vi. 在“公用网络”中选择“不拨初始连接”,单击“下一步”。
vii. 在“VPN服务器选择”中填写LNS的IP地址,此处设置的IP地址为USG与Internet连接接口的IP地址,本配置例中为30.1.1.10,单击“下一步”。
viii. 在“可用连接”中选择“只是我使用”,单击“下一步”。
ix. 将“在我的桌面上添加一个到此连接的快捷方式”选中,单击“完成”。
x. 在弹出的对话框中,输入VPN用户名为vpdnuser@domain1.com,密码Hello123,与LNS端设置一致。如图2所示。
xi. 单击“属性”,在“lns属性”对话框中,单击“网络”页签,“VPN类型”选择“L2TP IPSec
VPN”。如图3所示。
xii. 单击“安全”页签,选择“高级(自定义设置)”,如图4所示。
xiii. 单击“设置”,在弹出的“高级安全设置”对话框中设置如图5所示,单击“确定”。
xiv. 在“安全”页签中,单击“IPSec设置”。在弹出的“IPSec设置”对话框中,选中“使用预共享的密钥作身份验证”,并输入密钥为abcde,与LNS端一致。如图6所示。
xv. 单击“确定”,返回至“lns属性”对话框。
xvi. 单击“确定”,完成设置,返回至图2。单击“连接”,发起隧道连接。
结果验证
1. LAC用户使用Windows系统自带软件进行拨号,拨号成功。拨号成功后,查看PC的IP地址,可以看到已经获取到位于10.3.1.2/24~10.3.1.100/24网段的IP地址,其缺省网关为Virtual-Template 1接口的IP地址,显示信息如下。使用PC访问总部内网服务器,发现可以访问成功。 2. C:\Documents and Settings\Administrator> ipconfig 3. 4. Windows IP Configuration 5. 6. 7. Ethernet adapter {1D873B6A-BAC3-4A99-A567-9F809EA3CE69}: 8. 9. Connection-specific DNS Suffix . : 10. IP Address. . . . . . . . . . . . : 10.3.1.2 11. Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.3.1.1 12. 当该VPN用户上线时,在LNS上执行display l2tp tunnel命令可看到隧道建立成功。下面RemoteAddress地址为LAC客户端地址经过NAT转换后的地址,由USG_A分配。 13. <LNS> display l2tp tunnel 14. Total tunnel = 1 15. LocalTID RemoteTID RemoteAddress Port Sessions RemoteName 1 1 20.1.1.10 65480 1 client1 16. 在LNS上执行display l2tp session命令可看到会话连接建立成功。 17. <LNS> display l2tp session 18. Total session = 1 19. LocalSID RemoteSID LocalTID 1 1 1 20. 在LNS上执行display ike sa和display ipsec sa brief命令可看到IKE和IPSec隧道建立成功。 21. <LNS> display ike sa 22. current ike sa number: 2 23. --------------------------------------------------------------------- 24. conn-id peer flag phase vpn 25. --------------------------------------------------------------------- 26. 101 20.1.1.10 RD v1:2 public 27. 100 20.1.1.10 RD v1:1 public 28. 29. flag meaning 30. RD--READY ST--STAYALIVE RL--REPLACED FD--FADING 31. TO--TIMEOUT TD--DELETING NEG--NEGOTIATING D--DPD 32. 33. <LNS> display ipsec sa brief 34. 35. current ipsec sa number: 2 36. current ipsec tunnel number: 1 37. -------------------------------------------------------------- 38. Src Address Dst Address SPI Protocol Algorithm 39. ------------------------------------------------------------------- 40. 20.1.1.10 10.2.1.2 142427840 ESP E:3DES;A:HMAC-SHA1-96; 10.2.1.2 20.1.1.10 52885424 ESP E:3DES;A:HMAC-SHA1-96;
配置脚本
· USG_A的配置脚本 · # · sysname USG_A · # · nat address-group index 1 20.1.1.10 20.1.1.110 · # · nat-policy interzone trust untrust outbound · policy 0 · action source-nat · policy source 10.1.1.0 0.0.0.255 · address-group 1 · # · interface GigabitEthernet0/0/1 · ip address 10.1.1.1 255.255.255.0 · # · interface GigabitEthernet0/0/2 · ip address 20.1.1.1 255.255.255.0 · # · firewall zone trust · set priority 85 · add interface GigabitEthernet0/0/1 · # · firewall zone untrust · set priority 5 · add interface GigabitEthernet0/0/2 · # · policy interzone local trust inbound · policy 1 · action permit · # · policy interzone local trust outbound · policy 1 · action permit · # · policy interzone local untrust inbound · policy 1 · action permit · policy destination 20.1.1.0 0.0.0.255 · # · policy interzone local untrust outbound · policy 1 · action permit · policy source 20.1.1.0 0.0.0.255 · # · policy interzone trust untrust inbound · policy 1 · action permit · policy destination 10.1.1.0 0.0.0.0.255 · # · policy interzone trust untrust outbound · policy 1 · action permit · policy source 10.1.1.0 0.0.0.0.255 · USG_B的配置脚本 · # · sysname USG_B · # · nat server 0 global 30.1.1.10 inside 10.2.1.2 · # · interface GigabitEthernet0/0/1 · ip address 10.2.1.1 255.255.255.0 · # · interface GigabitEthernet0/0/2 · ip address 30.1.1.1 255.255.255.0 · # · firewall zone trust · set priority 85 · add interface GigabitEthernet0/0/1 · # · firewall zone untrust · set priority 5 · add interface GigabitEthernet0/0/2 · # · policy interzone trust untrust inbound · policy 1 · action permit · # · policy interzone trust untrust outbound · policy 1 · action permit · LNS的配置脚本 · # · sysname LNS · # · l2tp domain suffix-separator @ · # · l2tp enable · # · acl number 3001 · rule 5 permit udp source-port eq 1701 · # · ike proposal 1 · encryption-algorithm 3des-cbc · dh group2 · # · ike peer peer1 · pre-shared-key %$%$U\zWG^*_4zY'uAgs\e:j'{r%$%$ · ike-proposal 1 · nat traversal · # · ipsec proposal p1 · encapsulation-mode transport · esp authentication-algorithm sha1 · esp encryption-algorithm 3des · # · ipsec policy-template template1 1 · ike-peer peer1 · proposal p1 · security acl 3001 · # · ipsec policy policy1 1 isakmp template template1 · # · interface GigabitEthernet0/0/1 · ip address 10.2.1.2 255.255.255.0 · ipsec policy policy1 · # · interface Virtual-Template1 · ppp authentication-mode chap · ip address 10.3.1.1 255.255.255.0 · remote address pool 1 · # · firewall zone trust · set priority 85 · add interface Virtual-Template 1 · # · firewall zone untrust · set priority 5 · add interface GigabitEthernet0/0/1 · # · l2tp-group 1 · allow l2tp virtual-template 1 · undo tunnel authentication · # · aaa · local-user vpdnuser@domain1.com password cipher %$%$Y04[AOxVsLu~@X%k|xy$ivmd%$%$ · authentication-scheme domain1 · # · domain domain1.com · authentication-scheme domain1 · ip pool 1 10.3.1.2 10.3.1.100 · # · policy interzone local untrust inbound · policy 1 · action permit · policy destination 10.2.1.0 0.0.0.255 · # · policy interzone local untrust outbound · policy 1 · action permit · policy source 10.2.1.0 0.0.0.255 · # · policy interzone trust untrust inbound · policy 1 · action permit · # · policy interzone trust untrust outbound · policy 1 · action permit · # · return
本文最后更新于 2020-01-08 20:19
请博主喝杯咖啡呢,谢谢^_^
如果本文“对您或有帮助”,欢迎随意打赏,以资鼓励继续创作!
原创文章《Windows自带客户端通过L2TP over IPSec接入总部》,作者:笔者 徐哲,未经允许不得转载。
转载或复制时,请注明出处:https://www.xuxiaokun.com/120.html,本文由 Mr.xu 博客网 整理。
本站资源下载仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。