Использование FTP

Хочу установить на своей машине в локальной сети FTP-сервер, но не выбрал программу. Какую именно вы посоветуете и каким образом ее нужно настроить?
Выбор программы
Спрос рождает предложение, поэтому недостатка в программных решениях поставленной задачи нет. После многочасовых поисков, тестирования и отбора был найден победитель - Serv-U от RhinoSoft. Скачать дистрибутив FTP- сервера размером 3,84 Мбайт можно с официального сайта программы - www.serv-u.com. Последняя версия на момент написания материала - 6.0.0.1, поэтому речь будет именно о ней. Перед загрузкой вам придется заполнить несколько полей в форме, указав свою персональную информацию и электронный почтовый адрес. Установка программы не вызывает никаких трудностей, поэтому данный немаловажный процесс мы не будем описывать, а сразу перейдем к настройке. Внешний вид программы представляет собой до боли знакомый Проводник. Рабочая часть поделена на две части и имеет сверху панель инструментов и меню.


Настройка
Если при инсталляции вы не активировали опцию «Запустить сразу после установки», вам нужно зайти в папку программы и запустить два файла - сначала сервис ServUDaemon.exe, а после - утилиту ServUTray.exe. В системном трее, рядом с часами, у вас появится иконка (буква U зеленого цвета). Нажмите на нее и выберите опцию «Start Administrator». Теперь на рабочем столе вы можете видеть главное окно программы. Нажмите на надпись «Local Server». Для того чтобы ваш FTP-сервер автоматически и одновременно запускался с OC Windows, в правой части окна отметьте опцию «Start Automaticaly». йТМУ‚М‡fl ‡ТЪё Миновав подготовительную стадию, приступаем к настройке. Для этого нажмите правой кнопкой мыши на надписи «Domains», и перед вами появится окно. В нем необходимо указать IP-адрес машины (узнать его можно с помощью утилиты ipconfig: «Пуск — Выполнить — ipconfig»). Нажимаем «Next» и идем дальше. Здесь предлагается ввести имя домена. Включайте фантазию, а если ничего не идет в голову - не страшно, не задумываясь, пишите свой IP-адрес и снова нажимайте «Next». Далее по списку идет номер порта, на котором будет находиться FTP-сервер. По умолчанию порт для FTP-сервера - 21. Оставьте это значение и снова нажимайте «Next». Таким образом, мы плавно пришли к последнему заданию, а именно к выбору файла, куда будут сохраняться все настройки. Оставляем предложенный «Store in .INI file» и жмем на кнопку «Finish». Как видите, все совсем несложно.


Заводим пользователей

FTP-сервер запущен, но без посетителей он не представляет никакой пользы. Для того чтобы создать учетную запись пользователя, вам нужно нажать на «Domains» и в появившемся списке найти опцию «Users». Нажимаем правой кнопкой мыши на «Users», выбираем «New User», и перед нами схожая процедура. В первом окне нам предлагают вписать логин для пользователя. Набираем «Anonymous» и жмем «Next». Далее выбор пароля: можно оставить как «пустой» пароль, так и определить сложную для подбора bruteforce комбинацию букв и цифр - выбор за вами. Шаг третий - определяем домашнюю директорию для пользователя. Теперь важно не упустить из виду четвертый шаг. На этом этапе программа спрашивает: «Закрыть пользователя в домашней директории?» Если вы ответите утвердительно, пользователь не сможет подняться выше указанной директории. Жмем «Finish», и теперь дело осталось за раскруткой только что созданного FTP-сервера.

(shareware). Кроме того, есть несколько более простые Cerberus (free), а также любопытный русскоязычный проект ST FTP-Service (free). Ниже будет кратко рассмотрен процесс настройки некоторых из этих программ.

GuildFTPd 0.999.5

Мощный сервер, легко настраиваемый, с удобным интерфейсом и прекрасной реализацией виртуальной файловой системы (ВФС).

Установка и главное окно

Установка программы тривиальна. Вы установили программу на Ваш компьютер, запустили, и с интересом смотрите на главное окно программы:

Настройка программы.

1. Настройка основных параметров сервера (номер порта, максимальное количество коннектов, количество коннектов с каждого ip и др) осуществляется в правом нижнем окне. Если Вы это сделаете для группы System, то все группы нижнего уровня эти настройки унаследуют. Для любой выбранной Вами группы эти настройки по умолчанию можно перекрыть. В частности, я иногда использовал для разных имен пользователей разные номера портов.

2. Пункт меню Admin -> Options -> Server: впишите имя Вашего сервера, и несколько уменьшите детализацию сообщений сервера (передвинув бегунок “Log Level” влево), иначе файлы журнала быстро наберут сотни мегабайт:

3. Настройка доступа к серверу. Структура иерархии пользователей в GuildFTPd такова, что любой пользователь должен быть отнесен к какой-либо группе. При этом у Вас есть два основных пути:

  • построение фтп на основе личных логинов;
  • построение сервера на основе прямого входа в нужную директорию.

3.1. Построение фтп на основе личных логинов.

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

Алгоритм очень простой:

а) создаете группу, скажем, Team, и сразу сделайте общий для группы корневой каталог (root):

Ясно, что он уже должен существовать на диске. Обратите внимание - виртуальное выбранного каталога «\». Затем назначим соответствующие права. Получаем следующее:

Сравните между собой две последние картинки, и у Вас не останется вопросов.

Кроме того, существуют общепринятые соглашения по именам каталогов, находящихся в корневом, в частности: \pub - здесь лежат данные, доступные для публичного (анонимного) скачивания; \upload - сюда будут заливать для Вас; \incoming и некоторые другие. Я думаю, что для частного сервера этим соглашениям следовать необязательно.

б) начинаете набивать группу пользователями (Admin -> Add User):

в) создаете ВФС для каждого (см. а)):

И получаете:

Примечание. Вы можете открыть доступ ко всему диску, скажем, таким образом:

