安全防止 SSRF 攻击的 Redis 安全建议(ssrf的redis)
SSRF(Server Side Request Forgery)攻击,又可以称作内网穿越攻击,是一种攻击者可以利用服务器的内部网络而发起的攻击行为。由于受限于网络安全机制,网站用户无法直接访问到内网中的资源,但攻击者可以利用服务器来访问内网中的资源。典型的SSRF攻击有:HTTP响应攻击,SSL证书信息泄露,SSH暴力破解,端口扫描等。
Redis是一种开源、基于内存的、支持分布式数据库,是当前非常流行的NoSQL数据库,它支持多种数据类型,具有高性能,高可用性等优势,以实现多种应用。
要安全防御SSRF攻击,以Redis为例,首先需要限定Redis的访问范围,最好只允许指定的客户端IP地址访问Redis。例如,在Redis配置文件中可以加入如下代码:
bind 172.19.0.100
应当严格控制Redis的服务端。可以通过修改Redis配置文件,让Redis只允许在本地连接,如:
protected-mode yes
第三,为Redis配置安全授权密码,以防止SSRF攻击者绕过主机限制,连接Redis。在Redis的配置文件中,可以添加如下代码:
requirepass 123456
此外,还可以通过iptables配置Linux系统的防火墙,拒绝外网对内网的访问。针对某一特定端口可以执行类似下列代码实现:
iptables -A INPUT -p tcp -d 127.0.0.1/8 --dport 6379 -j ACCEPT
iptables -A INPUT -p tcp -d 172.19.0.100 --dport 6379 -j ACCEPT iptables -A INPUT -p tcp -d 0.0.0.0/0 --dport 6379 -j DROP
从上面可以看出,采用上述的方法可以有效防御SSRF攻击。虽然有局限性,但按照上述步骤进行配置,可以有效地降低SSRF攻击的风险。