Mr.Chan

导航

统计

设置Cisco路由器防止分布式D.O.S攻击手段

1、使用 "ip verify unicast reverse-path interface" 命令
这个特征检查发送到路由器的每一个包。如果一个包的源IP地址在CEF tables里面没有回指向这个包到达的接口的路由,则路由器将取消这个包。(注: CEF=Cisco express forwarding)
RPF=Reverse Path Forwarding(反向路径转送)
单目标反向路径传送(Unicast RPF)设置可以防止针对ISP的SMURF attack以及类似的基于伪源地址技术的攻击。这将保护ISP的网络和客户。要启动Unicast RPF,可以通过在路由器上启动"CEF switching"或者"CEF distributed switching"的功能来实现。在这里,不需要为"CEF switch"配置输入的网络接口。当路由器上的CEF特征运行的时候,单个的网络接口能被配置成相应的switching模式。RPF是为路由器上的网络接口和子接口等输入端设计的功能,用于处理从路由器上接收的报文。
注:Unicast与 multicast和broadcast相反,是对单一目标的传送方式。

启动CEF功能是十分重要的,如果不启动CEF,则RPF也不能正常运行。在Cisco IOS 11.2和11.3的Cisco操作系统版本中是不支持的。对于12.0或者以上的版本,只要支持CEF,就支持 Unicast RPF,包括AS5800。所以,在AS5800的PSTN/ISDN的接口上可以配置 Unicast RPF的特性。


2、通过access control list(访问控制表)过滤所有的RFC1918地址空间
Filter all RFC1918 address space using access control lists.
请参考下面的ACL(访问控制表)例子:

interface xy
ip access-group 101 in
access-list 101 deny ip 10.0.0.0 0.255.255.255 any
access-list 101 deny ip 192.168.0.0 0.0.255.255 any
access-list 101 deny ip 172.16.0.0 0.15.255.255 any
access-list 101 permit ip any any
ACL=Access Control Lists---路由器的访问控制表

3、通过配置ACL(访问控制表)实施进出报文过滤
(请参考RFC2267 )
请看下面的网络结构:

{ ISP 中心 } -- ISP 边界路由器 -- 客户边界路由器 -- { 客户网络 }

在这里,ISP的边界路由器应该只接受源地址来自客户网络的通信,客户网络应该只接受来自允许的源地址的通信。
下面的例子是一台ISP的边界路由器的访问控制表(ACL)范例:

access-list 190 permit ip {customer network} {customer network mask} any
access-list 190 deny ip any any [log]

interface {ingress interface} {interface #}
ip access-group 190 in

下面的例子是客户边界路由器的ACL范例:

access-list 187 deny ip {customer network} {customer network mask} any
access-list 187 permit ip any any

access-list 188 permit ip {customer network} {customer network mask} any
access-list 188 deny ip any any

interface {egress interface} {interface #}
ip access-group 187 in
ip access-group 188 out


如果打开Cisco Express Forwarding (CEF)的功能,可以有效地缩短ACL(访问控制表)的长度,同时启动Unicast RPF(Unicast reverse path forwarding)将有效地改善路由器的性能。在路由器上总体地启动CEF,其下接口的CEF特性也会被启动。


4、通过"Control Access Rate"为ICMP报文设置流率限制
请参考下面的例子:

interface xy
rate-limit output access-group 2020 3000000 512000 786000 conform-action transmit exceed-action drop

access-list 2020 permit icmp any any echo-reply
更多的信息请参考: IOS Essential Features.

5、为 SYN报文设置流率限制
请参考下面的例子:

interface {int}

rate-limit output access-group 153 45000000 100000 100000 conform-action
transmit exceed-action drop
rate-limit output access-group 152 1000000 100000 100000 conform-action
transmit exceed-action drop

access-list 152 permit tcp any host eq www
access-list 153 permit tcp any host eq www established

在上面的例子红色带下划线的地方是需要替换的:
将 45000000 替换为 maximal link bandwidth的值(最大链接带宽)
将 1000000 替换为一个新值,这个值介于 SYN flood 流率的 30%到50%之间。
将 burst normal和 burst max设置为正确的值
注意,如果将burst rate设置为大于30%,很多合法的SYN报文也将被取消。作为设置burst rate的参考,可以使用"show interfaces rate-limit"命令来查看正常与过度的rate值。在不影响正常工作的情况下限制SYN到最小。建议在正常状态的时候仔细评估一下SYN报文的平均流量,用这个值作为限制值的参考。

如果一个主机遭受了SYN攻击,可以考虑在那台主机上安装一个IP过滤的程序,例如一个叫"IP filter"的软件。

6、搜集准备证据,与信息安全监察部门联系
安装入侵检测系统或者协议分析软件,捕获报文进行分析。建议使用具有高性能的Pentium处理器的Sun工作站或者Linux机器对报文进行监视。
例如可以使用有名的tcpdump或者snoop包捕获工具:

tcpdump -i interface -s 1500 -w capture_file
snoop -d interface -o capture_file -s 1500

在上面的例子中MTU的size是1500。
保存上面这些监视程序的日志作为证据。

posted on 2005-06-15 22:55  cunshen  阅读(...)  评论(...编辑  收藏