mod_rewrite 和 access.log

mod_rewrite 和 access.log

我的网站最近遭受了 DOS 攻击,安装 mod-evasive 后问题基本得到解决(安装 mod-evasive 后问题就解决了)

我想找到用于攻击的 IP,因此很自然地我查看了 access.log,结果发现了数百行这样的内容:

127.0.0.1 - - [08/Oct/2011:22:08:33 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)"
127.0.0.1 - - [08/Oct/2011:22:09:22 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)"
127.0.0.1 - - [08/Oct/2011:22:09:23 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)"
127.0.0.1 - - [08/Oct/2011:22:09:24 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.9 (Debian) PHP/5.3.8-1~dotdeb.1 with Suhosin-Patch (internal dummy connection)" 

我很确定这是因为我正在使用 mod_rewrite,简而言之,我希望 apache 记录预重定向请求而不是内部重定向请求 - 有人知道这是否可能吗?

答案1

这些是 apache 父进程的内部请求,用于保持子进程处于活动状态,并在负载指示需要新的子进程时生成新的子进程。

根据拒绝服务攻击的类型,您很难从访问日志中获取 IP。访问日志仅记录请求 - 许多 DoS 攻击实际上并不提交 HTTP 请求。有些会。

您可能可以从 RewriteLog 中得到您想要的东西,但这通常不是访问日志中包含的内容。访问日志表示处理完成后(无论成功与否)对请求的记录。您可能获取您正在寻找的数据mod_log_forensic但我不知道人们是否会建议使用这个模块来记录日常请求。

答案2

我的网站最近遭受了 DOS 攻击

您如何确定您的服务器受到了攻击?

(内部虚拟连接)

我很确定这是因为我使用了 mod_rewrite,

不,这些是 Apache 向自身发送的请求,用于唤醒正在监听新连接的进程。请查看如果你想忽略它们。

我想找到用于攻击的 IP

您还可以用它netstat来计算到端口 80 的连接数,如下所示:

netstat -n | grep :80 | awk '{ print $5 }' | cut -d: -f1 | sort | uniq -c | sort -rn | head

答案3

这些连接与 mod_rewrite 没有任何关系,您不必担心。

http://wiki.apache.org/httpd/InternalDummyConnection

答案4

如果你想找到攻击者,我建议你再次研究你的访问日志。一些日志分析器可能会为你节省很多时间。我使用ddos查看器查看器用于查看日志,尽管网络上有许多这样的程序。我知道这个网站是俄语的,但它非常好用,我忍不住推荐它来解决你的问题。

相关内容