设为首页 收藏本站
查看: 1447|回复: 0

[经验分享] ASA Modular Policy Framework_04

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-4 10:37:10 | 显示全部楼层 |阅读模式
MPF


基本MPF架构介绍
class-map:什么流量,对流分类

    3-4层:源目ip,协议号,端口

    5-7层:应用层http ftp telnet

policy-map:添加多个类,为每个类做什么动作

     3-4层:较简单
    5-7层:限速,屏蔽关键字,比较复杂
service-policy:在哪里 匹配哪个class 执行哪个policy

class-map
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ASA(config)# class-map 3-4
ASA(config-cmap)# match ?

mpf-class-map mode commands/options:
  access-list                 Match an Access List
  any                         Match any packet
  default-inspection-traffic  Match default inspection traffic:
                              ctiqbe----tcp--2748      dns-------udp--53      
                              ftp-------tcp--21        gtp-------udp--2123,3386
                              h323-h225-tcp--1720      h323-ras--udp--1718-1719
                              http------tcp--80        icmp------icmp         
                              ils-------tcp--389       ip-options-----rsvp     
                              mgcp------udp--2427,2727 netbios---udp--137-138  
                              radius-acct----udp--1646 rpc-------udp--111      
                              rsh-------tcp--514       rtsp------tcp--554      
                              sip-------tcp--5060      sip-------udp--5060     
                              skinny----tcp--2000      smtp------tcp--25      
                              sqlnet----tcp--1521      tftp------udp--69      
                              waas------tcp--1-65535   xdmcp-----udp--177      
  dscp                        Match IP DSCP (DiffServ CodePoints)    //ip包中tos里的字段
  flow                        Flow based Policy            //定义流
  port                        Match TCP/UDP port(s)        
  precedence                  Match IP precedence
  rtp                         Match RTP port numbers     //语音流量(ip udp rtp video/audio)
  tunnel-group                Match a Tunnel Group      //IPSec的tunnel里每条流(流由上面的flow 定义)的流量



flow与tunnel-group示例:将tunnel里的每条流(以不同目的ip区分流)限速56k
wKioL1dgDMnBdJ0sAAEhQhlJrZ4090.jpg

policy-map
为每一个流量定义行为


    • 发送流量到AIP-SSM    //送往IPS 过滤检查是否有危险代码
    • 发送流量到CSC-SSM     //送往防病毒模块 查看是否有病毒
    • 发送Netflow信息        //将匹配的流量信息发到网管
    • Qos对流量优先处理        //优先级
    • Qos对流量进行police或shape处理    //限速
    • 运用层监控            
    • 配置高级连接设置        //最大连接数,半开连接等等

全局和每一个接口只能配置一个policy map

在一个policy map中,行为处理的顺序如下。
    QoS 入方向流量的policing
    高级连接设置
    CSC-SSM
    运用层监控
    AIP-SSM
    QoS 出方向流量的policing
    QoS 优先级队列

    QoS 流量shaping

Service Policy
1.运用policy map到一个接口,或者全局运用到所有接口
2.策略的方向基于policy map的运用
    每接口:归类和行为被运用到两个方向上
    全局:归类和行为被运用到所有接口的入方向

    policing(出入都可), shaping(出)和priority(出)例外


MPF对网管流量的控制
1.网络策略仅仅只控制穿越的流量
2.使用管理策略来控制抵达ASA的流量
3.只有一部分匹配功能可以使用
4.只有一部分行为可以使用


class-map

1
2
3
ASA(config)# class-map type management Management_Telnet_Traffic
ASA(config-cmap)# match port tcp eq telnet
ASA(config-cmap)# exit



policy-map

1
2
3
4
ASA(config)# policy-map inside       //这个inside是个名字,由于一个接口只能用一个policy,取名方便识别
ASA(config-pmap)# class Management_Telnet_Traffic        //添加一个类
ASA(config-pmap-c)# set connection conn-max 1 embryonic-conn-max 0 //动作:最大连接数为1,半连接数无限制
ASA(config-pmap-c)# exit



service-policy

1
2
3
4
ASA(config)# service-policy inside interface inside     //运用到接口:第一个inside是名字

ASA(config)# telnet 0 0 inside         //开启Telnet
ASA(config)# passwd cisco                //远程登录需要密码




MPF基本状态监控特性

ASA默认只对TCP/UDP流量进行状态监控,ICMP ping和ESP默认禁止
icmp:直接在默认全局policy里的class中加个inspect icmp
1
2
3
policy-map global_policy
class inspection_default
  inspect icmp



esp:ipsec分协商和加密,协商部分是UDP故能生成cnnection 表,但加密部分不能生成表项,故出去了回不来

1
2
3
4
5
6
7
8
access-list ESP extended permit esp any any

class-map ESP
  match access-list ESP
   
policy-map global_policy
  class ESP
    inspect ipsec-pass-thru




ASA会话超时
如果出现TCP连接关闭事件,或闲置超时事件,会话表项会被删除
等待SYN/ACK    超时时间30s  
半关闭      10分钟    tcp 是双向的,单向存在的时间
闲置时间     1小时     没数据包的连接 idle时间

