Linux 独立服务器 ssh 安全加固

本文介绍 Linux 独立服务器 SSH 安全加固的核心措施,包括:禁用 root 远程登录、使用密钥认证替代密码登录、修改默认端口、限制登录用户与 IP、启用 Fail2ban 防暴力破解、配置 SSH 服务超时与重试参数,以及定期更新系统与 OpenSSH,这些实践可显著降低未授权访问与攻击风险,提升远程管理安全性。

Linux独立服务器SSH安全加固:5步筑牢远程访问防线

在公有云与自建IDC并存的今天,一台裸金属或虚拟化的Linux独立服务器常承载核心业务,而SSH作为远程管理的“唯一入口”,若配置疏忽,极易成为黑客暴力破解、密钥窃取或后门植入的跳板,本文聚焦实战,提炼5项轻量、高效、可立即落地的SSH安全加固措施,无需复杂工具,全部基于OpenSSH原生功能实现。

禁用密码登录,强制密钥认证
密码验证是暴力破解的温床,编辑 /etc/ssh/sshd_config

PasswordAuthentication no  
PermitEmptyPasswords no  

生成强加密密钥对(ed25519优先):

ssh-keygen -t ed25519 -C "admin@server" -f ~/.ssh/id_ed25519  

将公钥(id_ed25519.pub)追加至服务器 ~/.ssh/authorized_keys,确认密钥登录成功后,再重启sshd:systemctl restart sshd,此举直接切断90%以上的自动化爆破攻击。

限制登录用户与来源IP
最小权限原则必须落地,添加以下配置:

AllowUsers deploy admin  # 明确允许的系统用户  
AllowGroups ssh-admin    # 或按组控制(需提前创建组)  
# 针对高敏感服务器,可限定IP段:  
# AllowUsers admin@192.168.10.0/24  

避免使用 DenyUsers root(易被绕过),而应直接禁用root远程登录:

PermitRootLogin no  

修改默认端口,降低扫描噪音
虽非银弹,但能有效过滤脚本小子的全网扫描,将 Port 22 改为非标准端口(如 Port 2222),同时确保防火墙同步放行:

ufw allow 2222/tcp  # Ubuntu示例  
# 或 iptables -I INPUT -p tcp --dport 2222 -j ACCEPT  

注意:修改后务必在新终端测试连接成功,再关闭旧会话——防止锁死。

启用Fail2ban自动封禁
安装Fail2ban(Debian/Ubuntu):

apt install fail2ban -y  
systemctl enable fail2ban  

其默认规则已监控SSH失败日志,如需增强,可调整 /etc/fail2ban/jail.local

[sshd]  
enabled = true  
maxretry = 3  
bantime = 1h  
findtime = 10m  

Fail2ban通过解析/var/log/auth.log实时封禁恶意IP,是成本最低的主动防御层。

精简SSH协议与算法
禁用老旧不安全协议,强制现代加密套件:

Protocol 2  
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp256  
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com  
MACs hmac-sha2-512-etm@openssh.com  

此配置淘汰SHA-1、CBC模式等已知风险算法,兼顾安全性与兼容性(OpenSSH 7.2+均支持)。

最后提醒:加固不是一劳永逸,定期执行 ss -tuln | grep :2222 检查监听状态;审计/var/log/auth.log中的异常连接;每半年轮换一次SSH密钥,真正的安全,源于持续的最小化配置与可观测性闭环。

(全文共1298字)