Настройка и принцип работы Serv-U. Использование FTP

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".

Вы хотите быстрый надёжный FTP-сервер? Разработчики RhinoSoft.com постарались учесть Ваши пожелания. Изначально Serv-U не даёт всем пользователям полный доступ к Вашему компьютеру из сети. Чтобы разграничить права между отдельными категорями пользователей, обладающими разными привелегиями, необходимо знать, как настроить программу.

Для нормальной работы Serv-U достаточно создать один домен с единственным пользователем.

Если Вы планируете использовать программу в режиме безопасного FTP-сервера, то есть шифрующую трафик с использованием SSL/TLS, Вы должны создать собственный SSL сертификат сервера. Это уникальный секретный ключ Вашего сервера, учавствующий в процессе шифрования трафика. Подробная информация по включению режима secure-FTP (безопасный FTP-сервер) в следующих выпусках рассылки...

Установка

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

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

ServUSetup.exe /S /M=

/S запустит установку в "фоновом" режиме

/M= указать путь к текстовому файлу с параметрами установки

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

MAINDIR=
Путь к папке для установки Serv-U.

GROUP=
Название группы в меню "Пуск | Программы.

COMPONENTS=
Устанавливаемые компоненты: ‘A’ - ядро сервера и иконка в трее, ‘B’ - Serv-U Администратор, ‘C’ - текстовые файлы помощи и файл версии программы, ‘D’ - онлайновая документация.

STARTADMIN=
‘A’ - запуск Serv-U Администратора после установки. ‘B’ - создать иконку на рабочем столе для запуска Serv-U Администратора.

STARTTRAY=<0|1>
Показать ли иконку в трее по окончанию установки. ‘0’ - нет, ‘1’ -да.

MAINDIR=d:\go here\su
STARTADMIN=B
STARTTRAY=0
GROUP=My SU Group
COMPONENTS=DAB

В результате программа будет установлена в "d:\go here\su", в меню "Пуск | Программы" будет создана группа "My SU Group". Будут установлены ядро, Sev-U Администратор, и онлайновая документация, за исключением текстовых файлов помощи и файла версии. Serv-U Администратор не запустится по окончании установки, но на рабочем столе появится иконка для его запуска. В трее не появится соответствующая иконка.

Установка и настройка

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

Отображать картинки у пунктов меню

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

IP адрес

IP адрес - это набор 4 чисел, разделённых точкой, который однозначно определяет место Вашего компьютера в сети. Если Вы точно знаете IP адрес, который должен использоваться для работы с Вашим FTP-сервером, заполните соответствующее поле. Это позволит иметь доступ к Serv-U по постоянному IP-адресу, независимо от того, какие IP адреса имеются у Вашего компьютера.

Устанавливать как системную службу (Только для Windows 9x/ME)

Отвечая "Да" Вы позволите серверу автоматически запускаться после старта операционной системы до появления стандартного окна "Вход в Windows". Выбирая "Нет", Вы должны будете самостоятельно запускать Serv-U каждый раз после запуска операционной системы. Serv-U устанавливается автоматически как системная служба под Windows NT/2000/2003 .

Имя домена

Укажите любое уникальное имя для идентификации домена Вашего FTP-сервера. Правилом хорошего тона будет указать доменное имя, соответствующее IP-адресу Вашего компьютера, например "surf.ecolora.com".

Позволить анонимный доступ

Папка анонимного пользователя

FTP-сервер ставит в соответствие каждой учётной записи пользователя свою ‘home directory’ ("домашнюю папку"), в которую тот заходит сразу после соединения с сервером. . Укажите полный путь к реально существующей папке анонимного пользователя, включая имя диска, например "C:\ftp\anonymous".

Запереть анонимных пользователей в домашней папке

Пользователь будет видеть "/" в качестве пути к своей папке вместо реально существующего.

Создать именованный аккаунт

На данном шаге Вы можете создать новую учётную запись FTP-сервера (не anonymous), используемую при подключении к серверу. Ответьте "Да", если хотите создать новый аккаунт.

Логин аккаунта

Имя пользователя, соответствующее конкретной учётной записи Serv-U FTP-сервера.

