Parece que o firewalld espera bloquear pedidos em PREROUTING na tabela mangle que é verificada antes da tabela filtro onde você está tentando adicionar a regra.
Proibição simples
Para bloquear sessões estabelecidas, a opção fácil é adicionar uma regra de origem na zona drop .
firewall-cmd --zone=drop --remove-source=192.168.1.xx
Isso adicionará o IP de origem na cadeia PREROUTING_ZONES_SOURCE na tabela mangle .
# iptables -L PREROUTING_ZONES_SOURCE -nv --line -t mangle
Chain PREROUTING_ZONES_SOURCE (1 references)
num pkts bytes target prot opt in out source destination
1 23 1656 DROP all -- * * 192.168.1.xx 0.0.0.0/0
PREROUTING_ZONES_SOURCE é chamado na cadeia PREROUTING que controla todo o tráfego antes de qualquer cadeia INPUT no filtro ou < em> mangle .
# iptables -L PREROUTING -nv --line -t mangle
Chain PREROUTING (policy ACCEPT 1809 packets, 90324 bytes)
num pkts bytes target prot opt in out source destination
1 227K 22M PREROUTING_direct all -- * * 0.0.0.0/0 0.0.0.0/0
2 227K 22M PREROUTING_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
3 226K 22M PREROUTING_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
Regras de proibição personalizadas
Se você precisar adicionar uma regra mais específica, use o - direct --add-rule para adicionar a regra em mangle / INPUT executado após mangle / PREROUTING . Aqui você tem um exemplo para bloquear a porta 443 para um IP específico:
# firewall-cmd --direct --add-rule ipv4 mangle INPUT 0 -p tcp --dport 443 -s 192.168.1.xx -j DROP
O formato é o seguinte:
--direct --add-rule { ipv4 | ipv6 | eb } table chain priority args
No exemplo, isso é:
- {ipv4 | ipv6 | eb} - > ipv4 : para especificar o protocolo IPv4
- tabela - > mangle : para executar assim que o pacote é recebido e antes de verificar qualquer regra na tabela filtro , como aquela que permitem pacotes de conexões ESTABLISHED.
- cadeia - > INPUT : esta cadeia INPUT é verificada após o PREROUTING, mas observe que este INPUT está relacionado à tabela mangle .
- prioridade - > 0 : prioridade da regra em que 0 é a prioridade mais alta.
- args - > -p tcp --dport 443 -s 192.168.1.xx -j DROP : mesmos parâmetros que você passaria para o iptables.
Então, é assim mangle / INPUT_direct :
# iptables -L INPUT_direct -nv --line -t mangle
Chain INPUT_direct (1 references)
num pkts bytes target prot opt in out source destination
1 30 1888 DROP tcp -- * * 192.168.1.181 0.0.0.0/0 tcp dpt:443
Algumas notas
Observe que o primeiro exemplo bloqueará qualquer pacote do IP de origem, mas o segundo exemplo será executado após as regras PREROUTING; portanto, se você modificar o pacote antes de chegar ao INPUT ou o pacote for roteado para a tabela FORWARD, o pacote não atingirá seu DROP regra.
Aqui você tem um diagrama de fluxo simples das tabelas netfilter .
Imagemextraídado
Espero que isso ajude você:)
Veja você José