Как включить пассивный режим? Активный и пассивный режим работы FTP.

В этом разделе будет кратко рассмотрена история и технические сведения, касающиеся протокола FTP. Для получения подробной информации смотрите спецификации .

Исторические сведения

На фоне быстро развивающейся сети Интернет протокол FTP выглядит не просто старым, а действительно архаичным. Ранние черновые спецификации протокола датируются 1971-ым годом, составление текущей спецификации начато в 1985-ом. На протяжении последних двух десятилетий протокол не менялся в своей основе.

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

Те времена прошли и многое изменилось. Технологический прогресс шел быстрее, чем кто-либо мог себе представить, одновременно выросло новое поколение пользователей. Интернет теперь - повсеместное явление, благодаря которому миллионы людей общаются друг с другом множеством разных способов. Главное ощутимое изменение: Интернет стал враждебным. Доступность и открытость сети привлекла злонамеренных пользователей, активно эксплуатирующих ошибки и неопытность других.

Побочным эффектом такого развития событий стали, следующие явления:

  • NAT -роутеры. Большинство сети использует протокол IPv4 , имеющий ограниченное адресное пространство (IPv6 разработан решить эту проблему). Благодаря NAT-роутерам системы с большим количеством устройств могут пользоваться одним и тем же IP-адресом.
  • Персональные файрволы для защиты пользователей от недоработок операционных систем и приложений.

В большинстве случаев эти явления конфликтуют с работой протокола. Ситуацию ухудшают недоработки в самих роутерах и файрволах.

Тем не менее, при правильной настройке FTP предлагает надежный и опробованный способ передачи файлов.

Технические сведения

Основные отличие FTP от остальных протоколов - использование вторичных подключений для передачи файлов. При подключении к FTP-серверу создается т.н. контрольное подключение , через которое передаются команды протокола и ответы на эти команды. Для того, чтобы передать файл или листинг директории, клиент должен отослать команды через контрольное подключение, после чего будет создано подключение для передачи данных .

Существует два способа создания этого подключения: активный и пассивный режимы.

В пассивном режиме, который является рекомендуемым, клиент отсылает серверу команду PASV, на которую сервер отвечает адресом. После этого клиент отсылает команду для передачи файла или листинга директории и создает вторичное подключение по адресу, который был получен от сервера.

В активном режиме клиент открывает сокет на локальном устройстве и отсылает серверу адрес сокета с помощью команды PORT. После отсылки команды передачи файла или листинга сервер создает подключение по заданному адресу, который был указан клиентом.

В обоих случаях файл/листинг будут переданы через подключение для передачи данных.

Создание исходящих подключений требует задания меньшего количества параметров для роутеров/файрволов, чем создание входящих подключений. В пассивном режиме, подключение является исходящим от клиента и входящим для сервера. В активном режиме клиент и сервер меняются ролями - входящее подключение для клиента и исходящее для сервера.

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

Типичная сетевая конфигурация может выглядеть так:

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

Аналогично в активном режиме роутер и файрвол на клиентской стороне должны быть настроены для приёма и перебрасывания входящих подключений. Очевидно, на стороне сервера должны быть разрешены только исходящие подключения.

Т.к. сервер обычно обслуживает много клиентов, намного легче настроить роутер и файрвол на стороне сервера один раз для пассивного режима, чем настраивать клиентский роутер/файрвол для каждого клиента в активном режиме. Именно поэтому пассивный режим является рекомендуемым.

NAT-роутеры

У большинства пользователей широкополосного подключения NAT-роутер расположен между их компьютером и сетью. Это может быть самостоятельное устройство (возможно беспроводной роутер), или же встроенный роутер в DSL- или кабельном модеме. В среде NAT все устройства за роутером составляют локальную сеть (LAN), каждое из устройств в сети имеют локальный IP-адрес (четыре небольших числа разделённых точками). NAT-роутер в свою очередь имеет свой локальный IP-адрес, а также внешний IP-адрес для идентификации в глобальной сети. Локальные адреса действительны только внутри LAN, для удаленного устройства они не имеют смысла. Пример:

Предположим, что сервер находится за NAT-роутером. Смоделируем ситуацию, в которой клиент подключается в пассивном режиме, но серверу не предоставлен внешний IP-адрес роутера. В этом случае сервер отсылает свой локальный адрес клиенту, после чего могут произойти две вещи:

  • Если клиент не расположен внутри NAT, подключение будет разорвано, т.к. адрес сервера не является действительным.
  • Если клиент расположен внутри NAT, адрес сервера может совпадать с адресом устройства в сети самого клиента.

Очевидно, в обоих случаях пассивный режим не сработает.

Таким образом, если сервер находится за NAT-роутером, ему должен быть предоставлен IP-адрес роутера для работы пассивного режима. В обоих случаях сервер отсылает внешний адрес роутера клиенту. Клиент создает подключение с роутером, который в свою очередь передает подключение на сервер.

Файрволы

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

В особенности при использовании FTP пользователи файрвола могут получать такие сообщения:

Trojan Netbus заблокирован на порту 12345, который используется процессом FileZilla.exe

Почти во всех случаев такое сообщение - ложная тревога . Любое приложение может выбрать любой порт для сообщения через интернет. Может случиться так, что FileZilla выберет порт, случайно являющийся портом по умолчанию для трояна или другой зловредной программы. Дистрибутив FileZilla скачанный с официального сайта не содержит вирусов.

