Apache 服务器因带宽峰值问题崩溃

Apache 服务器因带宽峰值问题崩溃

我面临的问题是,我的网站(托管在专用 VPS 上)在过去 6 个月内运行良好。然而,从最近两天开始,它变得大量数据涌入,导致服务器崩溃。托管公司关闭了我的服务器。我尝试过多次恢复我的网站,但每次过了一段时间后都会发生同样的事情。

关于Dos攻击或者其他恶意工具,我想说一下我正在使用的:

Fail2Ban(适用于 ssh 和 apache)Mod_Security(apache)Mod_Evasive(apache)

然而服务器并没有受到任何实质性的攻击。

该网站是关于 URL 缩短器的网站。

**

  1. 详细信息: 操作系统: Centos 6.5 处理器:
  2. 英特尔六核至强 E5-2420
  3. 处理器速度:2GHZ
  4. CPU 数量:2
  5. 核心数: 6
  6. 内存:8GB
  7. 硬盘:4×1TB

**

这可能是什么问题?

请指导我,我是新手。已经在互联网上搜索了很多文章,但目前没有什么可以帮助我?

更新 1 带宽使用情况图像: http://oi57.tinypic.com/206fotk.jpg

更新 2 此外,Apache 服务器生成的日志文件太大,例如: 1. /etc/var/log/httpd/access_log (15GB) 2. /etc/var/log/httpd/error_log (5GB)

这是正常的吗?

更新 3 格式化了整个网站。重新安装了 Ubuntu 12 LTS... 1 小时后,网站下线,但这次没有出现峰值 !!! 我已经联系了托管公司 (THE LEASE WEB),但他们还没有回复 :-/

答案1

如果它是随机生成的 IP DOS 攻击,那么您的 ISP 是唯一可以阻止它的地方。

但是,如果您看到 IP 来自特定位置,请继续阅读。

查看 /var/log/messages 或 syslog。您的 NIC 是否出现故障?驱动程序有问题 - 是 Realtek 吗?

如果您希望在解决所有问题期间服务器保持在线,您可以在防火墙上屏蔽违规国家。例如,如果您对美国和加拿大的流量没有异议,并且 DOS/垃圾邮件不是来自美国或加拿大,那么您可以屏蔽违规国家。

剧本:

# Create the IP block
ipset create geoblock hash:net

country=( br cn fr de hk in id jp ro ru tw tr kp kr )

for c in "${country[@]}"
do
        for IP in $(wget -O - http://www.ipdeny.com/ipblocks/data/countries/$c.$
        do
                # really big hammer - block country, period
                sudo ipset add geoblock $IP
        done
done

这将阻止地理封锁 ipset:

iptables -I INPUT  -m set --match-set geoblock src -p TCP --destination-port 80 -j REJECT

如果您愿意,也请为 https 添加一个。

然后,当您满意时,您可以尝试另一个测试 - 这将再次打开您的防火墙:

ipset destroy geoblock

相关内容