Monitoraggio della connessione al gruppo di sicurezza - Amazon Elastic Compute Cloud

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Monitoraggio della connessione al gruppo di sicurezza

I gruppi di sicurezza utilizzano il monitoraggio delle connessioni per tracciare le informazioni sul traffico da e verso l'istanza. Le regole si applicano in base allo stato della connessione per stabilire se il traffico è autorizzato o negato. Con questo approccio, i gruppi di sicurezza sono con stato. Ovvero, le risposte al traffico in entrata possono uscire dall'istanza a prescindere dalle regole del gruppo di sicurezza in uscita, e viceversa.

Ad esempio, supponiamo di avviare un comando come netcat o similare sulle istanze dal computer di casa e che le regole del gruppo di sicurezza in entrata consentano il traffico ICMP. Le informazioni sulla connessione (incluse le informazioni sulla porta) vengono monitorate. Il traffico in risposta dall'istanza per il comando non viene monitorato come nuova richiesta, ma come connessione stabilita e può uscire dall'istanza, anche se le regole del gruppo di sicurezza in uscita limitano il traffico ICMP in uscita.

Per i protocolli diversi da TCP, UDP o ICMP, vengono monitorati solo l'indirizzo IP e il numero di protocollo. Se l'istanza invia traffico a un altro host e l'host invia lo stesso tipo di traffico verso l'istanza entro 600 secondi, verrà accettato dal gruppo di sicurezza dell'istanza a prescindere dalle regole del gruppo di sicurezza in entrata. Il gruppo di sicurezza lo accetta perché considerato traffico di risposta al traffico originale.

Quando si modifica una regola del gruppo di sicurezza, le connessioni tracciate non vengono interrotte immediatamente. Il gruppo di sicurezza continua a consentire i pacchetti fino al timeout delle connessioni esistenti. Per avere la certezza che il traffico venga interrotto immediatamente o che tutto il traffico sia soggetto alle regole del firewall indipendentemente dallo stato di tracciamento, è possibile utilizzare una lista di controllo degli accessi di rete per la sottorete. Le liste di controllo degli accessi di rete sono stateless, pertanto non autorizzano automaticamente il traffico di risposta. L'aggiunta di una lista di controllo degli accessi di rete che blocca il traffico in entrambe le direzioni interrompe le connessioni esistenti. Per ulteriori informazioni, consulta la sezione relativa alle Liste di controllo degli accessi di rete nella Guida per l'utente di Amazon VPC.

Nota