Умные роутеры, файрволы, и саботаж данных

Некоторые роутеры или файрволы достаточно умны. Они анализируют подключения и при обнаружении FTP-подключения бесшумно подменяют данные передающиеся между клиентом и сервером. Такое поведение является саботажем данных и может доставить неприятности, если пользователь не разрешил такое поведение явным образом.

Приведем пример. Предположим, что клиент находится за NAT-роутером и пытается подключиться к серверу. Предположим также, что клиент не осведомлен в том, что он находится за NAT и использует активный режим. Клиент отсылает команду PORT со своим локальным, немаршрутизируемым IP-адресом, серверу:

PORT 10,0,0,1,12,34

Эта команда указывает серверу на подключение по адресу 10.0.0.1 на порту 12*256+34 = 3106

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

PORT 123,123,123,123,24,55

Эта команда указывает серверу на подключение по адресу 123.123.123.123 на порту 24*256+55 = 6199

Благодаря такому поведению NAT-роутер позволяет неправильно настроенному клиенту использовать активный режим.

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

  • NAT-роутер слепо предполагает, что некоторые подключения принадлежат FTP основываясь на таких данных, как целевые порты или ответы сервера:
    • Нет никакой гарантии относительно используемого протокола, несмотря на автоматическое определение (такие случаи называют ложной тревогой ). Хоть это и маловероятно, вполне допустимо, что в будущих версиях протокола FTP синтаксис команды PORT может измениться. NAT-роутер, модифицируя команду PORT, изменяет без ведома пользователя параметры, которые он не поддерживает, из-за чего соединение будет разорвано.
    • Определение протокола роутером может не распознать FTP. Предположим, что роутер следит только за целевым портом, а если этот порт 21-ый, он будет распознан как FTP. Подключения в активном режиме от неправильно настроенного клиента к серверу на 21-ом порту будут работать, но подключения к другим серверам на нестандартных портах - нет.
  • Очевидно, что NAT-роутер не сможет модифицировать подключение, если FTP-сессия зашифрована, оставляя пользователя в недоумении, т.к. работать будут только незашифрованные подключения.
  • Предположим, что клиент за NAT-роутером отсылает "PORT 10,0,0,1,12,34". Каким образом NAT-роутер осведомлен в том, что клиент настроен неправильно? Также возможен случай с правильно настроенным клиентом, который инициирует FXP (сервер-сервер) передачу между сервером, к которому он подключен и устройством, которое находится в локальной сети сервера.

Как мы видим, возможности специфические для протоколов, включенные на NAT-роутере по умолчанию могут вызвать множество проблем. Хороший NAT-роутер всегда и полностью работает с протоколом без информации о самом протоколе. Исключением может быть случай, когда пользователь явно применил эту возможность и осознает все возможные последствия.

В этом подразделе мы рассматривали сочетание NAT-роутера на стороне клиента в активном режиме, те же рассуждения применяются и в случае сервера за NAT и ответами на команду PASV.

Настройка клиента FileZilla

Очевидно, что для подключения к любому серверу ваш файрвол должен разрешить такие действия для FileZilla. Большинство обычных FTP-серверов используют 21-ый порт, SFTP-серверы - 22-ой, а FTP через SSL/TLS (неявный режим) по умолчанию - 990-ый. Номера портов не являются жестко заданными, поэтому лучше всего разрешить исходящие подключения на любой порт.

Т.к. в интернете достаточно неправильно настроенных серверов, или серверов, которые не поддерживают оба режима передачи, вам рекомендуются оба режима передачи на своей стороне.

Пассивный режим

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

Активный режим

В активном режиме клиент открывает сокет и ожидает от сервера подключения для передачи.

По умолчанию клиент FileZilla запрашивает у операционной системы IP-адрес и свободный номер порта. Такая конфигурация сработает только в случае прямого соединения с интернетом без NAT-роутеров, также ваш файрвол должен разрешать создание подключений на всех портах выше 1024-го.

Если у вас присутствует NAT-роутер, вам нужно указать FileZilla внешний IP-адрес, в противном случае соединения в активном режиме не сработают для серверов вне вашей локальной сети:

  • Статический IP-адрес можно указать в диалоге настройки FileZilla.
  • Если ваш IP-адрес динамический, у вас есть возможность разрешить FileZilla получать внешний IP-адрес на специальном сайте автоматически каждый раз при запуске. Никакая информация не будет передана от вас на этот сайт, кроме версии используемого клиента FileZilla.

Если вы не хотите разрешать входящие соединения на всех портах, или ваш компьютер расположен за NAT-роутером, укажите FileZilla использовать определенный диапазон портов для соединений в активном режиме. Этот диапазон также нужно будет открыть для вашего файрвола. При наличии NAT-роутера вам нужно перебросить эти порты на локальный компьютер, на котором установлен FileZilla. Вы можете перебросить диапазон портов, или же каждый порт по отдельности, это зависит от модели вашего роутера.

TCP

Настройка и тестирование сервера FileZilla

Настройка сервера по большей части повторяет настройку клиента, главным отличием является то, что в случае сервера активный и пассивный режимы меняются ролями.

Важно отметить, что проверка работы сервера в большинстве случаев происходит ошибочным образом, особенно часто эту ошибку допускают владельцы NAT-роутеров. Находясь внутри локальной сети, вы сможете протестировать сервер, только используя локальный IP-адрес. Использование внешнего адреса внутри локальной сети в большинстве случаев не сработает по одной из приведенных причин:

  • Роутер заблокирует доступ к своему внешнему адресу изнутри локальной сети как возможную атаку
  • Роутер перебросит соединение вашему провайдеру, который заблокирует его как возможную атаку.

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

Активный режим

Убедитесь, что серверу FileZilla разрешено создавать исходящие подключения по любому порту, т.к. в этом режиме клиент определяет порт для соединения.

На локальной стороне подключения сервер FileZilla пытается использовать порт со значением на единицу ниже, чем у порта для контрольного соединения (к примеру, порт 20, если сервер принимает соединения на порту 21). Тем не менее, это не всегда возможно, поэтому не следует всегда полагаться на эту особенность.

Пассивный режим

Настройка сервера в этом случае практически повторяет настройку клиента в активном режиме.

В пассивном режиме сервер открывает сокет и ожидает соединения от клиента.

По умолчанию сервер FileZilla запрашивает у операционной системы IP-адрес компьютера и свободный порт. Эта конфигурация является рабочей только, если компьютер напрямую подключен к интернету без NAT-роутеров и установленным для файрвола разрешением на входящие подключения по всем портам выше 1024-го.

При наличии NAT-роутера вам нужно сообщить серверу FileZilla ваш внешний IP-адрес, в противном случае соединения в пассивном режиме будут работать только внутри локальной сети:

  • Статический IP-адрес можно указать в диалоге настройки сервера FileZilla.
  • Если ваш IP-адрес динамический, у вас есть возможность разрешить серверу FileZilla получать внешний IP-адрес на специальном сайте автоматически при каждом запуске. Никакая информация не будет передана от вас на этот сайт, кроме версии используемого сервера FileZilla.

Если вы не уверены в своем выборе, используйте второй вариант.

Если вы не хотите разрешать входящие соединения на всех портах, или ваш компьютер расположен за NAT-роутером, укажите серверу FileZilla использовать определенный диапазон портов для соединений в активном режиме. Этот диапазон также нужно будет открыть для вашего файрвола. При наличии NAT-роутера вам нужно перебросить эти порты на локальный компьютер, на котором установлен сервер FileZilla. Вы можете перебросить диапазон портов, или же каждый порт по отдельности, это зависит от модели вашего роутера.

Доступные порты находятся в диапазоне от 1 до 65535, порты ниже 1024-го зарезервированы для остальных протоколов. Для активного режима FTP лучшим выбором является номер порта равный или выше 50000. В связи с устройством протокола TCP (протокол, который находится ниже уровня FTP и используется для передачи данных), порт не может быть использован повторно сразу после каждого подключения. Таким образом, диапазон портов не должен быть слишком узким, в противном случае вы не сможете передать много файлов малого размера. В большинстве случаев достаточно диапазона в 50 портов.

Решение проблем

К сожалению, множество персональных файрволов и пользовательских роутеров имеют свои недоработки или, в некоторых случаях, даже способны саботировать работу FTP (например SMC Barricade v1.2).

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

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

Если это возможно, попробуйте подключиться к интернету напрямую без роутера.

Если вы пытаетесь настроить сервер и он работает нормально внутри вашей локальной сети, но не доступен вне её, попробуйте сменить порт для подключения. Некоторые провайдеры не разрешают своим клиентам размещать сервера и блокируют порты ниже 1024-го.

Причиной другой возможной проблемы может быть использование 21-го порта по умолчанию для вашего FTP-сервера. На стороне вашего провайдера может присутствовать файрвол, который может неожиданно изменять порт для команды PASV. Попробуйте использовать порт отличный от порта по умолчанию для вашего FTP-сервера.

Если время от времени вы наблюдаете сообщение "невозможно открыть подключение для передачи данных", т.е. FTP-клиент способен без проблем подключиться к FTP-серверу достаточное число раз, пока вы не получите данное сообщение, возможным препятствием может быть антивирус на клиентском ПК, настроенный на блокировку исходящих подключений по определенному диапазону портов. При работе сервера в пассивном режиме исходящие порты клиента определяются случайным образом, а при выборе портов попадающих в заблокированный диапазон, вы будете получать сообщение об ошибке. Для того, точной диагностики, вам следует просмотреть логи антивируса на машине клиента, который получает данную ошибку. В общем, любое ПО, способное блокировать диапазон исходящих портов, может быть причиной проблем подобного рода.

Таймауты при передаче больших файлов

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

Как было сказано выше, в FTP используются два TCP-подключения: контрольное подключение для отсылки команд и получения ответов на команды, и также подключение для передачи данных. По принципу работы FTP контрольное соединение не используется во время передачи файлов.

В спецификации TCP не указывается лимит времени для сохранения неиспользуемого подключения. Предполагается, что подключение сохраняется на неопределенное время пока не будет закрыто явным образом. Тем не менее, большинство роутеров и файрволов автоматически закрывают свободные подключения по истечению некоторого времени. Более того, в большинстве случаев разрыв соединения происходит без уведомления об этом его участников. В случае продолжительной передачи данных через FTP это значит, что контрольное соединение может быть разорвано, но, ни клиент, ни сервер не будут об этом уведомлены. Таким образом, после того, как все данные были переданы, сервер все еще ожидает, что контрольное подключение можно использовать и отсылает через него подтверждение передачи клиенту. Аналогично, клиент готов использовать контрольное соединение и ожидает ответа от сервера. Но, т.к. контрольное соединение было разорвано, это ответ никогда не будет доставлен, что приводит к таймауту.

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

Препятствием этому служит то, что многие роутеры и файрволы разрывают соединения, которые не использовались меньше чем 2 и 4 минуты. Такое поведение нарушает спецификацию протокола TCP, в RFC 5382 это указано достаточно ясно. Другими словами, роутеры и файрволы, разрывающие соединение раньше нужного момента, нельзя признать рабочими, т.к. они не могут использоваться при длительной передаче данных через FTP. К сожалению, производители роутеров потребительского класса и поставщики файрволов не заботятся о соблюдении спецификаций.

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

Настройка сервера FileZilla под Windows Firewall

Если вы испытываете проблемы при настройке сервера FileZilla при работающем Windows Firewall (в особенности, если клиент, подключающийся к такому серверу получает сообщение об ошибке "Невозможно получить листинг директории"), вам нужно добавить сервер FileZilla в список исключений Windows Firewall. Для этого вам нужно сделать следующие шаги:

  • Откройте Windows Firewall из Панели Управления
  • Если вы пользуетесь Vista, нажмите "Изменить настройки"
  • Выберите вкладку "Исключения"
  • Нажмите "Добавить программу.."
  • НЕ выбирайте "интерфейс сервера FileZilla" из списка, вам нужно нажать на "Просмотр..."
  • Найдите установочную директорию сервера FileZilla (обычно это "C:\Program Files\FileZilla Server\")
  • Выберите "FileZilla server.exe" и нажмите открыть (повторим еще раз, НЕ ВЫБИРАЙТЕ "FileZilla Server Interface.exe")
  • Выберите "FileZilla server.exe" из списка и нажмите "Ok"
  • Удостоверьтесь в том, что "FileZilla server.exe" находится в списке исключений и отметьте соответствующий пункт
  • Нажмите "Ok" для закрытия окна

Это обеспечивает работу пассивного режима. Если после этого вы все равно испытываете проблемы при подключении (внутри или извне сети), проверьте настройки вашего роутера или попробуйте добавить номер порта в настройках Windows Firewall во вкладке "Исключения".

Обратитесь к 931130 KB-статье от Microsoft, описывающей работу FileZilla со включенными сервисами "Маршрутизация и удаленный доступ" или "Шлюз уровня приложения".

Режимы FTP

При работе по протоколу FTP между клиентом и сервером устанавливается два соединения - управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы). Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит "Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль". Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

В Активном режиме, когда клиент говорит "Привет!" он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных. Для клиента такое соединение является входящим, так что зачастую работа в активном режиме клиентов, находящихся за файрволлом или NAT затруднена или требует дополнительных настроек.

В Пассивном режиме, после того как клиент сказал "Привет!", сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных. При этом, как легко заметить, порты в таком соединении как со стороны клиента, так и со стороны сервера оказываются произвольными. В пассивном режиме клиент легко может работать с сервером сквозь свой файрволл, но зачастую для поддержки пассивного режима сервером требуется соответствующая настройка файрволла уже на стороне сервера.

Главное отличие между Активным режимом FTP и Пассивным режимом FTP - это сторона, которая открывает соединение для передачи данных. В Активном режиме клиент должен суметь принять это соединение от FTP-сервера. В Пассивном режиме клиент всегда инициирует это соединение сам, и принять его должен уже сервер.

FTP это служба, основанная исключительно на TCP (Протокол управления передачей). FTP необычна в том, что она использует два порта, порт «данных» и порт «команд» (также известный как порт управления). Традиционно это порт 21 для команд и порт 20 для данных. Однако зависимо от режима, порт данных не всегда будет 20.

В активном режиме FTP клиент соединяется с произвольного непривилегированного порта (N > 1024) к FTP серверному командному порту 21. Затем, клиент начинает слушать порт N+1 и посылать FTP команду PORT N+1 на FTP сервер. В ответ, сервер соединяется с указанным портом данных клиента из своего локального порта данных 20.

В пассивном режиме FTP клиент инициирует оба соединения с сервером, решая проблему с файрволами, которые фильтруют входящий порт данных клиента. При открытии FTP соединения, клиент локально открывает два непривилегированных порта (N > 1024 и N+1). Первый порт контактирует с сервером на порт 21, но вместо того, чтобы затем выдать команду PORT и позволить серверу в ответ соединиться с его портом данных, клиент выдает команду PASV. В результате сервер открывает произвольный непривилегированный порт (P > 1024) и посылает клиенту команду PORT P. Затем, для передачи данных, клиент инициирует соединение от порта N+1 к порту P на сервере.

FTP is a TCP based service exclusively. There is no UDP component to FTP. FTP is an unusual service in that it utilizes two ports, a "data" port and a "command" port (also known as the control port). Traditionally these are port 21 for the command port and port 20 for the data port. The confusion begins however, when we find that depending on the mode, the data port is not always on port 20.

Active FTP

In active mode FTP the client connects from a random unprivileged port (N > 1023) to the FTP server"s command port, port 21. Then, the client starts listening to port N+1 and sends the FTP command PORT N+1 to the FTP server. The server will then connect back to the client"s specified data port from its local data port, which is port 20.

From the server-side firewall"s standpoint, to support active mode FTP the following communication channels need to be opened:

FTP server"s port 21 to ports >
FTP server"s port 20 to ports > 1023 (Server initiates data connection to client"s data port)
FTP server"s port 20 from ports > 1023 (Client sends ACKs to server"s data port)

In step 1, the client"s command port contacts the server"s command port and sends the command PORT 1027. The server then sends an ACK back to the client"s command port in step 2. In step 3 the server initiates a connection on its local data port to the data port the client specified earlier. Finally, the client sends an ACK back as shown in step 4.

The main problem with active mode FTP actually falls on the client side. The FTP client doesn"t make the actual connection to the data port of the server--it simply tells the server what port it is listening on and the server connects back to the specified port on the client. From the client side firewall this appears to be an outside system initiating a connection to an internal client--something that is usually blocked.

Passive FTP

In order to resolve the issue of the server initiating the connection to the client a different method for FTP connections was developed. This was known as passive mode, or PASV, after the command used by the client to tell the server it is in passive mode.

In passive mode FTP the client initiates both connections to the server, solving the problem of firewalls filtering the incoming data port connection to the client from the server. When opening an FTP connection, the client opens two random unprivileged ports locally (N > 1023 and N+1). The first port contacts the server on port 21, but instead of then issuing a PORT command and allowing the server to connect back to its data port, the client will issue the PASV command. The result of this is that the server then opens a random unprivileged port (P > 1023) and sends the PORT P command back to the client. The client then initiates the connection from port N+1 to port P on the server to transfer data.

From the server-side firewall"s standpoint, to support passive mode FTP the following communication channels need to be opened:
FTP server"s port 21 from anywhere (Client initiates connection)
FTP server"s port 21 to ports > 1023 (Server responds to client"s control port)
FTP server"s ports > 1023 from anywhere (Client initiates data connection to random port specified by server)
FTP server"s ports > 1023 to remote ports > 1023 (Server sends ACKs (and data) to client"s data port)

The following chart should help admins remember how each FTP mode works:
Active FTP:
command: client >1023 -> server 21
data: client >1023 <- server 20

Passive FTP:
command: client >1023 -> server 21
data: client >1023 -> server >1023

A quick summary of the pros and cons of active vs. passive FTP is also in order:

Active FTP is beneficial to the FTP server admin, but detrimental to the client side admin. The FTP server attempts to make connections to random high ports on the client, which would almost certainly be blocked by a firewall on the client side. Passive FTP is beneficial to the client, but detrimental to the FTP server admin. The client will make both connections to the server, but one of them will be to a random high port, which would almost certainly be blocked by a firewall on the server side.

Luckily, there is somewhat of a compromise. Since admins running FTP servers will need to make their servers accessible to the greatest number of clients, they will almost certainly need to support passive FTP. The exposure of high level ports on the server can be minimized by specifying a limited port range for the FTP server to use. Thus, everything except for this range of ports can be firewalled on the server side. While this doesn"t eliminate all risk to the server, it decreases it tremendously.

» Режимы работы ftp серверов

Для FTP необходимо 2 соединения - первое для команд и второе для данных.Первое соединение (с данными) всегда идет от клиента на сервер, а вот направление второго различается для активного и пассивного режимов.

В случае активного FTP второе соединение идет от сервера на клиентский компьютер, но так как такое соединение стало невозможно из-за NAT-ов и Firewall-ов, то изобрели пассивный режим, в котором сервер говорит клиенту (через первое соединение) на какой порт открывать второе соединение (обычно порт выбирается сервером случайно в каком-то диапазоне) и второе соединение тоже открывается с клиентского компьютера на сервер.

Одним важным моментом является то, что большинство FTP серверов (по крайней мере, под Windows) не позволяют ограничивать диапазон портов для второго соединения, что усложняет конфигурацию Firewall-ов и делает невозможной нормальную защиту для многих из них. Например, Serv-U - один из немногих позволяет ограничивать этот диапазон.

Из «ЧАВО» TMeter

FTP-протокол подразумевает два различных соединения между клиентом и FTP-сервером. Первое соединение называется «управляющим» (control connection). Оно предназначено для «входа» клиента в FTP-сервера, перехода между каталогами в FTP-сервере и т.п. Для того, чтобы получить список файлов с сервера, скачать файл с сервера или закачать файл на сервер, используется второе соединение, называемое «соединение для передачи данных» (data connection).

Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключиться к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

В активном режиме , когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.

В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.

Главное отличие между активным режимом FTP и пассивным режимом FTP - это сторона, которая открывает соединение для передачи данных . В Активном режиме, клиент должен принять соединение от FTP-сервера. В Пассивном режиме, клиент всегда инициирует соединение.

Пример активного соединения:

Control Connection: Client port 1026 > < Server port 20

Пример пассивного соединения:

Control Connection: Client port 1026 > Server port 21 Data Connection: Client port 1027 < Server port 2065

27.05.2018

