Одним з основних недоліків протоколу FTP для передачі файлів - відсутність засобів захисту і шифрування переданих даних. Ім'я та пароль користувача при підключенні до FTP-сервера також передаються у відкритому вигляді. Для передачі даних (особливо з публічних каналах зв'язку) рекомендується використовувати більш безпечні протоколи, такі як FTPS або SFTP. Розглянемо, як налаштувати FTPS сервер на базі Windows Server 2012 R2.
протокол FTPS (FTP over SSL / TLS, FTP + SSL) - є розширенням стандартного протоколу FTP, але з'єднання між клієнтом і сервером захищається (шифрується) за допомогою протоколів SSL / TLS. Як правило, для підключення використовується той же самий порт 21.
Примітка. Не варто плутати FTPS з SFTP (Secure FTP або SSH FTP). Останній є розширенням протоколу SSH, що не має з FTP нічого спільного.зміст:
- Установка ролі FTP сервера
- Генерація і установка на IIS SSL сертифікату
- Створюємо FTP сайт з підтримкою SSL
- FTPS і міжмережеві екрани
- Тестування підключення FTP over SSL
Підтримка FTP over SSL з'явилася в IIS 7.0 (Windows Server 2008). Для роботи сервера FTPS, на веб сервері IIS знадобиться встановити SSL сертифікат.
Установка ролі FTP сервера
Установка ролі FTP сервера на Windows Server 2012 проблем не викликає і вже не раз описана.
Генерація і установка на IIS SSL сертифікату
Потім відкриваємо консоль IIS Manager, вибираємо сервер і переходимо в розділ Server Certificates.
Цей розділ дозволяє імпортувати сертифікат, створити запит на отримання сертифіката, оновити сертифікат або створити самоподпісанний сертифікат. З метою демонстрації ми зупинимося на самоподпісанного СЕРТФІКАТА (його також можна створити за допомогою командлета New-SelfSifgnedCertificate). При зверненні до сервісу буде з'являтися попередження про те, що сертифікат виданий недовірених CA, щоб відключити це попередження для даного сертифікату, його можна додати в довірені через GPO.
вибираємо Create Self-Signed Certificate.
У майстра створення сертифіката вказуємо його ім'я і вибираємо тип сертифіката Web Hosting.
Самоподпісанний сертифікат повинен з'явитися в списку доступних сертифікатів. Термін дії сертифіката - 1 рік.
Створюємо FTP сайт з підтримкою SSL
Далі потрібно створити FTP сайт. В консолі IIS клацаємо ПКМ по вузлу Sites і створюємо новий FTP сайт (Add FTP).
Вказуємо ім'я і шлях до кореневого каталогу FTP сайту (у нас каталог за замовчуванням C: \ inetpub \ ftproot).
На наступному кроці майстра в розділі SSL сертифікатів вибираємо створений нами сертифікат.
Залишилося вибрати тип аутентифікації і права доступу користувачів.
Порада. Якщо для кожен користувач повинен мати власний кореневий каталог FTP, можна скористатися інструкцією по створенню FTP-сервера з ізоляцією користувачів.На цьому завершуємо роботу майстра. За замовчуванням SSL захист є обов'язковою і використовується для шифрування як команд управління так і та переданих даних.
FTPS і міжмережеві екрани
При використанні протоколу FTP використовується 2 різних TCP з'єднання, по одному передаються команди, інакше дані. Для кожного каналу даних відкривається свій TCP порт, номер якого вибирається сервером або клієнтом. Більшість файерволов дозволяють інспектувати FTP трафік і, аналізуючи його, автоматично відкривати потрібні порти. При використанні захищеного FTPS передані дані закриті і не піддаються аналізу, в результаті міжмережевий екран не може визначити який порт потрібно відкрити для передачі даних.
Щоб не відкривати зовні до FTPS сервера весь діапазон TCP портів 1024-65535, можна примусово вказати FTP сервера діапазон використовуваних адрес. Діапазон вказується в налаштуваннях сайту IIS в розділі FTP Firewall Support.
Після зміни діапазону портів потрібно перезапустити сервіс (iisreset).
У вбудованому файервол Windows за вхідний трафік відповідатимуть правила:
- FTP Server (FTP Traffic-In)
- FTP Server Passive (FTP Passive Traffic-In)
- FTP Server Secure (FTP SSL Traffic-In)
Відповідно на зовнішньому межсетевом екрані доведеться відкрити порти 21, 990 і 50000-50100 (обраний нами діапазон портів).
Тестування підключення FTP over SSL
Для тестування підключення по FTPS скористаємося клієнтом Filezilla.
- запустіть FileZilla (Або будь-який інший клієнт з підтримкою FTPS).
- натисніть File > Site Manager, і створіть нове підключення (New Site).
- Вкажіть адресу FTPS сервера (Host), Тип протоколу (Require explicit FTP over TLS), Ім'я користувача (поле User) і вимога вимагати введення пароля для авторизації (Ask for password)
- натискаємо кнопку Connect і вводимо пароль користувача.
- Повинно з'явитися попередження про недовірених сертифікаті (при використанні самоподпісанного сертифіката). підтверджуємо з'єднання.
- З'єднання має встановитися, а в журналі повинні з'явитися рядки:
Status: Initializing TLS ...
Status: Verifying certificate ...
Status: TLS connection established. - Це означає, що безпечне з'єднання встановлено, і ви можете передавати файли по протоколу FTPS