我将 ssh 端口更改为任意数字,并注意到防火墙不再允许 ssh 登录。我假设端口 22 已硬编码在防火墙的 ssh 服务定义中。如果我允许新端口进行 TCP 流量,是否足够,还是我应该为自定义 ssh 端口定义新服务?
答案1
我假设端口 22 是在 Firewalld 的 ssh 服务定义中硬编码的
在我的 CentOS/Fedora 系统上,默认服务定义存储在 中的 xml 文件中/usr/lib/firewalld/services
。文件名是服务的名称。这些被存储在 中的系统配置覆盖/etc/firewalld/services
。
要更改 ssh 端口,您可以复制/usr/lib/firewalld/services/ssh.xml
并/etc/firewalld/services/ssh.xml
修改它以满足您的目的。
然后你需要重新配置
firewall-cmd --reload
现在您的系统应该允许在新端口上进行 ssh 连接。
我肯定会使用服务名称而不是端口号,因为这样可以更清楚地了解发生了什么。我不想说是创建新服务还是覆盖现有服务更好。弄清楚发生了什么并不难。
答案2
在 CentOS 7 中更改端口后,我遇到了 SSH 问题。问题出在 SElinux 上 - 您需要为新端口添加上下文,或者,如果您不使用 SElinux,请禁用它。此外,您不需要添加新服务 - 只需将新端口列入白名单即可。