Centos-Server-Nginx之禁止网络爬虫

释放双眼,带上耳机,听听看~!

常见问题:

1.网络堵塞丢包严重(上下行数据异常,排除DDOS攻击,服务器中毒。异常下载,数据更新)

2.服务器负载过高,CPU几乎跑满(针对相应的服务配置而定);

3.服务基本瘫痪,路由瘫痪;

4.查看日志发现大量的异常访问日志

 

思路:先查看日志–分析日志–针对相关信息来源做限制(防火墙,Nginx本身都可以);

 

具体步骤:

一.先查看日志

cat logs/www.ready.log |grep spider -c (看有爬虫标志的访问次数)

cat logs/www.ready.log |wc (合计总页面的访问次数)

 

cat logs/www.ready.log |grep spider|awk '{print $1}'|sort -n|uniq -c|sort -nr (查看爬虫的IP地址来源)

cat logs/www.ready.log |awk '{print $1 " " substr($4,14,5)}'|sort -n|uniq -c|sort -nr|head -20(_列出1分钟内的前20位IP地址)

cat logs/www.ready.log |grep ip (列出出现较多的IP地址,这个可以结合上面的命令使用。)

 

二.分析日志

晓得爬虫爬过那些内容,是什么爬虫爬的。什么时候爬的

常见的爬虫有Google,Baidu,Yahoo这些(在下面的Nginx的http_user_agent配置处,有一些常见的爬虫)

 

三.修改防火墙策略,毙掉这个好奇的爬虫IP

vim /etc/sysconfig/iptables

 

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 61.33.22.1/24 -j REJECT

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 61.22.1.1/24 -j REJECT

重新启动iptables生效。

 

四.关于Nginx上的http_user_agent 的设置也可以很好的防范

 

具体的配置信息如下:

 

server {

listen 80;

server_name www.ready.com;

if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot")

{

return 403;

}

location ~ ^/(.*)$ {

proxy_pass http://localhost:80;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html { root html;

}

 

}

给TA打赏
共{{data.count}}人
人已打赏
安全经验

职场中的那些话那些事

2021-9-24 20:41:29

安全经验

awk分析nginx日志,获取pv

2021-11-28 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索