Quali porte firewall devo aprire quando utilizzo FTPS?


33

Devo accedere a un server FTPS (vsftpd) sul sito di un fornitore. Il fornitore ha un firewall davanti al server ftps. Ho un firewall davanti al mio client FTPS.

Capisco che le porte 990, 991 e forse 989 debbano essere aperte per controllare il traffico.

Ho alcune domande:

  1. Se lo si osserva dal punto di vista del firewall del fornitore, è necessario aprire queste porte per il traffico in entrata e in uscita?
  2. Che dire delle porte per il canale DATA?
  3. Devo aprire tutte le porte superiori a 1000?
  4. Devo farlo sia per il traffico in entrata che per quello in uscita?

Risposte:


19

La mia comprensione di FTP su SSL (ftps) è che non funziona bene con firewall e NAT. In una normale sessione FTP, le informazioni sulle connessioni dati vengono lette e modificate dal NAT dal firewall in modo che il firewall possa aprire dinamicamente le porte necessarie. Se tali informazioni sono protette da SSL, il firewall non può leggerle o modificarle.

L'uso di SFTP o scp semplifica notevolmente il lavoro dell'amministratore di rete: tutto accade sulla porta 22 del server e la transazione segue il normale modello client / server.

Una cosa non menzionata è se il firewall sta eseguendo o meno il NAT e se è NAT statico o NAT dinamico. Se la macchina client ha un indirizzo statico o è staticamente NAT, potrebbe non essere necessario apportare modifiche al firewall, supponendo che si consenta tutto il traffico in uscita e che il server funzioni solo in modalità passiva (PASV).

Per sapere esattamente quali porte dovrai aprire, dovrai:

a) parlare con il fornitore per ottenere dettagli su come è stato configurato il proprio sistema.

b) Utilizzare un analizzatore di protocollo, come tcpdump o WireShark, per esaminare il traffico, sia all'esterno del firewall che all'interno del firewall

Devi scoprire quale porta è la Control Connection. Elenca 3, che mi sembra strano. Supponendo che il server funzioni solo in modalità PASV (passiva), è necessario capire come il server è configurato per le porte DATA assegnate. Hanno bloccato il canale DATA su una singola porta in entrata? Hanno bloccato il canale DATA su un piccolo intervallo o porte?

Con queste risposte, puoi iniziare a configurare il tuo firewall.


3
modalità passiva FTPS userebbe una porta di controllo sulla porta # 1024 e quindi funzionerebbe meglio con un firewall che non passivo. il client dice alla porta 21 quale porta con limite superiore aprire e quindi è possibile configurare il client per dire "il controllo è sulla porta 2000 o 2001" e quindi il server aprirà la porta in uscita 2000 o 2001. la maggior parte dei client FTP supporta la definizione di un intervallo specifico delle porte per il "controllo" per essere attivo e ciò semplifica le definizioni del firewall.
Djangofan,

27

Credo che le porte intorno al 990 fossero per SSL implicito, che era un vecchio modo non standard di fare FTP / SSL. Il modo "giusto" in questi giorni è esplicito SSL, il che significa che devi ancora connetterti alla porta 21 e quindi negoziare SSL prima di inviare le tue chicche. Per supportare le connessioni attraverso un firewall, è necessario utilizzare la modalità PASV e impostare le porte dati da utilizzare.

Ritengo che occorra almeno una porta per connessione dati che si desidera supportare. Se sei solo tu, probabilmente stai bene solo aprendo alcune porte extra. In particolare per me, utilizzo 21000-21010.

In vsftpd.conf, ho queste due righe (insieme a tutte le altre cose per supportare SSL):

pasv_min_port=21000

pasv_max_port=21010

Sul mio firewall, ho un IP statico pubblico con NAT one-to-one / statico sull'IP interno e solo le porte tcp 21, 21000-21010 sono aperte.


10

So che questo è un thread estremamente vecchio, tuttavia ..

Si noti che SFTP è completamente diverso da FTPS. (SSH vs SSL)

FTPS worsk in 2 modi. Esplicito e implicito. Explicit è meno sicuro perché dopo l'handshake iniziale salta la crittografia durante i trasferimenti di dati [se la crittografia dei dati viene mantenuta è configurabile sul lato server con PROT P], mentre l'Implicit mantiene anche la crittografia dei dati dopo l'handshake. La porta FTPS esplicita predefinita è 21. La porta implicita predefinita è 990 (dopo l'handshake passerà automaticamente a 989 per la trasmissione dei dati, se non configurato diversamente). Mentre la porta 21 è generalmente accettata come FTPL EXPLICIT e 990 come FTPS IMPLICIT, in realtà qualunque porta configurerai, tranne 990/989, porterà a FTPS EXPLICIT mentre SOLO 990/989 sarà accettata come FTPS IMPLICIT.

