实验拓扑:

1,网络设备和网段以及IP地址如拓扑所示

ASA上的配置:

ciscoasa(config)# hostname ASA

ASA(config)# int g0

ASA(config-if)# ip add 202.100.1.10 255.255.255.0

ASA(config-if)# nameif outside

ASA(config-if)# no sh

ASA(config-if)# int g1

ASA(config-if)# ip add 10.1.1.10 255.255.255.0

ASA(config-if)# nameif inside

ASA(config-if)# no sh

ASA(config-if)# int g2

ASA(config-if)# ip add 172.16.1.10 255.255.255.0

ASA(config-if)# nameif dmz

ASA(config-if)# security-level 50

ASA(config-if)# no sh

ASA(config)# http server enable

ASA(config)# http 0 0 inside

ASA(config)# route outside 0 0 202.100.1.1

OuT-R1上的配置:

OUT-R1(config)#int f0/0

OUT-R1 (config-if)#ip add 202.100.1.1 255.255.255.0

OUT-R1 (config-if)#no sh

OUT-R1 (config)#ip route 0.0.0.0 0.0.0.0 202.100.1.10

OUT-R1 (config)#line vty 0 4

OUT-R1 (config-line)#pass zhangliang

OUT-R1 (config-line)#login

IN-R1上的配置

IN-R1(config)#int f0/0

IN-R1(config-if)#ip add 10.1.1.1 255.255.255.0

IN-R1(config-if)#no sh

IN-R1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.10

IN-R1(config)#line vty 0 4

IN-R1(config-line)#pass zhangliang

IN-R1(config-line)#login

DMZ上的配置:

DMZ-R1(config)#int f0/0

DMZ-R1(config-if)#ip add 172.16.1.1 255.255.255.0

DMZ-R1(config-if)#no sh

