Які порти брандмауера мені потрібно відкрити при використанні FTPS?


33

Мені потрібно зайти на сервер FTPS (vsftpd) на сайті постачальника. У постачальника є брандмауер перед ftps-сервером. У мене є брандмауер перед своїм клієнтом FTPS.

Я розумію, що для контролю трафіку потрібно відкрити порти 990, 991 і, можливо, 989.

У мене є кілька питань:

  1. Якщо дивитися на це з точки зору брандмауера постачальника, чи повинні ці порти відкриватися як для вхідного, так і для вихідного трафіку?
  2. Що з портами для каналу DATA?
  3. Чи потрібно відкривати всі порти вище 1000?
  4. Чи потрібно це робити як для вхідного, так і для виїзного трафіку?

Відповіді:


19

Моє розуміння FTP через SSL (ftps) полягає в тому, що він не працює добре з брандмауерами та NAT. У звичайному сеансі FTP брандмауер зчитує інформацію про з'єднання даних і для модифікованих NAT, щоб брандмауер динамічно відкривав необхідні порти. Якщо ця інформація захищена SSL, брандмауер не може її прочитати або змінити.

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

Одне, що не згадується - це чи ваш брандмауер виконує NAT і чи статичний NAT чи динамічний NAT. Якщо ваша клієнтська машина має статичну адресу або має статичну NAT, вам, можливо, не знадобиться вносити будь-які зміни брандмауера, якщо ви дозволите весь вихідний трафік і сервер працює лише в пасивному режимі (PASV).

Щоб точно знати, які порти вам потрібно буде відкрити, вам потрібно буде:

а) поговоріть з продавцем, щоб отримати детальну інформацію про налаштування їх системи.

b) Використовуйте аналізатор протоколів, наприклад, tcpdump або wireshark, щоб переглянути трафік як з боку брандмауера, так і всередині вашого брандмауера.

Вам потрібно з’ясувати, на якому порту знаходиться підключення управління. Ви перераховуєте 3, що мені здається дивним. Якщо припустити, що сервер працює лише в режимі PASV (пасивний), вам потрібно розібратися, як сервер налаштований на розподілені порти DATA. Вони заблокували канал DATA до одного вхідного порту? Чи заблокували канал DATA на невеликому діапазоні чи портах?

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


3
в пасивному режимі FTPS використовує порт управління над портом №1024, і тому він буде працювати краще з брандмауером, ніж не пасивний. клієнт повідомляє порту 21, який верхній зв'язаний порт відкрити, і таким чином ви можете налаштувати клієнта так, щоб він сказав "управління на порт 2000 або 2001", і тоді сервер відкриє вихідний порт 2000 або 2001 рік. Більшість клієнтів FTP підтримують визначення конкретного діапазону портів для "контролю", які слід ввімкнути, що полегшує визначення брандмауера.
djangofan

27

Я вважаю, що порти близько 990 року були для неявних SSL, що було старим нестандартним способом FTP / SSL. "Правильним" способом цього дня є явний SSL, що означає, що ви все-таки підключитесь до порту 21 і потім домовитесь про SSL перед тим, як надсилати свої смаколики. Для підтримки з'єднань через брандмауер потрібно використовувати режим PASV і жорстко встановити порти даних, які будуть використовуватися.

Я вважаю, що вам потрібно принаймні один порт на з'єднання даних, яке ви хочете підтримати. Якщо це тільки ви, вам, ймовірно, добре лише відкрити кілька додаткових портів. Спеціально для мене я використовую 21000-21010.

У vsftpd.conf у мене є ці два рядки (разом з усіма іншими речами для підтримки SSL):

pasv_min_port=21000

pasv_max_port=21010

У своєму брандмауері я маю відкритий статичний IP з внутрішньою IP-адресою один на один / статичний і лише відкриті порти 21 tcp 21, 21000-21010.


10

Я знаю, що це надзвичайно стара нитка ..

Зверніть увагу, що SFTP повністю відрізняється від FTPS. (SSH проти SSL)

