HCRM博客

CentOS SSH服务部署指南

CentOS 系统 SSH 服务部署与安全加固指南

远程管理 Linux 服务器,SSH(Secure Shell)是不可或缺的核心工具,它通过加密通道提供安全的远程登录和文件传输能力,本文将详细介绍在 CentOS 系统上部署、配置及加固 SSH 服务的完整流程。


SSH 服务核心概念

SSH 协议采用非对称加密技术建立安全连接,服务端运行 sshd 守护进程,默认监听 TCP 22 端口,客户端(如 PuTTY、OpenSSH)发起连接请求,双方协商加密算法并完成身份验证后建立安全会话。

CentOS SSH服务部署指南-图1

CentOS 系统 SSH 服务安装与启动

  1. 检查安装状态 大多数 CentOS 版本预装 OpenSSH,通过命令确认:

    rpm -qa | grep openssh-server

    若未安装,使用 YUM 或 DNF 安装:

    sudo yum install openssh-server openssh-clients -y  # CentOS 7/8
    sudo dnf install openssh-server openssh-clients -y  # CentOS Stream 9
  2. 启动并设置开机自启

    sudo systemctl start sshd       # 立即启动服务
    sudo systemctl enable sshd      # 设置开机自动启动
    sudo systemctl status sshd      # 验证服务运行状态
  3. 防火墙放行 SSH 端口 CentOS 默认防火墙需放行 SSH 端口(通常为 22):

    sudo firewall-cmd --permanent --add-service=ssh  # 放行 SSH 服务
    sudo firewall-cmd --reload                       # 重载防火墙配置

关键配置文件详解与优化 (/etc/ssh/sshd_config)

修改配置前务必备份:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

使用文本编辑器(如 vinano)编辑主配置文件:

CentOS SSH服务部署指南-图2
sudo vi /etc/ssh/sshd_config

关键参数配置建议:

  1. 更改默认端口 (强烈推荐)

    Port 2222  # 示例端口,避免常见扫描攻击

    修改后需更新防火墙规则:

    sudo firewall-cmd --permanent --remove-service=ssh
    sudo firewall-cmd --permanent --add-port=2222/tcp
    sudo firewall-cmd --reload
  2. 禁止 Root 用户直接登录

    PermitRootLogin no

    务必先创建具有 sudo 权限的普通用户!

  3. 限制登录用户或用户组

    CentOS SSH服务部署指南-图3
    AllowUsers user1 user2@192.168.1.100  # 仅允许特定用户/IP登录
    AllowGroups sshusers                  # 仅允许特定用户组成员登录
  4. 增强加密算法与协议

    Protocol 2                            # 仅使用更安全的 SSHv2
    Ciphers aes256-ctr,aes192-ctr,aes128-ctr # 优先使用强加密算法
    MACs hmac-sha2-512,hmac-sha2-256     # 使用强消息认证码
  5. 空闲会话超时设置

    ClientAliveInterval 300  # 客户端空闲 300 秒后发送活动请求
    ClientAliveCountMax 0     # 不发送活动请求后立即断开连接
  6. 其他重要安全选项

    LoginGraceTime 60         # 登录超时时间(秒)
    MaxAuthTries 3            # 最大身份验证尝试次数
    PermitEmptyPasswords no   # 禁止空密码登录
    X11Forwarding no          # 禁用 X11 转发(非图形管理场景)

应用配置变更:

sudo systemctl restart sshd  # 重启 SSH 服务使配置生效

高级安全加固策略

  1. 使用 SSH 密钥对认证 (最佳实践)

    • 客户端生成密钥对:
      ssh-keygen -t ed25519  # 推荐使用 Ed25519 算法
    • 上传公钥到服务器:
      ssh-copy-id -i ~/.ssh/id_ed25519.pub user@your_server_ip -p 2222
    • 服务器配置强制密钥登录:/etc/ssh/sshd_config 中设置:
      PasswordAuthentication no  # 彻底禁用密码登录
      PubkeyAuthentication yes    # 启用公钥认证
  2. 部署 Fail2ban 防御暴力破解

    • 安装 Fail2ban:
      sudo yum install epel-release -y
      sudo yum install fail2ban -y
    • 创建 SSH 保护配置 (/etc/fail2ban/jail.d/sshd.local):
      [sshd]
      enabled = true
      port = 2222                    # 修改为你的 SSH 端口
      filter = sshd
      logpath = /var/log/secure
      maxretry = 3                   # 最大失败尝试次数
      findtime = 600                 # 10 分钟内
      bantime = 86400                # 封禁 24 小时
    • 启动并启用 Fail2ban:
      sudo systemctl start fail2ban
      sudo systemctl enable fail2ban
  3. 利用 SELinux 增强保护 确保 SELinux 处于 enforcing 模式:

    sudo setenforce 1
    sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config

    修改 SSH 端口后需更新 SELinux 上下文:

    sudo semanage port -a -t ssh_port_t -p tcp 2222

连接测试与管理

  • 使用密钥连接(新端口):
    ssh -i ~/.ssh/id_ed25519 -p 2222 your_user@your_server_ip
  • 查看活动 SSH 连接:
    sudo netstat -tnpa | grep ':2222.*ESTABLISHED.*sshd'
    sudo ss -tunp | grep 'sshd'
  • 查看 SSH 登录日志:
    sudo tail -f /var/log/secure | grep sshd

持续维护与最佳实践

  1. 保持系统与软件更新:
    sudo yum update -y  # CentOS 7/8
    sudo dnf update -y  # CentOS Stream 9
  2. 定期审计日志: 监控 /var/log/secure 中的异常登录尝试。
  3. 最小权限原则: 仅为必要用户分配 SSH 访问权限。
  4. 禁用未使用的服务: 减少服务器攻击面。
  5. 密钥管理: 妥善保管私钥(建议加密),定期轮换密钥。

遵循以上步骤部署和加固 SSH 服务,将极大提升 CentOS 服务器的远程管理安全性,最后提醒,任何安全配置的修改都应在测试环境验证后再应用于生产服务器,避免意外锁定访问权限,服务器的安全性是一个持续维护和优化的过程,需要管理员保持警惕并应用最新的安全实践。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/35623.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~