HCRM博客

如何安全修改CentOS SSH端口?必备步骤与避坑要点

一、修改前的准备工作

1、检查是否安装 SSH 服务:使用rpm qa | grep ssh 命令查看系统是否已安装 SSH 服务,如果未安装,可通过yum install y opensshserver 命令进行安装。

2、查看当前 SSH 端口:通过sudo cat /etc/ssh/sshd_config | grep Port 命令查看当前 SSH 配置文件中设置的端口号,默认情况下是 22 端口。

如何安全修改CentOS SSH端口?必备步骤与避坑要点-图1
(图片来源网络,侵权删除)

二、修改 SSH 配置文件

1、备份原配置文件:在进行修改之前,建议先备份一下原始的 SSH 配置文件,以便在出现问题时可以恢复,可以使用cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 命令进行备份。

2、编辑配置文件:使用文本编辑器(如 vi 或 nano)打开/etc/ssh/sshd_config 文件,找到#Port 22 这一行,将前面的# 号删除,然后将 22 修改为你想要设定的新端口号,3333,也可以在此行上方添加一行Port 3333 来增加一个新的端口号,但不建议同时保留多个端口号以免造成安全风险。

3、保存并关闭文件:完成修改后,保存文件并退出编辑器。

三、重启 SSH 服务

1、重启 SSH 服务:执行sudo systemctl restart sshd 命令重启 SSH 服务,使新的端口配置生效。

2、检查服务状态:使用sudo systemctl status sshd 命令检查 SSH 服务的状态,确保服务正常运行且监听在新设置的端口上。

四、防火墙配置(如果启用了防火墙)

1、添加新端口规则:如果你的服务器启用了防火墙,需要将新设置的 SSH 端口添加到防火墙的允许列表中,执行以下命令:

如何安全修改CentOS SSH端口?必备步骤与避坑要点-图2
(图片来源网络,侵权删除)

sudo firewallcmd permanent zone=public addport=3333/tcp (假设新端口号为 3333)

sudo firewallcmd reload

2、确认端口已开放:再次执行firewallcmd listall 命令,查看防火墙规则中是否已包含新添加的 SSH 端口。

五、SELinux 配置(SELinux 处于启用状态)

1、查看 SELinux 状态:执行/usr/sbin/sestatus v 命令查看 SELinux 服务状态,如果状态为已开启,则需要进行下一步操作。

2、添加新端口到 SELinux:使用semanage port l | grep ssh 命令查看当前 ssh 服务的端口,如果没有刚刚添加的新端口,则执行以下命令向 SELinux 中添加该端口:

如何安全修改CentOS SSH端口?必备步骤与避坑要点-图3
(图片来源网络,侵权删除)

semanage port a t ssh_port_t p tcp 3333 (假设新端口号为 3333)。

3、重新加载 SELinux 配置:执行touch /.autorelabel 命令,然后重启系统,使 SELinux 的配置生效。

六、连接测试

1、使用新端口连接:在客户端使用 SSH 客户端连接到服务器时,需要在命令中指定新设置的 SSH 端口号,ssh user@server_ip p 3333(假设新端口号为 3333)。

2、验证连接成功:如果能够成功连接到服务器,说明 SSH 端口修改成功;如果连接失败,请检查以上步骤是否正确执行,以及服务器和客户端之间的网络连接是否正常。

七、FAQs

1、Q:修改 SSH 端口后,原来的 22 端口还能使用吗?

A:如果只是修改了 SSH 配置文件中的端口号,并没有删除原来的 22 端口配置,那么原来的 22 端口仍然可以继续使用,但如果在修改过程中删除了 Port 22 这一行,并且没有正确配置防火墙和 SELinux,可能会导致无法通过 22 端口连接,建议在确认新端口可以正常使用后,再考虑是否删除原来的 22 端口配置。

2、Q:修改 SSH 端口后,连接时出现 “Connection refused” 错误怎么办?

A:出现 “Connection refused” 错误可能有以下几种原因及解决方法:

检查服务器上的 SSH 服务是否正在运行,可使用sudo systemctl status sshd 命令查看,如果服务未运行,执行sudo systemctl start sshd 命令启动服务。

确保防火墙已经允许了新设置的 SSH 端口通过,可使用firewallcmd listall 命令查看防火墙规则中是否包含新端口,如果没有,按照上述步骤重新添加端口规则并重启防火墙。

如果服务器启用了 SELinux,检查是否已将新端口添加到 SELinux 的策略中,使用semanage port l | grep ssh 命令查看,如果没有,按照上述步骤向 SELinux 中添加端口并重新加载 SELinux 配置。

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

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