Пароль

Пароль аккаунта.

Домашняя папка

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

Запереть пользователя в домашней папке

Если Вы создаёте учётную запись администратора, Вы можете ответить "Нет". Если она предназначена для пользователя с ограниченными правами, лучше ответить "Да".

Администраторские права аккаунта

Данная опция нужна для определения доли участия пользовательского аккаунта в удалённом управлении FTP-серером. Если Вы создаёте аккаунт для себя, выберите наивысший уровень прав ‘System Administrator’ "(Системный администратор). В противном случае рекомендуется оставить его как ‘No Privilege’ (без привелегий).

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

Ручная настройка

Если Вы отменили настройку на этапе инсталяции и теперь лицезреете пустое дерево Serv-U Администратора с одним пунктом ‘<< Local Server >>’, Вы можете настроить FTP-сервер самостоятельно. Для создания анонимного аккаунта выполните следующие шаги:

  • Щёлкните два раза мышью на пункте ‘<< Local Server >>’ в дереве слева. Тем самым Вы запустите Ядро FTP-сервера и развернёте дерево.
  • Щёлкните на ‘Domains’ (Домены) в дереве слева.
  • В меню выберите "Domains | New Domain" ("Домены | Новый домен").
  • Вводите IP адрес, только если Вы уверены, что он правильный. Иначе нажмите "Далее".
  • Введите любое уникальное имя для Вашего домена.
  • Если Вы не уверены в своих действиях, оставьте 21 порт, нажмите "Далее".
  • Не вносите никаких изменений на шаге ‘Domain type’ ("Тип домена"), нажмите "Далее".
  • Теперь Вы создали собственный домен. Щёлкните на нём два раза мышкой, чтобы развернуть дерево.
  • Щёлкните на пункте‘Users’ ("Пользователи") в дереве слева.
  • В меню выберите "Users | New User" ("Пользователи | Новый пользователь").
  • Введите "Anonymous" в качестве имени пользователя. Нажмите "Далее".
  • Укажите полный путь к реально существующей папке анонимного пользователя, включая имя диска, например "C:\ftp\anonymous". Затем нажмите "Далее".
  • Нажмите "Да" на шаге "Запереть пользователя в домашней папке". Нажмите "Далее".

На этом создание анонимного пользовательского аккаунта считается завершённым.

Архив Интернет

От теории - к практике. Создаем собственный FTP-сервер на примере программы Serv-U. Установка, настройка, управление пользователями, защита пароля и данных, а также многое другое.

Итак, после короткого знакомства с 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_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. Логин и пароль можно вставить непосредственно в адрес 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".

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

