Aqui está minha configuração do firewalld:
firewall-cmd --zone=abc --list-all
abc (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: eth0
sources:
services:
ports:
protocols:
masquerade: no
forward-ports: port=162:proto=udp:toport=9162:toaddr=
sourceports:
icmp-blocks:
rich rules:
rule family="ipv4" source NOT address="127.0.0.1" port port="2181" protocol="tcp" reject
rule family="ipv6" source NOT address="::1" port port="2181" protocol="tcp" reject
Eu tenho um hbase autônomo com o zookeeper ouvindo ::: 2181
netstat -tulnp | grep 2181
tcp6 0 0 :::2181 :::* LISTEN 3400/java
Quando tento efetuar login no shell do zookeeper usando o endereço ipv4, a conexão é recusada. Considerando que, se eu fizer login usando o endereço ipv6, a conexão é aceita.
sudo /usr/lib/zookeeper/bin/zkCli.sh -server 1.2.3.4:2181 # connection refused
sudo /usr/lib/zookeeper/bin/zkCli.sh -server fe80::87:6cf2:fe35:1234:2181 # connection accepted
O que há de errado com a configuração do meu firewalld aqui? Se eu remover as regras avançadas, ambas as conexões ipv4 e ipv6 serão aceitas. Como é que apenas uma regra é aplicada com sucesso?
Eu sou novo na configuração de sistemas e estou supondo que estou basicamente fazendo o oposto de como um firewall deve ser usado. Ou seja, permitir apenas conexões específicas e bloquear o restante. Mas como isso é usado em ambientes de nuvem, o firewall externo cuida de todas as outras conexões. Este é um requisito especial.
Qualquer ajuda é apreciada.
TIA, Nikhil
Tags firewalld