Розуміння SFTP проти FTPS проти FTP

FTP або протокол передачі файлів є одним із найпопулярніших методів передачі даних, доступних для різних випадків використання.

FTP має різні доступні безпечні варіації, відомі як FTPS і SFTP, які включають деякі тонкі та деякі не дуже відмінності в їх роботі. Ці відмінності стосуються способу обміну даними, рівня та типу безпеки зв’язку та міркувань брандмауера.

Знання принципів роботи цих протоколів і відмінностей між цими популярними механізмами передачі може допомогти вам вибрати той, який найкраще підходить для ваших потреб.

FTP

FTP — це протокол передачі файлів, який існує десятиліттями, спочатку запропонований у RFC 114. Пізніше він перетворився на RFC 959, який є стандартом, який використовується сьогодні.

FTP працює за двома каналами для обміну інформацією: один для команд, інший для даних. Для роботи FTP потрібні два порти – канал команд і канал даних.

Командний канал працює на порту 21, який приймає підключення від клієнтів і обробляє передачу команд. Командний канал залишається відкритим протягом усього сеансу FTP, доки клієнт не надішле команду QUIT або сервер примусово не від’єднається через бездіяльність або будь-яку іншу можливу причину.

Канал даних використовує тимчасовий порт на вимогу, який прослуховує сервер (пасивний режим) або клієнт (активний режим). Цей канал відповідає за обмін фактичними даними між сервером і клієнтом у формі списків каталогів і передачі файлів.

На відміну від командного каналу, канал даних залишається відкритим лише на час передачі файлу, а після його завершення канал даних закривається. Для одночасної передачі кількох файлів або списків каталогів потрібні кілька портів каналу даних.

FTP за своєю суттю є незахищеним протоколом, оскільки як канали команд, так і канали даних передають інформацію в незашифрованому вигляді, який легко перехопити будь-ким, хто використовує атаки типу “людина посередині”.

  Як перемістити нотатки з iPhone в iCloud

Як обговорювалося раніше, FTP вимагає вхідного з’єднання через порт 21/tcp на стороні сервера для командного каналу. Діапазон пасивних портів визначено для передачі файлів і списків каталогів і дозволяє вхідні з’єднання. Цей процес визначення може відрізнятися залежно від використовуваного сервера FTP. Щоб отримати додаткові відомості, зверніться до його документації. На стороні клієнта має бути дозволено вихідне з’єднання через порт 21/tcp разом із діапазоном пасивних портів, визначеним на сервері.

Аутентифікація в FTP

Інформація автентифікації FTP передається по командному каналу під час початкового встановлення з’єднання. FTP може використовувати ім’я користувача та пароль для автентифікації, або він може бути анонімним, щоб будь-хто міг увійти та отримати доступ до сервера.

Активний і пасивний режими FTP

FTP використовує активний або пасивний режим для встановлення з’єднань.

В активному режимі користувач підключається з довільного порту FTP-клієнта до FTP-порту 21/tcp на сервері та надсилає команду PORT, вказуючи порт клієнта, до якого сервер має підключитися. Цей порт буде використовуватися для каналу даних.

Потім сервер підключається з порту 20/tcp до порту клієнта, який раніше вказав клієнт за допомогою команди PORT. Потім цей канал даних використовується для передачі файлів між сервером і клієнтом.

У пасивному режимі клієнт підключається з довільного порту клієнта FTP до порту 21/tcp на сервері та надсилає команду PASV. Потім сервер відповідає випадковим портом, який слід використовувати для каналу даних. Потім клієнт використовує інший випадковий порт для підключення до порту, на який відповів сервер на попередньому кроці. Це підключення каналу даних потім використовується для передачі файлів між сервером і клієнтом.

Отже, в активному режимі початковий запит на підключення ініціюється клієнтом, а запит на підключення каналу даних ініціюється сервером.

З іншого боку, у пасивному режимі як початкові запити на підключення, так і наступні запити каналу даних ініціюються клієнтом до сервера. Ця тонка відмінність іноді впливає на те, як брандмауер дозволяє/блокує традиційні FTP-запити через напрямок типу вхідного/вихідного з’єднання.

  Як знайти пароль роутера [NetGear, Linksys, Uverse, Xfinity]