В настоящий момент на рынке представлено бесчисленное множество FTP-серверов. Среди них есть и простые, которые устанавливаются в несколько щелчков мышью, и сложные программные пакеты, предоставляющие широкий выбор дополнительных возможностей - таких, как учет трафика, одновременная работа нескольких серверов на разных портах и многое другое. В этом небольшом обзоре рассматривается программный FTP-сервер Serv-U 6.4.0.4, разработанный компанией RhinoSoft (http://www.rhinosoft.com/). Он является платным, однако для ознакомления можно бесплатно работать с ними с полной функциональностью в течение 30 дней. Сервер Serv-U поддерживает операционные системы на базе платформы Windows - Windows 2000/XP/2003.

Установка FTP-сервера

Установка сервера не составляет особого труда. Serv-U ставится как обычное программное обеспечение. После установки и первого запуска сервера автоматически запускается Wizard, который поможет настроить наиболее важные параметры программы. Рассмотрим последовательность установки FTP-сервера и возможные «подводные камни», которые могут привести к его неработоспособности:

  1. Встроенный Wizard попросит ввести IP-адрес сервера (Enter IP-address). Если сервер будет использоваться исключительно как локальный, без возможности зайти на него из Интернета, то в этом случае необходимо прописать локальный IP-адрес. Стоит учитывать, что IP-адрес может быть прописан вручную или выделен DCHP-сервером. В первом случае локальный IP-адрес можно узнать с помощью команды ipconfig /all , которая запускается из командной строки (Пуск -> Выполнить -> cmd , нажать клавишу Enter, а затем ввести команду). Во втором случае необходимо оставить поле IP-address пустым, при старте FTP-сервер автоматически определит адрес и присвоит ему порт 21 для работы. Поскольку доступ в Интернет может осуществляться по PPTP-туннелю, для доступа к FTP извне необходимо оставить строку пустой и запускать сервер после установки VPN-соединения, в противном случае Serv-U может не определить внешний IP-адрес.
  2. Необходимо указать название домена (Domain name). Если внешний IP-адрес в Интернете является статичным и ему присвоено доменное имя, то рекомендуется ввести его (домен). В противном случае можно оставить поле пустым или написать любое название.
  3. В третьем окне можно выбрать способ запуска FTP-сервера. Serv-U поддерживает запуск в качестве сервиса в системах NT, что избавляет пользователя от необходимости каждый раз загружать сервер при перезапуске системы.
  4. FTP-сервер Serv-U может быть публичным, если разрешен доступ для анонимных пользователей. Чтобы на сервер имели доступ исключительно авторизованные пользователи, необходимо отключить анонимный аккаунт на сервере.
  5. Затем Wizard предлагает выбрать корневую директорию для пользователей. Она будет основной для большинства FTP-пользователей, кроме тех, для кого корневая директория обозначена отдельно.
  6. В заключение можно определить доступ в корневую структуру диска, на котором находится корневая директория FTP-сервера, указанная в предыдущем окне. Настоятельно не рекомендуется давать пользователям такую возможность, поскольку существует вероятность копирования данных, не предназначенных для них.

После выполнения всех указаний Wizard FTP-сервер Serv-U автоматически запустится (рис. 1). Административную консоль можно свернуть в трей. Если никаких неполадок при запуске не произошло, буква «U» будет зеленой. Выключенный FTP-сервер отображается перечеркнутым значком, а наличие подключенных клиентов - темно-синей буквой «U».

Рис. 1. Административная консоль Serv-U

Настройки FTP-сервера Serv-U и его основные функциональные возможности

Основные настройки FTP-сервера Serv-U представлены в виде древовидной структуры и находятся в левой части административной консоли. Они расположены в верхнем разделе Settings (рис. 2).

Рис. 2. Основные настройки

Среди наиболее важных настроек безопасности отметим:

  • ограничения скорости передачи данных от сервера и к серверу для всех псевдосерверов. Для каждого псевдосервера можно указать файлы или папки, на которые это ограничение действовать не будет;
  • блокирование атак, которые проводятся с помощью метода FTP Bounce. В случае блокировки обмен данных с сервером разрешен только для клиентов; трансфер между двумя FTP-серверами запрещен;
  • защита от DDOS-атак и назойливых клиентов путем запрета на создание множественных подключений клиента в короткий промежуток времени;
  • поддержка SSL- и SSL v2-протоколов с сертификацией и обмен данными по защищенному каналу. Криптографическое шифрование по SSL v2 можно отключить;
  • конфигурирование портов через UPnP (Universal plug and play) для обхода маршрутизаторов, поддерживающих эту функцию. Таким образом, FTP-сервер может быть доступен в случае, если он получает доступ в Интернет через NAT-протокол.

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

Являясь продвинутым программным пакетом, Serv-U поддерживает создание нескольких доменов (псевдосерверов). Каждый из доменов конфигурируется отдельно от других. Псевдосервер может быть настроен на отдельный порт и IP-адрес - таким образом, одному компьютеру может соответствовать несколько серверов. Домен имеет отдельную базу пользователей и каталогов, к которым клиентам открыт доступ. Пользователей можно разделить на группы, для которых также можно установить корневую директорию. Пользователи могут быть отнесены к администраторам сервера; всего же существует четыре группы: Domain Administrator, Group Administrator, System Administrator и Read-Only Administrator, отвечающие за управление сервером или конкретным доменом. Пользователю могут быть назначены многочисленные настройки - такие, как скорость скачивания, доступ с определенного IP-адреса, индивидуальный доступ к папке, автоматическая смена пароля, квота на трафик и система рейтинга.

Нельзя обойти вниманием и поддержку функции Dynamic DNS, позволяющей автоматически определять внешний IP-адрес и менять его для псевдосерверов. Поддерживается программное обеспечение, которое используется системой динамического изменения DNS на сайте http://www.dns4me.com/. С помощью этой системы пользователи, получающие внешний IP-адрес в Интернете по PPTP-каналу, могут сопоставить его с доменным именем. В зависимости от выданного IP-адреса FTP-сервер автоматически меняет его и сопоставляет с доменным именем (для других подобных систем Serv-U не сможет правильно сопоставить доменное имя и адрес).

Создание пользователя

По умолчанию аккаунт анонимного пользователя включен, все настройки для него определяются установками в закладке Settings конкретного домена (псевдосервера). Чтобы создать уникального пользователя, который имел бы доступ только к определенным каталогам и файлам, необходимо во вкладке Users щелкнуть правой кнопкой мыши и выбрать New user (рис. 3). После этого запустится Wizard, с помощью которого устанавливаются основные настройки: имя пользователя, пароль и корневой каталог.

Рис. 3. Создание пользователя

Доступ к другим настройкам пользователя (рис. 4) можно получить, кликнув два раза мышкой по имени пользователя.

Рис. 4. Настройки пользователя

Виртуальные пути и протоколирование

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

Сервер Serv-U поддерживает многоуровневое протоколирование служебной информации. Все записи сохраняются в едином файле с расширением *.log. Пользователь может настроить сообщения, которые будут прописаны в файле в меню Logging (рис. 5).

Рис. 5. Настройки записи в log-файл

Для каждого псевдосервера настройки могут быть указаны отдельно и выделен отдельный файл для сохранения. Информация записывается в простом и понятном опытному пользователю виде. В интернете существует множество различных решений для чтения log-файлов FTP-сервера Serv-U. Наиболее достойным программным пакетом является решение Sawmill 7, которое корректно отображает информацию, записанную в log-файлах, и выводит подробную статистику по посещениям, переданным файлам, пользователям и активности клиентов.

Блокировка и слежение за пользователями

Активность клиентов отображается в отдельном окне (рис. 6). Здесь приводится практически полная информация о текущем состоянии пользователя, файле или каталоге, к которому он обращался, скорости соединения, времени и количестве скачанной информации.

Рис. 6. Активность клиентов

При необходимости можно воспользоваться опцией слежения за пользователем (Spy on user). С ее помощью можно полностью проследить «движение» пользователя по FTP-серверу, просмотренные и скачанные файлы, а также суммирующий трафик. Функция слежения работает исключительно по IP-адресу и текущей сессии, следующая сессия этого пользователя уже не будет отображаться в меню просмотра.

Как и все FTP-серверы, Serv-U поддерживает блокировку конкретных пользователей (рис. 7). Она может осуществляться в течение некоторого промежутка времени или постоянно. Эти два вида блокировки настраиваются в разных меню. Блокировка на время относится ко всем пользователям всех доменов и выполняется через самое первое меню Activity . Время блокировки задается в секундах. Пользователь, блокируемый на неопределенный срок, определяется в настройках каждого домена отдельно.

Рис. 7. Блокировка пользователей

Тест на производительность

Для оценки максимальной скорости передачи данных сервера Serv-U был проведен небольшой тест. Два компьютера были подключенных друг к другу по гигабитной локальной сети. Один компьютер являлся клиентом FTP-сервера и скачивал с него файл объемом 4,5 Гбайт, а на другом ПК был установлен Serv-U. Оба компьютера работали под операционной системой Windows XP SP2.

В ходе этого экспресс-тестирования скорость передачи информации от сервера к клиенту составила около 120 Мбит/с, а от клиента к серверу - 80 Мбит/с. Оценивая результаты тестирования, следует учесть, что узким местом при передаче являлся не сам FTP-сервер, а пропускная способность интерфейсов жестких дисков. Поэтому можно с уверенностью сказать, что при правильной компоновке системы скорость будет еще выше.

Заключение

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

Понравилась статья? Поделиться с друзьями: