Академический Документы
Профессиональный Документы
Культура Документы
СЬ
www.samag.ru
ЛИ
Почему MS SQL медленно работает?
Ищем причины
ЛИ
ТЯ Е
Ж ПИ
Строим защищенную беспроводную сеть:
ЗА ДНИ
РА КУ
Настраиваем UPS под Linux
ЛЫ ГО
ТИ РАС
Как восстановить
удаленные файлы под BSD
К У ВО
О
танавливаем Symantec Antivirus 9.0
НИ НО
ТР
в корпоративной сети
Эффективно управляем
С
подписной индекс 20780
полями пользователей в AD
БЫ
Контролируем безопасность сети
с помощью OSSIM
КА
ИС НН
ЕН
зарубежному софту в России?
УС
БО
НА ТПУ
ИЛ ДА
ТП
НЧ ЖИ
ВО
РА Е О
КО НЕО
АВ СЛ
Л
Л
ХА
ПО
Современный Linux-сервер:
УЕ
ЗА
виртуализируем сеть
в режим read-write
Интервью с Ларри Уоллом –
создателем языка Perl
Настраиваем безопасный
роутер на базе FreeBSD
Пишем систему
динамической защиты
ресурсов в сети
ПОДПИШИТЕСЬ И ЧИТАЙТЕ! Первый раз в Linux-класс!
Роспечать – 20780, 81655 Оппонент мистера Гейтса
Пресса России – 87836
Интер-почта – тел. (495) 500-00-60
оглавление
3 ТЕНДЕНЦИИ WEB
РЕПОРТАЖ 46 Технология AJAX:
как насчет безопасности?
4 PHP – это мой путь решать Появление новых технологий почти всегда приводит
возникающие в Web задачи к снижению уровня безопасности. Как обстоят дела
Итоги конференции «Современные технологии эф- с AJAX? Сергей Яремчук
фективной разработки веб-приложений с использо- grinder@ua.fm
ванием PHP». Дмитрий Горяинов
dg@webclub.ru БЕЗОПАСНОСТЬ
АНАЛИТИКА 50 Настраиваем безопасный роутер
на базе FreeBSD
6 Быть или не быть Как увеличить безопасность FreeBSD, работающей
зарубежному софту в России? в качестве маршрутизатора между локальной сетью
В июне Госдума поставит точку в нашумевшей истории и Интернетом? Василий Озеров
с запретом импортного программного обеспечения. fr33man@fr33man.ru
Ольга Максимович
maksim@ug.ru 56 Пишем систему динамической защиты
ресурсов в сети
АДМИНИСТРИРОВАНИЕ Аудит журналов безопасности операционной системы –
неотъемлемая часть вашей работы. Если обнаружены
10 Современный Linux-сервер: попытки проникновения, на них необходимо немедлен-
виртуализируем сетевые устройства но отреагировать. Андрей Бирюков
Переведя сетевые подключения в категорию виртуаль- mex_inet@rambler.ru
ных, можно значительно упростить их обслуживание
и предусмотреть многие внештатные ситуации. 62 Техника снятия дампа с защищенных
Алексей Барабанов приложений
alekseybb@mail.ru В предыдущей статье мы прошли сквозь распаковщик
и теперь нам необходимо снять дамп. Существует мно-
18 Как работает Sendmail? жество утилит для этой цели, но далеко не всегда по-
Полезные подробности. Часть 2 лученный дамп работоспособен. Крис Касперски
Одна из сильных сторон Sendmail – функциональная kk@sendmail.ru
мощь программы. Но запрятана она порой в дальних
уголках конфигурационных файлов. ОБРАЗОВАНИЕ
Сергей Супрунов
amsand@rambler.ru 70 Первый раз в Linux-класс!
Программы обучения и сертификации.
26 Переключи драйвер NTFS Андрей Маркелов
в режим read-write andrew@markelov.net
С помощью Captive (первой полнофункциональной Open
Source-реализации NTFS-драйвера) вы можете монти- 74 Linux в школе?
ровать Windows-разделы и записывать на них данные Проблемы использования Linux в учебных заведениях.
без опасения их потерять. Антон Ананич Сергей Яремчук
anton.ananich@gmail.com grinder@ua.fm
В
первые Россию посетил основа- были именно бинарными или байт-ори- работке проектов для «внутреннего
тель проекта PHP Расмус Лер- ентированными). Вводится автомати- употребления» использовать исклю-
дорф (Rasmus Lerdorf) и один ческая поддержка Unicode для стро- чительно внутрипонятные (читай – на-
из активных разработчиков ядра и мо- ковых литералов. Происходит обнов- писанные иероглифами) названия пе-
дулей PHP Андрей Змиевский (Andrei ление семантики языка. Добавляется ременных и т. п. С докладом Андрея
Zmievski). поддержка преобразований кодировок Змиевского в виде тезисов можно оз-
Собственно, Андрей Змиевский в различных потоках данных. При этом накомиться на его сайте по адресу:
и стал первым докладчиком на конфе- предполагается возможность опери- http://www.gravitonic.com/talks.
ренции, рассказав о внедрении подде- ровать преобразованиями кодировок Старт конференции был дан, нача-
ржки Unicode в PHP 6. Да-да, вы не ос- для процесса выполнения скрипта, не- ло положено. Но дальше произошло
лышались. Не так уж и давно у нас по- посредственно самого скрипта; ввода- что-то странное. Выступившие вслед
явилась стабильная «пятерка», до сих вывода и файловой системы. за этим докладчики говорили не столь-
пор она еще не стала стандартом де- Возможность управления коди- ко о разработке приложений с исполь-
факто, а уже готовится версия PHP 6. ровкой скрипта (упрощенно это мож- зованием PHP, сколько о чем-то дру-
Причина довольно проста: объем внут- но представить как возможность ис- гом. Прозвучавший доклад «Автома-
ренних переработок, потребовавших- пользовать национальные символы тизация проектных задач и организа-
ся для полномаcштабной поддержки вплоть до иероглифов в названиях пе- ция цикла Build → Package → Deploy»
Unicode, таков, что провести его в ка- ременных), вызвало у аудитории впол- был, может, и интересен в качестве
честве очередного релиза версии 5 не законный вопрос: а зачем собствен- примера автоматизации сопровожде-
просто невозможно. Судите сами. но? Немного замявшись, г-н Змиевс- ния процесса разработки приложений,
Заявлена поддержка принципиаль- кий ответил, что в основном это но- но во-первых, докладчик не коснул-
но нового типа – символьной строки вовведение ориентировано на раз- ся нескольких действительно важных
Unicode и отделение типа «бинарная работчиков из стран Юго-Восточной для этого процесса тем (прежде всего –
строка» (до сих пор все строки в PHP Азии. Там, видите ли, любят при раз- проблемы получения и сборки патчей),
4
репортаж
а во-вторых… Связь с разработкой веб- думаете Yahoo! – это огромная компа-
приложений с использованием PHP ния, у которой целое море серверов,
постепенно начала тускнеть. которые и решают все наши пробле-
Следующий доклад – «Как зара- мы с нагрузкой? Но это совсем не так!».
ботать деньги на Open Source» – про- После чего в живой и активной мане-
шел живее. В большей степени пото- ре наглядно продемонстрировал ауди-
му, что тема довольна близка аудито- тории подходы к выявлению, анализу
рии и животрепещуща. Хотя с тем же и устранению неоптимальных, ресур-
успехом этот доклад можно было про- соемких мест. Кстати, всем рекомен-
читать и на любой другой IT-конферен- дуется смотреть в сторону расширения
ции. После этого Александр Календа- APC (http://pecl.php.net/package/APC).
рев попытался рассказать о методах Следующим пунктом в докладе про-
криптозащиты в b2b веб-приложениях. звучала проблема защищенности веб-
Почему я написал «попытался»? Ну хо- приложений. В том числе рассмотре-
тя бы потому, что 60% времени Алек- но расширение Filter (http://pecl.php.net/
сандр говорил о стандартах и нормо- package/filter).
образующих документах, связанных Третьим ключевым моментом до-
с этой тематикой. По моим наблюде- клада стал разговор о PHP в приме-
ниям, большая часть аудитории, явно нении к современным тенденциям
не сталкивавшаяся с этой проблемой в веб-приложениях. Здесь речь пошла
всерьез, просто потеряла за это время об усовершенствованиях по отноше-
нить, суть и цель повествования. нию к XML, RSS-потоках и, разумеется,
В завершение первого дня прозву- о технологиях асинхронной динамичес-
чали еще два доклада. Первый был кой подкачки. В последнем случае ав-
посвящен дистрибуции PHP-прило- тор-изобретатель языка остался верен
жений с помощью PEAR Installer. Са- JSON (Java Script Object Notation) и про- Выступление Расмуса Лердорфа
мой интересной, на мой взгляд, в нем пагандируемому им расширению PHP-
была часть, посвященная PEAR-ка- JSON. В общем, настоятельно реко- ботки программных продуктов, дист-
налам и возможности использования мендую всем самостоятельно ознако- рибуции, интеграции с другими про-
специализированного сервера. Кажет- миться со слайдами, подготовленными граммными продуктами. И в меньшей
ся, помимо массы догматов, ограниче- расмусом Лендорфом для этого докла- степени о PHP и PHP для разработки
ний и всяких других штучек, призван- да (http://talks.php.net/show/phpclub). современных и эффективных веб-при-
ных усложнить жизнь всем тем, кто не Во второй день так же прозву- ложений. Язык трансформировался
успел вовремя вскочить на подножку чал доклад о применении процедур во что-то другое? Перестал удовлет-
PEAR-экспресса, эта система породи- в СУБД MySQL, Сергей Павлов из ком- ворять современным тенденциям или
ла, наконец, и что-то полезное приме- пании РБК поведал об агрегаторах стал проигрывать на рынке веб-прило-
нительно к реальной жизни. Заверша- приложений. Большой интерес вы- жений другим платформам?
ющий первый день доклад был истин- звал доклад Евгения Климова «Прак- Во второй день конференции мне
ным сыном нашего времени и назы- тика использования технологии XSLT удалось взять интервью у Расму-
вался «AJAX и основы Rich Client». в приложениях php5», который сложил- са Лердорфа и Андрея Змиевского
Разумеется, обойти тему техноло- ся не совсем удачно и из-за нехватки (интервью читайте в июльском номере
гий динамической подкачки и асинх- времени оказался скомканным и об- журнала – примеч. редакции). Я не мог
ронной загрузки, говоря о разработке резанным. удержаться и спросил г-на Лердор-
веб-приложений, сейчас попросту не- В целом конференция оставила фа о том, что он сам думает о срав-
возможно. Другое дело, что в докладе лично у меня двойственное ощущение. нениях PHP с другими языками, о ро-
прозвучал скорее верхний слой про- Тематические доклады наших гостей ли и применимости PHP? В ответ Рас-
блематики, так сказать «AJAX для са- из Yahoo! (и Расмус Лердорф, и Анд- мус очень удивился и сказал, что сам
мых маленьких». Кроме этого был дан рей Змиевский уже несколько лет ра- он об этом думает довольно мало.
некоторый обзор имеющихся в при- ботают именно там), несомненно стали «Я смотрю на Web, я думаю именно
роде библиотек, который, уже почти самым главным событием конферен- о Web. Как только возникает новая
под занавес, свелся к DOJO javascript ции и посвящались именно проблеме задача, решить которую имеющими-
toolkit. Проект уже в стадии предпро- разработки веб-приложений с исполь- ся инструментами становится невоз-
дакшен, и его можно и нужно смотреть, зованием PHP. В большинстве осталь- можно или не удобно – мы что-то до-
трогать руками и т. п. ных докладов язык, технология и тен- бавляем и меняем в PHP. Просто пото-
Второй день конференции начался денции PHP, связь PHP с Web, PHP, му, что PHP – это мой путь решать воз-
с доклада отца-основателя PHP Расму- как инструмент и платформа разра- никающие в Web задачи».
са Лердорфа. Прежде всего г-н Лер- ботки веб-приложений, как бы отош-
дорф заговорил о скорости выполне- ли на второй план. Докладчики гово- Текст: Дмитрий Горяинов
ния веб-приложений: «Вы, наверное, рили об организации процесса разра- Фото: Антон Довгаль
Ольга Максимович
В июне Госдума поставит точку в нашумевшей истории
с запретом импортного программного обеспечения.
Н
азвание проекта федераль- ющих стратегические отрасли и особо прежде всего попадут военный комп-
ного закона «Об информации, важные объекты Российской Федера- лекс, энергетика и транспорт.
информационных технологи- ции, запрещается использование за-
ях и защите информации» так и оста- рубежных программно-технических Цена вопроса
лось бы не столь узнаваемым для ши- средств. В другой говорится о недо- Как известно, безопасность в стране,
рокой публики, если бы не инициати- пустимости наличия в данных средс- в том числе и информационную, обес-
ва депутатов-единороссов. Геннадий твах недокументированных функций. печивают ФСБ и Федеральная служба
Гудков, член Комитета безопасности, Конкретный список объектов и отрас- по техническому и экспортному конт-
и Александр Хинштейн, зампредсе- лей, где планируется запретить зару- ролю. Кстати, в их совместной работе
дателя Комитета по промышленнос- бежный софт, по мысли разработчиков с Минобороны уже есть практика ог-
ти, во втором чтении предлагают до- и авторов поправок, должен устанав- раничения в стратегических отраслях.
полнить законопроект двумя поправ- ливаться правительством не позднее Например, предприятия могут исполь-
ками. Одна устанавливает норму, со- 12 месяцев с момента вступления зако- зовать только антивирусы, на которые
гласно которой в государственных ин- на в силу. Однако уже сейчас очевидно, имеются сертификаты этих ведомств.
формационных системах, обеспечива- что в список стратегических отраслей Что же касается инициативы депутатов
6
аналитика
Гудкова и Хинштейна, то ФСБ с уче- словам, переходят на собственный ные Штаты, либо продолжающих жить
том ряда юридических и технических софт. «Если есть отечественный ана- в России и сотрудничать с компани-
замечаний предложенные поправки лог западного программного обеспе- ей как вольнонаемные программисты.
поддержала, о чем и сообщил в пись- чения, необходимо отдать приоритет С другой стороны, во многих российс-
ме на имя председателя Комитета ГД ему, – говорит Александр Хинштейн. – ких компаниях программное обеспе-
по информационной политике Валерия Это особенно касается военных, стра- чение разрабатывают специалисты
Комисарова статс-секретарь замести- тегических объектов и сохранения гос- из стран третьего мира, в частности
теля директора ФСБ России. Однако тайны. Если иностранная компания Индии, которая входит в число лидеров
комитет, дважды рассмотрев поправ- поставляет оборудование, она будет по предоставлению компьютерных ус-
ки без участия, а потом и в присутствии использовать эту возможность для по- луг. Поэтому говорить о каком-то стра-
авторов, занял другую позицию. лучения секретной информации, раз- тегическом выборе страны в пользу то-
«На мой взгляд, причины того, что ведданных. Это возможно путем внед- го или иного программного обеспече-
поправки не были поддержаны, впол- рения в технику «посторонних объек- ния не очень корректно. Конечно, есть
не очевидны, – сказал в комментарии тов», и такие случаи уже были. Те, кто компании, предлагающие наиболее
«Системному администратору» Дмит- противостоит принятию этого закона, – популярный продукт, не только в Рос-
рий Горовцов, помощник депутата пособники западных разведорганов». сии, такие, например, как Microsoft.
Госдумы РФ Геннадия Гудкова. – Се- Но и в своей стране эта компания пос-
годня российский рынок информаци- Русский Windows тоянно контролируется уполномочен-
онных технологий более чем на 90 про- Несмотря на то, что, по словам Генна- ными органами государственной влас-
центов представлен инструментальны- дия Гудкова, запрет на использова- ти, проходит различные виды антимо-
ми средствами импортного производс- ние иностранного ПО коснется толь- нопольных расследований. Это связа-
тва. 99 процентов – это импортное про- ко 10 процентов действующих в на- но с тем, что компания, занимающая
граммное обеспечение, включающее шей стране информационных систем, столь большую долю на рынке ком-
операционные системы, системы уп- в российских госкомпаниях пока осто- пьютерных программ, может теорети-
равления базами данных и разработки рожно высказываются о перспективах чески злоупотребить своими возмож-
приложений, системы поддержки сете- перехода на отечественные програм- ностями. Любая погрешность в таком
вых протоколов и другие универсаль- мы. Кроме того, российские предпри- массовом продукте мультиплицирует-
ные базовые средства. Соответствен- ятия уже сделали огромные инвести- ся на миллионы компьютеров и может
но существует мощное лобби на раз- ции в приобретение западных продук- создать серьезные сбои в работе жиз-
ных уровнях, отстаивающее интересы тов. Поэтому есть предложения встра- ненно важных узлов, таких как управ-
западных разработчиков и компаний. ивать модули в Windows или другие ление энергоресурсами, нефте- и га-
И для многих оппонентов включение операционные системы, подстраи- зопроводами, аэропортами и вокзала-
поправок в законопроект означает по- вая их под нужды конкретной отрас- ми. В этих случаях действительно мо-
терю финансовых потоков, которые, по ли, а не изобретать велосипед, при- жет существовать проблема».
самым скромным подсчетам, оценива- думывая «русский Windows». Говорят
ются в 12 миллиардов долларов в год. специалисты и о том, что существует Код доступа
Вот цена вопроса. По сути, эти деньги программное обеспечение, не имею- В Microsoft такой проблемы не видят.
главным образом идут на кредитова- щее отечественных аналогов, кото- О том, что исходные коды Microsoft
ние частных западных компаний». рое не может быть заменено. Напри- уже официально переданы России
мер, ПО к турбинам импортного про- и при необходимости их можно про-
Доводы депутатов изводства в РАО ЕЭС, оно поставля- верить на так называемые закладки,
В чем же конкретно заключается опас- ется с ними в комплекте. «Системному администратору» под-
ность? По мнению авторов попра- «Абсолютное большинство про- твердила Кира Кирюхина, руководи-
вок, ввезенная из-за границы техни- граммных продуктов не разрабаты- тель отдела по связям с обществен-
ка на стратегически важных объек- ваются в России и являются плодами ностью корпорации Microsoft. «По-
тах вовсе не гарантирует защиту ин- интеллектуального труда зарубежных нимая, что каждое государство обя-
формации, в том числе и секретной, разработчиков, – сказал в коммента- зано защищать свои национа ль-
от зарубежного поставщика. «У разра- рии «Системному администратору» ные интересы, в Microsoft в 2002 году
ботчиков есть возможность заложить Игорь Динес, член Комитета Госдумы разработали программу Government
«ошибки», которые могут сделать не- РФ по энергетике, транспорту и свя- Security Program (GSP) по сотрудни-
действенными военные системы и сис- зи и председатель подкомитета по ин- честву с государствами в области ин-
темы навигации. При необходимос- формационным технологиям. – Одна- формационной безопасности, – ска-
ти их можно легко вывести из строя. ко, учитывая степень интернационали- зала она. – В рамках программы GSP
На карте военная безопасность наше- зации знаний, сложно говорить, что се- мы предоставляем государствам до-
го государства. Если мы не примем за- годня можно считать национальным ступ к исходным кодам своих продук-
кон – окажемся безоружными», – счи- компьютерным продуктом. Например, тов. Россия была первой страной в ми-
тает Геннадий Гудков. многие программы компании Microsoft ре, подписавшей GSP в 2002 году и по-
Депутаты приводят в пример опыт разработаны с участием российских лучившей доступ к исходным кодам
Англии, Германии, Франции, где, по их специалистов, уехавших в Соединен- Windows и других программ. Все го-
Статья 16. Требования к эксплуата- нической защиты информации, в пределах мента вступления в силу настоящего фе-
ции государственных информацион- своих полномочий определяют требования дерального закона.
ных систем по защите информации в государственных 7. Не допускается эксплуатация госу-
1. Принятие государственной информаци- информационных системах, включая мето- дарственных информационных систем
онной системы в эксплуатацию осущест- ды и способы такой защиты. без надлежащего оформления прав на ис-
вляется в порядке, устанавливаемом ее При создании государственной инфор- пользование ее компонентов, охраняемых
заказчиком, если иное не предусматрива- мационной системы выбор методов и спо- в соответствии с законодательством Рос-
ется в решении о ее создании. собов защиты информации, используемых сийской Федерации об интеллектуальной
Правительство Российской Федерации в информационной системе, осуществля- собственности.
вправе устанавливать обязательные тре- ется из числа методов и способов, содер- 8. Операторы государственных инфор-
бования к такому порядку для отдельных жащихся в указанных требованиях. мационных систем несут ответственность
категорий государственных информаци- Нормативными правовыми актами го- за обеспечение целостности и сохраннос-
онных систем. сударственных органов Российской Феде- ти содержащейся в них информации и обя-
2. Федеральные информационные сис- рации может предусматриваться возмож- заны принимать меры по предотвращению
темы подлежат регистрации в случаях, ус- ность неприменения отдельных требова- утраты или искажения информации, а при
тановленных федеральным законом. ний для определенных государственных необходимости – меры по восстановлению
Порядок регистрации федеральных ин- информационных систем. утраченной информации.
формационных систем устанавливается 5. Технические средства, программно-
Правительством Российской Федерации. технические средства и средства защиты Статья 18. Защита информации
Порядок регистрации региональных информации, содержащейся в государс- 1. Защита информации заключается в при-
информационных систем может быть ус- твенной информационной системе, долж- нятии правовых, организационных и тех-
тановлен нормативным правовым актом ны иметь подтверждение соответствия нических (программно-технических) мер
субъекта Российской Федерации. обязательным требованиям, установлен- в целях:
3. Обеспечение целостности и сохран- ным в соответствии с законодательством 1) обеспечения целостности и сохраннос-
ности информации, содержащейся в го- Российской Федерации о техническом ре- ти информации, недопущения ее не-
сударственных информационных систе- гулировании. санкционированного изменения или
мах, осуществляется путем установления 6. В государственных информаци- уничтожения;
и соблюдения единых требований защиты онных системах, обеспечивающих стра- 2) соблюдения конфиденциальности ин-
информации от несанкционированного до- тегические отрасли и особо опасные формации ограниченного доступа;
ступа или изменения, в том числе при осу- (важные) объекты Российской Феде- 3) реализации права на доступ к инфор-
ществлении доступа к информационно-те- рации, не допускается использование мации;
лекоммуникационным сетям. зарубежных программно-технических 4) недопущения несанкционированного
4. Федеральный орган исполнительной средств. Перечень стратегических от- воздействия на средства обработки
власти в области обеспечения безопаснос- раслей и особо опасных (важных) объ- и передачи информации;
ти и федеральный орган исполнительной ектов Российской Федерации устанав- 5) недопустимости недокументирован-
власти, уполномоченный в области проти- ливается Правительством Российской ных функций программно-техничес-
водействия техническим разведкам и тех- Федерации не позднее 12 месяцев с мо- ких средств.
8
аналитика
чественные разработки, которые впол- водит ряд работ, в частности, «Багет- блему в долгий ящик, а не решить ее
не могут составить конкуренцию зару- АСУ» и «Каверна-АСУ», цель кото- сегодня».
бежным аналогам, – сказал «Систем- рых – переход на отечественную эле-
ному администратору» Дмитрий Горов- ментную базу в системах управления Буква закона
цов. – Российские разработчики, со- для стратегических отраслей и особо Точка в истории с попыткой запрета за-
здав программные продукты, не толь- важных объектов России. Предприятия рубежного ПО, скорее всего, будет пос-
ко не уступающие западным аналогам, и организации радиоэлектронной про- тавлена уже в самое ближайшее вре-
но и превосходящие их, не позволили мышленности Роспрома при выпол- мя. Согласно регламенту, независимо
иностранным компаниям окончатель- нении работ для специальных заказ- от решения Комитета Госдумы по ин-
но завоевать российский рынок. А их чиков – МО, ФСБ, МЧС – используют формационной политике, депутаты
успешная эксплуатация подтвердила, программное обеспечение ЗАО «Кон- имеют право вынести свои поправки
что отечественные разработки новых церн ВНИИНС»: операционную систе- на отдельное голосование на пленар-
информационных технологий вполне му «ОС МСВС» 3.0, систему управле- ном заседании Госдумы в день, когда
конкурентоспособны и при соответс- ния базами данных «Линтер-ВС» 6.0 будет рассматриваться данный проект
твующей поддержке государства мог- и многое другое». федерального закона во втором чте-
ли бы со временем вытеснить запад- «Вполне правомочной» постановку нии. Так, собственно, депутаты Гудков
ные аналоги с российского информа- вопроса о необходимости приоритет- и Хинштейн и намерены поступить.
ционного рынка. Например, в Институ- ного внедрения отечественных разра- Кроме того, еще до второго чте-
те системных исследований РАН, кото- боток считает и заместитель министра ния, они предполагают обсудить поп-
рый возглавляет академик Владимир информационных технологий и связи равки на президиуме фракции «Еди-
Борисович Бетелин, создана и успеш- Дмитрий Милованцев. Однако, высту- ная Россия», чтобы заручиться подде-
но действует система «Багет». Эта раз- пая на заседании Комитета ГД по ин- ржкой парламентского большинства.
работка позволяет осуществлять кон- формационной политике, он подчерк- Так что, по сути, принятие поправок –
троль за функционированием инфор- нул, что такой «сложный и комплекс- вопрос политический: либо идею Гуд-
мационных систем, обеспечением бе- ный вопрос решить двумя поправками кова – Хинштейна поддержат, либо нет.
зопасности их работы. в рамочный законопроект невозмож- В остальном рассмотрение законопро-
В Фонде социального страхования но», и предложил разработать новый екта – технические детали. Третье чте-
Российской Федерации внедрена и ус- проект федерального закона, посвя- ние, как правило, – всего лишь линг-
пешно экcплуатируется система управ- щенного вопросам поддержки отечест- вистическая экспертиза. Да и дальше,
ления базами данных, разработанная венного программного обеспечения. когда законопроект поступает на рас-
академиком РАЕН Сергеем Станис- «На словах Дмитрий Милован- смотрение в Совет Федерации и под-
лавовичем Ковалевским. Кроме того, цев поддержал идею депутатов Гуд- пись Президента, текст, как правило,
в настоящее время ФГУП «НИИ авто- кова и Хинштейна, – прокомментиро- уже остается без изменений. А потому,
матической аппаратуры имени акаде- вал позицию зам. министра Дмитрий быть или не быть зарубежному софту
мика В.С.Семенихина», ведущее в этой Горовцов, – однако на деле это, ско- в России, окончательно решит второе
области предприятие Роспрома, про- рее всего, означает – отложить про- чтение законопроекта.
Современный Linux-сервер:
виртуализируем сетевые устройства
Алексей Барабанов
В серверном эксплуатационном цикле часто возникает потребность во всевозможных
манипуляциях над сетевыми подключениями в режиме on-line. Переведя последние
в категорию виртуальных, можно значительно упростить их обслуживание
и предусмотреть многие внештатные ситуации.
С
етевые интерфейсы в серверах подхода вы можете встретить во мно- ется, – от «рождения» и до «смерти» бу-
обычно ассоциируются с чем- гих системах, например, во встроен- дет eth0. А вот и нет, как бы того не хо-
то неизменным и предопреде- ных Linux или при создании виртуаль- телось многим наивным скриптописа-
ленным. Их число, топология подклю- ных серверов. Рассмотрим предпо- телям, eth0 будет лишь в идеальном
чения и настройки, как правило, зара- сылки, идею и реализацию перевода случае при установке системы прямо
нее определяются в проектном зада- сетевых интерфейсов в виртуальный на данный системный блок. Если же,
нии и не меняются в процессе штат- режим. В качестве платформы будем что более реально, сервер не устанав-
ной эксплуатации. Но даже в таком использовать openSUSE Linux версий ливается каждый раз с нуля, а копиру-
идеализированном рассуждении ста- 10.0 и 10.1 [1]. Все несоответствия меж- ется через образ системы или всего
тичность интерфейсов весьма услов- ду ними я отмечу особо. Итак, начнем жесткого диска, то, скорее всего, даже
на. Возможен и иной взгляд на под- с перечисления возможных проблем, единственный интерфейс будет иметь
систему, отвечающую за сетевые ин- не решаемых в рамках традиционной иное название. Eth1 и далее, в том слу-
терфейсы. Безусловно, это всего лишь настройки сети. чае, если полагаться на автоматичес-
некий технический прием или рекомен- кую систему наименования устройств,
дация, и каждый из вас волен следо- Исходные предпосылки использованную в udev, что для совре-
вать ей или предпочесть консерватив- Рассмотрим «редкий» вариант, когда менных систем является стандартом.
ный вариант настроек. Более того, и не у сервера всего лишь один сетевой ин- Но в серверах, как правило, более
откровение, так как элементы такого терфейс. Что тут сложного, спрашива- одного интерфейса. И если их назва-
10
администрирование
ния в некоторый момент упорядочены
и устраивают системного админист-
ратора и используемые им настроеч-
ные скрипты, то представим, что мо-
жет произойти в случае отказа одно-
го из интерфейсов. Например, произо-
шел отказ в процессе старта. В ста-
рых системах, без использования
udev, происходило смещение нумера-
ции устройств или фактическая пере-
коммутация соединений. Интерфейсы,
предназначенные для внутрисетевых
соединений, могли переключиться на
внешние линии. Практически это озна-
чало крах всей системы защиты. Сов-
ременные скрипты, ориентированные Рисунок 1. Сравнение традиционного способа настройки с виртуализованным интерфейсом
на udev, привязывают имена сетевых
интерфейсов к их физическим адре- рез ip link set) может привести к наруше- вер в защищенное состояние. А вот
сам или PCI-идентификаторам. Мож- нию работы сетевых служб, использую- иная схема, используемая в Fedora
но быть уверенным, что катастрофи- щих (прослушивающих) адрес данного Core и RHEL, совершенно неприем-
ческого «выворачивания» сервера интерфейса. Это в том благоприятном лема. Кстати, как и всякое примене-
внутренними интерфейсами наружу случае, если вы уверены, что созданная ние iptables-save/restore. Дело в том,
не произойдет. Но есть иная беда. Се- «на лету» аварийная схема при следу- что, как уже указано, вовсе не обяза-
тевая конфигурация, созданная авто- ющем рестарте не сломается. тельно сетевые интерфейсы старту-
матическим образом, может потерять Еще один редкий сейчас крэш-сце- ют нужным образом. Поэтому не факт,
свое сбалансированное состояние, нарий: сервер или поставляется в ви- что iptables-restore создаст те правила,
и очередная перезагрузка может при- де «черного ящика», или обслуживает- которые требуются из-за изменившей-
вести к новому изменению имен интер- ся на удаленной площадке привлечен- ся схемы наименования интерфейсов.
фейсов из-за отказа одной из сетевых ным техником. Здесь возможна ошиб- В схеме SuSE есть скрипт, который те-
карт. Впрочем, и при добавлении сете- ка кабельной коммутации, что может оретически может проанализировать
вой карты в систему с udev такие слу- привести к смене назначений сетевых реальное состояние сети и адаптиро-
чаи нередки. Итогом подобного про- соединений – внутрисетевые на вне- вать сетевой экран нужным образом.
цесса может стать частичный или пол- шние и наоборот. При традиционной Минус только в том, что сетевой эк-
ный отказ стартовых сетевых скрип- разметке сетевых интерфейсов не су- ран должен подниматься не отдельным
тов, то есть изоляция сервера от се- ществует возможности автоматически скриптом по расписанию SysVinit, а
ти. Для противодействия этому в сис- исправить ошибку внешнего кабельно- синхронно с интерфейсом, на который
темах с udev рекомендуется приме- го подключения. он настраивается! Увы, хотя разработ-
нять постоянные, или персистентные Теперь пример из смежной облас- чики Red Hat, Inc. далеки от этой прос-
(от persistent – постоянный) сетевые ти. Давайте задумаемся о том, как про- той мысли, но и в SuSE не лучше. Не
имена. Увы, в такой схеме главное – изводится включение сетевого экра- может система безопасности старто-
исключить столкновение переимено- на в процессе старта сервера. Самый вать, во-первых, после поднятия сете-
ваний. Другими словами, сетевые ин- грамотный из мною наблюдаемых – вых интерфейсов (и ведь никто не нор-
терфейсы можно называть как угодно, это способ, использованный в дис- мирует данное «после») и, во-вторых,
но только не по схеме ethN, принятой трибутивах SuSE. Безусловно, в ка- вне всякой связи с настройкой дина-
по умолчанию. честве серьезного решения это со- мических сетевых интерфейсов (wifi,
Выход из строя сетевой карты не- вершенно неприемлемо (практически ppp и прочие ADSL).
посредственно в ходе эксплуатации бытовой вариант). Отмечу лишь од-
потребует замены физического интер- но важное качество: в этом сетевом Возникновение базовой
фейса, то есть в процессе очередного экране выделена отдельная стадия идеи
старта произойдет добавление следу- предварительной настройки – снача- Причины для определенного рода оза-
ющего номера в базу udev при обнару- ла срабатывает SuSEfirefall2_init пос- боченности несовершенством сетевых
жении нового устройства, что сведет- ле старта boot.localnet, а потом уже настроек перечислены. Но путей ре-
ся к ранее описанной проблеме при- SuSEfirewall2_setup после $network. шения указанных проблем множест-
вязки имен. Но можно и рассмотреть Не буду обсуждать, что эти скрип- во. Например, можно проследить, как
существование в серверном блоке се- ты делают конкретно, меня ни один развивались (если не сказать – ме-
тевой карты, рассчитанной на горячую из них не устраивает, но главное – тались!) предложения разработчиков
замену. Тут мы сталкиваемся с иной здесь продемонстрирована необхо- SUSE по настройке персистентных се-
сложностью. Простое отключение ин- димость нулевой фазы настройки се- тевых имен от версии дистрибутивов
терфейса через ifdown (как вариант че- тевого экрана, которая переводит сер- 9.х, где эта проблема возникла, до ис-
12
администрирование
вне зависимости от текущего состояния коммутации меж- Итак, произведем подобную настройку. Прежде всего
ду ними. Сама же коммутация из стадии настройки пере- отключим имеющийся сетевой интерфейс:
водится в категорию состояния комплексного сетевого со-
единения, включающего сетевой мост и предназначенные # ifdown eth0
к подключению физические сетевые интерфейсы. eth0 device: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
eth0 configuration: eth-id-00:0c:29:89:80:c2
Если сетевая карта вышла из строя, то подключается
предназначенная на замену. Если в «джек» сетевой кар- # ip link sh
ты вставлен «плуг» другого кабеля, то она подключается 1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
на правильный виртуальный интерфейс согласно произ- link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
веденной кабельной коммутации после проверки трафика 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:89:80:c2 brd ff:ff:ff:ff:ff:ff
на данном кабельном подключении. Если нужно отключить 3: sit0: <NOARP> mtu 1480 qdisc noop
сервер временно от некоторой сети, то можно не вынимать link/sit 0.0.0.0 brd 0.0.0.0
кабель из сетевой карты, не останавливать сетевые серви-
сы, не запирать firewall, а просто отсоединить физический Затем переименуем его, так как «реальное» имя нам
интерфейс от используемого моста. Но на этом преиму- понадобится далее для создаваемого виртуального ин-
щества не кончаются. Все почти так же, как и с вытянутым терфейса:
носом киплинговского слоненка.
«Физика» работы сетевого моста требует, чтобы исполь- # ip link set dev eth0 name hweth0
# ip link sh
зуемое аппаратное устройство принимало из сети пакеты
для адреса сетевого моста, в который это устройство вклю- 1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
чено. Такое возможно, если в сетевой карте отключить аппа- 2: hweth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
ратную фильтрацию пакетов и перевести ее в promiscuous- link/ether 00:0c:29:89:80:c2 brd ff:ff:ff:ff:ff:ff
3: sit0: <NOARP> mtu 1480 qdisc noop
режим или, как будем называть это далее, перевести в ре- link/sit 0.0.0.0 brd 0.0.0.0
жим прослушивания. Самый простой способ добиться это-
го – поднять интерфейс с адресом 0.0.0.0 или, что более вер- Теперь переименованный интерфейс снова можно вклю-
но, вовсе без адреса. Собственно, в ином состоянии утилита чить. Впредь он будет играть роль простого элемента ком-
brctl откажется подключать интерфейс к мосту. И в процессе мутации без собственного IP-адреса:
подключения интерфейс будет переведен в режим прослу-
шивания автоматически. Но в этом тезисе ничего не сказа- # ip link set dev hweth0 up
# ifconfig hweth0
но про наличие действительного адреса у самого сетевого
моста. Он может иметь реальный адрес, может иметь не- hweth0 Link encap:Ethernet HWaddr 00:0C:29:89:80:C2
inet6 addr: fe80::20c:29ff:fe89:80c2/64 Scope:Link
сколько адресов как алиасы (синонимы), может иметь ад- UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
рес, немарштуризируемый в используемой сети, или вов- RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
се не иметь адреса. Ну и, наконец, сетевой мост может во-
collisions:0 txqueuelen:1000
обще не соединяться с физическим интерфейсом. Тогда он RX bytes:2629 (2.5 Kb) TX bytes:3211 (3.1 Kb)
образует полностью виртуальный коммутатор внутренней Interrupt:177 Base address:0x1400
сети, к которому могут подключаться виртуальные маши-
ны через виртуальные же интерфейсы, и использовать его Создадим сетевой мост с предпочтительным именем,
как внутреннюю сеть кластера. Рассмотрим эти варианты в нашем случае это eth0, так как виртуализацию этого ус-
подробнее и проверим их экспериментально. тройства мы и производим:
И это объяснимо, так как виртуальный интерфейс пока server:~ # ping -c 1 192.168.0.111
не скоммутирован ни с одним реальным физическим ин- PING 192.168.0.111 (192.168.0.111) 56(84) bytes of data.
терфейсом, то есть не подключен ни к одной сети. Прове- 64 bytes from 192.168.0.111: icmp_seq=1 ttl=64 time=0.498 ms
14
администрирование
туальными. Например, виртуальные устройства, создава-
емые в качестве туннельных. Но ведь самое главное пре-
имущество сетевого моста в том, что он позволяет рабо-
тать с включенными в него интерфейсами на уровне L2
модели ISO OSI. Поэтому наиболее уместным кандидатом
на такую интеграцию можно считать виртуальный интер-
фейс гостевого сервера. Итак, рассмотрим, как можно ма-
нипулировать сетевыми подключениями вложенного серве-
ра UML (user mode linux), подключенного к специально со-
зданным сетевым мостам. Этот пример, к сожалению, не-
доступен на openSUSE Linux 10.1 из-за прекращения под-
держки UML в указанной версии. Утилиты для настройки
специальных виртуальных устройств tun/tap можно найти
только в версии 10.0 этого дистрибутива. И хотя альтерна-
тивный вариант виртуализации Xen, который работает с се-
тью точно так же, присутствует и там и там, мы будем де- Рисунок 3. Тестовая система с виртуальными интерфейсами
и сетями
монстрировать все приемы на UML, поскольку эта техно-
логия более «прозрачна» для анализа. ются в командной строке. И ОС, запущенная внутри вир-
Предположим, что все необходимые элементы для за- туальной машины (в случае UML, сама модифицирован-
пуска виртуальной ОС уже созданы. Подробно данная те- ная ОС и является такой виртуальной машиной) использу-
ма будет затронута в следующих статьях цикла. Пока про- ет эти псевдоустройства в качестве эмулятора аппаратных
шу поверить «на слово». Структура тестовой системы изоб- сетевых интерфейсов. На стороне хостовой машины уст-
ражена на рис. 3. ройства tun/tap подключаются внутрь сетевых мостов, ес-
Внутри хостовой, той, которая служит основой, машины ли предполагается разрешить на них работу на уровне L2.
создан ряд сетевых мостов по схеме, описанной выше: Мы так и поступим:
16
администрирование
Получился безадресный сетевой мост, который работает В случае использования виртуальных серверов вообще
как arp-прокси и транслирует трафик с виртуальных хостов. такая настройка является единственно возможной. Но не-
В чем его ценность? Такая схема позволяет защитить хос- льзя же каждый раз выполнять приведенные в статье ко-
товую ОС от враждебного трафика сети, если вместо при- манды, даже если их записать в отдельный скрипт. О том,
ватной сети используется, например Интернет. Еще один как встроить предлагаемую схему разметки сетевых уст-
распространенный случай использования, когда безадрес- ройств в структуру реальных стартовых скриптов без ка-
ный хостер служит платформой для запуска виртуальных ких-нибудь конфликтов для работы остальных подсистем,
гостевых ОС, каждой со своим собственным адресом. Ну и, поговорим во второй части статьи.
наконец, ничего не мешает применять на таком несущем
сетевом мосте собственную сетевую разметку, не маршру- Ссылки:
тизируемую общим порядком, создавая скрытую служеб- 1. Сайт проект Open SUSE – http://en.opensuse.org/Welcome_to_
ную сеть. Есть, правда, и тут некоторые «подводные кам- openSUSE.org и область загрузки дистрибутива openSUSE 10.0 –
ни». Дело в том, что процедура взаимодействия сетевых http://ftp.opensuse.org/pub/opensuse/distribution/SL-10.0-OSS.
узлов на уровне L2 является слабо защищенной. И в неко- 2. Проект альтернативных сетевых скриптов – http://etcnet.org.
торых сетях используются самодельные службы и другие 3. Страница wiki, на которую переадресует бывший «домаш-
нестандартные настройки, контролирующие канальное вза- ний» сайт проекта IEEE 802.1d ethernet bridging (http://bridge.
имодействие. И хотя описанный выше прием с безадрес- sourceforge.net) – http://linux-net.osdl.org/index.php/Bridge.
ным мостом прекрасно работает (не говоря уже, что такой 4. Andrew S. Tanenbaum, Jorrit N. Herden, and Herbert Bos, Vrije
классический способ настройки моста описан в докумен- Universiteit, Amsterdam, May 2006, «Can We Make Operating
тации), но бывали случаи, когда такая настройка действо- System Reliable and Secure?» – http://www.computer.org/portal/
вала как DoS-атака. Точно так же стоит очень вниматель- site/computer/menuitem.5d61c1d591162e4b0ef1bd108bcd45f3/
но отнестись к множеству физических интерфейсов, объ- index.jsp?&pName=computer_level1_article&.
единенных в мост, – их неверное подключение может со- 5. User Mode Linux. Set up the network – http://user-mode-linux.
здать неконтролируемые пути доступа или утечки трафи- sourceforge.net/networking.html.
ка и тоже стать источником проблем L2. 6. openSUSE. Xen and Virtual Network – http://en.opensuse.org/
Xen3_and_a_Virtual_Network.
Предварительные итоги 7. Закляков П. Разводной мост на Linux (bridging firewalls). – Жур-
Итак, подмена сетевых устройств виртуальными сетевыми нал «Системный администратор», №4, 2003 г. – 42-55 с. – http://
мостами создает массу возможностей для манипуляции. www.samag.ru/cgi-bin/go.pl?q=articles;n=04.2003;a=07.
Цитата с http://forum.oszone.net
Сергей Супрунов
18
администрирование
Ужас, летящий F-строки заносят в определённый Таблица 1. Коды строк sendmail.cf
на крыльях ночи класс содержимое указанного фай- Код Описание
При первом просмотре основной кон- ла. Строки типа K задают базы дан- C Классы
фигурационный файл, sendmail.cf, ных, которые в дальнейшем могут D Макросы
особенно ближе к концу, напомина- использоваться в правилах преобра-
F Файлы с классами
ет скорее двоичный код, чем что-то зования.
H Поля заголовка
читаемое, и тем более редактируе- Например, так подключается ба-
мое. Но на самом деле всё не так уж за mailertable: K Базы данных
Несмотря на то что cf-файл, в об- присутствуют строки Cwlocalhost $u Имя пользователя из адреса получателя
щем-то, не предусматривает прямого и Cwdomain.ru (где domain.ru – до- $w Имя данного хоста
редактирования (для этого служит ме- менное имя нашего сервера). Если $x Полное имя отправителя
ханизм m4, о котором поговорим в сле- для указания хостов используется $z Домашний каталог получателя
дующем разделе) и генерируется авто- файл local-host-names, он подклю-
матически, он достаточно хорошо про- чается следующей строкой: DZ – этот макрос задаёт версию
комментирован. конфигурации Sendmail, например:
Рассмотрим представленные в нём Fw-o /etc/mail/local-host-names DZ8.13.4.
секции и наиболее характерные пара-
метры. Строки, начинающиеся с «#» – Здесь параметр -o говорит о том, Options
комментарии. Тип параметра задаётся ч то н е ну ж но выд ав ать с о о б - Эта достаточно большая секция со-
первой буквой строки (см. таблицу 1). щение об ошибке, если указан- держит массу опций, управляющих те-
Строка, начинающаяся с пробельного ный файл отсутствует. Имя фай- ми или иными аспектами работы поч-
символа, – продолжение предыдущей. ла – используемое по умолча- тового сервера. Ниже приведено не-
Пустые строки игнорируются. нию, но в принципе может быть сколько примеров (для некоторых оп-
Классы предназначены для описа- произвольным. В старых верси- ций по старой памяти существуют со-
ния имён, объединённых одним при- ях Sendmail использовался файл кращённые однобуквенные наимено-
знаком. Сразу после буквы C следует /etc/sendmail.cw. вания, но рекомендуется использовать
односимвольное или многосимвольное DS – имя «умного» (smart) хоста, новый стиль):
(в фигурных скобках) имя класса. или почтового релея, который бу- O AliasFile – определяет пу ть
Н а п р и м е р, к л а с с з а п р е щ ё н - дет использоваться для пересыл- к файлу псевдонимов (см. ниже).
ных для использования в доменном ки почты. Если Smart-host указан, O MaxMessageSize – максималь-
имени символов определяется как то вся исходящая почта будет на- ный размер обрабатываемого сооб-
«CB! % @ : ^». правляться на него, а он уже зай- щения. Разумное ограничение дан-
Макросы представляют собой что- мётся определением маршрутов от- ного параметра позволит услож-
то типа переменных, позволяя в даль- дельных сообщений и их дальней- нить реализацию атак, направлен-
нейшем обращаться к единожды опре- шей отправкой. Подробнее об этом ных на заполнение всего доступно-
делённому макросу по имени (перед режиме работы мы поговорим чуть го пространства в почтовых ящиках
которым указывается префикс $). Су- позже. пользователей. Однако не забы-
ществует ряд предопределённых мак- CO @ % ! – символы, которые за- вайте, что в наши дни прослежива-
росов (некоторые из них представле- прещены для использования в име- ется тенденция к увеличению сред-
ны в таблице 2), которые можно ис- нах пользователей, поскольку яв- него объёма вложений, и отправка
пользовать по мере необходимости. ляются разделителями «именной» по почте файла в 20-30 Мб являет-
Для них зарезервированы строчные и доменной частей адреса. ся не такой уж редкостью.
буквы. Для иного использования пред- DnMAILER-DAEMON – так наш O HoldExpensive – вы можете
назначены прописные буквы или мно- Sendmail будет представляться объявить (с помощью флага «e»
госимвольные имена. в сообщениях об ошибках. в M-строке) агента доставки как «до-
вителя, такое сообщение доставляется на указанный ад- содержит хотя бы один $=<знач> Фрагмент равен значению <знач>
рес. По умолчанию крайним оказывается postmaster. символ: $~<знач> Фрагмент не равен <знач>
20
администрирование
R$* ! $+ $2 @ $1 Таблица 4. Операторы преобразования
Оператор Значение
Следующее правило (взято из набора SParse1) демонс- Ссылка на фрагмент данных, соответствующих шаблону.
$<n>
трирует взаимодействие с базой: вместо фрагмента, соот- <n> – порядковый номер шаблона
ветствующего шаблону (в угловых скобках), подставляет- $: Применить правило один раз
ся значение из mailertable. Слово «lookup» здесь является $@ Применить правило и выйти из набора
простым комментарием: $> Передать на обработку другому набору правил
$( . . .$) Поиск данных в базе
R< $+ > $* $: < $(mailertable $1 $) > $2 lookup
Тестирование правил
Как видите, синтаксис правил обработки довольно сложен
(по крайней мере, читать их очень неудобно). Чтобы убе-
диться в правильности работы, в Sendmail предусмотрен
специальный режим тестирования:
Рисунок 1. Последовательность применения наборов правил
serg$ sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 admin@my
canonify input: admin @ my
Canonify2 input: admin < @ my >
Canonify2 returns: admin < @ my . domain . ru . >
canonify returns: admin < @ my . domain . ru . >
parse input: admin < @ my . domain . ru . >
Parse0 input: admin < @ my . domain . ru . >
Parse0 returns: admin < @ my . domain . ru . >
ParseLocal input: admin < @ my . domain . ru . > Рисунок 2. Схема работы макропроцессора
ParseLocal returns: admin < @ my . domain . ru . >
Parse1 input: admin < @ my . domain . ru . >
Здесь показана канонизация адреса, заданного в фор-
Parse1 returns: $# local $: admin
parse returns: $# local $: admin мате UUCP с детализацией 5-го уровня (21 – категория от-
ладки, отвечающая за трассировку правил обработки ад-
В данном примере мы прогоняем адрес admin@my (пред- ресов). Выводится информация не только о том, через ка-
полагая, что полное имя нашего домена – my.domain.ru) че- кие наборы правил проходит адрес, но и какие действия
рез правила 3 и 0. В первом столбце указываются имена выполняются.
наборов правил, во втором – тип данных (вход или выход), Для выхода из режима отладки используйте коман-
и после двоеточия – обрабатываемая информация. ду «/quit». Полный список доступных команд можно уви-
Как видите, сначала адрес канонизируется (краткое деть, введя «?».
имя домена дополняется до полного; обратите внима-
ние на завершающую точку). Затем Sendmail анализиру- Знакомьтесь: m4
ет полученный адрес (определяется, что он является ло- Естественно, долго мириться с произволом формата
кальным). sendmail.cf мало кто хотел, поэтому со временем задача
При необходимости можно повысить детализацию вы- создания этого файла была возложена на макроязык m4.
водимой информации, используя флаг отладки -d: Этот язык является универсальным и пригоден для реше-
ния достаточно широкого круга задач, прежде всего свя-
serg$ sendmail -bt -d21.5 занных с обработкой текста. В частности, он использует-
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) ся в Autoconf. Однако его использование для конфигура-
Enter <ruleset> <address> ции Sendmail является, пожалуй, наиболее известным при-
> 3 my.uudom.ru!user
canonify input: my . uudom . ru ! user менением.
rewritten as: my . uudom . ru ! user < @ > Эпиграф к статье как нельзя лучше отражает поло-
rewritten as: my . uudom . ru ! user
rewritten as: < my . uudom . ru ! user >
жение дел с настройками Sendmail. Сначала вы создаёте
rewritten as: my . uudom . ru ! user конфигурационный файл в формате m4 (так называемый
Canonify2 input: user < @ my . uudom . ru > «master config», или mc-файл). Затем макропроцессор m4,
rewrite: RHS $&{daemon_flags} => "(NULL)"
rewritten as: $| user < @ my . uudom . ru > руководствуясь этим файлом, генерирует cf-файл из вхо-
rewritten as: user < @ my . uudom . ru > дящих в поставку Sendmail шаблонов (макросов). Схема-
Canonify2 returns: user < @ my . uudom . ru >
тически этот процесс изображён на рис. 2.
rewritten as: user < @ my . uudom . ru >
canonify returns: user < @ my . uudom . ru > Фактически, m4 собирает воедино элементы шабло-
нов согласно опциям, имеющимся в mc-файле. Шаблоны
Введение в m4 ются символы «`» и «’», которые в случае не- причём в header и footer используются
В далёком 1977 году, когда Sendmail ещё обходимости можно переопределить с по- ссылки на первый аргумент, т.е. вызов этих
даже не планировался, Брайан Керниган мощью встроенного макроса changequote. макросов подразумевается с одним пара-
(Brian Kernighan) и Деннис Ритчи (Dennis Во-вторых, в качестве признака конца метром. Этот файл мы подключим как шаб-
Ritchie), внёсшие немалый вклад в разви- строки используется макрос dnl. (То есть лон. Далее файл с исходной информацией
тие UNIX-систем (достаточно упомянуть после него вы можете указывать любые (обратите внимание на макро-вставки):
язык программирования C), разработали комментарии). Для управления потоком
макропроцессор m4. служит макрос divert. В частности, divert(0) serg$ vi test.in
header(`Страница компании')
Его основное назначение – «пропус- очищает буфер и направляет вывод в нуле- company рада приветствовать Вас ↵
кать» через себя поток информации, вы- вой поток (всего существует 10 выходных на своём сайте!
footer(`Заходите снова!')
полняя макроподстановки по мере их об- потоков 0-9, которые на выходе объединя-
наружения. Он с успехом может использо- ются в порядке их нумерации). Конструк- Результат работы будет таким:
ваться для программирования, генериро- ции $n, где n – некоторое число, являются
вания документации. Но наиболее попу- ссылками на параметры макроса, разме- serg$ m4 test.m4 test.in
<H1>Страница компании</H1>
лярным применением является генерация щённые на соответствующих местах (на- Наша компания рада приветствовать ↵
конфигурационных файлов и прочие воп- пример, $1 ссылается на первый параметр Вас на своём сайте!
<HR><SMALL>Заходите снова!</SMALL>
росы администрирования. указанного макроса). Рассмотрим простей-
Фундаментом m4 является набор встро- ший пример. Для начала создадим файл Фактически, несколько последователь-
енных макросов, которые служат для управ- макроопределений: ных файлов рассматриваются как единый
ления потоком данных, ветвлений, опреде- поток. То есть того же эффекта можно до-
ления пользовательских макросов, некото- serg$ vi test.m4 биться, объединив макроопределения и ис-
divert(0)dnl
рых математических операций. define(`header', `<H1>$1</H1>')dnl ходный текст в одном файле.
Язык m4 отличается довольно-таки define(`footer', ↵ Чтобы подробнее познакомится с m4,
`<HR><SMALL>$1</SMALL>')dnl
своеобразным синтаксисом. Во-первых, define(`company', `Наша компания')dnl просмотрите страницу справки man m4(1).
в нём различаются открывающая и закры- Также много интересного можно найти
вающая кавычки. По умолчанию использу- Здесь мы определили три макроса, в шаблонах Sendmail.
22
администрирование
Кстати, поскольку mc-файл – это обычный файл в фор- Приведённый фрагмент показывает, что по умолчанию
мате m4, то он может содержать помимо макроопределений почта «служебных» пользователей будет перенаправлять-
и собственно входные данные. При необходимости вы мо- ся пользователю root, в то время как почта пользователя
жете указать нужные cf-строки прямо здесь (хорошим при- root уйдёт в ящик администратора admin (это следует за-
мером является mc-файл основного разработчика Sendmail дать вручную).
Эрика Олмана – /usr/share/sendmail/cf/cf/knecht.mc). Всё работает правильно благодаря тому, что подстанов-
Последовательность подключения различных шабло- ка псевдонимов выполняется рекурсивно – после первой за-
нов можно найти в самом начале cf-файла – обратите вни- мены осуществляется ещё один «прогон» с новым адресом,
мание на строки, начинающиеся с «#### $Id:». Самым пер- и так далее, пока не будет выполнено ни одной подстановки.
вым подключается cfhead.m4, в котором определены ос- Кстати, чтобы не допустить бесконечной подстановки в слу-
новные макросы. чае ошибки, когда образуется петля псевдонимов, полезно
Если быть точным, то в команде m4 подключается cf.m4 – использовать опцию «O MaxAliasRecursion», которая задаёт
вручную создание cf-файла обычно запускается такой ко- максимальное число «проходов» по списку (в mc-файле за-
мандой: даётся как define(`confMAX_ALIAS_RECURSION’)).
В правой части может находиться не только один
m4 /usr/share/sendmail/cf/m4/cf.m4 domain.ru.mc > ↵ пользователь. Перенаправление может выполняться для
domain.ru.cf
нескольких пользователей (они разделяются запяты-
Но одной из первых директив cf.m4 значится следую- ми), на адрес в другом домене, на список адресов, ука-
щая: занный в файле (подключается с помощью конструкции
«:include: <имя_файла>»).
ifdef(`OSTYPE', `dnl',`include(_CF_DIR_`'m4/cfhead.m4)dnl Можно отдавать почту на обработку внешней програм-
ме, используя операцию конвейера (в данном примере поч-
Которая и выполняет подключение cfhead.m4. При жела- та, пришедшая на адрес spam-me, отдаётся на обработ-
нии вы можете включить cf.m4 непосредственно в mc-файл ку спам-фильтру dspam для переобучения его байесово-
(с помощью макроса include), чтобы не указывать его в ко- го анализатора):
мандной строке. Но во FreeBSD это не требуется – make
сделает всё, что нужно. spam-me: "| dspam --user me --class=spam ↵
--source=error"
Пример 2
Файл mailertable Почтовый сервер в режиме шлюза
В файле mailertable определяются агенты, ответственные Предположим, у вас есть локальная сеть с размещённы-
за обработку почты для определённых доменов. ми в ней двумя почтовыми серверами (inner1.domain.ru
и inner2.domain.ru). Вы хотели бы обеспечить возможность
Файл virtusertable полноценной работы этих серверов, но без непосредствен-
Здесь задаётся соответствие между виртуальными адреса- ного подключения к Интернету. Настроим на машине, вы-
ми обслуживаемых доменов и именами реальных пользо- полняющей роль шлюза, сервер Sendmail, задачей которо-
вателей. Необходимость в нём возникает тогда, когда не- го – взаимодействовать с внешними smtp-серверами и пе-
сколько адресов в обслуживаемых доменах имеют одина- ресылать полученные от них сообщения на серверы в ло-
ковые имена пользователей (например, admin@domain1.ru кальной сети.
и admin@domain2.ru). 1. В mailertable заносим строчки:
В этом случае вы можете занести в virtusertable следу-
ющие строки: inner1.domain.ru smtp:[inner1.domain.ru]
inner2.domain.ru smtp:[inner2.domain.ru]
admin@domain1.ru admin-dom1
admin@domain2.ru admin-dom2
Теперь почта на указанные домены будет по smtp пере-
@domain1.ru error:nouser User not found сылаться на указанные хосты. Квадратные скобки требуют
работать с хостом по его A-записи, а не по MX-записи в базе
То есть входящая почта будет раскладываться по ящи- доменных имен (которая указывает на адрес шлюза).
кам разных пользователей. Благодаря третьей строке вся 2. Для отправки почты нужно разрешить пересылку со-
почта в domain1.ru для любых пользователей, кроме опи- общений с внутренних серверов (указав для них в файле
санных в virtusertable (в нашем примере это admin), бу- access значение RELAY), а внутренние серверы настроить
24
администрирование
DNS, DNS, DNS… Этот же механизм позволяет организо- domain и dom2 будет обслуживаться маши-
Для нормальной работы любого MTA очень вать резервные серверы, которые возь- ной mail.domain.ru. Если этот сервер ока-
важную роль играет правильная настрой- мут на себя обслуживание (или, по крайней жется недоступен, почта должна будет на-
ка DNS-сервера. Адрес почтового сер- мере, временное размещение) сообщений правляться на backup.top.ru. Приоритет ис-
вера, обслуживающего тот или иной до- в случае недоступности основного MTA. пользования MX-записей задаётся числом
мен, не обязан совпадать с самим домен- Рассмотрим фрагмент файла зоны: перед именем хоста – чем это число мень-
ным именем. ше, тем выше приоритет (т.е. сначала бу-
Например, вы можете посчитать це- domain IN MX 10 ↵ дет предприниматься попытка доставить
mail.domain.ru.
лесообразным выделить для обслужива- IN MX 20 ↵ почту на этот хост).
ния почты, адресованной в domain.ru, от- backup.top.ru. Впрочем, протоколом SMTP предус-
дельный сервер mail.domain.ru. Как же dom2 IN MX 10 ↵ мотрено, что если для некоторого доме-
удалённый smtp-сервер поймёт, куда сле- mail.domain.ru. на отсутствует MX-запись, то почту сле-
IN MX 20 ↵
дует отправлять почту? backup.top.ru. дует направлять непосредственно на
Для этого в DNS предусмотрен специ- хост, определяемый по соответствующей
альный тип записи – MX (Mail eXchanger). Эти строки определяют, что почта для A-записи.
Антон Ананич
Captive – это первая полнофункциональная Open Source-реализация NTFS-драйвера.
С помощью Captive вы можете монтировать Windows NT/2k/XP/2k3-разделы и записывать на
них данные без опасения потерять их.
26
администрирование
F
USE (Filesystem in USErspace) – это драйвер для Linux
и FreeBSD, который позволяет непривилегирован-
ным пользователям создавать их собственные драй-
веры файловых систем без написания кода, выполняемо-
го в режиме ядра.
FUSE может быть особенно полезной для разработ-
ки драйверов виртуальных файловых систем (virtual file
systems, VFS). Это файловые системы, которые не сериа-
лизуют данные непосредственно, а всего лишь выступают
прослойкой (abstraction layer) или оберткой (wrapper) над
существующими файловыми системами или специальны-
ми устройствами.
В нашем журнале уже была статья о FUSE [1]. С тех пор
проект развился и сильно возмужал.
FUSE позволяет разрабатывать драйверы файловых
систем не только на языке С. Так как эти драйверы вы-
полняются в пользовательских процессах, то они могут
быть реализованы практически на любом языке програм- Рисунок 1. Файловая система Hello world
мирования. Официально поддерживаются C, C++, Java,
C#, Haskell, TCL, Python, Perl, Sh (UNIX shell script), Ocaml, Сегодня вы узнаете, как можно монтировать разделы
Pliant и Ruby. NTFS в режиме read+write.
Существует несколько десятков файловых систем (на се-
годня более 50) на базе FUSE. Рассказать о всех в рам- Как работает Captive?
ках этой статьи просто невозможно. Поэтому я перечис- Существует два FUSE-драйвера для NTFS: ntfsmount
лю некоторые задачи, которые могут быть решены с по- и сaptive. Первый из них использует тот же код, что и kernel-
мощью FUSE: драйвер. По сути это один и тот же драйвер, который выпол-
шифрование и сжатие файлов «на лету»; няется по-разному. Этот драйвер написан с нуля. В ходе его
SMB (монтирование при первом обращении, кэширова- разработки проводилась большая работа по реверс-инжи-
ние); нирингу. Этот драйвер пока ещё не очень стабилен и пред-
FTP, SSh, WebDAV, Gmail и т. д.; назначен в основном для чтения данных. Записывать он то-
монтирование содержимого архивов (rar, zip, tar, bzip2, же может, но единственное, что можно сделать с помощью
gzip и т. д.); этого драйвера – это изменить содержимое существующе-
монтирование специфических устройств (iPod, мобиль- го файла, оставляя прежним его размер. Это может быть
ники Siemens, Apple iPhoto DPAP и т. д.); полезно, если вы хотите использовать некий файл-контей-
монтирование NTFS в режиме read&write (полноценная нер, лежащий на NTFS, например, PGP-диск или виртуаль-
запись в отличие от той, что содержится в ядре по умол- ный винчестер для VMWare. Но в этом случае лучше ис-
чанию); пользовать вариант драйвера, выполняемый в режиме яд-
хранение файлов в реляционной БД. ра, так как он работает гораздо быстрее.
Captive NTFS использует другой подход. Наподобие
FUSE работает на Linux 2.4, Linux 2.6 и FreeBSD [2]. На- того, как это делается в Wine, captive подгружает в адрес-
чиная с версии 2.6.14-rc1 FUSE входит в ядро Linux. Изна- ное пространство позаимствованный из Windows драйвер
чально FUSE была частью проекта AFVS [3], но теперь яв- ntfs.sys и использует его код для записи в NTFS. Это дает
ляется отдельным проектом на SourceForge [4]. достаточно высокую гарантию сохранности данных. Ну так
давайте же скорее установим его!
Как работает FUSE?
Разработать драйвер файловой системы с использова- Установка и использование
нием FUSE очень просто. В качестве доказательства со- Для начала вам понадобится FUSE. Если вы приверже-
здатели FUSE приводят на своем сайте пример драйвера нец FreeBSD, то вам повезло: fuse4freebsd уже есть в пор-
файловой системы Hello world, написанный на языке С, ис- тах. Достаточно установить пакеты sysutils/fusefs-kmod
ходный код которого занимает меньше 100 строк. Этот ис- и sysutils/fusefs-libs.
ходный код доступен по адресу: http://fuse.sourceforge.net/ Я пользуюсь Gentoo Linux и поэтому все, что будет ска-
helloworld.html. зано дальше в основном относится к этому дистрибутиву
На рис. 1 показано, как происходит системный вызов и ядру Linux. Итак, в Gentoo установка проходит так:
(например, stat) в драйвере Hello world.
Драйвер и библиотека FUSE общаются между собой emerge -av sys-fs/fuse
modules-update
с помощью файлового дескриптора, получаемого при от- modprobe fuse
крытии /dev/fuse. Этот файл может быть открыт несколько chmod 666 /dev/fusе
раз. При этом для каждой монтируемой ФС генерируется
свой дескриптор. Для удобства можно добавить FUSE в автозагрузку:
Следующий шаг – установка captive. Вы можете ском- /dev/hda1 /mnt/captive captive-ntfs noauto,--rw 0 0
пилировать captive из исходников или использовать го-
товый rpm, скачав его со страницы проекта: http://www.
jankratochvil.net/project/captive/#download. В портах Gentoo Архитектура
captive уже присутствует, так что установка не составля- Captive состоит из двух частей – это собственно сам драй-
ет труда. вер и утилита настройки captive-install-acquire (см. рис. 2).
Эта утилита разработана под Gnome очень сильно и тянет
echo "sys-fs/captive ~x86" >> /etc/portage/package.keywords за собой много зависимостей. А вот функционал у неё до-
echo "sys-fs/captive -gtk" >> /etc/portage/package.use
emerge -av captive вольно скромный: она ищет на NTFS-разделах файлы ntfs.
sys, fastfat.sys, ntoskrnl.exe и sdfs.sys и переписывает их
Если вы используете Debian-based-дистрибутив, то вам в директорию /var/lib/captive. У меня она где-то нашла эти
придется конвертировать rpm в deb: файлы с испанской (!) локалью. Если такие файлы найти
не удается, то captive-install-acquire может скачать с сай-
alien captive-static-1.1.7-0.i386.rpm та www.microsoft.com service pack и взять их оттуда. И пос-
dpkg -i captive-static_1.1.7_1.i386.deb
леднее. Эта утилита добавляет в /ets/fstab записи об NTFS-
Если вы хотите скомпилировать captive из исходников, разделах, но без опции --rw, и поэтому всё равно приходит-
то это лучше всего сделать так: ся править руками.
К нашей удаче существует возможность установить
./configure –enable-install-pkg=no только драйвер. В Gentoo это делается с помощью USE-фла-
make
make install га -gtk, а если вы собираете пакет из исходников, то нужно
задать опцию -enable-install-pkg=no для скрипта configure.
Теперь остается переписать файлы ${WINDIR}/system32/ Но даже в этом случае вам придется установить gnome-vfs,
ntoskrnl.exe и ${WINDIR}/system32/drivers/ntfs.sys в /var/lib/ libonobo и orbit. Давайте разберемся, для чего это нужно
captive/. Я это сделал с помощью Samba. Если у вас нет (см. рис. 3).
доступа к установленной Windows NT/2000/XP/2003Server, При монтировании файловой системы FUSE подгружа-
то вам, пожалуй, придется качать Service Pack с сай- ет sandbox master – компонент captive, который постоянно
та Microsoft и извлекать эти файлы оттуда с помощью находится в памяти. Sandbox master контролирует рабо-
cabextract. WinXP SP2 доступен по адресу [5]. ту sandbox slave. Этот slave выполняется в отдельном про-
цессе. В адресное пространство этого процесса подгру-
жаются ntosknl.exe и ntfs.sys прямо, как в Wine. Этот про-
цесс и называется sandbox – песочница. Внутри песочни-
цы captive делает вызовы бинарного кода, предназначен-
ного для выполнения в адресном пространстве несколь-
ко иной структуры. Кроме того, этот код предназначен для
выполнения в более богатом разными компонентами окру-
жении. Конечно, этот код должен выполняться на нулевом
кольце, а не на третьем. В силу сказанного ассемблерный
код из ntoskrnl.exe и *.sys довольно часто приводит к ава-
рийному завершению процесса. Segmentation, как говорит-
ся, fault. В ходе поставленных мною экспериментов такое
падение мне удавалось наблюдать до десяти раз за вре-
мя распаковки архива с исходниками captive (2,9 Мб). Ког-
да песочница ломается, sandbox master перезапускает пе-
сочницу повторно и продолжает выполнение сначала не-
удачной транзакции, поэтому для конечного пользовате-
ля этот крах остается незамеченным и не приводит к по-
Рисунок 2. Установка captive с помощью captive-install-acquire тере данных.
28
администрирование
Таблица 1. Результаты замера производительности
NTFS compressed NTFS ReiserFS
Копирование 0 m 12.159 s 0 m 39.673 s 0 m 0.048 s
Распаковка 3 m 10.333 s 4 m 22.235 s 0 m 1.479 s
Производительность
Думаю, вам будет интересно оценить производительность
captive. Для этого я проделал всего два теста. Я засекал
с помощью команды time время копирования одного боль-
шого файла и время распаковки архива с большим коли-
чеством маленьких файлов.
Иван Коробко
Регулярная смена паролей локальных системных администраторов – необходимое
мероприятие, обеспечивающие безопасность хранения данных в сети. Автоматизировав этот
процесс, вы значительно снизит затраты на администрирование.
С
пециалисты системной под- Поддерживать работу в несколь- мента запускается тот или иной режим
держки, как правило, не обла- ких режимах: для конкретной ма- работы сценария (см. таблицу 1):
дают правами системного ад- шины, для членов группы в AD или
министратора. Для установки про- для всех рабочих станций в сети. Set objArgs=Wscript.Arguments
If Wscript.Arguments.Count=1 Then
граммного обеспечения они исполь- Унифицировать имя системного If strcomp(ucase(objArgs(0)), ↵
зуют пароль локального системного администратора, переименовывая UCase("-Domain"))=0 Then
mode=1
администратора. Рекомендуется мак- учетную запись, например, из «Ад- End If
симально ограничить права пользова- министратор» в «Administrator». If strcomp(ucase(objArgs(0)), ↵
телям, поскольку установка програм- По окончанию работы сценария UCase("-Group"))=0 Then
много обеспечения, подключение но- формировать файл отчета. mode=2
End If
вых физических устройств, например
Flash Card, несет в себе потенциаль- Мультирежимность If strcomp(ucase(objArgs(0)), ↵
UCase("-PC"))=0 Then
ную опасность: может произойти утеч- скрипта mode=3
ка важной информации, что не до- Поддержка нескольких режимов рабо- End If
пустимо. Таким образом, регулярная ты реализована с помощью парамет- Else
смена пароля очень важна. Посколь- ров запуска командной строки. Дого- mode=0
End If
ку в сети есть русско- и англоязычные воримся, что запуск сценария, изменя-
версии операционных систем, то стан- ющего имя администратора на указан-
дартные учетные записи и группы ад- ном компьютере, осуществляется с по- Вывод справки
министраторов могут записываться мощью параметра «-pc», для компью- Этот режим, как и все остальные, ре-
по-разному, согласитесь, это очень не- теров, перечисленных в группе, храня- ализован с помощью инструкции
удобно. Достичь универсальности име- щейся в AD, – «-group», а для всех ком- Select… Case и представляет собой вы-
ни локальной учетной записи адми- пьютеров в домене – «-domain». При за- вод текстового сообщения на экран:
нистратора и его пароля можно с по- пуске скрипта во всех остальных слу-
мощью скрипта. Для его создания ис- чаях будет выводиться справка. Select Case mode
Case 0
пользуем VBScript. Чтение аргументов осуществляется txt="ТЕКСТ СПРАВКИ"
с помощью объекта Wscript.Arguments, WScript.Echo txt
Режимы работы сценария их количество определяется с помо- Case 1
Создаваемый сценарий будет обла- щью команды Wscript.Arguments.Count.
…
дать следующими возможностями: В зависимости от полученного аргу- End Select
30
администрирование
Переименование учетных записей Таблица 1. Режимы работы сценария
Поскольку речь идет о локальных учетных записях поль- Аргумент Значение переменной MODE Описание режима
зователя и группы, то использовать для этих целей прото- – Mode=0 Вывод справки
кол LDAP нельзя. Необходимо применять хорошо извест-
-рс Mode=3 Изменение на локальном компьютере
ный еще со времен Windows NT 4 протокол WinNT. Все три
оставшихся режима выполняют одну и ту же операцию: -group Mode=2 Изменение у группы компьютеров
проверяют на правильность имя группы и пользователя, -domain Mode=1 Изменение на всех компьютерах домена
в случае ошибки переименовывают в правильное и зада-
ют новый пароль. Как видно – это общий фрагмент, кото- гументом «-pc». При этом значение переменной mode – 3.
рый рекомендуется внести в функцию, её входным пара- При запуске в этом режиме необходимо задать два пара-
метром будет имя локального компьютера. Функция со- метра: имя рабочей станции и новый пароль. Лучше все-
стоит из 3 частей: го это сделать с помощью диалогового окна, вызываемо-
верификация и в случае необходимости изменение име- го с помощью InputBox().
ни пользователя; После того как исходные параметры заданы, необ-
верификация и в случае необходимости изменение име- ходимо выполнить обращение к функции, которая из-
ни группы; менит пароль, передавать ей в качестве параметра имя
присвоение учетной записи «administrator» нового па- компьютера. Значение переменной, в которой содержит-
роля. ся новый пароль, не имеет смысла передавать как пара-
метр функции. Рекомендуется объявить эту переменную
Верификация и изменение имени пользователя как глобальную:
Зная имя компьютера, к сети необходимо подключиться
и получить список локальных пользователей на рабочей Dim PWD
PWD = "987654321"
станции, и проверить существование оговоренных учет-
ных записей. В случае несоответствии имен – переимено- Select Case mode
вать группу. …
Case 3
' Определение списка локальных пользователей PWD=CStr(inputbox("Введите новый пароль ↵
' на компьютере локального администратора",,PWD))
Set obj_user= getobject("WinNT://" & pcname)
obj_user.filter = Array("user") PCNAME = "1230PC"
For Each user in obj_user PCNAME=CStr(inputbox("Введите имя рабочей станции",,PCNAME))
user_name= user_name ↵
+cstr(user.Name) ' вызов функции изменения имен и назначения
Next ' нового пароля
make pcname
' Переименование русского (*)Администратор(*)
' в латинское End Select
If StrComp (UCase(user_name), ↵
UCase("Администратор"))=0 Then
Set obj_user2= getobject("WinNT://" & ↵
pcname&"/Администратор,User") Изменяем пароль на группе компьютеров
Set obj_user3= getobject("WinNT://" & pcname)
Set q=obj_user3.movehere(obj_user2.adspath, ↵ Для смены пароля на компьютерах, входящих в группу бе-
"Administrator") зопасности, требуется создать группу в Active Directory
Set obj_user2 = Nothing
Set obj_user3 = Nothing и включить в нее учетные записи компьютеров, на которых
End If необходимо сменить локальный пароль (см. рис. 1). Доступ
к AD в данной ситуации можно осуществлять с помощью
Переименование группы осуществляется аналогич- провайдеров LDAP и WINNT. Для простоты воспользуемся
ным способом. Полный текст сценария смотрите на сай- последним из них.
те журнала www.samag.ru, в разделе «Исходный код». За- Запрашиваемые параметры скрипта в данном режиме –
мечание: для успешной работы скрипт должен быть запу- имя группы и новый пароль.
щен от имени администратора сети. Задание нового па- Чтобы получить доступ к AD, необходимо знать имя до-
роля локального пользователя реализовано с помощью мена. Для протокола WINNT имя домена должно быть пред-
функции setpassword(), параметром которой является но- ставлено в сокращенном варианте, например SPD. Полу-
вый пароль: чить имя домена в сокращенном виде можно несколькими
способами. Один из них – использование стандартной биб-
Set obj_user4= getobject("WinNT://" & ↵ лиотеки ADSystemInfo:
pcname&"/Administrator,User")
Call obj_user4.setpassword(PWD)
Set obj_user4 = Nothing Dim PWD
PWD = "987654321"
Select Case mode
…
Изменяем пароль на локальном компьютере Case 2
Ранее говорилось, что смена пароля локального системно-
pwd=CStr(inputbox("Введите новый пароль ↵
го администратора выполняется при запуске скрипта с ар- локального администратора",,PWD))
32
bugtraq
П
оздоровавшись, Алексей Вла- Психология, логика, занимался автоматическим распоз-
димирович первым делом под- «Ямахи»… наванием рукописных текстов. Между
вел меня к окну одной из комнат А начиналось все с математики. Ма- прочим, чтобы попасть в НИИ, Алек-
Института философии РАН, в которых тематический факультет Московско- сей должен был выполнить условие –
компактно, уютно, в соседстве с мно- го государственного педагогического освоить один из языков программиро-
гочисленной техникой располагается института им. Ленина ни к чему опре- вания. О том, что это был первый шаг
Общественный институт логики, ког- деленному не привязывал. Наоборот, в сторону Linux, он, естественно, не до-
нитологии и развития личности. Из ок- давал свободу. Алексей интересовал- гадывался. Шел 1979 год.
на был виден Кремль. Алексей Смир- ся логикой, что вполне понятно – близ- В 1984 году Смирнов перешел
нов немного гордится этой панорамой кая к основному образованию тема, на работу в Вычислительный центр Ми-
и вместе с тем находит ее забавной. да и отец, Владимир Александрович нистерства просвещения СССР. И ес-
Уже потом, после беседы с ним, я поня- Смирнов, был виднейшим российским ли раньше Алексей Владимирович ос-
ла, почему руководитель Обществен- философом и логиком, принадлежал к вобождал тексты от скрытого в них
ного института и одновременно гене- блестящей плеяде выпускников фило- смысла с помощью логики, лингвис-
ральный директор компании ALT Linux софского факультета Московского уни- тики, математики и основ программи-
именно так воспринимает многие ве- верситета середины XX века. На пятом рования, то теперь ему предстояло ос-
щи. Легким мировосприятие Алексея курсе свободный поиск привел Алексея вобождать советскую школу от жал-
Владимировича делает беспредельное Владимировича к тому, что его пригла- кого прозябания в бескомпьютерной
чувство свободы. Это чувство, по-мое- сили на работу в НИИ общей и педаго- среде. 1985-1987 годы – время массо-
му, ведет его по жизни. Да и разве мог гической психологии, где в должности вого внедрения в школы информати-
бы несвободный человек стать одним младшего научного сотрудника лабо- ки. Я помню, что именно тогда, во вто-
из столпов свободного программного ратории математического моделирова- рой половине 80-х, увидела первые
обеспечения в России? ния психических процессов наш герой в своей жизни компьютеры в учебном
34
человек номера
центре моего подмосковного города, щие сигналы. Собираем эксперимен- в течение всей жизни. Создав, нако-
а в моем школьном дневнике появи- тальную установку и описываем метод нец, концепцию обращений. Обраще-
лась «Информатика». Ну и первая иг- проведения эксперимента. Инструк- ния – это тот механизм, который дела-
ра в тетрис, как такое забудешь! И вот ция по его проведению – фактически ет каждого из нас органом жизнеде-
я сижу рядом с человеком, который программа для компьютера. Вот это, ятельности человеческого рода и каж-
разрабатывал программное обеспече- я считаю, нормальное использование дого его представителя. Обращения –
ние для японских «Ямах», которые пос- компьютера, когда машина работает это, во-первых, наше общение. Во-вто-
тавлялись в образовательные учреж- с реальными объектами, а не ставит- рых, это способ нашего друг с другом
дения СССР, обучал школьников, пре- ся для демонстрации интерактивных действия, то, как мы друг с другом об-
подавателей, и он мне рассказывает, мультфильмов. Устройство мы сдела- ращаемся. Хорошо или плохо. Чело-
как это было. Фантастика… ли, написали методичку для доволь- вечно или бесчеловечно. Нравствен-
Более того, в это же время Алек- но широкого круга физических экспе- но или безнравственно. И вот этот спо-
сей Владимирович со товарищи стали риментов. Все это ушло в школы и ак- соб обращения друг с другом и делает
создателями чуть ли не первого после тивно работало. нас личностями, человеческими инди-
принятия Закона «О кооперации» ко- видуальностями того или иного качес-
оператива «Сотрудничество» при СП Диагноз ясен тва. Ущербного – или всесторонне-гар-
«Диалог». От школьных проблем – к вузовским. монического...»
– Мы делали комплекты программ Еще в бытность свою ведущим спе- В 1957-1970-х годах Феликс Михай-
для «Ямах». Библиотеки выпуска- циалистом того же кооператива «Со- лов сначала был доцентом, а потом –
ли, программно-аппаратные комп- трудничество» Алексей Владимиро- заведующим кафедрой философии
лексы, чтобы это можно было присо- вич принял участие в создании учеб- 2-го Медицинского института. За сво-
единять к лабораторному школьному ника по логике «Логика и клиническая бодомыслие был изгнан, а вернулся
оборудованию и проводить экспери- диагностика», компьютерного практи- 20 лет спустя, и вот как раз об этих вре-
менты. Тогда как раз вышли програм- кума для студентов-медиков. Вдохно- менах рассказывает Алексей Смирнов:
мы и курсы А.Г. Кушнеренко, связан- вителем и руководителем этого проек- «Мы работали с группой врачей из Чет-
ные с виртуальными мирами. Идея бы- та был Феликс Трофимович Михайлов, вертой Градской больницы, с кафед-
ла такая – управление объектами, ко- российский философ и психолог-тео- ры пропедевтики внутренних болез-
торые смоделированы на компьюте- ретик, доктор философских наук, про- ней. Они подняли архивы расхождения
ре. Стали развивать мысль – давайте фессор, действительный член РАО. медицинских диагнозов по вскрытиям
не будем проводить физический экс- О Феликсе Трофимовиче необ- с прижизненной диагностикой. То есть
перимент, а смоделируем его на ком- ходимо сказать немного подробнее. архив медицинских ошибок, сущест-
пьютере. Нам это очень не понрави- Без этого очерк об Алексее Смирнове вующий в больницах чуть ли не с ека-
лось. Что такое физический экспери- будет неполным. Ведь человека фор- терининских времен. Они обнаружи-
мент? Существует некая теория, и я хо- мируют не только семья, книги, обра- ли интересную вещь. Сейчас сущест-
чу убедиться, она соответствует тому, зование, но и встречи с такими удиви- вуют современные методы диагности-
что есть на самом деле. Если модели- тельными людьми. Феликс Михайлов – ки. Если есть подозрение на инфаркт,
ровать реальность на компьютере, по- автор знаменитых трудов «За порогом назначают кардиограмму. Если надо,
лучается, что я сравниваю математи- сознания. Критический очерк фрейдиз- делают УЗИ, берут анализы. Но про-
ческую модель с компьютерной. А за- ма» (в соавторстве), «Загадка челове- цент медицинских ошибок практически
чем? В качестве иллюстрации? ческого Я», «Общественное сознание не меняется! Они поняли, почему. Ме-
– Мне кажется, – робко встре- и самосознание индивида». В лабора- диков учат, как собирать данные, как
ваю я, – это делается для того, чтобы тории теоретических проблем психоло- пощупать пульс, расспросить больно-
уберечь детей. Эксперимент может гии деятельности, созданной руково- го, на какой анализ направить, как его
быть опасным… дителем Института общей и педагоги- прочитать. То есть методам обследова-
– Тогда можно кино по телевизору ческой психологии Василием Василь- ния. С другой стороны, студенты изуча-
показать. Зачем компьютер? Не стоит евичем Давыдовым специально для ют, как протекают те или иные болезни.
его использовать в качестве киноус- Михайлова, работали многие ученые А дальше врач оказывается перед кон-
тановки. Понятно, что ядерный взрыв, с громкими именами. А еще – знамени- кретным больным. Он помнит про все
другие опасные эксперименты лучше тые участники эксперимента, слепоглу- болезни, про все методы исследования
так и показывать. хие выпускники Загорской школы-ин- больного. А что делать с этим больным,
Берем обычный школьный экспе- терната. Один из них, доктор психоло- не знает. Выясняется, что методу поста-
римент, обычные школьные приборы, гических наук Александр Суворов, на- новки диагноза его не научили! Что де-
которые есть в обычной лаборатории. писал в своей статье «Двойная звезда» лать? Смотреть зрачки, есть ли желту-
Необходимо устройство, через кото- уже после смерти Феликса Трофимо- ха, посылать на кардиограмму или сра-
рое мы сможем все это присоединить вича в феврале этого года: «Мы с рож- зу брать пункцию? Знаний много, а тол-
к компьютеру и затем снимать показа- дения до смерти – органы друг друга, – ку от них мало. Необходимо было сде-
ния этих приборов – амперметра, воль- настаивает Феликс Трофимович. И этот лать курс, на котором медики-диагнос-
тметра и так далее… С другой стороны, тезис Феликс Трофимович всё более ты могли получить азы постановки диа-
на приборы надо подавать управляю- глубоко и всесторонне обосновывал гноза. Мы работали вместе и сделали
36
человек номера
лять ограничения от себя… Эффек- тами: «Open Sources kill jobs», – пыта- Мир разработчиков свободных про-
тивность «авторского лева» возможна, ясь защитить низкоквалифицирован- грамм возник во многом благодаря
лишь если модифицированные версии ные кадры, которые, ничуть не сму- Алексею Смирнову и ALT Linux. При-
также свободны. Этим обеспечивает- щаясь, «рисуют» при помощи мышки чем народ общается не только в Сети,
ся, что производные продукты в слу- одни и те же программы для ста рабо- по e-mail и в «аське». Раз в год прово-
чае их публикации будут доступны на- тодателей. Не боятся, потому что об- дится знаменитый летний «форум» –
шему обществу. Когда программисты ладают замечательной эрудицией, хо- Linux Fest, а также приуроченная к не-
добровольно участвуют в улучшении рошо знают все о существующем про- му международная конференция раз-
программ GNU, «авторское лево» за- граммном обеспечении, способны ра- работчиков свободных программ, куда
щищает их от нанимателей, которые зобраться, что и как работает, и приду- приезжают, кстати, не только «линуксо-
могут сказать: «Вы не можете свобод- мать новое, если это необходимо. Вза- иды» и не только из России, но специ-
но распространять свои модификации, мен этих весьма высоких требований алисты практически со всего СНГ. Со-
поскольку мы собираемся сделать их «свободный софт» дает им свободу. И бирается целая армия – человек четы-
нашей собственнической версией про- пропуск в особый мир, который Алек- реста. Обсуждают технические, поли-
граммы». Отлично! Это то, что Алексей сей Смирнов описывает так: «Кто-то тические проблемы. Слабых докладов
Смирнов называет: «Свободнорожден- написал программу, другой посмот- на конференции не бывает, коммер-
ного нельзя лишить свободы». рел: «О, здесь можно что-то улучшить, ческие делают только фирмы-спонсо-
Уф, ну вот, спецы могут вздохнуть вот тебе изменения для этой програм- ры, да и те, чтобы не выглядеть глупо,
облегченно, мой ликбез завершен. Од- мы!». Наверное, он пришлет эти изме- присылают представителей с содержа-
нако еще одна восторженная нотка – по нения не потому, что он такой добрый, тельными сообщениями.
поводу «мира свободного софта», ко- а потому, что ему нужна дополнитель- Забавно, но уже в финале наше-
торый уже существует не только в ми- ная функциональность. Если он прос- го интервью, словно нарочно, раздал-
ре, но и в нашей стране. Почему-то в то сделает изменения для себя и ни- ся звонок – Алексея Владимировича
моем восприятии это мир легких, ве- кому не заявит о них, то в следующей спрашивали именно по поводу июль-
селых людей, которые ничего не боят- версии программы того, что ему нужно, ской встречи. Могу совершенно от-
ся – ни пресловутого нарушения авто- уже не будет. То есть если я что-то сде- ветственно заявить всем, кто интере-
рских прав, ни воровства «чужой ин- лал и открыл, это будет жить дальше, я суется: в этом году Linux Fest обяза-
теллектуальной собственности». Ни за- тоже смогу пользоваться. Причем я мо- тельно состоится. В восьмой раз. При-
явления Билла Гейтса, который не так гу сделать чуть-чуть, а другие продол- соединяйтесь!
давно сказал на встрече с программис- жат. Я обозначил направление». Оксана Родионова
Рашид Ачилов
Domain Name System – своеобразная «нервная система» сети Интернет. Именно благодаря ей
вы, набирая http://www.samag.ru, попадаете на сайт журнала «Системный администратор»,
а не куда-нибудь еще. Как создать, настроить и запустить DNS-сервер для небольшого
предприятия?
Структура DNS ся – информация о том, где находит- шем случае 217.144.98.99). DNS и яв-
В настоящее время Интернет – это ог- ся нужный вам адрес уже могла изме- ляется такой системой. Поскольку от
ромная сеть, в которую входят мил- ниться, и в лучшем случае вы увидите ее успешного функционирования за-
лионы узлов, расположенных по все- сообщение о том, что адрес не найден, висит работа всей сети Интернет, эта
му миру. Для того чтобы запрос, сде- а в худшем – окажетесь на сайте, со- система функционирует по принципу
ланный с одного компьютера, мог до- вершенно не имеющем никакого отно- распределенной базы данных – есть
стичь цели, расположенной на другом шения к тому, что было нужно. Надеж- «хорошо известные» серверы, чис-
компьютере, нужно прежде всего эту ней и проще будет обратиться к систе- лом 13, их еще называют «корневыми»
цель задать. Можно, конечно, указать ме, которая хранит соответствие меж- (root servers), содержащие информа-
IP-адрес напрямую. Если он вам из- ду символическими именами типа цию о серверах, содержащих инфор-
вестен, конечно. Но здесь существует www.samag.ru и IP-адресам, соответс- мацию о серверах и т. д. Как дом, ко-
возможность очень просто ошибить- твующими им в данный момент (в на- торый построил Джек.
38
сети
Вся сеть Интернет, которая описы-
вается зоной «.» (точка) делится на так Домены верхнего уровня .museum, .name, .pro и .travel. Более подроб-
называемые TLD (Top Level Domains – Первоначально, согласно RFC 920, в спис- ная информация приведена в [2]. Географи-
домены верхнего уровня), распре- ке функциональных TLD присутствова- ческие же домены распределены раз и на-
деляемые либо по функционально- ли только .com, .gov, .mil, .edu, .org [1], ко- всегда. Хотя это не значит, что вы не мо-
му, либо по географическому призна- торые представляли соответственно ком- жете зарегистрировать в нем свой домен.
ку. Существует также термин primary мерческие, правительственные, военные Многие географические домены, случай-
domain – «первичный домен», или «до- организации, образовательные учрежде- но совпавшие с «хорошо известными» со-
мен первого уровня», но этот термин ния и некоммерческие организации. Впос- кращениями, являются чрезвычайно при-
используется значительно реже. Рас- ледствии этот список несколько расширил- влекательными. Например, .md (Молдавия)
пределение по географическому при- ся – в 1985 г. добавился TLD .net, представ- очень привлекательна для медицинских
знаку осуществляется в соответствии ляющий организации-поставщики сетевых учреждений и жителей штата Мэриленд,
с ISO 3166, устанавливающему для услуг, а в 1988 – TLD .int, представляющий США; .tv (Тувалу) – для сайтов, связанных
всех стран мира двух- и трехбуквен- международные организации. В 2001-2002 с телевидением; .tm (Туркменистан) сов-
ные коды. Распределение по функцио- к этому списку добавились практические падает с написанием сокращения «Trade
нальному признаку осуществляется по неизвестные российскому пользовате- Mark», а .nu (Ниуэ – есть такой остров-ко-
мере необходимости создания нового лю TLD .aero, .biz, .cat, .coop, .jobs, .mobi, лония) – для сайтов в стиле «ню».
TLD. Здесь следует отметить, что все-
ми вопросами по отношению к TLD за- Сервер DNS обращается к серверу организациями, причем резервиро-
нимается ICANN (Internet Corporation for зоны granch.ru. вание .gov оформлено соответствую-
Assigned Names and Numbers), и имен- И наконец, сервер зоны granch.ru щим RFC – RFC 2146 [5]. Полный спи-
но этот орган решает – создавать ли сообщает ему адрес, соответству- сок всех существующих в настоящий
новый TLD. ющий имени www. В данном случае момент географических же TLD с ука-
Корневые сервера сами по себе со- это будет 81.1.252.58. занием регистратора домена и необ-
держат только ссылки на сервера, со- ходимой контактной информации мож-
держащие информацию о зонах вто- Данный процесс проиллюстриро- но посмотреть в [6]. Хотя если, скажем,
рого уровня, которые в свою очередь ван на рис. 1, где цифры обозначают в зоне .com можно выбирать из ог-
содержат информацию о серверах, со- последовательность запросов. ромного списка, то для зон .ru и .su
держащих информацию о зонах треть- РУЦЕНТР, [8], без вариантов.
его уровня и т. д. В большинстве слу- Как встроить свою Здесь надо отметить несколько мо-
чаев иерархия исчерпывается на тре- информацию в структуру ментов. Фактически зона .su относится
тьей-четвертой зоне. Но не потому, DNS? к несуществующему государству Со-
что здесь заложено какое-то ограниче- Прежде чем включаться в какую-либо ветский Союз (Soviet Union), хотя тем
ние. Просто запоминать сложные име- систему, нужно иметь некоторое пред- не менее продолжает обслуживаться
на ничуть не проще IP-адресов. ставление о том, куда и каким образом и открыта для регистрации. Регистра-
Таким образом, процесс поиска ин- включаться. ция там достаточно дорогая – 100 дол-
формации, допустим, о веб-сервере ларов за регистрацию или поддержку
www.granch.ru, будет выглядеть сле- Куда встраиваем? в год.
дующим образом: За различные TLD отвечают различ- Не существует никакого приори-
Клиент обращается к своему сер- ные сервера, и если за географи- тета, согласно которому одна органи-
веру DNS, адрес которого был ческие домены отвечает, как прави- зация или человек имеет преимущес-
задан системным администра- ло, один сервер (точнее говоря, одна тво при регистрации домена над дру-
тором с запросом «Скажи мне организация), то за домены функцио- гим. Один американский бизнесмен,
адрес, соответствующий имени нальные может отвечать, вообще гово- занимавшийся производством плас-
www.granch.ru». ря, неограниченное количество так на- тиковых окон, зарегистрировал до-
Сервер DNS знает адреса серве- зываемых регистраторов, то есть ком- мен windows2000.com. Когда то же са-
ров, с которых ему следует начи- паний, заключивших специальные до- мое попыталась сделать Microsoft, она
нать поиск в том случае, если в его говоры с ICANN о том, что именно они с удивлением обнаружила, что это имя
кэше не хранится запрошенная ин- будут регистрировать имена в некото- уже занято, и за него компании при-
формация, поэтому он обращается рых функциональных доменах. Крат- шлось выложить крупную сумму. Су-
к одному из них. кое описание функционального до- ществует даже понятие «киберсквот-
Корневой сервер присылает ему мена и адрес его регистратора при- терство» – процесс регистрации до-
адрес сервера, отвечающего за зо- ведены в [3]. менов с целью их последующей пере-
ну .ru Если регистраторов несколько, то продажи. РУЦЕНТР тоже решил при-
Сервер DNS обращается к серверу дается адрес основного (например, ложить к этому руку, и по новым пра-
зоны .ru VeriSign [4] для домена .com). Домены вилам, которые вводятся с 1 июня
Сервер зоны .ru присылает ему .gov и .mil зарезервированы исключи- 2006 года, освобождающиеся доме-
адрес сервера, который отвечает тельно за американским правительс- ны выставляются на «аукцион домен-
за зону granch внутри его зоны. твом и американскими же военными ных имен» и передаются тому, кто даст
40
сети
пространяемый ISC (Internet System Consortium Inc., [10]) – класс – класс записи;
некоммерческой организацией, которая занимается раз- тип – тип записи;
работкой серверов BIND, DHCP, INN и NTP. Если он отсутс- данные – ассоциируемые с данным обьектом данные.
твует в вашей системе, его необходимо скачать и устано-
вить. FreeBSD поставляется вместе с BIND 9.3.2, поэтому Имя может принимать любое значение, и в таком слу-
в данной статье будет рассматриваться именно эта вер- чае оно считается именем обьекта. Если имя заканчива-
сия. Следует отметить, что для версий BIND 8.x приводи- ется на точку, то оно считается полностью определенным,
мое ниже описание конфигурации совершенно неприем- иначе в конец имени подставляется имя зоны, которое мо-
лемо, поскольку формат конфигурационных файлов BIND жет быть задано двумя способами:
8.x коренным образом отличается от формата конфигура- Заданием имени зоны в директиве $ORIGIN, например:
ционных файлов BIND 9.x.
Во-вторых, понадобится распределить выделенные нам $ORIGIN krokodil.ru
IP-адреса и наделить адресами внутренние компьютеры.
Здесь все чрезвычайно просто: пусть 212.20.5.1 – шлюз Заданием имени зоны в директиве zone конфигураци-
провайдера, 212.20.5.2 – адрес UNIX- сервера, 10.87.1.0/24 – онного файла BIND.
внутренняя подсеть, в которой с 1-й по 6-й – рабочие стан-
ции, 254 – адрес внутреннего интерфейса сервера. Осталь- Специальный символ «@» обозначает текущее имя зо-
ные адреса будут зарезервированы для будущего расши- ны. Имейте в виду, что директива $ORIGIN отменяет дирек-
рения. тиву zone и действует до появления следующей директивы
В-третьих, потребуется заранее подготовленный файл $ORIGIN или до конца файла. До момента появления пер-
описания зоны, который будет определять небольшое коли- вой директивы $ORIGIN она считается заданной значению
чество внешних адресов: krokodil.ru – корневой сервер зоны, директивы zone конфигурационного файла BIND.
www.krokodil.ru, ftp.krokodil.ru, mail.krokodil.ru и ns.krokodil.ru. Если имя задано, оно должно начинаться с первой по-
Имя ns (nameserver) является практически традиционным зиции строки.
наименованием компьютеров, на которых работает служ- TTL обычно опускается и задается глобально дирек-
ба DNS, хотя, конечно, никто не помешает вам назвать его, тивой $TTL. Директива $TTL для BIND 9.x является обя-
например jaws.krokodil.ru. Будут определены также имена зательной и, как правило, задается в самом начале фай-
для компьютеров внутренней сети, доступные только из- ла. В поле данных этой директивы задается время жизни
нутри: tooth1.krokodil.ru – tooth6.krokodil.ru. (в секундах) элемента, в течение которого он может нахо-
диться в кэше и считаться достоверным. В данном приме-
Записи DNS ре это двое суток (48 часов).
Существует достаточно большое количество типов разно-
образных записей, которые можно помещать в DNS. Обьем $TTL 172800
данной статьи позволяет рассмотреть лишь наиболее важ-
ные из них, для получения полной информации следует об- Класс записи может принимать одно из следующих
ратиться к соответствующим RFC: RFC 1033 и RFC 1035 оп- значений:
ределяют форматы основных записей, RFC 1122 – формат IN – запись ресурсов Интернет.
записи PTR, RFC 2782 – формат записи SRV. Мы рассмот- CH – запись ресурсов ChaosNet – совершенно незнако-
рим только те записи, которые понадобятся для формирова- мой российскому пользователю сети, применявшейся
ния файлов зон, необходимых для регистрации домена: на машинах фирмы Symbolics.
Запись SOA, задающая начало описания зоны. HS – запись ресурсов Hesiod – служебного протокола
Запись NS, определяющая сервера имен зоны. BIND.
Запись A, задающая соответствие между IP-адресом
и именем (прямое преобразование). Тип записи – один из типов, перечисленных выше.
Запись MX, описывающая настройки доставки почты Следует обратить внимание на то, что поля имя, ttl
для данного компьютера. и класс могут быть опущены. При этом в качестве их зна-
Запись CNAME, задающая альтернативные имена. чений принимается последнее определенное значение
Запись PTR, задающая соответствие между именем (при этом задание @ будет корректным определением),
и IP-адресом (обратное преобразование), употребля- а если значение не было определено нигде, то для поля
ется в описании «обратной» зоны. класс принимается значение по умолчанию «IN», для дру-
гих полей – приводит к сообщению об ошибке.
Формат записей DNS общий для всех типов записей: Кроме записей, в файле зоны могут быть команды. Всего
команд четыре – $TTL, $ORIGIN, $INCLUDE и $GENERATE.
[имя] [ttl] [класс] <тип> <данные> Описание команды $GENERATE приведено в документации
на программу BIND, а также в [13] и [14], команда $INCLUDE
где: работает соответственно своему написанию – включает
имя – это имя обьекта, с которым ассоциируются дан- указанный файл в текущий файл.
ные;
ttl – время жизни обьекта; $INCLUDE /etc/namedb/krokodil-ru-int.soa
42
сети
Запись CNAME растания приоритетов и именно так предпринимает попыт-
Запись типа CNAME – это дополнительная возможность ки доставить почту. Предположим, мы договорились с ад-
DNS. Она позволяет назначить одному IP-адресу более мином узла behemot.ru о том, что сможем использовать его
одного имени. В поле имя заносится дополнительное имя, сервер как транзитный узел, который будет получать нашу
назначаемое IP-адресу, в поле данные – основное имя, на- почту с целью последующей доставки ее адресатам, ког-
значенное ранее записью типа A, или другое дополнитель- да связь восстановится. Тогда описание сервера krokodil.ru
ное имя, назначенное записью CNAME. При этом имя, стоя- будет выглядеть следующим образом:
щее в поле данных записи, называют каноническим (отсю-
да и название записи – Canonical Name). Одному IP-адресу krokodil.ru. IN A 212.20.5.2
IN MX 10 krokodil.ru.
можно назначить неограниченное количество дополнитель- IN MX 50 behemot.ru.
ных имен посредством записей CNAME, но в записях друго-
www IN CNAME krokodil.ru.
го типа должно быть указано имя, назначенное записью A, mail IN CNAME krokodil.ru.
а не записью CNAME. Ниже приводится пример правильно- ftp IN CNAME krokodil.ru.
го и неправильного назначения дополнительных имен.
Правильно: Это комплексный пример, он сразу показывает исполь-
зование записей MX, А и CNAME. Здесь мы:
ns IN A 10.87.1.1 Назначаем адресу 212.20.5.2 имя krokodil.ru.
name1 IN CNAME ns
IN MX 10 ns Указываем, что почту, направляемую по адресам типа
tail@krokodil.ru, будут принимать (в указанном поряд-
Неправильно: ке):
сервер krokodil.ru;
ns IN A 10.87.1.254 сервер behemot.ru.
name1 IN CNAME ns
IN MX 10 name1 Определяем дополнительные имена www.krokodil.ru,
mail.krokodil.ru и ftp.krokodil.ru. Обратите внимание,
Записи CNAME могут указывать одна на другую, что все имена в правой части полностью определен-
но не более семи уровней, восьмой обязательно должна ны, то есть заканчиваются на точку. Если этого не сде-
идти запись, указывающая на имя, назначенное записью лать, то в конец имени будет автоматически подстав-
типа A. В литературе встречается рекомендация исполь- ляться значение текущей директивы $ORIGIN. В дан-
зовать множественные записи типа A вместо назначения ном случае это привело бы к появлению имен типа
адресу множества дополнительных имен. По поводу этого www.krokodil.ru.krokodil.ru.
можно сказать, что данный момент упоминается в RFC 2219
в плане «не существует абсолютных рекомендаций по это- Запись PTR
му поводу, каждый должен решать для себя, что для него Это совершенно особый тип записей. В нашем примере мы
лучше». Множественные CNAME проще для администри- «специально» взяли полную подсеть, чтобы рассмотреть
рования, множественные A-записи легче обрабатываются, случай «нормальной» работы с записями PTR. Случай с се-
поскольку происходит меньше перенаправлений. тью 212.20.5.0/31 будет рассмотрен чуть позже.
Запись PTR предназначена для осуществления обрат-
Запись MX ного преобразования – имен в IP-адреса. Подобные пре-
Запись типа MX – это второй основной элемент файла зо- образования очень широко применяются в различных про-
ны. Эта запись расшифровывается как «Mail eXchanger», граммах, предоставляющих доступ к некоторым сетевым
и предназначена для указания IP-адресов или имен ком- ресурсам: они проверяют соответствие прямого и обрат-
пьютеров, которые принимают почту для узла, описанного ного преобразования и в случае несовпадения или отсутс-
в поле name. В этом поле может быть пусто, а также указа- твия записи PTR могут отказать в доступе. Зона, содержа-
но полностью или не полностью определенное имя. Если щая записи PTR, называется зоной обратного преобразо-
в поле name пусто или указано не полностью определенное вания или же просто «обратной» зоной.
имя, то имя дополняется из директивы $ORIGIN. Формиро- Записи PTR не имеют никакого отношения к записям A,
вание записей MX в сложных случаях, когда настраивается MX, CNAME и другим, описывающим прямое преобразова-
достаточно большая зона с разветвленной схемой приема ние. Сделано это намеренно с целью использовать для обо-
почты, – весьма нетривиальная задача, которая тесно пе- их преобразований один и тот же набор программных мо-
реплетается с работой программ, использующих протокол дулей. Здесь, правда, нас ожидает сложность следующе-
SMTP для доставки почты, поэтому мы рассмотрим толь- го вида – полностью определенное доменное имя вида
ко наиболее простой случай – вся почта принимается сер- www.krokodil.ru. «наращивает размерность» слева направо
вером UNIX. В поле данные заносятся два значения – при- (то есть укрупнение узлов идет по мере продвижения по тек-
оритет и имя или IP-адрес компьютера, принимающего поч- сту имени слева направо), а IP-адрес 212.20.5.2 – справа
ту, направляемую на данный компьютер. С одним IP-адре- налево. Для унификации программных модулей приняли
сом может быть связано, вообще говоря, неограниченное следующую условность: все IP-адреса – это имена, вхо-
количество записей типа MX, и все они должны иметь раз- дящие в специальный TLD in-addr.arpa. «Зонами» в этом
ный приоритет. Почта направляется в соответствии с при- домене являются подсети, а имя зоны записывается в ви-
оритетом – почтовый агент сортирует записи в порядке на- де IP-адреса, читаемого наоборот. Таким образом «имя»
44
сети
го чтобы не загружать сеть передачей бесполезных данных, tooth2 IN A 10.87.1.2
tooth3 IN A 10.87.1.3
для внешних и внутренних зон используются разные запи- tooth4 IN A 10.87.1.4
си SOA – записи во внешних зонах меняются весьма редко, tooth5 IN A 10.87.1.5
tooth6 IN A 10.87.1.6
а во внутренних довольно часто. Следовательно, мы име-
ем следующие файлы:
localhost.rev – файл зоны обратного преобразования Файл direct-krokodil-ru.ext:
0.0.127.in-addr.arpa. Этот файл существует только для
внутреннего представления. $INCLUDE /etc/namedb/krokodil-ru-ext.soa
krokodil.ru. IN A 212.20.5.2
zone212.rev – файл зоны обратного преобразования IN MX 10 krokodil.ru.
5.20.212.in-addr.arpa. IN MX 50 behemot.ru.
zone10.rev – файл внутренней зоны обратного преоб- www IN CNAME krokodil.ru.
разования 1.87.10.in-addr.arpa. mail IN CNAME krokodil.ru.
ftp IN CNAME krokodil.ru.
direct-krokodil-ru.int – файл внутренней зоны прямого
преобразования krokodil.ru. gate IN A 212.20.5.1
direct-krokodil-ru.ext – файл внешней зоны прямого
преобразования krokodil.ru. Файл krokodil-ru-int.soa:
krokodil-ru-int.soa – файл с записями SOA и NS для
внутренних зон. @ IN SOA krokodil.ru. hostmaster.krokodil.ru. (
2006051202 ; Serial number
krokodil-ru-ext.soa – файл с записями SOA и NS для 10800 ; Refresh every 3 hours
внешних зон. 3600 ; Retry every hour
1728000 ; Expire every 20 days
172800 ); Minimum 2 days
Несмотря на обширный список, файлы достаточно ко- ;
IN NS krokodil.ru.
роткие, поэтому приводятся здесь полностью, за исключе-
нием комментариев. Файл krokodil-ru-ext.soa:
Сделаем одно замечание относительно имени localhost.
RFC 1912 специально упоминает настройку файлов c раз- $TTL 172800
@ IN SOA korkodil.ru. hostmaster.krokodil.ru. (
решением имени 127.0.0.1 и localhost. В нашем приме- 2005122001 ; Serial number
ре зона localhost соответствует RFC 1912, хотя в жизни 10800 ; Refresh every 3 hours
3600 ; Retry every hour
вполне можно встретить разрешение имени 127.0.0.1 → 1728000 ; Expire every 20 days
localhost.domain.tld и соответствующее ему обратное раз- 172800 ); Minimum 2 days
;
решение. IN NS krokodil.ru.
Файл localhost.rev. Использует одну запись SOA вместе IN NS ns4.nic.ru.
с внутренней зоной обратного преобразования:
Технология AJAX:
как насчет безопасности?
Сергей Яремчук
История развития IT-индустрии показывает, что появление новых технологий практически
всегда приводит к понижению уровня безопасности. Так было всегда. Когда мэйнфреймы
стали объединяться в сеть, началось развитие клиент-серверных приложений – всё это
породило специфические проблемы и фактически обесценило старую систему безопасности.
И вот сегодня новая ступень – AJAX.
О
дин-единственный объект Java вого адреса другой. В старых системах этом, но и сделать, собственно, ниче-
Script XMLHttpRequest изменил у него всегда был бы шанс исправиться, го не сможет. То есть фактически тех-
порядок взаимодействия поль- теперь его, увы, уже нет. И в итоге про- нология AJAX позволяет контролиро-
зователей с сервером. Если ранее для вайдерский почтовый адрес уже висит вать действия пользователя, а раз та-
того, чтобы отправить данные, необ- на каком-либо форуме и через некото- кая возможность есть, то я сомневаюсь,
ходимо было нажимать кнопку, под- рое время попадет в базу данных спа- чтобы ею никто не воспользовался.
тверждая действие, то теперь это бу- меров. Возможно, это не самое страш- Но это еще не все. Пользователи
дет сделано автоматически. Стоит за- ное, что может произойти, но можно, обычно бывают более внимательны-
полнить поле, и браузер уже отправля- например, представить ситуацию и по- ми при первоначальной загрузке стра-
ет данные серверу, пользователь при хуже. Зашли на сайт, начали заполнять ницы, когда обычно выполняется код
этом не участвует. Удобство налицо, поля, ввели номер кредитной карточки, страницы, контролируются сообще-
например, если в поисковике по мере а затем сам сайт показался подозри- ния межсетевого экрана, подозри-
ввода параметров поиска будут выво- тельным, а ничего уже не изменишь. тельные системные события и прочее.
диться подходящие страницы, то таким Или, как вариант, по ошибке был вве- Но теперь ситуация изменяется в кор-
образом можно регулировать парамет- ден логин и пароль не к тому сайту, учи- не. Все дело в том, что теперь любой
ры запроса на лету, добившись резуль- тывая, что большинство пользователей код может быть выполнен и после за-
тата в меньшее время. Или, например, не утруждают себя многочисленны- грузки страницы. Например, рассмот-
как в Gmail, можно на лету проверять ми комбинациями логин/пароль, мож- рим такой код:
правописание. При этом веб-приложе- но получить данные для доступа сов-
ние фактически ведет себя аналогич- сем к другому ресурсу. При этом вла- xmlReq.onreadystatechange =
{
но настольному. дельцы веб-сайтов могут собирать ин- if ( xmlReq.readyState == 4 )
формацию о привычках пользователя. {
eval ( xmlReq.responseText );
Безопасность клиента Фактически каждое нажатие клавиши, }
Все вроде бы хорошо, удобство налицо, каждое движение мыши, щелчок, пау- }
но представьте, что при вводе произош- за при чтении информации могут быть
ла ошибка, например, пользователь перехвачены и отправлены на веб-сер- Такой сценарий выполнит JavaScript-
механически ввел вместо одного почто- вер, и пользователь может и не знать об код, содержащийся в ответе сервера,
46
web
т.е. код, полученный уже после загруз-
ки запрошенного документа. Самое
простое, для чего можно использовать
такую конструкцию, – это загрузка бан-
неров, которые можно теперь подгру-
жать постоянно без перезагрузки ос-
новной страницы. Кстати, интерес-
ная проблема получается: раз в AJAX-
приложениях нет страниц как таковых,
то каким же образом пользователю бу-
дут показываться баннеры? Решить ее
очень просто, например: менять по тай-
меру, по щелчкам или движению мыши,
нажатию клавиш. Но если попадется
недобросовестный веб-мастер, поже-
лавший накрутить счетчики, то поль-
зователь может заплатить за удобс-
тво лишним трафиком.
И самое печальное, что теперь,
проанализировав исходный код доку-
мента, нельзя до конца быть уверен- Рисунок 1. При помощи FireBug можно просматривать AJAX-запросы
ным в лояльности того или иного сер- дут придерживаться рекомендаций проса либо самому составить запрос,
виса. И все это на фоне повышения по- WWWC, и некоторая часть пользовате- основываясь на анализе исходного ко-
пулярности атак, направленных на уяз- лей все равно будет использовать ста- да и ответов сервера. Если во время
вимости в клиентских приложениях, рые версии браузеров, поэтому улуч- своей работы сервер не будет дополни-
в частности в веб-браузерах. Как бы шений здесь в ближайшем будущем тельно подстраховываться и контроли-
то ни было, именно на безопасность не предвидится. ровать поступающие данные на пред-
клиентов при использовании техноло- мет их принадлежности конкретно-
гии AJAX обращают внимание много- А что сервер? му пользователю, это может привес-
численные эксперты. По сообщениям специалистов, зани- ти к утечке конфиденциальных дан-
мающихся безопасностью, сегодня ных. Одним из самых простых мето-
Ошибки при приблизительно 20 процентов уязви- дов управления разрешениями являет-
программировании мостей приходятся именно на веб-при- ся использование cookies. Когда объ-
AJAX-технология относительно моло- ложения. Отмечается, что очень ред- ект XMLHttpRequest создает запрос,
дая, и хотя уже сегодня можно най- кое приложение может похвастаться он возвращает все активные в насто-
ти тысячи примеров, разработчикам всего одной уязвимостью, большая ящее время для этого сайта сеансо-
все равно приходится самостоятель- же часть содержит несколько уязви- вые cookies. Но это может быть выхо-
но писать код как для сервера, так и мых мест. При этом большая часть дом не для каждой ситуации. Напри-
для клиента практически в каждомом уязвимостей (около 95%) приходится мер, запросы могут быть отправлены
случае, и к тому же на разных языках. на cross-site scripting (XSS), т.е. подста- не тому серверу, на котором зарегис-
Это приводит к многочисленным ошиб- новка чужого кода в текущий сеанс. Ти- трировался пользователь, а на другой
кам в реализации, часть которых об- пичные эксплоиты могут включать: мо- сервер, где привилегии никак не под-
наруживается только при эксплуата- дификацию страниц (дефейс), переад- тверждены. Если ранее браузер прос-
ции приложения. К тому же не стоит ресацию (например, для форм регис- то отправлял ему форму, то теперь
забывать, что эту ситуацию усугубля- трации) и взаимодействие с сайтом происходит двусторонний обмен дан-
ют различия в поведении веб-браузе- от имени другого пользователя. ными (хотя некоторые браузеры могут
ров, наличие плагинов (некоторые от- Нас в контексте статьи интересу- блокировать такое поведение), и са-
ладчики, о которых рассказано чуть ет последний пункт. Хотя стоит отме- мое главное, что второй ресурс может
ниже, перехватывают действие и под- тить, что при помощи XSS можно смо- не иметь активных cookies.
меняют своим) и прочее. Это приводит делировать любую ситуацию, кото- В некоторых скриптах, встречаю-
к увеличению кода, а значит, – к ве- рую возможно проделать при помо- щихся на форумах, приходящие дан-
роятному появлению ошибок в конк- щи JavaScript. Теперь представим та- ные персонализируются на основа-
ретной реализации. На сегодняшний кую ситуацию. Пользователь запол- нии некоего идентификатора пользо-
день стандарт XMLHttpReques еще не няет некую форму, AJAX отсылает за- вателя (ID) или токена. Токен включен
принят, 5 апреля 2006 года World Wide прос, сервер обрабатывает отправ- как заголовок в запросах, сделанных
Web Consortium опубликовал всего ленные данные и возвращает ответ. объектом XMLHttpRequest. Он должен
лишь его черновой вариант [13]. К то- Но что, если злоумышленник имеет вести себя аналогично сеансовому то-
му же всегда найдутся особенные бра- возможность перехватить данные се- кену и обеспечивать доступ к защи-
узеры, разработчики которых не бу- анса и скорректировать параметры за- щенному ресурсу. Но злоумышленни-
48
безопасность
Василий Озеров
Существует два ошибочных мнения. Одно гласит, что безопасности в настройке сервера много
не бывает, другое – что она не нужна вовсе. В первом случае работать в системе становится
неудобно, во втором – важная информация не защищена от посторонних. Где же золотая
середина?
Р
ечь пойдет о том, как увеличить полагаю, что компьютер имеет доступ тожить. Это правило работает везде
безопасность FreeBSD, работаю- в Интернет с внешним IP-адресом. и всегда. Возвращаясь к безопаснос-
щей в качестве маршрутизатора Говоря о безопасности в общем ти операционных систем, можно гово-
между локальной сетью и Интернетом. (не только о компьютерной), мы неиз- рить об их защите очень долго, но все
Так как мы будем настраивать роутер, менно возвращаемся к одному очень вернется опять к этому правилу: опе-
то о большом количестве пользовате- простому и действенному правилу: все, рационную систему создал человек, и,
лей на нем речи не идет. Также я пред- что человек создал, он может и унич- следовательно, всегда найдется дру-
50
безопаснсоть
гой человек, который сможет обойти ее защиту, какой бы системы. Если у кого-то взломали FreeBSD, то это не гово-
мощной она ни была. рит о том, что вся система FreeBSD уязвима, это говорит
только о том, что ее неправильно настроили.
Безопасность
Безопасность системы в целом складывается из трех фак- Как настроить FreeBSD
торов: Итак, переходим от теории к практике. Настраивать систему
Безопасность ядра. мы будем также по трем направлениям, описанным ранее.
Безопасность установленного в ней ПО.
Человеческий фактор. Ядро
Итак, у вас установлена FreeBSD со стандартным ядром
Рассмотрим каждый из этих факторов подробно. GENERIC, которое включает в себя поддержку избыточно-
го количества устройств и функций. Это достаточно прос-
Безопасность ядра то объяснить: разработчик не знает, какая у вас система,
Большинство взломов происходит из-за ошибок в ядре. Яд- какие устройства и т. д., а стандартное ядро практически
ро для операционной системы – это основа: оно управляет всегда позволяет загрузиться на любом компьютере. Кон-
всеми операциями, производимыми в компьютере, и, сле- фигурирование ядра – задача довольно тривиальная. Тре-
довательно, без ядра работа системы невозможна, в част- буется совсем немного времени, чтобы «выкинуть» из кон-
ности, из-за отсутствия контроля за входными значениями фигурационного файла ядра все, что не нужно, потом, до-
функций. Функции работают на уровне ядра и как следс- бавив дополнительные возможности, перекомпилировать
твие имеют абсолютные привилегии, поэтому некоторые его. Зачем пересобирать ядро:
хакеры усердно ищут уязвимости для повышения приви- Ядро будет пытаться определить только те устройства,
легий в системе. которые установлены в компьютере, поэтому загрузка
Так как для семейства UNIX-систем ядра распространя- системы будет происходить намного быстрее.
ются в открытом исходном коде, то для нахождения уязви- Размер ядра уменьшается, и оперативная память осво-
мостей достаточно знать язык C. бождается.
Человек, нашедший уязвимость, может сообщить о ней Увеличивается безопасность благодаря отключению не-
разработчику или использовать уязвимость для взлома. нужных функций.
В первом случае разработчик, как правило, в кратчай-
шие сроки устранит уязвимость и выложит обновления для Отключение поддержки ненужных устройств я ос-
ядра. Вам же как системному администратору достаточно тавляю на ваше усмотрение, подробности смотрите на
вовремя обновить систему (ядро). официальном сайте FreeBSD (http://www.freebsd.org/doc/
Второй вариант происходит достаточно редко и грозит ru_RU.KOI8-R/books/handbook/kernelconfig-config.html). Сра-
взломом многих серверов. Опасен он тем, что вы думаете, зу добавляем в конфигурационный файл опции для firewall:
что система надежна защищена, хотя на самом деле это не я предпочитаю использовать в качестве firewall pf, поэто-
так. Рано или поздно, разработчики узнают о существова- му речь пойдет о нем. Приступаем к конфигурированию
нии уязвимости и все возвращается к первому случаю. и компиляции ядра (комментарии начинаются с «//», их пи-
сать не нужно!):
Безопасность ПО
Уязвимости в программном обеспечении находят гораздо # cd /usr/src/sys/i386/conf/
# cp GENERIC new
чаще, нежели в самой системе. Если программа достаточ- # cat >> new
но популярна, то в ней будут стараться найти уязвимости,
// Включаем поддержку firewall
чтобы получить возможность взломать достаточно большое device pf
количество серверов. Человек, который нашел уязвимость, device pflog
device pfsync
может пойти двумя путями, которые аналогичны описанным
ранее. Автор программы рано или поздно узнает об уязви- // Запрещает перезагрузку клавишами <ctrl+ alt +del>
options SC_DISABLE_REBOOT
мости и выпустит обновление к программе. А ваша зада-
ча – всего лишь вовремя обновить ПО. // Включаем поддержку ALTQ для шейпинга пакетов
options ALTQ
// Включаем проброс пакетов через интерфейсы Для того чтобы пароли пользователей теперь хеши-
# sysctl net.inet.ip.forwarding=1
ровались с помощью blowfish, нужно отредактировать
// Генерируем случайный идентификатор IP-пакетов /etc/auth.conf, заменив:
# sysctl net.inet.ip.random_id
52
безопаснсоть
src-kerberos5 to $prov_if port www -> 172.16.1.3 port www
src-kerberosIV # Включаем прозрачное проксирование
src-lib rdr on $int_if proto tcp from $internal_net ↵
src-libexec to any port 80 -> 172.16.0.1 port 3128
src-release
src-sbin
src-share # in packs on prov_if
src-sys
src-tools # Блокируем все входящие соединения
src-usrbin block in on $prov_if from any to any
src-usrsbin # Разрешаем пинги
src-crypto pass in on $prov_if inet proto icmp from any ↵
src-secure to $prov_if icmp-type 8 keep state
src-sys-crypto # Разрешаем соединяться с ssh-сервером
pass in on $prov_if inet proto tcp from any ↵
Таг RELENG_6_0 используется для исправлений исход- to $prov_if port 22 keep state
# Доступ к WWW
ного кода системы для увеличения безопасности. Теперь pass in on $prov_if inet proto tcp from any ↵
непосредственно запускаем cvsup: to $prov_if port www keep state
# Разрешаем соединяться с нашим почтовым сервером
pass in on $prov_if inet proto tcp from any ↵
# cvsup -g -L 2 /usr/local/etc/supfile to $prov_if port 25 keep state
54
безопасность
Андрей Бирюков
56
безопасность
Что собираемся защищать формирующих о попытках несанкционированного доступа
Серверные журналы, проще говоря протоколы, содержат с определенного IP-адреса, по протоколу ssh в iptables до-
в себе информацию о различных событиях, происходящих бавляется строка, блокирующая получение пакетов с дан-
в системе. Например, информацию об ошибках приложе- ного адреса. Список заблокированных IP-адресов автор
ний или о попытках несанкционированного проникновения предлагает передавать в сообщениях syslog.
в сеть. Автоматизация «реакции» на эти сообщения являет- Обратите внимание на то, что перед запуском сценария
ся важным элементом в обеспечении бесперебойного фун- необходимо создать iptables chain Block и поместить теку-
кционирования всей сети. Конечно, каждый администратор, щую конфигурацию iptables в файл /etc/sysconfig/iptables.
придя на работу, первым делом должен проверить прото- Тут следует сразу отметить, что пример сценария (см. лис-
колы своих серверов, не произошло ли что-нибудь в тече- тинг 1) ориентирован на использование в дистрибутивах
ние ночи или за выходные, и в случае необходимости при- Fedora/Red Hat. Для применения с другими дистрибути-
нять соответствующие меры. вами Linux необходимо будет произвести небольшие из-
Однако иногда такая реакция может оказаться запозда- менения.
лой, особенно это касается попыток осуществления несан-
кционированного входа в систему. Если какие-либо ресур- Листинг 1. Сценарий, блокирующий атаки на ssh
сы вашей сети (например, электронная почта, веб-сервер #!/usr/bin/perl -w
или доступ по протоколу SSH) опубликованы в Интернете, use Sys::Syslog; # модуль для работы с syslog
$max=10; # максимально разрешенное число попыток
то вам наверняка приходилось наблюдать записи в протоко-
лах, свидетельствующие о попытке осуществления несанк- # файл журнала, с которым мы и работаем
$watchfile= '/var/log/messages';
ционированного доступа к ресурсам сети. Конечно, это по-
пытки взлома с помощью «грубой силы» (brute force, подбор # путь к iptables (для разных дистрибутивов Linux
# он может различаться)
пароля по словарю), такой способ, как правило, не приносит $iptables= '/sbin/iptables';
результата. Хотя иногда начинающие хакеры с упорством,
# тоже iptables, но после сохранения изменений
достойным лучшего применения, «натравливают» слова- $iptables_save= '/sbin/iptables-save';
ри на учетную запись root.
# исходные значения iptables
Но тут следует заметить, что зачастую наш потенциаль- $iptables_restore= '/sbin/iptables-restore';
ный противник охотится вовсе не за паролем к учетной за-
# файл конфигураций iptables
писи пользователя, а, к примеру, ему необходимо опреде- $cfgfile= '/etc/sysconfig/iptables';
лить существует ли пользователь с таким именем на сер-
open(LFILE, "<$watchfile"); # открываем лог на чтение
вере или нет. Такая информация будет весьма полезна
для спамеров. Ведь на очень многих почтовых серверах %tries=(); # количество попыток для IP
%blocked=(); # уже заблокированных IP
имя пользователя совпадает с именем почтового ящика,
точнее, с той его частью, которая идет до знака @ (напри- # восстанавливаем конфигурацию, это нужно для того,
# чтобы «устаревшие» IP-адреса не оставались запрещенными
мер, user@mydomain.ru), а база корпоративных электрон- `$iptables_restore < $cfgfile`;
ных адресов стоит дороже чем база адресов с бесплатных
# получаем уже заблокированные IP-адреса из iptables
почтовых серверов. Для того чтобы избежать подобного ро- open(IPTPIPE, "$iptables -L -v -n|");
да сканирования, можно просто закрыть соответствующие $blockChain=0;
while (<IPTPIPE>){
порты от использования снаружи. Но в большинстве совре- $blockChain=1 if (/^Chain block \(\d+ references\)$/);
менных компаний сотрудники хотят иметь доступ к своей next unless $blockChain;
last if (/^$/ );
почте из дома или находясь в командировке, поэтому ва- $blocked{$1}=1 if (/(\d+\.\d+\.\d+\.\d+)/);
риант с запретом нам не подходит. }
close IPTPIPE;
Из всего этого делаем вывод, что нам необходимо # преобразуем в строку
средство, которое могло бы обнаруживать и адекватно ре- $blk_ips=join(", ",keys(%blocked));
# отправляем сообщение syslog
агировать на попытки подбора логинов/паролей к ресур- syslog('warning',"sshwatch.pl started. ↵
сам нашей сети. currently blocked ip's are: $blk_ips");
Существует масса решений, как программных, так и ап- # просматриваем /var/log/messages
паратных, получивших название Intrusion Detection System, while (1) {
for ($curpos = tell(LFILE); $_ = <LFILE>; ↵
IDS, системы обнаружения вторжения, которые позволяют $curpos = tell(LFILE)) {
выполнить данную задачу. Но зачастую они либо слишком # искомая строка
if (/sshd\[\d+\]: Failed password for .+ ↵
громоздки в управлении, либо слишком дорого стоят. from \D+(\d+\.\d+\.\d+\.\d+)/) {
Попробуем самостоятельно разработать простейшую $ip=$1;
next if defined($blocked{$ip});
IDS. В качестве инструментов будем использовать сцена- $tries{$ip}+=1; #увеличиваем счетчик
рии Perl под ОС Linux. if ($tries{$ip} eq $max){
# если превышено максимальное значение,
# пакеты с данного адреса должны быть заблокированы
Как собираемся защищать `$iptables -I block -s $ip -j DROP ; ↵
$iptables_save > $cfgfile`;
В качестве основы для реализации я использовал сцена- $blocked{$ip}=1;
рий, находящийся на cpan.org [1]. Идея довольно проста: че- # снова сообщение syslog
syslog('warning', "IP $ip has been blocked !");
рез определенные промежутки времени сканируется файл }
/var/log/messages. В случае обнаружения сообщений, ин- }
#!/usr/bin/perl -w
use Mail::Sendmail;
58
безопасность
$ipfw= '/sbin/ipfw'; ся в этой DMZ. Как уже упоминалось, к нему есть доступ
# то же ipfw но после сохранения изменений из глобальной сети. При такой топологии лучше всего от-
$ipfw_save= '/sbin/ipfw_save'; секать трафик атакующего еще на брандмауэре.
# исходные значения ipfw Будем предполагать, что в качестве межсетевого экра-
$ipfw_restore= '/sbin/ipfw-restore'; на у нас используется оборудование Cisco, тогда для осу-
# файл конфигураций ipfw ществления блокирования нам необходимо воспользовать-
$cfgfile= '/etc/sysconfig/ipfw' ся командами Cisco IOS.
# открываем лог на чтение Приведем необходимый набор команд для доступа
open(LFILE, "<$watchfile"); к консоли и изменения списка доступа. Приводить здесь ко-
# количество попыток для IP манды для настройки NAT и связи с ACL я не буду, так как
%tries=(); это не является темой статьи, и предполагаю, что у вас
# уже заблокированных IP уже всё настроено и нормально функционирует. Приведу
%blocked=(); лишь те команды, которые необходимо будет передавать
# восстанавливаем конфигурацию, это нужно для того, с помощью Perl-сценария. В моем примере использовался
# чтобы «устаревшие» IP-адреса не оставались запрещенными скромный PIX 501, однако для других моделей существен-
`$ipfw_restore < $cfgfile`;
`$ipfw list > out`; ных различий не будет.
# открываем лог на чтение Перед тем как начать поиск попыток проникнове-
open(LFILE, "<$watchfile"); ния в сеть, подключаемся к консоли брандмауэра с по-
# количество попыток для IP мощью протокола Telnet. Как и в предыдущих сценариях,
%tries=(); мы ищем вхождения искомых строк, и в случае, если ко-
# уже заблокированных IP личество попыток проникновения превосходит заданное
%blocked=(); значение, добавляем запись в список доступа. Затем, пос-
# получаем доступ к консоли ле того как все «новые» записи добавлены, мы добавляем
$t = new Net::Telnet ; основные, разрешающие записи, сохраняем измененную
$hostname="1.1.1.254";
$t->open($hostname); конфигурацию и отключаемся от консоли. Конечно, кому-
$t->waitfor('/login:.*$/') то такой подход может показаться не слишком удобным,
or die "bad login: ", $t->lastline;
$t->print("user"); так как необходимо вносить изменения в конфигурацию
$t->waitfor('/Password:.*$/') работающего устройства, однако такой вариант позволя-
or die "bad password: ", $t->lastline;
$t->print("password"); ет отсекать вредоносный трафик еще до того, как он про-
$t->waitfor('/pixfirewall>:.*$/') никает в вашу локальную сеть. Естественно необходимо
or die "No user mode: ", $t->lastline;
$t->print("enable"); позаботиться о безопасности доступа по Telnet, разре-
$t->waitfor('/login:.*$/') шив подключения только определенным узлам из внут-
or die "bad login: ", $t->lastline;
$t->print("user"); ренней сети [3].
$t->waitfor('/Password:.*$/')
or die "bad password: ", $t->lastline;
$t->print("password"); Автоматизируем запуск
$t->waitfor('/pixfirewall#:.*$/') После написания сценария нам необходимо автоматизи-
or die "No router privilege mode: ", $t->lastline;
$t->print("configure terminal"); ровать его работу. Сделаем это с помощью cron. По по-
$t->waitfor('/# pixfirewall(config):.*$/') воду работы с данной утилитой и ее синтаксиса написа-
or die "No router configure mode: ", $t->lastline;
$t->print("no access list 110"); но уже достаточно, поэтому приведу лишь несколько при-
меров. Прежде всего рекомендовую не запускать сцена-
# просматриваем /var/log/messages
while (1) { рий слишком часто, по крайней мере не каждые пять ми-
for ($curpos = tell(LFILE); $_ = <LFILE>; ↵ нут. Это связано с тем, что на активно работающем серве-
$curpos = tell(LFILE)) {
# искомая строка ре, как правило, файл messages имеет весьма внушитель-
if (/sshd\[\d+\]: Failed password for .+ ↵ ный размер, и поиск текстовых вхождений может сущест-
from \D+(\d+\.\d+\.\d+\.\d+)/) {
$ip=$1; венно нагрузить систему. К тому же слишком частые обра-
next if defined($blocked{$ip}); щения к консоли сетевого оборудования тоже не очень же-
$tries{$ip}+=1; # увеличиваем счетчик
if ($tries{$ip} eq $max){ лательны. Я бы рекомендовал запуск сценария каждый час.
# если превышено максимальное значение, Задать выполнение сценария по такому расписанию мож-
# пакеты с данного адреса должны быть заблокированы
$blocked{$ip}=1; но следующим образом:
# добавляем в список доступа запись о запрете
# доступа с IP @hourly /tmp/pop3watch.pl
$t->waitfor('/# pixfirewall(config):.*$/')
or die "No router configure mode: ", ↵
$t->lastline;
$t->print("access list 110 deny ip host ↵ Итак, мы рассмотрели различные сценарии, позволя-
$ip host 1.1.1.254"); ющие обнаружить и адекватно реагировать на попытки
# отправляем письмо
%mail = ( To => 'admin@test.local', несанкционированного доступа к ресурсам сети. Конечно,
From => 'firewall@test.local', приведенные способы поиска можно расширить, например,
Message => "IP $ip has been blocked !",
SMTP => 'smtp.mail.ru' искать информацию не только о попытках проникновения,
); но и о неисправностях и сбоях, возникающих в системе, на-
sendmail(%mail) or die $Mail::Sendmail::error;
пример, в случае аварийного завершения работы какого-
} либо демона или сценария. Поэтому данный сценарий мо-
}
} жет оказаться полезен и при решении других задач авто-
sleep 1; матизации системного администрирования.
seek(LFILE, $curpos, 0);
}
$t->waitfor('/# pixfirewall(config):.*$/') Использованные источники:
or die "No router configure mode: ", $t->lastline;
$t->print("access list 110 permit …."); 1. http://cpan.org/authors/id/D/DR/DRAGOS/sshwatch-0.01.pl – ис-
… ходный сценарий.
# здесь добавляем другие записи в список доступа
2. Родерик Смит. Полный справочник по FreeBSD.
$t->waitfor('/# pixfirewall(config):.*$/') 3. Основы организации сетей Cisco. Справочное руководство.
60
bugtraq
Обход аутентификации
Переполнение буфера в DPRPCW32.DLL в Sun Java System Directory Server
в клиенте Novell Программа: Sun Java System Directory Server 5.2.
Программа: Novell Client 4.83 SP3, 4.90 SP2 и 4.91 SP2 для Опасность: Средняя.
Windows 2000/XP/2003. Описание: Уязвимость существует из-за неизвестной
Опасность: Средняя. ошибки в процессе инсталляции. Удаленный пользователь
Описание: Уязвимость существует из-за ошибки провер- может получить административный доступ к приложению.
ки границ буфера в библиотеке DPRPCW32.DLL. Подроб- URL производителя: www.sun.com.
ности уязвимости не сообщаются. Решение: Следуйте инструкциям производителя.
URL производителя: www.novell.com/products/clients.
Решение: Установите исправление с сайта производите- Составил Александр Антипов
ля.
Крис Касперски
В прошлой статье этого цикла мы прошли сквозь распаковщик, добравшись до оригинальной
точки входа, и теперь, чтобы окончательно победить защиту, нам необходимо снять дамп.
Существует множество утилит, предназначенных для этой цели, но далеко не всегда
полученный дамп оказывается работоспособным. Почему? Попробуем разобраться!
П
ротекторы типа Themida (в «де- ные процессоры, значительно отлича- чем. А ведь приходится! Как странно
вичестве» eXtreme Protector) ющиеся от тех, под которые проекти- устроен мир.
и Star-Force, которыми защи- ровалась защита, активно использу-
щены многие популярные программы, ющая недокументированные возмож- Простые случаи дампинга
очень глубоко «вгрызаются» в опера- ности. Уж сколько раз твердили миру – Представим себе, что распаковщик
ционную систему, что снижает произ- не используйте ничего недокументиро- уже отработал, программа остановле-
водительность и порождает частные ванного в коммерческих приложени- на в оригинальной точке входа (OEP)
BSOD. Их «коллеги» ведут себя не так ях, да только все не впрок! Вот и при- и мы готовы сохранить образ файла
агрессивно, но проблем с совмести- ходится браться за хакерский инстру- (file image) на диск, то есть сбросить
мостью все равно хватает, особенно ментарий и освобождаться от протек- дамп. Отладчик soft-ice не предостав-
при переходе на 64-разрядные опе- торов, даже когда программа куплена ляет такой возможности, поэтому при-
рационные системы или многоядер- легальным путем и «ломать» ее неза- ходится действовать обходным путем..
62
безопасность
Но для начала необходимо выяснить, какой именно реги-
он памяти необходимо сохранять. При условии, что защита
не предпринимает никаких враждебных действий, нужная
информация может быть добыта командами MOD и MAP32
(см. рис. 1 и листинг 1).
Базовый адрес загрузки (hMod base) располагает- Рисунок 1. Определение региона памяти для снятия дампа
ся по адресу 400000h. Последняя секция (.data) начина-
ется с адреса 406000h и продолжается вплоть до адреса
(406000h + 1DE8h) == 407DE8h. Таким образом, нам необхо-
димо сохранить 7DE8h байт памяти, начиная с 400000h. Но
в soft-ice такой команды нет! Зато есть «история команд».
Даем команду «DB 400000 L 7DE8», выходим из отладчи-
ка, запускаем symbol loader и «говорим»: «file → save soft-
ice history as» (при этом размер самой истории должен быть
предварительно увеличен хотя бы до 30 МБ: «edit → soft-ice
initialization setting → history buffer size»). В результате обра-
зуется текстовый файл (см. листинг 2), который необходи-
мо преобразовать в exe, для чего потребуется написать спе-
циальную утилиту или поискать уже готовую.
Как вариант, можно воспользоваться бесплатным пла- Другой плагин — icedump (programmerstools.org/system/
гином IceExt (http://stenri.pisem.net), значительно расширя- files?file=icedump6.026.zip) тоже умеет дампить память,
ющим функциональные возможности soft-ice. Если IceExt и так же, как и IceExt, он распространяется на бесплатной
откажется запускаться, увеличьте размер кучи и стека основе вместе с исходными текстами.
до 8000h байт, отредактировав следующую ветвь реестра Полученный дамп можно загрузить в дизассемб-
HKLM\SYSTEM\CurrentControlSet\Services\NTice. лер типа IDA Pro, но от его запуска лучше воздержать-
Команда !DUMP (см. рис. 2 и листинг 3) позволяет со- ся (особенно на соседних компьютерах), поскольку для
хранять блоки памяти на диск в двоичном виде, что очень корректной работы необходимо восстановить табли-
удобно: цу импорта и ресурсы, но это настолько обширный воп-
рос, что здесь мы не будем его касаться, тем более что
Листинг 3. Дамп памяти, снятый командой !DUMP плагина IceExt существуют готовые утилиты: Import Reconstructor (http://
:!DUMP www.wasm.ru/baixado.php?mode=tool&id=64) восстановит
Dump memory to disk импорт, а Resource Rebuilder (http://www.wasm.ru/baixado.
!dump FileName Addr Len php?mode=tool&id=156) – ресурсы.
Ex: Для отладчика OllyDbg существует плагин OllyDump
!dump c:\dump.dat 400000 1000
!dump \??\c:\dump.dat 400000 1000 (http://dd.x-eye.net/file/ollydump300110.zip) со встроенным
!dump \??\c:\dump.dat edx+ebx ecx реконструктором таблицы импорта (см. рис. 3).
:!DUMP C:\dumped 400000 7DE8 Наконец, можно воспользоваться и автономным дам-
DUMP: \??\C:\dumped 400000 7de8 пером. Самым первым (и самым неумелым) был ProcDump,
64
безопасность
щен, базовый адрес загрузки тот же самый, что и в PE-за-
головке exe-файла. При работе с перемещенным образом,
базовый адрес приходится определять вручную путем по-
иска сигнатур PE и MZ, двигаясь от OEP вверх (т.е. в сто-
рону младших адресов). К нашему счастью, полностью за-
тереть PE-заголовок защита не может, поскольку тогда пе-
рестанут работать некоторые API-функции, взаимодейству-
ющие с ресурсами и т. д.
Если ни одним из способов определить границы обра-
за не удается, приходится дампить фрагменты адресного
пространства, загружая их в IDA Pro как двоичный файл,
естественно, с сохранением начального адреса фрагмен-
та. Для анализа работы защитного механизма этого в боль-
шинстве случаев оказывается вполне достаточно, тем бо-
лее что IDA Pro позволяет подгружать недостающие час-
ти «налету».
Рисунок 4. Внешний вид утилиты PE-TOOLS
Дамп извне
Прежде чем читать адресное пространство чужого про-
цесса, до него еще предстоит добраться. Windows изоли-
рует процессы друг от друга на случай непреднамеренно-
го удара по памяти (который сильно досаждал пользовате-
лям Windows 3.x), но предоставляет специальный набор API-
функций для межпроцессорного взаимодействия. Класси-
ческий путь: получаем обработчик процесса, который мы
собрались дампить вызовом OpenProcess и передаем его
функции ReadProcessMemory вместе с остальными парамет-
рами (откуда и сколько байт читать). При этом необходимо
учитывать, что некоторые страницы могут быть помечены
защитой как недоступные и перед обращением к ним необ-
ходимо вызвать функцию VirtualProtectEx, разрешив полный
доступ (PAGE_EXECUTE_READWRITE) или, по крайней мере, Рисунок 5. Просмотр карты памяти в PE-TOOLS
открыв страницы только на чтение (PAGE_READONLY).
Естественно, функции OpenProcess/ReadProcessMemory/ ции могут быть перехвачены защитой со всеми вытекаю-
VirtualProtectEx могут быть перехвачены защитой, и тог- щими отсюда последствиями (протектор Themida именно
да вместо дампа мы получим error, а то и reboot. Низко- так и поступает).
уровневые функции NtOpenProcess/NtReadVirtualMemory/ Важно отметить, что универсальных способов перехвата
NtProtectVirtualMemory перехватываются с той же легко- не существует – протектор может модифицировать табли-
стью, к тому же некоторые защиты изменяют маркер безо- цу экспорта, внедрять свои jmp в начало или даже середи-
пасности процесса, запрещая открытие его памяти на чте- ну сервисных функций ядра и т. д. А это значит, что на ядро
ние даже администратору! полагаться нельзя и вариантов у нас только два: использо-
Считается, что снятие дампа на уровне ядра открывает вать те функции, которые не догадалась перехватить защи-
большие возможности для реверс инжиниринга и противо- та, или переключать адресные пространства вручную.
стоять этому никак невозможно, поскольку драйвер рабо- Специальный плагин к PE-TOOLS (http://neox.iatp.by/
тает с наивысшим уровнем привилегий, который позволя- eXtremeDumper.zip, http://www.wasm.ru/pub/21/files/dumping/
ет все. Но ведь и драйверу защиты, работающему на уров- eXtremeDumper.rar), написанный MS-REM, пробивается
не ядра, тоже доступно все, в том числе и модификация яд- к процессу через следующую цепочку сервисных вызовов
ра операционной системы, в которых нуждается драйвер PsLookupProcessByProcessId → ObOpenObjectByPointer →
дампера. Причем никаких документированных функций ObDereferenceObject, которую пока еще никто не перехваты-
для чтения памяти чужого процесса (за исключением вы- вает, что позволяет снимать дамп даже с очень сильно защи-
шеупомянутых) в системе нет! щенных программ, однако, сколько этот способ еще продер-
Чтобы читать память процесса напрямую, драйвер дол- жится, сказать невозможно. Создатели протекторов не си-
жен к нему подключиться, вызвав функцию KeAttachProcess дят сложа руки и на хакерских форумах тоже бывают.
или ее современный аналог KeStackAttachProcess, поя- В долговременной перспективе надежнее всего исполь-
вившийся и впервые документированный в Windows 2000. зовать недокументированную (и к тому же неэкспортиру-
Пользоваться обеими функциями следует с величайшей емую!) функцию KiSwapProcess, адрес которой меняет-
осторожностью и прежде, чем подключаться к другому ся от системы к системе, что затрудняет перехват. В то же
процессу, необходимо отсоединиться от текущего, вызвав время дампер может легко определить его посредством
KeDetachProcess/KeStackDeattachProcess. Однако эти функ- таблицы отладочных символов, бесплатно распространя-
«Нечестные» защитные приемы реже – прямое воздействие на регистры Полиморфный мусор в OEP. Вместо
Нормальные упаковщики (UPX, PKLITE, и память (при этом краденые инструкции того чтобы красть байты с OEP, некоторые
PECOMPACT) сжимают исполняемый файл трансформируются в псевдокод и в явном протекторы предпочитают модифициро-
без потерь, и после завершения распа- виде нигде не сохраняются). Суть в том, что вать стартовый код, разбавляя значимые
ковки он возвращается к своему перво- в точке входа распакованного образа ори- инструкции бессмысленным полиморфным
начальному виду, что делает процесс сня- гинальных байт уже не оказывается и сня- мусором. Это никак не влияет на работос-
тия дампа тривиальной задачей. Протек- тый дамп становится неработоспособным. пособность снятого дампа, но ослепляет
торы в стремлении усилить защиту зачас- К нашему счастью, подавляющее боль- «FLIRT», вынуждая нас либо вычищать по-
тую идут на довольно рискованный шаг – шинство программ начинается со старто- лиморфный мусор, либо определять версию
они слегка «корежат» обрабатываемый вого кода, который является частью библи- компилятора «на глазок», загружая сигна-
файл с таким расчетом, чтобы он мог ра- отеки времени исполнения (RTL), поставля- туры вручную (IDA Pro это позволяет).
ботать только под протектором, а после емой вместе с компиляторами. Используя Переходники в таблице импорта к ку-
освобождения от него становится нежиз- оставшийся «хвост» стартового кода, мы че. Протектор Themida использует следую-
неспособным. Наиболее популярные спо- легко отождествим компилятор и восста- щий прием, серьезно затрудняющий восста-
собы подобной «нечестной» защиты рас- новим краденые байты из его библиотеки. новление таблицы импорта. Непосредствен-
смотрены ниже. Если же данного компилятора в нашем рас- ные адреса API-функций заменяются пере-
Кража байт с OEP. Самая простая поряжении не окажется, первые несколь- ходниками на область памяти, выделенную
и широко распространенная подлянка, ис- ко байт стартового кода в 9 из 10 случаев VirtualAlloc (т.е. кучу), которая по умолчанию
пользуемая даже в таких безобидных про- вполне предсказуемы, и зачастую их уда- в дамп не попадает, поэтому восстанавли-
текторах как, например, ASProtect. Суть ее ется восстановить самостоятельно (естес- вать импорт приходится вручную. Это не-
заключается в том, что упаковщик «крадет» твенно, для этого необходимо иметь опыт сложно, но утомительно – ищем вызовы API-
несколько инструкций из оригинальной работы с различными RTL). Кстати, IDA Pro функций, ведущие к куче (то, что это именно
точки входа, сохраняет их в потайном мес- распознает компилятор именно по первым куча, а не что-то другое, можно определить
те (возможно, в замаскированном или за- байтам стартового кода, и, если они отсутс- по карте), дампим соответствующий регион
шифрованном виде), а после завершения твуют или искажены, механизм FLIRT рабо- памяти на диск, удаляем переходники, за-
распаковки эмулирует выполнение краде- тать не будет. Это значит, что мы останем- меняя их действительными адресами, пос-
ных байт. Чаще всего для этой цели исполь- ся без имен библиотечных функций и про- ле чего запускаем Import Reconstructor или
зуется стек (тогда краденые байты обычно цесс дизассемблирования займет намно- другую утилиту аналогичного назначения
становятся операндами инструкций PUSH), го больше времени. и... нет, это еще не все! Это только начало!
66
безопасность
Потребность в отладочном процессе-сервере объясня- однако написание драйверов – занятие утомительное и сов-
ется тем, что по другому ловить исключения на прикладном сем небезопасное в плане «голубых экранов смерти». К то-
уровне просто не получается. А как же механизм структур- му же разработчику защиты придется либо наотрез отказы-
ных исключений или, сокращенно, SEH? Регистрируем свой ваться от поддержки 9x (которая все еще жива!), либо реали-
собственный обработчик и ловим исключения, что называ- зовывать сразу два драйвера! Тем не менее защиты такого
ется по месту возникновения. Это избавляет нас от API-вы- типа все-таки встречаются. Независимо от того, как проис-
зовов, обеспечивающих межпроцессорное взаимодействие, ходит обработка исключения, сломать такую защиту очень
которые элементарно перехватываются хакером. Увы! Ес- просто! Читаем первую страницу, дожидаемся завершения
ли защищаемое приложение использует SEH (а подавля- расшифровки, сохраняем ее на диск, обращаемся к следу-
ющее большинство приложений его используют), наш об- ющей странице и... действуем так до тех пор, пока в наших
работчик окажется перекрыт другим. Столкнувшись с «на- руках не окажется весь образ целиком. Стоит только внед-
шим» исключением, он попросту не будет знать, что с ним рить код дампера в адресное пространство защищенного
делать, и с вероятностью, близкой к единице, просто завер- процесса… и протектору будет очень сложно отличить об-
шит приложение в аварийном режиме. ращения самой программы от обращений дампера.
Теоретически установку нового обработчика легко отсле- Последние версии протектора Armadillo, недавно пере-
дить, установив аппаратную точку останова по доступу к па- именованного в Software Passport, реализуют намного более
мяти на адрес FS:[00000000h]. Операционные системы се- надежный, хотя и чрезвычайно низко производительный ме-
мейства NT позволяют прикладным приложениям манипули- ханизм трассирующей расшифровки, при котором весь код
ровать с отладочными регистрами через контекст, причем от- программы зашифрован целиком. Сервер трассирует кли-
ладочный регистр действует лишь в рамках «своего» процес- ента, расшифровывая по одной инструкции за раз (преды-
са, не мешая работать всем остальным, но 9x «забывает» со- дущая инструкция при этом зашифровывается). Снять дамп
хранять отладочные регистры в контексте «своего» процесса, тупым обращением к памяти уже не получается, поскольку
и они приобретают глобальный характер, воздействующий защиту интересуют только исключения, возникающие при
на все процессы! Так что в ней этот трюк не проходит. исполнении. Все, что мы можем, это «вклиниться» между
А вот другой способ: устанавливаем драйвер, пере- зашифрованным приложением и расшифровщиком, «кол-
хватывающий исключения на уровне IDT и взаимодейст- лекционируя» расшифрованные инструкции, образующие
вующий со своим процессом либо через DeviceIoControl, трассу потока выполнения. Поскольку, достичь 100% пок-
либо через NtReadVirtualMemory/NtWriteVirtualMemory/ рытия кода практически невозможно, полученный дамп бу-
KeDeattachProcess/KeAttachProcess. Это вполне надежно, дет неполноценным, но тут есть один маленький нюанс. По-
Помимо создания переходников некоторые производительность и, наконец, в-третьих, альный процессорный модуль для IDA Pro
функции копируются протектором целиком! от взлома это все равно не спасает! Дизас- или свой собственный дизассемблер. Это
Подробнее об этом приеме можно прочитать семблировав эмулятор переходов (а дизас- очень трудоемкое занятие, отнимающее
в статье «Точки останова на win32 API и про- семблировать его несложно) и обнаружив у исследователя кучу сил и времени, а ведь
тиводействие им» – раздел «Копирование таблицу переходов, хакер в считанные мину- байт-код виртуальной машины в следую-
API – функций целиком», которая находит- ты напишет скрипт для IDA Pro или OllyDbg, щих версиях протектора может быть из-
ся на http://kpnc.opennet.ru/adt.zip. удаляющий все INT 03 и восстанавлива- менен и ранее написанный процессорный
Замена jx с последующей эмуляци- ющий оригинальные переходы. Сущест- модуль/дизассемблер окажется непригод-
ей. При «отвязке» программ от протектора вует даже полуавтоматический взломщик ным. Это наиболее стойкая защита из всех,
Armadillo самое сложное – это восстановле- Armadillo, написанный двумя богами распа- существующих на сегодняшний день, одна-
ние оригинального кода программы. Защи- ковки – infern0 и dragon (http://www.wasm.ru/ ко не стоит забывать о двух вещах: во-пер-
та дизассемблирует обрабатываемый файл, baixado.php?mode=tool&id=220), в следу- вых, если протектор становится популяр-
находит в нем условные и безусловные пе- ющих версиях которого обещана полная ным, а его новые версии выходят редко, со-
реходы, записывает поверх них команду автоматическая распаковка и дезактива- здание процессорных модулей становится
INT 03h, а сам переход сохраняется в сво- ция Armadillo. экономически оправданным и защиту на-
ей внутренней таблице переходов. Процесс- Преобразование в байт-код. Протек- чинают ломать все желающие, если же но-
сервер перехватывает исключение, возбуж- торы Themida и Start-Force позволяют пре- вые версии выходят чуть ли не ежедневно,
даемое инструкцией INT 03, «смотрит», от- образовывать часть машинного кода за- то навряд ли у разработчика протектора бу-
куда оно пришло, извлекает из таблицы со- щищаемой программы в язык виртуаль- дет достаточно времени для радикальной
ответствующий этому адресу переход и эму- ной машины, то есть в байт-код (также на- перестройки виртуальной машины и ему
лирует его выполнение с помощью арифме- зываемый p-кодом). Если виртуальная ма- приходится ограничиваться мелкими из-
тических манипуляций с регистром флагов шина глубоко «вживлена» внутрь протек- менениями байт-кода, которые выливаются
(то есть в явном виде переходы нигде не хра- тора, то отломать защиту, не «умертвив» в мелкие изменения процессорного моду-
нятся!). Вот три главных минуса такого ре- при этом приложение, становится прак- ля, и протектор продолжат ломать. Во-вто-
шения: во-первых, нет никакой гарантии, тически невозможно, как невозможно не- рых, хакер может «отодрать» виртуальную
что защита правильно дизассемблирует об- посредственно дизассемблировать байт- машину от протектора, совершенно не вни-
рабатываемую программу и не спутает пе- код. По меньшей мере для этого необхо- кая в тонкости интерпретации байт-кода,
реход с другой командой; во-вторых, эмуля- димо разобраться с алгоритмом работы лишний раз подтверждая известный тезис:
ция требует времени, существенно снижая виртуальной машины и написать специ- сломать можно все… со временем.
68
безопасность
ли защищаемый файл не был запущен. Но в этом случае от дампера. Защита может распознать факт внедрения
они сталкиваются со следующей проблемой – как отли- чужой DLL в адресное пространство охраняемого ее про-
чить «свой» процесс от всех остальных? По имени фай- цесса, но откуда ей знать, что эта DLL делает?! Можно, ко-
ла? Это не слишком надежно… Лучше использовать «мет- нечно, просто выгрузить ее из памяти (или воспрепятство-
ку» – уникальное сочетание байт по определенному адре- вать загрузке), но какому пользователю понравится, что ле-
су. С такими защитами справиться очень сложно, но все- гально приобретенная программа конфликтует с его кру-
таки возможно. Перепробовав несколько вариантов, ав- той клавиатурой, мышью или другим устройством? Так что
тор остановился на следующем алгоритме, который об- SetWindowsHookEx при всей своей незатейливости – до-
ходит все существующие на сегодняшний день активные вольно неплохой выбор для хакера!
и пассивные защиты: Самый радикальный способ внедрения в чужое адрес-
Копируем оригинальный файл (с защитой) в tmp.tmp. ное пространство – это правка системных библиотек, та-
Открываем оригинальный файл в hiew, переходим в точ- ких как KERNEL32.DLL или USER32.DLL. Править можно
ку входа (EP) и ставим jmp на свободное место, где и раз- как на диске, так и в памяти, однако в последнем случае
мещаем код дампера, который при получении управле- защита может легко разоблачить факт вторжения прос-
ния осуществляет следующие действия: тым сравнением системных библиотек с их образом. Внед-
выделяет блок памяти и копирует туда свое тело, рившись в системную библиотеку, не забудьте скорректи-
обычно подгружаемое с диска (динамическую биб- ровать контрольную сумму в PE-заголовке, иначе NT от-
лиотеку лучше не загружать, поскольку некоторые кажется ее загружать. Сделать это можно как с помощью
защиты контролируют список DLL и если вызов идет PE-TOOLS, так и утилитой rebuild.exe, входящей в состав
из неизвестной динамической библиотеки, расцени- SDK. Внедряться лучше всего в API-функции, вызываемые
вают это как вторжение); стартовым кодом оригинального приложения (GetVersion,
устанавливает таймер через API-функцию SetTimer GetModuleHandleA и т. д.), определяя «свой» процесс функ-
с таким расчетом, чтобы процедура дампера полу- цией GetCurrentProcessId или по содержимому файла (пос-
чила управление, когда весь код будет полностью леднее – надежнее, т. к. GetCurrentProcessId может быть пе-
распакован или, в случае с CopyMem, когда защи- рехвачена защитой, которая очень сильно «удивится», если
та успеет установить отладочный процесс (конечно, API-функция GetVersion неожиданно заинтересуется иден-
снять дамп в OEP в этом случае уже не получится, тификатором текущего процесса). Во избежание побочных
но даже такой дамп лучше, чем совсем ничего); эффектов запускать такой дампер следует на «выделен-
переименовывает оригинальный файл (тот, что ис- ной» операционной системе, специально предназначен-
полняется в данный момент!) в tmp.xxx, а файлу tmp. ной для варварских экспериментов и обычно работающей
tmp возвращает оригинальное имя; под виртуальной машиной типа BOCHS или VMWare.
вычищает себя из памяти, восстанавливает EP и пе-
редает управление защищенной программе; Заключение
если активная защита охраняет свой файл, опозна- Правильно спроектированная и должным образом реали-
вая его по сигнатуре, используем какой-нибудь бе- зованная защита должна препятствовать нелегальному ис-
зобидный упаковщик с «нулевым побочным эффек- пользованию программы, но не имеет ни морального, ни юри-
том» типа UPX, при этом все вышеуказанные дейст- дического права мешать честным пользователям и уж тем
вия следует выполнять на отдельной заведомо «сте- более вторгаться в операционную систему, производя никем
рильной» машине; не санкционированные изменения. Последние версии про-
Запускаем модифицированный файл на выполнение. текторов Themida и Software Passport вплотную приближа-
ются к rootkit. Еще немного и они превратятся в настоящие
Таким образом, защита не сможет обнаружить измене- вирусы, создание которых преследуется по закону.
ний ни в файле, ни в памяти (при попытке определения име-
ни текущего файла операционная система будет возвра- Полезные ссылки:
щать то имя файла, какое он имел на момент запуска, иг- 1. Современные технологии дампинга и защиты от него. От-
норируя факт его «онлайнового» переименования). Но это личная статья от создателя eXtremeDumper доступно расска-
слишком громоздкий и навороченный алгоритм, к тому же зывающая о том, как протекторы защищаются от снятия дам-
активной защите ничего не стоит перехватить SetTimer и за- па, и объясняющая, как эти защиты обойти (на русском язы-
претить установку таймера внутри «своего» процесса до за- ке): http://www.wasm.ru/article.php?article=dumping.
вершения распаковки/передачи управления на OEP. 2. Об упаковщиках в последний раз. Объемный труд, создан-
Забавно, но многие защиты забывают о функции ный коллективом лучших отечественных хакеров во главе
SetWindowsHookEx, позволяющей внедрять свою DLL в ад- с легендарным Володей и охватывающий все аспекты рабо-
ресное пространство чужого процесса. Впрочем, даже если ты упаковщиков, протекторов и самой операционной систе-
бы они помнили о ней, осуществить корректный перехват мы (на русском языке): http://www.wasm.ru/article.php?article
весьма не просто. Многие легальные приложения (напри- =packlast01 (первая часть); http://www.wasm.ru/article.php?
мер, мультимедийные клавиатуры или мыши с дополнитель- article=packers2 (вторая часть).
ными кнопками по бокам) используют SetWindowsHookEx 3. Касперски К. Генная инженерия на службе распаковки PE-фай-
для расширения функциональности системы. Не сущест- лов. – Журнал «Системный администратор», №5, май 2006 г. –
вует никакого способа отличить «честное» приложение 58-68 с.
Андрей Маркелов
Когда идет речь о повышении квалификации IT-специалистов, в первую очередь вспоминается
компания Microsoft с огромным числом учебных курсов. Аналогичные программы обучения есть
и для Linux-специалистов.
Л
юбой из вас знает, насколько структуру предприятия и постоянно тичным для бизнеса. Иногда и минут-
быстро развивается область ин- следовать небезызвестному лозунгу ный простой в работе важных служб
формационных технологий. Про- «Учиться, учиться и еще раз учиться!» может привести к серьезным убыткам
изводители программного обеспече- Это прекрасно понимают и производи- предприятия.
ния улучшают свои продукты и выпус- тели программного обеспечения. И чтобы предоставить действи-
кают новые версии, внедряют новые Для того чтобы правильно эксплу- тельно качественный сервис своим за-
технологии и выводят на рынок реше- атировать программный комплекс, казчикам, все крупные производите-
ния, принципиально отличающиеся нужно опираться на твердые теорети- ли программного обеспечения само-
от тех, которыми вы пользовались ра- ческие знания и практические навы- стоятельно или через своих партнеров
нее. И кому же, как не вам «по велению ки. Во многих же современных компа- предлагают авторизированные курсы
судьбы или зову сердца» приходится ниях бесперебойное функционирова- обучения, а также линейки экзаменов
поддерживать и развивать IT-инфра- ние IT-инфраструктуры является кри- и программы сертификации, позволя-
70
образование
ющие подтвердить полученные специ-
алистом знания.
Ранее я уже рассказывал о преиму-
ществах и недостатках сертификации
и авторизированного обучения, а так-
же о нескольких учебных программах
и линейках сертификации [1].
Сегодня речь пойдет о программе
обучения и сертификации компании
Red Hat [2], которая будет безусловно
интересна всем, кому приходится ра-
ботать с операционной системой Linux,
и тем, кому хотелось бы усовершенс-
твовать знания по работе с ней.
Нет нужды говорить о том, что Red
Hat Enterprise Linux (RHEL) является
одним из самых известных коммер-
ческих дистрибутивов. А спонсируе-
мый компанией проект Fedora Project
выпускает свободный дистрибутив
Рисунок 1. Программа подготовки Сертифицированного технического специалиста
Linux под названием Fedora Core, на- Red Hat (RHCT)
ходящийся в списке самых популяр-
ных дистрибутивов (по данным сайта тификат от компании Red Hat. Также тему X Window, познакомятся с осно-
http://distrowatch.com). Делаем ли мы у слушателя остается официальное вами написания скриптов. Достаточ-
выбор в пользу RHEL и Fedora (кото- учебное пособие. К сожалению, поли- но много времени уделено текстово-
рую в принципе можно назвать «бе- тика Red Hat такова, что получить учеб- му редактору vim, входящему в боль-
та-версией очередной версии RHEL») ник может только слушатель курсов. шинство дистрибутивов Linux. Каждая
или выбираем другой не менее достой- Впрочем, той же стратегии придержи- из рассматриваемых тем, как и на ос-
ный из дистрибутивов Linux, нельзя ваются и другие производители ПО, та- тальных курсах от Red Hat, заверша-
не согласиться, что Red Hat – знако- кие как Oracle и Microsoft. С другой сто- ется лабораторной работой под руко-
вая компания на корпоративном рын- роны, тот же Microsoft выпускает офи- водством преподавателя. Новичкам
ке Linux-решений. циальные курсы для самостоятельной в мире Linux и UNIX я бы не рекомендо-
Компания Red Hat предлагает не- подготовки, чего нет у Red Hat. вал приходить на более старшие кур-
сколько треков обучения и сертифика- Идя на курсы Red Hat, желательно сы, не прослушав этот вводный курс
ции IT-специалистов. В России на мо- иметь базовые навыки чтения техни- или не имея базовых навыков. Подроб-
мент написания статьи были доступны ческой литературы на английском язы- нее с программой обучения как этого,
курсы и экзамены на статусы Red Hat ке для эффективной работы с учебным так и остальных курсов, можно позна-
Certified Technican (RHCT) – сертифи- пособием. В настоящий момент на рус- комиться на специальном разделе сай-
цированный техник и Red Hat Certified ском языке есть только официальная та компании Red Hat [2].
Engineer (RHCE) – сертифицированный документация, которая свободно до- Курс «Основы Red Hat Linux для
инженер. Если вы знакомы с програм- ступна в Интернете [3]. профессионалов Windows» отличается
мами обучения от компании Microsoft, Чтобы гарантировать качество обу- от вышеописанного лишь наличием до-
то первую сертификацию можно со- чения в России и странах СНГ курсы полнительного дня, в котором Windows-
поставить со статусом MCSA, а вто- Red Hat имеют право проводить толь- специалисты знакомятся с графичес-
рую – со статусом MCSE. Сравнивать ко сертифицированные инструкторы кими инструментами system-config-*,
сертификации можно лишь очень при- Red Hat компаний-партнеров. позволяющими выполнить основные
близительно, и в первую очередь из-за Самый младший из курсов назы- действия по управлению системой, ис-
формата экзамена. Но об этом позже. вается «Основы Red Hat Linux». Собс- пользуя графический пользователь-
Начнем с обучения – что оно из себя твенно говоря, практически все, о чем ский интерфейс.
представляет и как проходит. говорится в этом четырехдневном тре- Наиболее популярным можно на-
нинге, относится к любому из дист- звать базовый курс «Системное ад-
Курсы обучения рибутивов Linux. Ориентирован курс министрирование Red Hat Enterprise
Для начала несколько общих слов. на специалистов, ранее не работав- Linux», который является основой
На момент написания статьи курсы ших ни с UNIX, ни с Linux. За время для сертификации RHCT. Курс дает
и экзамены проводились на осно- обучения слушатели получат базовые слушателям навыки и знания на уров-
ве Red Hat Enterprise Linux 4 update 2. сведения и познакомятся с принципа- не установки и настройки новой рабо-
Большинство курсов продолжаются ми UNIX-way, научатся работать с ко- чей станции Red Hat Enterprise Linux
четыре дня. По их окончании слуша- мандной строкой, ориентироваться и подключения к существующей сети.
тель получает соответствующий сер- в файловой системе, настраивать сис- Рассматриваются установка опера-
72
bugtraq
Linux в школе?
Сергей Яремчук
Из всех сфер применения вычислительной техники один из самых горячо обсуждаемых
вопросов – использование GNU/Linux в области образования. Споры спорами, но на сегодняшний
день на большинстве компьютеров в учебных заведениях стоит Windows.
А зачем Linux в школе? которые затем станут потенциальны- сравнить деятельность по борьбе с пи-
Как вы думаете, почему компания ми пользователями системы. Попро- ратством звукозаписывающих компа-
Microsoft усиленно обращает внима- буйте в офисе вместо MS Office пос- ний и Microsoft, то можно отметить от-
ние на вузы и школы, проводя раз- тавить OpenOffice.org. Внешне и фун- носительно ленивые потуги последней.
личные акции, скидки на ПО. Да и во кционально они очень похожи, но пси- Не в попытке ли приручить пользова-
время кампании по борьбе с пиратс- хологически человек воспринимает теля здесь дело? А вот когда решат
ким софтом учебные заведения были перемены тяжело, и поверьте, поль- все-таки гайки позакручивать, то как
практически нетронуты, лишь немно- зователи будут искать разные причи- вы думаете, за какой системой будет
го «припугнули» и практически оста- ны, чтобы им поставили старый офис- стоять очередь?
вили в покое. Все просто до безобра- ный пакет. Да, пусть Microsoft при этом Linux же пришел на десктопы не-
зия. Человек по природе своей сущес- понесет некоторые убытки, но они бу- давно и в принципе несколько запоз-
тво ленивое, и, разобравшись с конк- дут несравнимы с теми, которые она дало, так что пока не может похвас-
ретным вопросом один раз, он не захо- понесла бы, усилив борьбу с пиратс- таться большим количеством поклон-
чет ничего нового и будет в большинс- твом и доведя ее до победного кон- ников, не занимающихся информати-
тве своем пользоваться старыми зна- ца. Поэтому и пиратство на террито- кой профессионально. Основная же
ниями, переучиваться никто не любит. рии бывшего Союза вопреки подня- часть пользователей просто не видит
А ведь в учебных заведениях ежегод- тому шуму не только не уходит в под- смысла менять систему, отказывать-
но проходят обучение тысячи человек, полье, а, наоборот, процветает. И если ся от любимых приложений, а неко-
74
образование
торые, возможно, просто опасаются, страняются промоутинговые скидки, зывают о непонятных протоколах, а за-
что не смогут самостоятельно разо- а стоят они на порядок дороже. В слу- тем на практических занятиях показы-
браться. В школах ситуация полностью чае же со свободным ПО деньги вкла- вают, как настроить Windows для рабо-
совпадает с описанной. За несколь- дываются не в конкретную програм- ты в сети. Учитывая, что особенности
ко лет все программы обучения фак- му, а в подготовку человека. Систе- настроек в последней скрыты, получа-
тически были адаптированы только мы и технологии меняются постоянно ется, что теория и практика разделены,
под Windows, учителя тоже привыкли и будут требовать постоянных обнов- и пользователь просто заполняет поля,
к этой системе, потому что это единс- лений (капиталовложений), а знания часто не понимая, зачем и что он дела-
твенное, что было доступно. С накатан- остаются. В большинстве школ ситу- ет. Хорошо это или плохо, однозначно
ного пути уходят только энтузиасты, ко- ация такова, что школьник, имеющий трудно сказать. С одной стороны, боль-
торым надоели вечные перестановки доступ к Интернету и не озабоченный шинству эти знания явно не нужны, но
системы, необходимость обновления кучей проблем, может дать фору учи- с другой – каждая нестандартная си-
версий системы и оборудования пос- телю информатики по знаниям или туация приводит такого пользователя
ле выхода очередной версии Windows, взломать систему, потому что учителю в замешательство.
а также постоянные шалости учени- не хватает квалификации все профес- На курсах по геоинформационным
ков, вирусы и пр. Кстати, парадоксы сионально настроить. После перепод- системам тоже произошла интересная
встречаются и здесь. Так, если почи- готовки технический уровень препода- ситуация. Преподаватель рассказы-
тать требования к статьям в научные вателя повысится, и он сам теперь смо- вал о проблемах, возникающих при со-
журналы в различных вузах, то одним жет поддерживать ПО в современном здании подобных систем. Они связа-
из пунктов обязательно стоит MS Word, состоянии, защитить сеть, объяснить ны с большим объемом работ, кото-
и именно определенной версии (иног- не на пальцах, а на реальных приме- рые необходимы провести при созда-
да вплоть до build). Об этом почему-то рах основы или принципы работы Ин- нии подобных систем и соответствен-
мало говорят, но ведь разные версии тернета и пр. Причем это, можно ска- но с большими финансовыми затра-
Microsoft Office тоже не всегда дружат зать, единоразовое вложение, т.к. для тами, что не всегда могут себе позво-
друг с другом. Это, конечно, хорошо, работы с любым Linux достаточно по- лить некоммерческие проекты. И со-
когда диск со всеми версиями офи- нять базовый принцип и некоторые ответственно на поставленный воп-
са стоит копейки и за его нелегаль- принципы работы, далее все идет бо- рос «а есть ли бесплатные (свобод-
ное использование никто ответствен- лее-менее по накатанной. Может, си- ные) альтернативы подобному коммер-
ности не несет. А если бы пришлось туация описана идеально, но, по-мое- ческому ПО», преподаватель, не заду-
каждый раз покупать нужную версию му, именно учителя в силу специфики мываясь, ответил, что такого и не мо-
по рыночной цене, то мне трудно пред- своей профессии склонны к самообра- жет быть. Как же он удивился, когда
ставить, как бы велась научная работа зованию, повышению своей квалифи- через некоторое время я принес ему
в этом случае. Запад эту проблему ре- кации, обмену опытом. Хотя, по прав- свободную альтернативу и показал
шил намного проще, там используют- де, потрясения последних лет породи- возможности ПО, входящего в ком-
ся только открытые форматы. ли и здесь массу проблем, в том чис- плект. Правда, на программу курсов
ле лень, заключающуюся в нежела- это никак не повлияло, все осталось
Затараты нии изучать что-то новое. Вы скажи- по-старому.
на использование те, что человек тоже весьма не наде- Еще одно отличие состоит в том,
В Интернете периодически появляют- жен, он может заболеть, а то и вовсе что при изучении /использовании
ся цифры сравнения затрат при ис- перейти на другую работу. Так ведь и Windows от пользователя не требу-
пользовании Windows и Linux, при этом купленная система не всегда работает ется глубоких знаний и весь процесс
сходятся в том, что эта сумма пример- так, как требуется. Кроме того, здесь (в том числе и справочная информа-
но одинакова. Причина такова, что хо- начинает срабатывать принцип, кото- ция системы) подчас сводится к бес-
тя софт и бесплатный, но все равно рый биологи называют «коллективным смысленному запоминанию и затем
потребуется научить людей им поль- иммунитетом», когда количество при- воспроизведению последовательнос-
зоваться. То есть с точки зрения фи- витых от некоторой болезни не поз- ти действий без понимания происхо-
нансирования смысла использовать воляет возникнуть эпидемии. Так вот, дящего. Да и инструментов для тон-
Linux вроде бы и нет. Но это только сейчас все привиты Windows, а Linux кой настройки некоторых параметров
поверхностный взгляд. Достаточно смогли заразиться только те, кто смог в самой системе просто нет, если толь-
вспомнить, что в случае с системой преодолеть этот барьер. ко самому не лезть в реестр, что уже
Microsoft мы платим за ПО, которое, требует определенных знаний. Как
кстати, через год-два будет устарев- По каким принципам вы думаете, тяжело Microsoft создать
шим и потребует дополнительных вло- ведется обучение? встроенный графический инструмент
жений на обновление и времени на ос- Как пример, мне довелось пару раз по- для настройки реестра Windows? Нет.
воение. Не говоря уже о том, что кро- бывать на курсах по изучению сетевых Нужен пользователь, бездумно тыкаю-
ме самой системы, еще нужны другие технологий, кроме того, видеть про- щий в кнопки, которому можно расска-
программы (антивирус, офис, компиля- граммы некоторых других курсов. Изу- зывать сказки об удобных интерфей-
тор, приложения для работы с графи- чение в некоторых ведется по такому сах и новых возможностях. Это отчас-
кой и пр.), на которые уже не распро- принципу. Сначала новичкам расска- ти подтверждается и справочной сис-
76
образование
Дистрибутив Edubuntu:
специально для школ
Сергей Яремчук
В учебных заведениях некоторых западных стран позиции UNIX настолько сильны,
что производителям проприетарного софта остается только завидовать этому. Чтобы
упростить процесс использования свободного ПО в сфере образования, организациями
и энтузиастами были собраны специальные дистрибутивы.
78
образование
О
собенно этот процесс оживил-
ся в последнее время в связи
с ростом популярности LiveCD-
дистрибутивов Linux, которые позволя-
ют опробовать новые решения, не при-
бегая к кардинальной перестройке уже
имеющейся инфраструктуры.
Вот некоторые из них:
польский Linux-EduCD (http://
www.simp-st.pl/linux-educd.html);
американский Quantian (http://dirk.
eddelbuettel.com/quantian);
итальянский eduKnoppix (http://
eduknoppix.dmf.unicatt.it);
норвежский Skolelinux (http://www.
skolelinux.no);
LiveCD FREEDUC (http://www.ofset.
org/freeduc), разрабатываемые
при поддержке OFSET (Organisation
for Free Software in Education and
Teaching) и UNESCO.
Рисунок 1. Рабочий стол Edubuntu
Список дистрибутивов из разных гать за недружелюбность к обычным мер, в статье Владимира Якубовского
стран можно продолжать. пользователям и необходимость чте- «Ubuntu 5.10 – первый взгляд на «Линукс
ния документации. Ничего подобного. для людей», в первом номере элект-
Дистрибутив Edubuntu Начинающие пользователи Windows ронного приложения к журналу «Open
Edubuntu представляет собой версию задают не меньше вопросов, чем поль- Source». Та же программа установки,
популярного дистрибутива Ubuntu, опти- зователи Linux и также сталкиваются которая спокойно, без лишних вопросов
мизированную для применения в шко- с проблемами. Поэтому в любом слу- проведет пользователя по всем этапам
лах. В отличие от остальных дистрибу- чае пользователям требуется помощь установки. Несколько непривычно, что
тивов его с успехом можно применять консультантов или приходится разби- пароля root никто не спрашивает, а сис-
и дома. Фактически Edubuntu это и есть, раться самостоятельно. Для повсед- тема просто просит создать учетную за-
собственно, Ubuntu, но только с другой невных задач пользователям не по- пись обычного пользователя, под ко-
целевой аудиторией и другими прило- надобится особых знаний при работе торым и будет происходить дальней-
жениями. Создаетсяи поддерживает- с Edubuntu. шая работа. Созданный при установке
ся той же группой разработчиков, что пользователь автоматически заносит-
и оригинальный дистрибутив. Центра- Что внутри? ся в группу admin, представителям ко-
лизованное управление конфигураци- Текущая стабильная верся на мо- торой разрешено использовать sudo.
ей, учетными записями пользователей мент написания статьи – Edubuntu 5.10 Все системные настройки производят-
и приложениями, плюс комплектование «Breezy Badger», о которой и пойдет ся исключительно через sudo (или «run
дистрибутива специальными програм- речь далее. Уже имеется версия 6.06 as different user» в графической среде),
мами для учебных заведений, – на это beta, предназначенная для разработ- при этом вводится пароль текущего
ориентирован Edubuntu. Edubuntu пост- чиков. Учитывая 6-месячный цикл пользователя. Поначалу такая систе-
роен на идеях, записанных в манифес- разработки Ubuntu, в ближайшее вре- ма безопасности кажется непривычной
те Ubuntu, в котором, в частности, го- мя следует ожидать нового релиза, но и неудобной, но быстро осваиваешься,
ворится, что программное обеспече- главное – познакомиться c подобным к тому же на некоторые повторяющие-
ние должно быть бесплатным, доступ- дистрибутивом в общем. Да и в новой ся операции (например, копирование)
ным на любом языке и использоваться версии состав приложений тот же, что и пароль запрашивается только первый
всеми, в том числе и людьми с физичес- в «Breezy Badger», единственное отли- раз. Но зато забыть оставить активи-
кими недостатками. Пользователь всег- чие – это появление LiveCD-версии. рованным терминал с администратор-
да должен иметь возможность свобод- На странице закачки предлагает- скими привилегиями при таком подходе
но модифицировать используемое про- ся два образа. Один собран для i386 просто невозможно, особенно учитывая
граммное обеспечение. архитектуры (для всех систем), вто- специфику применения Edubuntu, когда
Напомню, что Ubuntu построен на рой – для 64-битных систем (Athlon64, преподаватель может часто отвлекать-
базе самого свободного дистрибути- Opteron, EM64T Xeon). Доступны и DVD- ся, для помощи ученикам.
ва GNU/Linux – Debian. Дружелюбность, образы. Единственной рабочей средой яв-
присущая Ubuntu, позволяет работать Edubuntu во многом напоминает ро- ляется Gnome (см. рис. 1). Возможно,
с ним пользователям со средними тех- дительский дистрибутив, о котором бо- кому-то покажется, что KDE лучше бы
ническими навыками. Linux принято ру- лее подробно можно почитать, напри- подошел на эту роль, но для неиску-
80
образование
Рисунок 3. Gcompris поможет в изучении математики Рисунок 4. При помощи Kalzium можно изучать периодическую
и не только систему элементов
в TuxMath («Tux, of Math Command»), KmessedWords – игра рассчитана ставляющий собой систему распреде-
чтобы спасти планету, необходимо на детей от 10 лет, в ней необходимо ления времени (занятия, дежурство, по-
быстро производить математичес- расставить правильно буквы в слове. сещаемость, оценки и демографичес-
кие вычисления; Игра имеет три уровня сложности, кую информацию).
TuxTyping научит быстро печать сло- можно создавать свои слова и пра- Кроме образовательных приложе-
ва (правда, только английские); вила. ний в дистрибутиве можно найти пол-
веселая рисовалка TuxPaint, скорее KmPlot – математический графо- ный комплект программ для повседнев-
всего, оставит вас без компьютера построитель с мощным синтакси- ной работы. Офисные Scribus, Evolution,
надолго. ческим анализатором. OpenOffice 2.0, Интернет Gaim, Firefox,
KPercentage – небольшая матема- XCat, GnomeMeeting, клиент сети bittorent,
Кроме того, есть Atomix, который тическая программка, которая помо- программы для просмотра видео и про-
даст понятия о молекулах и атомах, жет освоить вычисление процентов. слушивание музыки (mp3 не поддержи-
и gLIfe, некий автомат искусственной Kstars – простой на вид имитатор вается). Учитывая направленность дис-
жизни, и некоторые другие. ночного звездного неба, на самом трибутива, не мешало бы наличие при-
Пункт «Образовательные» содер- деле использующий самые совре- ложения, при помощи которого можно
жит еще 14 приложений, большая часть менные алгоритмы вычисления по- было блокировать доступ к некоторым
которых из KDE edutainment module [2]: ложения небесных тел и имеющий веб-ресурсам, на которые детям по-
Kalzium – покажет всю информацию базу о тысячах небесных объектах падать не желательно, хотя бы при по-
по периодической системе элемен- и снимки, взятые с космического те- мощи одного из плагинов Firefox (http://
тов, подробно по каждому элемен- лескопа Hubble и некоторых обсер- kb.mozillazine.org/Parental_controls).
ту, по группам, по характеристикам, ваторий.
по времени открытия и пр. (рис. 4). KTouch – еще один клавиатурный Вывод
KBruch – поможет научиться обра- тренажер, правда, опять же англий- Edubuntu еще далек от идеала, установ-
щаться с дробями, возможны четы- ский. ка на маломощных компьютерах про-
ре варианта – посчитать, сравнить, KTurtle – образовательная програм- исходит медленно, дистрибутив и про-
преобразовать и разложить на мно- мная среда, использующая язык про- граммы недостаточно локализованы,
жители. граммирования Logo (первоначально, некоторые настройки не понятные инту-
Keduca – представляет собой сис- ответвление LISP). Легкость и доступ- итивно. Но в том, что такому дистрибу-
тему тестирования, в состав входит ность делает эту программу непло- тиву будет найдено применение, сомне-
и редактор тестов. хим подспорьем при обучении (имен- ваться не приходится, особенно учиты-
KhangMan – компьютерный вари- но обучении, Kturtle не предназначен вая низкую стоимость и, главное, состав
ант известной игры виселица, име- для программистов) программирова- программ, входящих в комплект.
ет четыре уровня сложности, рас- нию, математике и геометрии.
считана на детей от 6 лет. Kverbos – программа для изучения Cсылки:
Kig (kde Interactive Geometry) – испанских глаголов. 1. Сайт пректа Edubuntu – http://www.
инструмент, позволяющий в диа- KVocTrain – еще одна программа, edubuntu.org.
логовом режиме изучать матема- цель которой помочь в изучении 2. KDE edutainment – http://edu.kde.org.
тические фигуры и понятия, кро- иностранного языка. 3 Linux Terminal Server Project – http://www.
ме того, может использоваться ltsp.org.
для WYSIWYG создания математи- Кроме этого, если зайти по адре- 4. Утилита tsclient – http://www.gnomepro.
ческих фигур для включения в дру- су http://localhost:7080/, то можно найти com/tsclient.
гие документы. еще один сервис SchoolTool [5], пред- 5. SchoolTool – http://www.schooltool.org.
Крис Касперски
Хороший системный администратор не только знает тонкости операционной системы,
но и умеет обращаться с паяльником, а из его кармана высовывается мультиметр.
Этих простых вещей вполне достаточно для того, чтобы усовершенствовать систему
индикации или устранить мелкие неисправности, возвращая отказавший компьютер
из небытия в рабочий строй.
82
hardware
П
роизводители аппаратного LDE-моддинг
обеспечения делают все воз- Два светодиода на передней панели
можное и невозможно для до- (один из которых – Power-LED– посто-
стижения максимальной производи- янно горит, а другой – HDD LED – ожив-
тельности, функциональности, эрго- ленно мигает) – это традиция, сохра-
номики и т. д. Считается, что кустар- нившаяся с древнейших времен, ког-
ным способом ничего усовершенство- да самым престижным компьютером
вать уже невозможно, а вышедшую был IBM XT, выполненный в «строгих
из строя материнскую плату востано- серых тонах», но в наш век подобный Рисунок 1. Подключение нескольких
контроллеров к одному светодиоду
вить по силам только сервисному цен- дизайнерский подход выглядит мало-
тру, но это не так! Творчески настроен- привлекательным и неоправданно ас-
ный системный администратор может кетичным.
и должен дорабатывать компьютер, Разве не интересно загляну ть
попутно исправляя мелкие неисправ- во внутренний мир компьютера, при-
ности типа сгоревших предохраните- цепив индикацию буквально на каж-
лей (далеко не все знают, какое коли- дую шину? Например, подключившись
чество предохранителей расположе- к выводу /RAS модуля памяти (115/154-
но на материнской плате) и т. д. Разу- выводы DIMM-слота на SDR/DDR со-
меется, подобные эксперименты с па- ответственно), мы сможем наблю- Рисунок 2. Внешний вид диодов Шотки
яльником приводят к аннулированию дать за переключениями DRAM-стра-
гарантии, поэтому действуйте на свой ниц оперативной памяти, а 27/63-кон-
страх и риск! такты будут мигать светодиодом при
переключении микросхемы из режи-
Один LED на двоих ма чтения в режим записи! Достаточ-
При подключении дополнительных но взять в руки схему материнской
винчестеров на внешний контроллер платы (схемы рефересных плат бес-
(SCSI или IDE) возникают проблемы платно раздаются с сайта Intel), и че- Рисунок 3. Схема подключения
дополнительного светодиода
с индикацией. Светодиод – один, и он рез несколько минут наш PC превра-
уже занят материнской платой с ос- тится в рождественскую елку! Кста-
новными IDE-контроллерами. Можно, ти, при выявлении причин сбоев это
конечно, просверлить в корпусе дыр- очень помогает.
ку и вывести наружу столько светоди- Вот только напрямую подсоеди-
одов, сколько потребуется, но это мо- нить светодиоды ни в коем случае не-
жет испортить внешний вид компью- льзя! Ну уже хотя бы потому, что шины
тера, к тому же большое количество и так работают на пределе, и при по-
моргающих светодиодов сильно раз- пытке их удлинения все падает в тар-
дражает. тарары. Приходится хитрить, восполь-
Воспользовавшись следующей зовавшись операционным усилите-
схемой (см. рис. 1), мы сможем под- лем, таким, например, как LM358, ко-
Рисунок 4. Пульсовый генератор
ключить к одному светодиоду прак- торый легко выпаять с любой материн- на LM358
тически неограниченное количество ской платы, видеокарты или купить на
контроллеров. рынке. Вот его техническая докумен- и подключенные к ним светодиоды бу-
Для исключения «выгорания» це- тация: http://www.ensc.sfu.ca/reference/ дут монотонно мигать, имитируя рабо-
пей индикации контроллеров мы ис- data-sheets/LM358.PDF, а типовая схе- ту сердца.
пользуем диоды Шотки типа BAT46 ма подключения на рис 3. На самом деле, схема, приведен-
(см. рис. 2), которые можно взять прак- Каждая микросхема LM358 вклю- ная в описании операционного уси-
тически с любой материнской платы, чает в себя целых два операцион- лителя, очень условна, и все «второ-
оставшейся от апгрейда, или купить ных усилителя, а значит, что она мо- степенные» элементы типа фильтров
в радиомагазине за «копейки». Прове- жет обслуживать сразу два незави- в ней опущены. Во-первых, не всегда
ряя их целостность омметром, не вол- симых светодиода. Сама микросхе- на интересующем нас выводе будет по-
нуйтесь, если стрелка не захочет от- ма монтируется прямо на материн- ложительный уровень, поэтому поря-
клоняться. Это свойство диода та- скую плату, непосредственно на ин- док подключения «+» и «–» приходит-
кое – открываться только при дости- тересующий нас вывод, а светодиод ся определять либо «по науке» (све-
жении определенного порогового на- может быть выведен гибким шнуром рясь со схемой), либо «эксперимен-
пряжения. Все необходимые вольтам- на переднюю панель или даже в со- тально» (если подсоединить непра-
перные характеристики диода содер- седнюю комнату. вильно, ничего не сгорит, просто све-
жатся в бесплатно распространяемой Незадействованные усилители тодиод моргать не будет). Во-вторых,
документации: http://ronja.twibright.com/ легким движением руки превращают- работа компьютера после такого вар-
datasheets/bat46.pdf. ся в тактовые генераторы (см. рис. 4), варского вмешательства рискует стать
Рисунок 5. «Правильная» схема подключения контрольных Рисунок 6. HDD-индикатор на самом деле отражает активность
светодиодов от Intel всех ATA/ATAPI-устройств
нестабильной, так что на высоких час- смотрим типовую схему подключения тодиод другого цвета и другой поляр-
тотах ее лучше не применять. POWER LED (см. рис. 7). ности (минус этого решения в том,
Правильное решение (выдерну- На плате (ON-BOARD) расположен что придется «дырявить» лицевую па-
тое из схемы на материнскую плату двухцветный (DUAL-COLOR) светоди- нель, что не есть хорошо, а впрочем...
Intel 100 MHz Pentium(tm) II processor/ од. Это такой специальный светодиод, так даже красивее).
440BX) выглядит так (см. рис. 5). Про- содержащий два LED в одном флаконе.
верено – оно работает и на более высо- Выбор нужного цвета осуществляется Когда индикатор лжет
ких частотах, вплоть до Pentium-4. полярностью. Параллельно ON-BOARD Невероятно, но факт, HDD LED на са-
Основной всего служит чип 74ALS08 LED расположен CHASSIS POWER LED, мом деле отображает активность ши-
(вот ссылка на документацию: http:// что в переводе на русский язык озна- ны IDE и подмигивает любому ATA/
www.standardics.philips.com/products/ чает «светодиод, выведенный на кор- ATAPI-устройству (например, DVD-
als/pdf/74als08.pdf). Это так называе- пус». Итак, все необходимые ингреди- приводу или CD-ROM), что вносит ди-
мый «Quad 2-input AND gate» (2-х вход- енты у нас уже есть! кую путаницу в процесс и нервиру-
ной И-вентиль, в количестве 4-х штук Способ номер один – убираем ста- ет начинающих пользователей, иног-
в одном корпусе) со свитой резисто- рый светодиод с лицевой панели и ста- да даже сдающих компьютер в ре-
ров и конденсаторов, подавляющих вим на его место новый DUAL-COLOR, монт (см. рис. 6). Против схемотех-
помехи. Как и следует из его назва- который можно взять со старой платы ники, конечно, не попрешь, но мы зна-
ния, он обслуживает две «контроль- или в магазине. Все! Теперь он будет ем как быть!
ных» точки, выводимые на один-единс- светиться двумя разными цветами! Разносим HDD и CD-ROM/DVD-
твенный светодиод. Все детали легко Способ номер два – подключаем ROM по разным шлейфам (если не сде-
взять с любой платы, так что на рынок к старому светодиоду еще один све- лали этого сразу), берем в руки лупу и,
идти совершенно необязательно.
Главное – запастись светодиодами.
Яркими и, желательно, разноцветными
(для увеличения яркости в J28 можно
«воткнуть» вышеописанный операци-
онный усилитель).
84
hardware
вооружившись омметром, ищем, куда
идет питающий вывод IDE-LED (про-
тивоположный тому, что подключает-
ся к массе). Рано или поздно мы «вре-
жемся» в микросхему 74ALS08 или не-
что подобное ей (см. рис. 5). Аккурат-
но перерезаем 2-й вывод микросхемы
(или отпаиваем его, удаляя припой от-
сосом или обыкновенной медицинской
иглой – иглы для капельниц предпоч-
тительнее).
С этого момента HDD LED будет
подмигивать только одному IDE-кана-
лу, на котором размещен жесткий диск,
игнорируя второй с CD-ROM.
Главное не перепутать каналы!
Впрочем, этот процесс легко обра-
тим, и отпаянный вывод можно при-
паять вновь.
Рисунок 8. Предохранители, охраняющие USB-порты на плате F1 и F2
Реанимация USB-портов,
мыши и клавиатуры
USB-порты мрут как мухи, особенно
когда к ним через разветвитель под-
ключается несколько мощных уст-
ройств, с которыми они уже не справ-
ляются. К счастью, на современных
компьютерах количество USB-пор-
тов обычно достигает четырех-шес-
ти и смерть одного из них, это, конеч-
но же, трагедия, но все-таки не при-
говор. Если материнская плата еще
на гарантии, можно попытаться отнес-
ти ее в ремонт.
Расследование, проведенное мной,
показало, что в подавляющем боль-
шинстве случаев «горит» не сам порт,
а предусмотренный мудрыми конс-
трукторами плавкий предохранитель,
который легко найти, если двигаться
вдоль печатной магистрали от перво-
го вывода USB-разъема (VCC) в глу-
бину материнской платы. Предохра- Рисунок 9. Предохранители, охраняющие клавиатуру и мышь
нитель обозначается латинской буко-
вой F и по обыкновению соседству- Как-то раз один мой знакомый шинство из нас предпочитает выкла-
ет с резисторами и конденсаторами включил старый-старый джойстик, ос- дывать деньги за готовое устройство,
(см. рис. 8). тавшийся от компьютера ZX-Spectrum, даже если его можно собрать само-
Прозвоните его омметром – если в клавиатурный DIN-разъем. Думал стоятельно. Но далеко не все необхо-
он покажет обрыв, с некоторым рис- поиграть! Поиграть не получилось, димые нам устройства представле-
ком предохранитель можно просто пе- а клавиатура, увы, умерла. К счас- ны на рынке.
ремкнуть, хотя правильнее заменить тью, предохранитель принял весь удар Производители ориентируются
его таким же точно или аналогичным, на себя (номинальный ток 1,35 A), на массовый рынок, максимально
рассчитанным на ток 1,5-2,0 A. Чаще после замены которого клавиатура унифицируя настольные компьютеры
всего после этой несложной операции ожила, и компьютер заработал, как и сервера.
USB «оживает». новый! Потребности отдельных пользова-
Аналогичные предохранители за- телей игнорируются, но электроника
щищают мышь и клавиатуру от непра- Заключение не стоит на месте, и доработать «фир-
вильного включения и еще кое от че- Страх перед сложной техникой сдер- менное» оборудование собственными
го (см. рис. 9). живает порывы творчества, и боль- силами вполне реально!
Дмитрий Мороз
После череды неудач, постигших SGI в период с 1994 по 1999 годы, многие стали с надеждой
смотреть на нового исполнительного директора. Но сможет ли один человек помочь
«тонущему кораблю»?
«Мы сеяли семя Однако компания, в которой он ра- сячелетие SGI вступала в весьма пла-
инноваций, но потерпели ботал четыре года назад, в 1999 г. бы- чевном состоянии.
неудачу в сборе урожая» ла уже совсем другой. «SGI продол- Планы компании в скором време-
(Боб Бишоп) жает наращивать скорость, но вмес- ни остановить разработку собствен-
До получения должности исполнитель- те с тем теряет высоту. Компания ра- ных графических систем для своих ра-
ного директора SGI Боб Бишоп на про- ботает совсем не так, как должна, тем бочих станций и серверов визуализа-
тяжении девяти лет работал в этой самым «играя на руку» нам», – гово- ции стали более «осязаемыми» в се-
компании, занимая пост главы отдела рил тогда генеральный директор Sun редине 1999 года, когда специально по
маркетинга, пока в 1995 году не поки- Microsystems Скот МакНили. этому поводу SGI подписала соглаше-
нул его, став членом наблюдательного Реструктуризация, о которой как ние с компанией nVidia. Согласно не-
совета акционеров. После предатель- раз перед своим уходом заговорил Бе- му nVidia получила право лицензиро-
ского бегства его предшественника, луццо, оставила неизгладимый отпеча- вать графические технологии SGI, ко-
Рика Белуццо, на предложение воз- ток не только на компании, но и на её торая, в свою очередь, имела доступ
главить SGI Бишоп с радостью согла- служащих. Агонизирующая SGI уже к самым новым чипам, произведённым
сился. «Принимая непосредственное к октябрю 1999 года вынуждена была nVidia. Кроме того, 50 инженеров SGI
участие в формировании нашей но- отрапортовать как о финансовых по- перешли к nVidia для работы над про-
вой стратегии, я окончательно завер- терях, так и о массовых сокращениях ектом «Одиссей». Его результатом
шу процесс трансформации компании персонала. Финансисты «не досчита- стало появление последнего поколе-
для поддержания её роста и прибыль- лись» 68 млн. долларов, а менеджеры ния собственных графических плат
ности, – говорил тогда Бишоп. – У ме- компании – 1100 человек кадрового SGI серии VPro (основная их «изюмин-
ня огромная вера в талантливых лю- состава. При подведении финансовых ка» – 48-битное представление цвета
дей, глубину технологий и лояльность итогов 1999 года стало известно о по- RGBA, позволяющее работать с па-
клиентов SGI». терях 213 млн. долларов. В новое ты- литрой, состоящей из 68 миллиардов
86
ретроспектива
цветовых оттенков), устанавливав- чем особым от рабочих станций дру-
шихся в более поздние модели Octane гих компаний, равно как и от обычных
и новые Octane 2, выпущенные вмес- ПК, не отличались, разве что их гра-
те с O2+ в августе 2001 года. К сожа- фический адаптер VR3, был постро-
лению, кроме более быстрых процес- ен на базе профессионального чипа
соров и новых графических опций эти nVidia Quadro, впрочем, являвшегося
рабочие станции не предлагали ниче- «сынком» обычного GeForce 256.
го нового и при своей заоблачной стои- По типу «цепной реакции» вскоре
мости практически не приобретались. после заявления SGI о желании «из-
Что же касается линейки систем, ра- бавиться» от Visual Workstation после-
ботающих на процессорах Intel Pentium, довало сообщение и о продаже Cray Рабочая станция SGI 230
жить ей оставалось недолго. В конце Research. Начиная с декабря 1999 го-
года стало известно, что усилия SGI, да в Интернете стали появляться слухи
направленные на поиски потенциаль- о том, что SGI ищет потенциального по-
ного покупателя на подразделение, за- купателя на это подразделение. К тому
нимающееся производством рабочих времени Cray Research представляла
станций Visual Workstation, оказались собой довольно жалкое зрелище: 850
безуспешными. Линейка систем на ба- сотрудников (против 4500 в 1996 году)
зе процессоров Intel «камнем» висела и 300 млн. долларов. годового дохода
на «шее» компании, всё дальше затя- (900 млн. долларов. в 1996 году).
гивая её в пучину финансовых убыт- 2 марта 2000 года слухи, наконец-
ков. Потери от продаж рабочих стан- то, подтвердились, и SGI продала Cray
ций 320 и 540 стоили SGI 45 млн. дол- Research со всеми «потрохами» ком-
ларов. «Урок, полученный нами в ре- пании Terra Computer за не оглашён-
зультате запуска Visual Workstation, дал ную общественности сумму (по словам
понять, что в мире быстро совершенс- Wall Street Journal, эта цифра состави-
твующихся систем на базе процессо- ла около 100 млн. долларов. Сравни-
ров компании Intel попытка продвиже- те с суммой покупки в 1996 году, соста-
ния собственных разработок заранее вившей 764 млн. долларов). Новая ро-
обречена на провал», – говорил тог- дительская компания, сама прибываю- Сервер SGI Origin 3400
да главный бухгалтер компании Боб щая в не очень «радужном» состоянии
Солтмарш. (потери Terra Computer во время покуп- и главный инженер Cray Бартон Смит
Ну а пока SGI искала пок упа- ки составляли 7,5 млн. долларов при ушёл в Microsoft. Аналогия с Белуццо
теля, компания решила дать Visual прибыли в 850 тыс. долларов), не ста- напрашивается сама собой.
Workstation последний шанс, благо не- ла диктовать новоиспечённой Cray Inc. В свете продажи подразделений
обходимость в развитии линейки всё свои условия и дала «вольную». Одна- SGI стоит упомянуть слова одного
ещё сохранялась. Однако на этот раз ко, несмотря на выпуск ряда довольно из посетителей сайта Osnews.com, вы-
разработкой продвинутой архитекту- удачных суперкомпьютеров типа SX-1, сказанные по поводу финансовых ос-
ры SGI особо не увлекалась. После X1 и XD1, дела у компании шли всё ху- ложнений компании: «Ничто не сможет
покупки части компании Integraph, SGI же и хуже. На сегодняшний день ак- спасти SGI от краха, поскольку компа-
в мае 2000 г. выпустила её графичес- ции Cray Inc. практически обесцени- ния до сих пор продолжает следовать
кие рабочие станции под своим име- лись. К тому же в ноябре прошлого го- давно устаревшей «университетской»
нем. Новые модели 230, 330 и 550 ни- да один из основателей Terra Computer модели бизнеса: в погоне за стаби-
лизацией своего финансового состо-
Наследник проекта «Реальность» процессором RCP для Nintendo 64, реши- яния она отрезает, отрезает и будет
Одной из идей бывшего управляющего ла воплотить мечты Кларка в реальность, дальше отрезать свои подразделе-
Silicon Graphics Джима Кларка являлся для чего в сентябре 1997 года ушла из ком- ния до тех пор, пока бизнесу не пона-
«перенос» разработок компании в области пании и основала свою собственную, на- добится дальнейшее развитие. Одна-
создания графических процессоров в но- званную ArtX. Первым клиентом новоис- ко к тому моменту от SGI больше ни-
вые сегменты рынка – мультимедийные печённого «стартапа», как не трудно дога- чего не останется».
приставки, игровые консоли, персональ- даться, стала компания Nintendo, по зака- В июле 2000 года состоялось об-
ные компьютеры и т. д. Несмотря на то зу которой ArtX занялась разработкой гра- новление линейки Origin. Архитекту-
что акционерам эта затея не понрави- фического чипа для следующей консоли ра новых серверов Origin 3000 (поколе-
лась, часть инженеров тайком (необходи- японского гиганта под кодовым названи- ние SN-1) под названием NUMAflex со-
мо вспомнить о негласном правиле: «либо ем «Dolphin» (Nintendo GameCube). Позд- стояла из так называемых «модулей»,
в одной лодке со всеми, либо – за бор- нее, 1 марта 2000 года, ArtX была приоб- каждый из которых отвечал за свою
том») поддержала идею их «духовного ретена компанией ATI за 400 млн. долл., функцию. Так, процессорный модуль
лидера». Так, команда под руководством и продолжила свою работу уже под её содержал: процессоры, контроллер
Веи Ена, работавшая над графическим «крылом». ОЗУ и саму оперативную память. В
88
ретроспектива
сона Снила, менеджера по производс- теры, спрос на которые был более или
твенному маркетингу SGI: «Вспом- менее стабильным.
ним закон Мура: по прошествии опре- В июне 2001 года компания объ-
делённого промежутка времени мощ- явила об окончательном прекращении
ность компьютера увеличится в два производства Visual Workstation. Это
раза. Вместе с тем, из-за увеличения не только ударило по имиджу компа-
количества передаваемой информа- нии, но и вылилось в 60 млн. долларов
ции возникает необходимость в соот- убытков, состоявших из отменённых
ветствующем увеличении и пропуск- контрактов на производство и нереа-
ной способности. 10 лет назад, если лизованного товара. Ко всему проче-
вы занимались производством авто- му SGI объявила об очередном уволь-
мобилей, вам необходимо было про- нении 1500 человек.
считать приблизительно 10 тысяч де- Спустя полгода после роспуска
талей, из которых она состояла. Сегод- подразделения, занимавшегося раз-
ня эта цифра возросла до 10 милли- работкой Visual Workstation, состоя-
онов. Несмотря на возросшее за пос- лось долгожданное обновление рабо-
ледние 10 лет в десятки и сотни раз чих станций начального уровня, честь
быстродействие компьютеров, экран- которых на протяжении шести лет «от-
ное разрешение мониторов хоть и уве- стаивали» O2 и O2+. Данное событие
личилось, однако не столь значитель- произошло в январе 2002 года, когда
но. «Сетевая визуализация» позволя- миру была представлена модель Fuel.
ет вам вместо передачи информации Основная её особенность, позднее
пересылать лишь её изображения, тем ставшая стандартом для остальных но- Рабочая станция SGI Fuel
самым значительно эффективнее рас- винок SGI – архитектура, основанная
ходуя пропускную способность канала на базе SN-1. В принципе Fuel пред- тели SGI опровергали эти слухи, в ап-
передачи информации. Для примера: ставляла собой одномодульную и од- реле Патентное Ведомство США под-
геолог в поле может получать данные нопроцессорную вариацию на тему твердило передачу трёх патентов в ру-
с суперкомпьютера своей компании сервера начального уровня Origin 300, ки Microsoft.
на ноутбук или даже карманный ком- дополнительно оснащённую графикой Затем SGI впала в «спячку» и лишь
пьютер». Как и «центры реальности», VPro. Однако цена станции, стартовав- в ноябре 2002 года объявила о выходе
системы «сетевой визуализации» ути- шая с 11,5 тыс. долларов, явно не спо- Origin 3900 – наиболее производитель-
лизировали весь спектр аппаратного собствовала обретению Fuel статуса ного сервера компании. Новинка под-
и программного обеспечения SGI. «начального уровня». держивала до 512 процессоров, до 1 Тб
Однако количество клиентов, нуж- Анонс новой рабочей станции по- оперативной памяти и в максималь-
давшихся в системах подобного клас- мерк по сравнению с возникшими слу- ной конфигурации стоила 3 млн. дол-
са и, главное, способных платить за хами о том, что SGI опять взялась со- ларов. Примечательно, что Origin 3900
них баснословные суммы, было нич- трудничать со своим злейшим врагом – стал последним сервером SGI, работа-
тожно мало, чтобы помочь компании Microsoft. В январских новостях, цирку- ющим на базе чипов MIPS.
держаться «на плаву». Единственное, лировавших в Интернете, говорилось Лето 2003 года ознаменовалось
что её спасало – традиционные высо- о продаже части патентов на графи- выходом множества новинок, пред-
копроизводительные сервера, систе- ческие технологии за 62,5 млн. дол- ставленных SGI. В июле семейство ра-
мы хранения данных и суперкомпью- ларов. Несмотря на то что представи- бочих станций Octane, которому шёл
шестой год, наконец-то «ушло на по-
Первая станция на базе Itanium ная оперативная память типа SDRAM, а так- кой», а вместо него появился новый
Несмотря на то что о появлении первых же графический адаптер ATI XPERT 2000 чемпион – Tezro. Новинка была осно-
систем семейства Altix на базе процессо- PRO на базе чипа Rage 1999 года выпуска. вана на уже ставшей стандартом для
ров Itanium компания объявила лишь в 2003 Последний «штрих» к «портрету» новин- всей продукции SGI архитектуре Origin
году, попытка выпустить рабочую станцию ки – выпуск компанией Dell рабочей стан- 3000, содержала один, два или четыре
на базе нового чипа от Intel была предпри- ции Precision Workstation 730, являющейся… процессора MIPS R16000, до 8 Гб ОЗУ,
нята ещё раньше. В июне 2001 года вмес- точной копией SGI 750 как по внутреннему а также самый производительный гра-
те с анонсом о прекращении производс- содержанию, так и по внешнему исполне- фический адаптер серии VPro – V12 со
тва рабочих станций на базе процессоров нию, однако, что интересно, анонсирован- 128 Мб видеопамяти. Цена – от 31 тыс.
Pentium SGI объявила о выпуске SGI 750 – ной на месяц раньше. Из-за «сырости» пер- долларов.
единственной модели, построенной на ба- вого поколения чипов Itanium, малого коли- Второй новинкой стало новое поко-
зе Itanium первого поколения. Однако эта чества доступного для этой платформы ПО, ление серверов визуализации Onyx4,
рабочая станция не являлась собственной а также неудачной комплектации SGI 750 способных, по сравнению со своим
разработкой компании, внутри неё исполь- и её работы исключительно под Linux, рабо- предшественником, нести большее
зовались стандартные компоненты: мате- чая станция популярности не обрела и ско- количество процессоров, а также об-
ринская плата производства Intel, стандарт- ропостижно «канула в Лету». ладающих графическими системами
90
ретроспектива
шейся каждый год выплачивать ей
17 млн. долларов. Попытка реабилитации ных матриц (FPGA). Такой модуль, подклю-
Вместе с этим заявлением SGI объ- Последняя на данный момент новая разра- чённый при помощи шины NUMAlink к сер-
явила о выпуске сервера Altix 4000, ос- ботка от SGI – «революционная» техноло- веру Altix, программируется под выполнение
новное отличие которого от её пред- гия RASC (Reconfigurable Application-Specific конкретной задачи и, по словам компании,
шественников заключается в подде- Computing – вычисления, реконфигурируе- ускоряет её выполнение на порядок. На дан-
ржке 128 Тбайт оперативной памяти. мые под конкретное приложение), реали- ный момент наиболее производительная мо-
На данный момент Altix 4000 являет- зация которой представляет собой blade- дель, RC100, содержит две FPGA-матрицы
ся последним обновлением в линейке модуль, предназначенный для установки Xilinx Virtex 4 LX200, 80 Мб сверхбыстрой ста-
серверов компании. в стандартную серверную стойку, и содержа- тичной памяти QDR SRAM, или же до 20 Гб
щий несколько программируемых вентиль- оперативной памяти типа DDR2 SDRAM.
Роковое 8 мая
1 февраля 2006 года, после объяв- чего на данный момент в компании ра- длежащую SGI. «Составляющие», пе-
ления результатов за очередной фи- ботают всего 1800 сотрудников. Кроме речисленные выше, являются целью
нансовый квартал, согласно кото- того, свои посты покинули: финансо- и других компаний, сумевших выжить
рым компания потеряла очередные вый директор Джеф Зельмер и испол- в условиях суровой реальности и по-
79 млн. долларов, совет акционеров нительный директор Уоррен Пратт. Ту- думывающих над покупкой SGI. Ана-
SGI не выдержал и принял решение чи над головой SGI сомкнулись, и гря- литики «бросаются» громкими имена-
снять Боба Бишопа с поста исполни- нул гром. ми: Sun, Hewlett-Packard, IBM. Некото-
тельного директора. Его место занял Ещё в феврале представители ком- рые пророчат в качестве потенциаль-
Денис МакКинна, ранее исполнявший пании «в тихую» предрекали о том, ного покупателя преуспевающую ны-
аналогичные обязанности в компа- что вполне возможно, в течение года не Apple Computer. В свете столь бур-
нии SCP Global Technologies. «Компа- SGI обанкротится. К сожалению, их но и непредсказуемо развивающихся
ния столкнулась с проблемами, одна- слова стали правдой. событий нам остаётся лишь пожелать
ко мы о них знаем», – заявлял тогда Во время написания этой статьи SGI удачи.
МакКинна. «Мои методы правления 8 мая компания публично объявила Ну а в заключение хотелось бы пе-
SGI будут заключаться в продолжении о том, что была вынуждена подать за- ресказать слова ещё одного посети-
того, что мы делаем, более эффектив- явление о банкротстве. Теперь в лю- теля сайта Osnews.com: «Мы пользу-
но и продуктивно, именно так мы смо- бой момент времени компания может емся персональными компьютерами,
жем расширяться и рапортовать о по- прекратить своё существование. Це- в которых установлены видеокарты,
вышении доходов». лый штат аналитиков и финансистов основанные на технологиях SGI; ком-
Результат работы нового исполни- пытается хоть немного исправить фи- пьютерами Macintosh, операционная
тельного директора не заставил себя нансовое положение компании, кото- система которого славится своими ви-
ждать: через месяц, в марте этого го- рое иначе, как плачевным, назвать не- зуальными эффектами, созданными
да, компания объявила об очередном льзя: при 369,4 млн. долларов, которые при помощи OpenGL; рабочими стан-
увольнении 250 человек, в результате являются оценочной стоимостью иму- циями на базе Linux, на которых рабо-
щества SGI, долг компании составля- тает графическое ПО, впервые появив-
ет 664,3 млн. долларов. Где взять де- шееся на платформе SGI. Однако мы
ньги на его погашение, пока, к сожа- больше никогда не увидим уровень ин-
лению, не ясно. новаций, подобный тому, что принес-
ла в мир SGI, от других компаний типа
Грустная лирическая нота Intel, AMD, Dell и иже с ними».
Что осталось от прежней SGI, компа- Несмотря на то, что на данный мо-
нии, ещё 10 лет назад будоражившей мент SGI «дышит на ладан», пользо-
ум каждого техника, художника либо ватели её систем продолжают холить
учёного? Совсем немного: несколько и лелеять свои компьютеры. Их ак-
первоклассных инженеров, пара-трой- тивность можно проверить, загля-
ка технологических ноу-хау и патентов нув по ниже перечисленным адресам:
на технологии, созданные компанией www.nekochan.net, www.siliconbunny.com,
за период её существования. Напри- www.sgizone.net.
мер, именно патенты на графические
технологии, часть из которых ещё на- Источники:
ходится в закромах SGI, интересуют 1. http://www.cnet.com
компанию nVidia, желающую, соглас- 2. http://www.eweek.com
но циркулирующим в Интернете слу- 3. http://www.osnews.com
хам, заполучить остатки этого бизне- 4. http://www.sgi.com
са компании. Скорее всего, компания 5. http://www.theregister.co.uk
хочет заполучить в свои владения тор- 6. http://www.wikipedia.com
Сервер SGI Altix 3000 говую марку OpenGL, всё ещё прина- 7. http://www.wsj.com
Виртуальные машины:
несколько компьютеров в одном
Алексей Гультяев
ке, полностью посвященная виртуаль- сы сетевого взаимодействия с госте-
ным машинам. выми ОС.
Весь материал книги посвящен Описание всех трех программ
тройке наиболее популярных программ происходит по одной и той же схеме,
в этой отрасли, а именно Microsoft что в конечном итоге поможет читате-
Virtual PC 2004, VMWare Workstation лю выбрать для себя наиболее подхо-
и Parallels Workstation. дящий вариант.
Из первой главы вы узнаете, как ра- К книге прилагается CD, на кото-
ботают виртуальные машины, основ- ром вы найдете trial-версии всех опи-
ные способы их применения, а также санных в книге программ. Весь ма-
будут рассмотрены основные методы териал снабжен большим количест-
реализации технологий визуализации, вом иллюстраций и скриншотов. Кни-
а именно – виртуальные машины с эму- га рассчитана на широкий круг чита-
Несмотря на то что технологии вирту- ляцией API гостевой ОС, полная эму- телей, в том числе и на тех, кто никог-
альных машин достаточно популярны, ляция гостевой ОС, и машины с ква- да раньше не работал с виртуальны-
информации на русском языке по этой зиэмуляцией. ми машинами.
теме очень немного. Эта книга помо- Каждой из программ посвящена
жет вам освоить общие концепции вир- отдельная глава, в которой последо- Издательство: «Питер»
туальных машин и программы, с помо- вательно рассказывается об общих Год издания: 2006
щью которых вы сможете ознакомить- характеристиках продукта, установ- Количество страниц: 224
ся с ними на практике. ке и первоначальной настройке, со- ISBN: 5-469-01338-3
Надо заметить, это издание – здании и управлении гостевой ОС. Цена: ≈ 300 руб.
единственная книга на русском язы- Не оставлены без внимания и вопро- Книга предоставлена издательством «Питер».
92
книжная полка
Подписные
индексы:
20780*
81655**
по каталогу
агентства
«Роспечать»
87836
по каталогу
агентства
«Пресса
России»
*
годовой
**
полугодовой
РЕДАКЦИЯ
ЧИТАЙТЕ
Исполнительный директор
Владимир Положевец В СЛЕДУЮЩЕМ
НОМЕРЕ:
Ответственный секретарь
Наталья Хвостова
sekretar@samag.ru
Технический редактор
Владимир Лукин
Редактор
Алексей Коршунов Возможности технологии отбирает некоторое время и силы сис-
Внештатные редакторы MS Windows SharePoint темных администраторов, и особенно
Алексей Барабанов Services на первом этапе установки и настрой-
Сергей Супрунов WSS предоставляют удобный и прос- ки спам-фильтров. Вариантов реше-
той интерфейс для создания и изме- ния этой проблемы много, в Сети мож-
РЕКЛАМНАЯ СЛУЖБА нения веб-страниц. Однако, исполь- но найти многостраничные руководс-
тел./факс: (495) 628-8253 зуя совместимый с данной технологи- тва по настройке любой системы борь-
Евгения Тарабрина
ей редактор, например Microsoft Office бы со спамом. Осталось лишь выбрать
reсlama@samag.ru
FrontPage 2003, можно очень просто приемлемый вариант.
Верстка и оформление повысить функциональность и улуч-
maker_up@samag.ru шить внешний вид веб-узла. Как работает Sendmail?
Дизайн обложки Полезные подробности
Николай Петрочук Настраиваем (Часть 3)
Dr. Web Enterprise Suite В следующем номере поговорим о со-
По вопросам распространения Мало кто ставит под сомнение тот провождении работающего сервера
обращайтесь по телефону: факт, что на рабочем месте современ- Sendmail. Он должен не просто рабо-
(495) 628-8253 (доб. 120) ного человека должен стоять антиви- тать, а работать эффективно, надёжно
русный пакет. Сегодня вирусы берут не и безопасно. И для этого мы подроб-
107045, г. Москва,
умением, а числом. В основном, они не нее остановимся на некоторых вопро-
Ананьевский переулок, дом 4/2, стр. 1
разрушают информацию – они созда- сах мониторинга, оптимизации и повы-
тел./факс: (495) 628-8253
Сайт журнала: www.samag.ru ют условия для «утечки» коммерчес- шении защищённости сервера.
кой информации. Что именно выбрать
РУКОВОДИТЕЛЬ ПРОЕКТА в качестве основы, чтобы имелась воз- Устанавливаем Systems
Петр Положевец можность централизованного обнов- Management Server 2003
ления антивирусных агентов, имел- Установка программного обеспече-
УЧРЕДИТЕЛИ ся единый центр управления и велась ния, обновлений, а также проведение
Владимир Положевец оперативная статистика? Стоит обра- инвентаризации, по мере увеличения
Александр Михалев тить внимание на антивирусные реше- количества компьютеров в сети, ста-
ния масштаба предприятия (Enterprise новится постоянной головной болью
ИЗДАТЕЛЬ
Solutions). системного администратора. Мощным
ЗАО «Издательский дом
средством, способным превратить ру-
«Учительская газета»
Боремся со спамом тинную работу в удовольствие и сэ-
Отпечатано типографией Борьба с непрошенной коммерческой кономить массу времени, становится
ГП «Московская Типография №13» почтой – спамом, как и прочие задачи, Systems Management Server 2003.
Тираж 11000 экз.
96