HCRM博客

如何在CentOS上更改SSH默认端口数?

CentOS SSH 端口配置与管理

SSH(Secure Shell)是一种加密的络协议,用于在不安全的网络上进行安全的远程登录和其他网络服务,默认情况下,CentOS 操作系统的 SSH 服务监听的是 22 号端口,但出于安全考虑,我们可能需要修改这个默认端口,本文将详细介绍如何更改 CentOS 系统中的 SSH 端口,以及相关的防火墙和 SELinux 配置。

如何在CentOS上更改SSH默认端口数?-图1
(图片来源网络,侵权删除)

一、SSH 服务

SSH 简介

SSH 是一种加密的网络传输协议,主要用于远程登录和管理 Linux 系统,它通过加密数据流量来保护用户信息和操作的安全性,防止中间人攻击和窃听。

CentOS 中的 SSH 服务

在 CentOS 中,SSH 服务通常由opensshserver 软件包提供,该服务默认安装并启用,监听的是TCP的22端口。

二、修改 SSH 端口的必要性

减少暴力攻击风险

默认的 SSH 端口是 22,黑客通常会扫描此端口以寻找可攻击的服务器,将 SSH 端口更改为非标准端口可以降低被攻击的几率。

避免自动化攻击

许多自动化工具和恶意软件会针对默认端口进行攻击,修改端口可以让这些工具失去效力。

如何在CentOS上更改SSH默认端口数?-图2
(图片来源网络,侵权删除)

三、修改 SSH 端口的步骤

远程登录或物理登录到服务器

您需要通过 SSH 远程登录到您的 CentOS 服务器或者直接物理访问服务器的控制台。

修改 SSH 配置文件

使用文本编辑器(如 vi)打开 SSH 配置文件:

sudo vi /etc/ssh/sshd_config

找到Port 这一行,按i 进入编辑模式,利用# 将其注释掉,然后在下面添加一行新的Port

#Port 22
Port 31022

保存并退出编辑器(按Esc,输入:wq,然后按Enter)。

关闭 SELinux(可选)

SELinux 可能会阻止新的 SSH 端口正常工作,我们需要暂时关闭 SELinux:

如何在CentOS上更改SSH默认端口数?-图3
(图片来源网络,侵权删除)
sudo setenforce 0

永久关闭 SELinux(不推荐,因为会降低系统安全性):

sudo vi /etc/selinux/config

SELINUX= 后面的值改为disabled

SELINUX=disabled

保存并退出编辑器。

修改防火墙设置

如果您的服务器启用了防火墙(如 firewalld),需要放行新的 SSH 端口:

sudo firewallcmd zone=public addport=31022/tcp permanent
sudo firewallcmd reload

如果防火墙是关闭状态,这里就不需要执行上述命令。

重启 SSH 服务

修改完成后,需要重启 SSH 服务以使更改生效:

sudo systemctl restart sshd

测试新端口

使用 xshell 或命令行工具测试新的 SSH 端口是否工作正常:

ssh 用户名@IP p 31022

四、常见问题及解决方法

新端口无法连接

如果修改后的新端口无法连接,可能是由于以下原因:

防火墙未放行新端口:确保已在防火墙中放行新的 SSH 端口。

SELinux 限制:检查 SELinux 是否允许新的 SSH 端口通过。

配置文件错误:检查 SSH 配置文件是否正确无误。

SSH 服务无法启动

SSH 服务无法启动,可能是由于配置文件错误或端口已被其他服务占用,可以通过以下命令查看日志:

sudo journalctl xe

根据日志提示进行相应的修正。

五、归纳

修改 CentOS 系统中的 SSH 端口可以提高系统的安全性,减少被攻击的风险,具体步骤包括修改 SSH 配置文件、关闭 SELinux(可选)、修改防火墙设置以及重启 SSH 服务,通过以上步骤,您可以成功地将 SSH 服务的端口更改为自定义的端口,从而增强系统的安全性,如果在修改过程中遇到问题,可以根据常见问题及解决方法进行排查和解决。

分享:
扫描分享到社交APP
上一篇
下一篇