您的网络秘生活,第 5 部分

作者:Marcel Gagné

是的,这是根据《美国传统词典》我们今天要介绍的工具的定义。实际上,还有另一个定义,“天堂般的”。在欢迎您来到系统管理员专栏的最新一期之前,请允许您先思考片刻。但首先...关于上一期专栏的一些未完成的事项。

在离开 xinetd 这个主题并继续之前,我必须向您展示另一个非常酷的功能。使用 redirect 属性,您可以创建一个服务(或指定一个现有的服务),并将所有流量重定向到另一台机器上的另一个端口。这样做的一个原因可能是将 Web 流量重定向到内部网络中除了 Internet 网关或防火墙之外的机器。让我们看一个例子。我在端口 2001 上创建了一个名为 fakeweb 的服务,并将其添加到我的 /etc/services 文件中。

     fakeweb         2001/tcp

然后,我在我的 /etc/xinetd.d 目录中为该服务创建了一个新的段落,并将文件命名为 fakeweb。以下是该文件中的内容

   service fakeweb
   {
        socket_type             = stream
        wait                    = no
        user                    = root
        redirect                = www.linuxjournal.com 80
        disable                 = no
   }

请看一下 “redirect” 属性。它包含一个主机名(或 IP 地址)和一个端口号。对于我这个相当愚蠢的例子,我决定想要一个内部端口 2001,它可以打开 Linux Journal 网站。为了使这一切生效,您需要重启 xinetd。我们将进行软重置,就像上一篇文章中一样。

   # ps as | grep xinetd
   529 ?  S   0:00 xinetd -stayalive -reuse -pidfile /var/run/xinetd.pid
   # kill -USR1 529

现在,当我在浏览器中输入 http://my_server:2001 时,我被自动神奇地传送到了 Linux Journal 网站。

除了我对 xinetd 的小尝试之外,我还在本系列文章中向您展示了如何理解在您的网络中飞速传输的数据包,以及可以帮助您做到这一点的工具。在本文的开头,我给出了 “ethereal” 的词典定义。Ethereal 碰巧也是一个优秀的网络协议分析器的名称,它是一个强大的工具,可让您实时查看网络上正在发生的事情。Ethereal 可用于各种平台,并根据 GPL 免费分发。虽然它在技术上是 beta 软件,但您会惊讶地发现它有多么有用。

Ethereal 是另一个需要 libpcap 数据包捕获库的程序。我们之前讨论过这个库,最近一次是在本系列的第三部分。如果您还没有它,请访问 libpcap 网站 http://www.tcpdump.org。您还需要 GTK+(可能已经安装在您的系统中)。GTK+ 可从 https://gtk.org.cn 获取。

如果您决定省去一些步骤,Ethereal 存在许多预编译的二进制发行版,包括 DEB 和 RPM。为了获得最新版本,您可以随时下载源代码并自行构建。首先访问 Ethereal 网站 http://www.ethereal.com。然后解压并构建软件。

     tar -xzvf ethereal-0.8.19.tar.gz
     cd ethereal-0.8.19
     ./configure
     make
     make install

让我们以相当基本的方式启动 Ethereal——我们将传递 -i 标志并指定我们要收集数据包的接口。例如,如果您的互联网网关使用 eth1,您将使用此命令

     ethereal -i eth1

请注意,窗口分为三个窗格。屏幕的顶部显示 ethereal 捕获的每个数据包。当您在顶部窗格中选择一个数据包时,第二个窗格会发挥作用,本质上允许您放大该单个数据包。最后,窗口的底部显示原始数据包数据。

点击 “Capture”,然后从下拉菜单中选择 “Start”。我还选中了实时更新数据包列表的框以及实时滚动选项。现在发生两件事。第一件事是弹出一个小的捕获统计窗口(底部带有一个 “Stop” 按钮)。它列出了一些协议(TCP、ICMP、UDP、NETBIOS、IPX 等)及其在网络流量中所占的百分比。首先,这是您的网络流量如何划分的一个很好的快照。第二件事是我们的主 Ethereal 窗口开始列出数据包。要查看 Ethereal 的实际操作,请点击此处

请注意彩色条。我发现使用 Ethereal 时有很多东西非常有用,而这只是其中之一。您可以通过对数据包类型进行着色来突出显示显示窗口中的某些协议。例如,我将所有 http.request 数据包突出显示为黄色,并将所有 DNS 请求突出显示为蓝色。TCP ack 以反色视频显示,黑色背景上显示白色文本。要做到这一点,我点击 “Display” 菜单,然后选择 “Colorize display”。这将弹出一个如下所示的框。

Your Network's Secret Life, Part 5

请注意,过滤器由名称和过滤器字符串组成。名称可以是任何对您有意义的东西。过滤器字符串比这更具体。要了解这些是什么,请点击 “Help”,然后选择(信不信由你)“Help”。您将获得一个多标签帮助屏幕,您可以从中选择 “Display Filters” 标签。Ethereal 监视的一切都在这里列出。

这不是使数据包列表更容易跟踪的唯一方法。再看一下主 Ethereal 窗口。看到左下角的 “Filter” 按钮了吗?您可以在那里输入您希望过滤的字段。由于我想监视跨接口的 Web 请求,所以我输入了 http.request。这导致显示只显示我的 http 请求,这有助于突出显示 Code Red 蠕虫的渗透尝试。顺便说一句,那是运行 “GET /default.ida?XXXXXXXXXXXXX” 的行。

Your Network's Secret Life, Part 5

(我很高兴我运行的是 Linux。)是的,我修剪了显示的第一部分,以隐藏潜在的无辜受害者,他们的服务器现在正试图攻击我的服务器。

您也可以保存当前数据以供以后检查。当您觉得已经捕获了足够的信息时,点击小百分比统计窗口上的 “Stop”,然后点击(主 Ethereal 窗口上的)“File”,并选择 “Save as”。给您的文件命名,您可以稍后从同一 “File” 菜单加载它。说到文件,现在是发出一点警告的好时机:数据包捕获文件过一段时间可能会变得非常大。

在结束之前,我应该告诉您,虽然 GUI 非常酷,可以让您通过点击来了解网络的全貌,但您也可以使用该软件的基于文本的版本。在本例中,我正在接口 eth1 上以文本模式启动 Ethereal。

     tethereal -i eth1 -V

-V 选项显示协议树;所有数据包的所有字段。由于您在这里缺少点击界面,因此将所有这些捕获到文件中以便您可以更轻松地研究这些信息是有意义的。

下次,当我们在系统管理员专栏再次相遇时,我想开始一些新的东西(好吧,有点新)。在那之前,请记住问自己...如果您不监视您的网络,谁在监视?

正在寻找本系列以前的文章? 点击此处获取列表。

电子邮件:ljeditors@ssc.com

加载 Disqus 评论