简介
本文提供了指南和建议的配置技巧,以便在您的网络入口点过滤传输和边缘数据流。传输访问控制列表(ACL)通过明确地只允许要求的数据流通过您的网络,以增加网络的安全性。
中转过滤器
典型设置
在多数边缘网络环境中,例如在现存的典型的企业网络互联网点中,在网络边缘应使用入口过滤来丢弃未授权的流量。在某些服务提供商配置中,边缘或转接流量过滤的表格还可以有效地使用来限制流出/入用户的转接流量,仅供特别允许的协议使用。本文重点介绍企业部署模型。
此示例描述一个典型的企业 Internet 连接设计。两个边缘路由器(即 IR1 和 IR2)提供与 Internet 的直接连接。在这两个路由器后面,有一对防火墙(在本例中指Cisco PIX)提供状态检测功能和对内部网络及非敏感区域(DMZ)的访问。DMZ包含面向公众的服务,例如DNS和Web;这是可从公共互联网直接访问的唯一网络。不应该直接通过互联网访问内部网络,但是来源于内部网络的数据流一定能到达互联网网站。
应该配置边界路由器通过使用入站 ACL 提供第一个安全级别。ACL 只允许专门的数据流到达 DMZ,并允许返回内部用户访问互联网的数据流。应在输入接口上删除所有未经授权的数据流。
中转 ACL 部分
一般说来,中转 ACL 由四个部分组成。
如何开发中转 ACL
开发中转 ACL 的首要步骤是确定您的网络所需要的协议。虽然每个站点都具有特定需求,某些协议和应用程序被广泛使用,并且是最常使用的。例如,如果DMZ网段为可公开访问的Web服务器提供连接,则需要从互联网到端口80上的DMZ服务器地址的TCP。同样地,Internet 的内部连接要求 ACL 允许已建立的返回 TCP 数据流 - 即设置了确认 (ACK) 位的数据流。
标识必需协议
制定此必需协议列表可能是一项非常艰巨的任务,但可以根据需要采用多种技术来帮助标识必需数据流。
-
查看您的本地安全策略/服务策略。
您的本地站点策略应当有助于提供所允许的服务和所拒绝的服务的基线。
-
查看/审核您的防火墙配置。
当前防火墙配置应包含显式配置 permit
允许服务的语句。在许多情况下,您能将此配置转换为 ACL 格式,并使用它创建 ACL 条目容量。
注意:状态防火墙通常没有将流量返回到授权连接的明确规则。由于路由器 ACL 没有状态,因此必须明确允许返回数据流。
-
查看/审核您的应用程序。
在 DMZ 主机和那些内部使用的应用程序可帮助确定过滤需求。查看应用程序需求,以便提供有关过滤设计的重要详细信息。
-
使用分类 ACL。
分类ACL由 permit
各种协议可能发往内部网络的语句。(请参阅附录 A 以获取常用协议和应用程序的列表。) 请使用 show access-list
命令显示访问控制条目(ACE)命中计数以识别所需的协议。在创建显式命令之前,请调查并了解任何可疑或意外结果 permit
意外协议的语句。
-
使用 NetFlow 交换功能。
Netflow 是一个交换功能,启用该功能可提供详细的流信息。如果在边缘路由器上启用了Netflow, show ip cache flow
命令提供Netflow记录的协议列表。Netflow 不能识别所有协议,因此此技术必须与其它技术一起使用。
标识无效数据流
除提供直接保护外,传输 ACL 还应该在互联网上提供防止特定类型的无效数据流的第一防线。
要考虑的其他数据流类型包括:
应用 ACL
最近建的 ACL 应该应用在边界路由器面向互联网的接口的入站方向。在典型设置部分演示的示例中,在 IR1 和 IR2 面向 Internet 的接口上应用了 ACL。
有关详细信息,请参阅部署指南和部署示例部分。
ACL 示例
此访问列表提供中转 ACL 所需的典型条目的示例,此示例非常简单,但却切实可行。需要使用特定于本地站点的配置详细信息自定义此基本 ACL。
!--- Add anti-spoofing entries.
!--- Deny special-use address sources.
!--- Refer to RFC 3330 for additional special use addresses.
access-list 110 deny ip 127.0.0.0 0.255.255.255 any
access-list 110 deny ip 192.0.2.0 0.0.0.255 any
access-list 110 deny ip 224.0.0.0 31.255.255.255 any
access-list 110 deny ip host 255.255.255.255 any
!--- The deny statement should not be configured
!--- on Dynamic Host Configuration Protocol (DHCP) relays.
access-list 110 deny ip host 0.0.0.0 any
!--- Filter RFC 1918 space.
access-list 110 deny ip 10.0.0.0 0.255.255.255 any
access-list 110 deny ip 172.16.0.0 0.15.255.255 any
access-list 110 deny ip 192.168.0.0 0.0.255.255 any
!--- Permit Border Gateway Protocol (BGP) to the edge router.
access-list 110 permit tcp host bgp_peer gt 1023 host router_ip eq bgp
access-list 110 permit tcp host bgp_peer eq bgp host router_ip gt 1023
!--- Deny your space as source (as noted in RFC 2827).
access-list 110 deny ip your Internet-routable subnet any
!--- Explicitly permit return traffic.
!--- Allow specific ICMP types.
access-list 110 permit icmp any any echo-reply
access-list 110 permit icmp any any unreachable
access-list 110 permit icmp any any time-exceeded
access-list 110 deny icmp any any
!--- These are outgoing DNS queries.
access-list 110 permit udp any eq 53 host primary DNS server gt 1023
!--- Permit older DNS queries and replies to primary DNS server.
access-list 110 permit udp any eq 53 host primary DNS server eq 53
!--- Permit legitimate business traffic.
access-list 110 permit tcp any Internet-routable subnet established
access-list 110 permit udp any range 1 1023 Internet-routable subnet gt 1023
!--- Allow ftp data connections.
access-list 110 permit tcp any eq 20 Internet-routable subnet gt 1023
!--- Allow tftp data and multimedia connections.
access-list 110 permit udp any gt 1023 Internet-routable subnet gt 1023
!--- Explicitly permit externally sourced traffic.
!--- These are incoming DNS queries.
access-list 110 permit udp any gt 1023 host <primary DNS server> eq 53
!-- These are zone transfer DNS queries to primary DNS server.
access-list 110 permit tcp host secondary DNS server gt 1023 host primary DNS server eq 53
!--- Permit older DNS zone transfers.
access-list 110 permit tcp host secondary DNS server eq 53 host primary DNS server eq 53
!--- Deny all other DNS traffic.
access-list 110 deny udp any any eq 53
access-list 110 deny tcp any any eq 53
!--- Allow IPSec VPN traffic.
access-list 110 permit udp any host IPSec headend device eq 500
access-list 110 permit udp any host IPSec headend device eq 4500
access-list 110 permit 50 any host IPSec headend device
access-list 110 permit 51 any host IPSec headend device
access-list 110 deny ip any host IPSec headend device
!--- These are Internet-sourced connections to
!--- publicly accessible servers.
access-list 110 permit tcp any host public web server eq 80
access-list 110 permit tcp any host public web server eq 443
access-list 110 permit tcp any host public FTP server eq 21
!--- Data connections to the FTP server are allowed
!--- by the permit established ACE.
!--- Allow PASV data connections to the FTP server.
access-list 110 permit tcp any gt 1023 host public FTP server gt 1023
access-list 110 permit tcp any host public SMTP server eq 25
!--- Explicitly deny all other traffic.
access-list 101 deny ip any any
-
此 log
可以使用关键字来提供有关给定协议的源和目标的更多详细信息。尽管此关键字提供了有关ACL命中详细信息的宝贵信息,但使用 log
关键字会增加CPU利用率。与日志记录相关的性能影响因平台而异。
-
对于因管理原因而被 ACL 拒绝的数据包,将生成 ICMP 不可达消息。这可能会影响路由器和链路性能。考虑使用 no ip unreachables
命令,以在部署传输(边缘)ACL的接口上禁用IP不可达。
-
此ACL最初可与 permit
语句,以确保业务合法流量不会被拒绝。确定并记录企业合法流量后,特定 deny
可以配置元素。
ACL 和分段数据包
ACL具有 fragments
用于启用专门的分段数据包处理行为的关键字。一般来说,与第3层语句(协议、源地址和目的地址)匹配的非初始分段(不考虑ACL中的第4层信息)会受到 permit
或 deny
匹配条目的语句。请注意, fragments
关键字可以强制ACL更精细地拒绝或允许非初始分段。
过滤片段添加额外的保护层,保护仅使用非初始片段的拒绝服务(DoS)攻击(例如FO > 0)。使用 deny
acl开头的非初始分段语句拒绝所有非初始分段访问路由器。在极少数情况下,有效会话可能需要分段,因此如果出现以下情况,则需进行过滤 deny fragment
语句存在于ACL中。可能导致分段的情况包括使用数字证书进行 ISAKMP 身份验证和使用 IPSec NAT Traversal。
例如,请考虑此处显示的部分 ACL。
access-list 110 deny tcp any Internet routable subnet fragments
access-list 110 deny udp any Internet routable subnet fragments
access-list 110 deny icmp any Internet routable subnet fragments
<rest of ACL>
将这些条目添加到ACL的开头会拒绝任何非初始分段访问网络,而未分段的数据包或初始分段会传递到ACL的下一行,而不会受到 deny fragment
语句。由于每个协议(UDP、TCP 和 ICMP)都会增加 ACL 上的单独计数,上述 ACL 代码片断还能有助于对攻击进行分类。
由于许多攻击依靠片段数据包溢出,将流入片段过滤到内部网络中能提供额外的保护措施,同时通过在传输 ACL 时与第三层规则匹配的方法帮助防止攻击进入片段。
有关选项的详细讨论,请参阅访问控制列表和 IP 分段。
风险评估
当部署中转数据流保护 ACL 时,请考虑两个主要风险领域。
Cisco 建议您在部署前先在实验室测试该设计。
附录
常用协议和应用程序
TCP 端口名称
当您在Cisco IOS®软件中配置ACL时,可以使用此TCP端口名称列表来代替端口号。请参阅最新指定编号的 RFC,以便查找这些协议的相关参考资料。当您通过输入?代替端口号来配置ACL时,也可以找到与这些协议对应的端口号。
bgp |
kshell |
chargen |
login |
cmd |
lpd |
daytime |
nntp |
discard |
pim |
domain |
pop2 |
echo |
pop3 |
exec |
smtp |
finger |
sunrpc |
ftp |
syslog |
ftp-data |
tacacstalk |
gopher |
telnet |
hostname |
time |
ident |
uucp |
irc |
whois |
klogin |
www |
UDP 端口名称
当在 Cisco IOS 软件中配置 ACL 时,可以使用此 UDP 端口名称列表,而不使用端口号。请参阅最新指定编号的 RFC,以便查找这些协议的相关参考资料。当您通过输入?代替端口号来配置ACL时,也可以找到与这些协议对应的端口号。
biff |
ntp |
bootpc |
pim-auto-rp |
bootps |
rip |
discard |
snmp |
dnsix |
snmptrap |
domain |
sunrpc |
echo |
syslog |
isakmp |
tacacs |
mobile-ip |
talk |
nameserver |
tftp |
netbios-dgm |
time |
netbios-ns |
who |
netbios-ss |
xdmcp |
部署指南
Cisco 建议您采用保守部署实践。您必须对所需协议具有清楚的认识,才能成功部署中转 ACL。这些指南介绍了一种非常保守的方法,来部署采用迭代方法的保护 ACL。
- 使用分类 ACL 标识网络中使用的协议。
配置允许所有已知协议的 ACL,此协议在网络中使用。此发现或分类ACL的源地址应为 any
以及一个IP地址或整个Internet可路由IP子网的目标。配置允许的最后一个条目 ip any any log
以便帮助识别您需要允许的其他协议。
其目标在于:确定网络上正在使用的所有必需协议。使用日志记录进行分析,确定可能与路由器通信的其他内容。
注:虽然 log
关键字提供了有关ACL命中详细信息的宝贵信息,如果过多命中使用此关键字的ACL条目,可能会导致日志条目数量过多,并且可能导致路由器CPU使用率过高。请使用 log
关键字,用于短时间且仅在需要时使用,以帮助对流量分类。
请注意,当ACL包含所有ACL时,网络有受到攻击的风险 permit
声明已准备就绪。尽快执行分类进程以便使用适当的访问控制。
- 查看已标识的数据包,并开始过滤对内部网络的访问。
一旦您在步骤 1 中识别并查看了 ACL 过滤的数据包,请更新分类 ACL 来计算最新识别的协议和 IP 地址。添加用于反欺骗的 ACL 条目。根据需要,特定替换产品 deny
条目 permit
语句。您可以使用 show access-list
用于监控特定的 deny
可以监控条目命中计数。这会提供有关禁止的网络访问尝试的信息,而不必对 ACL 条目启用日志记录。ACL的最后一行应该是 deny ip any any
.再一次,最后条目的命中计数能提供关于禁止的访问企图的信息。
- 监控并更新 ACL。
监控完整的 ACL,确保控制添加新引入的必需协议。监控 ACL 时,还会提供有关禁止的网络访问尝试的信息,这些尝试可提供迫在眉睫的攻击的相关信息。
部署示例
此示例演示可根据以下地址保护网络的中转 ACL。
-
ISP 路由器的 IP 地址是 10.1.1.1。
边缘路由器面向 Internet 的 IP 地址是 10.1.1.2。
可通过 Internet 路由的子网是 192.168.201.0 255.255.255.0。
VPN 前端是 192.168.201.100。
Web 服务器是 192.168.201.101。
FTP 服务器为 192.168.201.102。
SMTP 服务器为 192.168.201.103。
主要 DNS 服务器是 192.168.201.104。
辅助 DNS 服务器是 172.16.201.50。
中转保护 ACL 根据此信息开发。ACL 允许 eBGP 与 ISP 路由器对等,提供反欺骗过滤器,允许特定回程数据流,允许特殊入局数据流和明确否决所有其他数据流。
no access-list 110
!--- Phase 1 – Add anti-spoofing entries.
!--- Deny special-use address sources.
!--- See RFC 3330 for additional special-use addresses.
access-list 110 deny ip 127.0.0.0 0.255.255.255 any
access-list 110 deny ip 192.0.2.0 0.0.0.255 any
access-list 110 deny ip 224.0.0.0 31.255.255.255 any
access-list 110 deny ip host 255.255.255.255 any
!--- This deny statement should not be configured
!--- on Dynamic Host Configuration Protocol (DHCP) relays.
access-list 110 deny ip host 0.0.0.0 any
!--- Filter RFC 1918 space.
access-list 110 deny ip 10.0.0.0 0.255.255.255 any
access-list 110 deny ip 172.16.0.0 0.15.255.255 any
access-list 110 deny ip 192.168.0.0 0.0.255.255 any
!--- Permit BGP to the edge router.
access-list 110 permit tcp host 10.1.1.1 gt 1023 host 10.1.1.2 eq bgp
access-list 110 permit tcp host 10.1.1.1 eq bgp host 10.1.1.2 gt 1023
!--- Deny your space as source (as noted in RFC 2827).
access-list 110 deny ip 192.168.201.0 0.0.0.255 any
!--- Phase 2 – Explicitly permit return traffic.
!--- Allow specific ICMP types.
access-list 110 permit icmp any any echo-reply
access-list 110 permit icmp any any unreachable
access-list 110 permit icmp any any time-exceeded
access-list 110 deny icmp any any
!--- These are outgoing DNS queries.
access-list 110 permit udp any eq domain host 192.168.201.104 gt 1023
!--- Permit older DNS queries and replies to primary DNS server.
access-list 110 permit udp any eq domain host 192.168.201.104 eq domain
!--- Permit legitimate business traffic.
access-list 110 permit tcp any 192.168.201.0 0.0.0.255 established
access-list 110 permit udp any range 1 1023 192.168.201.0 0.0.0.255 gt 1023
!--- Allow FTP data connections.
access-list 110 permit tcp any eq ftp-data 192.168.201.0 0.0.0.255 gt 1023
!--- Allow TFTP data and multimedia connections.
access-list 110 permit udp any gt 1023 192.168.201.0 0.0.0.255 gt 1023
!--- Phase 3 – Explicitly permit externally sourced traffic.
!--- These are incoming DNS queries.
access-list 110 permit udp any gt 1023 host 192.168.201.104 eq domain
!--- Zone transfer DNS queries to primary DNS server.
access-list 110 permit tcp host 172.16.201.50 gt 1023 host 192.168.201.104 eq domain
!--- Permit older DNS zone transfers.
access-list 110 permit tcp host 172.16.201.50 eq domain host 192.168.201.104 eq domain
!--- Deny all other DNS traffic.
access-list 110 deny udp any any eq domain
access-list 110 deny tcp any any eq domain
!--- Allow IPSec VPN traffic.
access-list 110 permit udp any host 192.168.201.100 eq isakmp
access-list 110 permit udp any host 192.168.201.100 eq non500-isakmp
access-list 110 permit esp any host 192.168.201.100
access-list 110 permit ahp any host 192.168.201.100
access-list 110 deny ip any host 192.168.201.100
!--- These are Internet-sourced connections to
!--- publicly accessible servers.
access-list 110 permit tcp any host 192.168.201.101 eq www
access-list 110 permit tcp any host 192.168.201.101 eq 443
access-list 110 permit tcp any host 192.168.201.102 eq ftp
!--- Data connections to the FTP server are allowed
!--- by the permit established ACE in Phase 3.
!--- Allow PASV data connections to the FTP server.
access-list 110 permit tcp any gt 1023 host 192.168.201.102 gt 1023
access-list 110 permit tcp any host 192.168.201.103 eq smtp
!--- Phase 4 – Add explicit deny statement.
access-list 110 deny ip any any
Edge-router(config)#interface serial 2/0
Edge-router(config-if)#ip access-group 110 in
相关信息