FTPS

Навіть якщо ви готові йти на ризик, пов’язаний із FTP із незашифрованою передачею даних і атаками main-in-the-middle, галузеві вимоги змушують вас використовувати більш захищену альтернативу, як-от FTPS і SFTP, які є порівняно набагато безпечнішими.

У 1990 році зі зміною ландшафту безпеки Netscape створив протокол SSL або Secure Sockets Layer (SSL, тепер відомий як TLS) для захисту зв’язку в мережі. SSL було застосовано до FTP, який став FTPS або безпечним протоколом передачі файлів. FTPS або FTP/S зазвичай працює на порту 990/tcp, але його також можна побачити на порту 21/tcp. Так само для каналу даних порт 989/tcp є загальним портом, який використовується для FTPS. Якщо командний порт 21/tcp, порт даних має бути 20/tcp.

Як і FTP, FTPS використовує два канали зв’язку: канал команд і канал даних. Або канал даних може бути зашифрований за допомогою FTPS, або канали команд і даних можуть бути зашифровані для більшої безпеки.

FTPS, як і FTP, також використовує кілька портів для каналів команд і даних. Таким чином, порт 21/tcp використовується для початкового підключення та передачі інформації аутентифікації. Пізніше будуть потрібні різні порти для налаштування каналів даних для кожного запиту клієнта на передачу файлів або списку каталогів. Таким чином, як і FTP, йому потрібен діапазон портів, дозволених у вашому брандмауері.

Аутентифікація в FTPS

Автентифікація для FTPS працює за допомогою імені користувача та пароля разом із сертифікатом сервера для шифрування. Коли клієнт FTPS підключається до сервера, він перевіряє, чи є сертифікат сервера надійним, щоб продовжити підключення. Цей сертифікат можна запитати у клієнта та сервера.

SFTP

На відміну від FTP і FTPS, SFTP (SSH File Transfer Protocol) — це зовсім інший протокол, побудований на SSH (або Secure Shell). SFTP за замовчуванням працює на порту 22/tcp, так само, як і SSH, хоча його можна налаштувати на використання спеціального вільного порту на сервері.

  Як змінити свій обліковий запис Xbox One з дитячого на батьківський

SFTP — це безпечний протокол FTP, який використовує SSH для надсилання й отримання файлів. Оскільки SSH повністю зашифрований, SFTP є надійним і безпечним методом передачі файлів через мережу.

SFTP, на відміну від FTP і FTPS, використовує єдиний канал зв’язку для передачі команд і трафіку даних, які передаються в зашифрованому вигляді разом із початковою автентифікацією.

Автентифікація в SFTP

Автентифікацію в SFTP можна здійснити за допомогою простого імені користувача та пароля, але на відміну від FTP, уся інформація, включно з деталями автентифікації, передається через мережу в зашифрованому вигляді.

SFTP також підтримує автентифікацію за допомогою пари ключів SSH, комбінації приватного та відкритого ключів, де клієнт надає приватний ключ для вказаного користувача, а сервер повинен мати відповідний відкритий ключ для успішної автентифікації. Це більш безпечно, ніж використання комбінації імені користувача та пароля. Можна автентифікувати того самого користувача за допомогою пароля та ключів SSH, якщо обидва методи налаштовані на сервері SFTP.

Резюме

У цій статті підсумовано основні функції різних популярних протоколів передачі файлів, а саме FTP, FTPS і SFTP, а також висвітлено тонкі й основні відмінності між цими протоколами. Він охоплює порти, які потрібно дозволити в брандмауері для налаштування робочого сервера FTP/FTPS/SFTP, а також підкреслює необхідність переходу на більш безпечні протоколи, такі як FTPS і SFTP.

Коли я кажу тут про FTP, я маю на увазі будь-які протоколи, які обговорюються в цій статті. Причина в тому, що FTP існує десятиліттями, і навіть нові захищені версії іноді називають FTP замість їхньої назви для повсякденного використання.

Вам також може бути цікаво дізнатися про найкраще програмне забезпечення FTP-сервера та FTP/SFTP-клієнти.