加固您的离岸VPS上的SSH
禁用密码认证,强制使用密钥,更改端口,限制源IP,并限制尝试次数。
SSH是互联网上最常被攻击的服务。端口22上的默认配置SSH每小时会看到数百次暴力破解尝试。加固只需10分钟,可将噪音降至零。
步骤1:仅使用SSH密钥认证
编辑 /etc/ssh/sshd_config: 代码:PasswordAuthentication no PubkeyAuthentication yes ChallengeResponseAuthentication no KbdInteractiveAuthentication no
重新加载:systemctl reload ssh。在关闭当前会话之前,请在新终端中验证您仍然可以通过密钥登录——如果将自己锁在外面,将强制进行救援控制台启动。
步骤2:移出22端口
选择高非标准端口(例如22222)。在sshd_config中: code:Port 22222
更新防火墙(ufw allow 22222/tcp),重载SSH,然后关闭端口22。
步骤3:禁用root登录
创建非root用户并赋予sudo权限: code:adduser deploy usermod -aG sudo deploy rsync -a ~/.ssh deploy@/home/deploy/ chown -R deploy:deploy /home/deploy/.ssh
然后在sshd_config中: code:PermitRootLogin no
从现在起,使用ssh deploy@HOST,然后通过sudo执行提权命令。
步骤4:使用fail2ban限速
安装说明见 /kb/fail2ban-setup。fail2ban 监控 /var/log/auth.log,并在 N 次失败尝试后封禁 IP。
第5步:可选 — 限制源IP
如果您只从已知IP(家庭VPN、办公室、堡垒主机)SSH,请添加允许来源规则: code:Match Address 1.2.3.4,5.6.7.8 AllowUsers deploy