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是根据主机名进行限制

 

RemoteAddrValve是根据IP进行限制

也可以指定网段

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

 

你可能感兴趣的:(work)