热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Cisco路由器如何防止DDoS攻击?

1、使用ipverfyunicastreverse-path网络接口命令这个功能检查每一个经过路由器的数据包。在路由器的CEF(CiscoExpressForwarding)表该数据包所到达网络接口的所有路由项中,如果没有该数据包源IP地址的路由,路由器将丢弃该数据包。例如,路由

1、使用 ip verfy unicast reverse-path 网络接口命令 这个功能检查每一个经过 路由器 的数据包。在 路由器 的CEF(Cisco Express Forwarding)表该数据包所到达网络接口的所有路由项中,如果没有该数据包源IP地址的路由, 路由器 将丢弃该数据包。例如, 路由

1、使用 ip verfy unicast reverse-path 网络接口命令

  这个功能检查每一个经过路由器的数据包。在路由器的CEF(Cisco Express Forwarding)表该数据包所到达网络接口的所有路由项中,如果没有该数据包源IP地址的路由,路由器将丢弃该数据包。例如,路由器接收到一个源IP地址为1.2.3.4的数据包,如果 CEF路由表中没有为IP地址1.2.3.4提供任何路由(即反向数据包传输时所需的路由),则路由器会丢弃它。

  单一地址反向传输路径转发(Unicast Reverse Path Forwarding)在ISP(局端)实现阻止SMURF攻击和其它基于IP地址伪装的攻击。这能够保护网络和客户免受来自互联网其它地方的侵扰。使用Unicast RPF 需要打开路由器的"CEF swithing"或"CEF distributed switching"选项。不需要将输入接口配置为CEF交换(switching)。只要该路由器打开了CEF功能,所有独立的网络接口都可以配置为其它交换(switching)模式。RPF(反向传输路径转发)属于在一个网络接口或子接口上激活的输入端功能,处理路由器接收的数据包。

  在路由器上打开CEF功能是非常重要的,因为RPF必须依靠CEF。Unicast RPF包含在支持CEF的Cisco IOS 12.0 及以上版本中,但不支持Cisco IOS 11.2或11.3版本。

  2、使用访问控制列表(ACL)过滤RFC 1918中列出的所有地址

  参考以下例子:

  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

  3、参照RFC 2267,使用访问控制列表(ACL)过滤进出报文

  参考以下例子:

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

  ISP端边界路由器应该只接受源地址属于客户端网络的通信,而客户端网络则应该只接受源地址未被客户端网络过滤的通信。以下是ISP端边界路由器的访问控制列表(ACL)例子:

  access-list 190 permit ip {客户端网络} {客户端网络掩码} any

  access-list 190 deny ip any any [log]

  interface {内部网络接口} {网络接口号}

  ip access-group 190 in

  以下是客户端边界路由器的ACL例子:

  access-list 187 deny ip {客户端网络} {客户端网络掩码} any

  access-list 187 permit ip any any

  access-list 188 permit ip {客户端网络} {客户端网络掩码} any

  access-list 188 deny ip any any

  interface {外部网络接口} {网络接口号}

  ip access-group 187 in

  ip access-group 188 out

  如果打开了CEF功能,通过使用单一地址反向路径转发(Unicast RPF),能够充分地缩短访问控制列表(ACL)的长度以提高路由器性能。为了支持Unicast RPF,只需在路由器完全打开CEF;打开这个功能的网络接口并不需要是CEF交换接口。

  4、使用CAR(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

  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为最大连接带宽

  1000000为SYN flood流量速率的30%到50%之间的数值。

  burst normal(正常突变)和 burst max(最大突变)两个速率为正确的数值。

  注意,如果突变速率设置超过30%,可能会丢失许多合法的SYN数据包。使用"show interfaces rate-limit"命令查看该网络接口的正常和过度速率,能够帮助确定合适的突变速率。这个SYN速率限制数值设置标准是保证正常通信的基础上尽可能地小。

  警告:一般推荐在网络正常工作时测量SYN数据包流量速率,以此基准数值加以调整。必须在进行测量时确保网络的正常工作以避免出现较大误差。

  另外,建议考虑在可能成为SYN攻击的主机上安装IP Filter等IP过滤工具包。

  6、搜集证据并联系网络安全部门或机构

  如果可能,捕获攻击数据包用于分析。建议使用SUN工作站或Linux等高速计算机捕获数据包。常用的数据包捕获工具包括TCPDump和snoop等。基本语法为:

  tcpdump -i interface -s 1500 -w capture_file

  snoop -d interface -o capture_file -s 1500

  本例中假定MTU大小为1500。如果MTU大于1500,则需要修改相应参数。将这些捕获的数据包和日志作为证据提供给有关网络安全部门或机构。


推荐阅读
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 本文探讨了如何利用SqlDependency执行复杂的SQL查询,并确保在多线程环境下的安全性与效率。 ... [详细]
  • 安装双硬盘对电脑有何益处?
    面对日益增长的数据存储需求,仅通过更换更大容量的硬盘来解决空间问题并非唯一途径。本文探讨了在同一台计算机上安装两个硬盘的可能性及其带来的多种优势。 ... [详细]
  • WinSCP: 跨Windows与Linux系统的高效文件传输解决方案
    本文详细介绍了一款名为WinSCP的开源图形化SFTP客户端,该工具支持SSH协议,适用于Windows操作系统,能够实现与Linux系统之间的文件传输。对于从事嵌入式开发的技术人员来说,掌握WinSCP的使用方法将极大提高工作效率。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 本文介绍了一系列针对iPhone 6s的优化方法,包括系统版本选择、内存管理、软件卸载以及特定设置调整,帮助用户改善设备的运行速度和整体性能。 ... [详细]
  • 本文详细介绍了在Linux环境下如何有效地管理任务,包括撤销操作、挂起与恢复任务、终止后台程序以及取消定时任务的方法。这些技巧对于提高日常工作效率和系统维护至关重要。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • 本文详细介绍了 Python 中的 with 语句及其背后的上下文管理器机制,从基本概念入手,通过具体示例和原理分析,帮助读者深入理解这一重要的资源管理工具。 ... [详细]
  • Java中String类为何设计为final?其不可变性与其他包装类的特性
    探讨Java中String类设计为final的原因及其不可变性,同时分析其他基本数据类型包装类及枚举类型的不可变性。 ... [详细]
  • 深度解析 Redis 消息队列的应用与优势
    本文深入探讨了消息队列的基本概念及其在Redis中的实现方式。通过分析消息队列的核心组件——消息、生产者和消费者,以及它与阻塞队列的主要区别,帮助读者更好地理解如何利用Redis消息队列提高应用性能。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
author-avatar
日月星辰淡定鍀好男孩_933
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有