Как создать FTP-сервер?

Обзор настройки FTP-сервера под Windows на примере Serv-U 6.4.

1. Что же такое — «FTP»?

Для чего вообще писался этот текст? Уже много раз меня спрашивают начинающие пользователи многих локалок — «как обменяться файлами с соседом»? Ведь соединиться через сетевое окружение, как это было раньше, уже не получается — в локалке запретили протокол NetBIOS, отвечающий за поддержку сетевых возможностей Windows. Кстати, сделано это было не просто так, а из-за того, что этот протокол — одна из наиболее опасных дырок в защите компьютеров, так как именно через эту дырку попадает большая часть вирусной заразы…

Наверняка, многие слышали про FTP, но не все знают, что это не таинственное заклинание древних инков, а английское сокращение, расшифровывающееся как File Transfer Protocol — протокол передачи файлов. Это один из базовых протоколов Интернета, разработанных для обмена информацией. В отличие от HTTP, который служит главным образом для передачи web-текстов и изображений, FTP применяется для обмена произвольными файлами, часто большого размера.

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

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

Немного пояснений:

Для обмена файлами существуют и другие способы — пиринговые клиенты (типа DC++, Emule, Torrent), HTTP, FTP и еще несколько вариантов. Но пиринговые клиенты требуют сложной настройки и содержимое общих ресурсов доступно для скачивания всем.

Доступ к файлам на удаленном компьютере по протоколу FTP осуществляется с помощью программ, которые называются FTP-клиентами (в качестве примитивного FTP-клиента может использоваться www-браузер, например Opera, Firefox или Microsoft Internet Explorer). Практически все современные операционные системы включают также FTP-клиент для работы в командной строке, который так и называется «ftp».
Если у вас есть интернет, то вы можете получить доступ к большому количеству информации, расположенной в различных уголках Сети. Для использования FTP необходим так называемый FTP-клиент, подключающийся к FTP-серверу (сервер, откуда скачиваются данные). Анонимный FTP позволяет подключаться к серверу даже не будучи на нем зарегистрированным (не имея на нем логина и пароля). Как правило, в качестве логина (имени пользователя) указывается anonymous, а в качестве пароля — ваш e-mail. Это делается на больших серверах для того, чтобы каждый мог скачать, к примеру, бесплатный дистрибутив Linux или какие-нибудь другие полезные программы.

Файлы передаются в нескольких режимах — режим ASCII (сокращение от American Standard Code for Information Interchange) используется для передачи преимущественно текстовых файлов (не забывайте, что HTML, по своей сути, тоже текстовый файл). Binary режим, как следует из названия, используется для передачи двоичного кода (проще говоря, используется для нетекстовых файлов, например, картинок).
Когда мы бродим по интернету, открываем сайты, то используем HTTP — этот протокол специально предназначен для загрузки веб-страниц. В то же время HTTP используется и для загрузки файлов. Поэтому у многих пользователей возникает закономерный вопрос — зачем использовать FTP для закачки, если это позволяет делать HTTP? Каждый из этих протоколов задумывался для своих целей. Как мы уже выяснили, FTP был разработан специально для передачи файлов, поэтому этот процесс в нем реализован наиболее эффективно, чем больше размер файла, тем более оправдано использование FTP.

Понятия «клиент» и «сервер» часто встречаются в компьютерной литературе. Сервер — это программа или компьютер, предоставляющий свои ресурсы клиентам. Сервер принимает запросы от клиента и выполняет затребованные действия.
Любой сервер представляет собой программу, службу (в терминах Windows) или демон (daemon, в терминологии Unix). Любая служба принимает запросы от клиентов на том или ином пограммном порте — через этот порт огранизуется установка соединения и передача данных. Например, сервер FTP по умолчанию принимает запросы от клиентов на порте 21.

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

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

ftp://user:password@112.199.28.50:21

где user — это имя пользователя, двоеточие — это разделитель для программы между именем пользователя и паролем, password — это пароль. Собачка означает разделение между данными о пользователе и адресом. Дальше идёт непосредственно адрес. Это может быть IP-адрес, а может быть и буквенное значение (как например, ftp.microsoft.com). После адреса опять идёт двоеточие, которое разделяет адрес и номер порта подключения. По умолчанию этим портом является порт 21, но может быть и другой, назначаемый администратором сервера.
Адрес может выглядеть и так: ftp://212.199.28.50. Это будет означать, что имя пользователя — anonymous, паролем является e-mail адрес, а порт — 21-й.

В качестве клиентской программы удобно использовать следующие программы — Total (Windows) Commander, FAR, FlashFXP, CuteFTP, SmartFTP и даже некоторые менеджеры загрузок, такие как FlashGet и Download Master, у которых FTP клиент встроен в программу.

2. Выбор FTP сервера

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

Поддержка нескольких доменов (IP адресов). Это надо в том случае, если у вас на компьютере есть локальная сеть и интернет. И вы хотите сделать FTP сервер только для локалки или только для интернета. Или для того и другого.

