防止Memcached的DDOS攻击

攻击的原理

memcached反射攻击利用了在互联网上暴露的大批量memcached服务器(一种分布式缓存系统)存在的认证和设计缺陷,攻击者通过向memcached服务器IP地址的默认端口11211发送伪造受害者IP地址的特定指令UDP数据包(stats、set/get指令),使memcached服务器向受害者IP地址反射返回比原始数据包大数倍的数据(理论最高可达5万倍,通过持续跟踪观察攻击流量平均放大倍数在100倍左右),从而进行反射攻击。

互联网应急中心给出的3条建议:

1、在memcached服务器或者其上联的网络设备上配置防火墙策略,仅允许授权的业务IP地址访问memcached服务器,拦截非法的非法访问。

2、更改memcached服务的监听端口为11211之外的其他大端口,避免针对默认端口的恶意利用。

3、升级到最新的memcached软件版本,配置启用SASL认证等权限控制策略(在编译安装memcached程序时添加-enable-sasl选项,并且在启动memcached服务程序时添加-S参数,启用SASL认证机制以提升memcached的安全性)。

本文主要记录第一条建议:

方法一、仅允许授权的业务IP地址访问memcached服务器

memcached -d -m 512 -u memcached -l x.x.x.x -p 12000 -c 1024 -P /tmp/memcached.pid

方法二、配置防火墙策略

a.清除规则

iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat    
iptables -F
iptables -X
iptables -Z

b.添加规则

iptables -I INPUT -p tcp --dport 11211 -j DROP
iptables -I INPUT -p tcp --dport 11311 -j DROP
iptables -I INPUT -p udp --dport 11211 -j DROP
iptables -I INPUT -p udp --dport 11311 -j DROP
iptables -I INPUT -s 10.0.0.0/8 -p tcp --dport 11211 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/8 -p tcp --dport 11311 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/8 -p udp --dport 11211 -j ACCEPT
iptables -I INPUT -s 10.0.0.0/8 -p udp --dport 11311 -j ACCEPT
service iptables save

c.开启memcached

memcached -d -M -m 2048 -u memcached -p 11311 -c 65536 -P /tmp/memcached -new.pid
memcached -d -M -m 4096 -u memcached -p 11211 -c 65536 -P /tmp/memcached.pid

方法三、禁用UDP

memcached -d -M -m 2048 -U 0 -u memcached -p 11311 -c 65536 -P /tmp/memcached -new.pid
memcached -d -M -m 4096 -U 0 -u memcached -p 11211 -c 65536 -P /tmp/memcached.pid

本文链接:https://jeff.xin/post/101.html

--EOF--

Comments

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。