INTEGRITY Dokumentace

FTP

Povolení Spectrum pro FTP není jednoduché kvůli způsobu implementace tohoto protokolu. Tento návod popisuje úskalí protokolu FTP a podmínky, za kterých můžete Spectrum pro svou službu FTP povolit.

Jak funguje FTP

FTP využívá dva různé sockety: jeden pro odesílání příkazů a druhý pro samotný přenos dat. Řídicí socket se stará o přihlašování uživatelů a odesílání příkazů, zatímco datový socket slouží k přenosu výpisů adresářů a souborů.

Klient a server mohou navázat datový socket dvěma způsoby: aktivně a pasivně. V aktivním režimu se server připojuje Zpět klientovi na portu, který zadal, což může způsobovat problémy, pokud jsou klienti za NAT. Alternativou je pasivní režim, kdy server otevře další port, ke kterému se klient následně připojí. Přehled rozdílů mezi aktivním a pasivním FTP najdete v Aktivní FTP vs. pasivní FTP, definitivní vysvětlení ↗.

V pasivním režimu sděluje server FTP klientovi port, na který se má připojit, a to prostřednictvím řídicího socketu pomocí příkazu PASV. Server FTP standardně odpoví IP adresou, na které naslouchá. To funguje bez problémů u serverů běžících přímo na veřejně přístupné IP adrese, ale způsobuje potíže, pokud je server umístěn za NAT, firewallem nebo Cloudflare Spectrum.

Alternativně novější software FTP serverů podporuje Rozšíření FTP ↗, který zavádí příkaz EPSV, jenž vynechává IP adresu, na kterou se má klient připojit. Klient se místo toho připojí na stejnou IP adresu, na kterou se připojil pro řídicí kanál.

Co funguje a co nefunguje

Spectrum dokáže chránit servery obsluhující FTP provoz v pouze v pasivním režimu. Aktivní režim není podporován, protože origin server vidí jako klienta IP adresu Spectrum místo skutečné IP adresy klienta. Když klient vydá příkaz PORT se svou vlastní IP adresou, FTP server požadavek odmítne, protože se obě adresy neshodují.

Pasivní režim v kombinaci s EPSV funguje bez nutnosti jakékoli konfigurace na straně originu. Upozorňujeme, že aby to fungovalo, musí EPSV podporovat i klient. Tradiční pasivní režim s PASV je možný s minimální konfigurací na straně originu (viz níže, Ochrana FTP serveru pomocí Spectrum)

Ochrana FTP serveru pomocí Spectrum

Nakonfigurování Spectrum pro ochranu vašeho FTP serveru vyžaduje vytvoření sady aplikací Spectrum směřujících na váš origin server a určitou konfiguraci na FTP serveru.

Ochrana řídicího portu

Řídicí rovina standardně běží na portu 21 a k ochraně této části FTP serveru není potřeba nic zvláštního. V následujícím příkladu nahraďte 198.51.100.1 IP adresou origin serveru.

Dialogové okno pro přidání aplikace s IP adresou a portem nastaveným na 21

Tato konfigurace proxuje příchozí spojení na origin. Pokud ovšem klienti vydají příkaz PASV, pro datové spojení stále obdrží IP adresu skutečného originu. To není žádoucí, protože tím se IP adresa originu odhalí klientovi místo toho, aby zůstala skryta za Spectrum. Postup, jak tomu zabránit, je popsán v následujících částech.

Ochrana datových portů

Většina serverů FTP umožňuje nastavit rozsah portů, které server použije k otevírání datových spojení. Doporučujeme rozsah portů zadat, abyste na serveru nedopatřením nezpřístupnili jiné porty. Pro každý port v daném rozsahu vytvořte odpovídající aplikaci Spectrum namapovanou na tento port.

Server FTP je navíc třeba nakonfigurovat tak, aby při vydání příkazu PASV klientem zveřejnil správnou IP adresu. Tato IP adresa by měla odpovídat IP adrese aplikace Spectrum.

Některé FTP servery také umožňují dynamické překládání hostname. V takovém případě se doporučuje použít URL aplikace Spectrum místo IP adresy.

Ukázková konfigurace pro vsftpd ↗:

pasv_min_port=20000
pasv_max_port=20020

pasv_enable=YES
pasv_address=ftp.example.com
pasv_addr_resolve=YES
pasv_promiscuous=YES

Pokyny pro Spectrum FTPS (ProFTPD)

Chcete-li pomocí Spectrum TCP proxovat a chránit FTPS, konkrétně ProFTPD, doporučujeme následující ukázkovou konfiguraci:

Na straně serveru ProFTPD použijte následující ukázkovou konfiguraci:

Podrobnosti najdete v Dokumentace ProFTPD ↗.

SFTP

Na rozdíl od FTP nebo FTPS nevyžaduje povolení Spectrum pro SFTP žádnou další konfiguraci. Při nastavování aplikace Spectrum pro SSH zvolte port 22 a protokol TCP.

Microsoft Windows IIS FTP

Viz Dokumentace Microsoft Windows IIS ↗ pro nastavení statického rozsahu datových portů a externí IP adresy odpovídající vaší aplikaci Spectrum.

IIS navíc vyžaduje, aby zdrojová IP adresa byla stejná jak pro řídicí, tak pro datové FTP připojení. Při použití Spectrum však tento požadavek nemusí být splněn, protože obě připojení se často ukončují na různých serverech s vlastními jedinečnými odchozími IP adresami. Pro zajištění správné funkčnosti také nastavte dataChannelSecurity/matchClientAddressForPasv = false. Viz Microsoft Windows IIS FTP Official Guide ↗ pro další podrobnosti.