Поддержка нескольких пользователей и их прав. Например, пользователь Вася может качать с вас эротические картинки, а другие не смогут :)

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

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

Возможность наблюдения за действиями подключенного пользователя. Это полезно для ведения статистики, настройки, да и просто интересно, кто чем занимается на вашем сервере :)
В принципе, компания Microsoft начиная с Windows 2000 включает в поставку свой FTP сервер. Но он весьма неудобен как в наладке, так и в работе, и имеет множество ограничений. Перепробовав множество продуктов, я выбрал для себя сервер «Serv-U FTP Server», как наиболее отвечающий поставленным выше условиям. Именно о нем я и буду рассказывать дальше.

Также профессиональным и стабильным считается Gene6 FTP Server. Лично мне еще очень нравится совмещенный HTTP/FTP/Mail/DNS/DHCP бесплатный Small HTTP Server. Он отличается простотой и очень малым количеством занимаемой оперативной памяти (порядка 800 Кбайт!!!).

3. Установка FTP сервера Serv-U

Для примера установки возьмем «Serv-U.FTP.Server.v6.4.0.4.Corporate.Edition», этот архив вы можете найти в конце статьи. Распаковав его, вы получите файл «ServUSetup.exe» — это инсталлятор сервера, и файл «keygen.exe» — генератор лицензионного ключа для программы. Ну или вы не хотите пользоваться нелицензионным софтом, вы можете заплатить за использование программы разработчику :)
Запускаем инсталлятор.
Согласившись с лицензией, говорим, куда надо поставить сервер.
Теперь нас попросят указать нужные компоненты. Для установки серверра нам нужны оба.
Если вы купили программу, теперь можете ее зарегистрировать как описано в руководстве к ней. А для остальных последовательность действий такова: справа внизу, в трее, у вас появится значок: это значит, что сервер пока выключен. Необходимо выйти из этой программы, выбрав Exit и запустить keygen, сгенерировать ключ — он будет автоматически скопирован в буфер обмена.
Установка программы-сервера закончена. Щелкаем правой кнопкой мыши по иконке и выбираем из всплывающего меню «Start Administrator…»

4. Настройка сервера, создание учетных записей

Запустив программу администрирования, мы увидим окно следующего вида:

В Главном меню программы находятся основные управляющие элементы, но подробно мы их изучать не будем, вы сами сможете это сделать потом, прочитав справку к программе. То же самое касается элементов управления и статус-панели. Принцип настройки сервера такой — в дереве настроек мы выбираем нужный раздел и в панели настроек и отчетов видим одну или несколько закладок с настройками и (или) статистикой. Для начала создадим свой FTP сервер. Войдя в раздел «Local server», вы сможете управлять установленным у вас на машине сервером. При входе в раздел в панели настроек появится следующая информация:

Если поставить галочку на пункте «Start automatically», ваш сервер будет стартовать вместе с Windows при каждой загрузке. Далее идет статус сервера (зеленый цвет — работает, красный — выключен). Далее кнопка, включающая/выключающая сервер. И кнопка, задающая главный пароль администратора. Если вы его зададите, никто кроме вас не сможет менять настройки вашего сервера. Здесь и далее я буду описывать только основные ходы для развертывания своего FTP сервера, об остальных дополнительных возможностях вы можете узнать из справки к программе. Для начала проведем настройку глобальных параметров сервера, войдя в раздел «Settings».

В закладке «General» нам интересны пункты:

Max. Upload speed: максимальная скорость загрузки файлов на ваш сервер с клиента
Max. Download speed: максимальная скорость отдачи файлов клиентам (всем вместе — это глобальная настройка)
Max. no. of users: максимальное количество одновременно подключившихся клиентов (также глобальная настройка)
Delete partially uploaded files: если клиент пытался закачать к вам на сервер файл, но не до конца его закачал, надо ли удалять такой незавершенный файл. Если стоит галка — то удалять.
Во всех остальных закладках оставляем настройки по умолчанию.

В разделе «Activity» можно посмотреть отчет о работе программы, добавить IP адрес в список запрещенных IP адресов, или отправить сообщение подключенным клиентам. Углубляться в эти возможности мы не будем, поэтому идем к следующему разделу.

Раздел «Domains» — основной рабочий инструмент администратора. Пока в нем пусто. Правой кнопкой мыши щелкнем на пустой панели настроек и выберем из меню пункт «New Domain» (можно просто нажать клавишу Ins). Появится мастер создания домена. В первом окне вам предложат выбрать IP адрес, по которому будет «жить» ваш FTP сервер. Если оставить поле пустым, сервер будет отвечать по всем адресам (например и в локалке и в интернете). Если сервер делается только для локалки — из выпадающего списка выберите свой IP адрес в локальной сети:

