我面临的问题是,我的网站(托管在专用 VPS 上)在过去 6 个月内运行良好。然而,从最近两天开始,它变得大量数据涌入,导致服务器崩溃。托管公司关闭了我的服务器。我尝试过多次恢复我的网站,但每次过了一段时间后都会发生同样的事情。
关于Dos攻击或者其他恶意工具,我想说一下我正在使用的:
Fail2Ban(适用于 ssh 和 apache)Mod_Security(apache)Mod_Evasive(apache)
然而服务器并没有受到任何实质性的攻击。
该网站是关于 URL 缩短器的网站。
**
- 详细信息: 操作系统: Centos 6.5 处理器:
- 英特尔六核至强 E5-2420
- 处理器速度:2GHZ
- CPU 数量:2
- 核心数: 6
- 内存:8GB
- 硬盘: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