说实话,我在服务器pipe理方面很差,但是我的老板向我求助。 他的服务器有限的带宽2GB /天,今天他收到公司的警告,他超过它,并使用… 24GB。
因为他是不可能的,所以他问我是否可以追查这个问题。 我不知道从哪里开始或做什么。
任何信息将是有益的,我怎么才能找出什么是错的。
机器在Ubuntu 12.04上运行。 最让人好奇的是,根据主持人提供的图表,只使用了外发转移。
编辑
感谢您的build议,我会运行tcpdump并尝试检查结果
要立即监控,您可以使用iftop 。 这将显示当前活动的连接和他们正在使用的带宽。 一旦确定了高stream量连接,find本地端口号并使用netstat
来查找连接属于哪个进程。
sudo netstat -tpn | grep 12345
对于长期监测,我会build议像darkstat 。 这可以给你每个主机和端口,可能让你弄清楚什么是交通相关的细目。
我build议安装ntop。
把它放在主机网关/路由器的位置上,观察一天/一周的stream量。 Ntop提供了一个networking用户界面,您可以通过IP /端口/协议查看故障。
那么,数据包捕获通常是这种情况下的第一个开始。 确保安装了tcpdump( $ sudo apt-get install tcpdump
),然后运行以下命令:
$ sudo tcpdump -w packet.log
这会将所有数据包的日志写入packet.log
。 让它运行几分钟,然后下载该文件,并使用Wireshark进行检查。 如果神秘的stream量仍然在发生,那么通过数据包捕获数据的粗略浏览应该是非常明显的。
看看tcpdump 。 它可以转储所有的networkingstream量(不仅如名称所示的tcp),然后你可以用像Wireshark这样的应用程序读取。 在Wireshark中,很容易过滤某些types的数据,甚至是networkingI / O的绘图。
另一个有用的工具可能是netstat,它显示正在进行的networking连接列表。 也许有关系不应该在那里。 Tcpdump更有用(捕获几分钟,然后检查是否已经可以看到源代码),但是netstat可能会给你一个快速的概述。
顺便读一下,我的第一个想法是,你的服务器上有恶意软件,或者它被用于放大攻击。 但是为了检查这个,你需要先运行tcpdump。
编辑:请注意,tcpdump可能需要以root身份运行,也许你需要使用sudo tcpdump
。
另一个编辑:因为我不能真正find一个好的网页来链接什么放大攻击一般,这里是一个简短的版本:
像在DNS上运行的协议。 UDPstream量是无连接的,因此你可以很容易地欺骗别人的IP地址。 由于DNS答案通常比查询大,因此可用于DoS攻击。 攻击者发送一个查询,请求DNS服务器上给定名称的所有logging,并通知DNS服务器该请求来自X.这个X是攻击者想要的DoS的目标。 DNS服务器然后好心回复,发送(大,说4kB)答复给X.
这是放大,因为攻击者发送的数据less于X实际接收到的数据。 DNS不是唯一可能的协议。
在search了相当长的一段时间之后(几天内超过了60GB的带宽),我发现我的服务器是一个DDOS攻击源。
首先,我试图安装Oracle DB,因此我创build了oracle用户。 黑客以某种方式设法打破了该用户的通行证(我想我应该让它变得更难:(),他们在Oracle主目录下创build了一个隐藏的目录,其中有一个crontab,它手动运行一些攻击目标服务器的deamon。
而且,黑客在我的服务器上创build了2个新用户:avahi和colord。 我应该怎么办呢? 我GOOGLE了,似乎同名的软件是不危险的,但我删除了这些用户(和甲骨文太)。
而且,我还删除了整个甲骨文家,其中的一切。
我想我需要更多的保护我的服务器,因为它可能会再次受到攻击,谢谢大家的帮助!
最好的工具可能是iftop ,通过sudo apt-get install iftop很容易获得。 它将根据罪魁祸首的IP /主机名显示输出:
191Mb 381Mb 572Mb 763Mb 954Mb └────────────┴──────────┴─────────────────────┴───────────┴────────────────────── box4.local => box-2.local 91.0Mb 27.0Mb 15.1Mb <= 1.59Mb 761kb 452kb box4.local => box.local 560b 26.8kb 27.7kb <= 880b 31.3kb 32.1kb box4.local => userify.com 0b 11.4kb 8.01kb <= 1.17kb 2.39kb 1.75kb box4.local => b.resolvers.Level3.net 0b 58b 168b <= 0b 83b 288b box4.local => stackoverflow.com 0b 42b 21b <= 0b 42b 21b box4.local => 224.0.0.251 0b 0b 179b <= 0b 0b 0b 224.0.0.251 => box-2.local 0b 0b 0b <= 0b 0b 36b 224.0.0.251 => box.local 0b 0b 0b <= 0b 0b 35b ───────────────────────────────────────────────────────────────────────────────── TX: cum: 37.9MB peak: 91.0Mb rates: 91.0Mb 27.1Mb 15.2Mb RX: 1.19MB 1.89Mb 1.59Mb 795kb 486kb TOTAL: 39.1MB 92.6Mb 92.6Mb 27.9Mb 15.6Mb
不要忘记旧版* nix上的经典和强大的sar和netstat实用程序!
另一个好的工具是nload ,它是一个实时监控带宽的好工具,可以通过sudo apt-get install nload轻松安装到Ubuntu或Debian中。
Device eth0 [10.10.10.5] (1/2): ===================================================================================== Incoming: . ...| # ####| .. |#| ... #####. .. Curr: 2.07 MBit/s ###.### #### #######|. . ## | Avg: 1.41 MBit/s ########|#########################. ### Min: 1.12 kBit/s ........ ################################### .### Max: 4.49 MBit/s .##########. |###################################|##### Ttl: 1.94 GByte Outgoing: ########## ########### ########################### ########## ########### ########################### ##########. ########### .########################### ########### ########### ############################# ########### ###########..############################# ############ ########################################## ############ ########################################## ############ ########################################## Curr: 63.88 MBit/s ############ ########################################## Avg: 32.04 MBit/s ############ ########################################## Min: 0.00 Bit/s ############ ########################################## Max: 93.23 MBit/s ############## ########################################## Ttl: 2.49 GByte
当你超过带宽配额时,捕获所有发送的数据包可能不是最明智的方法 – 你将如何获得系统的数据进行分析?
你有什么访问权限? 哪些端口是开放的? 你检查了正在运行的服务的日志? 像awstats这样的东西会汇总FTP,HTTP和SMTP日志(假设这些服务器被configuration为logging日志中的数据)。 OTOH mrtg将logging和跟踪端点/端口的networking使用情况。