Физическая директория K:\FTP является для Вас корневой, а физические диски - каталогами. Тогда в ftp-клиенте Вы увидите следующее:

Файл picture1.jpg как раз находится в каталоге K:\FTP, и Вы сможете его увидеть еще раз, если в этот каталог пойдете по физическому пути.

3.2. Построение сервера на основе прямого входа в нужную директорию.

Здесь Вам не надо создавать множество логинов. Вы создаете один (а то и вовсе используете анонимный вход, для чего вводите имя anonymous , а поля паролей оставляете пустыми), но в правах root-директории снимаете флажок с пункта “list”. А потом просто добавляете туда директории. Не зная полного имени в каталог не попасть.

На этом Ваш сервер готов к работе, для его запуска/выключения нажмите кнопку “on”, или выберите меню Admin -> Allow Logins.

4. Дополнительно. Настройка сообщений сервера: Admin -> Server Messages

5. Дополнительно. Установка плагинов. Рекомендую установить плагин для просмотра статистики (на сайте авторов):

6. Дополнительно. Запрещение доступа на сервер: View -> View Ban List . Чтобы избавиться от назойливого пользователя, внесите его адрес в бан-лист.

Настройка программы Serv-U FTP Server 6.4.

1. После запуска мастера установки появится ряд окон, в которых просто кликайте по кнопке «Next » (Далее):

2. После окончания подготовительных действий начнётся процесс установки, дождитесь его завершения:

3. После окончания процесса установки в появившемся окне нажмите «Close » (Закрыть), а в следующем окне — «Finish » (Закончить):

4. Через некоторое время на экране появится окно детальной настройки FTP-сервера. Нажмите кнопку «Next » (Далее):

5. Окно включения маленьких изображений в программе администрирования сервера. Выберите «Yes » (Да) и нажмите «Next » (Далее):

6. В следующем диалоге нажмите «Next » (Далее) для запуска сервера и подсоединению к нему:

7. Для нормального функционирования сервера в следующем диалоге в поле «IP address » (IP адрес) введите IP адрес своего компьютера в сети (например, 192.168.0.123). Если вы не знаете своего адреса, обратитесь к администрации сети за помощью:

8. В следующем диалоге оставьте всё как есть и нажмите кнопку «Next » (Далее):

9. В следующем окне происходит выбор, должен ли FTP-сервер запускаться сразу же после включения компьютера, или нет. Выберите «Yes » (Да) и нажмите кнопку «Next » (Далее):

10. Хотите ли вы разрешить анонимный доступ к своему серверу? Для того, чтобы все желающие могли свободно получать доступ к файлам, которые вы разместите на сервере, нужно в новом диалоге выбрать «Yes » (Да) и нажать на кнопку «Next » (Далее):

11. Указываем домашнюю директорию (папку) для сервера. Все, кто будут заходить к вам на сервер, попадут сразу же в неё.

Нажмите на кнопку, отмеченную на рисунке красным квадратом:

В появившемся окне обзора папок выберите нужную и нажмите «ОК »:

Следовательно, посетители, зайдя на ваш FTP-сервер, увидят что у вас находится в выбранной ранее папке. Нажмите кнопку «Next » (Далее):

12. Не разрешим посетителям выходить за пределы домашней папки (ради безопасности вашего компьютера). Выбираем «Yes » (Да) и нажимаем кнопку «Next » (Далее):

13. В следующем диалоге откажитесь от создания именованного аккаунта. Выберите «No » (Нет) и нажмите кнопку «Next » (Далее):

14. В новом диалоге нажмите кнопку «Finish » (Закончить), после чего подождите несколько секунд, пока изменения вступят в силу:

15. После всего перед вами откроется окно администрирования сервера. В колонке слева выберите подпункт «Settings » (Настройки) пункта « » меню «Serv-U Servers », а справа — закладку «General » (Основные), как показано на рисунке ниже. Для удобства все эти действия обычно обозначают так:

Serv-U Servers → → Settings → закладка General.

В этом окне выполните настройки, которые выделены на рисунке красным и нажмите кнопку «Apply » (Применить) снизу:

Serv-U Servers → → Settings → закладка Advanced.

Заполните поле «PASV port range » (Диапазон адресов PASV) как выделено на рисунке красным, и нажмите кнопку «Apply » (Применить) снизу:

17. Перейдите в расширенные настройки вашего домена:

Serv-U Servers → → Domains → Wizard Generated Domain → Settings → закладка Advanced.

Поставьте галочку у «Allow passive mode data transfers, use IP » (Разрешить пассивный режим передачи, использовать IP) и введите свой IP адрес в сети (такой же, который вы вводили несколькими пунктами ранее). Нажмите кнопку «Apply » (Применить) снизу:

18. Перейдите в настройки пользователей вашего домена:

Serv-U Servers → → Domains → Wizard Generated Domain → Users → Anonymous → закладка General.

Поставьте галочку и заполните поле, как показано на рисунке. Потом нажмите кнопку «Apply » (Применить) снизу:

19. Настройка завершена!

Перейдя в Serv-U Servers → → Activity можно просмотреть пользователей, подсоединенных к вашему серверу в данный момент.

Serv-U - самый мощный и многофункциональный FTP-сервер.
Большинство FTP-сайтов известнейших фирм работают именно на нем. Старайтесь не использовать старые версии, так как в них существуют уязвимости.

Serv-U состоит из двух частей - Serv-U Administrator для настройки и управления FTP-сервером, и собственно FTP-сервера. Serv-U Administrator может быть установлен и на другом компьютере, через него можно удаленно управлять FTP-сервером Serv-U. Для управления служба FTP-сервера использует TCP-порт 43958. Поэтому, во избежание взлома, установите на управление пароль (в меню "Set/Change Password"), желательно длинный. Опция "Start automatically (system service)" позволяет автоматически запускать FTP-сервер, причем он будет работать независимо от того, кто на компьютере залогинен. В ином случае FTP-сервер будет запускаться только когда вы запустите Serv-U Administrator.

