Não é possível acessar o site na instância do EC2 via IP público

10

Eu tenho uma micro instância do Amazon EC2 com o servidor Windows 2008 e implantei um aplicativo Web de exemplo por lá, que usa java e implantado no servidor tomcat 7. Consigo acessá-lo localmente na instância, mas quando tentei acessá-lo fora da instância da AWS, digamos no meu computador doméstico usando o DNS público da AWS / endereço IP público / endereço elástico da instância, ele me dá "A página da Web é não disponível".

Passei por tantas perguntas semelhantes neste fórum e acho que fiz todas as configurações que eles estão pedindo, mas ainda assim não obtém sucesso.

Aqui está o que eu fiz / confirmei.

1. localhost funciona, então o aplicativo escuta na porta 80.

2. adicionada regra de entrada para HTTP na porta 80 para todos no grupo de segurança que minha instância está usando.

3. verifique a configuração do firewall na instância do Windows, verifique se a porta 80 não está bloqueada.

4. tentei mesmo com desativar o firewall, mas sem sucesso.

Eu realmente aprecio se alguém puder me ajudar nisso.

Obrigado, NS

user242725
fonte
1
O que o telnet diz e traceroute?
Pratap

Respostas:

5

Tive um problema frustrante semelhante ao instalar o JetBrains YouTrack em uma instância do Windows Server 2012 ec2. O que funcionou para mim foi abrir as portas do firewall do Windows que o java usava especificamente e desativar a porta do serviço World Wide Publishing. Também tive que executar o serviço YouTrack na conta LocalSystem em vez da conta padrão.

Tente o seguinte:

  • Desative o site padrão no IIS, se estiver em uso

  • Execute um netstat -a -b para descobrir as portas às quais o java.exe estava tentando se conectar, por exemplo:

    TCP 0.0.0.0:80 WIN-9NFIG6IEPT6: 0 LISTENING [java.exe]

    TCP 127.0.0.1:49306 WIN-9NFIG6IEPT6: 49307 ESTABELECIDO [java.exe]

  • Abra o gerenciador de controle de serviço, clique com o botão direito do mouse no serviço e abra a caixa de diálogo de propriedades. Na guia Logon como, selecione Conta do sistema local como a conta em que o serviço é executado. É importante que este usuário seja administrador

  • Eu recomendo ativar o firewall novamente.
  • Abra a guia Regras de entrada do firewall e desative a regra Serviços da World Wide Web (HTTP-In)
  • Crie uma nova regra para o Tomcat com a porta TCP 80 e qualquer outra porta necessária.

  • Salve a regra e teste seu URL de fora do servidor.

Terrence Young
fonte
4

Você não deve desativar completamente a configuração do firewall. Isso comprometeria a segurança do seu aplicativo. Em vez disso, modifique as regras de firewall de entrada do servidor Windows para permitir o tráfego de entrada em portas específicas.

Eu tive um problema semelhante ao implantar um aplicativo no Tomcat 8 no servidor Windows 2012 provisionado pelo AWS EC2. Eu pude acessar o aplicativo implantado em http: // localhost: 8080 de dentro da VM, mas não da Internet pública depois de substituir a cadeia localhost na URL pelo endereço IP público da VM.