I gruppi di sicurezza non hanno alcun effetto sul traffico DNS da o verso il Route 53 Resolver, a volte indicato come «indirizzo IP VPC+2» (vedi Cos'è Amazon Route 53 Resolver? nella Amazon Route 53 Developer Guide) o nella 'AmazonProvidedDNS' (consulta Work with DHCP option sets nella Amazon Virtual Private Cloud User Guide). Se desideri filtrare le richieste DNS tramite il risolutore Route 53, puoi abilitare DNS Firewall per il risolutore Route 53 (consulta DNS Firewall per il risolutore Route 53 nella Guida per sviluppatori di Amazon Route 53).

Connessioni non tracciate

Non vengono monitorati tutti i flussi di traffico. Se una regola del gruppo di sicurezza consente i flussi TCP o UDP per tutto il traffico (0.0.0.0/0 o: :/0) e esiste una regola corrispondente nell'altra direzione che consente tutto il traffico di risposta (0.0.0.0/0 o: :/0) per qualsiasi porta (0-65535), quel flusso di traffico non viene tracciato, a meno che non faccia parte di una connessione tracciata automaticamente. Il traffico in risposta per un flusso non monitorato può scorrere in base alla regola in entrata o in uscita che autorizza il traffico in risposta, non in base alle informazioni di monitoraggio.

Un flusso di traffico non monitorato viene interrotto immediatamente se la regola che permette il flusso è rimossa o modificata. Ad esempio, se disponi di una regola in uscita (0.0.0.0/0) aperta e rimuovi una regola che autorizza tutto il traffico SSH (porta TCP 22) in entrata (0.0.0.0/0) verso l'istanza (o la modifichi per non consentire più la connessione), le connessioni SSH all'istanza esistenti vengono immediatamente rimosse. Poiché la connessione non è stata in precedenza tracciata, la modifica interromperà la connessione. D'altra parte, se disponi di una regola in entrata più rigida che inizialmente consente una connessione SSH (ovvero la connessione è stata monitorata), ma modifichi la regola per non consentire più nuove connessioni dall'indirizzo del client SSH corrente, la connessione SSH esistente non verrà interrotta poiché è monitorata.

Connessioni monitorate automaticamente

Le connessioni effettuate tramite quanto segue vengono tracciate automaticamente, anche se la configurazione del gruppo di sicurezza non richiede altrimenti il tracciamento:

  • Internet Gateway egress-only

  • Acceleratori di Global Accelerator

  • Gateway NAT

  • Endpoint Firewall Network Firewall

  • Network Load Balancers

  • AWS PrivateLink (endpoint VPC di interfaccia)

  • AWS Lambda (interfacce di rete elastiche Hyperplane)

Permessi di tracciamento delle connessioni

Amazon EC2 definisce il numero massimo di connessioni che possono essere monitorate per ogni istanza. Una volta raggiunto il massimo, tutti i pacchetti inviati o ricevuti vengono eliminati perché non è possibile stabilire una nuova connessione. In questo caso, le applicazioni che inviano e ricevono pacchetti non possono comunicare correttamente. Utilizza il parametro delle prestazioni di rete conntrack_allowance_available per determinare il numero di connessioni tracciate ancora disponibili per quel tipo di istanza.

Per determinare se i pacchetti sono stati eliminati perché il traffico di rete per l'istanza ha superato il numero massimo di connessioni che possono essere monitorate, utilizza il parametro delle prestazioni di rete conntrack_allowance_exceeded. Per ulteriori informazioni, consulta Monitoraggio delle prestazioni di rete per l'istanza EC2.

Con Elastic Load Balancing, se si supera il numero massimo di connessioni che è possibile monitorare per istanza, si consiglia di ridimensionare il numero di istanze registrate con il load balancer o la dimensione delle istanze registrate con il load balancer.

Considerazioni sulle prestazioni di tracciamento delle connessioni

Il routing asimmetrico, in cui il traffico entra in un'istanza attraverso un'interfaccia di rete e esce da un'altra interfaccia di rete, può ridurre le prestazioni di picco che un'istanza può raggiungere se i flussi vengono tracciati.

Per mantenere le massime prestazioni quando il tracciamento delle connessioni è abilitato per i gruppi di sicurezza, consigliamo la seguente configurazione:

  • Evita topologie di routing asimmetriche, se possibile.

  • Invece di utilizzare i gruppi di sicurezza per il filtraggio, utilizzate gli ACL di rete.

  • Se devi utilizzare gruppi di sicurezza con tracciamento delle connessioni, configura il timeout di connessione più breve possibile.

Per ulteriori informazioni sull'ottimizzazione delle prestazioni del sistema Nitro, consulta. Considerazioni sul sistema Nitro per l'ottimizzazione delle prestazioni

Timeout di tracciamento delle connessioni inattive

Il gruppo di sicurezza tiene traccia di ogni connessione stabilita per garantire che i pacchetti restituiti vengano consegnati come previsto. Per ciascuna istanza esiste un numero massimo di connessioni che possono essere monitorate. Le connessioni che rimangono inattive possono portare all'esaurimento del tracciamento delle connessioni, impedire il tracciamento delle connessioni ed eliminare i pacchetti. Ora puoi impostare il timeout in secondi per il tracciamento delle connessioni inattive su un'interfaccia di rete elastica.

Nota

Questa funzionalità è disponibile solo per le istanze create sul sistema Nitro. AWS

Esistono tre timeout configurabili:

  • Timeout TCP stabilito: il timeout (in secondi) per le connessioni TCP inattive in uno stato stabilito. Minimo: 60 secondi. Massimo: 432.000 secondi (5 giorni). Valore predefinito: 432.000 secondi. Consigliato: meno di 432.000 secondi.

  • Timeout UDP: il timeout (in secondi) per i flussi UDP inattivi che hanno registrato traffico solo in un'unica direzione o una singola transazione richiesta-risposta. Minimo: 30 secondi. Massimo 60 secondi. Valore predefinito: 30 secondi.

  • Timeout del flusso UDP: il timeout (in secondi) per i flussi UDP inattivi classificati come flussi che hanno registrato più di una transazione richiesta-risposta. Minimo: 60 secondi. Massimo: 180 secondi (3 minuti). Valore predefinito: 180 secondi.

Potresti voler modificare i timeout predefiniti per uno dei seguenti casi:

  • Se stai monitorando le connessioni tracciate utilizzando i parametri delle prestazioni di rete di Amazon EC2, i parametri conntrack_allowance_exceeded e conntrack_allowance_available consentono di monitorare i pacchetti persi e tenere traccia dell'utilizzo della connessione per gestire in modo proattivo la capacità delle istanze EC2 con azioni di aumento o riduzione per contribuire a soddisfare la domanda di connessioni di rete prima di perdere i pacchetti. Se stai osservando un calo di conntrack_allowance_exceeded sulle tue istanze EC2, potresti trarre vantaggio dall'impostare un timeout TCP più basso per tenere conto delle sessioni TCP/UDP obsolete causate da client o middlebox di rete impropri.

  • In genere, i sistemi di bilanciamento del carico o i firewall hanno un timeout di inattività stabilito dal protocollo TCP compreso tra 60 e 90 minuti. Se utilizzi carichi di lavoro che dovrebbero gestire un numero molto elevato di connessioni (superiore a 100.000) da dispositivi come i firewall di rete, si consiglia di configurare un timeout simile su un'interfaccia di rete EC2.

  • Se stai eseguendo un carico di lavoro che utilizza una topologia di routing asimmetrica, ti consigliamo di configurare un timeout di inattività stabilito dal protocollo TCP di 60 secondi.

  • Se esegui carichi di lavoro con un numero elevato di connessioni come DNS, SIP, SNMP, Syslog, Radius e altri servizi che utilizzano principalmente UDP per soddisfare le richieste, l'impostazione del timeout 'UDP-Stream' su 60 secondi offre un rapporto scala/prestazioni più elevato per la capacità esistente e per prevenire errori gray.

  • Per le connessioni TCP/UDP tramite Network Load Balancer (NLB) ed Elastic Load Balancing (ELB), tutte le connessioni vengono tracciate. Il valore di timeout di inattività per i flussi TCP è di 350 secondi e per i flussi UDP è di 120 secondi e varia a seconda dei valori di timeout a livello di interfaccia. Potresti voler configurare i timeout a livello di interfaccia di rete per consentire una maggiore flessibilità di timeout rispetto ai valori predefiniti per ELB/NLB.

È possibile configurare i timeout di tracciamento della connessione quando si eseguono le seguenti operazioni:

Esempio

Nell'esempio seguente, il gruppo di sicurezza ha regole in entrata specifiche che autorizzano il traffico TCP e ICMP e regole in uscita che autorizzano tutto il traffico in uscita.

In entrata
Tipo di protocollo Numero della porta Origine
TCP 22 (SSH) 203.0.113.1/32
TCP 80 (HTTP) 0.0.0.0/0
TCP 80 (HTTP) ::/0
ICMP Tutti 0.0.0.0/0
In uscita
Tipo di protocollo Numero della porta Destinazione
Tutti Tutti 0.0.0.0/0
Tutti Tutti ::/0

Con una connessione di rete diretta all'istanza o all'interfaccia di rete, il comportamento di monitoraggio è il seguente:

  • Il traffico TCP in entrata e in uscita sulla porta 22 (SSH) viene monitorato in quanto la regola in entrata consente il traffico solo da 203.0.113.1/32 e non da tutti gli indirizzi IP (0.0.0.0/0).

  • Il traffico TCP in entrata e in uscita sulla porta 80 (HTTP) non viene monitorato, perché le regole in entrata e in uscita autorizzano il traffico da tutti gli indirizzi IP.

  • Il traffico ICMP viene sempre monitorato.

Se viene rimossa la regola in uscita per il traffico IPv4, viene monitorato tutto il traffico IPv4 in entrata e in uscita, incluso il traffico sulla porta 80 (HTTP). Lo stesso vale per il traffico IPv6 se si rimuove la regola in uscita per il traffico IPv6.