查找哪些内容占用了我所有服务器的带宽

查找哪些内容占用了我所有服务器的带宽

TLDR:如何深入研究我的 Mac mini OSX 服务器以确定哪些进程消耗了如此多的带宽,或者所有入站流量来自哪里?

资源缓存已打开,所有资源均已最小化或图像已压缩,我们的页面消耗的带宽比上个月的网站(www.vulytrampolines.com)要少,并且我们的分析流量也相同。

背景故事:我们有 2 台 Mac Mini 服务器运行我们的网站/暂存/数据库等。自从从美国的专用服务器转移到城市的托管服务器后,我们的带宽消耗不知何故四倍. 两者之间设置了数据库复制进程,以及 DNS 和各种网站(例如大文件、数据库任务、内联网包等在暂存服务器上,网站和数据库在生产服务器上)

我们的临时服务器已经7GB 入站流量3天。有谁知道如何检查入站流量源,以查看 200k 连接的持续入站流量可能来自何处?我们不知道。我们根本没有向它发送文件,唯一应该处于活动状态的是 SSH 和数据库复制过程。netstat[见下文] 显示我们在端口 625 上建立了大约 20 多个连接,并建立了 30 多个 close_weight 连接。我们完全不知道这是怎么发生的。

令人恼火的是,网络统计数据显示,我们的 HTTP 流量使用量远未达到 11.66GB(它表示,上个月我们使用了 22GB,但我们的出站流量却记录超过 100GB)。数据库统计数据也表明,我们使用的带宽远未达到导致问题的程度。

这是我们的登台服务器,venus1(几个星期以来它一直这样): 在此处输入图片描述

这是我们的生产服务器,venus2: 在此处输入图片描述

netstat -anp tcpvenus1 上的输出。大多数外部地址来自我们的工作 IP 地址。11211 是 memcached。

