修改默认 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
– 安装配置 f ail2ban:apt install fail2ban,启用 sshd 保护规则
6. 定期更新与最小化配置
保持系统和 SSH 服务最新,关闭不必要的功能。
– 及时更新 OpenSSH 和系统补丁:apt update && apt upgrade
– 禁用不安全的协议版本和加密算法(如 SSHv1、弱 cipher)
– 检查配置:ssh -Q cipher 查看支持的加密方式
基本上就这些。合理配置 SSH 不仅能提升安全性,还能减少系统被扫描和攻击的频率。关键在于关闭默认暴露点,使用强认证,并持续监控访问行为。安全不是一次设置就能完成,而是需要定期审查和优化的过程。