Теперь настраиваем брандмауэр. Нам необходимо разрешить входящие и исходящие соединения по TCP-протоколу для процессов Servuadmin.exe и Servudaemon.exe.

Следуем дальше по дереву настроек Serv-U Administrator, в "Settings -> General". Тут есть смысл включить как минимум три важные опции. "Block FTP_bounce attacks and FXP" - это защита от передачи трафика между двумя FTP-серверами (клиент злоумышленника может установить сеанс от имени другого сервера, запустить перекачку и уйти, а вы будете впустую забивать место на диске и терять купленный лимит трафика). "Block users who connect more than ..." - защита от попыток подбора пароля какого-либо FTP-аккаунта. "Block anti time-out schemes" - защита от попыток обойти лимиты времени сессии, данные тому или иному аккаунту. Также тут можно ограничить общую скорость приема (upload), отдачи (download) и количество одновременно обслуживаемых пользователей (это глобальная настройка, далее мы сможем такие лимиты создать отдельно для разных аккаунтов).

Теперь создаем сервер. Для этого проходим по дереву настроек в "Domains", нажимаем правую кнопку мыши и выбираем во всплывающем "New Domain". В окне настроек поле "Domain IP Address" оставляем пустым, "Domain name" - указываем какое-нибудь имя, например "FtpName" (оно необходимо только нам), "Domain port number" - это порт, на котором будет отвечать FTP-сервер, пока укажем стандартное значение - 21. "Domain type" указывает где будут храниться настройки сервера, лучше их хранить в INI-файлах.

Теперь сервер создан (по-английски - "Domain"). Можно организовать несколько серверов (в этой ветке дерева настроек), на разных портах, только смысла для обычных пользователей в этом нету.

В дереве настроек в разделе "Domains -> FtpName" включаем поддержку шифрования "Security -> Allow SSL/TLS ans regular sessions". Сейчас немного отвлечемся от самого сервера и разберемся с портами и IP.

Во-первых, серверу необходимо знать свой внешний (интернетовский) IP-адрес. Если адрес статический, то все просто - вписываем его в "Domain IP address". А вот если IP-адрес динамический (как, например, в "Стрим"), то придется воспользоваться службами DynamicDNS, где вам присвоят доменное имя, которое будет указывать на ваш IP, постоянно отслеживать и обновлять его изменения.

В частности, такая бесплатная услуга есть на No-IP.com, там вы можете создать своему компьютеру какой-нибудь домен 3 уровня в интернете, например, mycomputer.no-ip.com. Там же можно скачать клиент No-IP dynamic update client, который будет постоянно связываться с No-IP.com и проверять/обновлять ваш IP-адрес. О настройках этого клиента рассказывать не буду, но могу посоветовать его настройки не менять, кроме параметра "When updating via NAT/Router/Proxy address ONLY" - его лучше выставить на "every 5 minutes". Итак, поставив клиент и зарегистрировавшись на No-IP.com, ставим в настройках нашего FTP галку на "Enable dynamic DNS" и переходим на появившуюся вкладку "Dynamic DNS". Там прописываем адрес, зарегистрированный в No-IP.com.

Во-вторых, настала пора разобраться с портами. Многие провайдеры блокируют входящие соединения на 21-ом порту. Чтобы эту проблему обойти, следует выбрать любой другой незанятый порт, например 32768, и вписать его на вкладке "Domain в FTP port number". Но запомните, что если порт отличен от 21, то клиентам вы должны давать ссылку не ftp://mycomputer.no-ip.com, а ftp://mycomputer.no-ip.com:32768.

Вероятно, ваш FTP-сервер находится за NAT. В таком случае на NAT надо настроить функцию "Port Forwarding". Во-первых, для порта на котором он отвечает. Во-вторых, для клиентов работающих в режиме "PASV", необходимы еще какие-то порты, на которые они будут коннектиться. Именно для этого в Serv-U есть соответствующая настройка "Local Server -> Settings -> Advanced -> PASV port range", в которой указываем некий незанятый диапазон, например 32769-32784 и форвардим его на NAT.

Настраиваем дальше. В меню "Domains -> FtpName(наш сервер) -> Settings" на вкладке "Logging" включаем режим ведения лог-файла для system messages, security messages, files downloads, file uploads, IP names, FTP commands, FTP replies - все это не сильно увеличит лог, но поможет локализовать проблемы. Указываем название лог-файла и включаем галку "Enable logging to file". На других вкладках ничего настраивать не нужно - по умолчанию там все подходит для большинства пользователей.

Теперь будем создавать пользователя. Для начала - гостя. Сначала надо создать на диске папку, которая будет корневой директорией нашего FTP. Например, создадим C:\FTP_Root. Далее необходимо создать папку, в которую все смогут заливать файлы (скачивать мы им [гостям] оттуда не дадим), например, сделаем C:\FTP_Root\Incoming.

В Serv-U есть система шаблонов (Groups). Там можно указать права доступа для созданных директорий. Проще создать группу с правом чтения корневой папки и записи в.\incoming, а затем не прописывать всем пользователям такие же права, а добавлять им этот шаблон. Итак, идем по дереву настроек в "Domains -> FtpName -> Groups" и создаем там новую группу (New Group), называем ее, например, guest. Проходим на вкладку "Dir Access", и добавляем там два наших каталога - C:\FTP_Root и C:\FTP_Root\Incoming.

Даем на них права доступа. Для FTP_Root - только Read и List, для Incoming - только Write-Create-Inherit. Такие права обозначают: Read - чтение файлов, Write - запись файлов, Append - дозапись файлов, Delete - удаление файлов, Execute - запуск выполняемых файлов на серверной машине (очень опасное право, не давайте его никому), List - показ списка подкаталогов, Create - создание подкаталога, Remove - удаление подкаталога, Inherit - все подкаталоги будет иметь аналогичные права (иначе, к ним никаких прав и доступа не будет, если только они не прописаны самостоятельно). Строчки каталогов можно перемещать вверх-вниз. При использовании наследования (Inherit), это актуально - верхняя строчка имеет высший приоритет разрешения.

