Главная » 2021 » Январь » 21 » Создание собственного FTP-сервера.
15:21
Создание собственного FTP-сервера.
Рано или поздно каждый пользователь убеждается в том, что расшаривание ресурсов эквивалентно открыванию дверей незнакомым людям. Кто-то после этого раз и навсегда усваивает истину о том, что всякое добро наказуемо. А кто-то создаёт самый настоящий FTP-сервер.

  Выбор программной платформы для FTP-сервера на сегодняшний день достаточно велик. Если вы планируете установить сервер на рабочую станцию, которая функционирует под управлением системы Windows, то имеет смысл остановиться на программе Serv-U FTP Server (www.serv-u.com). В настоящее время Serv-U является одной из лучших программ для создания "любительских" FTP-серверов. Несмотря на то, что её корпоративная версия стоит немалых денег, стандартный вариант можно использовать бесплатно, причём его возможностей вполне хватает для организации частного ресурса, особенно если идеология вашего сервера соответствует изложенной во врезке "Самые первые действия". Одно из достоинств этой программы, которое может стать для части пользователей решающим - наличие весьма корректного русификатора.

  Первые шаги

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

  Во-первых, следует вспомнить, что простонародное название интернета - всемирная помойка. Локальная сеть, которая является, по сути, уменьшенной копией мировой паутины, имеет все шансы стать точно такой же помойкой, только размер её будет другим. И вы хотите принять в этом активное участие? Готовы ли вы тратить личное время на поддержание собственного ресурса в таком состоянии, чтобы он если не уменьшал, то хотя бы не увеличивал ту энтропию, которой в Сети хватает и без вас?

  Во-вторых, если кто-то ещё питает иллюзию на предмет того, что внутрисетевой ресурс может если не обогатить своего хозяина, то хотя бы оправдать его затраты на интернет, то эти иллюзии пора рассеять - FTP-сервер не принесёт ни копейки. Если даже он будет суперпопулярным, то в качестве награды за это вы, скорее всего, получите сокращение срока службы собственного винчестера и замедление работы системы, если сервер организован на вашей рабочей машине. К этому ли вы стремитесь?  Если после таких размышлений желание срочно взяться за работу не ослабевает, то можно приступать к определению идеологии ресурса. Самая плохая идея - выложить для всеобщего доступа содержимое собственных папок с мультимедийными файлами, непонятно откуда взятыми и хранящимися таким образом, что сам хозяин не сразу найдёт необходимое. На неорганизованном сервере посетитель будет долго лазить по всем каталогам и нагружать ресурс совершенно непродуктивными действиями. Идеальное поведение пользователя FTP-сервера должно быть таким: подключился, быстро скачал именно то, что хотел, отключился. Лирику следует оставить веб-страницам вроде LiveJornal - FTP-серверы существуют только для конкретного дела.

  Из этого, кстати, вытекает несколько парадоксальный вывод: разнообразие содержимого не является гарантией хорошего качества FTP-сервера. Дело в том, что большинство частных FTP-серверов локальной сети установлено либо на рабочих станциях, либо (в лучшем случае) на стареньких машинках, которые было жаль выбросить. А разнообразие контента приводит к увеличению числа посетителей. Увеличение числа посетителей ведёт к возрастанию нагрузки, что приводит к тормозам, а тормоза, в свою очередь, приводят к всеобщему недовольству. Поэтому следует чётко обозначить профиль сервера и именно так преподносить его на внутрисетевом форуме.  Отдельно следует решить вопрос о предоставлении пользователям права закачивать файлы на сервер. С одной стороны, это позволяет ресурсу быстрее развиваться, с другой - очень часто развитие происходит именно в сторону файловой помойки. Разумеется, общих советов тут нет и быть не может - в каждом конкретном случае принимается решение исходя из местной специфики. Часто очень помогает требование авторизации пользователей, которые хотят не только пассивного участия в работе ресурса.

  Подготовка

  Первым делом установите в систему один FTP-клиент и один менеджер закачек, которые будут использоваться для тестирования сервера. При выборе конкретных программ учитывайте не столько ваши личные пристрастия, сколько внутрисетевую популярность конкретных инструментов. Если же такой статистики нет, то выбирайте FAR и FlashGet - они бесплатны, русифицированы и широко распространены в нашей стране.

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

  В выделенном разделе следует создать следующие директории:
  _   FTP - домашняя директория сервера, которая будет открываться при входе на ресурс;

  _   FTP\PUB - в этой директории будут находиться данные, доступные для скачивания всем пользователям;

  _   FTP\Personal - директория, доступная только зарегистрированным пользователям;

  _   FTP\UPLOAD - директория, предназначенная для закачки данных на сервер.

  Разумеется, два последних каталога имеет смысл создавать только тогда, когда их существование обосновано идеологически. Но даже в этом случае данные в персональный каталог следует выкладывать только после полной настройки сервера.

