TLDR:如何深入了解我的Mac mini OSX服务器以确定哪些进程消耗了这么多带宽,或者所有入站stream量来自哪里?
资源caching开启,所有资源都被缩小或图像被压缩,我们的网页上个月的网站带宽消耗较less(www.vulytrampolines.com),我们的分析stream量也是一样的。
背景故事:我们有两台运行我们的网站/舞台/数据库等的微型服务器。从美国的一个专用服务器转移到城市的一个托pipe地点后,我们的带宽消耗已经翻了三番 。 在这两者之间有一个数据库复制过程设置,以及DNS和各种网站(例如,大型文件,数据库任务,内部networking包等在登台服务器上,网站和数据库在生产服务器上)
我们的登台服务器在3天内有7GB的入站stream量 。 有谁知道如何检查入站stream量来源,看看这个200k连接的入站stream量的一致性stream来自哪里? 我们不知道。 我们根本没有发送文件,唯一需要激活的是SSH和数据库复制过程。 netstat [见下文]显示我们有大约20多个已build立的和30多个close-weight连接到端口625.我们还没有模糊的如何这可能发生。
令人讨厌的是,webstats显示我们没有使用任何接近11.66GB的HTTPstream量(它说我们在上个月使用了22GB,而我们的出站stream量被logging为超过100GB)。 数据库统计说,我们没有使用任何接近足够的带宽来解决问题。
这是我们的分期服务器,venus1(它已经几个星期了): 
这是我们的生产服务器,venus2: 
在venus1上的netstat -anp tcp输出。 大部分的国外地址来自我们的工作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
除非你有一个非常好的理由,否则请马上对Mac Minis上的所有非公开端口进行防火墙处理,并且只暴露你需要的东西! 我做了一个快速检查,目前所有的服务似乎都是完全开放的(SSH,SMTP,Tomcat,VNC,MySQL和apple-xsrvr-admin(TCP625)),这是一个非常糟糕的主意。
你看到的大量入站stream量可能很可能是黑客/机器人试图暴力login和服务密码 – 我在服务器上看到很多,特别是对SSH(因为它通常是面向公众的),并直接反对stream行的networking软件,如WordPress的/wp-login.php页面。 从你的netstat,我可以看到以色列和中国的IP都试图访问TCP625(apple-xsrvr-admin,用于DirectoryService,Open Directory Assistant和Workgroup Manager),这不是一个好兆头。 我希望你所有的用户名和密码都很强大,因为 – 不要试图在这里发出危言耸听的声音,但是 – 7GB的暴力行为可能会让一些坏人得到他们不应该访问的东西,不pipe安全/任何软件的补丁状态。
检查您的托pipe服务提供商/科洛,你有某种远程串行控制台和/或VNC访问,如果你不小心阻止自己访问您的服务器,然后添加绝对最低要求为您远程pipe理服务器自己的规则和转防火墙上,我假设他们还没有。 默认情况下,OS X服务器的防火墙会阻止除用于远程configuration服务器(TCP22,TCP311,TCP626,TCP625,ICMP标准ping(input和输出),UDP53 DNS名称parsing)以外的所有传入端口,所以您应该可以将其转为直接上,虽然你想要locking更多的一旦你这样做了。 如果您的办公室没有静态IP地址,则创build特定于您的办公室IP(或您的ISP的IPnetworking块)的地址组,并使用这些地址组来打开pipe理员访问权限(例如,SSH,OpenDirectory,VNC)。 创build另一个具有122.99.117.18和122.99.117.19(或122.99.117.18/31掩码)的IP访问权限的群组,以相互交谈并允许这个用于MySQL复制。 假设他们是面向公众的,请打开全世界的SMTP,HTTP,HTTPS端口。 locking所有的东西,只允许需要访问每个端口的IP。 考虑这样做的出站stream量。 你要提前计划好这个,确保你做好了,但要尽快做,而不要把服务器放在一个开放的坐着的鸭子上。
检查您的服务器的日志,并寻找可疑活动。 尤其要注意从奇怪位置或奇怪的时间login服务。 build立一些程序来定期做到这一点。
我不确定你使用的是哪个版本的OS X Server,但是猜测是10.6或者10.7, 这个Peachpit文件可能会帮助你开始使用防火墙。
正如苹果支持networking服务的PDF一样 (请参阅第4章了解防火墙)。
对于更高级的防火墙configuration,请尝试使用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 ,你可以发出: sudo ipfw add 65534 deny log logamount 1000 ip from any to any
或者从服务器pipe理的设置选项卡的高级子选项卡,如果你不太舒服的操纵从命令行的ipfw规则(这应该让你紧张,因为它可以结束严重,如果你滑了)。 应该有一个高级规则列表有点类似于下面的图像。 假设该规则已经在底部,勾选它启用它: 
请记住,ipfw规则在优先级列表中stream动,所以优先级1规则优先于其他任何规则。 因此,在65534处添加“拒绝所有”规则是最后一个,这意味着如果上面的所有内容都不允许优先处理,它将只会拒绝连接。
好的,就这样,让我们来处理一些地址组。 您已经定义了122.99.117.16/29的地址组,122.99.177.16-22(其中一个IP是网关),这是您的Mac Minis和其他共同IP地址。 您可能想要为您的办公地点定义另一个地址组,我猜测静态IP为59.167.152.67(或者如果您的工作获得了dynamicIP,则整个networking节点为59.167.0.0/16)。 为venus1和venus2做这个,并为你有的其他办公室添加更多。
一旦你定义了你的办公室组,然后给每个这些权限来访问TCP22,TCP311,TCP626,TCP625,TCP3283和TCP5900,所以你可以随时pipe理你的Minis,即使你禁用这些端口的世界访问。 使用GUI,转到服务器pipe理员设置的服务子选项卡。 将“编辑服务:”更改为您的办公地址组,然后勾选上述端口的相关框。
现在让我们解决一些更有问题的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的服务器状态)? 还要别的吗? 把它全部locking,只允许访问你的办公地址组和合适的地方(如MySQL复制)。
记住要testing一切! 学习使用nmap扫描您的服务器端口,以便您可以查看打开和closures的内容。 从不同的位置扫描(例如,您的办公室,通过另一个ISP在家里ssh'ed到您的其他服务器,在家里),以确保规则正常工作。 小心不要把自己锁在外面,但是尽可能把所有东西都锁紧。 重新阅读上面链接的Peachpit doc和Apple支持PDF,并真正学习这些材料,它会很好的支持你。 哦,并保持你的日志定期的眼睛!
好的,希望能够看到你,或者至less让你走上一条更好的道路。 祝你好运。
最快的解决scheme只是使用包嗅探器 – tcpdump或wireshark(后者具有graphics界面)。 如果有某种不断的stream量来源,它往往会突出。 一旦发现未知stream量的来源,您也可以深入了解有效载荷的细节。
基于分段服务器和生产服务器上的stream量统计之间的密切关联,看起来您的两个服务器正在相互交谈。
端口625是苹果产品使用的pipe理端口。 从你的netstat中,似乎有一台机器(.19)在端口625上连接到另一台机器(.18)。从一些谷歌search看来,Mac OS X使用端口625作为工作组pipe理器 ( 在山狮与configuration文件pipe理器 )。
同样,互联网上的各种其他机器似乎也连接到端口625,可能是试图破门而入。 你应该尽快防止你的服务器入侵。