Создаем свой собственный FTP сервер на базе FileZilla Server. Умные роутеры, файрволы, и саботаж данных. Монтирование FTP-ресурса при помощи консольной утилиты ftpuse

Иногда проще и быстрее передать файл через собственный ftp-сервер, чем закачивать на файлообменник. Ниже рассмотрена процедура установки и настройки ftp-сервера IIS, входящего в состав Windows 7.


FTP-сервер входит в состав служб IIS. Для его установки открываем Панель управления -> Программы -> Включение или отключение компонентов Windows. Раскрываем раздел Службы IIS и ставим галочки напротив следующих компонентов: Служба FTP и Консоль управления IIS.

Настройка FTP-сервера.

Открываем Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером (можно быстрее: меню Пуск -> правый клик на Компьютер -> в меню выбрать пункт Управление). В открывшемся окне раскрываем группу Службы и приложения и открываем Диспетчер служб IIS. В окне Подключения выбираем папку Сайты, затем в правом окне Действия нажимаем на ссылку Добавить FTP-сайт.

В мастере создания ftp-сайта указываем его название и расположение (по умолчанию c:\inetpub\ftproot).

Далее указываем параметры привязки и SSL. Раздел привязка оставляю без изменений. Опцию «Запускать ftp-сайт автоматически» отключаю (ftp мне нужен только время от времени). В разделе SSL выставляю опцию «Без SSL».

В следующем окне оставляем все без изменений и нажимаем Готово.

Сайт создан. Теперь можно перейти к дополнительным параметрам для тонкой настройки (например ограничить максимальное количество одновременных подключений). Выделите только что созданный сайт, справа в панели Действия нажмите на Дополнительные параметры.

Следующий этап — настройка брандмауэра Windows. Откройте Панель управления -> Система и безопасность -> Брандмауэр Windows -> Дополнительные параметры. В разделе «Правила для входящих подключений» находим и активируем «FTP-сервер (входящий трафик)» и «FTP Server Passive (FTP Passive Traffic-In)». Последнее правило позволяет подключаться ftp-клиенту в пассивном режиме.

В разделе «Правила для исходящего подключения» находим и активируем «FTP Server (FTP Traffic-Out)».

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

Если подключение к Интернет осуществляется с помощью маршрутизатора, и вы хотите сделать свой сервер доступным интернет-пользователям, тогда необходимо настроить проброс портов на маршрутизаторе. На моем Dlink DI-804HV это выполняется в разделе Virtual Server.

192.168.10.4 — ip-адрес ftp-сервера в локальной сети.

Настройка прав пользователей.

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

Открываем Панель управления -> Система и безопасность -> Администрирование -> Управление компьютером (Пуск -> правый клик на Компьютер -> в меню выбрать пункт Управление). Далее раскрываем группу Локальные пользователи и группы (данная настройка доступна только в редакциях Бизнес и Максимальная). Правый клик на папке Группы, в меню выбираем Создать группу.

Вводим название группы — Пользователи FTP, описание (можно не вводить) и нажимаем кнопку Создать.

Теперь необходимо создать пользователя. Делаем правый клик на папке Пользователи и в меню выбираем Новый пользователь.

Вводим имя пользователя (например ftp_user_1), пароль (не менее 6 символов), выставляем галочки напротив опций «Запретить смену пароля пользователем» и «Срок действия пароля не ограничен».

Пользователь создан. Теперь необходимо присвоить ему ранее созданную группу Пользователи ftp. Для этого открываем свойства пользователя и переходим на закладку «Членство в группах». По умолчанию новому пользователю присваивается группа Пользователи, удаляем ее. Нажимаем кнопку Добавить -> Дополнительно -> Поиск. Откроется список групп пользователей. Выбираем группу Пользователи FTP и нажимаем Ok. В итоге получаем:

Нажимаем Ok и переходим к следующему этапу.

На этапе создания ftp-сайта нам было необходимо выбрать рабочий каталог (c:\inetpub\ftproot). Теперь для группы «Пользователи FTP» необходимо настроить права доступа к этому каталогу. Открываем c:\inetpub в проводнике, открываем свойства папки ftproot, переходим на закладку Безопасность и нажимаем кнопку Изменить. В открывшемся окне нажимаем кнопку Добавить и выбираем группу «Пользователи FTP» (как при создании пользователя). Устанавливаем уровень прав — «Полный доступ» и нажимаем Ок.

