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à.
Utilizzo dei Network Load Balancer
Se collocare un Network Load Balancer (NLB) davanti a un AWS Transfer Family il server dipende dal protocollo utilizzato dal server. Consulta le seguenti linee guida prima di aggiungere un NLB alla tua architettura.
-
FTP e FTPS — Si consiglia di non posizionare un NLB davanti al server. Un NLB in questo percorso aumenta i costi e riduce il numero di connessioni simultanee accettate dal server. Se l'implementazione FTP o FTPS richiede un NLB, vedi Evitare di posizionare NLB e NAT davanti a AWS Transfer Family server per consigli sulla configurazione.
-
SFTP — Un NLB è supportato per i server che utilizzano un VPC-hosted endpoint, tuttavia consigliamo di evitare un NLB ove possibile. Dove è richiesto un NLB, è possibile conservare l'indirizzo IP di origine del client con il protocollo PROXY v2 (PPv2).
Un motivo comune per mettere un NLB davanti a un AWS Transfer Family il server deve offrire una porta listener personalizzata. AWS Transfer Family offre già diverse porte, quindi recensisci AWS Transfer Family matrice del tipo di endpoint e Crea un SFTP-enabled server per le porte supportate prima di aggiungere un NLB per esporre una porta listener personalizzata.
Preservazione dell'IP di origine del client per SFTP con il protocollo PROXY v2
Questa funzionalità si applica ai server SFTP che utilizzano un VPC-hosted endpoint. Quando un NLB si trova nel percorso tra il client e il server SFTP, AWS Transfer Family vede l'indirizzo IP privato dell'NLB anziché l'indirizzo IP di origine del client. Il protocollo PROXY v2 (PPv2) risolve questo problema. L'NLB aggiunge un'intestazione PPv2 che riporta l'indirizzo IP di origine del client e AWS Transfer Family legge quell'intestazione.
Quando si abilita PPv2, l'indirizzo IP di origine del client diventa disponibile nelle seguenti posizioni:
-
L'autenticazione richiede che AWS Transfer Family invia al tuo provider di identità personalizzato. Puoi quindi scrivere IP-based politiche di accesso.
-
Inserimenti di registro in Amazon CloudWatch Registri.
Compatibilità del client SSH con il protocollo PROXY v2
Dopo aver stabilito la connessione TCP, sia il client che il server inviano una stringa di identificazione SSH come primi dati. Questa stringa identifica il protocollo SSH e le versioni del software, ad esempio SSH-2.0-OpenSSH_10.3. Per ulteriori informazioni, vedere Protocollo SSH Transport Layer (RFC 4253)
Alcuni client SSH meno recenti attendono di ricevere la stringa di identificazione SSH del server prima di inviare la propria. I client che supportano ancora la versione 1 del protocollo SSH lo fanno in modo da poter scegliere una versione del protocollo basata sulla stringa di identificazione del server. Quando il protocollo PROXY v2 è abilitato su un gruppo target NLB, l'NLB non fornisce la stringa di identificazione del server al client finché il client non invia i dati. Questi client si connettono e attendono la stringa di identificazione del server, quindi non inviano mai la propria e la connessione si blocca fino allo scadere del timeout.
La tabella seguente elenca i client SSH comuni e la versione minima di ciascuno nota per essere compatibile con il protocollo PROXY v2 nella sua configurazione predefinita. Questo elenco non è completo. Una versione precedente potrebbe funzionare anche se la configuri per utilizzare solo la versione 2 del protocollo SSH. Se utilizzi un client non presente in questa tabella, verificane la compatibilità prima di abilitare il protocollo PROXY v2.
Client |
Versione minima |
|---|---|
WinSCP |
5.8.1 |
OpenSSH |
6.2 |
JSch |
0.1.34 |
Paramiko |
Tutte le versioni |
SSH.NET |
2020.0.0 |
FileZilla |
3,14,0 |
ssh 2 (Node.js) |
Tutte le versioni |
Apache MINA SSHD |
Tutte le versioni |
libssh2 |
0.6 |
SSHJ |
Tutte le versioni |
Cyberduck |
2.2 |
Per trovare i client SSH che si connettono al tuo server, abilita la registrazione strutturata per il tuo server. Il client il campo contiene la stringa di identificazione del cliente, ad esempio SSH-2.0-OpenSSH_10.3. Per ulteriori informazioni, consulta Log strutturati JSON per Transfer Family. Se un client attende la stringa di identificazione SSH del server prima di inviare la propria, o non compare in questa tabella, chiedi agli utenti di eseguire l'aggiornamento prima di abilitare il protocollo PROXY v2 per il tuo NLB.
Abilita l'applicazione del protocollo PROXY v2 su un server esistente
Il SftpMode membro di ProxyConfig controlla il modo in cui il server gestisce l'header PPv2. Ha esattamente due valori: NONE (impostazione predefinita) e PROXY_PROTOCOL_V2_ENFORCED. Per ulteriori informazioni, consulta ProtocolDetails nella documentazione di riferimento dell’API AWS Transfer Family .
Importante
Con PROXY_PROTOCOL_V2_ENFORCED, è necessario limitare il gruppo di sicurezza degli endpoint VPC del server in modo da consentire il traffico in entrata solo attraverso l'NLB affidabile. Poiché il server si fida dell'indirizzo IP di origine nell'intestazione PPv2, ciò impedisce a un client di aggirare l'NLB e di presentare un indirizzo IP di origine falsificato.
Completa i tre passaggi seguenti per abilitare l'applicazione senza rifiutare alcuna connessione. Questo ordine evita i tempi di inattività della migrazione.
Passaggio 1: abilitare il protocollo PROXY v2 sul gruppo target NLB
Attivare il proxy_protocol_v2.enabled attributo sul gruppo target NLB che punta all'endpoint VPC del server. Questo attributo indica all'NLB di anteporre un'intestazione PPv2 a ogni connessione. Per istruzioni, vedere Protocollo proxy per il Network Load Balancer nel Guida per l'utente di Elastic Load Balancing.
Mentre il server è impostato su SftpMode=NONE, accetta connessioni con o senza un'intestazione PPv2.
Nota
Alcuni client SSH attendono di ricevere la stringa di identificazione SSH del server prima di inviare la propria. Quando si abilita il protocollo PROXY v2, questi client non riescono a completare la connessione. Prima di abilitare il protocollo PROXY v2, verificate che i client degli utenti inviino prima la stringa di identificazione. Per informazioni dettagliate, vedi Compatibilità del client SSH con il protocollo PROXY v2.
Passaggio 2: verifica che l'intestazione arrivi a ogni connessione
Prima di applicare il protocollo PPv2, verificate che il server riceva un'intestazione PPv2 su ogni connessione. Controllate i log del vostro server per verificare la presenza di CONNECTED tipo di attività. Nei log strutturati (JSON) in Amazon CloudWatch Registri, controlla proxy-protocol-v2-header campo per il valore ignored. Nei registri precedenti, seleziona ProxyProtocolV2Header campo con lo stesso valore.
Il campo ha la seguente semantica:
-
Il campo è assente quando la connessione non include un'intestazione PPv2.
-
Il valore è
ignoredquando la connessione includeva un'intestazione PPv2 mentreSftpModeèNONE. -
Il valore è
appliedquando la connessione includeva un'intestazione PPv2 e il server l'ha rispettataPROXY_PROTOCOL_V2_ENFORCED.
Continua a controllare i registri fino a ogni CONNECTED entry riporta il campo con il valore ignored. Un campo assente indica che un percorso raggiunge ancora il server senza un'intestazione PPv2. Se lo applichi mentre manca l'intestazione in un percorso, il server rifiuta tali connessioni. Per ulteriori informazioni su questi campi di registro, consulta Log strutturati JSON per Transfer Family e Log precedenti per Transfer Family.
Fase 3: Applica il protocollo PROXY v2
Aggiorna il server in modo che SftpMode membro di ProxyConfig è PROXY_PROTOCOL_V2_ENFORCED. Il server richiede quindi un'intestazione PPv2 valida su ogni connessione SFTP in entrata. Il server rifiuta le connessioni che arrivano senza un'intestazione PPv2 valida e registra un errore su Amazon CloudWatch Registri. Per eseguire il rollback, imposta SftpMode a NONE.