Установка и настройка FTP сервера под Windows. Установка и настройка защищенного FTP сервера на FileZilla

К наиболее популярным программам для реализации сетевых соединений при использовании сервера небольшой корпоративной или домашней сети можно отнести такое решение как Filezilla Server. В чем же состоят особенности настройки данной программы? На что следует обратить внимание при выставлении в соответствующей программе тех или иных опций?

Filezilla Server: установка программы

Прежде чем рассматривать, как осуществляется настройка Windows 8.1, необходимая для обеспечения функционирования Filezilla Server, необходимо изучить особенности установки программы, о которой будет идти речь. Необходимо запустить, дистрибутив, который имеется в распоряжении пользователя. После этого необходимо выбрать оптимальный режим установки программного обеспечения: стандартный, полный, только интерфейс, только FTP или выборочная установка. В стандартном варианте предлагается установка программного обеспечения, о котором идет речь, при участии пользователя во всех основных этапах установки программы. В целом полный вариант напоминает первый. Он также предполагает копирование на персональный компьютер исходного кода рассматриваемого решения. Схема инсталляции «только FTP» предполагает установку только модулей FTP без интерфейсов организации доступа к нему с администрируемого персонального компьютера. В этом случае он становится возможным с удаленного компьютера. Схема установки «только интерфейс» предполагает установку только интерфейсом управления. Это может использоваться для получения доступа к удаленному серверу. При использовании варианта «выборочная установка» возможны различные сочетания опций. Пользователь может выбрать оптимальные опции с точки зрения обеспечения функционирования сети. Специалисты в общем случае рекомендуют выбирать стандартный вариант установки программы. Здесь нужно выбрать каталог, в который будет установлена программа. Далее необходимо выбрать модель установки и запуска сервера. Тут возможны три варианта:

— установка сервера как службы и задание его запуска при загрузке компьютера;

— установка сервера как службы и задание ручного запуска программы при загрузке персонального компьютера;

— использование простой установки при ручной загрузке программного обеспечения.

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

— непосредственно при загрузке системы для любого пользователя;

— при запуске операционной системы – для конкретного пользователя;

— в ручном режиме.

Будет полезно более подробно рассмотреть критерии выбора той или иной модели загрузки интерфейса.

Установка Filezilla Server: выбор модели загрузки интерфейса

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

Filezilla Server: основные интерфейсы программы

Программный продукт Filezilla Server, настройка которого происходит в несколько этапов, состоит из двух основных интерфейсов. Одним из них является непосредственно FTP-сервер. Функционирует он как самостоятельный системный модуль и не может быть настроен посредством какого-то пользовательского интерфейса с администрируемого персонального компьютера. Данный модуль при необходимости можно найти в списке функционирующих системных сервисов через панель управления операционной системы. При помощи соответствующего инструмента, который присутствует в операционной системе Windows, сервер FTP можно запускать и останавливать в том случае, если при установке сервера был выбран вариант, при котором его интерфейсы должны запускаться в ручном режиме. Однако, как правило, Filezilla Server запускается автоматически в части рассматриваемой системной службы непосредственно при загрузке персонального компьютера. Рассматриваемое программное обеспечение представлено интерфейсом, который предназначен непосредственно для управления основными модулями. Как только оно будет запущено, произойдет подключение к модулям, которые выполняют серверные функции. Окно интерфейса управления программой в неактивном состоянии сворачивается в системныйтрей, который расположен около часов операционной системы. Давайте теперь рассмотрим то, каким образом на практике осуществляется настройка соответствующего программного обеспечения с задействованием указанных интерфейсов программы FilezillaServer.

Настройка Filezilla Server: на что обратить внимание в первую очередь?