Как известно протокол FTP отличается от других протоколов тем что требует два сокета - один командный (для общения с сервером), а другой - для передачи данных. С этим более менее все понятно. Непонятным, на первый взгляд, представляются такие понятия, как пассивный и активный режимы FTP соединения. Но это только на первый взгляд.

А теперь более подробно. В отличие от HTTP и большинства других протоколов, используемых в Интернете, протокол FTP использует во время сеанса как минимум два подключения: полудуплексное подключение для управления и полное дуплексное подключение для передачи данных. По умолчанию для управления подключениями на сервере используется TCP порт 21, но подключение данных определяется методом, который клиент использует для подключения к серверу.

Мы еще не упомянули нижнюю часть окна, где вы можете наблюдать за текущую передачу. В режиме реального времени вы увидите, что файл и где он передается на передачу происходит в нижнем правом углу, даже видя, общий размер файлов, которые еще должны быть переданы.

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

Активный режим FTP-подключений

Активный режим FTP иногда называют "управляемым клиентом", потому что клиент посылает команду PORT на сервер (через управляющее соединение), тем самым запрашивает сервер для установления соединения данных из TCP -порт 20 на сервере, клиенту, используя TCP порт, который указан по команде PORT .

Клиент FTP отправляет команду PORT FTP -серверу в следующем формате:

Поэтому представлена ​​основная функция которой еще не разговаривает, давайте по крайней мере, в точках. Вам нужен выделенный хостинг. Когда у вас есть выделенный хостинг, вы должны знать необходимую информацию об этом. Обычно вы получаете эту информацию при регистрации на хостинг, особенно по почте.

В основной части страницы вам нужно выбрать один из серверов загрузки. Когда кто-то не работает, попробуйте другой. На следующем уровне необходимо найти ссылку на «скачать» или что-то в этом роде и загрузить файл на диск. В бесплатной версии вам нужно сжать одно из трех нажатий клавиш.

PORT 192,168,0,3,19,243

где первых четыре значения соответствуют октетам IP адреса клиента, а пятое и шестое - это старший и младший байты 16-битного значения порта. Для преобразования старшего и младшего байтов в десятичный номер порта, пятое значение умножается на 256 и к результату прибавляется шестое значение. В рассмотренном примере получится: (19 * 256) + 243 = 5107. Таким образом клиент указывает серверу открыть подключение к данным используя 192.168.0.3:5107. По умолчанию FTP клиент выбирает временный порт для подключения к данным. Временный порт выбирается случайным образом из диапазона доступных портов от 1024 до 65535

Вы заплатите за программу, и эти дети избавятся от нее. Сначала вам нужно предоставить ему информацию, а затем вы можете использовать ее позже. У меня есть какая-то существующая связь . Лучше перейти к существующим соединениям и выбрать новое соединение в правом меню. Появится окно, в которое будут закрыты все важные данные.

Первая сессия шва не важна. Ожидайте имя, которое описывает соединение для вас. Вы должны получить его у своего хостинг-провайдера. Он не содержит слизи или дублеты! Анонимный вход - это не ваше дело - напротив, вы будете использовать имя и пароль. Вы получаете имя пользователя и пароль от своего хостинг-провайдера. Хотя это облегчает работу, но есть вирусы, которые могут его выкопать, а затем вышивать страницы. Для подключения не требуются следующие настройки.

Ниже представлена типичная последовательность для активного режима FTP -подключения:

Команда Отправлено из Отправлено на
USER MyUserName 192.168.4.29:8190 10.0.0.10:21
PASS MyPassword 192.168.4.29:8190 10.0.0.10:21
CWD / 192.168.4.29:8190 10.0.0.10:21
250 CWD command successful. 10.0.0.10:21 192.168.4.29:8190
PORT 192,168,4,29,31,255 192.168.4.29:8190 10.0.0.10:21
200 PORT command successful. 10.0.0.10:21 192.168.4.29:8190
LIST 192.168.4.29:8190 10.0.0.10:21
10.0.0.10:20 192.168.4.29:8191
226 Transfer complete. 10.0.0.10:21 192.168.4.29:8190

Пассивный режим FTP-подключений

FTP в пассивном режиме иногда называют «управляемым сервером», поскольку после отправки клиентом команды PASV , сервер отвечает одним из его временных портов, который будет использоваться в качестве серверного порта подключения к данным. Ниже представлена типичная последовательность подключения пассивного режима FTP:

Если вы хотите автоматически перейти на другой адрес после подключения к удаленному серверу, введите его имя для косой черты. Местный адрес - полезный вопрос. Использование брандмауэра или режима пассивной передачи является хорошей идеей, если локальная область каким-то образом закреплена. Он будет меняться главным образом в случае проблем. Попытайтесь отключить его, если он не сможет подключиться, и вы должны подозревать, что у вас есть местная власть.

Он имеет множество настроек и элементов управления, поэтому действительно хорошо провести время для переименования. Это соединение может быть создано активно или пассивно. Эти два режима позволяют нам сделать хорошую «перчатку», и все варианты, показанные здесь, возможны только благодаря им.