Funcionou bem depois que alterei as regras do firewall para permitir o tráfego de entrada na porta 80 (para http), porta 443 (para https) e porta 8080 (esta é a porta na qual meu aplicativo Web foi implantado por padrão no servidor tomcat.

Eu documentei as configurações do grupo de firewall e segurança no link abaixo:

http://abhirampal.com/2015/08/04/firewall-config-for-java-web-app-hosted-on-aws-ec2-windows-2012-server/

Abhi Rampal
fonte
1
Awesome, Você salvou meu dia <3
Thamaraiselvam
1

Você provavelmente configurou incorretamente o servidor da web. Você pode testar isso conectando-se ao servidor via:

telnet $IP 80

se você não estiver recebendo um erro, poderá se conectar. Nesse caso, você não configurou o servidor da web corretamente.

Peter Lamby
fonte
Você está certo, não consigo conectar via telnet do meu computador local à instância do aws. Você pode me ajudar, como posso corrigi-lo? Eu tentei procurar o IIS na instância do aws e ele está sendo executado.
User242725
Obrigado. Funcionou depois de desativar o domínio, o firewall público e o privado por exemplo. Mas não tenho certeza, como posso proteger a instância e, ao mesmo tempo, acessar meu aplicativo da web fora da instância.
User242725
1

Uma regra para a porta TCP de entrada 80 pode precisar ser inserida no AWS Security Group para sua instância.

jaybro
fonte
1

Pode ser necessário disponibilizar a porta para ouvir qualquer chamada pública do console da AWS.

freaksterz
fonte
O console da AWS tem muitos recursos, talvez você possa ser mais específico.
kmarsh
1

Duas coisas para mim:

  1. Modificação do grupo de segurança conectado à minha instância do RDS para permitir entrada e saída de tráfego

  2. Definindo regras de entrada e saída no RDS para a porta do aplicativo

Etapas detalhadas:

  • Na barra superior do seu console da AWS, clique em Serviços, selecione EC2

  • No menu esquerdo da próxima janela, em instâncias, clique em instâncias para visualizar suas instâncias.

  • Na tabela que contém a instância que você deseja acessar do público, role para a direita até uma coluna denominada Grupos de Segurança. Clique neste grupo de segurança.

  • Na tabela exibida, role até a parte inferior que possui a descrição do grupo de segurança e outras guias, como Entrada, Saída, Tags
  • Clique na guia de entrada. Clique em editar. Por padrão, há uma regra (RDP).
  • Vamos adicionar mais dois
  • Clique no botão Adicionar regra.
  • Selecione Todo o tráfego para Tipo, Tudo para Protocolo
  • Deixe o intervalo de portas (0 - 65535), selecione a fonte como Personalizado.
  • Tudo isso se aplica a ambas as regras 2) Para a primeira regra, na caixa de texto que aparece após a fonte, coloque 0.0.0.0/0 3) Para a segunda regra, coloque :: / 0 4)
  • Clique em Salvar

    Agora, faça login no seu AWS RDS para definir regras de entrada e saída através do firewall

  • Inicie o painel de controle. Clique em Sistema e segurança (pode ser o primeiro) e clique em Windows Fire wall. Em seguida, clique em Configurações avançadas

  • Clique no menu Regras de entrada à esquerda.

  • Na guia Ações (à direita), clique em Nova regra

  • Selecione Porta e clique em Avançar

  • Selecione TCP (se não estiver selecionado) e, abaixo, selecione Portas locais específicas.

  • No campo, insira o número da porta do seu aplicativo e clique em Avançar

  • Selecione Permitir a conexão e clique em Avançar.

  • Especifique o nome da regra. Algo como o nome do seu aplicativo para fins de legibilidade e clique em Concluir

Então vamos configurar o tráfego de saída

  • No mesmo menu das Regras de entrada, selecione Regras de saída e siga o mesmo procedimento descrito para as regras de entrada
  • Após essas configurações, você deve poder acessar seu aplicativo de fora
Deo
fonte
0

Por favor, consulte o link .. Seria mais específico.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html

Você pode permitir a comunicação entre todas as instâncias associadas a este grupo de segurança ou entre instâncias associadas a outro grupo de segurança e instâncias associadas a esse grupo de segurança. Clique em Adicionar regra, selecione Todo o ICMP e comece a digitar o ID do grupo de segurança na Origem; isso fornece uma lista de grupos de segurança. Selecione o grupo de segurança da lista. Repita as etapas para os protocolos TCP e UDP. Clique em Salvar quando terminar.

freaksterz
fonte
0

É principalmente o problema com o Firewall do Windows. Eu tentei os mesmos passos que você, não foi bem sucedido. No momento em que liguei o firewall, estava tudo bem. Acho que a segurança não deve ser afetada, pois estamos configurando regras de entrada e saída.

user408251
fonte
-1

Para instância do WINDOWS - clique com o botão direito do mouse no nome da instância do EC-2, navegue até o arquivo .pem criado durante a criação da instância e clique em Descriptografar senha. Você obterá o nome de usuário e a senha para se conectar via Iniciar -> Executar -> mstsc -> IP do Windows com autenticação do Windows como administrador e sua senha

Para Instância LINUX -> Faça o download do puttygen e clique no botão LOAD para selecionar o arquivo .pem e, em seguida, clique no botão GERAR para gerar um arquivo ppk. Via putty, digite o IP e, em Connections -> SSH -> AUTH -> Browse, selecione o arquivo .ppk e salve as sessões de putty.

Robertson Bhadrachalam
fonte
Essa seria uma ótima resposta se a pergunta tivesse sido "como faço para entrar com minha chave SSH". Mas a pergunta era "como faço para acessar uma página da web no meu navegador".
Jenny D