本文参考华为官方文档介绍IPsec技术,并通过eNSP模拟部署IPsec实现企业两地互访。
由于在设计开发IPv4协议的过程中,IP报文本身并未考虑集成安全特性,所以在IP层很容易被恶意用户伪造IP地址、修改报文等。
而IPsec(Internet Protocol Security)框架则是IETF制定的用于解决IP层安全问题的技术,主要实现了数据加密、完整性验证、数据源验证、防重放4个特性。IPsec本身是一组协议服务的集合,主要包括了安全协议AH(Authentication Header,除了无法加密,可以实现其他安全特性)、ESP(Encapsulating Security Payload,提供了全部安全特性)和密钥管理交换协议IKE(Inernet Key Exchange)等。
备注:一般情况下,针对企业两地之间普通的IP流量,直接建立IPsec隧道即可。如果存在组播、广播和非IP报文,则需要先使用GRE将其封装为IP报文,再进行IPsec封装,常用于视频会议、动态路由协议消息等业务。本文主要实现最常见的企业两地之间内网普通数据报文的互通,不涉及GRE封装。
网络规划
-
企业内部办公网1,内网地址段为10.0.0.0/24,出口处部署防火墙使用公网地址100.100.100.2接入运营商链路。
-
企业内部办公网2,内网地址段为192.168.0.0/24,出口处部署防火墙使用公网地址200.200.200.2接入运营商链路。
-
运营商路由器R1,只进行公网IP地址段互联,不关心企业内部网络数据转发。
最终目标:两地办公网内部主机可以互相ping通对面,实现互访。
公网运营商路由器配置
这里简化了运营商的网络结构,由于使用的是路由器,默认有对直连网段的转发功能,故只需要配置接口地址即可看到两个网段之间的路由。
interface GigabitEthernet0/0/1 description To_QiYe_1 ip address 100.100.100.1 255.255.255.252 quit interface GigabitEthernet0/0/2 description To_QiYe_2 ip address 200.200.200.1 255.255.255.252 quit
可以从路由表看到,IPsec所传输的内网数据对运营商是透明不可见的:
办公区1的防火墙FW1完整配置
这里只涉及业务配置,不含其他通用开局(主机名、账号、NTP、SNMP等)
- 接口及IP配置
接口配置:
interface GigabitEthernet0/0/1 description Up_To_Internet ip address 100.100.100.2 255.255.255.252 quit interface GigabitEthernet0/0/8 description Down_To_BanGongWang ip address 10.0.0.1 255.255.255.0 quit
配置默认路由为外网接口的对面IP:
ip route-static 0.0.0.0 0.0.0.0 100.100.100.1
接口安全域指定:
firewall zone untrust add interface GigabitEthernet0/0/1 quit firewall zone trust add interface GigabitEthernet0/0/8 quit
- 进入trust到untrust区域out方向的策略视图:
nat-policy interzone trust untrust outbound
创建策略1,匹配到源为10.0.0.0/24网段目标为192.168.0.0/24网段的数据包,不进行NAT:
policy 1 policy source 10.0.0.0 0.0.0.255 policy destination 192.168.0.0 0.0.0.255 action no-nat
创建策略2,其他数据去往外网时,使用接口G0/0/1上的IP地址复用进行NAT:
policy 2 action source-nat easy-ip GigabitEthernet0/0/1 quit quit
- IKE配置
配置IKE的目的是由IKE自动协商来创建和维护安全联盟。创建IKE的安全提议1:
ike proposal 1
配置IKE认证方式为预共享密钥:
authentication-method pre-share
配置IKE认证算法为sha1:
authentication-algorithm sha1
配置IKE完整性算法:
integrity-algorithm aes-xcbc-96
配置IKE密钥协商使用的DH算法。这里简单回顾下,DH密钥交换算法是用于让双方在完全没有对方任何预先信息的条件下通过不安全信道建立起一个密钥(一般为对方的公钥和自己的私钥计算出的秘密整数),这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。这里选择强度为group2:
dh group2 quit
创建一个IKE对等体名字为FW2:
ike peer FW2
配置预共享密钥为123.abc:
pre-shared-key 123.abc
配置对等体的IP地址:
remote-address 200.200.200.2
调用IKE安全提议1:
ike-proposal 1 quit
- IPsec配置
做完准备工作,创建IPsec之前首先需要创建IPsec的安全提议,来指定将要使用的安全协议、认证和加密算法、协议报文的封装模式。创建一个IPsec安全提议:
ipsec proposal test
封装方式采用隧道:
encapsulation-mode tunnel
配置IPsec安全协议为ESP:
transform esp
配置ESP协议加密算法为aes:
esp encryption-algorithm aes
配置ESP协议认证算法:
esp authentication-algorithm sha1 quit
- 创建一个ACL,匹配内网交互的数据:
acl 3000 rule permit ip source 10.0.0.0 0.0.0.255 destination 192.168.0.0 0.0.0.255 quit
- 创建安全策略,绑定之前的对等体、安全提议和ACL,随后应用到接口
创建一个名称为map的安全策略:
ipsec policy map 1 isakmp
调用ike对等体:
ike-peer FW2
调用IPsec安全提议:
proposal test
匹配ACL:
security acl 3000 quit
在上行主口上,应用安全策略:
interface GigabitEthernet0/0/1 ipsec policy map quit
- 防火墙区域之间的安全策略配置
进入trust到untrust区域out方向策略视图:
policy interzone trust untrust outbound
创建策略1:
policy 1
允许trust区域所有主机访问untrust区域:
action permit quit quit
进入trust区域到untrust区域的in方向策略视图:
policy interzone trust untrust inbound
允许数据包源地址为192.168.0.0/24网段和目标地址为10.0.0.0/24网段的流量过:
policy 1 policy source 192.168.0.0 0.0.0.255 policy destination 10.0.0.0 0.0.0.255 action permit quit quit
进入local区域到untrust区域的in方向策略视图:
policy interzone local untrust inbound
允许源地址是200.200.200.2目标地址是100.100.100.2的数据包访问:
policy 1 policy source 200.200.200.2 0 policy destination 100.100.100.2 0 action permit quit quit
办公区2的防火墙FW2完整配置
两地防火墙除了IP地址不同,其他配置一一对应即可。如果不会配置,可参考文档附件(附件密码baiyeliuzhuan)。我是附件(^_−)
结果验证分析
可以看到,两地内网主机可以直接访问对端内网地址:
实际上,在这个过程中,两端内网机器的数据包在流经运营商时,看到的是两端防火墙的出口IP(也就是之前配置过程中指定的对等体IP),从而能够确保数据包在运营商链路上可以正常来回。当数据包到了两端的防火墙以后,由于包的头部并不是普通的NAT地址转换(这也就是为什么一开始的配置那里要防止内网交互的数据包被NAT),所以在解封装后可以看到原始的对面内网地址。附一张数据包的封装示意图。
评论列表,共 0 条评论
暂无评论