FTPS, що працює в двох напрямках. Явне і неявне. Явне менш захищене, оскільки після початкового рукостискання пропускає шифрування під час передачі даних [якщо шифрування даних підтримується, можна налаштувати на стороні сервера з PROT P], тоді як Implicit зберігає шифрування даних і після рукостискання. Типовий явний порт FTPS за замовчуванням - 21. Нездійснений порт за замовчуванням - 990 (після рукостискання він автоматично перейде на 989 ​​для передачі даних, якщо не налаштовано інакше). Хоча порт 21 загальноприйнятий як EXPLICIT FTPS і 990 як IMPLICIT FTPS, насправді той порт, який ви налаштуєте, крім 990/989, призведе до EXPLICIT FTPS, тоді як ТОЛЬКО 990/989 буде прийнято як IMPLICIT FTPS.

Отже, щоб відповісти на ваше запитання: - залежно від конфігурації сервера FTPS, вам потрібно буде відкрити порт 21 або 990/989. Однак для впевненості слід звернутися до адміністратора сервера FTPS і попросити вказівки. Також майте на увазі, що для пасивного режиму, як і для будь-якого іншого програмного забезпечення FTP, вам доведеться відкривати додаткові порти (TCP / UDP), як правило, щось із діапазону 64000-65000.


2

Фактично ftps майже марний, тому що ви повинні робити незручні запити адміністраторів брандмауера. Порада обмежити порти до 10 - це добре. Набагато більше, це стає жалюгідним.

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

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

Автоматизований FTP - ознака проблеми дизайну. Я помітив це, коли маю справу з близько десятка постачальників, які «вимагали» місця, де я працював, щоб зробити автоматизований FTP (для ДУЖЕ важливих речей), і коли змушував десятки клієнтів робити це в тому самому магазині (провал дизайну приблизно 20 різних застосувань, якими я був свідком). Було легко переконати більшість хлопців із додатків використовувати HTTPS (зазвичай при згадці вони сказали: "зачекайте, немає причини, що ми не просто отримуємо їх з HTTPS з веб-сервера, на який ми вже подаємо їм дані?" ), за винятком кількох, хто дав відповіді на кшталт "добре, у нас вже є такі сценарії, які, здається, працюють, і ніхто з нашої команди не дуже хороший з написанням сценаріїв, тому ми не можемо реально змінити" (команда з 5-10 програмістів,


1

Постачальник, можливо, зможе налаштувати вузький діапазон портів для портів підключення DATA, якщо вони ще не були. Тоді ви можете відкрити той самий діапазон на своєму кінці для хостів, яким потрібен такий доступ. Слід використовувати режим PASV.


-1

Порт 22 є стандартним, оскільки у демон-SSH в UNIX є модуль SFTP, який можна в основному зробити явним SFTP-сервером. Якщо ви хочете запустити неявний FTP-сервер з Filezilla, тоді ви можете запустити його на будь-якому порту, який ви хочете, але є улов: якщо ви використовуєте клієнт FileZilla, вам потрібно вказати URL-адресу ftp-сайту як ftps: //mysite.com: 8086 а не розміщувати порт в окремому полі порту, який надає клієнт FileZilla.

Для явного варіанту вам потрібен лише ОДИН порт: 22. Для неявного варіанту потрібно лише відкрити брандмауер для порту управління: 8086 (який пересилає внутрішньо на порт 21 на вашому сервері filezilla).


6
Питання про FTPS, а не про SFTP.
Майкл Ланг

-7

якщо ftps - це те саме, що sftp , вам потрібно мати лише доступ до порту 22 на сайті постачальника.

На завершенні слід налаштувати брандмауер, щоб дозволити порту 22 вихідний та пов'язаний з цим вхідний трафік . Це дозволить зв’язуватися через будь-який вхідний порт, який пов'язаний з початковим вихідним з'єднанням через порт 22.


11
SFTP не є таким, як ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP - протокол передачі файлів, який використовується з SSH. FTPS є FTP із SSL, FTPS запускає нове з'єднання DATA на новому випадковому порту, що робить його важким для розгортання за брандмауерами, але я не можу видалити брандмауер у цій ситуації.

2
Вибачте тоді. Я покину цю посаду, якщо у інших буде така ж плутанина.
Brent

Це надзвичайно поширена плутанина. З боку брандмауера дозволити sftp набагато простіше, за винятком того, що він побудований на протоколі, призначеному для доступу до входу. Необережне для незалежних груп безпеки, що дозволяє без значної незалежної перевірки. Sysadmins важко знайти / налаштувати розумний sftp-сервер для недовірених клієнтів. Будь-яке обговорення sftp або ftps повинно згадувати інший протокол, оскільки плутанина протоколу настільки поширена.
carlito
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.