CentOS 6.8如何修改SSH端口并配置防火墙生效?

在服务器运维管理中,出于安全考虑或避免端口冲突,我们常常需要修改某些服务的默认监听端口,以广泛使用的CentOS 6.8系统为例,更改SSH(Secure Shell)服务的默认端口(22)是一项基础且重要的安全加固操作,通过将默认端口更改为一个不常见的端口,可以有效减少自动化脚本和恶意扫描器的攻击频率,本文将详细介绍在CentOS 6.8系统中安全、完整地更改SSH端口的整个流程。

CentOS 6.8如何修改SSH端口并配置防火墙生效?

准备工作与注意事项

在进行任何配置更改之前,充分的准备是避免意外情况(尤其是被锁在服务器门外)的关键。

您必须拥有服务器的root权限或具有sudo权限的用户账户,强烈建议在修改任何核心配置文件前进行备份,对于SSH配置文件,我们可以使用以下命令进行备份:

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

这个备份文件将在出现问题时,允许我们快速恢复原始配置,请务必确保您有另一种方式访问服务器,例如物理控制台、VNC或服务商提供的Web终端,以防SSH服务配置错误导致连接中断。

修改SSH服务配置文件

SSH服务的核心配置文件位于/etc/ssh/sshd_config,我们需要编辑这个文件来指定新的端口。

使用您喜欢的文本编辑器,如vi或vim,打开该文件:

vi /etc/ssh/sshd_config

在文件中,找到下面这一行:

#Port 22

这行默认是被注释掉的,表示SSH服务监听22端口,为了更改端口,我们有两种选择,一种更稳妥的方法是,先保留22端口,同时添加一个新端口,这样可以确保在新端口测试成功之前,旧的连接方式依然可用。

我们可以在#Port 22下方添加一行新的端口配置,我们想将新端口设置为2222:

#Port 22
Port 2222

这样配置后,SSH服务将同时监听22和2222两个端口,完成修改后,保存并退出编辑器(在vi中,输入wq!并回车)。

配置iptables防火墙规则

CentOS 6.8默认使用iptables作为防火墙管理工具,仅仅修改SSH配置文件是不够的,如果防火墙没有放行新的端口,所有外部连接请求都会被拦截,我们需要在iptables中添加一条规则,允许新的TCP端口(如2222)的流量进入。

CentOS 6.8如何修改SSH端口并配置防火墙生效?

执行以下命令来添加规则:

iptables -I INPUT -p tcp --dport 2222 -j ACCEPT

这个命令的含义是:在INPUT链的起始位置(-I INPUT)插入一条规则,允许(-j ACCEPT)协议为tcp(-p tcp)、目标端口为2222(--dport 2222)的数据包。

仅仅在内存中添加规则是不够的,服务器重启后这些规则会丢失,我们需要将当前的iptables规则保存到配置文件中,使其永久生效:

service iptables save

执行后,系统会将当前的规则集保存到/etc/sysconfig/iptables文件中。

为了更清晰地理解,下表小编总结了关键的iptables命令:

命令 说明
iptables -I INPUT -p tcp --dport 2222 -j ACCEPT 在规则链的开头插入一条规则,允许TCP流量进入新端口2222。
service iptables save 将当前内存中的iptables规则保存到/etc/sysconfig/iptables文件中,确保重启后依然有效。

重启SSH服务与测试连接

配置文件和防火墙规则都已更新,现在需要重启SSH服务以使新的端口配置生效。

service sshd restart

重要提示: 在执行此命令后,请不要立即关闭当前的SSH连接窗口,我们应该开启一个新的终端窗口,使用新的端口进行连接测试,以确保一切正常。

新的连接命令格式如下:

ssh username@your_server_ip -p 2222

username替换为您的用户名,your_server_ip替换为服务器的IP地址。-p参数用于指定连接的端口号,如果能够成功登录,说明新端口配置无误。

完成后续清理工作

在新端口连接测试成功后,我们就可以安全地移除旧的22端口配置,完成整个更改过程。

CentOS 6.8如何修改SSH端口并配置防火墙生效?

再次编辑/etc/ssh/sshd_config文件,将Port 22这一行删除或注释掉,只保留Port 2222

再次重启SSH服务:

service sshd restart

从iptables防火墙中移除22端口的规则:

iptables -D INPUT -p tcp --dport 22 -j ACCEPT
service iptables save

-D参数表示删除一条规则,至此,整个端口更改流程已全部完成,您的SSH服务现在仅在新的、更安全的端口上提供服务。


相关问答FAQs

问题1:如果我修改端口后无法连接,并且被锁在服务器外面了,该怎么办?

解答: 如果您被锁在服务器外,唯一的恢复途径是通过非SSH的方式访问服务器,这通常指使用您的云服务提供商(如阿里云、腾讯云、AWS等)提供的Web VNC控制台,或者如果是物理服务器,通过KVM或iDRAC等远程管理卡登录,通过控制台登录后,您可以检查/etc/ssh/sshd_config文件中的配置是否有语法错误(如端口号拼写错误、存在非法字符等),并检查/etc/sysconfig/iptables文件,确认新端口的规则是否已正确添加和保存,修正错误后,重启sshdiptables服务即可恢复。

问题2:我可以让SSH服务同时监听多个端口吗?

解答: 是的,完全可以,在/etc/ssh/sshd_config文件中,您只需添加多行Port指令即可,如果您想让SSH同时监听22、2222和8022端口,可以这样配置:

Port 22
Port 2222
Port 8022

保存文件并重启sshd服务后,SSH服务就会在这三个端口上同时等待连接,这种配置在某些场景下非常有用,例如在进行端口迁移时,可以保持旧端口开放一段时间,以便通知所有用户更新连接信息,实现平稳过渡,也可以为不同网络环境或用户组分配不同的端口。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-08 23:01
下一篇 2025-10-08 23:02

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信