博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASA防火墙外部web应用端口与默认审查协议相冲突的解决方法
阅读量:5979 次
发布时间:2019-06-20

本文共 2613 字,大约阅读时间需要 8 分钟。

.概述:

   今天QQ收到一位朋友的求助,如下环境,查看了ASA的配置,策略是全通,居然无法访问,也感到困惑。

161635441.jpg

   如是用GNS3搭建环境测试,在防火墙两侧进行抓包,发现TCP三次握手正常,但是位于防火墙内侧客户端发出的http get包却被防火墙丢弃了,用google 输入关键字:ASA tcp 2000搜到如下链接:

   终于明白:是因为ASA把访问外部http tcp 2000端口的流量当成了skinny协议的流量,而实际是http流量,因为两种协议流量的数据结构肯定不相同,所有当TCP三次握手完成后,后面的http应用的包被丢弃。如是进一步测试,测试分三种情况:

第一种是外部web应用的端口不在默认审查之列,比如TCP 8080

第二种是外部web应用的端口在审查之列,但是实际应用却没有这种流量,比如TCP 2000;

第三种是外部web应用的端口在审查之列,而默认审查的协议又需要开启的情况

二.测试拓扑:

三.基本配置:

A.PC1:

IP:10.1.1.8/24,GW:10.1.1.1

B.ASA842防火墙:

interface GigabitEthernet0

nameif Inside
security-level 100
ip address 10.1.1.1 255.255.255.0
no shut
interface GigabitEthernet1
nameif Outside
security-level 0
ip address 202.100.1.1 255.255.255.0
no shut

object network Inside-net

subnet 10.1.1.0 255.255.255.0

nat (Inside,Outside) dynamic interface

C.WebServer:

单网卡设置两个IP:202.100.1.100/24,202.100.1.101/24

上面运行IIS。

四.测试步骤:

A.外部web应用的端口不在默认审查之列,比如8080

这种情况不需要防火墙做额外配置,按照防火墙默认的访问规则,inside的PC1就可以直接通过http://202.100.1.100:8080访问outside的WebServer服务器。

B.外部web应用的端口在默认审查之列,但是实际应用却没有这种流量

比如外部web端口为2000,只需将默认的TCP 2000skinny协议审查取消:

policy-map global_policy

class inspection_default

no inspect skinny

这样Inside的PC1既可以通过http://202.100.1.100:2000访问Outside的WebServer服务器,也可以通过http://202.100.1.101:2000访问Outside的WebServer服务器

C.外部web应用的端口在默认审查之列,实际应用也有这种流量

比如外部web端口为TCP 2000,而实际情况TCP 2000 skinny协议流量也有,因此不能简单把默认的skinny审查干掉完事,

①如下方法不可行

access-list tcp2000web permit tcp  any host 202.100.1.101 eq 2000

class-map tcp2000web_traffic
 match access-list tcp2000web
class-map skinny_traffic
match port tcp eq 2000
policy-map global_policy
class inspection_default
  no inspect skinny
class tcp2000web-traffic
 inspect http
class skinny-traffic
 inspect skinny

-----------------------------------

ciscoasa# show service-policy

Global policy:
 Service-policy: global_policy
   Class-map: inspection_default
     Inspect: dns preset_dns_map, packet 0, drop 0, reset-drop 0
     .................省略部分.......
   Class-map: web2000
     Inspect: http, packet 4, drop 0, reset-drop 0
   Class-map: global_skinny
     Inspect: skinny , packet 4, drop 1, reset-drop 0
              tcp-proxy: bytes in buffer 0, bytes dropped 0
貌似同一条policy-map的前后class-map的执行关系,有点像接口和全局的policy-map的执行关系,如果审查通过,会被后面的执行:我访问的是http包,前面的Class-map: web2000审查通过了,但是后面的Class-map: global_skinny干掉了。

②如下方法可以:

access-list skinny extended deny tcp any host 202.100.1.100 eq 2000

access-list skinny extended permit tcp any any eq 2000
class-map skinny_traffic
match access-list skinny
policy-map global_policy
classinspection_default
 no inspect skinny
class skinny_traffic
 inspect skinny

这时Inside的PC1就可以通过http://202.100.1.100:2000访问Outside的WebServer服务器,但是不能通过http://202.100.1.101:2000(因为认证这个是skinny流量)

转载地址:http://htaox.baihongyu.com/

你可能感兴趣的文章
SCCM TP4部署Office2013
查看>>
redis主从配置<转>
查看>>
bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理...
查看>>
利用console控制台调试php代码
查看>>
讲解sed用法入门帖子
查看>>
Linux 内核已支持苹果
查看>>
shell脚本逻辑判断,文件目录属性判断,if,case用法
查看>>
【二叉树系列】二叉树课程大作业
查看>>
ASP.NET Core 2 学习笔记(三)中间件
查看>>
hbase region split源码分析
查看>>
MySQL备份之分库分表备份脚本
查看>>
Java 与 Netty 实现高性能高并发
查看>>
SurfControl人工智能新突破 领跑反垃圾邮件
查看>>
一个动态ACL的案例
查看>>
openstack 之 windows server 2008镜像制作
查看>>
VI快捷键攻略
查看>>
Win server 2012 R2 文件服务器--(三)配额限制
查看>>
卓越质量管理成就创新高地 中关村软件园再出发
查看>>
linux rsync 远程同步
查看>>
httpd的manual列目录漏洞
查看>>