2022-08-10 17:53:39
SSH登录安全性的强化可通过修改默认端口、禁用密码登录启用密钥认证、限制用户和IP访问、启用Fail2Ban及关闭root登录等措施实现,同时需同步配置防火墙并测试连接。 以下是具体配置指南:
修改默认端口SSH默认使用22端口,易成为攻击目标。修改端口可减少自动扫描和爆破风险:
编辑配置文件:/etc/ssh/sshd_config,找到Port 22,修改为非知名端口(如2222、4422)。
保存后重启服务:systemctl restart sshd。
关键点:确保防火墙放行新端口,并测试备用连接(如控制台登录)以防配置错误导致无法访问。
禁用密码登录,启用密钥认证密码易被暴力破解,密钥认证更安全且支持免密登录:
生成密钥对:
推荐使用ed25519算法:ssh-keygen -t ed25519(或RSA,至少2048位)。
生成后,公钥(.pub文件)需上传至服务器~/.ssh/authorized_keys。
配置SSH服务:
在sshd_config中设置:PasswordAuthentication noPubkeyAuthentication yes
测试密钥登录成功后,再关闭密码验证,避免服务中断。
限制用户与来源IP仅允许特定用户和可信IP访问,缩小攻击面:
用户限制:
在sshd_config中设置:AllowUsers your_usernameAllowGroups ssh-access
IP限制:
结合防火墙规则(如ufw或iptables)限制源IP。例如:ufw allow from 192.168.1.0/24 to any port 2222
启用Fail2Ban防暴力破解Fail2Ban可监控日志,自动封禁多次失败的IP:
安装与配置:
Debian/Ubuntu系统:apt install fail2ban。
复制默认配置文件:cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local。
在jail.local中启用SSH保护:[sshd]enabled = true
启动服务:systemctl enable fail2ban && systemctl start fail2ban
其他安全建议
禁用root远程登录:在sshd_config中设置PermitRootLogin no,使用普通用户登录后通过su或sudo提权。
避免使用常见用户名:如admin、root,降低被猜测的风险。
设置登录超时:ClientAliveInterval 300 # 每300秒检查一次连接ClientAliveCountMax 2 # 最多允许2次无响应后断开
定期更新系统与OpenSSH:修复已知漏洞,保持软件最新。
开启SSH日志审计:在sshd_config中设置LogLevel VERBOSE,记录详细登录信息以便排查问题。
注意事项:
通过以上措施,SSH登录的安全性将显著提升,有效防御暴力破解、中间人攻击等常见威胁。