威言威语
我愿像茶,苦涩留心,清香予人。
威言威语
当前位置: 首页 > 设计 > 正文

linux服务器(nginx或者apache)限制IP访问的方法

近段时间一直饱受垃圾评论的攻击,通过屏蔽垃圾评论IP的方式,算是解决了这个问题,现在讲解下Linux服务器nginx或者apache环境下限制垃圾评论访问的方法,当然这个方法不是最好的,但是确实是非常实用的方法。
linux服务器(nginx或者apache)限制IP访问的方法
目录
文章目录隐藏
  1. nginx环境下
  2. 垃圾评论IP的收集
  3. apache环境下

近段时间一直饱受垃圾评论的攻击,服务器一度负载太高而宕机,参见:WordPress垃圾评论防御记。开始试了很多方法都不能很好的解决问题,最后通过屏蔽垃圾评论IP的方式,算是解决了这个问题,当然这个方法不是最好的,但是确实是非常实用的方法。

然后一些朋友就问我是怎么屏蔽这些垃圾评论的IP的,以及能否共享这些垃圾评论的IP,还有朋友问怎么提取自己博客的垃圾评论的IP,这个稍稍讲解下,高手略过,我也是个菜鸟。

nginx环境下

新建 denyip.conf 文件,在服务器/usr/local/nginx/conf目录下的nginx.conf里面,加上


include denyip.conf;

将屏蔽的IP放到 denyip.conf 里面


deny 110.83.0.0/16;
deny 110.84.111.0/24;
deny 110.85.124.56;

保存之后将 denyip.conf 上传到/usr/local/nginx/conf目录下,弄好之后记得重启nginx。

上面我列举了3中屏蔽类型,第一行的是屏蔽110.83.*.*的所有IP,第二行的是屏蔽110.84.111.*的所有IP,第三行是只屏蔽110.85.124.56这个IP。

第一行的屏蔽的范围较大,很容易误拦,第三行的疲敝最稳妥,但是IP越多导致文件会很大,也不算太可取,第二行的方式是我目前使用的,好处坏处介于2这之间,大家可以自由选择。

垃圾评论IP的收集

有人问我如何收集这些垃圾评论IP的,其实很简单,一个SQL就搞定,然后Excle处理下。

首先安装Akismet插件,这个插件会把垃圾评论标记为spam,只安装这一个就可以了,其他任何防评论插件请勿安装。


SELECT `comment_author_IP` FROM `wp_comments` WHERE `comment_approved`= 'spam'

执行好了之后,导出这些IP,保存csv格式,然后直接用Excle打开,排序,去重,就得到唯一的垃圾评论IP了。

得到垃圾评论了之后就可以按照上面的方式操作了。

apache环境下

空间支持 .htaccess


<Limit GET HEAD POST>
order allow,deny
deny from 110.85.104.152
deny from 110.85.113
deny from 110.85.113.0/24
deny from 110.87
deny from 110.87.0.0/16
deny from 110.86.167.210 110.86.184.181
deny from 110.86.185.0/24 110.86.187.0/24
allow from all
</Limit>

apache下关于限制IP的写法比较多种,IP开始的第一行,是最普通的限制唯一IP,第二行跟第三行表达的内容是一样的,限制110.85.113.* 下所有的IP;第四五行也是一样的,限制110.87.*.* 下所有的IP;第六行是限制这2个IP,第7行就是显示这两个IP段;注意多个IP限制时用空格分开。

经过大约一周时间的统计,将收集的垃圾评论IP用纯真IP批量跑了一下,发现其中以福建莆田市的居多,美国的也不少。如果你也饱受垃圾评论的攻击,可以用用这个方法试试。

您可能还会对这些文章感兴趣!

