FTP vs. NetBIOS Об обмене файлами внутри сети
Сейчас локальные сети уже не являются для нас чем-то экзотическим. Думаю, для москвичей не секрет, что в каждом районе локальная сеть уже есть. Андрей Никитин
🕛 22.12.2005, 03:01
Сейчас локальные сети уже не являются для нас чем-то экзотическим. Думаю, для москвичей не секрет, что в каждом районе локальная сеть уже есть. Даже больше - уверен, что многие из вас уже подключились или подключиться планируют. Если же готовой сети в ваших краях еще нет, то мало, что может сдержать вас от того, чтобы стать ее основателем.Самый простой вариант организации обмена файловой информацией - это использование встроенной в Windows службы доступа для сетей Microsoft (в nix-системах есть схожая служба - Samba). Этот сервис позволяет открывать папки (и принтеры, кстати говоря, тоже) для общего доступа с возможным разграничением полномочий. Проще говоря, вы можете открывать (расшаривать - от англ. to share - "делиться") папку для всех пользователей сети или только для знающих пароль.
Простота - враг надежности. Помимо того, что пароли в Windows 9x / Me имеют ограниченную длину в восемь символов и при желании подбираются bruteforce-программами за несколько мгновений, еще существуют программы, способные навредить вашим нервам (подвесить компьютер или перезагрузить его) и хранимой информации из-за ошибок в службе доступа для сетей Microsoft. Поэтому продвинутые пользователи нередко отключают эту службу, основанную на NetBIOS. Конечно, FTP (Files Transfer Protocol) возник не из-за необходимости исправить ошибки NetBIOS, но для нас главное, что он является отличной альтернативой. Изначально нацеленный на передачу файлов, протокол FTP обладает рядом преимуществ по сравнению с простым расшариванием. Что называется, рассмотрим на примере.
Serv-U FTP Server
Скачать эту потрясающую по своим возможностям программу следует с официального сайта разработчиков - www.serv-u.com/download.htm (около 3 Мб). Преодолев процедуру регистрации, после окончания загрузки вы получите профессиональную версию сервера. Она останется таковой в течение 30 дней, а по прошествии этого срока станет персональной. Тех самых "потрясающих возможностей" сервер лишится, но в то же время останется функциональным. Не буду останавливаться на различиях версий; вы сами сможете все выяснить, набрав в браузере www.serv-u.com/versions.htm.
После стандартного процесса установки запустится Setup wizard. Советую вам нажать Cancel, выбрав тем самым более простой и логичный путь конфигурирования (особенно, если у вас хромает технический английский). Перед вами основное окно Serv-U Administrator. При клике на кнопке Start сервер активизируется (в системном трее иконка в виде буквы "U" станет полностью зеленой). Если вы не знаете IP-адрес вашего компьютера, то посмотрите его в меню Help > Local IP Address. Теперь нужно создать свой домен. Для этого в списке Local Server выбираем Domains и нажимаем Insert. Вам предложат ввести IP-адрес. Выберете из предложенных тот, который видели в меню Help (вида 192.168.*.*), задайте имя домена, номер порта сервера (по умолчанию 21) и способ хранения информации о домене.
Домен - это своего рода виртуальный FTP-сервер. Таким образом, вы можете создать произвольное число серверов на одном компьютере, но на разных портах, к примеру, один музыкальный, другой с фильмами. Смею заверить, что эта функция если и понадобится, то скорее на крупных предприятиях для четкой структуризации информации. Вроде бы не наш случай, поэтому давайте ограничимся одним доменом.
Следующий шаг - создание пользователей. Наверняка вы не раз заходили на FTP-серверы, и наверняка в большинстве случаев анонимно, то есть без указания логина и пароля. Для того чтобы организовать подобную практику у себя, вам необходимо назвать одного из пользователей anonymous и не указывать для него пароль ("визард" автоматически пропустит этот шаг). Также нужно указать домашнюю (home) директорию для пользователя (первоначально именно ее содержимое будет отображаться при обращении к серверу).
Далее последует вопрос: "Не выпускать пользователя за пределы домашней директории?" (Lock user in home directory?). Если ответить Yes, то подняться выше домашней директории пользователь вашего сервера не сможет, а если No, то, соответственно, сможет.
Поясню на примере. Допустим, вы выбрали в качестве домашней директорию D:\void\, пользователь после захода на ваш FTP-сервер окажется внутри этой папки. В первом случае он не будет видеть реального пути D:\void\ и не сможет выйти на уровень D:\. Во втором случае, наоборот, и увидит, и сможет подняться на уровень выше. Однако не стоит беспокоиться: к корневой директории диска D: доступа он не получит. Перед ним предстанет только папка void.
Как добавить другие папки? Для конкретного пользователя выберите закладку Dir access. Далее все стандартно - Add и выбирайте папку. Обратите внимание, что слева вы можете установить атрибуты прав доступа к файлам, находящимся внутри папок, - только чтение, запись, присоединение, удаление и запуск файлов. Таким способом можно добавлять только те папки, которые находятся в корневой директории диска D: (для нашего примера). Ужасно неудобно, нелогично, непрактично и еще много слов на "не". Да, было бы так, если бы не возможность создания виртуальных соответствий путей (virtual path mappings)!
Давайте по порядку. Не зря я выше назвал директорию void, что означает "пустой". В качестве домашней директории действительно можно выбрать пустую, а затем просто добавлять ссылки на папки, расположенные на произвольных дисках, и не копировать будущий контент сервера на один диск. Виртуальные пути указываются в настройках (Settings) домена на вкладке General. Вам нужно будет выбрать физический путь к папке (Physical path), к какой папке следует привязать этот путь (Map physical path to; %home% -для домашней директории) и виртуальное имя папки, которое пользователь увидит, зайдя к вам на сервер (Mapped path name).
Теперь осталось открыть доступ к этой папке, то есть добавить физический путь к виртуальной папке для пользователя anonymous на вкладке Dir access и записать сделанные изменения.
Все, простейший FTP-сервер готов. Но мы затронули лишь малую часть возможностей, которые предоставляет Serv-U FTP Server. Чтобы описать все настройки сервера, потребуются значительные журнальные площади, поэтому остановлюсь на наиболее важных и часто применяемых.
Настройки сервера
Итак, начнем с общих настроек, распространяющихся на все домены: Local Server > Settings. На закладке General можно ограничить скорость, то есть ширину канала, которую будет использовать сервер (Max. Speed). Сети в большинстве своем ограничены 10 мегабитами (пусть говорят, что сеть 100-мегабитная, но если на пути к вам есть хоть одно сетевое устройство в 10 мегабит, то, увы, максимальная скорость будет равна 1 Мбит/с), и отдавать весь свой канал другим, конечно, похвально, но неразумно. Также советую вам ограничить число одновременно подключенных пользователей (Max. no. of users).
Бывает, что пользователь, зайдя на сервер, забывает, зачем он это сделал, и уходит заниматься другими делами. А при этом некоторые FTP-клиенты (например, CuteFTP) могут периодически посылать определенного вида команды на сервер, благодаря чему создают иллюзию активности. Когда флажок Block anti time-out schemes установлен, то сервер разорвет соединение с таким пользователем.
Чтобы обезопасить себя от атак типа FTP_bounce и запретить прямые соединения сервер с сервером, установите и следующий флажок.
Особам с темпераментом типа "заходил на сервер X раз через Y секунд" можно остудить пыл на Z минут (Block users who connect more than X times within Y seconds for Z minutes).
Теперь что касается настроек определенного домена. Вкладка IP Access позволяет разграничить доступ к вашему серверу с точки зрения IP-адресов. Можно разрешать или запрещать доступ с определенных IP-адресов или диапазонов (своеобразные черные / белые списки).
Вкладка Messages определяет эстетическую сторону организации сервера. Эти сообщения будут передаваться клиенту после определенных действий. Однако не факт, что пользователь их увидит; например, уже упоминавшийся клиент CuteFTP отображает всю информацию о взаимодействии с сервером, а Internet Explorer - нет. Отмечу, что имеет смысл изменить Server ID text, убрав из него указание на использование Serv-U. Конечно, это отдает паранойей, но если вдруг ваш сервер захотят взломать, то знание имени программы-сервера поможет в поиске уязвимостей.
Вкладка Logging отвечает за сбор статистики.
Тут можно выбрать степень детализации статистики, выбрать лог-файл (в имени можно использовать спецсимволы, отражающие текущую дату).
Бороздя просторы интернета, возможно, вы сталкивались с такими FTP-серверами, на которых есть ограничения на скачивание файлов в том смысле, что, прежде чем скачать, нужно что-либо закачать. Учет может вестись в килобайтах (закачал X килобайт - имеешь право скачать Y килобайт) или же в файлах (аналогично). Вкладка UL/DL Ratios позволяет определить файлы, которые будут свободны для скачивания всеми пользователями. Настройка же контролируемых файлов производится для каждой записи пользователя (Users) на вкладке с тем же названием (UL/DL Ratios).
IP Access позволяет разрешать или запрещать доступ с определенного адреса, то есть появляется возможность контроля соответствия имени пользователя и его адреса. Таким образом, можно пресечь использование логина и пароля людьми, которым и знать их не полагалось.
На вкладке General можно разрешить пользователям входить на сервер, даже если будет превышение числа одновременных подключений (Always allow login). Можно ограничить число соединений от одного клиента (Allow only X login(s) from same IP address). Тут необходимо учесть, что под подключением понимается или скачивание файла, или закачивание, или же просто просмотр каталогов. Тут же могут быть указаны ограничения скоростей непосредственно для данной записи пользователя. Установка Idle time-out определяет время, через которое соединение будет разорвано в случае отсутствия активности пользователя, а через время Session time-out пользователь будет отключен в независимости от активности.
Когда список пользователей вашего FTP разрастется, имеет смысл воспользоваться группами (Groups), позволяющими объединять юзеров по их IP-адресам и наборам доступных папок.
Про компонент и "убийство" юзера
Нельзя не упомянуть о весьма познавательном компоненте Activity, позволяющем оперативно следить за состоянием сервера.
Здесь можно увидеть полный список пользователей, в данный момент находящихся у вас в гостях.
Выберите кого-нибудь и нажмите Ctrl+S, откроется дополнительная вкладка, на которой будут видны все запросы от пользователя и ответы сервера.
Также вы увидите полную информацию о пользователе (IP-адрес, время работы, скорость соединения, сколько и чего скачано).
Информация в этом окне обновляется в реальном времени и позволяет получить исчерпывающие данные о деятельности пользователя.
Не нравится, что позволяет себе пользователь? Без проблем! Можно его насильственно отключить от сервера: правый клик на жертве и Kill user.
А далее нужно лишь выбрать силу мести. Можно просто отключить (Kick user), можно еще и заблокировать возможность повторного входа на некоторое время (Kick user and block IP), можно заблокировать IP-адрес или вообще подсеть навсегда (Kick user and ban IP) и, наконец, можно вообще отключить учетную запись пользователя (Kick user and disable account).
Используя даже эти возможности, можно сконфигурировать реально мощный FTP-сервер не только для домашнего использования, но и в качестве неплохого решения для предприятий.
А поддержка SSL-сертификатов и защищенных протоколов значительно расширяет сферу применения.
И последнее...
В заключение хочется напомнить про возможные проблемы с отображением русских имен файлов в nix-системах. Если вы хотите полной гарантии работоспособности вашего сервера для nix-пользователей, то лучшим выходом будет называть файлы, используя буквы только латинского алфавита, при необходимости - транслитом.