DMZ-R1(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.10

DMZ-R1(config)#line vty 0 4

DMZ-R1(config-line)#pass zhangliang

DMZ-R1(config-line)#login

测试初始化设备的正确性

2,各设备初始化完毕后,完成如下需求:

A,在不适用ACL的前提下,是的IN-R1能够pingOUT-R1

直接在global-policy里的class inspection-default里添加监控icmp

ASA(config)# policy-map global_policy

ASA(config-pmap)# class inspection_default

ASA(config-pmap-c)# inspect icmp

测试:

B,限制由outside接口进入的网管ASASSH流量,最大连接数为1

开启ASASSH网管功能

ASA(config)# domain-name qytang.com

ASA(config)# crypto key generate rsa

ASA(config)# ssh 202.100.1.1 255.255.255.255 outside

ASA(config)# username zhangliang pass zhangliang privilege 15

ASA(config)# aaa authentication ssh console LOCAL

MPFSSH网管流量的控制

ASA(config)# class-map type management outside.ssh

ASA(config-cmap)# match port tcp eq ssh

ASA(config-cmap)# policy-map outside.policy

ASA(config-pmap)# class outside.ssh

ASA(config-pmap-c)# set connection conn-max 1

ASA(config-pmap-c)# service-policy outside.policy int outside

B,限制由inside接口进入的网管ASATelnet/ASDM的流量,最大连接数分别为23

开启ASATelnet

ASA(config)# telnet 10.1.1.0 255.255.255.0 inside

MPFTelnet网管和https流量的控制

ASA(config)# class-map type management inside.telnet

ASA(config-cmap)# match port tcp eq telnet

ASA(config)# class-map type management inside.https

ASA(config-cmap)# match port tcp eq https

ASA(config-cmap)# policy-map inside.policy

ASA(config-pmap)# class inside.telnet

ASA(config-pmap-c)# set connection conn-max 2

ASA(config-pmap)# class inside.https

ASA(config-pmap-c)# set connection conn-max 3

ASA(config-pmap-c)# service-policy inside.policy int inside

并发Telnet,Ctrl+shift+6,然后X

激活ASA的日志功能

Logging enable

Logging asdm information

然后断掉并发连接

C,OUT-R1去往DMZ-R1Telnet流量设置idle timeoutone hour,并启用DCD(dead-connection detection)

先写一条命名的扩展的访问控制列表

ASA(config)# access-list out.telnet.traffic ex permit tcp host 202.100.1.1 host 172.16.1.1 eq telnet

CLASS-MAP中调用

ASA(config)# class-map out.telnet.class 

ASA(config-cmap)# match access-list out.telnet.traffic

在全局global-policy调用class-map

ASA(config-cmap)# policy-map global_policy

ASA(config-pmap)# class out.telnet.class

设置idle timeout1小时

ASA(config-pmap-c)# set connection timeout idle 1:00:00 dcd

D,OUT-R1通过tracerouteIN-R1,ASA的出现在traceroute.

先允许从outside接口进入的UDP端口大于33433的流量

(traceroute33434开始)

ASA(config)# access-list out extended permit udp any any gt 33433

ASA(config)# access-group out in int outside

在全局global-policy中激活ASA ttl递减功能

ASA(config)# policy-map global_policy      

ASA(config-pmap)# class class-default

ASA(config-pmap-c)# set connection decrement-ttl

测试:ASA出现在了traceroute

3,BYPASS源自内网去往202.100.1.0/24TCP状态化监控,解决OUT-R1IN-R1之间EBGPMD5认证穿越防火墙问题

TCP状态化监控:

ASA(config)# access-list bypass.tcp ex permit tcp 10.1.1.0 255.255.255.0 202.100.1.1.0 255.255.255.0

ASA(config)# class-map bypass.class

ASA(config-cmap)# match access-list bypass.tcp

ASA(config-cmap)# policy-map global_policy

ASA(config-pmap)# class bypass.class

ASA(config-pmap-c)# set connection advanced-options tcp-state-bypass

解决EBGP MD5认证穿越防火墙,先把BGP流量放了

ASA(config)# access-list out permit tcp host 202.100.1.1 host 10.1.1.1 eq 179

BGP预配:

OUT-R1(config)#router bgp 100

OUT-R1(config-router)#no synchronization

OUT-R1(config-router)#bgp log-neighbor-changes

OUT-R1(config-router)#neighbor 10.1.1.1 remote-as 200

OUT-R1(config-router)#neighbor 10.1.1.1 pass zhangliang

OUT-R1(config-router)#neighbor 10.1.1.1 ebgp-multihop 255

OUT-R1(config-router)#no auto-summary

IN-R1(config)#router bgp 200

IN-R1(config-router)#no synchronization

IN-R1(config-router)#bgp log-neighbor-changes

IN-R1(config-router)#network 1.1.1.1 mask 255.255.255.255

IN-R1(config-router)#neighbor 202.100.1.1 remote-as 100

IN-R1(config-router)#neighbor 202.100.1.1 pass zhangliang

IN-R1(config-router)#neighbor 202.100.1.1 ebgp-multihop 255

IN-R1(config-router)#no auto-summary

BGP默认路由不行,必须明细路由

OUT-R1(config)#no ip route 0.0.0.0 0.0.0.0 202.100.1.10

OUT-R1(config)# ip route 10.1.1.0 255.255.255.0 202.100.1.10

默认密钥认证的BGP无法穿越ASA

 

ASA(config)# class-map bgp

ASA(config-cmap)# match port tcp eq bgp

ASA(config)# tcp-map bgp               

ASA(config-tcp-map)# tcp-options range 19 19 allow

ASA(config-tcp-map)# policy-map global_policy

ASA(config-pmap)# class bgp

ASA(config-pmap-c)# set connection random-sequence-number disable

ASA(config-pmap-c)# set connection advanced-options bgp

之后BGP UP

4,

A,位于DMZ区域的FTP服务器提供服务的端口为TCP2121,在防火墙上监控FTP流量.

B,丢弃头部长度大于4096ESMTP连接,并做日志.

监控FTP流量

ASA(config)# class-map ftp.2121

ASA(config-cmap)# match port tcp eq 2121

ASA(config-cmap)# policy-map global_policy

ASA(config-pmap)# class ftp.2121

ASA(config-pmap-c)# inspect ftp

查看状态监控匹配的数据包:

ASA(config)# show service-policy

丢弃头部长度大于4093ESMTP连接,并做日志

ASA(config)# policy-map type inspect esmtp esmtp.drop

ASA(config-pmap)# parameters

ASA(config-pmap-p)# match header length gt 4096

ASA(config-pmap-c)# drop-connection log

ASA(config-pmap-c)# policy-map global_policy

ASA(config-pmap)# class inspection_default

ASA(config-pmap-c)# no inspect esmtp

ASA(config-pmap-c)# inspect esmtp esmtp.drop

5,

A,丢弃WIN7访问外部HTTP服务器(out-r1),URL中包含”cisco.com”关键字的所有HTTP请求包.ASAinside接口调用策略.

ASA(config)# regex http.regex "[Cc][Ii][Ss][Cc][Oo]\.com"

ASA(config)# class-map http.class

ASA(config-cmap)# match port tcp eq www

ASA(config-cmap)# policy-map type inspect http http.policy

ASA(config-pmap)# parameters

ASA(config-pmap-p)# match request header host regex http.regex

ASA(config-pmap-c)# drop-connection

ASA(config-pmap-c)# policy-map http.map

ASA(config-pmap)# class http.class

ASA(config-pmap-c)# inspect http http.policy

ASA(config-pmap-c)# show run service-policy

service-policy global_policy global

service-policy outside.policy interface outside

service-policy inside.policy interface inside

ASA(config)# no service-policy inside.policy interface inside

ASA(config)# service-policy http.map int inside

WIN7上做映射:

映射正常

防火墙上检查service-policy

B,对于正常的http请求,做如下限制:

  最大连接数为500

  最大半开连接数为10

每用户最大连接数为10

每用户最大半开连接数5

 

ASA(config)# access-list http.traffic ex permit tcp host 10.1.1.1 host 202.100.1.1 eq www

ASA(config)# class-map http.control

ASA(config-cmap)# match access-list http.traffic

ASA(config-cmap)# policy-map global_policy

ASA(config-pmap)# class http.control

ASA(config-pmap-c)# set connection conn-max 500 embryonic-conn-max 100 per-client-max 10 per-client-embryonic-max 5

C,内部接口的入方向对HTTP流量限速为1M

ASA(config)# class-map http.traffic    

ASA(config-cmap)# mat port tcp eq www

ASA(config-cmap)# policy-map inside-policy

ASA(config-pmap)# class http.traffic

ASA(config-pmap-c)# police input 1000000 1500

ASA(config-pmap-c)# service-policy inside-policy int inside

D,通过匹配DSCP’EF’,来匹配voice流量并在外部接口对匹配的voice流量进行优先级队列处理.

ASA(config)# priority-queue outside

ASA(config-priority-queue)# tx-ring-limit 128

ASA(config-priority-queue)# queue-limit 488

ASA(config-priority-queue)# class-map voip

ASA(config-cmap)# match dscp ef

ASA(config-cmap)# policy-map outside-policy

ASA(config-pmap)# class voip

ASA(config-pmap-c)# priority

ASA(config-pmap-c)# service-po outside-policy int outside