Ben*_*nno 1 bandwidth mac-osx-server netstat network-traffic
TLDR:我如何更深入地挖掘我的 Mac mini OSX 服务器以确定哪些进程消耗了如此多的带宽,或者所有入站流量来自哪里?
资源缓存开启,所有资源都被缩小或图像被粉碎,我们的页面比上个月的网站 (www.vulytrampolines.com) 消耗的带宽更少,我们的分析流量是相同的。
背景故事:我们有 2 台 mac mini 服务器运行我们的网站/登台/数据库等。自从从美国的专用服务器迁移到城市的托管地点后,我们的带宽消耗不知何故增加了四倍。两者之间有一个数据库复制过程设置,以及DNS和各种网站(例如大文件、数据库任务、内网包等在临时服务器上,网站和数据库在生产服务器上)
我们的临时服务器在3 天内有7GB 的入站流量。有谁知道如何检查入站流量来源,以查看 200k 连接处的入站流量的一致流可能来自哪里?我们不知道。我们根本不向它发送文件,唯一应该处于活动状态的是 SSH 和数据库复制过程。[见下文] 显示我们已经建立了大约 20 多个与 625 端口的 close_weight 连接和 30 多个 close_weight 连接。我们还不清楚这是如何发生的。netstat
令人讨厌的是,webstats 显示我们没有使用接近 11.66GB 的 HTTP 流量(它说我们在上个月使用了 22GB,但我们的出站流量记录为超过 100GB)。数据库统计数据表明,我们也没有使用足够的带宽来导致问题。
这是我们的登台服务器 venus1(几个星期以来一直是这样):

这是我们的生产服务器 venus2:

netstat -anp tcpvenus1 上的输出。大部分国外地址来自我们的工作IP地址。11211 是内存缓存。
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
Run Code Online (Sandbox Code Playgroud)
除非你有一个非常好的理由不,请防火墙上的台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(或您的 ISP 的 IP 网络块,如果您的办公室没有静态 IP 地址)的地址组,并使用这些来打开管理员访问(例如 SSH、OpenDirectory、VNC) 仅适用于这些。为 122.99.117.18 和 122.99.117.19(或 122.99.117.18/31 掩码)创建另一个具有单一 IP 访问权限的组以相互通信并允许 MySQL 复制。向全世界开放 SMTP、HTTP、HTTPS 端口,假设它们面向公众。严密锁定一切,仅向需要访问每个端口的 IP 授予权限。也考虑为出站流量执行此操作。您想提前计划并确保一切顺利,但要尽快完成,而不是让服务器坐立不安。严密锁定一切,仅向需要访问每个端口的 IP 授予权限。也考虑为出站流量执行此操作。您想提前计划并确保一切顺利,但要尽快完成,而不是让服务器坐立不安。严密锁定一切,仅向需要访问每个端口的 IP 授予权限。也考虑为出站流量执行此操作。您想提前计划并确保一切顺利,但要尽快完成,而不是让服务器坐立不安。
查看服务器的日志并查找可疑活动。尤其要寻找从奇数位置或奇数时间成功登录到服务的任何信息。建立一些程序来定期执行此操作。
我不确定您使用的是哪个版本的 OS X Server,但猜测是 10.6 还是 10.7,这个 Peachpit 文档可能会帮助您开始防火墙方面的工作。
Apple可能会在网络服务上支持 PDF(有关防火墙,请参阅第 4 章)。
对于更高级的防火墙配置,请尝试 Waterroof 或 Icefloor,它们提供简单的 GUI,而不必在命令行上使用 pf。
(编辑以解决从每个服务器粘贴的 ipfilter 规则)
好的,让我们从 venus1 (122.99.117.18) 开始。这里明显的问题是没有包罗万象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 和其他主机 IP 地址。您可能想为您的办公地点定义另一个地址组,我猜它的静态 IP 为 59.167.152.67(或者如果您的工作获得动态 IP,则 Internode 的整个网络块为 59.167.0.0/16)。为 venus1 和 venus2 执行此操作,并为您拥有的任何其他办公室添加更多。
一旦您定义了您的办公室组,然后授予这些权限中的每一个访问 TCP22、TCP311、TCP626、TCP625、TCP3283 和 TCP5900,这样即使您禁用对这些端口的全局访问,您也可以始终管理您的 Mini。使用 GUI,转到服务器管理员设置的服务子选项卡。将“Editing Services for:”更改为您的办公室地址组,然后勾选上述端口的相关框。
现在让我们解决一些更有问题的 venus1 规则。例如:
12321 1570 78548 allow tcp from any to any dst-port 3306
Run Code Online (Sandbox Code Playgroud)
规则 12321 允许一切连接到 MySQL。为“任何”地址组禁用此规则(再次使用服务子选项卡),当您在那里时,世界上不需要访问的任何其他服务。您可能希望保持 TCP25(smtp 邮件)、TCP/UDP53(dns)、TCP80(HTTP)、TCP443(HTTPS)全球可访问,但您是否需要全球访问 TCP8080(tomcat 的服务器状态)?还要别的吗?将其全部锁定,仅在适当的情况下授予对您的办公室地址组和 co-lo 的访问权限(例如 MySQL 复制)。
记得测试一切!学习使用nmap扫描您的服务器端口,以便您可以查看打开和关闭的内容。从不同位置进行扫描(例如,您的办公室、通过 ssh 连接到您的其他服务器、在家中通过另一个 ISP 等)以确保规则正常工作。小心不要把自己锁在外面,但尽可能把所有东西都锁起来。重新阅读上面链接的 Peachpit 文档和 Apple 支持 PDF 并真正学习材料,它会让你受益匪浅。哦,并定期关注您的日志!
好的,希望这能让你看到正确的一面,或者至少让你走上更好的道路。祝你好运。
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |