Linux云服务器SSH登录安全配置全攻略
在云计算时代,SSH作为远程管理Linux服务器的标准协议,其安全性配置尤为重要。本文将详细介绍5个关键步骤,帮助您打造钢铁般的SSH防护体系。
一、修改默认SSH端口
大多数自动化攻击都针对默认的22端口。修改端口号是最简单有效的第一道防线:
# 编辑SSH配置文件 sudo nano /etc/ssh/sshd_config # 找到Port 22并修改为其他端口(建议1024-65535之间) Port 58239 # 重启SSH服务 sudo systemctl restart sshd
注意:修改后需确保防火墙开放新端口,同时保留原有终端会话以防配置错误导致无法连接。
二、禁止root用户直接登录
root账户是黑客的首要目标,禁用其SSH权限可大幅降低风险:
# 在sshd_config中添加 PermitRootLogin no # 创建普通管理员账户 sudo adduser admin sudo usermod -aG sudo admin
建议配置完成后,先使用新账户测试登录,确认无误后再退出root会话。
三、配置密钥认证
密码认证易受暴力破解攻击,密钥认证安全性更高:
- 本地生成密钥对:
ssh-keygen -t rsa -b 4096 - 上传公钥到服务器:
ssh-copy-id -p 端口号 用户名@服务器IP - 禁用密码认证:
# 在sshd_config中设置 PasswordAuthentication no PubkeyAuthentication yes
建议将私钥保存在加密的USB设备中,避免存储在本地计算机。
四、设置Fail2Ban防御系统
Fail2Ban可自动封锁多次尝试失败的IP:
# 安装Fail2Ban sudo apt install fail2ban # Ubuntu/Debian sudo yum install fail2ban # CentOS/RHEL # 创建自定义配置 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置示例(添加到jail.local):
[sshd] enabled = true port = 58239 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 1h
五、高级防护措施
- 双因素认证: 安装Google Authenticator模块
- IP白名单: 在sshd_config中添加
AllowUsers [email protected].* - 连接超时: 设置
ClientAliveInterval 300和ClientAliveCountMax 2 - 日志监控: 定期检查
/var/log/auth.log异常登录尝试
最佳实践建议
配置完成后应进行以下验证:
- 在新终端测试所有配置更改
- 设置备用访问通道(如控制台连接)
- 定期备份sshd_config文件
- 每季度审查一次安全设置
通过以上多层防护,您的Linux云服务器SSH安全性将得到显著提升,有效抵御99%的自动化攻击。
