“Nenhuma rota para o host” ao tentar se conectar a um serviço TCP em um Oracle Cloud Intance

“Nenhuma rota para o host” ao tentar se conectar a um serviço TCP em um Oracle Cloud Intance

Eu criei uma instância do Ubuntu emInfraestrutura em Nuvem Oracle (OCI). Consigo me conectar a esta instância com SSH (TCP 22). Criei alguns serviços nesta instância, como diurno (TCP 13), correio (TCP 25), http (TCP 80), dns (TCP/UDP 53). Eu adicionei regras semelhantes aoLista de segurança padrãona página da web de gerenciamento do OCI desta instância semelhante à regra SSH padrão. No entanto, quando tento me conectar aqualquerdesses serviços da Internet, recebo No route to hostum erro. A única exceção é o serviço SSH que funciona sem problemas.

Depois de instalar ufwnesta instância; no entanto, mais tarde desativei e removi o ufw. Depois disso, removi iptableso pacote também. Então, agora não existe nenhum firewall Linux. No entanto, ainda tenho esse problema.

Este parece ser um problema relacionado ao OCI. Já fiz configurações semelhantes em outras plataformas de nuvem (AWS, GCP, etc.) sem problemas.

Onde mais posso procurar para isolar esse problema?


Atualização: Removendo iptablese reiniciandoresolveu o problema. Agora vou tentar reinstalar o iptables.

Responder1

O problema parece estar relacionado ao fato de a OCI não querer que você use ufwno Ubuntu:https://docs.cloud.oracle.com/iaas/Content/knownissues.htm#ufw

Tenho que desabilitar ou remover ufwe editar o arquivo /etc/iptables/rules.v4conforme descrito no link fornecido acima. Depois disso, para habilitar as novas regras, preciso executar:

# iptables-restore </etc/iptables/rules.v4

Parece que as ufwregras não têm qualquer efeito em tal configuração e euterusar iptables. Esta, no entanto, não é uma maneira muito fácil de gerenciar as regras de firewall em um servidor Ubuntu na plataforma OCI.

Responder2

Encontrei esse problema com o Oracle Linux na nuvem Oracle. Possui um conjunto predefinido de regras de bloqueio. Então, eu estava conectando com sucesso a porta 22 (ssh), mas estava recebendo "Sem rota para o host" ao tentar conectar outras portas.
Você precisa abrir portas individualmente:

Por exemplo, para Docker:

firewall-cmd  --permanent --zone=public --add-port=2377/tcp
firewall-cmd  --reload

Além disso, você precisa configurar a lista de segurança para rede virtual em nuvem.

Responder3

Estas são as etapas exatas que funcionaram para mim, com base na resposta do FedKad à sua postagem original...

As seguintes etapas extras foram necessárias na nuvem Oracle, para abrir portas no Ubuntu 20:

  1. sudo vim /etc/iptables/rules.v4 (ou qualquer editor que você use)

  2. Após a linha -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT, insira:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1234 -j ACCEPT

(altere o número da porta que precisa ser aberta!)

  1. No prompt do shell:

sudo su -

iptables-restore < /etc/iptables/rules.v4

exit

  1. A porta recém-aberta pode ser testada continuandooutroMáquina Linux e emitindo o comando:

nc -zvw100 THE_IP_ADDRESS_OF_MACHINE_WHOSE_PORT_WE_OPENED THE_PORT_NUMBER

Responder4

Pode estar na rede ou na instância do Linux. E se for no Linux pode ser o iptables ou o serviço.

Para começar com o último, e como você tem e-mail, experimente na caixa Linux:

telnet 127.0.0.1 smtp
helo there
quit

Você vê mensagens 220, 250 e 221? Então seu serviço de correio funciona. Se você obtiver Connection refused, então seu serviço não está funcionando.

A seguir, iptables -nvLdeverá informar se as portas estão abertas para o mundo exterior. Se você não puder fazer cara ou coroa com a saída,

service iptables stop

deve parar o iptables, o que para um teste pode ser aceitável. Você disse que se livrou de ufw, então presumo que sudo ufw disablenão será mais necessário.

Se, com o iptables fora do caminho, você ainda não conseguir se conectar, provavelmente é uma configuração na nuvem da Amazon, com a qual não tenho experiência.

informação relacionada