Однажды я заполнял на выставке на стенде Microsoft анкету с вопросом: “Какой web-сервер вы используете?”, и мне вдруг тоже стало интересно, какие же Web-серверы в действительности распространены в российской части Internet. Я быстро написал несложную программу сбора статистики -она составляла список всех зарегистрированных доменов в .ru, .msk.ru и .msk.su, строила возможные имена Web-узлов (например, если зарегистрирован домен company.msk.ru, проверялся сервер http://www.company.msk.ru) и пыталась получить название Web-сервера, работающего по этому адресу. Чтобы отсечь узлы, которые только тестируются и выключаются на ночь, программа была запущена в ночь с субботы на воскресенье. Всего ответило 1199 узлов, и полученные результаты могут удивить (см. таблицу на стр. 48).
Если судить о состоянии приложений для Internet по публикациям в журналах и выставкам, то кажется, что серверный рынок уже давно поделен между Microsoft и Netscape, большинство Internet-узлов базируются на Windows NT, за исключением немногих на основе готовых продуктов Sun или SGI. Реальное положение дел с этой точки зрения удивляет -более 3/4 российских Web-узлов работают под Unix и среди серверов с чудовищным отрывом лидирует бесплатный Apache. Причем множество серверов работают с бесплатным вариантом Unix, обычно FreeBSD или Linux.
Тем не менее эта ситуация вполне закономерна. Unix до сих пор остается лучшей серверной платформой для Internet. Попытки Microsoft сделать Windows NT не хуже пока привели только к тому, что Windows NT можно как-то использовать для построения Internet-сайтов, но до Unix ей еще далеко. Я могу назвать только одно существенное преимущество Windows NT -коммерческие серверы баз данных дешевле аналогов для Unix и полная система с Web-сервером, обращающимся к базам данных, будет стоить дешевле.
А недостатков у Windows NT как платформы Internet много. Разрекламированная возможность построить Internet-сайт на базе только Windows NT 4.0 пока остается не более чем рекламой. В комплект поставки входит хороший Web-сервер IIS и довольно трудный в настройке и плохо документированный сервер имен Microsoft DNS. И все. Даже совершенно необходимого почтового сервера нет. (тот, что входит в NT Resource Kit, больше похож на курсовую работу студента и в реальной жизни неприменим. Этот почтовый сервер реализует только минимальный набор необходимых функций, а для настройки требует использования Registry Editor, так как программа конфигурации для него еще не поставляется. Кроме того, мне так и не удалось заставить его работать устойчиво -время от времени он неожиданно аварийно завершается.) Встроенный ftp-сервер не поддерживает докачку, что очень неудобно для клиентов с плохими линиями связи. Так что все равно придется использовать множество часто весьма дорогих приложений третьих фирм.
С этой точки зрения современные варианты поставок некоммерческих ОС Linux или FreeBSD гораздо больше подходят под определение “платформа для Internet”. При инсталляции этих систем с одного комплекта CD-ROM устанавливается все необходимое для построения Internet-сайта: серверы web и ftp, сервер имен, серверы почты и конференций, средства разработки приложений и многое другое, включая часто даже бесплатный сервер баз данных, вполне пригодный для небольших и средних приложений. Все это полностью лицензионно-чистое и стоит 20 -30 долларов, в отличие от тысяч, а то и десятков тысяч, которые стоила бы сравнимая по функциональности система на базе Windows NT. Если же требуется поддержка ОС, то можно приобрести коммерческий вариант Linux фирмы Caldera или воспользоваться услугами одной из действующих в России консалтинговых фирм. Даже в таком варианте это обойдется существенно дешевле, чем использование решений Microsoft -ведь поддержка серверных продуктов Microsoft осуществляется авторизованными центрами поддержки небесплатно (на начало этого года контракт на неограниченное количество консультаций в течение года стоил $7000).
Еще одним сильным ударом по возможности быстро и легко построить Internet-сайт на базе Windows NT стали хакеры. В конце предыдущего года они обратили внимание на набирающую популярность новую платформу и быстро нашли несколько серьезных дыр в ее защите. Информация о них широко распространилась в Internet, и теперь строить узел, пользуясь компонентами, идущими в поставке Windows NT 4.0, просто небезопасно -любой человек, имеющий подключение к Internet и умеющий запускать несложные программки, и даже просто пользоваться telnet, легко выведет из строя Web-сервер IIS или сервер имен Microsoft DNS, а то и получит доступ к исходным текстам ваших приложений для Web. Поэтому вам придется скачивать и устанавливать пакеты исправлений ошибок от Microsoft до того, как вы сможете установить Internet-узел. (Нельзя сказать, что дыры в системе безопасности есть только в серверных продуктах Microsoft. Internet Explorer тоже имеет несколько подобных ошибок, позволяющих узнавать пароли пользователя и при некоторых условиях выполнять без ведома клиента любые действия, в том числе и весьма деструктивные.)
Конечно, дыры в системе безопасности бывают и в Unix, но поскольку эта система развивается уже более двух десятков лет, ошибки, приводящие к выводу из строя системы или получению несанкционированного доступа хакером, не имеющим прав пользователя на данном компьютере, открываются крайне редко и их очень быстро исправляют, особенно в системах и программах, распространяемых в исходных текстах, т. е. бесплатных вариантах Unix и различных продуктах, типа Web-сервера Apache или сервера имен bind. Фирма Microsoft тоже выпускает исправления ошибок довольно быстро, хотя и не всегда правильно. Так, первый распространенный вариант исправления ошибки с возможностью получения исходного текста приложений на основе Active Server Pages на самом деле не решил проблему, а только изменил способ использования этой ошибки.
Важной характеристикой платформы является простота установки и поддержки системы. Безусловно, Internet-узел на базе Windows NT легче в построении и администрировании для человека, хорошо знакомого только с Windows. Но на самом деле объем знаний, необходимых для администрирования Internet-узла, не меняется от типа платформы, и быть хорошим администратором узла на основе NT ничуть не проще, чем на основе Unix. Зато Unix имеет очень важное преимущество -он гораздо легче и естественнее администрируется на расстоянии по медленным каналам связи. Все, что вам нужно, -это эмулятор терминала, а сам компьютер, на котором работает Internet-узел, может стоять, например, в аппаратной провайдера, поближе к скоростным каналам в Internet.
Если вернуться непосредственно к Web-серверам, то довольно трудно найти какие-либо общие критерии. Производительность Web-сервера, которую обычно измеряют, на самом деле не имеет большого значения -все современные серверы могут обслуживать поток запросов со скоростью 128 -2048 Кбит/с, а очень немногие узлы в России имеют более скоростное подключение к Internet и достаточно большое число запросов. Простота администрирования разных серверов -тоже понятие субъективное: конечно, для начинающего графический интерфейс IIS выглядит проще, но конфигурация Apache в виде обычных текстовых файлов гораздо удобнее при выполнении повторяющихся операций, например, создание нового ресурса сводится к копированию части текстового файла и контекстной замене.
Серверы довольно сильно различаются по дополнительным функциям, но за счет того, что и IIS, и серверы Netscape и Apache позволяют использовать расширения, имеется возможность реализовать в своем Web-сервере необходимые решения для каждой конкретной задачи. Apache, например, вообще состоит из отдельных модулей, часто по нескольку вариантов с разными возможностями. Например, если вы планируете поддерживать большое число авторизованных пользователей, можно поменять модуль, хранящий информацию о пользователе (имя и зашифрованный пароль) в обычном файле, на модуль, хранящий эту информацию в индексированной базе данных. Есть для Apache модуль поддержки шифрованного соединения по протоколу SSL, есть модуль “русский Apache”, позволяющий выбирать для клиента кодировку русского текста автоматически в зависимости от типа браузера и ОС пользователя или по его желанию, и многие другие модули.
Нет оснований предполагать, что в ближайшее время положение на рынке серверных продуктов для Internet в России кардинально изменится. С одной стороны, серверы Microsoft быстро улучшаются, что особенно касается сопряжения с базами данных и построения Web-приложений, появляется множество других современных и удобных продуктов для Internet на платформе Windows NT. Все больше организаций строят свои сети на базе Windows NT и для своего Internet-узла они выберут эту же платформу.
С другой стороны, приложения для Unix тоже не стоят на месте, а развернувшаяся борьба с пиратством заставляет все больше организаций учитывать такой фактор, как цена ПО. Да и традиции построения Internet-сайтов и большое число опытных специалистов ориентированы на платформу Unix. Так что увеличение в два и более раза Web-узлов на базе решений Microsoft возможно, но никакого “завоевания Internet” в России, скорее всего, не произойдет.
Михаил Шойхер
С Михаилом Шойхером можно связаться по адресу: msh@alina.ru.
Некоторые серьезные дыры в системе безопасности Windows NT, Windows 95 и Internet Explorer
При запросе документа с определенным именем происходит аварийное завершение работы Web-сервера.
При получении сервером имен Microsoft DNS неожидаемого ответа происходит аварийное завершение работы.
Если Web-приложения на основе Active Server Pages (расширение IIS для создания интерпретируемых сервером страниц) установлены так же, как и в поставляемых примерах, существует возможность получения их исходного текста, в том числе с находящимися в нем паролями для соединения с сервером баз данных.
Определенным образом составленные файлы типа .lnk и .url, содержащие команды запуска любых программ, при работе с Internet Explorer будут автоматически выполнены на компьютере пользователя без запроса подтверждения.
Хакер, создав соответствующую WWW-страницу, может заставить систему Windows NT или Windows 95 произвести авторизацию с подставным сервером без запроса разрешения у пользователя и использовать полученный зашифрованный пароль для словарного подбора или попытаться с его помощью соединиться с компьютером пользователя. Более подробную информацию см. по адресу: http://www.ee.washington.edu/computing/iebug/.
Исправления этих ошибок вы можете найти на сервере Microsoft по адресу: http://www.microsoft.com. Для того чтобы получать самую свежую информацию о дырах в системе защиты Windows NT и продуктах для этой системы, подпишитесь на список рассылки NTSECURITY или NTBUGTRAQ.
Информация о дырах в системе защиты различных версий Unix собирается организацией CERT и доступна по адресу: http://www.cert.org.