Impossibile accedere al sito sull'istanza EC2 tramite IP pubblico


10

Ho una microistanza di Amazon EC2 con server Windows 2008 e ho distribuito un'applicazione Web di esempio laggiù che utilizza Java e distribuito sul server Tomcat 7. Sono in grado di accedervi localmente su istanza, ma quando ho provato ad accedervi al di fuori dell'istanza AWS, diciamo dal mio computer di casa utilizzando il DNS pubblico AWS / indirizzo IP pubblico / indirizzo IP elastico dell'istanza, mi dà "La pagina Web è non disponibile".

Ho affrontato così tante domande simili in questo forum e penso di aver fatto tutte le impostazioni che mi chiedono di fare, ma ancora non ci sono riuscito.

Ecco cosa ho fatto / confermato.

1. localhost funziona, quindi l'applicazione è in ascolto sulla porta 80.

2. aggiunta la regola in entrata per HTTP sulla porta 80 per tutti gli utenti del gruppo di sicurezza utilizzato dalla mia istanza.

3. verificato l'impostazione del firewall sull'istanza di Windows, assicurandosi che la porta 80 non sia bloccata.

4. provato anche con lo spegnimento del firewall, ma senza successo.

Gradirei davvero se qualcuno potesse aiutarmi in questo.

Grazie NS


1
Cosa ti dice telnet e traceroute?
Pratap,

Risposte:


5

Ho avuto un problema frustrante simile quando ho installato JetBrains YouTrack su un'istanza ec2 di Windows Server 2012. Ciò che ha funzionato per me è stato aprire le porte del firewall di Windows che Java stava utilizzando in modo specifico e disabilitare la porta del servizio di pubblicazione mondiale. Ho anche dovuto eseguire il servizio YouTrack con l'account LocalSystem anziché l'account predefinito.

Prova questo:

  • Disattiva il sito Web predefinito in IIS se è in uso

  • Esegui un netstat -a -b per scoprire le porte a cui java.exe stava tentando di collegarsi, ad esempio:

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

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

  • Apri Gestione controllo servizi, fai clic con il pulsante destro del mouse sul servizio e apri la finestra di dialogo delle proprietà. Nella scheda Accedi come selezionare Account di sistema locale come account con cui viene eseguito il servizio. È importante che questo utente sia amministratore

  • Consiglio vivamente di riattivare il firewall.
  • Aprire la scheda Regole in entrata del firewall e disabilitare la regola dei servizi Web (HTTP-In)
  • Crea una nuova regola per Tomcat con la porta TCP 80 e qualsiasi altra porta di cui potrebbe aver bisogno.

  • Salva la regola e verifica l'URL dall'esterno del server.


4

Non dovresti disattivare completamente le impostazioni del firewall. Ciò comprometterebbe la sicurezza della tua app. Invece, modifica le regole del firewall in entrata del server Windows per consentire il traffico in entrata su porte specifiche.

Ho avuto un problema simile in cui avevo distribuito un'app su Tomcat 8 su server Windows 2012 con provisioning tramite AWS EC2. Potrei accedere all'app distribuita su http: // localhost: 8080 dall'interno della VM ma non da Internet pubblico dopo aver sostituito la stringa localhost nell'URL con l'indirizzo IP pubblico della VM.

