【×××系列十】关于如何处理混合环境下PPTP-×××流量的思考与处置
其中主要涉及两点:
1.两端路由器如何为pptp流量和其它流量,进行nat转换,保证通信正常
2.两端路由器配置的ZFW,如何放行pptp和其它通信转换后的流量,保证通信正常
----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
在配置nat之前,pptp客户端拨号时配置的远端ip地址是172.18.10.1(pptp server 真实地址),但是配置为nat之后,需要更改为center router的外网口ip地址,也就是200.0.30.2;否者,pptp拨号链接无效。
关键命令:
ip nat inside source static tcp 172.18.10.1 1723 interface s1/0 1723
如图:
如要更改为200.0.10.2(center router 外网口地址)
如图:
拨号成功:
center.router#show ip nat translationsPro Inside global Inside local Outside local Outside global tcp 200.0.10.2:1723 172.18.10.1:1723 172.18.101.3:50126 172.18.101.3:50126 tcp 200.0.10.2:1723 172.18.10.1:1723 172.18.101.3:50131 172.18.101.3:50131 tcp 200.0.10.2:1723 172.18.10.1:1723 --- --- gre 200.0.10.2:3399 172.18.10.1:3399 172.18.101.3:3399 172.18.101.3:3399 gre 200.0.10.2:64527 172.18.10.1:64527 172.18.101.3:64527 172.18.101.3:64527 udp 200.0.10.2:50824 172.18.100.102:50824 221.228.255.1:53 221.228.255.1:53
pptp.server#show vpdn %No active L2TP tunnels PPTP Tunnel and Session Information Total tunnels 1 sessions 1 LocID Remote Name State Remote Address Port Sessions VPDN Group 21945 estabd 172.18.101.3 50131 1 1 LocID RemID TunID Intf Username State Last Chg Uniq ID 3399 64527 21945 Vi2.1 xuchen estabd 00:00:16 3 |
spoke.router#show ip nat translationsPro Inside global Inside local Outside local Outside global gre 200.0.30.2:21210 172.18.101.3:21210 200.0.10.2:21210 200.0.10.2:21210 gre 200.0.30.2:26907 172.18.101.3:26907 200.0.10.2:26907 200.0.10.2:26907 tcp 200.0.30.2:50134 172.18.101.3:50134 200.0.10.2:1723 200.0.10.2:1723 udp 200.0.30.2:55197 172.18.101.3:55197 221.228.255.1:53 221.228.255.1:53 |
可以看到nat转换了pptp相关的TCP 1723端口与GRE 流量,所以pptp能够正常通信
那么防火墙该如何放行流量呢,其实也是类似的过程,只要放行与pptp进程相关联的流量,那么配置就是成功的。
关键也就是TCP 1723端口与GRE 流量
ip access-list extended pptp permit gre any any permit tcp any any eq 1723 |
class-map type inspect match-any in.out.class match protocol icmp match access-group name pptp.gre match protocol tcp match protocol udp class-map type inspect match-all out.in.class match access-group name pptp |
policy-map type inspect in.out.po class type inspect in.out.class pass class class-default drop policy-map type inspect out.in.po class type inspect out.in.class pass class class-default drop |
流量穿越防火墙之后,如下结果:
center.router#show policy-map ty inspect zone-pair se policy exists on zp out.in.pair Zone-pair: out.in.pair Service-policy inspect : out.in.po Class-map: all.traffic.class (match-any) Match: protocol icmp 0 packets, 0 bytes 30 second rate 0 bps Match: protocol tcp 1 packets, 32 bytes 30 second rate 0 bps Match: protocol udp 0 packets, 0 bytes 30 second rate 0 bps Inspect Number of Established Sessions = 1 Established Sessions Session 68A43F20 (200.0.30.2:50352)=>(172.18.10.1:1723) tcp SIS_OPEN/TCP_ESTAB Created 00:02:09, Last heard 00:00:08 Bytes sent (initiator:responder) [408:224] Class-map: pptp.class (match-all) Match: access-group name pptp Pass 176 packets, 13735 bytes
Class-map: class-default (match-any) Match: any Drop 0 packets, 0 bytes policy exists on zp in.out.pair Zone-pair: in.out.pair Service-policy inspect : in.out.po Class-map: all.traffic.class (match-any) Match: protocol icmp 0 packets, 0 bytes 30 second rate 0 bps Match: protocol tcp 3 packets, 600 bytes 30 second rate 0 bps Match: protocol udp 0 packets, 0 bytes 30 second rate 0 bps Inspect Class-map: pptp.class (match-all) Match: access-group name pptp Pass 37 packets, 1977 bytes Class-map: class-default (match-any) Match: any Drop 0 packets, 0 bytes policy exists on zp out.self.pair Zone-pair: out.self.pair Service-policy inspect : out.self.po Class-map: out.access.class (match-all) Match: access-group name out.access Pass 72 packets, 1592 bytes Class-map: pptp.class (match-all) Match: access-group name pptp Pass 0 packets, 0 bytes Class-map: class-default (match-any) Match: any Drop 5 packets, 400 bytes |
上面可以看到pptp 客户端拨号成功之后,所建立的链接信息,zfw防火墙的配置,关键在于三个方向:
1.inside 路由器入站流量
2.outside 路由器出站流量
3.self 路由器自身流量
配置类(class-map)的时候需要考虑好,对应方向应该放行哪些流量。
配置策略(policy-map)的时候需要考虑好,对应哪些流量应该执行哪些动作(inspect、pass、drop)。
结语:
上面基本上就完整实现了,pptp服务端到客户端的流量转变过程,主要是放行tcp1723与GRE流量。还有就是zfw是基于端口配置的防火墙技术,最重要的是选好zone端口,确认哪些端口属于哪个zone,多个端口可以同属于一个zone;同一个zone内的端口不需要配置策略就能相互通信;属于不同zone的端口,默认是deny相互的所有流量,所以需要配置策略放行流量;不属于zone的端口,流量不受影响。所以说zfw是基于端口的防火墙策略,所以这一步相当重要。