tcp4       0      0  122.99.117.18.49712    204.93.223.143.80      ESTABLISHED
tcp4       0      0  122.99.117.18.11211    122.99.117.18.49711    ESTABLISHED
tcp4       0      0  122.99.117.18.49711    122.99.117.18.11211    ESTABLISHED
tcp4       0     52  122.99.117.18.22       59.167.152.67.56106    ESTABLISHED
tcp4       0      0  122.99.117.18.11211    122.99.117.18.49588    ESTABLISHED
tcp4       0      0  122.99.117.18.49588    122.99.117.18.11211    ESTABLISHED
tcp4       0      0  122.99.117.18.49410    122.99.117.19.3306     ESTABLISHED
tcp4       0      0  122.99.117.18.5432     122.99.117.18.58704    ESTABLISHED
tcp4       0      0  122.99.117.18.58704    122.99.117.18.5432     ESTABLISHED
tcp4       0      0  127.0.0.1.58699        *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      110.142.234.238.62055  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.71.206.61838    ESTABLISHED
tcp4       5      0  122.99.117.18.625      203.206.171.34.61741   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.61270  ESTABLISHED
tcp4       0      0  127.0.0.1.54           *.*                    LISTEN
tcp4       0      0  122.99.117.18.53       *.*                    LISTEN
tcp4       0      0  127.0.0.1.53           *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      110.142.234.238.63980  ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.55282   ESTABLISHED
tcp46      0      0  *.80                   *.*                    LISTEN
tcp4       0      0  *.*                    *.*                    CLOSED
tcp46      0      0  *.443                  *.*                    LISTEN
tcp4       0      0  *.*                    *.*                    CLOSED
tcp4       0      0  122.99.117.18.625      122.99.117.19.50766    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.63981    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.60214  ESTABLISHED
tcp4       0      0  122.99.117.18.625      27.33.32.204.65196     ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.60274  ESTABLISHED
tcp4       0      0  122.99.117.18.625      122.99.117.19.53201    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.59662   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.49869    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.53827    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.64678  ESTABLISHED
tcp4       0      0  122.99.117.18.625      122.99.117.19.52810    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.62510  ESTABLISHED
tcp4       0      0  122.99.117.18.625      122.99.117.19.49909    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.56096  ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.53247   ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.62051   ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.93.92.59123     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.57173    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.49352   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.64362  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.59772     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.59528    CLOSE_WAIT
tcp4       0      0  *.3306                 *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      27.33.32.204.56812     ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.52987  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.50598    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.63339  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.63283  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.61312    ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.52045  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      122.99.117.19.49172    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.50501   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.93.92.56042     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.55882     ESTABLISHED
tcp4       0      0  122.99.117.18.311      58.111.93.92.55875     ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.58776   ESTABLISHED
tcp6       0      0  *.5432                 *.*                    LISTEN
tcp4       0      0  *.5432                 *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      58.111.93.92.52692     ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.57121   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.54673     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.53915     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.52109     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.51807     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.65049     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.93.92.64442     ESTABLISHED
tcp4       0      0  122.99.117.18.311      203.206.171.34.51628   ESTABLISHED
tcp4       0      0  122.99.117.18.625      203.206.171.34.51594   ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.62597     ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.62454     ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.58088     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.57305     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.53724     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.62224     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.62064     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.58236     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.51320   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.51297   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      203.206.171.34.50864   CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.49800  CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      27.33.32.204.50894     ESTABLISHED
tcp4       0      0  122.99.117.18.625      59.167.152.67.50411    ESTABLISHED
tcp4       0      0  122.99.117.18.625      27.33.32.204.54446     ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.51680     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.60797     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.60729     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.49209    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.63371     CLOSE_WAIT
tcp4      81      0  122.99.117.18.625      113.128.44.66.3842     CLOSE_WAIT
tcp4      11      0  122.99.117.18.625      213.57.189.27.55646    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      110.142.234.238.53655  ESTABLISHED
tcp4       0      0  122.99.117.18.625      110.142.234.238.53644  ESTABLISHED
tcp4       0      0  122.99.117.18.625      58.111.79.42.52146     CLOSE_WAIT
tcp4       0      0  127.0.0.1.8005         *.*                    LISTEN
tcp46      0      0  *.8009                 *.*                    LISTEN
tcp46      0      0  *.8080                 *.*                    LISTEN
tcp4       0      0  122.99.117.18.625      58.111.79.42.50716     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.49872    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.63218     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.62471     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.64758     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.64646     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56788     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56770     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56017     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.53131     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.52519     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.51215     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.51131     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.57058    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      59.167.152.67.56711    CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.50975     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.57209     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.54753     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.60786     CLOSE_WAIT
tcp4       0      0  122.99.117.18.625      58.111.79.42.56174     CLOSE_WAIT
tcp4       0      0  *.11212                *.*                    LISTEN
tcp6       0      0  *.11212                *.*                    LISTEN
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49167        ESTABLISHED
tcp4       0      0  127.0.0.1.49167        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  122.99.117.18.5218     122.99.117.18.49166    ESTABLISHED
tcp4       0      0  122.99.117.18.49166    122.99.117.18.5218     ESTABLISHED
tcp46      0      0  *.5268                 *.*                    LISTEN
tcp46      0      0  *.5218                 *.*                    LISTEN
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49163        ESTABLISHED
tcp4       0      0  127.0.0.1.49163        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49162        ESTABLISHED
tcp4       0      0  127.0.0.1.49162        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  127.0.0.1.5348         127.0.0.1.49161        ESTABLISHED
tcp4       0      0  127.0.0.1.49161        127.0.0.1.5348         ESTABLISHED
tcp4       0      0  127.0.0.1.5348         *.*                    LISTEN
tcp4       0      0  *.11211                *.*                    LISTEN
tcp6       0      0  *.11211                *.*                    LISTEN
tcp4       0      0  *.88                   *.*                    LISTEN
tcp6       0      0  *.88                   *.*                    LISTEN
tcp6       0      0  *.2000                 *.*                    LISTEN
tcp4       0      0  *.2000                 *.*                    LISTEN
tcp6       0      0  *.4190                 *.*                    LISTEN
tcp4       0      0  *.4190                 *.*                    LISTEN
tcp4       0      0  *.464                  *.*                    LISTEN
tcp6       0      0  *.464                  *.*                    LISTEN
tcp6       0      0  *.25                   *.*                    LISTEN
tcp4       0      0  *.25                   *.*                    LISTEN
tcp4       0      0  *.749                  *.*                    LISTEN
tcp6       0      0  *.749                  *.*                    LISTEN
tcp4       0      0  *.22                   *.*                    LISTEN
tcp6       0      0  *.22                   *.*                    LISTEN
tcp4       0      0  *.5900                 *.*                    LISTEN
tcp6       0      0  *.5900                 *.*                    LISTEN
tcp4       0      0  *.625                  *.*                    LISTEN
tcp6       0      0  *.625                  *.*                    LISTEN
tcp4       0      0  127.0.0.1.631          *.*                    LISTEN
tcp6       0      0  ::1.631                *.*                    LISTEN
tcp4       0      0  *.311                  *.*                    LISTEN

