我已经更新了我的 sshd_config,以便对机器人进行更严格的控制。即:
- 只允许使用密钥,除了特定 IP 上的少数指定用户
- 最大授权尝试次数 = 1
- 无需root登录
这有好有坏。虽然它可以更好地锁定盒子,但经过测试后我注意到,即使使用详细日志记录,未经允许的客户端也不会看到他们的尝试记录到 /var/log/auth.log 中。
例如
ssh [email protected]
不会出现在日志文件中,因为客户端没有尝试进行身份验证。
我想确保记录这些事件,因为主机可以被视为“邪恶的”。
答案1
我不太喜欢 fail2ban,因为它只对那些没有数百/数千个 IP 地址用于分布式暴力攻击的攻击者有效。因此,它只能捕获那些从单个 IP 地址进行所有暴力攻击的攻击者。
被感染的主机是邪恶的吗?好吧,它们至少被机器人代码感染,因此可以用来进行攻击。
在过去十年中,我发现专注于已经完成的事情并将精力转移到阻止其他攻击途径上更有利可图。我发现采用白名单方法进行安全保护比采用事后/反应性的黑名单方法更好。
确保 SSH 安全所需:
- 禁止“root”账户登录
- 使用公钥认证账户
- 将基于密码的账户限制在特定的 IP 范围内(我仍然认为这非常危险)
极其有帮助:
- 使用防火墙将服务器和/或端口的访问限制在世界特定地区。
- 将 SSH 端口从默认端口移出,这将大大减少您必须筛选的日志文件数量(自动或手动)。
我意识到这不是您正在寻找的技术答案。