ACL

访问控制列表

ACE

访问控制条目

访问控制列表类型

  • 标准ACL

    • 基于目的IP地址进行数据包控制
  • 扩展ACL

    • 基于源目IP 地址、端口号、用户身份属性
  • EtherTypeACL

    • 基于2层头部得以太网类型编码字段,用来过滤IP与非IP流量

    • 基于IP的流量以太网类型编码是0x800

  • WebTypeACL

    • 该ACL用于针对过滤SSLVPN隧道流量

ASA 流量放行机制

  1. 状态化表项

    1. 状态话表项优先级高于ACL

    2. 状态话表项只有从内向外发起流量时才能建立,从外到内是无法建立的

  2. ACL

  3. 安全级别

ACL 应用位置

  • 针对接口应用

    • in 方向

    • out 方向

  • 针对全局应用

    • 对于所有接口都生效

    • 高安全级别到低安全级别的流量也会被干掉

ACL 能控制的流量

  1. 可以控制穿越流量
  2. 无法控制回包流量(有状态化表项)
  3. 无法控制抵达自身的流量(通过http telnet 这种命令进行控制)
  4. 无法控制自身发起流量

    命令

    1. shun [ip]
    2. # 阻止来自该IP的连接
    3. ip verify reverse-path interface outside
    4. # 源接口认证
    5. icmp deny any outside
    6. # 禁ping

FQDN ACL

从ASA8.4.2开始,ACL条目可以使用全限定域名作为新的类型对象,这允许管理员创建表示主机名的类型对象的FQDN的新类型对象。要使用此功能,ASA必须将这些FQDN解析为一个或者多个IP地址。然后该对象表示那些IP地址。

基本配置

1. 配置DNS

  1. domain-name cisco.com
  2. dns domain-lookup inside
  3. dns server-group DefaultDNS
  4. name-server 192.168.1.1
  5. domain-name cisco.com

2. 创建FQDN对象

  1. object network obj-tac88.cisco.com
  2. fqdn tac88.cisco.com

3.为FQDN Object添加ACL

  1. access-list inside_in deny ip any object obj-tac88.cisco.com
  2. access-list inside_in permit ip any any

验证
将ACL应用后,ASA回将DNS条目解析为IP地址,然后在访问控制列表中使用这些地址。

  1. ASA# show access-list inside_in
  2. access-list inside_in; 4 elements; name hash: 0xd3a8690b
  3. access-list inside_in line 1 deny ip any object obj-hr88.cisco.com
  4. access-list inside_in line 1 deny ip any fqdn hr88.cisco.com (resolved)
  5. access-list inside_in line 1 deny ip any host 10.32.2.4 (hr88.cisco.com) (hitcnt=10)
  6. access-list inside_in line 1 deny ip any host 10.32.2.3 (hr88.cisco.com) (hitcnt=35)
  7. access-list inside_in line 2 permit ip any any (hitcnt=12022)

“show dns” 该命令将会显示FQDN的解析结果。

  1. ASA# show dns
  2. Name: hr88.cisco.com
  3. Address: 10.32.2.4 TTL 13:27:02
  4. Address: 10.32.2.3 TTL 13:27:02

延长DNS缓存的生存时间
在某些情况下,DNS会使用较短的生命周期,如果在ASA上使用了许多的DNS条目,则短TTL可能会导致ASA非常频繁得解析IP地址。可以通过下面命令延长DNS缓存得生存时间。但是,如果延长了缓存时间,但实际DDNS解析以及失效,会造成网络不可用。

  1. dns expire-entry-timer minutes 60

访问一些TTL较低得站点可能会有问题,ASA默认存在” dns expire-entry-timer minutes 1”,这样导致实际得TTL=TTL+1,这样会在1分钟之内与实际的感兴趣流不匹配。

ACL中得FQDN功能不能代替HTTP过滤,无法区分正在发送的功能。
如果多个FQDN解析为相同的IP地址,ASA将无法区分这两个主机名,如果将内容托管到亚马逊等托管网站,ASA将放行所有相同的IP地址,即使主机名不相同。
并且FQDN并不是总能阻止其所有连通性。

  1. admin@server> host www.facebook.com
  2. www.facebook.com has address 69.171.224.13
  3. admin@server> host facebook.com
  4. facebook.com has address 69.63.181.12
  5. facebook.com has address 69.63.189.11
  6. facebook.com has address 69.63.189.16

To specify the timer during which the ASA queries the DNS server to resolve fully qualified domain names (FQDN) that are defined in a network object group, use the dns poll-timer command in global configuration mode. To remove the timer, use the no form of this command.
dns poll-timer minutes minutes
This command specifies the timer during which the ASA queries the DNS server to resolve the FQDN that was defined in a network object group. A FQDN is resolved periodically when the poll DNS timer has expired or when the TTL of the resolved IP entry has expired, whichever comes first.