Итак, теперь создаем гостевого пользователя. Идем в "Domains -> FtpName -> Users" и создаем пользователя "Anonymous" (это стандартное имя гостя, иначе это будет не гость). В качестве начальной директории (Home Directory) указываем C:\FTP_Root. На вопрос "Lock user in home directory?" отвечаем "Yes" - это упростит работу пользователя.

Теперь - важный пункт - в настройках этого пользователя (Anonymous) проходим на вкладку "Dir Access" и удаляем там автоматически созданную строчку в FTP_Root (обратите внимание, что она наследует права чтения в Incoming). Теперь на вкладке "Account" добавляем в Group(s) группу guest, нажимаем "Apply". Возвращаемся обратно в "Dir Access" и смотрим. Тут появились FTP_Root и Incoming, причем редактировать их нельзя - это пользователь получил те самые права для гостей из шаблона "guest".

Итак, гостя мы создали. Он может скачивать любые файлы из каталога C:\FTP_Root (исключая подкаталоги) и закачать какой-нибудь файл в C:\FTP_Root\Incoming, но скачать его оттуда он не сможет (таким образом, ваш сервер невозможно будет использовать для несанкционированной транзитной пересылки файлов).

Теперь создаем какого-нибудь более полномочного пользователя. Для экономии времени скопируем "Anonymous" и переименуем. Поднимаемся по дереву настроек в "Users", выбираем (не раскрываем) "Anonymous" и делаем в контекстном меню "Copy User".

Переименовываем его (например, в Ivanov) и задаем пароль. Обратите внимание, вы сами не сможете посмотреть какой у него пароль, потому запомните его или сразу сообщите пароль этому пользователю.

Теперь идем на вкладку "Dir Access". Обратите внимание, что так как он входит в группу "guest", корневой каталог и incoming у него уже прописаны. Пусть этот пользователь сможет качать, к примеру, нашу музыку. Для этого добавляем путь к музыкальным файлам и даем права Read-List-Inherit (пользователь сможет скачивать любые файлы и подкаталоги).

Однако, если пользователь сейчас подключится, то он не увидит никакого каталога с музыкой, а увидит только FTP_Root. Поэтому нужно сделать на него ссылку из FTP_Root, причем не средствами Windows, а средствами самого Serv-U. Идем по дереву настроек в "Domains -> FtpName -> Settings" на вкладку "General, Virtual path mapping".

Нужно сделать так, чтобы папка музыкой (например, c:\Doc\Music) показывалась в c:\FTP_Root как будто она подкаталог FTP_Root. Нажимаем "Add" и заполняем: "Physical path" - каталог, к которому надо сделать ссылку, пишем c:\Doc\Music, "Mapped to" - каталог, в котором эту ссылку надо поместить - у нас это всегда будет C:\FTP_Root, "Vitual name" - имя этого виртуального подкаталога в FTP_Root, например, Music. Готово.

В "Virtual path mapping" вы можете разместить какие угодно ссылки, но увидят их только те кто в "Dir Access" имеет соответствующие права. Например, в нашем случае, гость не увидит каталога Music.

Чтобы Ivanov при скачивании музыки не занимал особо сильно наш сетевой канал, идем на вкладку "General" его аккаунта и указываем "Max download speed".

Кстати, расскажу ещё, как нашему пользователю Ivanov входить на FTP. Просто набрав ftp://mycomputer.no-ip.com, он войдёт как гость, а не как Ivanov.
Чтобы войти под своей учётной записью, Ivanov должен будет воспользоваться одним из нижепереведённых способов:

  • Вставить логин и пароль непосредственно в адрес ftp://Ivanov:[email protected] om - браузер (FTP-клиент) это поймет и использует.

  • Находясь в Internet Explorer, нажать правую кнопку мыши и выбрать из контекстного меню пнкт "Войти как"

  • Изучить настройки FTP-клиента (типа FileZilla) и найти, где в нем при подключении указывается имя и пароль для не гостевого входа.

Теперь создадим еще одного пользователя, который будет иметь доступ к каким-либо секретным документам, и потому нельзя допустить взлома его аккаунта. Копируем его из Anonymous, и называем, например, Petrov. Идем на вкладку "General" его аккаунта. Тут есть два интересных с точки зрения безопасности пункта.

Во-первых, Password type. Если указать "OTP S/KEY MD5", то пароль злоумышленники не перехватят. Если указать "Regular password", то это будет стандартная процедура обмена паролями и его могут перехватить. Пользователь выбрать режим паролей не может, это надо сделать на сервере.

Во-вторых, Require secure connection. Password type обеспечивает только защиту пароля, но не пересылаемых данных. Установка шифрованного соединения обеспечивает и защиту данных, и защиту пароля. Причем, если галку на "Require secure connection" не ставить, то шифрованное соединение пользователь может сам по желанию выбрать, а если галка стоит, то пользователь будет обязан использовать шифрованное соединения, иначе его не пустят. Кстати, большинство клиентов не поддерживают при шифровании OTP-пароли - ибо это избыточно, потому Password type сделайте "Regular password" если для этого аккаунта могут быть шифрованные соединения.

Напомню, что штатные FTP-клиенты Windows ни OTP-пароли, ни шифрование не поддерживают - для применения этих мер защиты пользователям надо использовать, например, CuteFTP.

