做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描、拉取、注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables 、 Nginx 的deny指令或者是程序来ban掉这些恶意请求。

iptables 需要root权限配置

下面介绍使用nginx 来配置ip禁用

首选需要我们熟悉nginx 的deny指令

allow
语法:     allow address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except

允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

deny
语法:     deny address | CIDR | unix: | all;
默认值:     —
配置段:     http, server, location, limit_except

禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

allow、deny实例

location / {
deny  192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny  all;
}

假如我们分析我们的网站被某个固定ip访问

219.143.33.50

219.143.33.52

219.143.33.54

只需要一下两部搞定

1:配置需要屏蔽的ip的配置文件

下面说明假定nginx的目录在/usr/local/nginx/conf

首先要建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。

deny  219.143.33.50;
deny  192.168.1.110;

2:引入 ip配置文件,然后reload nginx

然后保存此文件,并且打开nginx.conf文件,在http配置节内添加下面一行配置:

include blockips.conf;

保存nginx.conf文件,然后测试现在的nginx配置文件是否是合法的:

 /usr/local/nginx/sbin/nginx -t

如果配置没有问题,就会输出:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,让nginx重新载入配置文件。

/usr/local/nginx/sbin/nginx -s reload

总结:后续再添加需要封的ip只需要收到的添加ip到 blockips.conf  然后reload nginx 即可

1:
/usr/local/nginx/conf/blockips.conf 添加ip
2:
/usr/local/nginx/sbin/nginx -s reload

以上是我个人总结的收到添加封ip 的简单方式

后续我会更新 自动扫描日志并添加ip到blockips.conf配置文件的 然后reload nginx 的脚步  敬请期待

文档摘自以下帖子:

http://www.ttlsa.com/linux/nginx-modules-ngx_http_access_module/

http://outofmemory.cn/code-snippet/3393/nginx-deny-ip-or-deny-network-subnets

最新文章

  1. EditText光标颜色设置
  2. Redis自定义动态字符串(sds)模块(二)
  3. Python延迟打印字符
  4. java笔记--查看和修改线程的优先级
  5. 性能监控工具nmon
  6. Java基础知识强化之集合框架笔记09:Collection集合迭代器使用的问题探讨
  7. html教程系列--form frameset
  8. Jquery中的$().each,$.each的区别
  9. 用Py2exe打包Python脚本简单介绍
  10. 如何识别IDA反汇编中遇到的动态链接库中的函数
  11. hdu-1082 Matrix Chain Multiplication---栈的运用
  12. Jenkins部分插件介绍
  13. 【算法】php计算数字k在一段数字范围出现的次数
  14. 构建gulp项目
  15. 装系统时 System clock uses UTC 问题
  16. git 使用ssh密钥
  17. Vue.js常用指令:v-on
  18. 图片加载------reactVirtualized
  19. Bzoj5251 线段树+贪心
  20. 有人在贴吧问phpmyadmin如何设置插入的时候默认插入1条记录

热门文章

  1. SpringMvc的运行流程
  2. Cloud9vue&vux上传github小步骤
  3. PHP+Jquery+Ajax 实现动态生成GUID、加载GUID
  4. 2017-3-10 SQL server 数据库 T--SQL语句
  5. cookie 详解 与 封装 实用的cookie
  6. StringBuffer与StringBuilder的区别,及实现原理
  7. 2751: [HAOI2012]容易题(easy)
  8. 3361: [Usaco2004 Jan]培根距离
  9. 字符编码的种类:ASCII、GB2312、GBK、GB18030、Unicode、UTF-8、UTF-16、Base64
  10. JDBC整合c3p0数据库连接池 解决Too many connections错误