在Win2000中如何关闭ICMP(Ping)

在Win2000中如何关闭ICMP(Ping)

   ICMP的全名是Internet Control and Message Protocal即因特网控制消息/错误报文协议 这个协议主要是用来进行错误信息和控制信息的传递 例如著名的Ping和Tracert工具都是利用ICMP协议中的ECHO request报文进行的(请求报文ICMP ECHO类型 代码 应答报文ICMP ECHOREPLY类型 代码 )

  

    ICMP协议有一个特点 它是无连结的 也就是说只要发送端完成ICMP报文的封装并传递给路由器 这个报文将会象邮包一样自己去寻找目的地址 这个特点使得ICMP协议非常灵活快捷 但是同时也带来一个致命的缺陷 易伪造(邮包上的寄信人地址是可以随便写的) 任何人都可以伪造一个ICMP报文并发送出去 伪造者可以利用SOCK_RAW编程直接改写报文的ICMP首部和IP首部 这样的报文携带的源地址是伪造的 在目的端根本无法追查 (攻击者不怕被抓那还不有恃无恐?)根据这个原理 外面出现了不少基于ICMP的攻击软件 有通过网络架构缺陷制造ICMP风暴的 有使用非常大的报文堵塞网络的 有利用ICMP碎片攻击消耗服务器CPU的 甚至如果将ICMP协议用来进行通讯 可以制作出不需要任何TCP/UDP端口的木马(参见相关文章) 既然ICMP协议这么危险 我们为什么不关掉它呢?

  

    我们都知道 Win 在网络属性中自带了一个TCP/IP过滤器 我们来看看能不能通过这里关掉ICMP协议 桌面上右击网上邻居 >属性 >右击你要配置的网卡 >属性 >TCP/IP >高级 >选项 >TCP/IP过滤 这里有三个过滤器 分别为 TCP端口 UDP端口和IP协议 我们先允许TCP/IP过滤 然后一个一个来配置 先是TCP端口 点击 只允许 然后在下面加上你需要开的端口 一般来说WEB服务器只需要开 (www) FTP服务器需要开 (FTP Data) (FTP Control) 邮件服务器可能需要打开 (SMTP) (POP ) 以此类推 接着是UDP UDP协议和ICMP协议一样是基于无连结的 一样容易伪造 所以如果不是必要(例如要从UDP提供DNS服务之类)应该选择全部不允许 避免受到洪水(Flood)或碎片(Fragment)攻击 最右边的一个编辑框是定义IP协议过滤的 我们选择只允许TCP协议通过 添加一个 ( 是TCP在IP协议中的代码 IPPROTO_TCP= ) 从道理上来说 只允许TCP协议通过时无论UDP还是ICMP都不应该能通过 可惜的是这里的IP协议过滤指的是狭义的IP协议 从架构上来说虽然ICMP协议和IGMP协议都是IP协议的附属协议 但是从网络 层结构上ICMP/IGMP协议与IP协议同属一层 所以微软在这里的IP协议过滤是不包括ICMP协议的 也就是说即使你设置了 只允许TCP协议通过 ICMP报文仍然可以正常通过 所以如果我们要过滤ICMP协议还需要另想办法

  

    刚刚在我们进行TCP/IP过滤时 还有另外一个选项 IP安全机制(IP Security) 我们过滤ICMP的想法就要着落在它身上

  

    打开本地安全策略 选择IP安全策略 在这里我们可以定义自己的IP安全策略

  

    一个IP安全过滤器由两个部分组成 过滤策略和过滤操作 过滤策略决定哪些报文应当引起过滤器的关注 过滤操作决定过滤器是 允许 还是 拒绝 报文的通过 要新建IP安全过滤器 必须新建自己的过滤策略和过滤操作 右击本机的IP安全策略 选择管理IP过滤器 在IP过滤器管理列表中建立一个新的过滤规则 ICMP_ANY_IN 源地址选任意IP 目标地址选本机 协议类型是ICMP 切换到管理过滤器操作 增加一个名为Deny的操作 操作类型为 阻止 (Block) 这样我们就有了一个关注所有进入ICMP报文的过滤策略和丢弃所有报文的过滤操作了 需要注意的是 在地址选项中有一个镜像选择 如果选中镜像 那么将会建立一个对称的过滤策略 也就是说当你关注any IP >my IP的时候 由于镜像的作用 实际上你也同时关注了my IP >any IP 你可以根据自己的需要选择或者放弃镜像

  

    再次右击本机的IP安全策略 选择新建IP过滤策略 建立一个名称为ICMP Filter的过滤器 通过增加过滤规则向导 我们把刚刚定义的ICMP_ANY_IN过滤策略指定给ICMP Filter 然后在操作选框中选择我们刚刚定义的Deny操作 退出向导窗口 右击ICMP Filter并启用它 现在任何地址进入的ICMP报文都会被丢弃了

  

    虽然用IP sec能够对ICMP报文进行过滤 不过操作起来太麻烦 而且如果你只需要过滤特定的ICMP报文 还要保留一些常用报文(如主机不可达 网络不可达等) IP sec策略就力不从心了 我们可以利用Win 的另一个强大工具路由与远程访问控制(Routing & Remote Access)来完成这些复杂的过滤操作

  

  

    路由与远程访问控制是Win 用来管理路由表 配置VPN 控制远程访问 进行IP报文过滤的工具 默认情况下并没有安装 所以首先你需要启用它 打开 管理工具 > 路由与远程访问 右击服务器(如果没有则需要添加本机)选择 配置并启用路由及远程访问 这时配置向导会让你选择是什么样的服务器 一般来说 如果你不需要配置VPN服务器 那么选择 手动配置 就可以了 配置完成后 主机下将出现一个IP路由的选项 在 常规 中选择你想配置的网卡(如果你有多块网卡 你可以选择关闭某一块的ICMP) 在网卡属性中点击 输入筛选器 添加一条过滤策略 from:ANY to:ANY 协议:ICMP 类型: :编码:  丢弃 就可以了(类型 编码 就是Ping使用的ICMP_ECHO报文 如果要过滤所有的ICMP报文只需要将类型和编码都设置为 )

在Win2000中如何关闭ICMP(Ping)

相关文章:

你感兴趣的文章:

标签云: