未授权访问Redis服务器危险的公钥写入(redis未授权写公钥)
未授权访问Redis服务器:危险的公钥写入
Redis 是一种基于键值对的内存数据结构存储系统,还可以持久化到硬盘中,被用来作为缓存、消息队列和实时应用等场景。但是,有时管理员会在设置 Redis 时漏掉一些安全措施,导致 Redis 服务器被黑客入侵,从而导致数据泄露、系统崩溃等严重后果。其中,一种常见的攻击是未授权访问 Redis 服务器,并在其中写入危险的公钥,导致进一步的攻击。
在 Redis 中,每个连接请求都需要通过认证才能访问,否则会提示需要密码认证。但有时因为配置错误等原因,未授权的访问就可以默默地访问 Redis 服务器。攻击者通常使用 SSH 工具来访问 Redis 服务器,然后通过 SSH 密钥文件在服务器上创建一个新的公钥,用来访问其他受害者的 SSH 服务器。这种攻击方式被称为“公钥写入攻击”,它可以使得攻击者能够访问更多的主机,从而扩大攻击面。如图所示:
![Redis Public Key Attack](https://github.com/redis/redis/raw/5.0/00-RELEASENOTES)
攻击者通过“公钥写入攻击”可以将潜在的攻击范围扩大到整个网络,破坏大量的系统。如果您的 Redis 服务器没有得到良好的安全保护,将会对您的业务造成不可估量的灾难。因此,我们需要采取措施来保障 Redis 服务器的安全。下面是一些应对 Redis “公钥写入攻击”的方法:
1. 配置 Redis 安全策略:可以通过在配置文件中添加密码进行安全认证。此外,还可以通过其他身份验证机制增强安全。
# Require clients to connect via a password-authenticated connection
requirepass "my-strong-password"
2. 更新 Redis:及时更新并维护 Redis 版本,避免存在已知的漏洞。
3. 监控 Redis:即时发现 Redis 服务器的异常行为,如 CPU 消耗异常、流量异常、日志输出等。在异常行为出现时,要通过 Redis 监控工具来监控并报警提示。
redis-cli info cpu
redis-cli info memoryredis-cli info clients
redis-cli info persistence
4. 限制对 Redis 服务器的访问:配置防火墙、限制内网 IP 访问等措施,减少未授权访问的风险。
# Accepts incoming connections only from trusted IPs
iptables -A INPUT -p tcp --dport 6379 -s 192.168.1.0/24 -j ACCEPT
# Drop connections that come in through the default portiptables -A INPUT -p tcp --dport 6379 -j DROP
5. 设置 SSH 安全性:即使 Redis 服务器被攻击者黑掉,攻击者也不会得到 SSH 干净的密钥和用户账户。
# Change the SSH default port to a non-standard port
Port 33895
# Limit who can access the SSH serviceAllowUsers alice
DenyUsers carol
# Use two-factor authentication (2FA) to improve SSH securityAuthenticationMethods publickey,keyboard-interactive
在进行 Redis 服务器安全保护时,尤其要注意公钥写入攻击,系一种常见的入侵方法。通过应对措施可以减轻公钥写入攻击所导致的风险,具有重要的安全性和保障性。最好的保护措施是将 Redis 服务器与其他组件隔离开来,例如将 Redis 服务器放在内网,并使用 VPN 访问。此外,需要定期修补漏洞,减少已知漏洞的影响。在 RescueTime 中,任何异常行为都会立即被标识出来,并通过警告和推送消息进行通知,及时发现和解决 Redis 服务器的威胁。