На что же в первую очередь нужно обратить внимание при настройке программы Filezilla Server? Для администратора сети в ряде случаев могут быть полезны некоторые функции программного обеспечения, связанные с мониторингом сетевых процессов. Так, например, через панель управления программой можно ознакомиться с содержанием журнала сетевых процессов. Здесь фиксируются действия тех или иных пользователей, которые подключались к серверу. В данном интерфейсе будет отражен список конкретных персональных компьютеров, которые находятся на связи с сервером. Таким образом, можно проследить за тем, как распределяется сетевой трафик. Еще одной особенностью программы Filezilla Server является возможность использования интерфейсов решения с других персональных компьютеров. Для этого достаточно только выставить в службе, которая блокирует по умолчанию управление сервером со сторонних компьютеров, конкретные настройки. Эксперты не рекомендуют вносить в опциях Security Settings рассматриваемого программного обеспечения какие-либо изменения. Все дело в том, что при внесении корректировок в данные настройки можно задать случайно необязательные ограничения на входящие и исходящие сетевые соединения. В опции Miscellaneous аналогично для пользователей будут доступны настройки, которые не будут иметь особого значения с точки зрения корректной настройки сервера. К таким настройкам относятся запрет на показ пароля в интерфейсах, величина буферов трансфера данных. Обеспечение функциональности сети почти не будет зависеть от внесения изменений в соответствующую группу настроек. Скорее всего, также не потребуется настройка протокола Kerberos GSS при помощи интерфейса GSS Settings. При помощи интерфейса Admin Interface Settings пользователь может установить оптимальный IP-адрес и порт, который будет использоваться для получения доступа к модулям управления сервером. Необходимо иметь ввиду, что настройка роутера к данной опции Filezilla Server не имеет никакого отношения. На роутере прописывается другой IP. Если задействовать опцию, о которой шла речь, то можно выполнить настройку IP-адресов, с которых компьютерам открыт доступ к серверу. Администратор при использовании опции Logging может активировать запись различных операций в рамках сетевых подключений в отдельные файлы, а также задать предельный размер данных файлов. Опция Speed Limits, посредством которой администратор может ограничивать скорость обмена файлами между ПК и сервером, может быть весьма полезной. Ограничение в данном случае может быть установлено постоянно или по расписанию. Существует и еще одна примечательная опция программы Filezilla Server, которая позволяет сэкономить объемы трафика – Filetransfer compression.Стоит отметить, что данная функция может активировать минимальную или максимальную степень сжатия файлов. Также можно зафиксировать IP-адреса, при запросах с которых не будет задействоваться компрессия трафика.

Filezilla Server: ключевые настройки

Давайте теперь более детально рассмотрим, каким образом выставляются наиболее востребованные параметры программы Filezilla Server. Настройка программы, как правило, начинается со страницы General Settings. Интерфейс программного обеспечения составлен на английском языке. Если пользователь выберет данную опцию, то он может, например, поменять стандартный порт для подключения на какой-то другой. Еще одним вариантом настроек является задание оптимального количества пользователей, которые могут подключаться к серверу с рассматриваемым программным обеспечением. Соответствующие программные интерфейсы также позволяют определять настройки по прекращению связи с персональным компьютером, которые не могут корректно подключиться к сети.

Filezilla Server: настройка IP

Следующим важным пунктом программы Filezilla Server является настройка FTP-сервера в части прописывания адресов IP.Речь в данном случае будет идти об использовании настройки IP Bindings. Настройка FTP-сервера посредством данной опции программы Filezilla Server может осуществляться посредством прописывания IP-адресов, по которым другие компьютеры будут подключаться к администрируемому. У пользователя есть возможность настроить доступ к серверу для персональных компьютеров, которые находятся в пределах локальной сети, или определенным способом расширить полномочия других компьютеров. Если использовать настройку IP Filter можно настроить конкретные IP-адреса, а также диапазон тех или иных адресов, с которых нельзя будет осуществлять подключение к серверу. При необходимости можно задавать те или иные исключения.

Настройки пассивного режима

Еще одной примечательной опцией программы Filezilla Server является настройка пассивного режима. Пользователю для этого необходимо будет задействовать опцию Passivemode в интерфейсе программе, о которой идет речь. Таким образом, соответствующая настройка формирует параметры, которые необходимы для обеспечения пассивного подключения к администрируемому серверу. При внесении корректировок в некоторые параметры Filezilla Server может потребоваться настройка роутера. Например, TP Link, и другие популярные производители маршрутизаторов, позволяют внести в программное обеспечение соответствующего устройства необходимые параметры. Важно, конечно, чтобы роутер поддерживал функцию брандмауэра и NAT для активации многих нужных опций. Пользователю, скорее всего, нужно будет указать конкретный IP-адрес, который присваивается провайдером. Узнать его можно, если задействовать программные интерфейсы маршрутизатора. Решить данную задачу можно успешно вне зависимости от того, на какой операционной системе установлен Filezilla Server. Настройка операционной системы Windows 7 в части получения доступа к соответствующим адресам будет происходить так же, как если бы это была операционная система Windows 8.1. На практике вносить корректировки в настройки IP-адресов в большинстве случаев требуется в том случае, если имеются определенные проблемы с подключением тех или иных персональных компьютеров к серверу.

Filezilla Server: настройки безопасности сервера

