浅析三种不同的“防Ping”方法

众所周知,Ping命令是一个非常有用的网络命令,大家常用它来测试网络连通情况。但同时它也是把“双刃剑”,特别是在网络高速发展的今天,一些“不怀好意”的人在互联网中使用它来探测别人的机器,以此来达到不可告人的目的。为了保证机器在网络中的安全,现在很多人都非常重视“防Ping”,当然“防Ping”的方法和手段也非常多,如利用IPSec安全策略、Windows内置的防火墙、第三方防火墙工具、路由和远程访问组件等,到底这些“防Ping”方法的效果如何,是不是适合你使用,下面笔者带着你一起来看吧!

  一、IPSec安全策略“防Ping”,还是要慎用

  使用IPSec安全策略“防Ping”,是大家常用的一种方法,经过对IPSec安全策略简单的几步配置,就可以实现防Ping的效果。该方法配置比较简单,并且IPSec安全策略是Windows系统内置的一个功能组件,不需要额外安装,因此得到不少用户的喜爱。但这里笔者还是要提醒大家,使用IPSec安全策略“防Ping”,还是要慎用。

  为什么这么说呢?首先我们看看IPSec安全策略是如何“防Ping”的,其原理是通过新建一个IPSec策略来过滤掉本机所有的ICMP数据包实现的。这样确实是可以有效的“防Ping”,但同时也会留下后遗症。

  因为Ping命令和ICMP协议(Internet Control and Message Protocal)有着密切的关系,在ICMP协议的应用中包含有11种报文格式,其中Ping命令就是利用ICMP协议中的“Echo Request”报文进行工作的。但IPSec安全策略防Ping时采用格杀勿论的方法,把所有的ICMP报文全部过滤掉,特别是很多有用的其它格式的报文也同时被过滤掉了。因此在某些有特殊应用的局域网环境中,容易出现数据包丢失的现象,影响用户正常办公,因此笔者建议大家还是要慎用IPSec安全策略“防Ping”。

二、使用第三方防火墙工具

  大家已经知道了IPSec安全策略“防Ping”的不足之处,为了保证本地机器发出的数据包通过网络被正确的传送给目标主机,大家可以采用别的更加有效的方法,如使用网络防火墙“防Ping”。

  对于一般的上网用户来说,使用个人网络防火墙“防Ping”是最简单的一种方法。应用此方法“防Ping”不需要进行复杂的设置,只要你正确配置好防火墙内置的“防Ping”规则,就可以轻松实现“防Ping”的目的。个人网络防火墙的种类较多,几乎都可以有效实现“防Ping”,如天网个人防火墙、瑞星个人网络防火墙、Windows防火墙(或ICF)等,下面笔者以瑞星个人网络防火墙为例,介绍如何配置防火墙实现“防Ping”目的。

  运行瑞星个人网络防火墙主程序后,在主窗口中点击“设置→设置规则”选项,弹出“瑞星个人网络防火墙规则设置”窗口,在规则列表中一定要选中“缺省的ICMP入站”规则,接着双击此规则,弹出“规则属性”对话框(如图1),在这里大家可以进行详细参数设置,在“类别”框中选中“系统”选项,“方向”框中选择“接收”选项,“协议”框中一定要选中Ping命令使用的“ICMP”协议了,操作框中选择“禁止”选项。这里要注意ICMP报文类型的选择,切换到“ICMP类型”标签页中,在“类型”下拉列表框中一定要选择“Echo Request”项,最后点击“修改”按钮,保存设置。这样瑞星个人网络防火墙就可以过滤掉,Ping命令所使用的名为“Echo Request”的ICMP报文了,而别的有用的ICMP报文则可以安全通过。完成以上设置后,就实现了利用个人网络防火墙有效“防Ping”的目的。

图1 设置瑞星个人防火墙

 三、使用“路由与远程访问”组件

  对于局域网用户来说,个人网络防火墙就很难满足他们的需要了,这时你就要使用企业级的网络防火墙“防Ping”,如ISA 2004等,但对于一些小型局域网来说,这些企业级防火墙过于昂贵,难以接受,其实利用Windows 2000/Server 2003服务器操作系统的“路由和远程访问”组件就能解决这个问题,并且该组件是Windows系统内置的,不需要额外购买。

  下面笔者以Windows Server 2003系统为例,介绍如何利用“路由和远程访问”组件“防Ping”。大家都知道,“路由和远程访问”组件内置了路由表管理、VPN服务、IP报文过滤等功能,默认情况下,Windows Server 2003系统并没有启用路由和远程访问服务,所以要首先手工启用它。在Windows Server 2003网关服务器中,进入到“控制面板→管理工具”窗口,运行“路由和远程访问”工具,在“路由和远程访问”主窗口中,右键点击“本地”服务器,在弹出的菜单中选择“配置并启用路由及远程访问”选项,接着在“路由及远程访问服务器安装向导”对话框中点击“下一步”按钮,选择“自定义配置”选项,然后点击“下一步”,在接下来的窗口中选择“LAN路由器”选项,最后点击“完成”按钮。

  在“路由和远程访问”主窗口中依次展开“IP路由选择→常规”选项,接着在“常规”框体中右键点击接入互联网的那块网卡(如图2),选择“属性”选项,然后在属性对话框中点击“入站筛选器”按钮,弹出“入站筛选器”对话框后,选择“接收所有除符合下列条件以外的数据包”选项,下面点击“新建”按钮,弹出“添加IP筛选器”对话框(如图3),在协议下拉列表框中选择“ICMP”协议,接着在“ICMP类型”和“ICMP代码”栏中分别输入“8和0”,最后点击“确定”按钮。其中ICMP类型为“8”、ICMP代码为“0”的报文就是Ping命令所使用的“Echo Request”报文,最后点击“确定”按钮,完成“防Ping”设置。
