easy***是日常中比较常见的一种×××解决方案,虽其只能应用在cisco的设备上,但对于移动办公来说,是一种非常实用且对环境要求比较低的方案。客户端只需用连上网就可,不需要考虑固定IP,或者是否加了NAT等因素。

  刚好手头上有多余的cisco设备,于是开始实验easy×××.(以下实验皆为真机)

先在纸上画好了拓扑图,标注好IP,拓扑如下:


165325866.jpg

按照拓扑图 连好ASA5520 C2811和C2851再连上两台电脑。

1.开始最基本的网络设置

   ASA5520

int e0/1

ip add 10.9.30.1 255.255.255.0

nameif inside

security-level 100

int e0/0

ip add 202.96.127.85 255.255.255.0

nameif ouside

security-level 0


2811

int f0/0

ip add 202.96.127.86 255.255.255.0

no shut

int f0/1

ip add 202.96.128.86 255.255.255.0

no shut


2851

int G0/1

ip add 202.96.128.85 255.255.255.0

no shut

int G0/0

ip add 192.168.1.1 255.255.255.0

no shut


设好后,再加上默认路由

ASA5520

route ouside 0.0.0.0 0.0.0.0 202.96.127.86 1

2851

ip route 0.0.0.0 0.0.0.0 202.96.128.86

为了模拟现实中的环境 还得在2851上做PAT

2851


access-list 1 permit any

ip nat inside source list 1 interface g0/1 overload

测试连通性 192.168.1.10到 202.96.127.85 成功

测试连通性 10.9.30.158到202.96.128.85   不通
查找原因:1. 在asa上ping 202.96.128.85 通过,说明路由与连线都正常。
                    2.用10.9.30.158 ping 直连网关10.9.30.1 通过。
                   3.想起默认高安全访问低安全是允许的 但是ASA只是记录TCP与UDP状态包,对ICMP ,ESP这样的包不记录状态,也就是说返回时被outside拒绝.于是加上
                       access-list out-in extended permit icmp any any
                       access-group out-in in interface ouside
                      再用 10.9.30.158到202.96.128.85 仍然不通
                    4.仔细检查配置,发现没有做nat 。
                       nat (inside) 1 10.9.30.0 255.255.255.0
                       global (ouside) 1 202.96.127.80 netmask 255.255.255.0
                    5.再测试 成功。
接下来配置easy***
ip local pool ***pool 192.168.100.1-192.168.100.100
access-list split extended permit ip 10.9.30.0 255.255.255.0 any
crypto ipsec transform-set myset esp-des esp-md5-hmac
crypto dynamic-map dymap 10 set transform-set myset
crypto map easy***-map 10 ipsec-isakmp dynamic dymap
crypto map easy***-map interface ouside
crypto isakmp policy 10
 authentication pre-share
 encryption 3des
 hash md5
 group 2
crypto isakmp enable ouside
group-policy easy***-policy internal
group-policy easy***-policy attributes
split-tunnel-policy tunnelspecified
split-tunnel-network-list value split
username cisco password cisco
username cisco attributes
  ***-group-policy easy***-policy
  password-storage enable
tunnel-group sz*** type remote-access
tunnel-group sz*** general-attributes
address-pool ***pool
tunnel-group sz*** ipsec-attributes
pre-shared-key 123456
这样配好后在192.168.1.10这台主机上装好cisco *** client 填好参数

185346389.jpg

连接成功,获取到ip地址192.168.100.1 。

我以为大功告成,于是在10.9.30.158上共享了一个目录,此目录证实可以在局域网内访问(目的是为了排除共享设置上的错误),再用192.168.1.10主机访问共享,结果是:找不到网络路径

再次检查所有配置:1.中间路由,已通,从192.168.1.10 到ASA的outside是通的。

                                     2.加密设置正确。显示有加解密数据包(步骤1的ping包)

                                     3.192.168.1.10到10.9.30.158 不通。说明问题出在防火墙上。用debug  icmp trace 跟踪,不显示任何数据。检查ACL列表,已放行icmp流量,默认启用了sysopt connection permit-*** 难道是easy***和其他***在ACL上有区别?于是加上

access-list out-in extended permit ip 192.168.100.0 255.255.255.0 10.9.30.0 255.255.255.0

还是不能访问。

再次怀疑常识,难道是源地址有误,easy***源地址是用的对方内网地址?于是加上

access-list out-in extended permit ip 192.168.1.0 255.255.255.0 10.9.30.0 255.255.255.0

还是不能访问。

仔细梳理数据包走向,从客户端出发的数据包,经过*** client 封装后发给2851,这时数据包加密并增加源地址192.168.100.1 目的IP 202.96.127.85 。2851找查路由,于是NAT成源地址202.96.128.85后发给2811。2811查找路由后发给ASA5520.
ASA5520的outside.先解密后 发现是传给10.9.30.0网段,且源地址是192.168.100.1 查找路由后与nat项后,发现并没有NAT项,于是直接扔掉.(默认防火墙开通nat-control)。
 问题找到了,因为防火墙默认是只有nat后的流量才能通过.这里并不能用no nat-control解决问题
原因是命令里开启了PAT功能,主机10.9.30.158回应数据包,源地址是10.9.30.158 目的地址是192.168.100.1 ,因为easy***连接成功后,asa会自动增加一条指向静态路由与ACL。而Inside数据发给outside数据 时nat的优先级是大于加密的。于是ouside收到一个源为202.96.127.80 目的地址为192.168.100.1的数据包,此数据包并没有触发加密(状态记录,可以理解成自动增加的ACL感兴趣流量)直接发给了2811 。2811收到数据包后,发现并没有192.168.100.1的路由,于是丢弃了。
 理清后,在asa上加上了
access-list ***acl extended permit ip 10.9.30.0 255.255.255.0 192.168.100.0 255.255.255.0
nat (inside) 0 access-list ***acl
成功访问。
为了验证源数据包是ip 192.168.100.1 在asa上no sysopt connection permit-***
并删掉了
access-list out-in extended permit ip 192.168.100.0 255.255.255.0 10.9.30.0 255.255.255.0
后,访问被拒绝了。说明easy***和其他***一样,封装数据并采用自已的IP头。
解说 sysopt connection permit-*** 是表示***流量不经过端口ACL检查,默认防火墙是打开的。