Ha funzionato bene dopo aver modificato le regole del firewall per consentire il traffico in entrata sulla porta 80 (per http), sulla porta 443 (per https) e sulla porta 8080 (questa è la porta su cui è stata distribuita la mia app Web per impostazione predefinita sul server Tomcat.

Ho documentato le configurazioni del firewall e dei gruppi di sicurezza al link seguente:

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


1
Fantastico, mi hai salvato la giornata <3
Thamaraiselvam il

1

Probabilmente hai configurato erroneamente il server web. Puoi verificarlo collegandoti al server tramite:

telnet $IP 80

se non ricevi un errore, puoi connetterti. In questo caso non hai configurato correttamente il server web.


Hai ragione, non sono in grado di connettermi via telnet dal mio computer locale all'istanza di aws. Potete per favore aiutarmi come posso ripararlo? Ho provato a cercare IIS sull'istanza di aws ed è in esecuzione.
user242725,

Grazie. Ha funzionato dopo aver spento il firewall di dominio, privato e pubblico su istanza. Ma non sono sicuro, come posso proteggere l'istanza e allo stesso tempo accedere alla mia webapp al di fuori dell'istanza.
user242725

1

Potrebbe essere necessario immettere una regola per la porta TCP 80 in entrata nel gruppo di sicurezza AWS per l'istanza.


1

Potrebbe essere necessario rendere disponibile la porta per ascoltare qualsiasi chiamata pubblica dalla console AWS.


La console AWS ha molte funzionalità, forse potresti essere più specifico.
kmarsh


1

Due cose per me:

  1. Modifica del gruppo Security associato alla mia istanza RDS per consentire il traffico in entrata e in uscita

  2. Impostazione delle regole in entrata e in uscita nell'RDS per la porta dell'applicazione

Passaggi dettagliati:

  • Nella barra superiore della tua console AWS, fai clic su Servizi, seleziona EC2

  • Nel menu a sinistra della finestra successiva, sotto istanze, fai clic su istanze per visualizzare le tue istanze

  • Nella tabella che contiene l'istanza a cui si desidera accedere dal pubblico, scorrere verso destra fino a una colonna denominata Gruppi di sicurezza. Fai clic su questo gruppo di sicurezza.

  • Nella tabella visualizzata, scorri fino alla parte inferiore con la descrizione del gruppo di sicurezza e altre schede come Inbound, Outbound, Tag
  • Fai clic sulla scheda Inbound. Fai clic su Modifica. Per impostazione predefinita, esiste una regola (RDP).
  • Aggiungiamone altre due
  • Fai clic sul pulsante Aggiungi regola.
  • Seleziona Tutto il traffico per Tipo, Tutto per Protocollo
  • Lasciare l'intervallo di porte (0 - 65535), selezionare l'origine come Personalizzata.
  • Tutti questi si applicano per entrambe le regole 2) Per la prima regola, nella casella di testo che appare dopo l'origine, inserisci 0.0.0.0/0 3) Per la seconda regola, inserisci :: / 0 4)
  • Premi Salva

    Ora accedi al tuo AWS RDS per impostare le regole in entrata e in uscita attraverso il firewall

  • Avvia il pannello di controllo. Fare clic su Sistema e sicurezza (potrebbe essere il primo) e fare clic su Windows Fire wall. Quindi fare clic su Impostazioni avanzate

  • Fai clic sul menu Regole in entrata a sinistra.

  • Nella scheda Azioni (a destra), fai clic su Nuova regola

  • Seleziona Porta e fai clic su Avanti

  • Seleziona TCP (se non selezionato) e sotto Seleziona porte locali specifiche.

  • Nel campo inserire il numero di porta dell'applicazione e fare clic su Avanti

  • Selezionare Consenti la connessione e fare clic su Avanti.

  • Specifica il nome della regola. Qualcosa come il nome della tua app ai fini della leggibilità e fare clic su Fine

Quindi consente di configurare il traffico in uscita

  • Sullo stesso menu delle Regole in entrata, selezionare Regole in uscita e seguire la stessa procedura descritta per le regole in entrata
  • Dopo queste impostazioni, devi essere in grado di accedere alla tua applicazione dall'esterno

0

Si prega di fare riferimento al collegamento ... Sarebbe più specifico.

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

È possibile consentire la comunicazione tra tutte le istanze associate a questo gruppo di sicurezza o tra istanze associate a un altro gruppo di sicurezza e istanze associate a questo gruppo di sicurezza. Fai clic su Aggiungi regola, seleziona Tutto ICMP, quindi inizia a digitare l'ID del gruppo di sicurezza in Origine; questo ti fornisce un elenco di gruppi di sicurezza. Seleziona il gruppo di sicurezza dall'elenco. Ripetere i passaggi per i protocolli TCP e UDP. Fai clic su Salva al termine.


0

È principalmente il problema con Windows Firewall. Ho provato gli stessi passaggi che hai fatto non ha avuto successo. Nel momento in cui ho spento il firewall andava bene. Penso che la sicurezza non dovrebbe essere influenzata mentre stiamo configurando le regole in uscita.


-1

Per l'istanza di WINDOWS: fare clic con il pulsante destro del mouse sul nome dell'istanza EC-2, selezionare il file .pem creato durante la creazione dell'istanza e fare clic su Decrypt password. Otterrai il nome utente e la password per la connessione tramite Start -> Esegui -> mstsc -> IP di Windows con autenticazione di Windows come amministratore e la sua password

Per l'istanza LINUX -> Scarica puttygen e fai clic sul pulsante LOAD per selezionare il file .pem e quindi fai clic sul pulsante GENERATE per generare un file ppk. Tramite putty, inserisci l'IP e in Connessioni -> SSH -> AUTH -> Sfoglia per selezionare il file .ppk e salvare le sessioni di putty.


Sarebbe un'ottima risposta se la domanda fosse "come posso accedere con la mia chiave SSH". Ma la domanda era "come posso accedere a una pagina Web dal mio browser".
Jenny D,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.