服务器安全 🛡️ 端口管理 | CentOS7修改默认22端口提升SSH安全

在日常运维中,虽然Linux系统本身具备较高的安全性,但仍然无法完全避免被恶意攻击者针对。例如,有些黑客会通过“暴力破解”方式,不断尝试不同密码来登录服务器。如果对这些风险放任不管,依然存在被入侵的隐患。为了提升服务器的安全防护能力,许多管理员会选择修改SSH服务的默认端口(22),以减少自动化扫描和爆破攻击。下面以CentOS 7为例,介绍如何更改SSH端口并确保配置生效。

第一步:修改 SSH 配置文件

首先需要编辑 /etc/ssh/sshd_config 文件:

vi /etc/ssh/sshd_config

找到 #Port 22 这一行,将前面的注释符号 # 去掉,并将端口号更改为你希望使用的新端口,例如20000:

Port 20000

建议暂时不要直接删除原有的22端口设置,以免配置出错后无法远程连接服务器。待新端口测试无误后,再彻底禁用22端口。

第二步:调整防火墙规则

接下来,需要让防火墙允许新的SSH端口通信。可以执行以下命令添加新端口(假设是20000)到firewalld:

firewall-cmd --zone=public --add-port=20000/tcp --permanent
firewall-cmd --reload

这样做能保证重启后设置依旧有效。完成后,可以用如下命令确认是否添加成功:

firewall-cmd --zone=public --query-port=20000/tcp

如果返回yes,则说明新规则已生效。

第三步:配置 SELinux 策略

若系统开启了SELinux,还需将新SSH端口加入其策略白名单,否则可能导致连接受阻。可通过以下命令查看当前允许的SSH相关端口:

semanage port -l | grep ssh

然后添加新的SSH监听端口:

semanage port -a -t ssh_port_t -p tcp 20000

再次查询确认已成功加入列表,新输出应包含你指定的新端口。

第四步:重启 SSH 服务

所有配置完成后,需要重启sshd服务使更改生效:

systemctl restart sshd.service

第五步:验证 SSH 新端口连通性

最后,用支持自定义连接参数的工具(如ssh客户端)测试能否通过新设置的20000等非标准接口正常登录服务器。如果一切顺利,再回头把sshd_config中的Port 22项重新注释或移除即可。

参考信息来源:

  • CentOS官方文档
  • SELinux管理手册

服务器安全 🛡️ 端口管理 | CentOS7修改默认22端口提升SSH安全