Давайте рассмотрим вопрос о настройке безопасности использования серверных соединений. В целях оптимизации соответствующих параметров Filezilla Server нам потребуется настройка SSL. Она осуществляется через интерфейс SSL/TLS Settings.В этом случае необходимо активировать поддержку соответствующих протоколов. Как правило, необходимо фиксировать адрес закрытого ключа, сертификата, а также пароль в настройках. Стоит отметить, что на практике такие опции обычно задействуют опытные системные администраторы. Настройку SSL в общем случае при корректировке установленных по умолчанию параметров выполнять не требуется. Можно повысить безопасность сервера так же путем фильтрации неудачных подключений пользователей.

Filezilla Server: настройка аккаунтов

Еще одна важная группа настроек рассматриваемого программного обеспечения связана с регистрацией аккаунтов пользователей. Чтобы создать новую учетную запись, нужно выбрать пункт меню Edit, а после этого выбрать опцию Users. Далее можно будет осуществлять работу с аккаунтами пользователей. Чтобы добавить новую учетную запись, следует выбрать пункт Add. Затем вписывается имя пользователя, а при необходимости группа, к которой компьютер должен относиться. Когда необходимые настройки будут выполнены, необходимо будет задать пароль для созданной учетной записи. Можно также активировать ограничение числа соединений с сервером. Эксперты советуют по возможности устанавливать пароль для учетных записей, хотя в принципе можно обойтись и без него. Технологически данная задача решается довольно просто, особенно если учитывать универсальность программы Filezilla Server. Настройка Windows 7 для доступа к внешней сети и выставление необходимых опций в операционной системе Windows 8.1 выполняется по одним и тем же алгоритмам.

Filezilla Server: настройка общего доступа к папкам

Еще одной примечательной опцией Filezilla Server является настройка общего доступа к папкам. Для этой цели необходимо задействовать модуль Share Folders. Чтобы выбрать каталоги, к которым нужно организовать доступ, необходимо нажать на кнопку Add, а после этого выбрать на диске нужный пункт. Таким же образом задается и перечень прав доступа к той или иной папке. Имеется возможность настройки таких операций, как запись, чтение, удаление и внесение изменений в файлах, которые расположены в том или ином каталоге.

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

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

Хост для подключения должен быть в качестве 127.0.0.1, порт 14147, пароль - пустой.

Теперь нам необходимо перейти к настройкам нашего будущего ftp сервереа.

1. Необходимо создать пользователя для подключения к серверу из вне. Заходим в меню "Edit" затем выбираем пункт "Users"

2.Жмём кнопочку "ADD"и указываем в самом первом поле имя пользователя (аккаунт)

3. Теперь необходимо добавить папку к которой будет подключаться пользователь. Нажимаем кнопку "add" в "shared folders". Я добавил папку с обоями для рабочего стола.

Пароль

Если нужно указать пароль для пользователя, просто поставьте галочку напротив "password", и впишите его.

Скорость передачи данных

Если определённому пользователю нужно огранить скорость передачи данных, зайдите в раздел "Speed Limits".

IP фильтры

Для того чтобы другие пользователи не смогли подключаться к вашему серверу, создайте свой чёрный список на вкладке "Ip filter".

Теперь нажимаем кнопочку ОК, и пробуем подключиться к серверу с помощью любого ftp клиента. У Меня подключение прошло без проблем, и я попал в папку с Обоями.

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

Проблемы с подключением

1. Включен брандмауэр Windows. кстати именно из-за него подключение извне не проходило

2. Интернет работает через роутер. Для этого потребуется прописать маршрут до вашего локального IP с указанием 21 порта.

Выключить брандмауэр

В Windows XP необходимо зайти.

Прописать маршрут в роутере

Я к сожалению не знаю всех настроек различных роутеров, но на примере могу показать как это делается на Zyxel. Заходим в оболочку по адресу 192.168.1.1, а затем находим раздел NAt. В этом разделе необходимо указать службу "Ftp",а так же локальный ip адрес вашего компьютера с программой Filezilla(Например 192.168.1.33 у вас может быть другой), не путайте с реальным.

Что происходит после добавления правила? При обращение пользователя к вашему реальному IP на 21 порт, роутер будет соединять пользователя с программой FileZilla Server.

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

Здравствуйте админ, объясните мне пожалуйста, что такое FTP сервер и могу ли я сам создать его на своём компьютере?

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

Привет друзья! Наш Ro8 написал для Вас классную статью на эту тему, читаем.

