sviluppo-web-qa.it

Quali porte firewall devo aprire quando utilizzo FTPS?

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?
33
user3293

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 per NAT modificato, dal firewall per consentire al firewall di aprire dinamicamente le porte necessarie. Se tali informazioni sono protette da SSL , il firewall non può leggerlo o modificarlo.

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 tuo firewall sta eseguendo NAT e se è statico NAT o NAT dinamico. Se il tuo computer client ha un statico indirizzo 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.

19
pcapademic

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 ti connetti ancora sulla porta 21 e quindi negozia 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.

Credo che sia necessaria 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 one-to-one/static NAT all'IP interno e solo le porte tcp 21, 21000-21010 sono aperte.

29
David

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. Esplicito è 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'Implicito mantiene la crittografia dei dati anche 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.

11
Marin

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 es. uno che limita 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, fingendo di non capire che possono scriverlo in una lingua a loro scelta, perché non sanno come scrivere un programma banale da zero.).

2
carlito

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
Chris W. Rea

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).

0
djangofan