Un accesso FTPS dimostra che la connessione di controllo ha funzionato. Un elenco di directory richiede un'altra connessione, quindi un proxy può consentire l'accesso e bloccare il passaggio successivo.

Per un server FTPS esplicito, configurate la rotta di controllo e la modalità passiva con WinSCP .NET:

var options = new WinSCP.SessionOptions
{
    Protocol = WinSCP.Protocol.Ftp,
    HostName = "ftp.example.net",
    PortNumber = 21,
    UserName = ftpUser,
    Password = ftpPassword,
    FtpSecure = WinSCP.FtpSecure.Explicit,
    FtpMode = WinSCP.FtpMode.Passive
};

options.AddRawSettings("ProxyMethod", "3");
options.AddRawSettings("ProxyHost", "proxy.example.net");
options.AddRawSettings("ProxyPort", "8080");

L'impostazione ProxyMethod con valore 3 seleziona HTTP CONNECT. Aprite queste opzioni tramite il normale ciclo di vita di WinSCP Session nell'applicazione e aggiungete le impostazioni non elaborate ProxyUsername e ProxyPassword quando l'intermediario richiede l'autenticazione.

Seguite l'errore dell'elenco

Esaminate il registro della sessione per individuare l'endpoint dati passivo negoziato e il relativo errore di connessione. Il proxy deve consentire quella destinazione e quella porta, oltre all'endpoint di controllo FTP. Perciò una regola che consente CONNECT solo verso la porta di controllo può accettare l'accesso e rifiutare l'elenco.

Cambiare solo la porta di controllo non risolve un percorso dati bloccato. Usate l'endpoint dati registrato quando verificate la policy di rete.

Questo esempio avvia FTPS esplicito sulla porta 21 e negozia TLS. Per un endpoint FTPS implicito, usate la modalità FtpSecure corrispondente e la porta del server. In entrambi i casi, usate il nome host TLS reale del server e la configurazione di convalida dei certificati.

Articoli correlati