我会尽我所能去尝试和解释这个,因为这对我来说很奇怪和困惑。 我之前发布了一个关于最近设置的VPS上的MySQL查询持续高峰的问题。 事实certificate,这是我正在开发的一个站点上的一个单一的职位。 这个post有3万多个垃圾评论! 由于该网站是一个我慢慢build设,我还没有configuration反垃圾评论软件。
我已经删除了已经给服务器rest的特定post,但post的url不断受到打击。 令人沮丧的是每一个命中来自不同的知识产权。 我怎么开始阻止/阻止呢? 这甚至是我需要担心的事情吗?
以下是关于我的设置的一些更具体的细节,只是为了给出一些上下文:
下面是我刚刚针对相关页面的最近15分钟的apache访问日志示例:
dev.domain-name.com:80 97.87.97.169 - - [28/Mar/2010:06:47:40 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 202.149.24.193 - - [28/Mar/2010:06:50:37 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 193.106.92.77 - - [28/Mar/2010:06:50:39 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 194.85.136.187 - - [28/Mar/2010:06:52:03 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 220.255.7.13 - - [28/Mar/2010:06:52:14 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 195.70.55.151 - - [28/Mar/2010:06:53:41 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 71.91.4.31 - - [28/Mar/2010:06:56:07 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 98.209.203.170 - - [28/Mar/2010:06:56:10 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 24.255.137.159 - - [28/Mar/2010:06:56:19 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 77.242.20.18 - - [28/Mar/2010:07:00:15 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 94.75.215.42 - - [28/Mar/2010:07:01:34 +0000] "POST /comment/reply/3 HTTP/1.0" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 89.115.2.128 - - [28/Mar/2010:07:03:20 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 75.65.230.252 - - [28/Mar/2010:07:05:05 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 206.251.255.61 - - [28/Mar/2010:07:06:46 +0000] "POST /comment/reply/3 HTTP/1.0" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" dev.domain-name.com:80 213.194.120.14 - - [28/Mar/2010:07:07:22 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
我明白这是一个开放式的问题,但任何帮助或见解,你可以给予非常感谢。
这是棘手的。 在大多数情况下,我的首要任务是保持生产。 根据涉及多less个不同的源IP,您可能不得不坐下来,或者使用脚本和手动解决scheme的组合。
我的第一步是尽可能多地停下来花一些时间来处理这种情况。
剔除IP地址
grep 'blog/2009/11/23/another' log | awk '{print $2}' > iplist
生成iptables规则
sed 's/^/iptables -A INPUT -s /g' iplist | sed 's/$/ -j DROP/g' > drop.sh
放下他们,用你刚刚做的
sh drop.sh
在你的评论表上集成reCAPTCHA之类的东西将会阻止你的数据库受到攻击,因为僵尸程序将无法通过validation码。
使用JavaScript显示“提交”button也将阻止一些机器人能够提交评论表单。
这确实似乎是试图发布垃圾邮件。 请求似乎来自僵尸networking,因为地址不像parsing服务器那样parsing。 尝试使用各种IP地址的主机命令。 第一个地址似乎是来自charter.com的dhcp地址。 现在这个地址已经存在了,可能还有很长一段时间才会消失。
如果这是一个开发服务器,将80端口的访问locking到那些需要访问端口80的地址块。我使用Shorewall而不是ufw,因为它提供了一个简单的接口来locking我的服务器,但允许按需访问。
您可以使用allow命令lockingApache web服务器的访问权限。 您可以允许任意组合的地址块,地址或受密码保护的访问权限。
我会用我自己。 正如你所发现的,允许公开发布是对垃圾邮件发送者的邀请。 这是一个你不必担心的问题。 你似乎已经解决了这个问题。 但是,post的状态没有显示。 我build议你改变你的日志格式以包括发布状态。 组合的日志格式将为日志分析提供更好的信息。