背景
最近需要深入学习下IPSEC VPN的相关知识,IPSEC协议簇主要又分位IKE和IPSEC两个阶段,通过手配xfrm, 可以忽略IKE,单独学习IPSEC二阶段的内容。
XFRM是 Linux 2.6 内核为安全处理引入的一个可扩展功能框架。不需要安装任何软件,纯净的centos系统就可以支持,我的测试环境使用的Centos7.5
拓扑设计
image2022-1-14_18-52-55.png
如上图,在VM1和VM2之间,使用10.20.2.4和10.20.2.5,打一个隧道模式的IPSEC隧道,使得192.168.0.1的容器和10.20.0.1的容器能够互通
具体配置
VM1上的配置
ip xfrm state add src 10.20.2.4 dst 10.20.2.5 proto esp spi 0xfadc8b2c mode tunnel auth sha1 0xf594d69f00cfcb61aca00d5e2c25fd238f7c5ef1 enc aes 0xe05064cee7c1803f8e901e9b6e732c35
ip xfrm state add src 10.20.2.5 dst 10.20.2.4 proto esp spi 0x77a87e3b mode tunnel auth sha1 0xce5e611b0fe05c65c50fa3ae379313252657c5c7 enc aes 0xd1f164ebad72e26f4f9bcc06ab0a6d56
ip xfrm policy add src 192.168.0.0/24 dst 10.20.0.0/16 dir in tmpl src 10.20.2.5 dst 10.20.2.4 proto esp mode tunnel
ip xfrm policy add src 192.168.0.0/24 dst 10.20.0.0/24 dir fwd tmpl src 10.20.2.5 dst 10.20.2.4 proto esp mode tunnel
ip xfrm policy add src 10.20.0.0/24 dst 192.168.0.0/24 dir out tmpl src 10.20.2.4 dst 10.20.2.5 proto esp mode tunnel
VM2上的配置
ip xfrm state add src 10.20.2.4 dst 10.20.2.5 proto esp spi 0xfadc8b2c mode tunnel auth sha1 0xf594d69f00cfcb61aca00d5e2c25fd238f7c5ef1 enc aes 0xe05064cee7c1803f8e901e9b6e732c35
ip xfrm state add src 10.20.2.5 dst 10.20.2.4 proto esp spi 0x77a87e3b mode tunnel auth sha1 0xce5e611b0fe05c65c50fa3ae379313252657c5c7 enc aes 0xd1f164ebad72e26f4f9bcc06ab0a6d56
ip xfrm policy add src 192.168.0.0/24 dst 10.20.0.0/16 dir out tmpl src 10.20.2.5 dst 10.20.2.4 proto esp mode tunnel
ip xfrm policy add src 10.20.0.0/24 dst 192.168.0.0/24 dir in tmpl src 10.20.2.4 dst 10.20.2.5 proto esp mode tunnel
ip xfrm policy add src 10.20.0.0/24 dst 192.168.0.0/24 dir fwd tmpl src 10.20.2.4 dst 10.20.2.5 proto esp mode tunnel
NAT场景
image2022-1-14_19-0-30.png
VM1上的配置
ip xfrm state add src 10.20.2.4 dst 106.12.172.53 proto esp spi 0xfadc8b2c mode tunnel auth sha1 0xf594d69f00cfcb61aca00d5e2c25fd238f7c5ef1 enc aes 0xe05064cee7c1803f8e901e9b6e732c35
ip xfrm state add src 106.12.172.53 dst 10.20.2.4 proto esp spi 0x77a87e3b mode tunnel auth sha1 0xce5e611b0fe05c65c50fa3ae379313252657c5c7 enc aes 0xd1f164ebad72e26f4f9bcc06ab0a6d56
ip xfrm policy add src 192.168.0.0/24 dst 10.20.0.0/24 dir in tmpl src 106.12.172.53 dst 10.20.2.4 proto esp mode tunnel
ip xfrm policy add src 192.168.0.0/24 dst 10.20.0.0/24 dir fwd tmpl src 106.12.172.53 dst 10.20.2.4 proto esp mode tunnel
ip xfrm policy add src 10.20.0.0/24 dst 192.168.0.0/24 dir out tmpl src 10.20.2.4 dst 106.12.172.53 proto esp mode tunnel
image2022-1-14_19-6-6.png
VM2上的配置
ip xfrm state add src 180.76.234.201 dst 10.20.2.5 proto esp spi 0xfadc8b2c mode tunnel auth sha1 0xf594d69f00cfcb61aca00d5e2c25fd238f7c5ef1 enc aes 0xe05064cee7c1803f8e901e9b6e732c35
ip xfrm state add src 10.20.2.5 dst 180.76.234.201 proto esp spi 0x77a87e3b mode tunnel auth sha1 0xce5e611b0fe05c65c50fa3ae379313252657c5c7 enc aes 0xd1f164ebad72e26f4f9bcc06ab0a6d56
ip xfrm policy add src 10.20.0.0/24 dst 192.168.0.0/24 dir in tmpl src 180.76.234.201 dst 10.20.2.5 proto esp mode tunnel
ip xfrm policy add src 10.20.0.0/24 dst 192.168.0.0/24 dir fwd tmpl src 180.76.234.201 dst 10.20.2.5 proto esp mode tunnel
ip xfrm policy add src 192.168.0.0/24 dst 10.20.0.0/24 dir out tmpl src 10.20.2.5 dst 180.76.234.201 proto esp mode tunnel
image2022-1-14_19-6-40.png
这种方式配置的IPSEC, SA不会老化,也无法抵御重放攻击,所以一般和IKE一起使用的方式来协商二阶段的IPSEC隧道