Леонид Яицкий

Лечение должно быть симптоматичным — если необходим супер-мощный сервер, то вам прямая дорога на freebsd.org. Но зачастую такая роскошь, как выделенный сервер, не нужна — достаточно поставить под Windows небольшую программку.

Сегодня трудно кого-нибудь удивить домашней компьютерной сетью — плюсы участия в подобных мероприятиях очевидны. Однако членство в домашней сети может нести с собой и некоторые неудобства…

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

Как правило, "запирание" ресурсов своего компьютера наглухо — даже во избежание падения производительности — считается дурным тоном. Более того, в некоторых сетях принято блокировать попытки "жадин" скачивать информацию с компьютеров более щедрых юзеров.

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

Итак, программа Serv-U (разработчик — компания RhinoSoft, http://www.rhinosoft.com/) предлагает пользователю, наверное, самый широкий выбор инструментов по подъему, настройке и администрированию FTP-сервера.
Нарекаю тебя…

Создание ftp-сервера на локальном компьютере не вызывает особых трудностей даже у новичков. Для этого запускаем программу Serv-U Administrator (ярлык к ней появляется в главном меню Windows сразу после установки) и выбираем в левой части окна пункт Local Server — Domains. Кликнув правой клавишей по данной пиктограмме, в появившемся меню выбираем пункт New Domain и следуем инструкциям простенького мастера. В нашем примере зададим домену имя leonid и поставим ему в соответствие IP-адрес локального компьютера и порт 21.

После создания домена определимся, какое количество пользователей и с какой скоростью может работать с сервером одновременно. Для этого следует выбрать пункт Settings дерева Local Server и указать соответствующие значения. В этом же пункте находятся еще некоторые настройки, общие для всех доменов: например, возможность удаления не полностью закачанных на сервер файлов, блокировка некоторых известных атак и т.п.

Теперь можно приступать к настройке свежесозданного домена.

Переходим к пункту leonid (или как вы там назвали свой сервер?) дерева Domains. Здесь можно активировать возможность использования динамического IP-адреса, то есть работа ftp-сервера не будет зависеть от адреса вашего компьютера в сети.

Теперь обратим свой взор к пункту Settings. Тут можно указать максимально допустимое количество пользователей для текущего домена, а также (на закладке IP-Access) IP-адреса, с которых разрешен (Allow access) или запрещен (Deny access) доступ к серверу. Если адресов в сети много, можно воспользоваться маской (например, 10.3.*.* для адресов от 10.3.1.1 до 10.3.254.254 или просто *, если правило распространяется на все адреса сети). Можно делать исключения: например, для всех адресов сети доступ разрешить, а своему недругу с адресом 10.1.1.27 — запретить. Каждое из правил можно перемещать вверх-вниз по списку, меняя таким образом их приоритетность.

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

В закладке Logging предлагается возможность настройки степени подробности log-файла, который ведется сервером. Возможно ведения журнала по таким параметрам, как системные сообщения, сообщения системы безопасности, сообщения о принятии/отправке файлов, IP-адреса подключавшихся к серверу пользователей, ftp-команды, полученные сервером и ответы на них — и т.д., и т.п.

Закладка UL/DL Ratios определяет файлы, постоянно доступные для скачивания — вне зависимости от того, сколько файлов пользователь ранее залил на сервер или скачал с него.

Пункт дерева Activity показывает администратору ftp-сервера (да-да, именно так отныне будем величать отчаянного экспериментатора, решившегося развернуть свой собственный сервер) имена и IP-адреса пользователей, подключенных в данный момент, а также имена файлов, с которыми работают юзеры. В этом же окне отображается текущая скорость передачи данных для каждого пользователя, средняя скорость закачки/скачивания данных, время пребывания на сервере, дату и время подключения к серверу, статус дисковой квоты пользователя. На закладке Domain Log тщательно записывается каждое событие с момента запуска сервера, так что администратор всегда имеет возможность посмотреть на последствия своей отлучки за пивом.
И создал админ юзеров…

А вот пункт Users требует особого внимания, поскольку он определяет полномочия пользователей, присоединившихся к нашему серверу.

Для создания нового пользователя следует, перейдя на пункт Users, кликнуть на нем правой клавишей мыши и выбрать опцию New User. Простенький мастер попросит ввести имя пользователя, пароль (не обязательно) и домашний каталог (любой каталог на жестком, гибком, оптическом или сетевом диске).

В сетях с небольшим количеством пользователей (когда не требуется слишком сложного разграничения доступа к данным на сервере) рекомендуется сразу создать пользователя с именем Anonymous и "пустым" паролем.

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

Домашний каталог (home directory) — это каталог, в котором пользователь оказывается сразу после успешного подключения к ftp-серверу. Программа предлагает выбрать, будет ли пользователь иметь возможность выходить за пределы этой директории — или же будет обречен на вечное скитание лишь в домашнем каталоге и его подпапках.

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

На закладке General устанавливаются параметры работы каждого пользователя. Здесь можно указать, будут ли спрятаны от взора жаждущего скачать побольше всего пользователя файлы, имеющие атрибут "скрытый". Опция Always allow login разрешает данному пользователю подключаться к серверу даже в том случае, если достигнуто максимально допустимое число подключений.

Если администратор считает необходимым возможность смены пароля пользователем, ему достаточно выбрать опцию Allow user to change password.

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

Как оптимально выбрать скорость подключения пользователей?

Очень часто сети строятся на основе оборудования Fast Ethernet (привычная нам 100-мегабитка), реальная скорость передачи данных между двумя узлами обычно составляет 6…9 Мб/с.

В качестве примера рассмотрим локальную сеть, в которой работает 50 пользователей и в каждый момент времени доступ к серверу должны одновременно получать примерно 5 пользователей. Разделив пропускную способность сети на количество пользователей, получим максимально допустимую скорость работы каждого из них.

Конечно, следует оставить некоторый "запас" и для своих нужд. Для данного примера можно ограничить скорость работы каждого из пользователей, скажем, до 1,2 Мб/с —  и все оставшиеся мегабайты в секунду гарантированно можно будет использовать в своих администраторских целях.

Для каждого пользователя можно доступ к домашнему каталогу и его подкаталогам. К примеру, для закачки файлов будет служить лишь одна директория — а ко всем остальным пользователь будет получать доступ в режиме "только чтение".

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

Интересная "примочка" программы: количество информации, которое может скачать с сервера пользователь, зависит от того, какое количество информации пользователь закачал на сервер ранее.

Программа может считать скачанную/закачанную информацию как по объему информации, так и по количеству файлов. Кроме того, отсчет может вестись в двух режимах: за текущую сессию соединения или за все сессии в целом.

Администратор сервера указывает коэффициенты, соответствующие допустимому отношению закачанных файлов к скачанным, и выдает пользователю некоторый кредит количества информации — нечто вроде "форы" для каждого из пользователей.
Кстати, эту возможность могут с корыстью использовать администраторы, которые предоставляют платный (ай-ай-ай!) доступ к информации, хранящейся на сервере. Находится эта опция на закладке UL/DL Ratios в окне настройки параметров каждого из пользователей.

Если сервер служит для хранения информации пользователей, однако места на жестком диске компьютера для хранения десятков юзерских фильмов и сотен mp3-файлов не хватает (как ни странно!), последняя закладка окна настроек учетных записей — Quota — позволяет ограничить использование дисковых ресурсов каждым пользователем. Для каждого из пользователей квота настраивается отдельно. Так что, если, конечно, ваш жесткий диск не резиновый, будьте внимательны при распределении квот, чтобы не возникла ситуация, когда при полном использовании одним юзером своей квоты, второму элементарно не хватит места, хотя формально пределов своей квоты он при этом не достигнет.
Каждому — по потребностям

Для еще более тонкой настройки доступа в нашем ftp-сервере можно использовать группы пользователей.

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

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

Ну что ж, самое время позаботиться о том, чтобы обращения к нашему серверу не "срезал" ни один брандмауэр, установленный на компьютере. Для этого следует перейти к окну настроек брандмауэра и разрешить передачу данных для любых машин через порты 20 (ftp-data) и 21 (ftp).

Если используется операционная система Windows XP и в настройках подключения к локальной сети активирован Microsoft Internet Connection Firewall, в настройках последнего тоже следует разрешить эти порты.

Для настройки MS ICF следует перейти в Пуск — Настройка — Сетевые подключения — и, кликнув правой клавишей мыши на пиктограмме Подключение к локальной сети перейти к свойствам оного. На закладке Дополнительно находится флажок, отвечающий за активацию ICF. Если брандмауэр включен, нажмите кнопку Параметры. В представленном списке нас интересует ftp-сервер и ftp-data. По умолчанию последний в списке отсутствует, его следует добавить, нажав соответствующую кнопку. В появившемся окне введем название службы (ftp-data), IP-адрес данного компьютера, номера внешнего и внутреннего портов службы (20). Теперь ICF будет пропускать все обращения к ftp-серверу из сети.
Когда утихнет пыл сраженья

Итак, настройка брандмауэра и свежеразвернутого сервера завершена — самое время протестировать то, на что мы только что потратили целых десять (ну, или у кого как) минут времени.

В качестве примера пусть обряд установки сервера проводился на машине leonid с IP-адресом 10.3.125.8. Соответственно, чтобы подключится к серверу, пользователь должен набить в адресной строке своего браузера нечто вроде этого: ftp://leonid или ftp://10.3.125.8.

По умолчанию ОС Windows клиента предполагает, что к любому ftp-серверу разрешен анонимный доступ. Чтобы долго не гадать, при подключении ОС автоматически использует в качестве имени пользователя логин Anonymous, а в качестве пароля — IEUser@hotmail.com (это был результат работы богатого воображения Internet Explorer 6.0) или что-то другое — это абсолютно не имеет значения, поскольку анонимный доступ по определению не требует обязательного ввода пароля при входе в систему.

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

ftp> bye
221 Goodbye!

На этом таинственный шаманский обряд развертки ftp-сервера можно считать завершенным. Теперь стоит разве что проверить, как наш ftp-демон (исполняемый файл с именем ServUDaemon.exe) будет загружаться при старте операционной системы сервера. Некоторые администраторы, напротив, предпочитают размещать ярлык программы для администрирования сервера (файл ServUAdmin.exe) у себя на рабочем столе и запускать его вручную по мере необходимости.

Для того чтобы администратор с одного взгляда на экран мог понять, активен сервер или нет, разработчики предусмотрели программу-монитор (ServUTray.ехе), которая мирно висит в системном трее в виде латинской буквы "U". В случае, когда к серверу не подключен ни один пользователь, пиктограмма имеет зеленый цвет. Если к серверу подключен один или несколько клиентов, цвет меняется на синий. Если же кто-либо из пользователей начинает тянуть информацию с сервера или закачивать ее туда, "U" становится темно-синей, да еще и с красной каемкой.

Подведя курсор мыши к этой пиктограмме, можно увидеть, сколько пользователей подключено к серверу, а также получить некоторые другие данные. Двойной щелчок на пиктограмме вызывает программу ServUAdmin, в диалоговом окне которой можно оперативно изменить многие настройки сервера без его перезапуска. Щелчок правой клавишей мыши на пиктограмме отобразит меню, в котором можно остановить/запустить ftp-сервер.

Вот, пожалуй, и все. Остается лишь сообщить адрес официального сайта программы: http://www.serv-u.com/ — отсюда можно скачать последние обновления к программе, а также ее последующие версии.