Quindi, per rispondere alla tua domanda: - a seconda della configurazione del server FTPS, dovrai aprire la porta 21 o 990/989. Tuttavia, per sicurezza, è necessario contattare l'amministratore del server FTPS e chiedere indicazioni. Inoltre, tieni presente che per la modalità passiva, come con qualsiasi altro software FTP, dovrai aprire porte aggiuntive (TCP / UDP) di solito qualcosa nell'intervallo 64000-65000.


2

Fondamentalmente ftps è quasi inutile, perché è necessario effettuare richieste imbarazzanti agli amministratori del firewall. Il consiglio di limitare le porte a 10 è buono. Molto di più, diventa patetico.

sftp è molto meglio in teoria. Ma hai bisogno di un server sftp valido, ad esempio uno che limiti i client alla loro home directory.

A seconda dell'applicazione, considerare HTTPS. Un caricamento di file è davvero semplice e ovviamente lo è anche un download. Se stai comunque eseguendo lo scripting dell'FTP, probabilmente sarà più semplice creare script per il caricamento di un file HTTPS.

FTP automatizzato è un segno di un problema di progettazione. Ho notato questo quando ho a che fare con un totale di circa una dozzina di venditori che "richiedevano" un posto in cui lavoravo per fare FTP automatizzato (per cose MOLTO importanti), e quando facevo dozzine di clienti lo facevano con quello stesso negozio (un errore di progettazione per circa 20 usi distinti a cui ho assistito). È stato facile convincere la maggior parte dei ragazzi delle app a utilizzare HTTPS (di solito alla menzione, hanno detto "aspetta, non c'è motivo per cui non li stiamo solo ottenendo con HTTPS dal server web su cui stiamo già fornendo loro i dati?" ), tranne alcuni che hanno dato risposte come "beh, abbiamo già questi script che sembrano funzionare, e nessuno nel nostro team è davvero bravo con gli script, quindi non possiamo davvero apportare modifiche" (un team di 5-10 programmatori,


1

Il fornitore potrebbe essere in grado di configurare un intervallo di porte ristretto per le porte di connessione DATA, se non lo hanno già fatto. Quindi puoi aprire lo stesso intervallo dalla tua parte, per gli host che necessitano di tale accesso. È necessario utilizzare la modalità PASV.


-1

La porta 22 è standard poiché il demone SSH su UNIX ha un modulo SFTP che puoi abilitare sostanzialmente per creare un server SFTP esplicito. Se vuoi eseguire un server FTP implicito con Filezilla, puoi eseguirlo su qualsiasi porta desideri ma c'è un problema: se usi il client FileZilla devi specificare l'URL del sito ftp come ftps: //mysite.com: 8086 anziché inserire la porta nel campo porta separato fornito dal client FileZilla.

Per l'opzione esplicita hai solo bisogno di UNA porta: 22. Per l'opzione implicita devi solo aprire il firewall per la porta di controllo: 8086 (che inoltra internamente alla porta 21 sul tuo server filezilla).


6
La domanda posta su FTPS, non su SFTP.
Michael Lang,

-7

se ftps è uguale a sftp , allora devi solo essere in grado di accedere alla porta 22 sul sito del fornitore.

Da parte tua, dovresti configurare il tuo firewall per consentire la porta 22 in uscita e il relativo traffico in entrata . Ciò consentirà la comunicazione su qualsiasi porta in entrata correlata alla connessione in uscita iniziale sulla porta 22.


11
SFTP non è lo stesso di ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP è il protocollo di trasferimento file utilizzato con SSH. FTPS è FTP con SSL, FTPS avvia una nuova connessione DATA su una nuova porta casuale, il che rende difficile la distribuzione dietro i firewall, ma non riesco a rimuovere il firewall in questa situazione.

2
Scusa allora. Lascerò questo post, nel caso in cui altri abbiano la stessa confusione.
Brent,

È una confusione enormemente comune. Dal lato del firewall, sftp è molto più facile da consentire, tranne per il fatto che è basato su un protocollo destinato all'accesso. Negligente per i gruppi di sicurezza indipendenti da consentire senza significativa convalida indipendente. Difficile per gli amministratori di sistema trovare / configurare un server sftp ragionevole per client non attendibili. Qualsiasi discussione su sftp o ftps deve menzionare l'altro protocollo perché la confusione è COSÌ comune.
carlito,
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.