如何在网络中发现一个Sniffer <br><br>简单的一个回答是你发现不了。因为他们根本就没有留下任何痕迹。<br><br>因为sniffer是如此嚣张又安静，如何知道有没有sniffer存在，这也是一个很难说明的问题，比较有说服力的理由证明你的网络有sniffer目前有这么两条：<br><br>网络通讯掉包率反常的高。<br>通过一些网络软件，可以看到信息包传送情况（不是sniffer），向ping这样的命令会告诉你掉了百分几的包。如果网络中有人在Listen，那么信息包传送将无法每次都顺畅的流到目的地。（这是由于sniffer拦截每个包导致的） <br>网络带宽出现反常。<br>通过某些带宽控制器（通常是防火墙所带），可以实时看到目前网络带宽的分布情况，如果某台机器长时间的占用了较大的带宽，这台机器就有可能在监听。在非高速信道上，如56Kddn等，如果网络中存在sniffer,你应该也可以察觉出网络通讯速度的变化。 <br>还有一个办法是看看计算机上当前正在运行的所有程序。但这通常并不可靠，但你可以控制哪个程序可以在你的计算机上运行。<br><br>在Unix系统下使用下面的命令：　ps -aux 　或：　ps -augx。 这个命令列出当前的所有进程，启动这些进程的用户，它们占用CPU的时间，占用内存的多少等等。 <br>Windows系统下，按下Ctrl+Alt+Del，看一下任务列表。不过，编程技巧高的Sniffer即使正在运行，也不会出现在这里的。 <br>另一个方法就是在系统中搜索，查找可疑的文件。但可能入侵者用的是他们自己写的程序，所以都会给发现sniffer造成相当大的困难。 <br>还有许多工具，能用来看看你的系统会不会在杂收模式。从而发现是否有一个Sniffer正在运行。 <br>怎样防止被sniffer <br>对于嗅探器如此强大的‘灵敏度’，我们力求作到：<br><br>检测和消灭嗅探器 <br>会话加密 <br>将数据隐藏，使嗅探器无法发现 <br>加密 <br>你最关心的可能是传输一些比较敏感的数据，如用户ID或口令等等。有些数据是没有经过处理的，一旦被sniffer，就能获得这些信息。解决这些问题的办法是加密。<br><br>我们介绍以下SSH，它又叫Secure Shell。SSH是一个在应用程序中提供安全通信的协议。它是建立在客户机/服务器模型上的。SSH服务器的分配的端口是22。连接是通过使用一种来自RSA的算法建立的。在授权完成后，接下来的通信数据是用IDEA技术来加密的。这通常是较强的，适合与任何非秘密和非经典的通讯。<br><br>SSH后来发展成为F-SSH，提供了高层次的，军方级别的对通信过程的加密。它为通过TCP/IP网络通信提供了通用的最强的加密。如果某个站点使用F-SSH，用户名和口令成为不是很重要的一点。目前，还没有人突破过这种加密方法。即使是sniffer，收集到的信息将不再有价值。当然最关键的是怎样使用它。<br><br>SSH和F-SSH都有商业或自由软件版本存在。 <br><br>其他的方法 <br>另一个比较容易接受的是使用安全拓扑结构。这听上去很简单，但实现起来花销是很大的。<br><br>在我们小的时候也许都玩过一种智力游戏，它通常由一系列数字组成。游戏的目的是要安排好数字，用最少的步骤，把它们按递减顺序排好。当处理网络拓扑时，就和玩这个游戏一样。<br><br>这样的拓扑结构需要有这样的规则：一个网络段必须有足够的理由才能信任另一网络段。网络段应该考虑你的数据之间的信任关系上来设计，而不是硬件需要。<br><br>让我们开始处理这个网络拓扑，来看看：<br><br>第一点：一个网络段是仅由能互相信任的计算机组成的。通常它们在同一个房间里，或在同一个办公室里。比如你的财务信息，应该固定在某一节点，就象你的财务部门被安排在办公区域的的一个不常变动的地方。 <br>注意每台机器是通过硬连接线接到Hub的。Hub再接到交换机上。由于网络分段了，数据包只能在这个网段上被sniffer。其余的网段将不可能被sniffer。 <br>所有的问题都归结到信任上面。计算机为了和其他计算机进行通信，它就必须信任那台计算机。作为系统管理员，你的工作是决定一个方法，使得计算机之间的信任关系很小。这样，就建立了一种框架，可以告诉你什么时候放置了一个sniffer，它放在那里了，是谁放的等等。 <br>如果你的局域网要和INTERNET相连，仅仅使用防火墙是不够的。入侵者已经能从一个防火墙后面扫描，并探测正在运行的服务。你要关心的是一旦入侵者进入系统，他能得到些什么。你必须考虑一条这样的路径，即信任关系有多长。举个例子，假设你的WEB服务器对某一计算机A是信任的。那么有多少计算机是A信任的呢。又有多少计算机是受这些计算机信任的呢？在信任关系中，这台计算机之前的任何一台计算机都可能对你的计算机进行攻击，并成功。你的任务就是保证一旦出现的Sniffer，它只对最小范围有效。 <br>Sniffer往往是攻击者在侵入系统后使用的，用来收集有用的信息。因此，防止系统被突破是关键。系统安全管理员要定期的对所管理的网络进行安全测试，防止安全隐患。同时要控制拥有相当权限的用户的数量。请记住，许多攻击往往来自网络内部。 <br>