Telnet的connection表项超时时间DCD
1
2
3
4
5
6
7
8
9
10
11
access-list global_mpc_1 extended permit tcp 10.1.1.0
  255.255.255.0 host 202.100.1.1 eq telnet
   
class-map Client-to-Server-Telnet
  match access-list global_mpc_1
   
policy-map global_policy
  class Client-to-Server-Telnet
    set connection timeout idle 4:00:00 reset dcd 0:15:00 5
    //超时后会清除connection表项  reset:清除表后还会向两边发送reset报文,使得两端也清除连接信息
    // dcd(探测邻居存活):每15分钟检测一次,5次超时则清除



ASA默认对穿越流量不减TTL,也可激活
(顺便提下,win的tracert发得是icmp报文,而路由器traceroute发的是UDP报文)
1
2
3
4
5
class-map Traceroute
  match access-list Traceroute        //acl抓包看看端口33434,自己对着写,记得放行流量
policy-map global_policy
  class Traceroute
    set connection decrement-ttl    //ttl减一



      穿越ASA 别人写的就是好..


MPF TCP规范化


ASA对IP分片的处理
1.缓存一个数据包的所有分片,直到所有分片被收齐。
2.确认分片被适当的切分。
3.重组装IP分片,并对其进行TCP规范化和运用层监控处理。

4.发送分片就和收到它们的时候一样
1
2
3
4
5
6
7
8
9
10
ASA(config)# fragment ?

configure mode commands/options:
  chain       Configure maximum number of elements in a fragment set //一个包最多 多少个分片
  reassembly  Configure reassembly option
  size        Configure maximum number of blocks in database  //每个接口最多缓存1000个分片
  timeout     Configure number of seconds to assemble a fragment set //一个包多少S内没有收到全部分片完成重组。则全部丢弃
ASA(config)# fragment size 1000 Outside
ASA(config)# fragment chain 24 Outside
ASA(config)# fragment timeout 5 Outside





MPF TCP规范化
1.确认遵循TCP协议,并且阻止逃避攻击
2.默认情况下,只是允许最小的TCP特性(option字段全部置1)
3.执行TCP初始化序列号扰乱以保护内部主机(防止会话挟持)

4.为上层监控提供对字节流的重组装

