您好,登錄后才能下訂單哦!
MPF
基本MPF架構介紹
class-map:什么流量,對流分類
3-4層:源目ip,協議號,端口
5-7層:應用層http ftp telnet
policy-map:添加多個類,為每個類做什么動作
3-4層:較簡單
5-7層:限速,屏蔽關鍵字,比較復雜
service-policy:在哪里 匹配哪個class 執行哪個policy
class-map
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 h423-h325-tcp--1720 h423-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
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
ASA(config)# class-map type management Management_Telnet_Traffic ASA(config-cmap)# match port tcp eq telnet ASA(config-cmap)# exit
policy-map
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
ASA(config)# service-policy inside interface inside //運用到接口:第一個inside是名字 ASA(config)# telnet 0 0 inside //開啟Telnet ASA(config)# passwd cisco //遠程登錄需要密碼
ASA默認只對TCP/UDP流量進行狀態監控,ICMP ping和ESP默認禁止
icmp:直接在默認全局policy里的class中加個inspect icmp
policy-map global_policy class inspection_default inspect icmp
esp:ipsec分協商和加密,協商部分是UDP故能生成cnnection 表,但加密部分不能生成表項,故出去了回不來
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
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報文)
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.發送分片就和收到它們的時候一樣
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的握手):
解決:采用TCP狀態化旁路(TCP Bypass)
TCP Bypass用MPF歸類特定流量,以訪問控制列表對待這些流量,同時也關閉了ASA對這些流量的三層監控,認證代理和TCP規范化處理,故只能旁路可信流量
實驗:TCP Bypass
inside的lo0訪問DMZ的lo0口,走的是ospf過防火墻
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默認是不通的:
但可以ping,不受影響
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
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
*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表項,低到高,通不了
class-map New-FTP match port tcp eq 2121 //FTP自定義端口 policy-map global_policy class New-FTP inspect ftp
被動發起都是client,怎么都能通,除非client在低優先級,那么acl放行第一信道即可,如果不是21,第二信道也要放
以下是做了PAT的FTP,ASA會修改port數據,ip,端口發給外網,自動建立conn和PAT表項
MPF運用層策略
DNS..............
配置MPF URL過濾
定義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表示服務器掛了就放行
配置正則表達式: 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配置ESMTP運用層控制
配置運用層監控類型的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
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
配置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 OutsideShaping
出接口 policy-map Outside-policy class class-default shape average 10000000 service-policy Outside-policy interface Outside
Priority Queuing
1.Cisco ASA默認為一個接口收到的流量執行best‐effort隊列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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。