Какие порты брандмауэра мне нужно открыть при использовании 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).

Чтобы точно знать, какие порты вам нужно открыть, вам необходимо:

а) поговорите с продавцом, чтобы получить подробные сведения о том, как была настроена его система.

б) Используйте анализатор протокола, такой как tcpdump или wireshark, чтобы посмотреть на трафик, как за пределами вашего брандмауэра, так и внутри вашего брандмауэра

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

С этими ответами вы можете начать настройку брандмауэра.


3
В пассивном режиме FTPS будет использовать контрольный порт через порт # 1024, и поэтому он будет работать лучше с брандмауэром, чем без пассивного. клиент сообщает порту 21, какой верхний порт открыть, и поэтому вы можете настроить клиент так, чтобы он говорил «управление на порте 2000 или 2001», а затем сервер откроет исходящий порт 2000 или 2001. Большинство клиентов FTP поддерживают определение определенного диапазона портов для «контроля», что облегчает определения брандмауэра.
Джангофан

27

Я полагаю, что порты вокруг 990 были для неявного SSL, который был старым нестандартным способом работы FTP / SSL. «Правильный» способ в наши дни - явный SSL, что означает, что вы все еще подключаетесь к порту 21 и затем договариваетесь о SSL перед отправкой своих вкусностей. Для поддержки соединений через брандмауэр вам необходимо использовать режим PASV и жестко настроить порты данных, которые будут использоваться.

Я считаю, что вам нужно по крайней мере один порт для каждого подключения к данным, которое вы хотите поддерживать. Если это только вы, вы, вероятно, в порядке, только открыв несколько дополнительных портов. Специально для меня я использую 21000-21010.

В vsftpd.conf у меня есть эти две строки (вместе со всеми другими вещами для поддержки SSL):

pasv_min_port=21000

pasv_max_port=21010

На моем брандмауэре у меня есть общедоступный статический IP-адрес с однозначным / статическим NAT для внутреннего IP-адреса и открыты только порты TCP 21, 21000-21010.


10

Я знаю, что это очень старая тема, однако ..

Обратите внимание, что SFTP полностью отличается от FTPS. (SSH против SSL)

FTPS работает в 2-х направлениях. Явное и неявное. Explicit менее безопасен, потому что после первоначального рукопожатия пропускается шифрование во время передачи данных [если поддерживается шифрование данных, можно настроить на стороне сервера с помощью PROT P], в то время как Implicit также поддерживает шифрование данных после рукопожатия. Порт Explicit FTPS по умолчанию - 21. Порт Implicit по умолчанию - 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
Тогда извини. Я оставлю этот пост, хотя, в случае, если у других такая же путаница.
Брент

Это очень распространенная путаница. Со стороны брандмауэра, sftp гораздо проще разрешить, за исключением того, что он построен на протоколе, предназначенном для доступа в систему. Халатность к независимым группам безопасности разрешена без значительной независимой проверки. Системным администраторам сложно найти / настроить подходящий сервер sftp для ненадежных клиентов. Любое обсуждение sftp или ftps должно упоминать другой протокол, потому что путаница настолько распространена.
Карлито
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.