起因:我司某地的政务云环境,被通报一些安全漏洞,需要开启防火墙策略,但同事反馈,打开防火墙开关后,ssh会被策略直接拦截。考虑应该是ssh端口未在防火墙的初始化策略中,但要使用firewall-cmd,就必须开启防火墙,于是产生了一个使用悖论。
综上,是因为政务云的ssh端口不是默认的22导致的,可以通过直接修改防火墙的策略文件来解决这个问题
第一步,修改ssh配置文件的端口号为实际的ssh端口,本文章随机假定一个端口22222
##添加或者修改ssh块的配置
vi /usr/lib/firewalld/services/ssh.xml
修改文件中port的值为“22222” <port protocol="tcp" port="22222"/>
第二步,在防火墙的策略文件中,预添加需要开放的端口
vi /etc/firewalld/zones/public.xml
在<service name="dhcpv6-client"/>和</zone>中间位置,添加需要开放的端口
<port protocol="tcp" port="443"/> 如图
第三步,在启动firewalld.service服务前,需要关闭该服务的开机自动启动功能(默认一般是关闭的),防止我们上面端口设置错误,导致启动服务后无法连接远程的尴尬情况。如果无法连接,还可以重启云主机。
systemctl disable firewalld
##查看状态,确认是disable 就可以了
systemctl is-enabled firewalld
第四步,启动防火墙
systemctl restart firewalld
第五步,启动后,若远程连接正常,则说明设置正确,可以查看防火墙运行状态
systemctl status firewalld
之后就可以随意使用firewall-cmd命令去添加你想要添加的策略了。