Во-первых, FTP - это протокол передачи файлов по сети интернет по принципу «клиент-сервер» , а FTP сервер, это хранилище файлов в интернете, то есть - обычный компьютер с установленной Windows 7, 8.1 или Windows Server 2012 и несколькими жёсткими дисками большого объёма, на которых могут быть расположены любые ваши файлы. На этом компьютере установлена программа, например - FileZilla Server , подключиться к этому компьютеру может любой другой с помощью: командной строки , проводника Windows и различных программ, рассмотрим в нашей статье две: FileZilla Client , и Total Commander . После подключения к FTP-серверу вы можете закачивать на него любые файлы (фильмы, музыку и т.д) и также скачивать.

Управление FTP-сервером будет осуществлять администратор, установивший программу - FileZilla Server. Именно в ней можно каждому пользователю присвоить различные права доступа (возможность изменения файлов на сервере) : Append (возможность изменения файлов), Read (только чтение), Write (запись), Delete (удаление). Естественно, большей части пользователей можно не давать права Delete (удаление).

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

Как происходит работа

В качестве программной реализации FTP сервера в статье будет рассмотрена программа FileZilla Server, которая будет установлена на машину с Windows Server 2012

Также в качестве машины с которой будет производится подключение к созданному FTP серверу выступает компьютер с предустановленной Windows 8.1 Enterprise (x64)

Для того, чтобы машина с Windows 8.1 могла подключиться к FTP серверу, на нее будет произведена установка программы FileZilla Client (один из способов подключения с помощью данной программы)

Переходим по адресу https://filezilla-project.org и скачиваем FileZilla Server и FileZilla Client

Скачанный файл FileZilla Server запускаем на машине с Windows Server 2012 , а файл FileZilla Client на машине с Windows 8.1 . Обе программы устанавливаются одинаково. В первую очередь установим программу FileZilla Server.

Установка FileZilla Server

После запуска скачанного файла FileZilla Server на Windows Server 2012 нажимаем далее

Нажимаем Установить

Установить

Процесс установки FileZilla Server

Установка завершена

После установки откроется вот такое окно, в котором вводим локальный адрес FTP сервера и нажимаем OK

После ввода локального адреса FTP сервера появится основное окно программы FileZilla Server

Произведем некоторые настройки выбрав Edit-Users

На вкладке General для добавления нового пользователя нажимаем на кнопку Add

Вводим имя пользователя. ОК

Напротив Password ставим галочку и вводим пароль добавленного пользователя

Переходим на вкладку Shared Folders. На данной вкладке добавим папку FTP01 которая будет доступна созданному пользователю Ro8. Нажимаем Add

Указываем заранее созданную папку FTP01. ОК

Выделяем добавленную папку и указываем для нее права доступа: - Read (только чтение), Write (запись), Delete (удаление), Append (возможность изменения файлов в данной папке)

Определяем ip адрес машины с Windows Server 2012 (192.168.1.4)

Установка FileZilla Client

Переходим на машину с Windows 8.1 и производим установку программы FileZilla Client

Принимаем лицензионное соглашение

Установка

Установка завершена

У нас есть сеть, представленная на схеме

Выполним подключение к FTP серверу различными способами.

Подключимся к FTP серверу используя командную строку

На машине с Windows 8.1 запустим командную строку.

Указываем имя пользователя (Ro8 ) и вводим пароль. Пароль при вводе не отображается

Logged on означает что мы произвели вход на FTP сервер

Создадим папку My_Backup_win8.1 на FTP сервере - введя команду mkdir My_Backup_win8.1

Посмотрим список папок на FTP сервере - введя команду ls

Как видим, на FTP сервере присутствует папка My_Backup_win8.1

Закрываем соединение с FTP сервером введя команду bye

Подключение к FTP-серверу с помощью программы T otal Commander

Запустим на машине с Windows 8.1 файловый менеджер Total Commander. Для настройки подключения к FTP серверу нажимаем на кнопку указанную на скриншоте

Нажимаем Добавить

Указываем имя соединения (произвольно), сервер и порт (сервер это ip адрес FTP сервера, порт прописываем 21). Также указываем имя пользователя и пароль. ОК

Выделяем созданное FTP соединение и нажимаем Соединится

Соединение с FTP сервером установлено

Для отключения от FTP сервера нажимаем Отключение

Отключение от FTP сервера выполнено

Подключение к FTP-серверу с помощью программы FileZilla Client

Запустим программу FileZilla Client

Откроется главное окно программы

В продолжении темы о передаче файлов через интернет, сегодня расскажу о FTP сервере. Хотя я и отдал своё предпочтение , упускать из виду FTP сервер нельзя, так как это очень популярный способ передачи файлов. Итак, немного теории. Что такое FTP?

