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

Понять FTP; Активный / пассивный с межсетевыми экранами и NAT

У меня есть несколько основных вопросов о FTP с межсетевыми экранами и NAT, надеюсь, кто-нибудь мне поможет :)

Я разделил их по разным сценариям:

Активный FTP без NAT

Настроить:

Сервер 1.2.3.4, порты по умолчанию; Клиент 1.2.3.5, порты: 3141 (cmd), 3142 (данные)

Клиент: 3141 подключается к серверу: 20

Сервер: 20 ответов на Клиент: 3141

Сервер: 21 подключается к клиенту: 3142

Как это обычно решается на практике? Я могу думать о следующих возможностях:

Во всех этих решениях я предполагал, что клиент всегда будет использовать два последовательных порта - правда ли это?

Активный FTP с NAT

Настроить:

Сервер 1.2.3.4 порты по умолчанию; Клиент 192.168.0.2, порты 3141, 3142; Маршрутизатор, 1.2.3.5 и 192.168.0.1

Клиент: 3141 подключается к 1.2.3.4:20 через 192.168.0.1

Сервер: 20 ответов на 1.2.3.5:ARBITRARY - доставляется на 192.168.0.2:3141, так как есть SNAT

Сервер: 21 подключается к 1.2.3.5:(ARBITRARY+1) - откуда роутер знает, кому принадлежит этот пакет?

Пассивный FTP с NAT

Сервер находится за маршрутизатором - откуда маршрутизатор знает, что пакет, полученный на произвольный порт, предназначен для FTP-сервера? (и, следовательно, как маршрутизатор знает, что этот пакет не следует отбрасывать)

И почему пассивный FTP использует произвольный порт на сайте сервера для передачи данных? Почему не 21 порт?

Надеюсь, вы понимаете мои вопросы и мне кто-нибудь поможет :)

Спасибо

В абсолютно лучший совет, который я могу вам дать про FTP и NAT на практике есть Просто не сделай это.

Используйте современную альтернативу, например SFTP что повышает безопасность соединения (отправка вашего пароля в виде открытого текста в наши дни обычно считается плохой вещью), а также не вызывает беспорядочный танец портов, как это делает FTP. Таким образом, вам не придется беспокоиться о тайнах работы FTP.


Чтобы ответить на ваши конкретные вопросы, вам нужно будет прочитать FTP RFC.
Вы, вероятно, также захотите прочитать FTP с поддержкой межсетевого экрана, и Большой список соображений безопасности, если вы собираетесь использовать FTP.

Если вы спрашиваете из интеллектуального любопытства, этих ссылок должно хватить.
Если после прочтения RFC у вас все еще есть конкретные вопросы по реализации, связанные с решением актуальной практической проблемы, пожалуйста, задавайте новые вопросы с конкретными подробностями.