web项目设置ip黑名单

编程技术  /  houtizong 发布于 2年前   116

对于nginx+tomcat的web项目,设置黑白名单的几种的方式

1.使用linux的iptables(基于linux防火墙的,前提是要开启防火墙)

要封停一个IP,使用下面这条命令:

 

iptables -I INPUT -s ***.***.***.*** -j DROP

要解封一个IP(前提是iptables已经有这条记录),使用下面这条命令:

 

 

iptables -D INPUT -s ***.***.***.*** -j DROP

 参数-I是表示Insert(添加),-D表示Delete(删除)。后面跟的是规则,INPUT表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接。

 

此外,还可以使用下面的命令来查看当前的IP规则表:

 

iptables -list

 如果要想清空封掉的IP地址,可以输入:

 

 

iptables -flush

 要添加IP段到封停列表中,使用下面的命令:

 

 

iptables -I INPUT -s 121.0.0.0/8 -j DROP

 其实也就是将单个IP封停的IP部分换成了Linux的IP段表达式。

 

 

2.使用linux的hosts.allow和hosts.deny

这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。这两个配置文件的格式如下:
#服务进程名:主机列表:当规则匹配时可选的命令操作
server_name:hosts-list[:command]

 

/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny控制禁止访问本机的IP.如果两个文件的配置有冲突,以/etc/hosts.deny为准。

使用方法,以/etc/hosts.allow为例:

ALL:127.0.0.1 #允许本机访问本机所有服务进程
smbd:192.168.0.0/255.255.255.0 #允许192.168.0.网段的IP访问smbd服务
ALL关键字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况。

 

3.使用nginx的allow和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中新加入的功能,如果你的版本比这个低,请不要使用这个方法。

 

nginx访问控制模块要数nginx里面最简单的指令,只要记住你想禁止谁访问就deny加上IP,想允许则加上allow ip,想禁止或者允许所有,那么allow all或者deny all即可

示例:

 

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

 

4.使用tomcat的RemoteHostValve 和RemoteAddrValve

RemoteHostValve是根据主机名进行限制

<Valve className="org.apache.catalina.valves.RemoteHostValve" allow="abc.com" deny=""/> 

RemoteAddrValve是根据IP进行限制

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.4.10" deny=""/>

也可以指定网段

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.4.*" deny=""/>

使用denyStatus指定拒绝访问返回的状态码

<Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192.168.4.22" denyStatus="403" />

 

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客