Tryby połączeń szyfrowanego FTP: FTPS, FTPES, SFTP

Chcąc przesyłać pliki przez FTP na serwer czasem użytkownik może mieć wątpliwości który protokół oraz port wybrać aby połączenia było bezpieczne.

W tym krótkim poradniku opiszemy różnice pomiędzy protokołami oraz w jaki sposób łączyć się z FTP na serwerach Smarthost popularnymi programami do obsługi FTP.

Oryginalny protokół FTP (File Transfer Protocol) został zaprojektowany tak, aby umożliwić użytkownikom przeglądanie katalogów i przesyłanie plików pomiędzy systemami komputerowymi. Protokół FTP nie posiada żadnych zabezpieczeń, a wszystkie informacje, w tym nazwy użytkowników, hasła i dane plików, są przesyłane w postaci niezaszyfrowanej. Każdy użytkownik w tej samej sieci może z łatwością sprawdzić dane przesyłane między komputerami.

Wspieraną na naszym hostingu metodą połączenia z szyfrowaniem SSL/TLS jest protokół FTPES oraz SFTP.

Szyfrowane połączenie FTPS – nieobsługiwane

Połączenie tzw. Implicit FTPS działa bardzo podobnie do HTTPS na stronach internetowych, ustanawiając bezpieczne połączenie za pomocą protokołu TLS/SSL przed rozpoczęciem sesji FTP. Protokół ten wykorzystuje port 990, który na większości hostingów (w tym w Smarthost) jest blokowany, a umożliwione są połączenia szyfrowane przez FTP przez port 21 z wykorzystaniem nowszego protokołu FTPES.

Szyfrowane połączenie FTPES – zalecane

Protokół tzw. explicit FTPES działa nieco inaczej. Używa nowszych poleceń FTP do uaktualnienia nieszyfrowanego połączenia FTP do bezpiecznego połączenia podczas początkowego etapu uwierzytelniania. Protokół FTPES jest nieco bardziej przyjazny m.in dla firewalli niż protokół FTPS i pozwala serwerowi i klientowi na negocjowanie różnych poziomów szyfrowania i ochrony integralności na kanałach kontroli i danych.

Ten protokół jest powszechnie używany na wielu hostingach i jest również obsługiwany również w Smarthost.

Protokół FTP z szyfrowaniem (TLS/SSL) jest oznaczany często jako:

  • FTPES
  • explicit FTPES
  • połączenie FTP z jawnym szyfrowaniem TLS/SSL

Szyfrowane połączenie SFTP

Inną metodą nawiązywania bezpiecznych połączeń i wymiany plików jest SSH File Transfer Protocol (SFTP), ale pomimo podobieństwa nazw, SFTP jest zupełnie innym protokołem od znanego FTP.

SFTP jest rozszerzeniem protokołu połączenia do terminala linux (SSH), zatem połączenie SFTP wymaga włączonego dostępu SSH na koncie hostingowym, co w Smarthost jest dostępne dla wszystkich rodzajów kont.

Ograniczeniem związanym z protokołem SFTP jest fakt, że wymaga on połączenia gdzie loginem jest fizyczne konto na serwerze, zatem w przypadku oprogramowania cPanel takie konto może być tylko jedno dla jednego konta hostingowego. W przypadku wcześniej opisanych protokołów jak FTP lub FTPES można tworzyć dowolnie wiele „wirtualnych” kont FTP, które będą wskazywały na dowolne foldery w obrębie konta hostingowego.

Przykłady konfiguracji szyfrowanego połączenia FTP

W naszym przypadku chcąc łączyć się przez FTP przez połączenie szyfrowane SSL/TLS użyjemy protokołu FTPES łącząc się poprzez standardowy port 21.

Należy utworzyć konto FTP przez cPanel lub użyć istniejącego konta podstawowego, następnie można już przejść do swojego programu do obsługi FTP w celu połączenia.

Mając konto FTP można sprawdzić dane do połączenia w cPanel klikając w „Skonfiguruj Klienta FTP”, rozwijają się wtedy wszystkie potrzebne do połączenia informacje które możemy łatwo skopiować i wkleić do programu.

Pokażemy łączenie na przykładzie dwóch bardzo popularnych programów – Filezilla oraz WinSCP.

Konfiguracja szyfrowanego połączenia FTP przy użyciu FileZilla.

Zacznijmy od programu Filezilla. Uzupełniamy pola tak jak na zrzucie poniżej używając wyświetlonych wcześniej danymi (port możemy zostawić pusty, domyślnie jest to port 21 który zostanie użyty).

Następnie możemy kliknąć „Szybkie łączenie” i program zaczyna łączyć się przez FTPES gdyż taki jest domyślny tryb połączenia.

Konieczne jest następnie zaakceptowanie okienka z informacją o nieznanym certyfikacie. Komunikat ten pojawia się z powodu łączenia przez nazwę domeny klienta zamiast przez nazwę serwera, po jego akceptacji połączenia będzie zabezpieczone tym certyfikatem.

Po akceptacji certyfikatu powinno nastąpić automatycznie, w okienku powinny pokazać się Statusy świadczące o połączeniu jak pokazane poniżej.

Od teraz możemy przesyłać pliki i foldery przez FTP używając bezpiecznego połączenia.

Konfiguracja szyfrowanego połączenia FTP przy użyciu WinSCP.

W tym przypadku należy utworzyć „Nową Sesję” oraz uzupełnić dane jak na zrzucie poniżej:

Po kliknięciu na „Logowanie” również pojawia się podobne okienko akceptacji certyfikatu podobnie jak przy łączeniu za pomocą Filezilli. Należy zaakceptować certyfikat.

Następnie połączenie zostanie nawiązane a w ekranie programu zostaną wyświetlone katalogi i pliki.

Podsumowując

Łącząc się przez Filezilla domyślne połączenie będzie nawiązywane już z wykorzystaniem szyfrowania SSL/TLS oraz portu 21, więc po wpisaniu danych i akceptacji certyfikatu połączenie będzie od razu bezpieczne.

W programie WinSCP natomiast konieczne jest wybranie odpowiedniej opcji z listy, gdyż możliwe jest wybranie zarówno połączenia nieszyfrowanego jak i szyfrowanego (obydwa działają na porcie 21). Należy więc wybrać odpowiednią opcję i dopiero nawiązywać połączenie.

Artur