文章内容
2018/11/5 15:31:51,作 者: 黄兵
网页爬虫的一次反击
今天下午的时候,服务器告警频发,首先是cpu 100%,之后是网络跑满。看样子是有人在爬取我的网站了,没有限制速度,必须要限制。
下面是几张截图,可以看到当时的一些情况。
服务器cpu已经跑满,后面降下来是我限制了之后才降下来。
那就来说说是如何防御这次爬虫抓取网站的:
首先肯定要知道这个事是谁做的,需要查看访问者的ip地址,推荐使用这个工具:iftop。
登录主机后,执行 yum install iftop -y
如果是Ubuntu系统,请执行 apt-get install iftop -y
安装iftop工具,iftop工具为Linux下监控服务器流量的小工具
安装完毕后,执行 iftop
可以看到那个ip的流量比较高,因为当时急于防御,忘记截图,这个是事后的截图,大概是这个意思就行:
点击图片可以放大,观察了一会儿,219.137.228.28这个ip流量一直很大,就是这个ip,开始屏蔽他。
这个小工具的集体命令以及界面上的信息可以查看这篇文章:iftop命令详解
我网站的宽带也很小,是2M的小水管,这个爬虫一访问,这个网页打开很慢。
首先看一下防火墙策略:
iptables -L
如果是没有安装,直接按照提示安装一下就好了。
通常输出的链设置是空的:
之后开始屏蔽那个烦人的ip地址:219.137.228.28
iptables -A INPUT -s 219.137.228.28 -j DROP
详细解说一下这些参数的意思:参数-A INPUT给INPUT链增加了一条规则。而-s 219.137.228.28指定规则所针对的源IP,-j DROP指的是,当参数符合规则时,内核会将其丢弃。因此这台服务器会丢弃所有来自219.137.228.28的数据包。
设置好后看看规则,使用iptables -L命令:
屏蔽之后流量瞬间下降了很多,如下图所示:
如果需要将这条规则从规则中删除只需要输入如下命令:
iptables -D INPUT 4
删除第四条规则。
具体命令含义可以看这篇文章:iptables
在服务器重启以后这些规则会丢失,主要原因是:这些规则保存在内存当中。需要定时备份规则,具体操作步骤查看这篇文章:Ubuntu 防火墙重启记录丢失
说在后面的话:
在线接收短信这个网站是允许大家抓取的,其实抓取也没有什么意义,这些短信验证码都是有时效性的,抓取了也没有什么意义。
但是请你在抓取的时候速度放慢一点,对我的业务不要造成影响。谢谢!
参考资料:
2、《精通Linux》(第二版)中国工信出版集团,2017.8重印,(美)沃德(Ward,B.)著
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - 网页爬虫的一次反击
评论列表