Базовая настройка

  Во время установки пакета Serv-U фактически будут установлены три программы. Доступ пользователей к файлам, передачу данных и рассылку сообщений выполняет служба ServUDaemon.exe. Функции администрирования сервера возложены на программу ServUAdmin.exe. Наконец, ServUTray.exe поместит в трей анимированную иконку, показывающую текущее состояние сервера. Иконка имеет форму подковы, по цвету которой можно определить, что именно происходит на сервере в данный момент. Если иконка зелёная, то пользователей на нём нет. Как только на сервер зайдут посетители, то иконка станет синей. Если же кто-то из пользователей сервера начнёт закачивать на него файлы, на синей иконке появится красный ободок.

  При первом запуске программы ServUAdmin.exe, иконка которой будет выведена инсталлятором на Рабочий стол, в дело вступит Мастер настройки. Пропускать его имеет смысл только тогда, когда вы твёрдо уверены в том, что сможете настроить сервер самостоятельно.

  Если такой уверенности нет, то Мастер поможет вам настроить сервер так, чтобы он хотя бы работал. Естественно, более тонкую настройку нужно будет проводить позже. В процессе работы Мастер проделает следующие операции.  - Предложит вам явно указать свой IP-адрес. Если ваш провайдер пользуется статичными адресами, то следует указать его. Если же провайдер использует динамическую адресацию, то оставьте поле пустым.

  - Предложит указать имя создаваемого домена. В это поле следует поместить ваше сетевое имя в виде name.provider.ru.

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

 Возможен и отрицательный ответ - тогда получится ресурс для избранных. Если вы ответили положительно, то Мастер не прекратит работу, а уточнит некоторые данные, касающиеся анонимной учётной записи.

  - Предложит задать домашний каталог пользователя. Если вы уже создали директорию FTP, то указывайте именно её.

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

  - Предложит создать именной аккаунт. На большинстве серверов локальной сети создание привилегированных пользователей не практикуется, хотя причины этого не совсем понятны. Если идеология вашего сервера предусматривает наличие посетителей, которым будет предоставлен доступ к закрытым для всех остальных файлам, то именной аккаунт создавать нужно.  - Для именного аккаунта понадобится пароль, который следует ввести на следующем шаге работы Мастера.

  - Привилегированные пользователи имеют право на собственный домашний каталог. Мастер предложит создать такой каталог. Если директория FTP\Personal уже создана, то именно ей и быть домашней для только что прописанной учётной записи.

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

Тонкая настройка

  После того как Мастер закончит свою работу, сервером можно будет пользоваться. Более того, довольно значительная часть владельцев домашних FTP-серверов этим и ограничивается. Однако Serv-U предлагает намного больше возможностей, которыми непременно следует воспользоваться.  Нужно учесть, что программа предполагает два варианта настроек: для всего сервера и для отдельного домена. Для большинства пользователей локальных сетей вторая возможность является сугубо теоретической. Во-первых, потому что разговор о втором домене придётся вести с провайдером, который непременно задаст вопрос о причине. А причина - это и есть во-вторых, ибо внятно обосновать перед провайдером необходимость нескольких доменов вряд ли получится.

