2026-04-22 17:28:04
在CentOS 7中,直接关闭22端口并非最佳实践,因为它会带来安全风险。更稳妥的做法是允许特定IP地址访问22端口,或者将SSH服务迁移到其他端口。以下是详细步骤:
允许特定IP地址访问22端口:
假设你的公网IP地址是192.168.1.100,你需要执行以下命令:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'firewall-cmd --reload
这条命令添加了一条永久性的规则,允许来自192.168.1.100的TCP 22端口连接。
--permanent选项确保规则在重启后仍然有效。
--reload命令使更改立即生效。
记住替换192.168.1.100为你信任的IP地址。
如果你有多个信任的IP,需要为每个IP分别添加规则。
一个常见的错误是忘记使用--permanent参数,导致重启服务器后规则失效。
更改SSH端口:
修改SSH配置文件/etc/ssh/sshd_config,将Port参数的值修改为你选择的端口,例如2222。Port 2222
保存文件后,重启SSH服务:systemctl restart sshd
然后,你需要在防火墙中允许新的端口:firewall-cmd --permanent --add-port=2222/tcpfirewall-cmd --reload
最后,记住修改你的SSH客户端连接设置,使用新的端口号连接服务器。
临时关闭22端口 (不推荐):
如果你只是临时需要关闭22端口进行一些操作,可以使用以下命令:firewall-cmd --permanent --remove-port=22/tcpfirewall-cmd --reload
记住,这只是临时措施,完成后应尽快恢复22端口的访问权限,或者按照方法一或方法二进行更安全的配置。
不推荐长期使用这种方法,因为这会让你的服务器暴露在更大的安全风险中。
选择哪种方法取决于你的具体安全需求和技术水平。对于大多数用户来说,方法一或方法二更为安全可靠。记住,安全永远是第一位的。在进行任何防火墙操作之前,请务必备份你的系统配置,以防万一。