Назад | Перейти на главную страницу

Какие порты межсетевого экрана мне нужно открыть при использовании FTPS?

Мне нужно получить доступ к серверу FTPS (vsftpd) на сайте поставщика. Поставщик установил межсетевой экран перед ftps-сервером. Перед моим FTPS-клиентом установлен брандмауэр.

Я понимаю, что порты 990, 991 и, возможно, 989 необходимо открыть для управляющего трафика.

У меня есть несколько вопросов:

  1. Если смотреть на это с точки зрения брандмауэра поставщика, следует ли открывать эти порты как для входящего, так и для исходящего трафика?
  2. А как насчет портов для канала DATA?
  3. Должен ли я открывать все порты выше 1000?
  4. Стоит ли делать это как для входящего, так и для исходящего трафика?

Я считаю, что порты около 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.

Насколько я понимаю, FTP через SSL (ftps) не работает с межсетевыми экранами и NAT. В обычном сеансе FTP информация о подключениях к данным считывается и для NAT изменяется брандмауэром, чтобы брандмауэр динамически открывал необходимые порты. Если эта информация защищена SSL, брандмауэр не сможет ее прочитать или изменить.

Использование SFTP или scp значительно упрощает работу сетевого администратора - все происходит на 22-м порту сервера, а транзакция следует обычной модели клиент / сервер.

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

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

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

б) Используйте анализатор протокола, такой как tcpdump или wirehark, для просмотра трафика как из-за пределов вашего брандмауэра, так и внутри него.

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

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

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

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

FTPS работает 2 способами. Явное и неявное. Явный менее безопасен, потому что после первоначального рукопожатия пропускается шифрование во время передачи данных [если шифрование данных поддерживается, настраивается на стороне сервера с помощью PROT P], в то время как неявное сохраняет шифрование данных и после рукопожатия. Явный порт FTPS по умолчанию - 21. Неявный порт по умолчанию - 990 (после подтверждения он автоматически переключится на 989 ​​для передачи данных, если не настроен иначе). Хотя порт 21 обычно принимается как ЯВНЫЙ FTPS, а 990 - как ПОДРАЗУМЕВАЕМЫЙ FTPS, в действительности, какой бы порт вы ни настроили, кроме 990/989, он приведет к ЯВНОМУ FTPS, а ТОЛЬКО 990/989 будет принят как НЕЯВНЫЙ FTPS.

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

По сути, ftps почти бесполезен, потому что вы должны делать неудобные запросы администраторам брандмауэра. Совет ограничить количество портов 10 - это хорошо. Более того, это становится жалко.

sftp в теории намного лучше. Но вам нужен жизнеспособный сервер sftp, например тот, который ограничивает клиентов их собственным домашним каталогом.

В зависимости от приложения рассмотрите HTTPS. Загрузка файла действительно проста, и загрузка, очевидно, тоже. Если вы все равно пишете сценарий для FTP, вероятно, будет проще создать сценарий для загрузки файла HTTPS.

Автоматизированный FTP - признак проблемы проектирования. Я заметил это, когда имел дело примерно с дюжиной поставщиков, которым `` требовалось '' место, где я работал, чтобы делать автоматизированный FTP (для ОЧЕНЬ важных вещей), и когда заставлял десятки клиентов делать это с тем же самым магазином (неудачный дизайн для примерно 20 различных применений, свидетелем которых я стал). Было легко убедить большинство разработчиков приложений использовать HTTPS (обычно при упоминании они говорили: «Подождите, нет причин, по которым мы просто не заставляем их получать его по HTTPS с веб-сервера, на котором мы уже обслуживаем их данные?») ), за исключением нескольких, которые дали ответы типа «ну, у нас уже есть эти скрипты, которые, кажется, работают, и никто из нашей команды не умеет писать скрипты, поэтому мы не можем вносить никаких изменений» (команда из 5-10 программистов, делают вид, что не понимают, что могут написать это на любом языке по своему выбору, потому что не знают, как написать тривиальную программу с нуля.).

Поставщик может иметь возможность настроить узкий диапазон портов для портов подключения DATA, если они еще этого не сделали. Затем вы можете открыть тот же диапазон на своем конце для хостов, которым нужен такой доступ. Следует использовать режим PASV.

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

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

если ftps совпадает с sftp, то вам нужно только иметь доступ к порту 22 на сайте поставщика.

Со своей стороны вы должны настроить брандмауэр, чтобы разрешить исходящий порт 22, и связанный входящий трафик. Это позволит установить связь с любым входящим портом, который относится к начальное исходящее соединение через порт 22.