Команда Отправлено из Отправлено на
USER MyUserName 192.168.4.29:7971 10.0.0.10:21
PASS MyPassword 192.168.4.29:7971 10.0.0.10:21
CWD / 192.168.4.29:7971 10.0.0.10:21
250 CWD command successful. 10.0.0.10:21 192.168.4.29:7971
PASV 192.168.4.29:7971 10.0.0.10:21
227 Entering Passive Mode (192,168,4,29,9,227). 10.0.0.10:21 192.168.4.29:7971
LIST 192.168.4.29:7971 10.0.0.10:21
10.0.0.10:2531 192.168.4.29:7972
226 Transfer complete. 10.0.0.10:21 192.168.4.29:7971

FTP (File Transfer Protocol) один из самых архаичных протоколов передачи данных. Он был создан ещё до HTTP более 40 лет назад. Тем не менее, технология «FTP клиент-сервер» и «сервер-сервер», простая в использовании и не требующая особого обслуживания, до сих пор служит надежным средством систематизации внутреннего документооборота, создания многопользовательских архивов в локальных сетях корпораций и свободного распространения программного обеспечения, мультимедиа, документов и материалов во всемирной паутине.

Никакой другой режим передачи не инициируется. Перед каждой передачей данных необходимо указать, для какого режима будет установлено новое соединение. Это означает, что вы можете все проверить самостоятельно. Пассивный режим - это когда вы создаете новое соединение, то есть, Вы подключаетесь к серверу. Пассивный режим активируется пассивной командой. Затем сервер распечатывает ваше подтверждение, а в скобках вы передаете параметры туда, где хотите подключиться.

Активный режим противоположный пассивному режиму. Это означает, что сервер подключается к вам, и параметры, которые вы хотите подключить, определяются вами.

Теперь, когда мы знаем, как работают режимы, мы можем открыть для сканирования порты. Но мы все равно можем войти в порт. В этот момент сервер начнет подключаться к жертве в указанном порту.

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


Как узнать, было ли это соединение успешным или нет? Как только мы запустим команду списка, сервер сообщает нам, что ссылка была создана, более интересным является сообщение 226 Перенос успешно завершен или 426 Прерывание передачи. Оба они означают, что соединение было прекрасным, в последнем случае оно было преждевременно закрыто. Это может быть связано с тем, что служба, с другой стороны, не ожидает отправки этих данных и закрывает соединение. Но два ключевых слова указывают, что порт открыт. Если сообщение не получено, порт закрывается.

Пассивный режим необходим в случаях, когда компьютер клиента находится в защищенной локальной вычислительной сети. Большинство браузеров поддерживают FTP-протокол, и позволяет подключаться, просматривать и копировать данные с удаленных серверов. Так, в Internet Explorer можно, указав в адресной строке ftp:// “IP адрес сервера” или найти с помощью FileSearch ссылки самых популярных хранилищ файлов. На вкладке/«Свойства обозревателя/Дополнительно»/ можно разрешить использовать пассивный режим FTP.

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

Каковы преимущества сканирования? Это сканирование также обеспечивает возможность сканирования удаленной локальной сети . При этом теоретически возможно достичь бесконечного усиления. Если их нет, мы загрузим наши собственные. Сервер подключается к жертве на этом порту и начинает отправку файла. Но чтобы сделать это не так просто, нам нужны жертвы для правильного обслуживания. Правильный сервис - это тот, который принимает и не завершает соединение. Такие услуги, вероятно, будут минимальными. Однако большинство служб позволяют передавать определенный объем данных.

Не требуется никаких особых настроек в браузере «Mozilla Firefox». “Total Comander» и «Far” имеют встроенный FTP клиент. Здесь при создании нового соединения необходимо дополнительно указать логин и пароль. К открытым серверам логин по умолчанию «anonymous», а пароль – адрес вашего почтового ящика.

Все известные «качалки» от FlashGet (по умолчанию пассивный режим) до ReGet Deluxe (по умолчанию активный режим) имеют систему автоматического определения сценариев соединения и закачки, а также снабжаются различными дополнительными акселераторами для ускорения процесса скачивания. Включать или отключать пассивный режим, как правило, можно при создании нового подключения на вкладках FTP.

Для некоторых служб может возникнуть проблема с отправкой двоичных данных, поэтому лучше отправлять текстовые данные. Службы, которые могут хорошо обслуживаться, - это почта, Интернет или обмен данными. Тем не менее, это также зависит от того, какое программное обеспечение связано с сервисом и т.д. нет проблем с достижением коэффициента усиления от 10 × до 100 ×.

Это может быть достигнуто комбинацией пассивного и активного режимов. Вся атака заключается в активации пассивного режима на одном сервере. Теперь вы сначала выбираете команду сохранения и имя файла, который вы хотите сохранить. На втором сервере, путем извлечения и путем указания файла, вы начинаете передачу данных. Теперь второй сервер подключается к первому и начинает отправлять ему данные. Преимущество этой атаки также в том, что только один сервер восприимчив к ней, поскольку пассивный режим не ограничен.

Для клиентов, работающих в файлообменном режиме постоянно или довольно часто, необходимо установить FTP менеджер. Это программа серий FileZilla, CuteFTP , SmartFTP , FTP Voyager и т.д. , которые тоже можно найти в открытом доступе в интернете. Эти программы дают возможность более тонкой настройки соединения с удаленным сервером FTP. Они незаменимы в случаях работы с серверами, работающими только в “active mode” , поскольку даже при отсутствии статического IP адреса у клиента, программа может эмулировать его на период сессии.

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

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

