我怀疑登录 SSH 时是否应该使用密钥认证,或者只是使用 fail2ban + ssh(禁用 root 登录)。
fail2ban 是否安全,或者是否最好直接生成密钥并在所有需要连接到 ssh 的客户端机器上进行配置?
答案1
我认为它是一款稳定的产品,并且我认为它是安全的。作为额外的预防措施,我会将您的源 IP 地址添加到ignoreip
指令中,以jails.conf
确保您不会阻止自己。
由于它解析 ssh 日志,因此必须建立 TCP 会话,因此欺骗源 IP 并正确获取 TCP 序列号以创建某种反向散射变体似乎不太可能。
在此基础上使用密钥也不错。其他有用的选项包括将 ssh 移至非标准 IP、使用“最新”的 iptables 模块,或者决定不介意有人试图暴力破解密码。请参阅此服务器故障发布更多相关内容。
答案2
每次我在生产环境中实施denyhosts或fail2ban时,它都会创建一个有保证的票证流,包括解锁请求、密码重置请求、更改设置或管理白名单的请求,而且通常只是人们放弃登录来查看事情并更多地依靠系统管理员来完成他们自己可以做的事情。
从本质上来说,这不是任何一个工具的技术问题,但如果您的用户数量达到数十个或更多,那么支持工作量和用户沮丧程度将明显增加。
此外,它们解决的问题是降低您遭受暴力 ssh 登录攻击的风险。老实说,只要您有一个中等程度的密码策略,这种风险就非常小。
答案3
我已经用了好几年了,至少它对脚本小子来说是一种很好的保护。
无需 root 登录,再加上相当长的随机密码和 fail2ban 以及可能不同的端口,对我们大多数人来说已经足够安全了。
当然,ssh 密钥的安全性要好得多。
答案4
我已经在我的几个生产和非生产服务器中使用了denyhosts,它运行得很好(我的守护进程同步出现了问题,所以我现在不使用它,但也许它又可以正常工作了)。
它不仅使您的系统更安全,而且还可以帮助您保存更清洁的日志,并简单地将不受欢迎的人排除在您的登录屏幕之外......