在公网服务器上执行 lastb | wc -l 看一眼失败登录数,多数人会被吓到:每天成千上万次密码尝试,来自全球各个 IP。这就是暴力破解的日常,防它有两个利器。
利器一:密钥登录,釜底抽薪
密码可以被无限试,密钥对不能。本地生成密钥,公钥放进服务器,然后关闭密码登录:编辑 sshd_config 设 PasswordAuthentication no。从此爆破全部无效,这是根治手段。
利器二:fail2ban,自动拉黑
它盯着日志,谁短时间内失败次数超限,就调用防火墙封掉他的 IP:
yum install -y epel-release && yum install -y fail2ban
systemctl enable --now fail2ban默认规则就够用:失败五次封十分钟,凶狠的扫描器很快知难而退。
双保险之外的加分项
- SSH 端口改成高位端口,扫描量立减九成
- 管理端口在安全组只放行自己的常用 IP
密钥登录为主,fail2ban 为辅,两招齐上,SSH 这扇门基本就焊死了。