使用iptables对redis做访问限制

2017/07/13 posted in  Redis
Tags: 

在redis的配置文件中我们可以使用bind参数对访问redis的来源ip做限制,但是bind参数只支持对每个ip使用都好分隔的方式做限制,而不能直接限制ip段。

为了更好的控制redis的访问来源,我们使用iptables对redis做访问限制。

由于我们在一台服务器上启动了多个redis实例,这里使用multiport模块同时对多个端口配置规则,只允许192.168和10.10网段的服务器访问,拒绝其他的服务器访问,并保存我们的配置

iptables -m multiport -I INPUT -s 192.168.0.0/16 -p tcp --dport 6369,6379,6389,6399 -j ACCEPT
iptables -m multiport -I INPUT -s 10.10.0.0/16 -p tcp --dport 6369,6379,6389,6399 -j ACCEPT
iptables -m multiport -A INPUT -p tcp --dport 6369,6379,6389,6399 -j REJECT
service iptables save

使用connlimit模块对每个redis实例做连接数限制,每个端口只支持1000个连接,并保存我们的配置

iptables -m connlimit --connlimit-above 1000 -A INPUT -p tcp --dport 6379 -j REJECT
iptables -m connlimit --connlimit-above 1000 -A INPUT -p tcp --dport 6380 -j REJECT
iptables -m connlimit --connlimit-above 1000 -A INPUT -p tcp --dport 6381 -j REJECT
iptables -m connlimit --connlimit-above 1000 -A INPUT -p tcp --dport 6382 -j REJECT
service iptables save