答案1

除非你有一个非常不这样做的充分理由是,请对 Mac Mini 上的所有非公共端口进行防火墙保护立即地并且只公开您需要的内容!我做了一个快速检查,您目前的所有服务似乎都完全向互联网开放(SSH、SMTP、Tomcat、VNC、MySQL 和 apple-xsrvr-admin (TCP625) 当然是开放的),这是一个非常糟糕的主意。

您看到的大量入站流量很可能是黑客/机器人试图强行破解您服务的登录名和密码——我经常在服务器上看到这种情况,特别是针对 SSH(因为它通常面向公众)和直接针对流行的网络软件,例如 WordPress 的 /wp-login.php 页面。从您的 netstat 中,我可以看到来自以色列和中国的 IP 试图访问 TCP625(apple-xsrvr-admin,用于 DirectoryService、Open Directory Assistant 和 Workgroup Manager),这不是一个好兆头。我希望您的所有用户名和密码都是强密码,因为——并不是想在这里危言耸听,但是——7GB 的暴力破解可能会让一些坏人获得他们不应该访问的东西,无论任何软件的安全/补丁状态如何。

请与您的托管服务提供商/托管商核实您是否具有某种远程串行控制台和/或 VNC 访问权限,以防您不小心阻止自己访问服务器,然后将您自己远程管理服务器所需的绝对最低限度添加到规则集中并打开防火墙,我假设他们还没有。默认情况下,OS X Server 的防火墙会阻止除用于远程配置服务器的端口(TCP22、TCP311、TCP626、TCP625、ICMP 标准 ping(进出)、UDP53 DNS 名称解析)之外的所有传入端口,因此您可以直接打开它,但是您需要在这样做之后进一步锁定它们。创建特定于您的办公室 IP(如果您的办公室没有静态 IP 地址,则为您的 ISP 的 IP 网络块)的地址组,并使用它们打开管理员访问权限(例如 SSH、OpenDirectory、VNC)仅对这些地址组进行访问。为 122.99.117.18 和 122.99.117.19(或​​ 122.99.117.18/31 掩码)创建另一个具有单一 IP 访问权限的组,以便彼此通信并允许其进行 MySQL 复制。向全世界开放 SMTP、HTTP、HTTPS 端口,假设它们是面向公众的。将所有东西都锁定严密,只向需要访问每个端口的 IP 授予权限。考虑对出站流量也这样做。您需要提前计划并确保一切顺利,但要尽快完成,而不是让服务器成为容易被攻击的目标。

检查服务器日志并查找可疑活动。特别要查找从奇怪位置或奇怪时间成功登录服务的情况。建立一些程序定期执行此操作。

我不确定你使用的是哪个版本的 OS X Server,但猜测是 10.6 或 10.7,这个 Peachpit 文档可以帮助您开始防火墙工作。

可能此 Apple 支持网络服务 PDF(有关防火墙,请参阅第 4 章)。

对于更高级的防火墙配置,请尝试 Waterroof 或 Icefloor,它们提供了一个简单的 GUI,而不必在命令行上使用 pf。


(编辑以解决从每个服务器粘贴的 ipfilter 规则)

