Zalogowanie przez FTPS dowodzi, że połączenie sterujące działało. Lista katalogu wymaga innego połączenia, więc proxy może zezwolić na logowanie i zablokować następny krok.

Dla serwera z jawnym FTPS skonfiguruj trasę sterującą i tryb pasywny za pomocą 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");

Ustawienie ProxyMethod o wartości 3 wybiera HTTP CONNECT. Otwieraj te opcje przez zwykły cykl życia Session w aplikacji WinSCP i dodaj surowe ustawienia ProxyUsername oraz ProxyPassword, gdy pośrednik wymaga uwierzytelnienia.

Prześledź błąd listowania

Sprawdź w dzienniku sesji wynegocjowany pasywny punkt końcowy danych i jego błąd połączenia. Proxy musi zezwalać na ten cel i port oraz na punkt końcowy sterowania FTP. Dlatego reguła zezwalająca na CONNECT tylko do portu sterującego może przyjąć logowanie i odrzucić listę.

Zmiana samego portu sterującego nie naprawi zablokowanej ścieżki danych. Sprawdzając politykę sieci, użyj punktu końcowego danych zapisanego w dzienniku.

Ten przykład uruchamia jawny FTPS na porcie 21 i negocjuje TLS. Dla niejawnego punktu końcowego FTPS użyj odpowiedniego trybu FtpSecure i portu serwera. W obu przypadkach użyj rzeczywistej nazwy hosta TLS serwera i konfiguracji weryfikacji certyfikatów.

Powiązane artykuły