修改默认SSH端口可减少攻击暴露面,编辑/etc/ssh/sshd_config文件将Port 22改为非常用端口(如2222),保存后重启sshd服务并配置防火墙放行新端口。

在Linux系统中,SSH(Secure Shell)是远程管理服务器最常用的协议。由于其广泛使用,也成为攻击者的主要目标之一。实施有效的SSH安全访问策略,能显著降低未授权访问和暴力破解风险。以下是实用的SSH安全控制方案。
1. 修改默认SSH端口
默认情况下,SSH服务运行在22端口,攻击者常通过扫描该端口发起自动化攻击。修改端口可减少暴露面。
- 编辑SSH配置文件:/etc/ssh/sshd_config- 找到 Port 22,修改为非常用端口(如 2222、4567)
- 保存后重启SSH服务:systemctl restart sshd
- 确保防火墙放行新端口
2. 禁用root用户直接登录
允许root登录会增加系统被攻破的风险。应使用普通用户登录后再切换权限。
- 在 /etc/ssh/sshd_config 中设置:PermitRootLogin no- 创建普通用户并赋予sudo权限:usermod -aG sudo username
- 登录时先以普通用户连接,再通过 sudo su - 切换
3. 使用密钥认证替代密码登录
密码容易被暴力破解,而SSH密钥更安全且支持免密登录。
- 客户端生成密钥对:ssh-keygen -t rsa -b 4096- 将公钥上传至服务器:ssh-copy-id user@server
- 配置文件中设置:PasswordAuthentication no
- 测试连接无误后再关闭密码登录
4. 限制用户和IP访问
通过白名单机制控制谁能连接,进一步缩小攻击范围。
- 在 sshd_config 中指定允许用户:AllowUsers user1 user2@ip- 结合防火墙(如iptables或ufw)仅允许可信IP段访问SSH端口
- 示例:ufw allow from 192.168.1.100 to any port 2222
5. 启用日志审计与失败尝试防护
及时发现异常登录行为,阻止自动化攻击。
- 确保SSH日志开启(默认记录在 /var/log/auth.log)- 使用工具如 fail2ban 自动封禁多次失败的IP
- 安装配置fail2ban:apt install fail2ban,启用sshd保护规则
6. 定期更新与最小化配置
保持系统和SSH服务最新,关闭不必要的功能。
- 及时更新OpenSSH和系统补丁:apt update && apt upgrade- 禁用不安全的协议版本和加密算法(如SSHv1、弱cipher)
- 检查配置:ssh -Q cipher 查看支持的加密方式
基本上就这些。合理配置SSH不仅能提升安全性,还能减少系统被扫描和攻击的频率。关键在于关闭默认暴露点,使用强认证,并持续监控访问行为。安全不是一次设置就能完成,而是需要定期审查和优化的过程。