好的,让我们从 venus1 (122.99.117.18) 开始。这里明显的问题是没有 catch-all deny ip from any to any,所以我们需要立即修复它。从命令行,您可以发出: sudo ipfw add 65534 deny log logamount 1000 ip from any to any

或者,如果您不太习惯从命令行操作 ipfw 规则(这会让您感到紧张,因为如果您失误,后果会很糟糕),也可以从服务器管理员的“设置”选项卡下的“高级”子选项卡中进行操作。应该有一个类似于下图的高级规则列表。假设规则已经在底部,请勾选它以启用它: 服务器管理设置选项卡,高级

请记住,ipfw 规则会按照优先级列表向下流动,因此优先级 1 的规则优先于其他所有规则。因此,在 65534 处添加“拒绝一切”规则是列表的最后一个规则,这意味着只有当它上面的所有内容都不允许某项连接时,它才会拒绝连接。

好的,解决了这个问题后,让我们来处理一些地址组。您已定义地址组为 122.99.117.16/29,因此 122.99.177.16-22(其中一个 IP 是网关),这是您的 Mac Mini 和其他 co-lo IP 地址。您可能想为您的办公室位置定义另一个地址组,我猜是静态 IP 59.167.152.67(或者如果您的工作获得动态 IP,则 Internode 的整个网络块是 59.167.0.0/16)。对 venus1 和 venus2 执行此操作,并为您拥有的任何其他办公室添加更多。

定义办公室组后,请授予每个办公室组访问 TCP22、TCP311、TCP626、TCP625、TCP3283 和 TCP5900 的权限,这样即使您禁用了对这些端口的全球访问,您也始终可以管理您的 Minis。使用 GUI,转到服务器管理员设置的“服务”子选项卡。将“编辑服务:”更改为您的办公室地址组,然后勾选上述端口的相关框。

现在让我们解决一些更成问题的 venus1 规则。例如:

12321    1570      78548 allow tcp from any to any dst-port 3306

规则 12321 允许所有东西连接到 MySQL。禁用“任何”地址组的此规则(再次使用“服务”子选项卡),同时禁用世界上不需要访问的任何其他服务。您可能希望保持 TCP25(smtp 邮件)、TCP/UDP53(dns)、TCP80(HTTP)、TCP443(HTTPS)可在全球范围内访问,但您是否需要在全球范围内访问 TCP8080(tomcat 的服务器状态)?还有其他吗?锁定所有内容,并仅在适当的情况下授予对您的办公室地址组和 co-lo 的访问权限(例如 MySQL 复制)。

记住要测试一切!学会使用nmap扫描服务器端口,以便查看哪些端口是打开的,哪些端口是关闭的。从不同位置(例如您的办公室、通过 ssh 连接到其他服务器、在家中通过其他 ISP 等)进行扫描,以确保规则正常工作。小心不要将自己锁在外面,但要尽可能严密地锁定一切。重新阅读上面链接的 Peachpit 文档和 Apple 支持 PDF,并真正学习材料,这对您大有裨益。哦,还要定期查看您的日志!

好的,希望这能让你走上正轨,或者至少让你走上更好的道路。祝你好运。

答案2

最快的解决方案就是使用数据包嗅探器 - tcpdump 或 wireshark(后者具有图形界面)。如果有某种持续的流量源,它就会显得突出。一旦您发现未知流量的来源,您还可以深入了解有效负载的细节。

答案3

根据测试服务器和生产服务器的流量统计数据之间的密切相关性,看来你的两台服务器正在通信彼此

端口 625 是 Apple 产品使用的管理端口。从您的 netstat 来看,似乎一台机器 (.19) 正在通过端口 625 连接到另一台机器 (.18)。从一些 Google 搜索来看,Mac OS X 使用端口 625 进行工作组经理(即在 Mountain Lion 中被 Profile Manager 取代)。

互联网上似乎还有许多其他机器正在连接到端口 625,这可能是入侵企图。您应该尽快为服务器设置防火墙,以防止入侵。

相关内容