FTP (File Tranfser Protocol) в переводе с английского означает «Протокол передачи файлов» и служит для обмена файлами между компьютерами через интернет или локальную сеть. Для входа на FTP сервер достаточно обычного браузера или даже проводника Windows. Единственное условие это открытый порт 21 (используется по умолчанию, но можно заменить на свой), то есть он должен быть открыт. Так что, если у вас стоит Firewall или роутер, придется вспомнить где у вас лежит инструкция, чтобы пробросить 21 порт.

Итак, переходим к настройке FTP-сервера.

1) И первое, что нам нужно — это добавить компоненты в нашу операционную систему. Для этого идём в «Панель управления» → «Программы» → «Программы и компоненты» и жмём кнопку слева «Включение или отключение компонентов Windows»:

2) В открывшемся списке нам необходимо включить группу компонентов «Службы IIS», а именно: «FTP — сервер», «Службы Интернета» и «Средства управления веб-сайтом». Должно получить так же, как на скриншоте:

Жмём ОК и ожидаем завершения установки компонентов. В зависимости от выпуска вашей операционной системы, может понадобиться диск с установочным пакетом Windows.

В открывшемся окне в левой колонке открываем дерево до вкладки «Сайты» и жмём по этой вкладке правой клавишей. Выбираем «Добавить FTP-сайт»:

Указываем имя сайта и каталог, к которому будет осуществляться доступ по FTP протоколу:

Указываем параметры запуска FTP-сервера. Если вы не хотите, чтобы сервер запускался автоматически при старте системы, снимите галочку. В подразделе SSL поставьте точку на «Без SSL»:

На следующей странице ставим галочку напротив «Анонимный» и «Обычная» и жмём готово:

FTP-сайт создан, продолжаем настройку.

4) Идём в «Панель управления» → группа «Система и безопасность» → «Брандмауэр Windows» и в левой колонке выбираем «Дополнительные параметры»:

Переходим на вкладку «Правила для входящих соединений». Необходимо найти и включить два пункта:

— FTP-сервер (входящий трафик);
— Трафик FTP-сервера в пассивном режиме (входящий трафик FTP в пассивном режиме).

Для этого жмём правой клавишей по правилу и выбираем «Включить правило»:

Затем переходим во вкладку «Правила для исходящих подключений» и включаем правило «Трафик FTP-сервера (исходящий трафик FTP)»:

Если у вас установлен Firewall или роутер, вам необходимо открыть порт 21(TCP) для входящих соединений и порт 20(TCP) для исходящих.

5) Необходимо создать пользователя, который будет иметь полный доступ к серверу по FTP (запись/удаление). Для начала необходимо создать новую группу пользователей. Поэтому идём в «Панель управления» → группа «Система и безопасность» → «Администрирование» → «Управление компьютером». В левой части окна выбираем раздел «Локальные пользователи и группы» → «Группы». Кликаем правой клавишей по пустому месту в центральной части окна и выбираем «Создать группу…»:

Прописываем имя и описание группы и жмём кнопку «Создать»:

Переходим во вкладку «Пользователи» и по аналогии кликаем по пустому месту и выбираем «Новый пользователь»:

Прописываем данные и придумываем пароль (не менее восьми символов). Также ставим галочки на «Запретить смену пароля пользователем» и «Срок действия пароля» не ограничен»:

Открываем свойства нового пользователя кликнув по нему правой клавишей. Переходим на вкладку «Членство в группах». Жмём кнопку «Добавить» → «Дополнительно» → «Поиск» и выбираем группу, которую мы создали несколько минут назад. Жмём ОК.

Жмём кнопку «Добавить» и добавляем группу, которую мы создавали. Предоставляем группе полный доступ, отметив соответствующую галочку в нижней части окна:

Жмём ок, чтобы применить изменения.

Переходим «Панель управления» → группа «Сеть и безопасность» → «Администрирование» и открываем «Диспетчер служб IIS» → «Сайты» и выбираем наш сайт:

Выбираем «Указанные роли или группы пользователей» и прописываем имя нашей группы. Даём этой группе права на чтение и запись и жмём ОК.

Возвращаемся на сайт и заходим в «Ведение журнала FTP».

Указываем максимальный размер лога или отключаем его совсем. Жмём справа «Применить»:

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

Спасибо за внимание:)

В этом разделе будет кратко рассмотрена история и технические сведения, касающиеся протокола 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 со включенными сервисами "Маршрутизация и удаленный доступ" или "Шлюз уровня приложения".