linux服务器(nginx或者apache)限制IP访问的方法:目前有 37 条评论

  1. 阿正
    19楼
    阿正:Google Chrome 47.0.2526.106 Windows 7

    这个不错,学习了

    2016-03-13 18:12 回复
  2. 天涯海角
    18楼
    天涯海角:Firefox 38.0 Windows 10

    已经中招了,还好拯救及时,太感谢楼主的分享了

    2015-06-11 10:48 回复
  3. 一只羊
    17楼
    一只羊:Google Chrome 35.0.1916.114 Windows 7

    威哥,最近垃圾评论还多吗?我也遇到同样问题了。谢了!

    2014-09-15 19:25 回复
    • William
      WilliamFirefox 32.0 Windows 7

      @一只羊现在基本很少垃圾评论了。可以看看这篇文章 https://www.weisay.com/blog/prevent-spam-for-wordpress.html
      这是初级的方法,如果你主题没用使用ajax提交评论的话这个方法就很有效了,如果你使用了Willin Kan写的 ajax提交评论的话,做了上面说的之后,再改下他那个代码的文件路径名称。目前我这么做了之后就很少垃圾评论了。

      2014-09-17 15:59 回复
  4. bianbian.org
    16楼
    bianbian.org:Google Chrome 35.0.1916.114 Windows 7

    思路不错。可以放到iptables的禁封列表里,效果会更好点吧。

    2014-07-03 01:04 回复
  5. 甜菜
    15楼
    甜菜:搜狗高速浏览器 Windows 8.1

    现在我这里一天100条左右,Akismet全拦下来
    不过一个月流量也就500MB…也没什么啦…
    每次点一下批量删除就好了,不过有可能误删…

    2014-05-11 20:24 回复
    • Kin
      Kin:枫树极速浏览器 2.0.9.20 Windows 8

      @甜菜Akismet非常占用内存,我用了屏蔽过滤词汇的方法以及一些funcation.php里面的语句,把每天超过1000条的垃圾评论挡住了!

      2014-05-13 13:17 回复
  6. 左岸岛
    14楼
    左岸岛:Google Chrome 30.0.1599.101 Windows 7

    在WP下,你用的哪款代码高亮插件呢?感觉不错的…

    2014-03-20 18:01 回复
  7. pirlo
    13楼
    pirlo:Google Chrome 32.0.1700.107 Windows 7

    博客新上线,流量基本没有,垃圾评论不请自来啊

    2014-02-19 12:38 回复
  8. Laopeng
    12楼
    Laopeng:Google Chrome 31.0.1650.63 Windows 7

    @William 评论添加验证码,垃圾评论貌似会少不少。

    2014-01-10 17:37 回复
    • William
      WilliamFirefox 26.0 Windows 7

      @Laopeng试过的,虽然能减少一些,但是服务器负载会提升很多,可能你很难想象每分钟上千条垃圾评论的威力

      2014-01-17 09:45 回复
  9. Soar、毅力
    11楼
    Soar、毅力:Google Chrome 31.0.1650.63 Windows 8.1

    我做了一个小插件,专门用来拦截评论机器人的,小巧实用,你可以试试。
    地址是这个:http://www.sum16.com/my/wp-jquery-spam.html

    2013-12-22 18:54 回复
  10. 趣你的
    10楼
    趣你的:Google Chrome 22.0.1229.95 Windows 7

    最近经常出现不能访问!

    2013-12-06 10:46 回复
    • William
      WilliamFirefox 25.0 Windows 7

      @趣你的看你的IP的是福建厦门的,因为垃圾评论的IP最多的就是福建莆田的,当然厦门的也不少。所以过滤了很多厦门的IP段,其中有误杀的难免的了。 :eek:

      2013-12-06 10:54 回复
      • 趣你的
        趣你的:Google Chrome 22.0.1229.95 Windows 7

        @William很严重吗,不然你这样 会失去很多流量!

        2013-12-06 14:31 回复
      • 趣你的
        趣你的:Google Chrome 22.0.1229.95 Windows 7

        @William看你用的是阿里云 看来博客访问量很大!

        2013-12-06 14:37 回复
        • William
          WilliamFirefox 25.0 Windows 7

          @趣你的应该说相当严重,最多的时候能一个小时就有1万条垃圾评论,服务器扛不住。
          屏蔽IP之后流量稍有减少,保证了其他很多地方能正常快速的访问,只能牺牲一些了。

          2013-12-07 15:39 回复
          • 趣你的
            趣你的:Google Chrome 24.0.1312.52 Windows 7

            @William保全大局!只能说你的外链太多了!

            2013-12-07 22:20 回复
  11. stone
    9楼
    stone:Google Chrome 31.0.1650.57 Windows 7

    若是还有一个垃圾评论ip黑名单 就完美了,一个个加真心伤不起

    2013-12-06 10:21 回复
  12. 宋镇江
    8楼
    宋镇江:Google Chrome 21.0.1180.89 Windows 8.1

    虽然方法很棒,但感觉效果并不好..

    2013-11-26 20:58 回复
    • William
      WilliamFirefox 25.0 Windows 7

      @宋镇江跟网站被搞的访问不了或者访问极慢相比,屏蔽部分垃圾IP就没什么大不了了。

      2013-11-27 10:14 回复
  13. 好预告网
    7楼
    好预告网:Google Chrome 31.0.1650.57 Windows 7

    学习一下,这个有用!

    2013-11-25 15:14 回复
  14. 陶也
    6楼
    陶也:搜狗高速浏览器 Windows 7

    福建莆田市的垃圾IP确实很多,以前我也遇到过,我现在换ZB了,建站伊始,估计能清净一段时间,呵呵

    2013-11-19 21:55 回复
    • William
      WilliamFirefox 25.0 Windows 7

      @陶也恩,这个福建莆田的垃圾评论实在是无比嚣张的,凡是这个地方的垃圾评论直接全部不考虑的加到屏蔽名单里面

      2013-11-27 10:13 回复
  15. 燕儿
    5楼
    燕儿:Google Chrome 30.0.1599.101 Windows 7

    之前看到的一个办法,判定一下头像,如果是默认头像,就直接审核或是拒绝…

    似乎很有效…

    2013-11-18 13:16 回复
    • William
      WilliamFirefox 25.0 Windows 7

      @燕儿对于不算太多的垃圾评论过滤还是有办法的,加了很多过滤之后,势必要去运行这些代码,当大批量的垃圾评论过来的时候压力就瞬间正大很多,导致服务器宕机的风险了。

      2013-11-18 22:32 回复
  16. iCoxxs
    4楼
    iCoxxs:猎豹浏览器 Windows 8

    还有朋友问“这么”提取自己博客的垃圾评论的IP,这个稍稍讲解下,高手略过,我也是个菜鸟。

    字打错了~

    2013-11-14 20:26 回复
  17. 不给力的面条
    地板
    不给力的面条:Chromium 29.0.1547.65 Ubuntu x64

    第二个方法屏蔽的也挺多

    2013-11-14 12:45 回复
    • William
      WilliamFirefox 25.0 Windows 7

      @不给力的面条这个嘛就看自己取舍了,针对性的唯一IP肯定最好,不过目前已经有好几千个不同IP了,太多了也不好。

      2013-11-14 14:39 回复
  18. 阿龍
    板凳
    阿龍:Google Chrome 30.0.1599.101 Windows XP

    希望用不到~~ :grin:

    2013-11-14 09:54 回复
    • William
      WilliamFirefox 25.0 Windows 7

      @阿龍这倒是,垃圾评论的攻势太凶猛,只能如此,多么希望从来没有垃圾评论

      2013-11-14 11:34 回复
  19. 恋上苹果
    沙发
    恋上苹果:Google Chrome 30.0.1599.101 Windows 8.1

    暂时用不到,受教了。

    2013-11-14 08:40 回复

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

gravatar

question razz sad smile redface biggrin eek shock confused cool lol mad rolleyes wink cry