Нажав кнопку «Next», переходим к следующему вопросу — надо ввести имя домена. Если вы делаете интернетовский FTP, можете в качестве названия ввести его адрес, это даст возможность не запутаться при большом количестве доменов. А можете просто ввести название своего FTP, к примеру «Мой FTP сервер»:

Снова «Next», выбираем порт для FTP сервера. Стандартно для FTP используется 21 порт TCP, но если вы хотите спрятать ваш FTP порт от сканеров, можете указать другой, главное, чтобы на нем не сидела другая программа. Также не забудте открыть этот порт в файрволе или брэндмауэре (если он у вас стоит), иначе никто не сможет попасть к вам на FTP сервер! Выбор порта для домена позволяет организовать несколько FTP на разных портах с разным содержимым. Именно для этого и нужны домены.

2 раза нажимаем «Next» и выходим из мастера. Видим вот такой экран глобальных настроек домена:

Элементы в закладке «Domain» означают:

Name: имя домена
Domain IP address: IP адрес домена
Domain type: где храняться настройки домена (в INI файле или в реестре)
Security: поддерживать ли SSL секретность
FTP port number: номер порта сервера
Enable dynamic DNS: используется в интернете при работе службы DynDNS
Domain is.. (online/offline): текущее состояние домена (зеленый — включен, красный — выключен)
Put Domain offline: кнопка выключения домена

Теперь проведем «тонкую настройку» полученного домена. Для этого перейдем в раздел «Settings» нашего домена:

В закладке «General» обращаем внимание на следующие значения:

Max no. of users: максимум клиентов, которые могут одновременно подключится к домену.
Minimum password length: минимальная длина пароля для пользователя. Если не задано — не проверяется

На закладке Vitual Paths указываются виртуальные папки и пути в ним! Папке дается виртуальное имя (Vitual name) которое и будет отображаться у пользователя, вошедшего по ftp, вместо реального. При этом эти папки надо разрешить хотя бы для чтения (Read) в настройках у каждого конкретного пользователя. Как это сделать — читай ниже.
Mapped to — это путь к папке пользователя, к котрой будет присоединяться (монтироваться) виртуальная папка. К ней также у пользователя должен быть доступ.

Еще одна закладка, на которую можно обратить внимание — «Messages»:

Здесь можно заменить стандартные сообщения сервера на свои собственные, к примеру с названием своего FTP или почтовым адресом для связи. Внимание! Сообщения могут быть только на английском языке или написаны транслитом!
Идем в раздел «Users» и создаем нового пользователя также, как создавали до этого домен. Появится мастер создания пользователя. Для начала вас попросят ввести имя пользователя. Под этим именем пользователь будет заходить на ваш FTP. Если FTP открыт для всех, то в качестве имени надо использовать имя anonymous . Для любого другого пользователя у вас попросят ввести пароль, для пользователя anonymous пароль спрашивать не будут. Далее указываем начальный каталог, в котором будет содержимое вашего FTP, видимое для данного пользователя:

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

5. Проверка работы

Запустите свой FTP клиент, выберите создание нового соединения, в параметрах соединения укажите адрес FTP сервера, порт (если он не стандартный) и имя/пароль пользователя (если не указывать, то будет использован пользователь anonymous и в качестве пароля подставится нечто, напоминающее E-Mail адрес (мало кто указывает свой реальный e-mail). Не забудте указать прокси сервер, если вы соединяетесь не на прямую! Теперь попробуйте подключиться к своему FTP серверу. Если все сделано правильно, сервер должен ответить сразу.
Можно также обратиться в своему серверу через браузер в пассивном режиме: ftp://login:password@ваш_ip или просто ftp://localhost.

P.S. Не забудьте, что если вы закрыты от внешнего мира файрволом или роутером, то в них необходимо открыть порт 21 на входящие подключения (в роутере из WAN в LAN с любого ip).

Дистрибутив Serv-U FTP Server v6.4 Corporate Edition с видеоинструкцией можно скачать здесь.

Для хостинга ваших сайтов рекомендую хостинг M-Hosterнадежность, проверенная временем.

[Посещений: 630, из них сегодня: 1]

Свежие посты

Процессы зомби, демоны и сироты в Linux

Процессы и программы Программа в Unix — это последовательность исполняемых инструкций на диске. Вы можете…

12 октября 2024

Изучаем сертификаты, приватные ключи и keystore

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

20 июля 2024

Восстановление доступа к Docker Hub

Все известно, что Докерхаб закрыл доступ для пользователей из санкционных стран, включая РФ и РБ.…

30 мая 2024

Как посмотреть сертификат хоста через командную строку

Зачастую бывает необходимо проверить, а какой SSL сертификат отдает тот или иной хост на определенном…

21 февраля 2024

Использование choco через прокси

Choco - лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси,…

21 февраля 2024

Обзор SSD диска XrayDisk

В России становится все больше малоизвестных китайских товаров, поэтому сегодня у нас на обзоре китайский…

3 декабря 2023