Почему активный FTP работает, когда я за брандмауэром?

373
user1034912

Я понимаю, что такое активный FTP, в основном моя машина подключается к FTP-серверу, а затем FTP-сервер подключается к моей машине.

Я нахожусь за брандмауэром, и у меня нет набора переадресации портов (хотя на моем компьютере открыты порты).

ОДНАКО, установка подключается нормально!

Есть что-то, чего я здесь не хватает? Как он может подключиться к моему компьютеру, когда я нахожусь за брандмауэром?

0
Это ПК с Windows и брандмауэр? Martin Prikryl 5 лет назад 0

1 ответ на вопрос

0
Eugen Rieck

Чтобы обеспечить именно такое поведение, в большинстве реализаций брандмауэра есть модули «отслеживания подключений», которые работают по принципу:

  • На исходящем участке брандмауэр читает то, что идет по проводам (и во многих случаях манипулирует им). Таким образом, брандмауэр знает, когда входящее соединение, «заказанное» исходящим, неизбежно.
  • Когда приходит это входящее соединение, брандмауэр пересылает его на инициирующую машину.

В вашем случае IP-адрес и порт в PORTсегменте командного канала FTP считываются, анализируются и обрабатываются брандмауэром: внутренний IP-адрес вашего компьютера (как отправлено вашим FTP-клиентом) и порт заменяются внешним IP-адресом брандмауэр и, скорее всего, другой порт. Эта пара кортежей хранится вместе со сроком действия.

Когда FTP-сервер подключается обратно к этому IP-адресу и порту, кортеж ищется и, если не истек срок действия, снова подключается к вашему ПК и, следовательно, к FTP-клиенту. Затем пара кортежей отбрасывается, так как она действительна только один раз.

Хотя такое поведение не является строго необходимым для FTP (просто используйте пассивный режим), оно очень полезно для других протоколов, которым требуется функция обратного соединения. Помните: NAT - это довольно новая концепция, которая не была ожидаема, когда был изобретен набор протоколов IP.

Похожие вопросы