FTP
Руководство по FTP-порту: передача файлов через порты 20 и 21
Узнайте, как работают управление FTP и подключения к данным, почему важны диапазоны пассивных портов и почему SFTP или FTPS обычно безопаснее для новых рабочих процессов передачи файлов.
- Порт по умолчанию
- 20/21
- Протокол
- TCP
- Основное назначение
- Наследованный файловый обмен
Какой порт FTP?
FTP или протокол передачи файлов — это устаревший протокол для загрузки и скачивания файлов. FTP обычно использует TCP-порт 21 для управляющего соединения. При активном FTP TCP-порт 20 может использоваться для данных с сервера; при пассивном FTP сервер открывает настроенный диапазон портов пассивных данных.
Порт 21 — порт управления FTP.
Клиенты подключаются к TCP 21 для аутентификации, получения списка каталогов, запроса загрузки, запроса загрузки и согласования способа открытия соединения для передачи данных.
Порты данных зависят от активного или пассивного режима
FTP сложнее защитить от брандмауэра, чем современные протоколы, поскольку данные файлов часто передаются через соединение, отдельное от команд.
Как работает FTP
FTP отделяет команды от данных файла. Клиент подключается к серверу по TCP 21, входит в систему и отправляет такие команды, как список, получение, сохранение, переименование или удаление. При просмотре списков файлов и передаче данных используется отдельное соединение для передачи данных.
Такая конструкция имела смысл в старых сетях, но создает проблемы с NAT, межсетевыми экранами и облачными группами безопасности. Средство проверки порта может показать, доступен ли порт 21, но успешная передача файлов также зависит от разрешенного канала данных.
Активный FTP против пассивного FTP
При активном FTP клиент подключается к порту управления сервера, затем сервер открывает обратное соединение для передачи данных клиенту. Это обратное соединение часто не удается из-за NAT или строгих клиентских брандмауэров.
При пассивном FTP клиент открывает как управляющее соединение, так и соединение для передачи данных с сервером. Пассивный режим более распространен для FTP с выходом в Интернет, но сервер должен публиковать определенный диапазон пассивных портов, а брандмауэры должны разрешать этот диапазон.
FTP, FTPS и SFTP
Обычный FTP не шифрует имена пользователей, пароли, команды или содержимое файлов. FTPS добавляет TLS к FTP, но по-прежнему сохраняет управление FTP и модель канала данных. SFTP отличается: он работает через SSH, обычно TCP 22, и не использует порты FTP.
Для новых развертываний SFTP часто проще защитить и использовать с помощью брандмауэра. FTPS может потребоваться для совместимости с партнерами. Обычный FTP следует ограничивать изолированными устаревшими рабочими процессами или заменять, если это возможно.
Когда FTP должен быть открыт
Открывайте FTP только в том случае, если устаревший партнер, устройство, приложение или рабочий процесс не могут использовать SFTP, FTPS, загрузку HTTPS, хранилище объектов или управляемую службу передачи файлов. Типичные примеры включают старые каналы EDI, сканеры, встроенные устройства и интеграции поставщиков.
Избегайте публичного анонимного FTP, если он намеренно не обслуживает общедоступные файлы и не имеет жесткого контроля за загрузкой. Записываемый FTP, доступный в Интернет, часто используется для размещения вредоносных программ, кражи данных и ненадлежащего использования хранилища.
Перед открытием FTP
Прежде чем разрешить FTP, решите, будет ли сервер использовать активный режим, пассивный режим или оба. Определите диапазон пассивных портов, внешний IP-адрес, модель изоляции пользователя, поведение chroot или Jail, ведение журнала, квоты и необходимость TLS.
Проверка TCP порта 21 подтверждает только путь управления. Протестируйте реальную загрузку и выгрузку из-за пределов сети, поскольку пассивный диапазон, NAT, проверка TLS и разрешения файловой системы все равно могут нарушить передачу.
Как включить FTP на Windows, Linux и облачных серверах
В Windows Server IIS FTP может предоставлять FTP или FTPS. Настройте изоляцию пользователей, политику TLS, диапазон пассивных портов, правила брандмауэра и параметры внешнего IP-адреса, если сервер находится за NAT.
В Linux распространены такие серверы, как vsftpd, ProFTPD и Pure-FTPd. Настройте локальных или виртуальных пользователей, поведение chroot, диапазон пассивных портов, сертификаты TLS при использовании FTPS и правила брандмауэра хоста для TCP 21, а также порты данных.
На облачных серверах по возможности разрешайте только необходимые источники. Откройте TCP 21 и пассивный диапазон в группе безопасности облака и брандмауэре хоста. Если вы не можете определить узкий пассивный диапазон, FTP будет трудно обеспечить чистоту.
- Путь управления: клиенты должны достичь TCP 21.
- Путь к данным: для пассивного FTP требуется диапазон пассивных портов на стороне сервера; активный FTP может потребовать подключения между сервером и клиентом.
- Уровень идентификации: используйте именованные учетные записи, минимальные привилегии, изоляцию chroot или пользователя и надежные учетные данные.
- Уровень миграции: задокументируйте, почему FTP остается, и спланируйте переход на SFTP, FTPS, загрузку HTTPS или управляемую передачу.
Как проверить FTP-порты
Начните с проверки внешнего порта на наличие TCP 21. Если порт управления открыт, проверьте реальный FTP-клиент вне сети. Подтвердите вход в систему, листинг каталогов, загрузку, загрузку, переименование и удаление при необходимости.
Если вход в систему работает, но список каталогов или передача зависают, проверьте настройки пассивного режима, диапазон пассивных портов, внешнее объявление IP, NAT, группы безопасности облака и настройки TLS. Многие сбои FTP связаны с сбоями каналов данных, а не сбоями порта 21.
Распространенные случаи устранения неполадок FTP
Если порт 21 закрыт, служба FTP может быть остановлена, привязана к частному интерфейсу, заблокирована брандмауэром хоста или запрещена группой безопасности облака. Если порт 21 открыт, но передача не удалась, в первую очередь следует проверить пассивные порты или NAT.
Если аутентификация не удалась, проверьте формат имени пользователя, политику паролей, блокировку учетной записи, разрешения chroot, владение файловой системой, требования TLS и журналы сервера. Если происходит сбой только у некоторых клиентов, сравните активный и пассивный режимы и определите, находится ли клиент за ограничительным NAT.
Контрольный список безопасности для FTP
Избегайте использования простого FTP для учетных данных или личных файлов. По возможности используйте FTPS или SFTP, отключайте анонимную загрузку, ограничивайте исходные IP-адреса, изолируйте пользователей, устанавливайте квоты и ведите подробные журналы передачи.
Если FTP должен оставаться общедоступным, исправьте сервер, ограничьте пассивные порты, отслеживайте неудачные входы в систему и объем загрузки, сканируйте загруженные файлы и удаляйте устаревшие учетные записи. Считайте FTP устаревшим исключением с владельцем и планом миграции.
Частые вопросы
Какие порты использует FTP?
FTP использует TCP-порт 21 для управляющего соединения. Активный FTP может использовать TCP 20 для подключений к данным на стороне сервера, тогда как пассивный FTP использует настроенный диапазон пассивных портов на стороне сервера.
Безопасен ли FTP?
Обычный FTP небезопасен, поскольку он не шифрует учетные данные или содержимое файла. Используйте SFTP или FTPS для конфиденциальной передачи.
Почему FTP-порт 21 открыт, но передача данных невозможна?
Управляющее соединение может работать, пока соединение для передачи данных заблокировано. Проверьте пассивный режим, диапазон пассивных портов, NAT, настройки внешнего IP-адреса, брандмауэры и политику TLS.
Является ли SFTP тем же, что и FTP?
Нет. SFTP — это другой протокол, работающий через SSH, обычно TCP 22. FTP использует порт 21 и отдельные подключения для передачи данных.