这会导致异步链路的一些链接建立失败(如tcp的握手):
wKiom1dibbyQlbq8AAC9_IZlPEw196.jpg
解决:采用TCP状态化旁路(TCP Bypass
   TCP Bypass用MPF归类特定流量,以访问控制列表对待这些流量,同时也关闭了ASA对这些流量的三层监控,认证代理和TCP规范化处理,故只能旁路可信流量


实验:TCP Bypass

wKiom1dimsGR21_-AABe3lq5Q1A537.jpg
inside的lo0访问DMZ的lo0口,走的是ospf过防火墙
1
DMZ(config)#ip route 7.7.7.7 255.255.255.255 10.0.0.72    //在DMZ上添加指向inside的lo0静态路由



当inside的lo0 Telnet DMZ的lo0时,去的包过防火墙而回来的包走的10.0.0.0网段,形成异步链路
Telnet默认是不通的: wKiom1dinHGxODuZAAAM_AAPgt8329.jpg
但可以ping,不受影响
1
2
3
4
5
6
7
8
9
ASA(config)# access-list tcpbypass permit tcp host 7.7.7.7 host 2.2.2.2 eq tel
ASA(config)# class-map tcpbypass
ASA(config-cmap)# match access-list tcpbypass
ASA(config-cmap)# exit
ASA(config)# policy-map tcpbypass
ASA(config-pmap)# class tcpbypass
ASA(config-pmap-c)# set connection advanced-options tcp-state-bypass
ASA(config-pmap-c)# exit
ASA(config)# service-policy tcpbypass interface inside



wKioL1dioOvDKuyUAAAOersDBQ4314.jpg
1
2
3
4
ASA(config)# show conn detail
Flags: B - initial SYN from outside, b - TCP state-bypass or nailed,
TCP DMZ: 2.2.2.2/23 inside: 7.7.7.7/55245,
    flags b , idle 3m47s, uptime 3m50s, timeout 1h0m, bytes 31



这种connection表项无法正常检测到链路是否终结,只能等超时清除

实验:BGP 穿越ASA
1
2
3
*Mar  1 01:08:35.219: %TCP-6-BADAUTH: No MD5 digest from 2.2.2.2(179) to 7.7.7.7(15325) (RST
//原由:经过bgp md5(tcp头部+密码+伪首部->hash)散列后的值会在bgp的报文中添加option为tcp的字段,type类型为19
    而ASA会将tcp type=19 的option字段全改成1了,并





MPF支持动态运用协议

Cisco ASA默认嗅探很多动态协议(FTP,HTTP),只需ACL放行初始化会话,ASA会自动放行后续会话


FTP:
高优先级 以主动模式访问 低优先级的FTP时
    第一信道:由高优先级先发起的,会建立connection会话,也能回来
    第二信道:由低先发起,但ASA已经嗅探到第一信道的port数据,根据port建立了对应的connection会话,所以第二信道能通

    但当FTP的端口不是21
    第一信道:高到低能建立conn
    第二信道:由于端口不是21,ASA并不知道是FTP,没有记录port信息,也就没有conn表项,低到高,通不了
1
2
3
4
5
class-map New-FTP
    match port tcp eq 2121    //FTP自定义端口
policy-map global_policy
    class New-FTP
        inspect ftp




    被动发起都是client,怎么都能通,除非client在低优先级,那么acl放行第一信道即可,如果不是21,第二信道也要放

wKiom1djv7SzLgx_AAGT1vqDZDc763.jpg wKioL1djwNSySHRjAAGsv9uFSww499.jpg
以下是做了PAT的FTP,ASA会修改port数据,ip,端口发给外网,自动建立conn和PAT表项


wKiom1djwAPAjK2FAAIuuIqkgn0518.jpg
wKiom1djwD3SGS8VAAJ1gzUhg28538.jpg wKioL1djwW-DoXJqAAJggo4onPk298.jpg


MPF运用层策略


DNS..............


配置MPF URL过滤
wKiom1dj61TDVsdOAAGD0PL7f9Y909.jpg
1
2
3
4
定义URL过滤服务器:
url-server (DMZ) vendor websense host 192.168.1.100
定义需要过滤的流量:
filter url http 10.1.1.0 255.255.255.0 0.0.0.0 0.0.0.0 allow //allow表示服务器挂了就放行



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
配置正则表达式:
regex Shrun "sh/run"
regex WWWCisco www.cisco.com
配置运用层监控类型的Class-Map:
class-map type inspect http match-all Match-HTTP-Class
match request header host regex WWWCisco
match not request uri regex Shrun
配置运用层监控类型的Policy-Map:
policy-map type inspect http Control-HTTP
parameters
protocol-violation action reset
class Match-HTTP-Class
reset
调用运用层监控类型的Policy-Map:
policy-map global_policy
class inspection_default
inspect http Control-HTTP



wKiom1dj1kGi5J5cAAGX7ynafco434.jpg
配置ESMTP运用层控制
1
2
3
4
5
6
7
8
9
配置运用层监控类型的Policy-Map:
policy-map type inspect esmtp Control-ESMTP
match header length gt 4096
reset
调用运用层监控类型的Policy-Map:
policy-map global_policy
class inspection_default
no inspect esmtp
inspect esmtp Control-ESMTP




MPF连接控制与TCP Intercept

1
2
3
4
5
6
7
access-list global_mpc extended permit tcp any host
  202.100.1.1 eq www
class-map Connection-Control
  match access-list global_mpc
policy-map global_policy
  class Connection-Control
    set connection conn-max 1000 embryonic-conn-max 600 per-client-max 10 per-client-embryonic-max 5



MPF实现QoS


有两种方式实现QoS:
    Policing:丢弃超时速率限制的流量;支持对一个接口出入流量配置;丢弃会造成TCP重传
    Shaping:缓存超过限制的流量;只支持对一个接口的出流量配置;缓存会减少TCP重传,但会造成抖动
    Priority Queuing:优先队列
Policing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
配置HTTP限速     内部接口入方向
class-map HTTP-Traffic
  match port tcp eq www
policy-map Inside-policy
  class HTTP-Traffic
    police input 1000000 1500
service-policy Inside-policy interface Inside


配置ICMP限速     外部接口出方向
access-list Outside_mpc extended permit icmp any any
class-map ICMP-Traffic
  match access-list Outside_mpc
policy-map Outside-policy
  class ICMP-Traffic
    police output 56000 1500
service-policy Outside-policy interface Outside



Shaping
1
2
3
4
5
出接口
policy-map Outside-policy
  class class-default
    shape average 10000000
service-policy Outside-policy interface Outside



Priority Queuing
1.Cisco ASA默认为一个接口收到的流量执行best‐effort队列
2.best‐effort队列是一个基于FIFO机制的服务
3.应该在一个接口为那些延时敏感的流量,例如:语音流量创建一个优
先级队列。
4.Cisco ASA在移动数据包到best‐effort队列之前,首先腾空优先级队列
5.使用Cisco MPF配置优先级队列

1
2
3
4
5
6
7
8
9
priority-queue Outside
  tx-ring-limit 128 (硬件队列 最大512)        //只有当硬件队列满了,设备发生拥塞了,才会使用到软件队列
  queue-limit 2048 (软件队列 最大2048)        //此队列机制都有各自的调度机制和丢弃机制
class-map VoIP
  match dscp ef            //通过dscp字段是否为ef判断语言
policy-map Outside-policy
  class VoIP
    priority
service-policy Outside-policy interface Outside



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-239214-1-1.html 上篇帖子: ASA访问控制列表与穿越用户认证_03 下篇帖子: ASA基于用户的MPF 、高级访问控 制和地址转换_05
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表