Tenho dois servidores com versões diferentes de RHEL e firewalld. Ambos são configurados da mesma forma, mas se comportam de maneira diferente quando adiciono um IP de origem a uma zona.
Servidor A:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
# firewall-cmd --version
0.6.3
Servidor B:
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.3 (Plow)
# firewall-cmd --version
1.2.5
Ambos os servidores têm uma configuração de firewalld muito básica e posso fazer ssh em ambos (observe a inclusão do serviço ssh em ambas as configurações):
A:
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens32
sources:
services: dhcpv6-client mysql ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
B:
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eno8303
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Os servidores irão hospedar um banco de dados MariaDB, então preciso garantir que a porta 3306 seja permitida. Sem outras alterações, executo os seguintes comandos que (por experiência própria) permitem o tráfego da porta 3306 do endereço IP específico 192.168.1.2:
# firewall-cmd --new-zone=test --permanent
success
# firewall-cmd --zone=test --add-source=192.168.1.2 --permanent
success
# firewall-cmd --zone=test --add-port=3306/tcp --permanent
success
# firewall-cmd --reload
Depois de executar esses comandos, ainda posso fazer SSH no Servidor A a partir do endereço IP 192.168.1.2, mas não consigo fazer SSH no Servidor B. Posso, no entanto, fazer SSH no Servidor B a partir de outras máquinas. De 192.168.1.2 para o Server BI, obtenha:
# ssh ServerB
ssh: connect to host ServerB port 22: No route to host
Se eu criar a zona sem a --add-source
opção, o SSH funcionará bem, então parece que esta opção tem um comportamento diferente no servidor mais recente. Isso está correto? Não consigo encontrar nenhum outro motivo para isso não funcionar.