扫码查看公告

Linux服务器SSH安全加固配置指南

发布人:八彩云 分类:服务器问题 发布时间:2026-06-30 05:28

SSH是管理Linux服务器最重要的通道,但也是最容易被攻击的目标。据统计,一台暴露在公网上的服务器每天可能遭受数百次暴力破解尝试。本文介绍Linux系统下SSH安全加固的最佳实践。

1. 修改默认端口

将SSH默认的22端口修改为其他端口,可以规避绝大多数自动化扫描攻击:

code
vim /etc/ssh/sshd_config

# 找到 #Port 22 一行,修改为:
Port 2222  # 建议使用1024以上的端口

修改后重启SSH服务:systemctl restart sshd

注意:务必先在防火墙放行新端口后再退出当前SSH会话,否则会把自己锁在门外!

2. 禁用root直接登录

root用户拥有最高权限,禁用其直接登录可以减少攻击面:

code
# 先创建一个普通用户
useradd admin && passwd admin
usermod -aG wheel admin  # CentOS
usermod -aG sudo admin   # Ubuntu

# 编辑SSH配置
vim /etc/ssh/sshd_config
PermitRootLogin no  # 禁止root直接登录

3. 配置密钥登录并禁用密码登录

code
# 在本地生成密钥对
ssh-keygen -t ed25519 -C "your_email@example.com"

# 将公钥复制到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@服务器IP -p 端口

确认密钥登录成功后,修改SSH配置禁用密码登录:PasswordAuthentication no

4. 配置Fail2ban防暴力破解

code
# 安装Fail2ban
yum install -y epel-release && yum install -y fail2ban  # CentOS
apt install -y fail2ban  # Ubuntu

# 创建配置文件
cat > /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
findtime = 600
EOF

systemctl start fail2ban && systemctl enable fail2ban

5. 其他安全建议

  • 设置登录超时:ClientAliveInterval 300 和 ClientAliveCountMax 0
  • 限制登录用户:AllowUsers admin user1 user2
  • 使用ed25519算法替代RSA,安全性更高
  • 定期审计登录日志:lastb 查看失败登录记录

六、SSH密钥管理与轮换

定期轮换SSH密钥是安全最佳实践。建立密钥生命周期管理机制,包括生成、分发、使用、撤销和销毁。推荐使用ssh-keygen生成ED25519密钥对(性能优于RSA),配合ssh-agent管理私钥。

七、SSH堡垒机架构

code
# 堡垒机跳板配置 - /etc/ssh/sshd_config
Match User jumpserver
    AllowTcpForwarding yes
    X11Forwarding no
    PermitTTY no
    ForceCommand /usr/sbin/ssh-audit-wrapper

八、SSH安全审计

通过审计登录日志(/var/log/auth.log或secure)和配置auditd监控SSH相关操作。使用fail2ban配置SSH保护规则,对多次认证失败的IP进行临时封禁,配合白名单机制确保管理员正常访问。

img

2026-06-30

本文地址:

八彩云申明:本文内容由互联网用户贡献,该文观点仅代表作者,本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容,请联系我们info@bacaiyun.com。