Последний этап. Вновь открываем Диспетчер служб IIS и выделяем наш ftp-сервер (Test FTP). В панели управления ftp-сайтом выбираем «Правила авторизации FTP». Добавляем разрешающее правило. В открывшемся окне выбираем опцию «Указанные роли или группы пользователей». Внизу в текстовом поле руками прописываем название нашей группы (Пользователи FTP), далее ставим галочки в разделе Разрешения напротив Чтение и Запись и нажимаем Ок.

На этом настройка завершена.

В начале мы не выбрали опцию автоматического запуска сервера, поэтому не забываем запустить его вручную (правый клик на названии сайта -> Управление FTP-сайтом -> Пуск).

Как подключиться?

Вариант с использованием проводника Windows.
Открываем Компьютер (Vista, Win 7) или Мой Компьютер (XP).
Для анонимного доступа просто вводим в адресную строку адрес сервера (ftp://192.168.10.4).
Чтобы войти с именем пользователя и паролем вводим адрес вида: ftp://[имя пользователя]:[пароль]@[адрес ftp-сервера]. Например ftp://ftp_user_1:[email protected] — для подключения из локальной сети. Для подключения из Интернет локальный адрес заменяем на внешний или на доменное имя.

Как сделать свой ftp-сервер доступным из Интернет?

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

Если компьютер подключен к Интернет через роутер, тогда в панели управления роутера необходимо настроить форвардинг порта TCP 21 (часто это еще называют виртуальным сервером). .

В данном посте я расскажу вам как установить и настроить защищённый FTP сервер (протокол FTPS ) на Windows Server 2003 (установка и настройка для других операционных систем ничем не отличается).

Не стоит путать протокол FTPS с протоколом SSH File Transfer Protocol (SFTP ), протокол FTPS несовместим с протоколом Secure Shell (SSH) .

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

Скачайте последнюю версию FileZilla Server . На данный момент последняя версия 0.9.39.

После того, как вы скачали файл, запустите установку программы.

В появившемся меню, выберите тип установки «Standard» на нажмите «Далее>».
Будет установлен сервис сервера FileZilla и GUI администратора.




После установки сервера приступим к его настройке. Запустите консоль администратора и подключитесь по адресу 127.0.0.1, который является localhost, на порт 10050 (вы указали его во время установки сервера).


Производите настройку сервера в соответствии с картинками. Они говорят сам за себя.
Вы результате мы получим защищённый FTP сервер, установленный на порту 21, который используется по умолчанию FTP серверами.


Установите своё сообщение приветствия, которое будет отображаться при подключении нового пользователя. Включите опцию «Hide welcome message in log» . Эта опция отключает запись сообщения приветствия в логах сервера, что уменьшит их размер.

Примечание . При написании своего сообщения приветствия вы можете использовать специальные символы и переменные: %v - переменная содержит версию FTP сервера , а конструкция %% - будет заменена на %



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


Для обеспечения большей безопасности FTP сервера, заблокируйте все входящие адреса, добавив в исключения лишь те адреса, с которых ожидаются подключения. IP адреса следует разделять пробелом. В данном примере я разрешил подключение с локального адреса и с google.com (209.85.229.103).


Следующие настройки приводите в соответствие с картинками:








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




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




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


Заполните все поля своими данными по аналогии с рисунком.
В поле «Common name» укажите ваш IP адрес или доменное имя, если оно у вас имеется. А затем нажмите на кнопку «Generate certificate»

Вернитесь к настройкам SSL/TLS и укажите путь к файлу сертификата и файлу ключа.


И наконец установите параметры автоблокирования подозрительных пользователей.

ВАЖНО! Перед проверкой подключения, убедитесь, что для портов 21, 990 и 3000-4000 у вас заданы исключения в фаерволе.

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

Большинство пользователей ПК хотя бы раз слышали о приложении FileZilla, которое через клиентский интерфейс передает и принимает данные по протоколу FTP. Но мало кто знает, что у данного приложения существует серверный аналог – FileZilla Server. В отличие от обычной версии, данная программа реализует процесс передачи данных по протоколам FTP и FTPS на серверной стороне. Давайте изучим основные настройки программы FileZilla Server. Это особенно актуально, учитывая тот факт, что существует только англоязычный вариант данной программы.

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

Поля наименований хоста и порта, как правило, заполняются автоматически, хотя, при желании вы сможете изменить первое из этих значений. А вот пароль придется придумать самому. Заполняем данные и жмем на кнопку Connect (Подключение).

Общие настройки

Теперь перейдем к общим настройкам программы. Попасть в секцию настроек можно, нажав на раздел верхнего горизонтального меню Edit, а затем выбрав пункт Setting.

Перед нами открывается мастер настройки программы. Сразу же мы попадем в раздел Основных настроек (General Settings). Тут нужно установить номер порта, к которому будут подключаться пользователи, и указать максимальное их число. Нужно отметить, что параметр «0» означает неограниченное количество пользователей. Если по какой-то причине их число нужно ограничить, то проставляйте соответствующую цифру. Отдельно устанавливается количество потоков. В подразделе «Timeout settings», настраивается величина таймаута до следующего подключения, при отсутствии отклика.

В разделе «Welcome message» можно вписать приветственное сообщение для клиентов.

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

Во вкладке «IP Filter», наоборот, вписывают заблокированные адреса тех пользователей, подключение которых к серверу нежелательно.

В следующем разделе «Passive mode setting» можно вписать параметры работы в случае применения пассивного режима передачи данных по FTP. Эти настройки довольно индивидуальны, и без особой надобности их трогать не рекомендуется.

Подраздел «Security Settings» отвечает за безопасность подключения. Как правило, тут производить изменения не требуется.

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

В разделе «Admin Interface Settings» вводятся настройки доступа к администрированию. По сути, это те же настройки, которые мы вводили при первом включении программы. В данной вкладке, при желании, их можно изменить.

Во вкладке «Logging» производится включение создания лог-файлов. Тут же можно указать их допустимый максимальный размер.

Название вкладки «Speed Limits» говорит само за себя. Тут при необходимости устанавливается размер скорости передачи данных, как по входящему каналу, так и по исходящему.

В разделе «Filetransfer compression» можно включить компрессию файлов при их передаче. Это поможет сэкономить трафик. Тут же следует указать максимальный и минимальный уровень компрессии.

В разделе «FTP over TLS settings» настраивается защищенное соединение. Тут же при его наличии следует указать местонахождение ключа.

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

Настройки пользовательского доступа

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

Чтобы добавить нового участника, нужно нажать на кнопку «ADD».

В открывшемся окне требуется указать имя нового пользователя, а также, при желании, группу, к которой он относится. После того, как данные настройки произведены, жмем на кнопку «OK».

В следующем разделе «Share Folders» назначаем, к каким именно директориям пользователь получит доступ. Для этого нажимаем на кнопку «ADD», и выбираем папки, какие считаем нужными. В этом же разделе есть возможность установить права для данного пользователя на чтение, запись, удаление и изменение папок и файлов указанных директорий.

Во вкладках «Speed Limits» и «IP Filter» можно выставить индивидуальные ограничения скорости и блокировки для конкретного пользователя.

После завершения всех настроек, жмем на кнопку «OK».

Настройки групп

Теперь переходим в раздел редактирования настроек групп пользователей.

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

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

Порой у человека появляется потребность обмениваться большими файлами в Сети. Отсылать такие файлы, размер которых превышает 10 Мб, неудобно через электронную почту, так как не все сервисы дают на это добро, потому либо приходится дробить файл на части, либо архивировать его, чтобы снизить размер до требуемого. А что делать, если вам нужно выслать не один файл весом выше 100 Мб? Тогда вам пригодится свой FTP server. Вы сможете сделать его на удаленном компьютере и загружать туда любые файлы на высокой скорости через клиент. В данной статье рассмотрим, как создать FTP сервер и в чем заключается основная настройка FTP сервера.

Для каких случаев нужен свой FTP server

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

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

Кроме того, установка FTP сервера в локальной сети — это обязательное условие для вебмастеров, которые хотят протестировать свой сайт перед запуском в Интернет на компьютере.

У вас может быть своя причина, почему вы хотите сделать FTP server, как и метод, которым вы это осуществите. Но в данной статье будет рассмотрен популярный способ генерации «дома» — вы узнаете, как настроить FTP при помощи программы FileZilla.

Как сделать FTP server в FileZilla

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

Процесс установки программы весьма прост. Для начала откройте exe-файл для запуска установщика. В первом шаге инсталляции вам нужно будет согласиться с правилами лицензии. На следующем этапе выберите сервисы, которые вы хотите установить вместе с FileZilla server, а также определите тип инсталляции. Рекомендуется сразу брать «Стандартный». Потом выберите папку, куда будет установлена программа. Далее последует важный шаг — вам нужно выбрать, как система установит FileZilla server — как службу или обычную программу, и будет ли запускаться это приложение при включении системы. Также вы сможете на этом шаге изменить порт для администраторской консоли. Только не забудьте его где-нибудь записать, чтобы потом не переустанавливать программу.

Последний этап установки — это определение пользователей, которым можно пользоваться программой FileZilla server. Лучше, чтобы вы были единственным пользователем на компьютере — тогда не придется настраивать доступ к программе вручную. После этого жмете не кнопку «Install», и дожидаетесь окончания установки.

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

Далее вам нужно пройти в меню «Edit» и открыть «Settings». Во вкладке «General» вы увидите основные настройки для сервера. Вы сможете задать порт, по которому будут подключаться пользователи к серверу, указать максимальное число клиентов, потоков и ограничить сессии таймаутами. Вот теперь порт имеет значение — чтобы обезопасить свой сервер, лучше указать нестандартный порт. Но потом вам нужно будет оповестить об этом пользователей. Если вы не планируете как-либо ограничивать число клиентов, то можете оставить в поле «Max. number of user» значение «0», то есть отсутствие лимита.

Преимущество создания сервера именно при помощи FileZilla server в том, что все настройки вы можете выставлять при помощи удобного интерфейса. Если бы вы делали это где-нибудь в среде Linux, то вам пришлось бы все конфигурации прописывать, что не очень удобно и сложно. К примеру, в FileZilla даже можно настроить привественное сообщение для пользователей. Для этого вам всего лишь нужнно зайти в раздел «Welcome message» и написать текст приветствия для клиентов. А в иной среде вам бы пришлось прописывать специальные команды для этого.

В пункте «IP buildings» вы сможете указать IP-адреса, для которых сервер будет доступен. Если вы укажите ваш IP-адрес, то сервер будет доступен только в локальной сети для вашего компьютера. Если вы хотите работать через сервер в Интернете, то не рекомендуется ограничивать IP-адреса. Если же у вас есть недоброжелатели, и вы знаете их IP-адреса, то можете прописать их в пункте «IP Filters», который будет запрещать вход для указанных IP (можно указывать диапазоны).

Главное отличие настройки сервера для локальной сети и Интернета в том, что во втором случае вам придется как-то согласовать конфигурации с фаерволом и роутером. Фаервол может начать «ругаться» из-за того, что кто-то пытается подключиться к компьютеру, а роутер может не пропустить их через порт. В таком случае вам нужно указать в настройках FileZilla внешний IP-адрес компьютера в разделе «Passive mode settings». Для локальной сети ничего подобного делать не придется — все сразу заработает.

Многие настройки внутри программы FileZilla server вам и вовсе не стоит трогать. К примеру, вам навряд ли понадобится настройка пункта меню «Security Settings», который нужен для регулировки подключения сервера к серверу. Также вам не нужно настраивать «Miscellaneous» и многие другие разделы меню. Не старайтесь вначале разобрать сразу все конфигурации программы, дабы не запутаться и создать конфликтные ситуации в работе сервера из-за неправильных настроек.

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

Во вкладке «Speed Limits» вы сможете добавить ограничения как для исходящих, так и для входящих соединений в плане скорости загрузки. Но не стоит этого делать, если нет потребности. Ведь один из самых основных плюсов протокола FTP — это быстрая загрузка, которая перестанет быть таковой, если поставите ограничения. После того, как разберетесь в настройках, добавьте пользователей через меню «Users» — и вашим сервером уже можно будет пользоваться! Только не забудьте передать данные для входа пользователям. По надобности, вы сможете указать анонимных юзеров без логинов. Обязательно укажите для пользователей права доступа.