In EC2 il firewall non sta dentro la macchina ma davanti a essa, e si chiama gruppo di sicurezza. È un elenco di regole del tipo "lascia entrare dalla porta 443 chiunque" o "lascia entrare dalla 22 solo questo IP". Tutto ciò che non è nell'elenco, non entra. Per questo una macchina appena creata può essere perfettamente accesa e, ciò nonostante, il sito non caricare: nessuno ha aperto la porta.
Capire quattro idee sui gruppi di sicurezza evita la metà dei problemi di EC2 e la maggior parte delle falle di sicurezza. Questa guida le spiega e lascia un gruppo ben configurato per un server web.
Prima di iniziare: cosa significa ogni cosa
- Gruppo di sicurezza
- Il firewall di EC2: un insieme di regole che dice quale traffico può raggiungere la macchina. Una macchina può averne diversi e un gruppo può servire per più macchine.
- Porta
- La "porta" numerata da cui entra ogni tipo di traffico: 80 per il web non cifrato, 443 per il web sicuro, 22 per SSH, 3306 per MySQL, 3389 per il desktop remoto di Windows.
- Regola in entrata
- Cosa si lascia arrivare alla macchina. Ciò che non ha una regola viene bloccato.
- Regola in uscita
- Cosa può inviare la macchina verso l'esterno. Per impostazione predefinita, tutto; quasi mai serve toccarla.
- Origine
- Da dove si consente: un IP preciso, un intervallo, chiunque (0.0.0.0/0) o un altro gruppo di sicurezza.
- CIDR
- Il modo di scrivere intervalli di IP. 203.0.113.5/32 è un solo indirizzo; 0.0.0.0/0 è tutta internet.
- Con stato (stateful)
- Se lasci entrare una richiesta, la risposta può uscire senza una regola a parte. Per questo bisogna pensare solo all'entrata.
Passo dopo passo
Guarda quale gruppo ha la tua macchina
Console EC2, Istanze, seleziona la macchina, scheda Sicurezza. Vedrai il gruppo o i gruppi assegnati e, sotto, le regole in entrata così come vengono applicate. Se il sito non risponde, qui c'è la risposta nel 90 % dei casi: manca la 443, oppure l'origine è solo il tuo IP.
Capisci il gruppo predefinito
Ogni rete (VPC) ha un gruppo chiamato default che consente tutto il traffico tra le macchine che lo condividono e niente da internet. È utile perché le tue macchine parlino tra loro, ma non per un sito pubblico. Non modificarlo per aprire porte al mondo: crea gruppi tuoi con nomi che dicano a cosa servono.
Crea un gruppo per i server web
Menu Gruppi di sicurezza, Crea gruppo di sicurezza. Nome
web-publica, descrizione chiara, la VPC predefinita. Regole in entrata:Tipo Porta Origine A cosa serve HTTPS 443 0.0.0.0/0 e ::/0 Il sito sicuro, per tutti HTTP 80 0.0.0.0/0 e ::/0 Per reindirizzare a HTTPS e rinnovare i certificati SSH 22 Il mio IP Amministrazione, solo dalla tua connessione Il menu a tendina dell'origine ha l'opzione Il mio IP, che inserisce il tuo indirizzo attuale. Aggiungi una descrizione a ogni regola ("ufficio", "casa di Anna"): tra un anno sarai contento di sapere di chi era ogni IP. Crea.
Assegna il gruppo alla macchina
Torna all'istanza, Azioni, Sicurezza, Modifica gruppi di sicurezza. Aggiungi
web-publicae togli quello che aveva se non serve più. La modifica è immediata, senza riavviare. Prova il sito e l'SSH.Per un database: apri solo alle tue macchine
Se hai una macchina o una RDS con un database, non aprire la 3306 a internet né a "Il mio IP". Crea un gruppo
bd-internacon una regola in entrata sulla porta 3306 la cui origine sia il gruppo di sicurezzaweb-publica(nel menu a tendina dell'origine puoi scegliere un gruppo invece di un IP). Così solo le macchine che hanno quel gruppo possono collegarsi, qualunque IP abbiano. È il modo corretto e quello che quasi nessuno conosce.Controlla quelli che hai già
Nell'elenco dei gruppi di sicurezza, ordina o filtra per quelli che hanno regole con origine 0.0.0.0/0 su porte diverse da 80 e 443. Una 22, una 3306 o una 3389 aperte a tutta internet sono ciò che gli attaccanti cercano ogni giorno. Chiudile al tuo IP o al gruppo corrispondente. Ed elimina i gruppi che non sono assegnati a nulla: creano solo confusione.
Cosa può andare storto
Ho chiuso la 22 a "Il mio IP" e non entro più
Il tuo IP è cambiato (connessioni domestiche). Modifica la regola dalla console, che non dipende dalla macchina, con "Il mio IP" di nuovo. Oppure usa EC2 Instance Connect dalla console, che entra dal browser se l'immagine lo supporta.
Il sito funziona per IP ma non per dominio
Non è il gruppo di sicurezza: è il DNS o la configurazione del server web. Il gruppo di sicurezza non sa nulla di nomi, solo di porte e IP.
La macchina non esce su internet per aggiornarsi
Controlla le regole in uscita: qualcuno le ha limitate. Per impostazione predefinita consentono tutto. Se la macchina non ha un IP pubblico, in più le serve un gateway NAT, che è un'altra storia.
Ho decine di gruppi "launch-wizard-7"
Li crea la procedura guidata di avvio ogni volta che qualcuno non ne sceglie uno esistente. Riassegna le macchine ai tuoi gruppi con un nome ed elimina quelli della procedura guidata. Quelli in uso non si potranno eliminare: questo ti dice quali restano.
In Simplio
In Simplio il firewall di ogni macchina, Lightsail o EC2 che sia, è lo stesso elenco semplice: porta, per chi (tutti, solo il mio IP, un IP preciso) e una descrizione. Simplio segna in rosso le porte di amministrazione aperte a tutta internet e ti avvisa, e ogni modifica richiede il doppio fattore e resta nel registro attività con chi l'ha fatta. Senza sapere cos'è un CIDR.
La stessa cosa, in AWS e in Simplio
| Nella console di AWS | In Simplio | |
|---|---|---|
| Aprire una porta solo al tuo IP | Console EC2, Gruppi di sicurezza, modifica, scoprire il tuo IP, descrizione: 5 passi | Regola "solo il mio IP" nel firewall della macchina: 1 clic, Simplio conosce il tuo IP |
| Sapere quali macchine hanno qualcosa aperto al mondo | Controllare gruppo per gruppo | Avviso nell'elenco: "porta 22 aperta a tutta internet" |
| Lightsail ed EC2 | Due console con due modelli diversi | Lo stesso firewall semplice per entrambe |