图2 选择连通网络的网卡

图3 添加IP筛选器 
  以上笔者介绍了几种不同的“防Ping”方法,分别适用于不同的网络环境,如果你感兴趣的话,不妨试试。

(0)

相关推荐

  • 浅析三种不同的“防Ping”方法

    众所周知,Ping命令是一个非常有用的网络命令,大家常用它来测试网络连通情况.但同时它也是把"双刃剑",特别是在网络高速发展的今天,一些"不怀好意"的人在互联网中使用它来探测别人的机器,以此来达到不可告人的目的.为了保证机器在网络中的安全,现在很多人都非常重视"防Ping",当然"防Ping"的方法和手段也非常多,如利用IPSec安全策略.Windows内置的防火墙.第三方防火墙工具.路由和远程访问组件等,到底这些"

  • Android 三种延迟操作的实现方法

    Android 三种延迟操作的实现方法 实现方法: 一.线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage();----告诉主线程执行任务 } }).start 二.延时器 TimerTask task = new TimerTask(){ public void run(){ //execute the task } }; Timer timer = new Timer

  • sql下三种批量插入数据的方法

    本文将介绍三种批量插入数据的方法.第一种方法是使用循环语句逐个将数据项插入到数据库中:第二种方法使用的是SqlBulkCopy,使您可以用其他源的数据有效批量加载 SQL Server 表:第三种使用的方法是sql server中的表值参数方法,表值参数是 SQL Server 2008 中的新参数类型.表值参数是使用用户定义的表类型来声明的.使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据. 代码示例: 此例子为控制台输出

  • 三种禁用FileSystemObject组件的方法

    我整理了一下,本来只找到两种方法,后来被某人一刺激,硬是想到第三种不为人所知的方法,呵呵,也不知道是不是这样的.第一种:用RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll(win98路径)来注销该组 件.此方法过于狠毒,属于同归于尽的方法,大家都没得用,是下招 第二种:修改Progid的值,在ASP里调用组件的方式通常是 Set 对象名=Server. CreateObject("Progid"),这时候我们就可以通过修改注册表中的Progid值从达 到

  • 详解Python用三种方式统计词频的方法

    三种方法: ①直接使用dict ②使用defaultdict ③使用Counter ps:`int()`函数默认返回0  ①dict text = "I'm a hand some boy!" frequency = {} for word in text.split(): if word not in frequency: frequency[word] = 1 else: frequency[word] += 1  ②defaultdict import collections f

  • SpringBoot定制三种错误页面及错误数据方法示例

    目录 定制错误页面 自定义 error.html 自定义动态错误页面 自定义静态错误页面 定制错误数据 1. 自定义异常处理类 2. 自定义错误属性处理工具 我们知道 Spring Boot 已经提供了一套默认的异常处理机制,但是 Spring Boot 提供的默认异常处理机制却并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对 Spring Boot 全局异常进行统一定制,例如定制错误页面,定制错误数据等. 定制错误页面 我们可以通过以下 3 种方式定制 Spring Boot

  • Python中列表(List) 的三种遍历(序号和值)方法小结

    目录 列表(List) 的三种遍历(序号和值)方法 Python遍历整个列表 1.深入地研究循环 2.在for循环中执行更多的操作 3.在for循环结束后执行一些操作 列表(List) 的三种遍历(序号和值)方法 if __name__ == '__main__': list = ['html', 'js', 'css', 'python'] for i in list: print(list.index(i), i) # 方法1 print( '遍历列表方法1:') for i in list

  • JavaScript三种获取URL参数值的方法

    目录 前言 URLSearchParams URL 纯JS 前言 在 URL 中,查询参数字符串值通常提供有关请求的信息,例如搜索参数或正在使用的对象的 ID.如果在前端处理任何业务或请求逻辑,了解如何从 URL 中检索查询字符串值非常重要.本文分享三种从 URL 获取参数的方法. URLSearchParams 除 IE 11 之外的所有主要浏览器版本都支持该 URLSearchParams 接口.它通过解析 URL 的查询字符串并提供访问值的方法来工作. 例如: 此接口的缺点之一是您必须仅将

  • Python中三种时间格式转换的方法

    目录 一 时间元组 二 字符串与时间戳 三 时间的加减用法 一 时间元组 1. 时间元组和时间戳的互化 import time,datetime # 获取当前时间的时间元组 t = time.localtime() print(t) # 时间元组转时间戳 timestamp = time.mktime(t) print(timestamp) # time.struct_time(tm_year=2019, tm_mon=10, tm_mday=23, tm_hour=23, tm_min=15,

  • php三种实现多线程类似的方法

    1.curl_multi方法 当需要多线程的时候,可以用curl_multi一次性请求多个操作来完成,但curl走的是网络通信,效率与可靠性就比较差了的. function main(){ $sql = "select waybill_id,order_id from waybill where status>40 order by update_time desc limit 10 "; $data = Yii::app()->db->createCommand($

随机推荐