Когда все настроено, очевидно, вам захочется самим поглядеть как это все работает. Это возможно, и идти к другому компьютеру вовсе необязательно (кроме, разве что, проверки настроек брандмауэра или NAT). Используя для этого локальный адрес (127.0.0.1), набираем в браузере или FTP-клиенте адрес ftp://127.0.0.1 (если порт по умолчанию 21), или ftp://127.0.0.1:32768 (если порт нестандартный, например, 32768). Готово. Вы можете абсолютно полноценно таким образом испытывать все возможности своего сервера. Однако учтите, что в пассивном режиме (PASV), если ваш FTP-сервер за NAT, то для обмена данными сервер укажет клиенту внешний IP, и соединение будет невозможно. Потому для проверки используйте обычный PORT-режим в FTP-клиентах.

P.S. Кстати, если что непонятно, то у Serv-U есть отличная контекстная справочная система, вызываемая нажатием клавиши "F1".

2,5мб
2. запускаем установку и устанавливаем

3. запускаем программу администрирования Serv-U Administrator

И следуем с мастером настройки шаг за шагом:

  • отвечаем YES на опцию показа картинок в меню, нажимаем NEXT
  • нажимаем NEXT для запуска сервера
  • ждем несколько секунд пока не стартует служба и вводим свой локальный IP (необязательно, но желательно), например 192.168.1.2 , нажимаем NEXT
  • вводим имя нашего домена (можно ввести все что угодно), нажимаем NEXT
  • отвечаем YES для запуска сервера в качестве системной службы, нажимаем NEXT
  • Отвечаем положительно что мы хотим создать АНОНИМНОГО пользователя, нажимаем NEXT
  • Указываем папку на диске, которая будет являться самой «верхней» для нашего анонимного пользователя, нажимаем NEXT
  • Отвечаем положительно на вопрос что мы хотим блокировать пользователя только в родительской папке, нажимаем NEXT
  • Создаем пользователя с именем (опционально, потом можно их добавить еще хоть 100 штук), для которого можно определить другие права, такие как скорость скачивания, другую родительскую папку, даже другой доступ по ip-адресам, права на запись и создание папок на сервере и т.п., нажимаем NEXT
  • Вводим имя создаваемого пользователя, нажимаем NEXT
  • Создаем для него пароль, нажимаем NEXT
  • Указываем для него родительскую папку, можно туже самую что и для анонимного пользователя, нажимаем NEXT
  • На вопрос о блокировании пользователя только в домашней папке отвечаем по своему усмотрению, нажимаем NEXT
  • Указываем есть ли у пользователя какие либо админские привелегии (лучше не надо), нажимаем NEXT
  • Процесс основной настройки закончен. Нажимаем FINISH.

    После завершения работы мастера запустится главное окно программы администрирования.

  • Заходим в главные настройки созданного пользователя, например anonymous’а. расставляем галочки. В данном примере мы прячем с глаз скрытые файлы в папках и говорим что разрешено не более 2х подключений с одного IP. Также указываем максимальную скорость скачивания и закачивания на сервер. В нашем примере разрешено качать с сервера максимум на скорости 50кбайт/с и максимальное число пользователей которое может подключиться с этим именем равно 5ти
  • На закладке GENERAL в подменю SETTINGS нашего домена (не пользователя)
    указываем диапазон РАЗРЕШЕННЫХ посетителей с адресов по маскам, чтобы все внешние подключения были закрыты!

    в данном примере указан диапазон всех адресов пользователей webstream, которым надо естественно разрешить заходить:

    87.103.240.0-87.103.255.255 90.189.128.0-90.189.255.255 193.16.106.0-193.16.106.255 213.228.64.0-213.228.95.255 213.228.96.0-213.228.103.255 213.228.112.0-213.228.119.255 217.70.96.0-217.70.127.255

    И запрещенных по маске *.*.*.*

    ВАЖНО указывать «запрещенный» диапазон после списка всех разрешенных, иначе доступ заблокируется ко всем

    Просто вводим любой шаблон адресов, предварительно выбрав сверху режим ALLOW = РАЗРЕШИТЬ либо DENY = ЗАПРЕТИТЬ и жмем кнопку ADD

  • Далее заходим в SETTINGS еще выше – в настройки LOCAL SERVER
    И указываем там такие вот «галочки», из описания с сайта nnm.ru

    Следуем дальше по дереву настроек Serv-U Administrator, в "Settings ->

  • После этого переходим на закладку ADVANCED и указываем то что ниже на картинке, не забываем указать порты для PASV режима
    Вероятно, ваш FTP-сервер находится за NAT. В таком случае на NAT надо настроить функцию "Port Forwarding". Во-первых, для порта на котором он отвечает. Во-вторых, как я уже описывал ранее, для клиентов работающих в режиме "PASV", необходимы еще какие-то порты, на которые они будут коннектиться. Именно для этого в Serv-U есть соответствующая настройка "Local Server -> Settings -> Advanced -> PASV port range", в которой указываем некий незанятый диапазон, например 32769-32784 и форвардим его на NAT.
  • Также очень вероятно что вы не хотите кидать все выкладываемые файлы/папки в одну специально выделенную папку.
    Для того чтобы на сервере ваши папки разбросанные по всему диску/дискам выглядели так словно они все находятся в одной используем ВИРТУАЛЬНЫЕ папки!

    Для этого заходим в меню SETTING нашего DOMAIN(домена) на закладку VIRTUAL PATHS и жмем в верхней части окна кнопку ADD, запустится мастер настройки папки

  • На 1 шаге мы указываем физическое местоположение нашей папки в компьютере
  • Далее мы указываем куда наша папка должна «поместиться»
  • Далее мы придумываем имя для нашей виртуальной папки, например MY_MUSIC
  • Жмем FINISH и переходим к настройкам пользователя, чтобы дать ему права доступа на эту папку, иначе он увидит просто пустую папку или вообще ее не увидит.
    Для этого щелкаем по выбранному пользователю и переходим на закладку DIR ACCESS. Жмем ADD и снова указываем путь к ФИЗИЧЕСКОЙ ПАПКЕ НА ДИСКЕ, которая станет у нас виртуальной! Расставляем галочки вроде чтения/записи (включать запись категорически не рекомендуется, лучше для этого выбрать отдельную пустую папку и доступ по паролю, а то удалят вам еще или вирусов напустят, тем более что входящий трафик все не бесплатен и накачают вам гигабайтов 10 мусора легко, если вы не ограничите размер)
  • После всех этих процедур заходим в настройки модема и настраиваем проброс портов (port forwarding).
    Ниже приведены ссылки на настройки с картинками для некоторых модемов, если вашего модема нет в списке, то на тот же сайте находим свой модем или похожий и делаем аналогично.

    Нам нужно пробросить порт 21 до своего компьютера, на котором запущен сервер SERV-U. Если мы в SERV-U задали другой порт (к примеру 7130), то при пробросе указываем что при обращении по внешнему порту 21 нужно переходить на 7130 внутренний. Serv-U также требует пробросить диапазон портов TCP и UDP 50000-50004.

  • Не забываем также про файрвол на вашем компьютере. Нужно разрешить для приложения ServUDaemon.exe общение с Интернетом для всех вышеназванных портов
    TCP 21 (или другой указанный в программе)

    TCP и UDP диапазоны 50000 – 50004 и 32769 – 32784

    В принципе этого уже достаточно для работы, но кому интересно ниже приведена более подробная инструкция с сайта http://nnm.ru
    Устанавливаем и настраиваем FTP-сервер.

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

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

    Часть 1
    По мере повышения доступности интернета и локальных сетей у многих пользователей возникает желание или необходимость обмениваться файлами с другими людьми. В принципе, это можно сделать и с помощью "общего доступа", используя встроенные возможности операционной системы. Однако через интернет это опасно и требует установки VPN, а в локальной сети - не позволяет лимитировать скорость скачивания и ваш компьютер может быть почти парализован при активной скачке больших файлов. Чтобы избежать всех этих проблем следует поставить FTP-сервер, который позволит гибко управлять объемами трафика, централизовано манипулировать списками доступных файлов и пользователей, а также использовать для скачивания файлов программы с докачкой после обрыва (например, ReGet)
    Чтобы дальше были понятны некоторые настройки, рассмотрим, что же из себя представляет алгоритм работы FTP.

    Протокол FTP (File Transport Protocol), созданный специально для передачи файлов, работает по двум портам. Клиент коннектится к серверу (по умолчанию на 21-й порт) и передает ему команды, а для передачи файлов сервер коннектится к клиенту, и уже по этому каналу передаются файлы. Такой режим (сервер коннектится к клиенту) называется "PORT", и его невозможно использовать пользователям выходящим в интернет через NAT, поэтому был придуман режим, где для передачи файлов клиент сам устанавливает второе соединение - это называется "PASV" или "пассивный FTP-протокол".

    Microsoft Internet Explorer только начиная с версии 5.5 научился работать в PASV-режиме (соответствующую опцию можно включить в его параметрах). Однако режим "PORT" сдаваться не стал - в продвинутых FTP-клиентах (как, например, GuteFTP , FTP-Voyager , и даже Total Commander) можно указать диапазон портов для PORT-режима, которые форвардить на NAT к вашей машине и эти клиенты будут просить сервер коннектится именно на эти порты.

    Есть два варианта передачи данных - Binary и ASCII. В режиме "Binary" данные передаются любые, но немного медленнее; в режиме "ASCII" могут передаваться только текстовые файлы. Режим передачи выбирается клиентом, и обычно автоматически устанавливается ASCII-режим для TXT-, HTML-, INI-файлов и прочих явно текстовых. Лучше всегда и для всех файлов использовать режим "Binary".

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

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

    Во-вторых, возможно шифрование всего FTP-трафика (FTP SSL/TLS). Это не позволит злоумышленникам получить все те файлы, которые вы передавали. Однако отмечу, что стандартные клиенты, изначально присутствующие в Windows (Internet Explorer и ftp.exe), никаких этих методов защиты от перехвата не имеют, поэтому пользователи вашего FTP-сервера должны будут использовать альтернативные FTP-клиенты - CuteFTP или FTP-Voyager.

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

    Часть 2
    Итак, после короткого знакомства с FTP-протоколом в первой части нашего материала мы незамедлительно приступаем к установке и настройке собственного FTP-сервера. Сразу отметим, что в Windows 2000/XP имеется встроенный FTP-сервер (Панель управления -> Установка и удаление программ -> Установка компонентов Windows -> Internet Information Services -> Служба FTP). Однако, он очень примитивен, неудобен, и небезопасен - поэтому его мы ставить не будем.

    А ставить мы будем самый мощный и многофункциональный FTP-сервер Serv-U - большинство FTP-сайтов известнейших фирм работают именно на нем. Старайтесь не использовать старые версии, так как в них существуют уязвимости.

    Serv-U состоит из двух частей - Serv-U Administrator для настройки и управления FTP-сервером, и собственно FTP-сервера. Serv-U Administrator может быть установлен и на другом компьютере, через него можно удаленно управлять FTP-сервером Serv-U. Для управления служба FTP-сервера использует TCP-порт 43958. Поэтому, во избежание взлома, установите на управление пароль (в меню "Set/Change Password"), желательно длинный. Опция "Start automatically (system service)" позволяет автоматически запускать FTP-сервер, причем он будет работать независимо от того, кто на компьютере залогинен. В ином случае FTP-сервер будет запускаться только когда вы запустите Serv-U Administrator.

    Теперь настраиваем брандмауэр. Нам необходимо разрешить входящие и исходящие соединения по TCP-протоколу для процессов Servuadmin.exe и Servudaemon.exe.

    Следуем дальше по дереву настроек Serv-U Administrator, в "Settings -> General". Тут есть смысл включить как минимум три важные опции. "Block FTP_bounce attacks and FXP" - это защита от передачи трафика между двумя FTP-серверами (клиент злоумышленника может установить сеанс от имени другого сервера, запустить перекачку и уйти, а вы будете впустую забивать место на диске и терять купленный лимит трафика). "Block users who connect more than ..." - защита от попыток подбора пароля какого-либо FTP-аккаунта. "Block anti time-out schemes" - защита от попыток обойти лимиты времени сессии, данные тому или иному аккаунту. Также тут можно ограничить общую скорость приема (upload), отдачи (download) и количество одновременно обслуживаемых пользователей (это глобальная настройка, далее мы сможем такие лимиты создать отдельно для разных аккаунтов).

    Теперь создаем сервер. Для этого проходим по дереву настроек в "Domains", нажимаем правую кнопку мыши и выбираем во всплывающем "New Domain". В окне настроек поле "Domain IP Address" оставляем пустым, "Domain name" - указываем какое-нибудь имя, например "FtpName" (оно необходимо только нам), "Domain port number" - это порт, на котором будет отвечать FTP-сервер, пока укажем стандартное значение - 21. "Domain type" указывает где будут храниться настройки сервера, лучше их хранить в INI-файлах.

    Теперь сервер создан (по-английски - "Domain"). Можно организовать несколько серверов (в этой ветке дерева настроек), на разных портах, только смысла для обычных пользователей в этом нету.

    В дереве настроек в разделе "Domains -> FtpName" включаем поддержку шифрования "Security -> Allow SSL/TLS ans regular sessions". Сейчас немного отвлечемся от самого сервера и разберемся с портами и IP.

    Во-первых, серверу необходимо знать свой внешний (интернетовский) IP-адрес. Если адрес статический, то все просто - вписываем его в "Domain IP address". А вот если IP-адрес динамический (как, например, в "Стрим"), то придется воспользоваться службами DynamicDNS, где вам присвоят доменное имя, которое будет указывать на ваш IP, постоянно отслеживать и обновлять его изменения.

    В частности, такая бесплатная услуга есть на NO-IP.com , там вы можете создать своему компьютеру какой-нибудь домен 3 уровня в интернете, например, mycomputer.no-ip.com. Там же можно скачать клиент No-IP dynamic update client, который будет постоянно связываться с No-IP.com и проверять/обновлять ваш IP-адрес. О настройках этого клиента рассказывать не буду, но могу посоветовать его настройки не менять, кроме параметра "When updating via NAT/Router/Proxy address ONLY" - его лучше выставить на "every 5 minutes". Итак, поставив клиент и зарегистрировавшись на No-IP.com, ставим в настройках нашего FTP галку на "Enable dynamic DNS" и переходим на появившуюся вкладку "Dynamic DNS". Там прописываем адрес, зарегистрированный в No-IP.com.

    Во-вторых, настала пора разобраться с портами. Многие провайдеры блокируют входящие соединения на 21-ом порту. Чтобы эту проблему обойти, следует выбрать любой другой незанятый порт, например 32768, и вписать его на вкладке "Domain в FTP port number". Но запомните, что если порт отличен от 21, то клиентам вы должны давать ссылку не ftp://mycomputer.no-ip.com, а ftp://mycomputer.no-ip.com:32768.

    Вероятно, ваш FTP-сервер находится за NAT. В таком случае на NAT надо настроить функцию "Port Forwarding". Во-первых, для порта на котором он отвечает. Во-вторых, как я уже описывал ранее, для клиентов работающих в режиме "PASV", необходимы еще какие-то порты, на которые они будут коннектиться. Именно для этого в Serv-U есть соответствующая настройка "Local Server -> Settings -> Advanced -> PASV port range", в которой указываем некий незанятый диапазон, например 32769-32784 и форвардим его на NAT.

    Настраиваем дальше. В меню "Domains -> FtpName(наш сервер) -> Settings" на вкладке "Logging" включаем режим ведения лог-файла для system messages, security messages, files downloads, file uploads, IP names, FTP commands, FTP replies - все это не сильно увеличит лог, но поможет локализовать проблемы. Указываем название лог-файла и включаем галку "Enable logging to file". На других вкладках ничего настраивать не нужно - по умолчанию там все подходит для большинства пользователей.

    Теперь будем создавать пользователя. Для начала - гостя. Сначала надо создать на диске папку, которая будет корневой директорией нашего FTP. Например, создадим C:FTP_Root. Далее необходимо создать папку, в которую все смогут заливать файлы (скачивать мы им [гостям] оттуда не дадим), например, сделаем C:FTP_RootIncoming.

    В Serv-U есть система шаблонов (Groups). Там можно указать права доступа для созданных директорий. Проще создать группу с правом чтения корневой папки и записи в.incoming, а затем не прописывать всем пользователям такие же права, а добавлять им этот шаблон. Итак, идем по дереву настроек в "Domains -> FtpName -> Groups" и создаем там новую группу (New Group), называем ее, например, guest. Проходим на вкладку "Dir Access", и добавляем там два наших каталога - C:FTP_Root и C:FTP_RootIncoming.

    Даем на них права доступа. Для FTP_Root - только Read и List, для Incoming - только Write-Create-Inherit. Такие права обозначают: Read - чтение файлов, Write - запись файлов, Append - дозапись файлов, Delete - удаление файлов, Execute - запуск выполняемых файлов на серверной машине (очень опасное право, не давайте его никому), List - показ списка подкаталогов, Create - создание подкаталога, Remove - удаление подкаталога, Inherit - все подкаталоги будет иметь аналогичные права (иначе, к ним никаких прав и доступа не будет, если только они не прописаны самостоятельно). Строчки каталогов можно перемещать вверх-вниз. При использовании наследования (Inherit), это актуально - верхняя строчка имеет высший приоритет разрешения.

    Итак, теперь создаем гостевого пользователя. Идем в "Domains -> FtpName -> Users" и создаем пользователя "Anonymous" (это стандартное имя гостя, иначе это будет не гость). В качестве начальной директории (Home Directory) указываем C:FTP_Root. На вопрос "Lock user in home directory?" отвечаем "Yes" - это упростит работу пользователя.

    Теперь - важный пункт - в настройках этого пользователя (Anonymous) проходим на вкладку "Dir Access" и удаляем там автоматически созданную строчку в FTP_Root (обратите внимание, что она наследует права чтения в Incoming). Теперь на вкладке "Account" добавляем в Group(s) группу guest, нажимаем "Apply". Возвращаемся обратно в "Dir Access" и смотрим. Тут появились FTP_Root и Incoming, причем редактировать их нельзя - это пользователь получил те самые права для гостей из шаблона "guest".

    Итак, гостя мы создали. Он может скачивать любые файлы из каталога C:FTP_Root (исключая подкаталоги) и закачать какой-нибудь файл в C:FTP_RootIncoming, но скачать его оттуда он не сможет (таким образом, ваш сервер невозможно будет использовать для несанкционированной транзитной пересылки файлов).

    Теперь создаем какого-нибудь более полномочного пользователя. Для экономии времени скопируем "Anonymous" и переименуем. Поднимаемся по дереву настроек в "Users", выбираем (не раскрываем) "Anonymous" и делаем в контекстном меню "Copy User".

    Переименовываем его (например, в Ivanov) и задаем пароль. Обратите внимание, вы сами не сможете посмотреть какой у него пароль, потому запомните его или сразу сообщите пароль этому пользователю.

    Теперь идем на вкладку "Dir Access". Обратите внимание, что так как он входит в группу "guest", корневой каталог и incoming у него уже прописаны. Пусть этот пользователь сможет качать, к примеру, нашу музыку. Для этого добавляем путь к музыкальным файлам и даем права Read-List-Inherit (пользователь сможет скачивать любые файлы и подкаталоги).

    Однако, если пользователь сейчас подключится, то он не увидит никакого каталога с музыкой, а увидит только FTP_Root. Поэтому нужно сделать на него ссылку из FTP_Root, причем не средствами Windows, а средствами самого Serv-U. Идем по дереву настроек в "Domains -> FtpName -> Settings" на вкладку "General, Virtual path mapping".

    Нужно сделать так, чтобы папка музыкой (например, c:DocMusic) показывалась в c:FTP_Root как будто она подкаталог FTP_Root. Нажимаем "Add" и заполняем: "Physical path" - каталог, к которому надо сделать ссылку, пишем c:DocMusic, "Mapped to" - каталог, в котором эту ссылку надо поместить - у нас это всегда будет C:FTP_Root, "Vitual name" - имя этого виртуального подкаталога в FTP_Root, например, Music. Готово.

    В "Virtual path mapping" вы можете разместить какие угодно ссылки, но увидят их только те кто в "Dir Access" имеет соответствующие права. Например, в нашем случае, гость не увидит каталога Music.

    Чтобы Ivanov при скачивании музыки не занимал особо сильно наш сетевой канал, идем на вкладку "General" его аккаунта и указываем "Max download speed".

    Кстати, расскажу еще как нашему пользователю Ivanov входить на FTP. Просто набрав ftp://mycomputer.no-ip.com, он войдёт как гость, а не как Ivanov. Логин и пароль можно вставить непосредственно в адрес ftp://Ivanov:[email protected] - браузер (FTP-клиент) это поймет и использует. Либо следует изучить настройки FTP-клиента, чтобы найти где в нем при подключении указывается имя и пароль для не гостевого входа.

    Теперь создадим еще одного пользователя, который будет иметь доступ к каким-либо секретным документам, и потому нельзя допустить взлома его аккаунта. Копируем его из Anonymous, и называем, например, Petrov. Идем на вкладку "General" его аккаунта. Тут есть два интересных с точки зрения безопасности пункта.

    Во-первых, Password type. Если указать "OTP S/KEY MD5", то пароль злоумышленники не перехватят. Если указать "Regular password", то это будет стандартная процедура обмена паролями и его могут перехватить. Пользователь выбрать режим паролей не может, это надо сделать на сервере.

    Во-вторых, Require secure connection. Password type обеспечивает только защиту пароля, но не пересылаемых данных. Установка шифрованного соединения обеспечивает и защиту данных, и защиту пароля. Причем, если галку на "Require secure connection" не ставить, то шифрованное соединение пользователь может сам по желанию выбрать, а если галка стоит, то пользователь будет обязан использовать шифрованное соединения, иначе его не пустят. Кстати, большинство клиентов не поддерживают при шифровании OTP-пароли - ибо это избыточно, потому Password type сделайте "Regular password" если для этого аккаунта могут быть шифрованные соединения.

    Напомню, что штатные FTP-клиенты Windows ни OTP-пароли, ни шифрование не поддерживают - для применения этих мер защиты пользователям надо использовать, например, CuteFTP.

    Когда все настроено, очевидно, вам захочется самим поглядеть как это все работает. Это возможно, и идти к другому компьютеру вовсе необязательно (кроме, разве что, проверки настроек брандмауэра или NAT). Используя для этого локальный адрес (127.0.0.1), набираем в браузере или FTP-клиенте адрес ftp://127.0.0.1 (если порт по умолчанию 21), или ftp://127.0.0.1:32768 (если порт нестандартный, например, 32768). Готово. Вы можете абсолютно полноценно таким образом испытывать все возможности своего сервера. Однако учтите, что в пассивном режиме (PASV), если ваш FTP-сервер за NAT, то для обмена данными сервер укажет клиенту внешний IP, и соединение будет невозможно. Потому для проверки используйте обычный PORT-режим в FTP-клиентах.

    P.S. Кстати, если что непонятно, то у Serv-U есть отличная контекстная справочная система, вызываемая нажатием клавиши "F1".

    Ребилд: Morpheus aka OROPCHVPCHV | Fastus