Memcached限制访问IP
作者:admin 发布于:2016-5-15 16:48 Sunday
请注意,部分坑爹文章能坑死你,比如乌云的这篇:
http://drops.wooyun.org/papers/865
大家使用的 iptables 默认链 都是INPUT ACCEPT的,乌云这篇这几个命令实在太危险
# iptables -F 清空所有规则 # iptables -P INPUT DROP INPUT DROP 会让你的当前连接断掉,到时候你就傻逼了 # iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT # iptables -A INPUT -p udp -s 192.168.0.2 --dport 11211 -j ACCEPT
1.Memcached -l参数
最近整理了组内使用的Memcached。发现很多问题,其中一个问题就是开发机器测试机器可以直连线上的Memcached。这也是memcached公认的问题:memcached 是一种很简单、有效的协议,但也有其缺点,就是 memcached 自身没有 ACL 控制。
之前一直理解Memcached的-l参数就是限制访问IP作用的。
2.使用iptable
ACL 最简单的设置方法就是在网络层,直接拒绝掉你的访问,通过iptable可以实现这个功能。
假如我们的一台 memcached 的机器,想拒绝除了自身之外的访问,假如机器自己IP是:XX.XX.XX.184,那么我们可以以root身份用下面几条命令来达到我们的目的:
[baoqiu.xiao@... ~]sudo iptables -A INPUT -p tcp -s 127.0.0.1 --dport 6666 -j ACCEPT[baoqiu.xiao@... ~]sudo iptables -A INPUT -p tcp -s XX.XX.XX.184 --dport 6666 -j ACCEPT
[baoqiu.xiao@... ~]sudo iptables -A INPUT -p tcp --dport 6666 -j REJECT
[baoqiu.xiao@... ~]sudo iptables -L -n --line-number Chain INPUT (policy ACCEPT)
num target prot opt source destination 1 ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:6666 2 ACCEPT tcp -- XX.XX.XX.184 0.0.0.0/0 tcp dpt:6666 3 REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6666 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
这里使用的是iptables的filter功能,其filter是一种链式结构且有从前往后依次执行。满足某一条filter规则就不往下走了。因此基于这个原则,我们需要将最严格的规则放在最前面。
删除某一条规则,其中的1就是iptables -L -n –line-number中的num号。如下会删除Chain INPUT中的编号为1的规则:
[baoqiu.xiao@... ~]sudo iptables -D INPUT 1
可以使用iptables -F 清空所有规则.