服务器遭受 DDOS 攻击 - 如何找出 IP?

服务器遭受 DDOS 攻击 - 如何找出 IP?

我的服务器正遭受 DDOS 攻击,我想阻止发起攻击的 IP,我应该查找哪些日志来确定攻击者的 IP?

答案1

tail -n 10000 yourweblog.log|cut -f 1 -d ' '|sort|uniq -c|sort -nr|more

查看排名靠前的 IP 地址。如果某个 IP 地址与其他 IP 地址相比特别突出,则这些 IP 地址将被防火墙拦截。

netstat -n|grep :80|cut -c 45-|cut -f 1 -d ':'|sort|uniq -c|sort -nr|more

这将查看当前活动的连接以查看是否有任何 IP 连接到端口 80。您可能需要更改 cut -c 45-,因为 IP 地址可能不是从第 45 列开始。如果有人对您的 Web 服务器进行 UDP 泛洪,这也会将其捕获。

如果上述两个都没有显示任何异常的 IP,则您需要假设有僵尸网络正在攻击您,并且需要在日志中查找特定模式以查看它们在做什么。针对 WordPress 网站的常见攻击是:

GET /index.php? HTTP/1.0

如果您查看网站的访问日志,您可能能够执行以下操作:

cut -f 2 -d '"' yourweblog.log|cut -f 2 -d ' '|sort|uniq -c|sort -nr|more

它会显示最常被访问的 URL。您可能会发现它们正在访问特定脚本,而不是加载整个网站。

cut -f 4 -d '"' yourweblog.log|sort|uniq -c|sort -nr|more

可以让你看到常见的 UserAgent。他们可能在攻击中使用单个 UserAgent。

诀窍是找到与攻击流量共同但正常流量中不存在的东西,然后通过 iptables、mod_rewrite 或您的网站主机上游对其进行过滤。如果您受到 Slowloris 的攻击,Apache 2.2.15 现在有 reqtimeout 模块,它允许您配置一些设置以更好地防范 Slowloris。

答案2

仅供参考-您应该尝试与您的 ISP 合作,看看他们是否可以阻止您的上游。

答案3

这里有一些很好的建议。我还想补充一点:

netstat -an | grep ESTABLISHED | awk '\''{print $5}'\'' | awk -F: '\''{print $1}'\'' | sort | uniq -c | awk '\''{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'\''

将其置于别名下(例如 nn)。这将为您提供具有更多已建立连接的 ips 的“图形”视角。

希望这可以帮助。

对于那些无法让它工作的人,我已经修复了语法,以便它可以在 Ubuntu 下运行:

netstat -an|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|awk '{ printf("%s\t%s\t",$2,$1); for (i = 0; i < $1; i++) {printf("*")}; print ""}'

答案4

哪个发行版?

我认为 Ubuntu 的日志位于 /var/log/apache2/access.log 下...也可能是 Debian 的日志。

以 sudo 身份运行 updatedb,然后从命令行找到 access.log。

编辑:我相信这只会在他们通过请求页面或直接通过端口 80 访问您时才会发生。如果他们访问其他端口,您将看不到所需的信息,您需要检查该端口上正在运行哪个进程,并查看该进程的连接日志。

相关内容