HCRM博客

在 CentOS 系统中启用外网 SSH 访问的步骤指南

在服务器管理的日常工作中,能够从任意地点安全地连接到您的CentOS服务器是一项基本且关键的需求,通过开启外网SSH访问,管理员可以突破地理限制,实现高效的远程运维,这个过程并非简单地打开开关,它涉及到一系列严谨的配置和安全考量,任何疏忽都可能导致严重的安全隐患。

下面,我们将系统地讲解如何为您的CentOS服务器安全地配置外网SSH访问。

在 CentOS 系统中启用外网 SSH 访问的步骤指南-图1

第一步:确认SSH服务状态

在开始配置之前,我们首先需要确保SSH服务已经在服务器上正常运行。

  1. 登录服务器:通过本地控制台或现有的远程连接方式登录到您的CentOS系统。
  2. 检查服务状态:执行以下命令,查看SSH服务(通常使用OpenSSH)是否处于活动状态。
    systemctl status sshd

    如果看到 active (running) 的提示,说明服务正在运行,如果未运行,您需要使用命令 systemctl start sshd 来启动它,并使用 systemctl enable sshd 设置其开机自启。

第二步:配置防火墙,开放SSH端口

CentOS默认使用的防火墙是firewalld,它像一道安全门,默认只允许少量服务通过,我们需要为SSH打开这道门。

  1. 查看当前开放的SSH服务

    firewall-cmd --list-services

    通常情况下,您会看到 ssh 已经在列表中,这是因为默认安装时,防火墙已经为内网访问预设了SSH规则。

  2. 永久开放SSH端口:为了确保规则在重启后依然有效,我们执行永久开放命令。

    在 CentOS 系统中启用外网 SSH 访问的步骤指南-图2
    firewall-cmd --permanent --add-service=ssh

    这条命令允许通过SSH默认的22端口进行连接。

  3. 重载防火墙配置:使新的永久规则立即生效。

    firewall-cmd --reload

    完成这一步后,外部的SSH连接请求就已经能够到达您的服务器了。

第三步:强化SSH安全配置(至关重要)

允许外网SSH连接,意味着将您的服务器暴露在公共网络中,仅开放端口是远远不够的,我们必须加固SSH服务本身,编辑SSH的主配置文件是核心环节。

  1. 备份配置文件:在进行任何修改之前,创建一个备份是良好的习惯。

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
  2. 编辑SSH配置文件

    在 CentOS 系统中启用外网 SSH 访问的步骤指南-图3
    sudo vi /etc/ssh/sshd_config
  3. 关键安全配置修改:找到并修改以下参数,如果行首有注释符,请记得删除。

    • 更改默认端口:这是最有效的、避开自动化扫描脚本的方法。

      Port 29222  # 建议使用1024到65535之间的一个端口号

      注意:修改后,客户端连接时需要指定新端口,ssh -p 29222 user@your-server-ip

    • 禁止root用户直接登录:迫使攻击者必须同时知道一个普通用户名和密码(或密钥),大大增加了攻击难度。

      PermitRootLogin no
    • 禁用密码认证,强制使用密钥对:这是提升安全性的最有效手段,密码可能被暴力破解,而密钥几乎不可能。

      PasswordAuthentication no
      PubkeyAuthentication yes

      在应用此设置前,请务必将您的公钥(如 id_rsa.pub添加到服务器对应用户的 ~/.ssh/authorized_keys 文件中,并设置正确的权限(600)。

    • 限制用户登录:只允许特定的管理用户进行SSH登录。

      AllowUsers your_username admin_user
    • 其他安全选项

      Protocol 2                  # 只使用SSH协议第2版
      PermitEmptyPasswords no     # 禁止空密码登录
      MaxAuthTries 3              # 限制最大认证尝试次数
      ClientAliveInterval 300     # 设置客户端活动检查间隔
      ClientAliveCountMax 2       # 超时后断开连接
  4. 重启SSH服务:配置修改完成后,需要重启SSH服务以使更改生效。

    sudo systemctl restart sshd

    重要提醒:在重启sshd服务后,请务必保持当前连接会话不要退出,同时打开一个新的终端窗口尝试用新的配置(如新端口、密钥登录)进行连接测试,确认新的连接方式成功之后,再关闭当前的会话,这样可以防止因配置错误而将自己锁在服务器门外。

第四步:处理网络环境中的路由器或安全组

如果您的CentOS服务器位于局域网内,通过路由器接入互联网,或者运行在云服务平台(如阿里云、腾讯云等)上,还需要进行额外的配置。

  • 局域网环境:需要在路由器上设置端口转发,将公网IP的特定端口(例如您设置的29222)转发到内网服务器的SSH端口。
  • 云服务器环境:需要在云服务商的安全组规则中,添加一条入方向规则,允许访问您设置的SSH端口(如29222),协议类型为TCP。

连接测试与日常维护

完成所有配置后,您可以从外网使用以下命令进行连接测试:

ssh -p 你的新端口号 你的用户名@你的服务器公网IP

安全维护是一个持续的过程,建议您定期:

  • 检查系统日志(/var/log/secure)中的SSH登录记录,关注异常尝试。
  • 保持系统和OpenSSH软件处于最新状态,及时安装安全更新。
  • 定期审查和更新您的SSH密钥。

开启外网SSH是服务器管理中的一项常规操作,但它所承载的安全责任却非同小可,一个稳固的服务器环境,始于每一个细致入微的安全配置,作为管理员,我们不仅要追求功能的实现,更要将“安全第一”的理念贯穿于每一次操作之中,这样才能在享受便捷远程管理的同时,确保我们的数字资产安然无恙。

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

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

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