Eu estava experimentando com ip6tables
(versão 1.6.0 ) em instâncias do EC2 usando o Debian 9 AMI, notei que depois de algum tempo eu perdi a conectividade com o servidor no endereço IPv6 enquanto eu podia Ainda alcanço o servidor no endereço IPv4, é claro que tenho o grupo de segurança definido para permitir todo o tráfego em IPv4 e IPv6, incluindo ICMP.
Estou definindo a política padrão da INPUT
chain como DROP
e permitindo portas específicas ou endereços IP e todo o tráfego ICMP, e estou tentando fazer o ping do servidor de outros hosts fora da AWS (da Linode e DigitalOcean), depois de algum tempo todos os pacotes param de chegar à instância do EC2, também estou executando 3 serviços nginx nas portas 80 , 8080 e 5555 , portas 8080 e 5555 são portas publicadas de contêineres nginx Docker, mas isso não importa, já que estou tentando solicitações GET em todas essas portas com o mesmo problema .
O mais estranho é que eu estou vendo o número de pacotes e quando a conectividade é perdida, o número de pacotes descartados não está aumentando ip6tables -L -xvn
:
Chain INPUT (policy DROP 21 packets, 2748 bytes)
Mas quando eu altero a política padrão para ACCEPT
( ip6tables -P INPUT ACCEPT
), então ela começa a funcionar novamente, não sei se isso é uma coincidência ou não.
Eu também estou vendo o número de pacotes da tabela nat
usando watch -n 1 ip6tables -t nat -L -xvn
, quando tudo está funcionando bem, a contagem de pacotes aumenta tanto na cadeia PREROUTING
quanto na INPUT
, uma coisa que eu notei é que quando esse problema ocorre, posso ver o aumento do número de pacotes na cadeia PREROUTING
da tabela nat
enquanto os pacotes na cadeia INPUT
da tabela nat
não aumentam, também não tenho nenhum regras definidas na tabela nat
.
Chain PREROUTING (policy ACCEPT 396 packets, 35498 bytes)
Além disso, eu tenho o Docker instalado que não usa ip6tables
, tentei parar os contêineres do Docker e desabilitar o daemon do Docker e liberar as regras de iptables
definidas pelo Docker sem qualquer sorte, o mesmo problema acontece após alguns tempo.
Estou tentando ping
e curl
em três servidores diferentes:
ping6 HOST_IP
E:
while true; do curl http://HOST_IP:5555 --connect-timeout 10; sleep 1; done
Estas são as regras ip6tables
que estou usando:
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -s IPv6_OF_ONE_OF_MY_OTHER_HOSTS -j ACCEPT
-A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT
-P INPUT DROP
Estou tentando testar se o host na lista de permissões é capaz de alcançar todas as portas e os outros 2 hosts só podem acessar a porta 5555 .
Estou fazendo algo errado? Como posso resolver este problema?