Linux云服务器SSH安全配置终极指南
在数字化时代,云服务器的安全性至关重要。作为Linux系统管理员,SSH(Secure Shell)是我们远程管理服务器的首要工具,但同时也是黑客重点攻击的目标。本文将详细介绍如何通过8个关键步骤强化您的Linux云服务器SSH安全配置。
一、修改默认SSH端口
默认的SSH端口22是黑客扫描的首要目标。我们可以通过以下步骤修改SSH端口:
- 使用root用户登录服务器
- 编辑SSH配置文件:
vim /etc/ssh/sshd_config - 找到
#Port 22这一行,取消注释并修改为其他端口号(如23456) - 保存文件后重启SSH服务:
systemctl restart sshd - 别忘了在防火墙中开放新端口
注意:避免使用知名服务端口(如80、443),建议选择1024-65535之间的端口。
二、禁用root用户SSH登录
直接使用root账户通过SSH登录是非常危险的做法:
# 在sshd_config中添加或修改:
PermitRootLogin no
修改后,建议先创建具有sudo权限的普通用户,并测试该用户能否正常登录,再禁用root登录。
三、配置SSH密钥认证
相比密码认证,密钥认证更安全且能防止暴力破解:
- 本地生成密钥对:
ssh-keygen -t rsa -b 4096 - 将公钥上传到服务器:
ssh-copy-id -p 23456 user@server_ip - 在sshd_config中设置:
PasswordAuthentication no - 重启SSH服务使配置生效
建议为密钥设置强密码(passphrase),并将私钥妥善保管。
四、启用双因素认证(2FA)
为进一步增强安全性,可以配置Google Authenticator:
- 安装Google Authenticator:
sudo apt install libpam-google-authenticator - 运行配置向导:
google-authenticator - 修改PAM配置:
vim /etc/pam.d/sshd - 添加:
auth required pam_google_authenticator.so - 在sshd_config中设置:
ChallengeResponseAuthentication yes
五、配置Fail2Ban防暴力破解
Fail2Ban可以自动封禁多次尝试失败的IP:
- 安装Fail2Ban:
sudo apt install fail2ban - 创建本地配置文件:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local - 编辑jail.local,调整bantime、findtime和maxretry参数
- 启动服务:
sudo systemctl start fail2ban
建议设置合理的封禁时间(如24小时),并监控Fail2Ban日志。
六、限制SSH访问IP
如果服务器有固定访问来源,可以限制允许连接的IP:
# 使用iptables限制访问:
iptables -A INPUT -p tcp --dport 23456 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 23456 -j DROP
# 或使用TCP Wrappers:
# 在/etc/hosts.allow中添加:
sshd: 192.168.1.100
# 在/etc/hosts.deny中添加:
sshd: ALL
七、保持SSH服务更新
定期更新SSH服务是安全的重要环节:
- 启用自动安全更新:
sudo apt install unattended-upgrades - 定期检查更新:
sudo apt update && sudo apt upgrade openssh-server - 关注CVE漏洞公告,及时修补安全漏洞
八、SSH安全配置检查清单
| 配置项 | 推荐值 | 检查命令 |
|---|---|---|
| SSH端口 | 非22端口 | grep ^Port /etc/ssh/sshd_config |
| Root登录 | 禁止 | grep ^PermitRootLogin /etc/ssh/sshd_config |
| 密码认证 | 禁用 | grep ^PasswordAuthentication /etc/ssh/sshd_config |
总结
通过以上8个步骤,您的Linux云服务器SSH安全性将得到显著提升。安全是一个持续的过程,建议定期审查SSH日志(/var/log/auth.log),并关注最新的安全威胁。记住,没有绝对的安全,但我们可以通过合理的配置将风险降到最低。
最后提醒:在进行任何SSH配置修改前,请确保您有另一种访问服务器的途径(如控制台访问),以防配置错误导致无法连接。
