web项目设置ip黑名单

对于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" />

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值