Правила сервера

  Правила поведения на частном ресурсе определяет хозяин сервера, который должен понимать, что большинство посетителей начисто лишены экстрасенсорных способностей. Поэтому эти правила следует изложить и довести до сведения всех гостей ресурса. Обычно правила помещаются в текстовый файл с названием Readme.txt, который выкладывается в корневой каталог сервера. Разумеется, прочитают эти правила немногие, но у вас хотя бы появится моральное право на большинство вопросов и жалоб отвечать коротким RTFM.

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

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

  И непременно напишите, что к нарушителям правил будут применяться меры репрессивного характера, выбор которых остаётся на усмотрение владельца сервера. Эта фраза придаст некую силу опубликованным правилам.  С другой стороны, не забывайте, что кроме вашего ресурса в сети есть множество других, владельцы которых никаких правил не пишут и ни от кого ничего не требуют. Поэтому, как говорится, без фанатизма - вряд ли вы сумеете выложить что-то такое, что приведёт к революции в локальной сети. Хотя если вы вдруг узнаете, что в качестве основного аргумента для подключения к локальной сети новые абоненты ссылаются на ваш сервер, то есть повод навестить провайдера и поговорить о льготных условиях обслуживания. Правда, скорее всего, это так и останется недостижимым идеалом.

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

    Основные опции, на которые следует обратить внимание в первую очередь - ограничение на максимальную скорость всех потоков и максимальное количество пользователей, которые могут одновременно подключиться к серверу. Доступ к этим настройкам можно получить на вкладке "Локальный сервер - Параметры - Общие". Правильное определение первой опции важно не столько для той машины, на которой установлен сервер, сколько для всего домена, в котором расположен этот сервер. Дело в том, что пропускная способность сети ограничена. Таким образом, элементарные нормы приличия заставляют каждого абонента следить за тем, чтобы не загружать весь канал самому, так как следует думать и о соседях. Если же абонент активно пренебрегает этим правилом, то ему на это укажет провайдер, обязанность которого следить за порядком в сети. Разумеется, в условиях рынка никакой речи о принудительном отключении быть не может. Но убедительно попросить абонента оплатить дополнительные работы по расширению канала, которые необходимо провести для обеспечения нормального функционирования его сервера, провайдер может. Причём таких же убедительных аргументов для отказа у пользователя не будет.

  Для того чтобы правильно рассчитать максимальную скорость всех потоков, следует узнать у провайдера максимальную пропускную способность вашего сегмента сети. Затем выясните, сколько ещё серверов функционирует в вашем сегменте. После этого определите максимально допустимую скорость таким образом, чтобы вместе взятые серверы потребляли не более 50% всей пропускной способности канала. Конечно, это значение будет довольно перестраховочным, но зато убережёт от конфликта с провайдером.  Решение о максимальном количестве пользователей принимается исходя из аппаратных возможностей машины. Большинство владельцев домашних серверов, которые как-то регулируют этот параметр, считают, что оптимальное значение лежит в промежутке от пяти до десяти.

  Ещё один полезный параметр, который можно определить на этой вкладке - блокировка так называемых переподключений. По умолчанию программа предлагает блокировать переподключающихся более четырёх раз в пределах от 30 секунд до четырёх минут посетителей. Это очень разумная мера противодействия пользователю, который сам не знает, чего хочет (или наоборот, слишком хорошо это знает). Адекватным гостям, использующим для взаимодействия с сервером специально предназначенные для этого программы, такая мера повредить не может.

  Особо осторожные товарищи могут использовать такой механизм защиты, как запрет и разрешение доступа. Эти настройки доступны на вкладке "<Имя сервера> - Параметры - IP доступ". Правда, при наличии нескольких аккаунтов, которые могут иметь различные настройки, лучше воспользоваться вкладками "<Пользователь> - IP доступ".

  Более жёсткой политикой является разрешительная, при которой сервер будет отвергать все соединения, кроме явно разрешённых. К таким ограничениям имеет смысл прибегать только в том случае, когда сеть представляет собой группу сегментов, внутри которых канал намного шире каналов, соединяющих сегменты в единую сеть (весьма распространённая практика в небольших городах, в которых иная топология невозможна).
 Хорошим решением для обеспечения доступа к файлам в таких сетях является набор зеркал, каждое из которых располагается в своём сегменте, что позволяет резко сократить межсегментный трафик. А единомышленники, готовые предоставить свои ресурсы для зеркал, при правильной концепции сервера находятся достаточно быстро. В этом случае анонимный вход на сервер разрешён только с адресов собственного сегмента. А для обмена данными с зеркалами используется привилегированный пользователь, от имени которого должны действовать владельцы зеркал. Проще всего владельцам FTP-серверов договориться между собой о единой паре "логин-пароль", чтобы перекачка с сервера на сервер происходила в приоритетном режиме.

  После этого нужно перейти во вкладку Anonymous. Если этот пользователь не был создан Мастером, то следует во вкладке "Пользователи" кликнуть правой кнопкой мыши на рабочем поле для запуска Мастера создания нового пользователя.

  Во вкладке "Общие" нас интересуют всего несколько опций. Во-первых, активируем запрет на просмотр скрытых файлов. Причём дело тут даже не в безопасности, а в том, что система Windows имеет привычку такие файлы создавать. Демонстрировать их всему сетевому народу - признак плохого тона.

  Во-вторых, ограничим число входов в систему с одного адреса. При этом важно учитывать ранее наложенное ограничение на общее количество подключений. Например, если мы определили, что к серверу не может подключаться более пяти пользователей, но не задали точное значение максимального числа подключений с одного адреса, то можно с полной уверенностью сказать, что одновременно на сервере будет находиться только один человек. Этот пользователь, применяя любую современную "качалку", будет получать файлы в пять потоков.

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

  Доступ к папкам и файлам определяется отдельно для каждого пользователя. Делается это во вкладке "<Имя пользователя> - Доступ к папкам". Для редактирования прав доступа следует учитывать, что все файлы одного каталога могут иметь только равные права.

  Доступ к файлам может предусматривать права на скачку файла, на его закачку, дописывание, удаление и право на запуск программы на сервере. Очевидно, что право на запуск следует отключить - обыкновенному пользователю в нём нет никакой необходимости. Как правило, пользователю Anonymous разрешено только читать файлы. А вот привилегированным пользователям следует разрешить запись, дозаписывание и удаление. Права для каталогов могут быть такими: на просмотр списка файлов в директории, на создание и удаление директорий. При этом разрешается применять права, назначенные для одной директории, ко всем вложенным в неё директориям.

  Тут самое время решить вопрос о папке Upload. Многие владельцы серверов никому не разрешают писать в общую папку, резонно считая, что папка для заливки должна быть отдельной. При этом привилегированный аккаунт не создаётся вообще, а доступ в Upload предоставляется всем. Такой подход чреват очень быстрым замусориванием этой папки, которую начинают использовать для обмена всем, чем угодно.

  Как бы странно это ни прозвучало, но в данном случае самым правильным является максимально жёсткий подход. Домашним каталогом для привилегированных пользователей делается Upload, где они наделяются всеми необходимыми для себя правами. А для анонимного пользователя этот каталог просто закрывается - ему там делать нечего.

  Но из каждого правила бывают исключения. Иногда возникает необходимость открыть на время доступ к каталогу, наличие которого на сервере противоречит концепции ресурса. Или просто захотелось дать переписать приятелю новый компакт-диск. Serv-U позволяет подключать так называемые виртуальные папки, физический прообраз которых может находиться где угодно, хоть на другом диске. Для создания виртуальной папки надо отправляться на вкладку "Параметры - Общие". В разделе "Добавление виртуальных путей" нажимаете кнопку "Добавить". Затем последовательно указываете физический путь к подключаемой папке, точку сервера, в которую будет помещена виртуальная папка (в данном случае проще всего указать параметр %HOME%, тогда виртуальная папка окажется в домашней директории анонимного пользователя), и имя виртуальной папки, под которым она будет отображаться на сервере. После этого во вкладке "<Имя пользователя> - Доступ к папкам" определяем права доступа к этому каталогу, причём в этом случае следует указывать полный физический путь к нужной директории.

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

  Во вкладке "Пользователи" владелец ресурса может непосредственно наблюдать за всеми активными подключениями. Если посетитель делает что-то не то, можно отправить ему сообщение, остановить передачу или вообще его отключить. Желание более тщательно понаблюдать за поведением гостя реализуется в режиме "Шпионить", когда открывается новая вкладка, на которой отображается самая подробная информация о действиях посетителя.  Однако постоянно наблюдать за тем, что творится на сервере, могут только те, кому время девать некуда. А для людей занятых существует лог-файл, параметры которого определяются во вкладке "Параметры-Логи". Выявив нарушителя, отправляйтесь в уже знакомую нам вкладку "IP-доступ" и заносите злоумышленника в чёрный список.
   Просмотров: 277

Меню сайта



Категории раздела

Поиск

Календарь

«  Январь 2021  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031

Реклама

Друзья сайта

Параметры

 
 

Статистика

TOPlist TOPlist
Copyright 2009 | Каталог   Хостинг от uCoz |

Free counters