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 host
um erro. A única exceção é o serviço SSH que funciona sem problemas.
Depois de instalar ufw
nesta instância; no entanto, mais tarde desativei e removi o ufw
. Depois disso, removi iptables
o 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 ufw
no Ubuntu:https://docs.cloud.oracle.com/iaas/Content/knownissues.htm#ufw
Tenho que desabilitar ou remover ufw
e editar o arquivo /etc/iptables/rules.v4
conforme descrito no link fornecido acima. Depois disso, para habilitar as novas regras, preciso executar:
# iptables-restore </etc/iptables/rules.v4
Parece que as ufw
regras 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:
sudo vim /etc/iptables/rules.v4
(ou qualquer editor que você use)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!)
- No prompt do shell:
sudo su -
iptables-restore < /etc/iptables/rules.v4
exit
- 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 -nvL
deverá 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 disable
nã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.