安全加固指南:如何更改 SSH 服务器的默认端口号

发布时间:2023年12月28日

????????在 Linux 系统中修改 SSH 服务的默认端口号是一项重要的安全措施,它可以帮助增强系统的安全性。这个过程相对简单,但必须由具有管理员权限的用户来执行。下面,我将向大家介绍如何安全地更改 SSH 端口的具体步骤。

1 备份 SSH 配置文件

????????在修改之前,建议先备份原始的 SSH 配置文件,以防出现问题可以恢复。

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

2 编辑 SSH 配置文件

????????使用文本编辑器(如 `nano` 或 `vi`)打开 `/etc/ssh/sshd_config` 文件。

sudo vim /etc/ssh/sshd_config

????????在文件中找到有关端口号的行,默认情况下,这行可能会被注释掉(以 `#` 开头),并显示为 `#Port 22`,如下图所示

3 更改端口号

????????将这行的 `#` 去掉,并将 `22` 更改为您想要设置的新端口号,例如,将端口号改为 `2222`,如下图所示


?确保选择的端口号没有被其他服务使用,并且是大于 1024 的非保留端口。

4 保存并关闭文件

????????保存更改并关闭编辑器。

? ? ?(1)如果使用的是 `nano`,可以按 `Ctrl + O`,然后按 `Enter` 保存,最后按 `Ctrl + X` 退出。
? ? ?(2)如果使用的是 `vim`,可以按 `ESC`,然后按 `:wq` 保存退出。

5 重启 SSH 服务

????????为了使更改生效,需要重启 SSH 服务,可以通过以下命令完成

sudo systemctl status sshd.service

重启后如果发现报下面错误

6 检查防火墙状态

????????排查一下,看看防火墙是不是开着呢,一看还真开着呢

那就放行2222端口,执行下面命令

sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent

重载防火墙,使更改内容生效

sudo firewall-cmd --reload

再次重启ssh服务,仍然重启失败,查看ssh日志发现以下问题

journalctl -xeu sshd.service

7?检查 SELinux 策略

? ? ? ? 这一步很重要,很容易被大家忽略!!!

????????如果你的系统使用 SELinux,检查 SELinux 策略是否允许 sshd 在端口 2222 上监听,你可以暂时关闭 SELinux 以测试是否是 SELinux 导致的问题

sudo setenforce 0

????????然后尝试重启 sshd 服务,如果服务成功启动,则表示是SELinux策略导致的问题,这时你就得调整一下 SELinux 策略了(请记得在测试后重新启用 SELinux)。

sudo setenforce 1

更改 SELinux 策略以允许 SSHD 在新端口上监听

????????你需要创建一个新的 SELinux 策略,允许 SSHD 在端口 2222 上监听。

????????首先,安装 policycoreutils-python-utils(或 policycoreutils-python,取决于你的发行版)

sudo yum install policycoreutils-python-utils

然后,添加一个新的策略规则

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

????????这将允许 SSHD 服务在 TCP 端口 2222 上运行

重新启动 SSHD 服务并重新启用 SELinux

????????在修改 SELinux 策略后,重新启动 SSHD 服务

sudo systemctl restart sshd

然后,重新启用 SELinux 强制模式

sudo setenforce 1

检查 SELinux 状态和日志

getenforce

????????从输出来看,SELinux 当前处于 "Enforcing" 模式,这意味着 SELinux 的安全策略正在被强制执行,在这种模式下,任何违反策略的行为都将被拒绝,并且相应的违规行为会被记录下来。

? ? ? ? 注意:SELinux 是一个强大的安全工具,它可以防止许多类型的漏洞和攻击。因此,不建议永久禁用 SELinux。

检查端口 2222 是否已经正确地被分配给了 SSH

sudo semanage port -l | grep ssh_port_t

稳妥起见,再重启ssh测试一下,如下图所示没有问题了

8 测试新配置是否生效

????????在关闭当前 SSH 会话之前,打开一个新的终端窗口或 SSH 客户端,尝试使用新的端口号连接到服务器,以确保一切正常。

ssh -p 2222 username@your-server-ip

????????

????????请注意,在进行此类更改时,如果您失去了与服务器的连接,或者新的端口号因某种原因不起作用,可能会导致您无法通过 SSH 访问服务器,操作需谨慎。

文章来源:https://blog.csdn.net/Flemming323/article/details/135232881
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。