Устанавливаем также настраиваем FTP-сервер. Чать 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_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:password@mycomputer.no-ip.com - браузер (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".