兔八哥极品软件园    运行: 4492天 | 文章:640 篇 | 评论:505 条 | 碎语:1条

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 清空所有规则.


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap