在日常运维中,虽然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管理手册