Linux 独立服务器 ssh 安全加固

本文介绍 Linux 独立服务器 SSH 安全加固的核心措施,包括:禁用 root 远程登录、改用非默认端口、启用密钥认证并禁用密码登录、配置 Fail2ban 防暴力破解、限制特定用户/IP 访问(通过 AllowUsers 或 firewall)、禁用空密码及过期协议(如 SSHv1),并定期更新 OpenSSH,所有操作需确保备用会话或物理访问以防锁死,强化后可显著降低未授权访问风险。

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

在公有云与自建IDC并存的今天,一台裸金属或虚拟化的Linux独立服务器常承载核心业务,而SSH作为远程管理的“唯一入口”,一旦配置疏漏,极易成为攻击跳板——暴力破解、密钥泄露、未授权登录等风险常年高居渗透测试榜首,本文聚焦实战,提炼5项轻量但强效的SSH安全加固措施,无需复杂工具,全部基于OpenSSH原生功能,适配主流发行版(CentOS/RHEL 7+/Ubuntu 18.04+)。

禁用root直连,强制最小权限登录
直接允许root通过SSH登录是重大隐患,编辑/etc/ssh/sshd_config,确保:

PermitRootLogin no  
# 同时启用sudo机制:添加普通用户至wheel(RHEL)或sudo(Ubuntu)组  
usermod -aG sudo deploy_user  

重启服务:systemctl restart sshd,此举将攻击面从“猜root密码”降维至“突破普通账户+提权”,显著提升防御纵深。

改用非标准端口 + 限制IP访问
默认22端口是扫描器首要目标,修改端口后,配合防火墙白名单,可过滤90%以上自动化攻击:

# 修改sshd_config  
Port 22222  # 建议10000–65535间随机值  
# 配合firewalld(RHEL)或ufw(Ubuntu)  
sudo firewall-cmd --permanent --add-port=22222/tcp  
sudo firewall-cmd --permanent --remove-service=ssh  
sudo firewall-cmd --reload  
# 仅允许可信IP(如运维办公网段)  
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" port port="22222" protocol="tcp" accept'  

强制密钥认证,废除密码登录
密码易被暴力破解,而SSH密钥具备非对称加密强度,操作分三步:

  1. 本地生成密钥对(ssh-keygen -t ed25519 -C "admin@company");
  2. 上传公钥至服务器:ssh-copy-id -p 22222 deploy_user@server_ip
  3. sshd_config中关闭密码验证:
    PasswordAuthentication no  
    PubkeyAuthentication yes  

    ⚠️ 注意:务必先验证新密钥能成功登录,再重启sshd,避免锁死。

启用Fail2ban自动封禁
针对残留的暴力试探,Fail2ban可实时分析日志并封禁恶意IP:

# Ubuntu安装:sudo apt install fail2ban  
# RHEL:sudo yum install epel-release && sudo yum install fail2ban  
# 编辑 /etc/fail2ban/jail.local,启用SSH规则  
[sshd]  
enabled = true  
maxretry = 3  
bantime = 1h  
findtime = 10m  

启动服务:sudo systemctl enable --now fail2ban,单次配置,持续拦截高频扫描。

精简SSH协议与算法
禁用老旧不安全协议(SSHv1)、弱加密算法(如CBC模式、SHA-1签名),提升传输层安全性:

# 在sshd_config末尾追加  
Protocol 2  
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521  
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com  
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com  

保存后执行sudo sshd -t校验语法,再重启服务。


安全不是一劳永逸的配置,而是持续的过程,以上5步可在30分钟内完成,成本近乎为零,却能将SSH暴露风险降低80%以上,请切记:加固后务必保留应急通道(如VNC/KVM),并定期审计/var/log/auth.log中的登录记录,真正的安全,始于敬畏每一次远程连接。

(全文共1298字)