DDOS攻击下的服务器 – 如何找出IP?

我的服务器是在DDOS攻击下,我想阻止正在进行的IP,我应该寻找什么日志来确定攻击者的IP?

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

看看顶部的IP地址。 如果任何人脱颖而出,这些将是防火墙的。

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

这将查看当前活动的连接,以查看是否有任何IP连接到端口80.您可能需要更改剪切-c 45 – 因为IP地址可能不会在第45列开始。如果有人正在执行UDP flood你的networking服务器,这也会捡起来。

如果没有任何IP显示出任何超出标准的IP,你就需要假设你有一个僵尸networking攻击你,并且需要在日志中寻找特定的模式,看看他们在做什么。 针对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。

诀窍是find一些与普通stream量中不存在的攻击stream量相同的东西,然后通过iptables,mod_rewrite或上游的webhost进行过滤。 如果你正在使用Slowloris,Apache 2.2.15现在有了reqtimeout模块,它允许你configuration一些设置来更好地防止Slowloris。

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

我最喜欢的检查DOS攻击的日志文件是/ var / log / secure(在Redhat / Centos / Fedora下)和/var/log/auth.log(在Ubuntu下,debian …)。 你会看到攻击者的源IP地址失败的login尝试,大部分时间是基于字典的攻击。

一些好的提示在这里。 我还要补充一点:

 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)。 这将给你一个“graphics”的ips与更多build立连接的angular度来看。

希望这可以帮助。

对于那些不能得到这个工作的人,我修复了在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 ""}' 

哪个发行版?

我认为这个日志是在Ubuntu下的/var/log/apache2/access.log中的。可能也是Debian。

运行updatedb为sudo,然后从命令行findaccess.log。

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

你可以使用tcpdump来查看它是哪个地址$ tcpdump -vv port X如果你怀疑一个特定的端口

如果你使用的是分布式DOS,那么肯定会有多于一个的IP被阻塞,并且IP可能被伪造,你最好问你的ISP如mfinni所说的那样。 此外,这可能不仅仅是针对您的服务器的DOS,而是一个诱饵来隐藏真正的攻击被检测到,因此请检查所有暴露的服务是否由最新的软件运行。 您可能也对mod_dosevasive for apache感兴趣。

为了保护我的服务器,我使用了一个简单的脚本Fail2Ban

扫描日志文件(如/ var / log / pwdfail或/ var / log / apache / error_log),并禁止导致密码失败的IP。 它更新防火墙规则以拒绝IP地址。

http://www.fail2ban.org/wiki/index.php/Main_Page

首先你必须确定DOS的types。 一些攻击是非常隐蔽但有效的(slowloris),其中一些攻击非常沉重,可能会导致ISP下载(ICMP洪泛的带宽高于ISP源)。

确定DOS的types后,请联系您的ISP,询问他们是否可以过滤掉stream量。

我已经看到ICMP泛滥,所以我们不得不要求上游ISP通过BGP社区过滤掉目的IP。