centos7防火墙关闭22端口

高手们请问下,centos7防火墙关闭22端口
最新回答
捣碎幻觉

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端口的访问权限,或者按照方法一或方法二进行更安全的配置。

    不推荐长期使用这种方法,因为这会让你的服务器暴露在更大的安全风险中。

选择哪种方法取决于你的具体安全需求和技术水平。对于大多数用户来说,方法一或方法二更为安全可靠。记住,安全永远是第一位的。在进行任何防火墙操作之前,请务必备份你的系统配置,以防万一。