最近一次,由于大量的垃圾留言,导致了一个严重的服务器崩溃。一开始尝试了各种办法,都没办法,只能把 IP地址给封了,虽然不是最好的办法,但也很有用。我的朋友们就开始询问,我是如何阻止那些垃圾的 IP地址的,我是不是可以分享的,我的一个好友询问,如何从自己的博客里,找到自己的 IP地址。

「运维分享」linux服务器(nginx或者apache)限制IP访问的方法插图
linux服务器(nginx或者apache)限制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,用纯真IP批量跑了这些IP,其中以福建莆田市的居多,美国的也不少。如果你也饱受垃圾评论的攻击,可以用用这个方法和IP,我会定期更新IP数据的。

垃圾评论IP地址下载 (最后更新:2022-8-30)

评论IP收集
加入评论黑名单即可
类型: txt 大小: 24.6KB

ESWINK , 版权所有丨如未注明 , 均为原创

原文标题:「运维分享」linux服务器(nginx或者apache)限制IP访问的方法

Eswink原创声明
原创声明