Среди русскоязычных пользователей наибольшую популярность получила бесплатная программа с открытым кодом – FileZilla. Эта программа просто устанавливается, у нее понятный русский интерфейс. Для настройки соединений можно использовать несколько вариантов. Общая настройка - Меню/Редактирование /Настройки/. выполнены в древовидном виде и затрагивают настройки всех доступных модулей. В этом же разделе меню можно переключиться на мастера создания подключения, где пошагово будут предложены параметры подключения при выборе активного или пассивного режима. Некоторые FTP серверы предлагают скачать небольшие файлы сценариев подключения, которые можно импортировать в программу и создать готовое постоянное подключение.

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

Подключение через веб-браузер

Возможно, вам понравилась эта статья, и вы узнали что-то новое. Очень часто, очень просто, и все же неясно для многих пользователей. Поэтому, если кто-то отправит вам адрес в последнем формате, вам необходимо прочитать имя пользователя и пароль. В адресной строке браузера введите адрес сервера, включая журнал. В зависимости от используемого браузера будет отображаться список содержимого сервера. Таким образом, вы не можете загружать данные, вы можете загружать их только.

И наконец, среди консольных команд ОС Windows поддерживается команда ftp.exe, которая предоставляет возможность «ручного» подключения к FTP серверу с помощью введения консольных команд (протокол поддерживает 25 команд). Использование и синтаксис ввода этих команд необходимо хорошо знать и усвоить, но это потребует определённых навыков и опыта программирования.

Вы можете скачать текущую версию бесплатно дома. При запуске программы отображается список определенных подключений. Поскольку он, вероятно, пуст, нажмите «Создать». Затем сохраните соединение, необязательно с паролем, и нажмите «Войти». Нажмите «Новые подключения». В появившемся окне введите следующее.

Сессия: имя соединения, тип Любой хост: адрес сервера без имени журнала, пароль. . Другая проблема касается обслуживания клиентов, которые используют пассивный режим, а также тех, кто его не использует. Неважно, хорошо это или плохо, зависит от конфигурации серверов и брандмауэров.

FTP (File Transfer Protocol) один из самых архаичных протоколов передачи данных. Он был создан ещё до HTTP более 40 лет назад. Тем не менее, технология «FTP клиент-сервер» и «сервер-сервер», простая в использовании и не требующая особого обслуживания, до сих пор служит надежным средством систематизации внутреннего документооборота, создания многопользовательских архивов в локальных сетях корпораций и свободного распространения программного обеспечения, мультимедиа, документов и материалов во всемирной паутине.

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

Пассивный режим необходим в случаях, когда компьютер клиента находится в защищенной локальной вычислительной сети. Большинство браузеров поддерживают FTP-протокол, и позволяет подключаться, просматривать и копировать данные с удаленных серверов. Так, в Internet Explorer можно, указав в адресной строке ftp:// “IP адрес сервера” или найти с помощью FileSearch ссылки самых популярных хранилищ файлов. На вкладке/«Свойства обозревателя/Дополнительно»/ можно разрешить использовать пассивный режим FTP.

Не требуется никаких особых настроек в браузере «Mozilla Firefox». “Total Comander» и «Far” имеют встроенный FTP клиент. Здесь при создании нового соединения необходимо дополнительно указать логин и пароль. К открытым серверам логин по умолчанию «anonymous», а пароль – адрес вашего почтового ящика.

Все известные «качалки» от FlashGet (по умолчанию пассивный режим) до ReGet Deluxe (по умолчанию активный режим) имеют систему автоматического определения сценариев соединения и закачки, а также снабжаются различными дополнительными акселераторами для ускорения процесса скачивания. Включать или отключать пассивный режим, как правило, можно при создании нового подключения на вкладках FTP.

Для клиентов, работающих в файлообменном режиме постоянно или довольно часто, необходимо установить FTP менеджер. Это программа серий FileZilla, CuteFTP , SmartFTP , FTP Voyager и т.д. , которые тоже можно найти в открытом доступе в интернете. Эти программы дают возможность более тонкой настройки соединения с удаленным сервером FTP. Они незаменимы в случаях работы с серверами, работающими только в “active mode” , поскольку даже при отсутствии статического IP адреса у клиента, программа может эмулировать его на период сессии.

Среди русскоязычных пользователей наибольшую популярность получила бесплатная программа с открытым кодом – FileZilla. Эта программа просто устанавливается, у нее понятный русский интерфейс. Для настройки соединений можно использовать несколько вариантов. Общая настройка - Меню/Редактирование /Настройки/. выполнены в древовидном виде и затрагивают настройки всех доступных модулей. В этом же разделе меню можно переключиться на мастера создания подключения, где пошагово будут предложены параметры подключения при выборе активного или пассивного режима. Некоторые FTP серверы предлагают скачать небольшие файлы сценариев подключения, которые можно импортировать в программу и создать готовое постоянное подключение.

И наконец, среди консольных команд ОС Windows поддерживается команда ftp.exe, которая предоставляет возможность «ручного» подключения к FTP серверу с помощью введения консольных команд (протокол поддерживает 25 команд). Использование и синтаксис ввода этих команд необходимо хорошо знать и усвоить, но это потребует определённых навыков и опыта программирования.