Академический Документы
Профессиональный Документы
Культура Документы
СЬ
www.samag.ru
ЛИ
Почему MS SQL медленно работает?
Ищем причины
ЛИ
ТЯ Е
Ж ПИ
Строим защищенную беспроводную сеть:
ЗА ДНИ
РА КУ
Настраиваем UPS под Linux
ЛЫ ГО
ТИ РАС
Как восстановить
удаленные файлы под BSD
К У ВО
О
танавливаем Symantec Antivirus 9.0
НИ НО
ТР
в корпоративной сети
Эффективно управляем
С
подписной индекс 20780
полями пользователей в AD
БЫ
Контролируем безопасность сети
с помощью OSSIM
КА
ЬГ
ЬД О
РА СКА
ТЕ
К
ИС НН
ЕН
УС
БО
НА ТПУ
ИЛ ДА
ТП
НЧ ЖИ
ВО
РА Е О
КО НЕО
АВ СЛ
Л
StressLinux: автоматизируем
Л
ХА
ПО
УЕ
ЗА
тестирование железа
Устанавливаем Systems
Так видит журнал читатель, оформивший подписку: Management Server 2003
№5(30) май 2005
процессов посредством
chroot и jail
OpenVPN: доступ
повышенной проходимости
Статистика прокси-сервера
ПОДПИШИТЕСЬ И ЧИТАЙТЕ! Squid
Интервью с легендарным
Роспечать – 20780, 81655 Расмусом Лердорфом –
Пресса России – 87836 создателем языка PHP
Интер-почта – тел. (495) 500-00-60
в номере
5 ТЕНДЕНЦИИ 53 OpenVPN: доступ повышенной проходимости
Своевременный доступ к информации, хранящей-
ИНТЕРВЬЮ ся внутри корпоративной сети компании, порой ста-
новится решающим фактором успешной работы со-
6 Расмус Лердорф трудников. И иногда предоставить доступ оказывает-
Вы думаете, что 11 лет назад я решил разработать ся не так-то просто. Алексей Коршунов
язык сценариев, которым будут пользоваться во всем akeeper@samag.ru
мире!? Дмитрий Горяинов
dg@webclub.ru 60 Устанавливаем и настраиваем Systems
Management Server 2003
ВЕБ-ПРОГРАММИРОВАНИЕ Рутинную работу по установке и обновлению ПО луч-
ше доверить System Management Server.
9 Заглянем в будущее PHP 6 Андрей Бирюков
Что ожидается в новой версии PHP? mex_inet@rambler.ru
Кирилл Сухов
geol@altertech.ru 64 Возможности технологии
MS Windows SharePoint Services
АДМИНИСТРИРОВАНИЕ Часть 2
Что делать, когда требуется расширить функциональность
12 Greylisting: панацея от спама технологии WSS и улучшить внешний вид веб-узла.
или «мыльный пузырь»? Иван Хрипунов
Попытки покончить со спамом похожи на попытки до- i-ivank@microsoft.com
стичь горизонта – чем быстрее мы к нему движемся,
тем быстрее он отдаляется. Сергей Супрунов ЧЕЛОВЕК НОМЕРА
amsand@rambler.ru
70 Один в поле – воин!
16 Roaring Penguin CanIt: ведём борьбу Сергей Рыжиков, директор компании «Битрикс», про-
со спамом тив аутсорсинга, пиратов и интернет-шантажа.
Простое в установке, настройке и последующей экс- Оксана Родионова
плуатации антиспам-решение. Сергей Яремчук rodion@dol.ru
grinder@ua.fm
СЕТИ
23 Как работает Sendmail?
Полезные подробности. Часть 3 74 Управляем зонами DNS
Если почтовый сервер перестал справляться с нагруз- Запускаем и настраиваем программу BIND, регистрируем
кой, не спешите покупать «железо» помощнее. Воз- доменное имя, дожидаемся завершения тестов – и мож-
можно, возможно всё решится грамотной настрой- но раздавать друзьям адреса mymail@shortdomain.com!
кой Sendmail. Сергей Супрунов Рашид Ачилов
amsand@rambler.ru shelton@granch.ru
Летим скорее
Лучше каждому Информация
Оформили на почту!
получать отдельный о подписке
подписку! экземпляр журнала на 94 стр.
Принес номер
Мужики, Почему я до сих пор на работу, И у меня А можно ещё Как же я без
Я забыл
где журнал этого не сделал?! «увели» почитать такая же беда успеть? любимого журнала?
подписаться!
взяли?
Ольга Максимович
П
ризнаюсь, я с некоторым трепе- Yahoo!. Есть ли здесь связь? Как вы ный продукт. Подчас это бывает очень
том ждал этой встречи: человек, совмещаете одно с другим? нелегко. Мы помногу раз возвращаем-
который одиннадцать лет назад Да, несомненно, это связано. Yahoo! ся к обсуждению одного и того же. Спо-
изобрел язык, на котором сейчас пи- очень широко использует PHP, а я был рим, убеждаем друг друга. Это очень
шут миллионы людей во всем мире, – его изобретателем и продолжаю много живой процесс. Но я не говорю реша-
это живая легенда. Но вместо этакого работать над его развитием. Они прос- ющего слова. Я не был таким челове-
умудренного опытом и преисполненно- то наняли меня для того, чтобы я по- ком все эти годы и не являюсь им те-
го сознанием собственной значимос- мог им с PHP. перь. Я часть группы, часть сообщест-
ти мэтра мне посчастливилось побесе- ва, которое принимает решение. PHP –
довать с очень общительным и откры- Господин Лердорф , вы многократно это большой коллективный проект, ко-
тым человеком. говорили, что PHP – это труд очень торый я не смог бы сделать в одиноч-
многих разработчиков и вы всего ку, без помощи других людей.
Господин Лердорф, вы впервые лишь один из первых. Какова ваша
в нашей стране, с чем это связано, роль в развитии языка, в принятии С момента выхода PHP-3 до PHP-4
почему именно сейчас вы приеха- ключевых решений сейчас? прошло довольно много времени,
ли к нам? Действительно, PHP – это коллектив- и визуальная разница между эти-
Да, это мой первый визит, хотя я давно ный труд, и продукт сотрудничества ми версиями языка для пользова-
интересуюсь вашей страной. Я много многих и многих людей. И хотя кто-то, теля весьма ощутима. Так же много
читал и много знаю о России и хотел как я, работает в проекте с самого на- времени и различий отделяют друг
побывать здесь. Почему именно сей- чала, имеет больший опыт, написал от друга PHP-4 и PHP5. На первый
час? Даже не знаю. Никакой особой больше кода, чем новые люди, такого взгляд основное отличие будущей
причины тут нет. Я стараюсь посещать человека, который говорит всем «да» версии – исключительно во встро-
конференции, на которые меня пригла- или «нет» по поводу тех или иных ре- енной поддержке Unicode. С точ-
шают, если есть время и возможность. шений, просто не существует. И уж, ко- ки зрения конечного пользователя,
Меня пригласили, была возможность нечно, я не тот человек. Люди, которые эта смена версий может показаться
приехать, и я приехал. пишут код, выполняют основную рабо- не настолько очевидной. Что вы мо-
ту, именно они в конечном итоге выра- жете сказать об этом?
Вы автор-разработчик языка PHP, батывают и принимают коллективное Смена версии происходит всякий раз,
и в то же время один из сотрудников решение о том, что включать в конеч- когда у нас накапливаются достаточно
6
интервью
серьезные изменения в коде. И внед- су различных вещей, в нем зачастую тельно отражает мой собственный под-
рение поддержки Unicode относится не так просто найти односложный от- ход. Можно даже назвать PHP проце-
именно к таким. вет на конкретную задачу. дурным языком с объектами.
Кроме того, номер версии – это Это общая проблема универсаль-
не только цифра для конечного поль- ных языков. Поэтому я не вижу с их Самая распространенная для веб-
зователя. Это завершение некоторо- стороны прямой конкуренции. Есть лю- проектов платформа – это UNIX +
го этапа для людей, которые созда- ди, которые любят PHP и которые лю- Apache. Однако в последнее время
ют код PHP. И мы должны это четко бят путь понятных и простых PHP-ре- очень много разговоров о том, что
обозначить. шений для веб-задач. И они вряд ли такое сочетание уже не удовлетво-
Да, различия между третьей и чет- получат его в других языках. Я люблю ряет запросам веб-проектов с боль-
вертой или четвертой и пятой вер- PHP именно за понятность. шим трафиком и высокой пользова-
сиями на первый взгляд более на- То есть наше внимание всегда со- тельской посещаемостью. Возника-
глядны, чем те которые мы планиру- средоточено собственно на Web и воз- ют решения, построенные на осно-
ем для PHP-6. Но в действительнос- никающих в нем типовых задачах. Ко- ве других веб-серверов с использо-
ти они грандиозны. Мы проделали нечно, вы можете делать с помощью ванием FastCGI. Что вы можете ска-
очень большую и качественную работу PHP и другие вещи, но для нас, как раз- зать по этому поводу?
для всех тех, кто использует PHP. работчиков, первоочередной целью У нас есть поддержка FastCGI, и, дейс-
Дело в том, что проблеме Unicode остается именно эта. И такой подход твительно, не так давно мы продела-
посвящено множество внешних рас- несомненно привлекает к нам нашего ли большой объем работ в этом на-
ширений и частных решений. Теперь пользователя. Не думаю, что мы его правлении. Кроме того, нашим основ-
же мы, наконец, смогли встроить не- потеряем. Так что в действительности ным принципом остается открытость.
посредственно в PHP, и внутренние я не очень забочусь о сравнении наше- Если кто-то заинтересован в том или
различия между 5-й и 6-й версиями го развития с другими языками и инс- ином новом решении, он может при-
очень велики. Эти изменения могут трументальными средствами. Не ду- соединиться к проекту и реализовы-
отразиться на разрабатываемых про- маю, что они могут предложить что-то вать свою идею. Но, в любом случае,
граммах. В рамках одной версии мы существенно проще и эффективнее, мы ориентируемся на большинство на-
стараемся соблюсти преемственность чем то, что мы делаем в PHP. ших пользователей. В конечном итоге
в поведении программ. Если что-то ра- большинство использует PHP под UNIX-
ботает у вас в версии 5.1, то оно будет PHP-5 – это объектная ориентация. подобными системами и веб-сервером
работать и в версии 5.2 и в версии 5.3. Это поддержка классов, использо- Apache, и первоочередные изменения
Таким образом, мы добавляем новые вание шаблонов программирова- и исправления делаются именно для
модификации и исправления. Но все ния, внедрение статистических ме- этой платформы. В качестве примера
это допустимо только до тех пор, пока тодов и т. п. Вместе с тем довольно можно рассмотреть СУБД Informix. Она
не происходит качественный скачок. долгое время PHP был скорее про- может работать, скажем, под управле-
И этот скачок – PHP-6. цедурным языком. К чему больше нием ОС Novell. Но людей, использую-
тяготеете вы сами? К процедурно- щих в такой связке PHP, будет, навер-
PHP все время сравнивают с други- му или объектно-ориентированно- ное, трое во всем мире. Да, их сооб-
ми языками и технологиями – ASP, му подходу? щения об ошибках будут учитываться,
JSP, Python или Ruby On Rails. А ко- Я использую смесь обоих подходов. но рассматривать их будут в послед-
го вы сами видите в качестве глав- Мне нравится смешивать процедуры с нюю очередь.
ного конкурента? На что ориенти- объектами. Когда я думаю о чем-то как Поэтому приоритетной для нас по-
руетесь при выборе стратегии раз- о целом объекте, я и делаю это объек- прежнему остается платформа UNIX-
вития языка? том. Разумеется, есть люди, которые Apache-PHP.
Наша основная цель – решение пов- стремятся сделать свой код полностью
седневных проблем, возникающих объектно-ориентированным. Но ко мне То есть у себя в Yahoo! вы остаетесь
в Web. И мы создаем средство для ре- это не относится. Для меня это пример- верными связке с Apache, и, несмот-
шения таких проблем и всегда фокуси- но 50 на 50. В публичных выступлени- ря на большую популярность и по-
руемся на том, чтобы решить возник- ях я часто использую процедуры, что- сещаемость, вы не ощущаете про-
шую проблему, а не на том, как это бу- бы сохранить простоту и наглядность. блем ресурсоемкости и т. п.?
дет укладываться в какую-нибудь кон- Для того чтобы продемонстрировать Я не думаю, что тут вообще есть ка-
цепцию развития языка. Конечно, есть какое-то действие, мне не нужен объ- кая-либо проблема. Это работает уже
другие подходы, и другие инструмен- ектный код, к тому же он будет более много-много лет. FreeBSD и веб-сер-
тальные средства строятся совершен- длинным. Объектно-ориентирован- вер Apache – это очень простое, эф-
но иначе. Там люди могут проделывать ный слой может лежать где-то глубо- фективное решение. И оно действи-
массу работы для того, чтобы ответить, ко внутри, а поверх него будет сущес- тельно хорошо работает.
например, на вопрос: «Как мне решить твовать простой и понятный сценарий
эту задачу с помощью Python?» Пос- с процедурным кодом. Скажем так, Если не секрет, какова доля PHP-
кольку Python – универсальный язык в PHP никогда не было объектов ради разработок в Yahoo!?
и с его помощью можно делать мас- самой идеи объектов. И это действи- Сейчас в Yahoo! PHP использует-
8
веб-программирование
Заглянем в будущее
Кирилл Сухов
Смена версий у популярных программных продуктов, как правило, предполагает радикальные
изменения в технологии или идиологии его использования. MySQL, PHP, Perl, PostgreSQL…
и PHP тут совсем не исключение – в четвёртой версии было с нуля переписано ядро,
в пятой появилась новая объектная модель.
В
начале осени прошлого года В настоящее время идёт разра- чанию инициализировались автомати-
на snap.php.net стали доступ- ботка, не утихают споры. Но некото- чески. Это было, конечно, удобно для
ны версии шестой ветки пре- рые контуры PHP 6 видны уже сегод- разработчика, но несло в себе огром-
процессора. Я предлагаю разобрать- ня. Итак, приступим. ную угрозу безопасности приложению,
ся, что в них нового и чем эта вер- так как любой злоумышленник мог под-
сия, пока ещё прорисованная доволь- Отречёмся менить значения переменных. Начиная
но смутно, отличается от предыдущих. от старого мира с 4.2 параметр register_globals по умол-
В начале августа прошлого года раз- В первую очередь грядущая версия чанию был выключен, оставляя воз-
работчиками было принято решение – языка поражает не нововведения- можность обращаться к переменным
CVS HEAD был отделен в ветку PHP.5.1, ми, а количеством вещей, от кото- окружения через глобальные масси-
после чего HEAD стал PHP 6.0.0. Оз- рых решено отказаться. Разработчи- вы ($_GET, $_POST, $_SERVER и т. д.),
начало это одно – все нововведения ков не трудно понять. PHP завоевал но многие приложения уже были напи-
отныне стали применяться для этой, мир своей простотой и доступностью, саны в старом стиле, и часто недалё-
шестой ветки. Оставляя за PHP пя- но постоянно подвергался критике за кие авторы статей или книг советова-
той версии только незначительные низкую безопасность и слабую защи- ли решить проблему, просто включив
изменения и багфиксы. В середине ту от ошибок (от ошибок программис- инициализацию. Теперь об этом мож-
августа Расмус Лендорф, основатель та, разумеется). Кроме того, во имя но будет забыть – и слава богу.
языка, в своём письме сообществу обратной совместимости со старыми Дирек тивы magic _quotes _ gpc
(http://news.php.net/php.internals/17883) версиями, язык тянет за собой уста- и magic_quotes_runtime отвечают за ав-
высказал ряд пожеланий к шестой вер- ревшие deprecated, которые были ещё томатическое экранирование некото-
сии, которые это сообщество приня- уместны в PHP 3, но уже в PHP 5 ка- рых спецсимволов. Они были разра-
лось активно обсуждать. В общем-то жутся полным анахронизмом. ботаны для повышения безопаснос-
на тот момент отличие от «пятёрки» Прежде всего «чистка» коснёт- ти, но на деле их использование со-
было только одно – полноценная под- ся всем изрядно поднадоевших пара- здавало программисту дополнитель-
держка Unicode. Обсуждение дало ре- метров в конфигурации интерпрета- ные неудобства. Положение осложня-
зультаты – на ноябрьской встрече раз- тора – register_globals, magic_quotes лось тем, что эти опции любили вклю-
работчиков в Париже были озвучены и safe_mode, – из шестой ветки они чать хостеры.
основные возможности, которые пла- будут изъяты. В версиях языка, до 4.2, С режимом safe_mode ситуация
нируется воплотить в новой ветке. все переменные окружения по умол- сложнее. Директива, введённая из со-
10
веб-программирование
if (true) { static function static2() {
break foo; echo "B::static2\n";
} }
echo "not shown"; }
foo:
echo "iteration $i\n"; B::staticA();
} ?>
?>
Foreach сможет работать с многоуровневыми масси- Результатом работы будет вывод «A:static2».
вами:
Чего не будет
<?php Чего точно не будет, так это типизации переменных. По мне-
$a = array(array(1, 2), array(3, 4)); нию разработчиков. Это противоречит духу языка. Впрочем,
foreach( $a as $k => list($a, $b)) { есть идеи по поводу возможности типизации возвращаемых
}
?> значений, но они пока не проработаны. Про пространство
имён пока тоже речи нет, правда, есть слабая надежда, что
в операторе ?: будет допустимо опускать первый пара- в будущем его поддержка всё же появится.
метр.
В объектную модель будет добавлен новый предикат Заключение
static:: static2, позволяющий управлять static во время вы- Вот тут хочу высказать некоторые сомнения. Когда поя-
полнения. Для иллюстрации его работы привожу пример вился (скорее слово неверное, он не появился, он прояв-
кода: лялся постепенно, как чеширский кот) PHP 5, у многих бы-
ли сомнения, что хостеры вовремя предоставят возмож-
<?php ность пользоваться новой версией. Эти сомнения в целом
class A {
static function staticA() { оказались напрасными – все ведущие площадки обнови-
self::static2(); ли интерпретатор довольно быстро. Проблема оказалась
}
совсем в другой плоскости, а именно – в головах разработ-
static function static2() { чиков. До сих пор и повсюду многие программисты, даже
echo "A::static2\n";
} имея в своём распоряжении пятую версию, пишут на ней,
} как на четвёртой (это ещё в лучшем случае). Придется ли
class B extends A { ко двору PHP 6? Время покажет.
борьба
м а – тольскооспамом.
Хуже спа
я мудрость
Админска
Сергей Супрунов
Проблема спама, несмотря на затрачиваемые усилия на борьбу с ним, не теряет своей остроты.
Попытки покончить с ним всё больше похожи на попытки достичь горизонта – чем быстрее
мы к нему движемся, тем быстрее он от нас отдаляется...
М
етодов борьбы со спамом у него сил, чтобы справиться с одной получатели уже не существуют, а то и
за последние годы разработа- из серьёзнейших проблем современ- вовсе не существовали, дисковое про-
но множество – от техничес- ного Интернета? странство для такой очереди и ресурс-
ких, таких как «чёрные списки», Байе- ные затраты на её обработку будут не-
совые классификаторы, комплекс- Идея «серых списков» оправданно высоки. Конечно, в слу-
ный анализ заголовков, до юридичес- Суть работы грейлистинга основана чае «лобовой атаки», когда все адре-
ких, когда за рассылку спама предус- на предположении, что спамеры, осу- са указываются в одном письме, такой
матриваются всё более жестокие на- ществляя рассылку, далеко не всегда проблемы не возникнет. Но посколь-
казания вплоть до уголовной ответс- выполняют предусмотренные прото- ку подобная рассылка – слишком лёг-
твенности. колом SMTP требования. В частности, кая добыча для различных фильтров,
Один из этих методов, получив- этот протокол требует, чтобы при полу- то спамеры всё чаще вносят в рассы-
ший название «greylisting», или «се- чении ответа с кодом 4xx, означающим лаемые сообщения случайные фраг-
рых списков», в последнее время при- временную проблему на сервере-полу- менты. А это уже будет означать от-
обретает всё большую популярность. чателе, сообщение помещалось в оче- дельное сообщение на каждого полу-
Для удобства восприятия, я буду ис- редь отправителя, и спустя некоторое чателя. Безусловно, можно модифи-
пользовать транслитерированный тер- время предпринимались повторные цировать программу рассылки, чтобы
мин «грейлистинг». попытки выполнить доставку. она не вела очередь, а просто поме-
На различных форумах всё чаще Очевидно, что для спамеров вы- чала проблемные адреса и выполня-
даётся совет настроить фильтрацию полнение этого требования обойдёт- ла на них повторную отправку, но в лю-
по «серым спискам» чуть ли не как ся слишком дорого в плане затрачи- бом случае для спамера это означает
окончательное решение любых про- ваемых ресурсов потребуется вести дополнительные трудозатраты.
блем со спамом. Но так ли хорош этот очередь сообщений, а учитывая, что Как следствие многие спамеры
метод на самом деле и достаточно ли в базах адресов, как правило, многие просто игнорируют любые ошибки,
12
администрирование
в том числе и временные, продолжая отсылать сообще- Теперь соответствующий демон будет запускаться сце-
ния дальше по своей базе. То есть если на первую попыт- нарием /usr/local/etc/rc.d/milter-greylist.sh автоматически.
ку соединения возвращать код 4xx, то спамер его проигно- Из текста этого же сценария можно узнать точный путь к со-
рирует и оставит ваш сервер в покое (либо наоборот, если кету, который должен использовать Sendmail для взаимо-
окажется очень настойчивым, будет непрерывно отправ- действия с milter-greylist. Этот сокет и нужно указать в ва-
лять сообщения, не утруждая себя различными паузами). шем mc-файле для настройки Sendmail:
В то время как добропорядочный сервер, «выругавшись
про себя», терпеливо положит письмо в очередь и чуть поз- INPUT_MAIL_FILTER(`miltergreylist', ↵
`S=local:/var/milter-greylist/milter-greylist.sock, ↵
же попытается ещё раз его отправить. На этом и основа- F=, T=S:4m;R:4m')dnl
на фильтрация по «серым» спискам – «правильные» сер-
веры будут предпринимать повторную попытку доставки Теперь, пересобрав конфигурационный cf-файл и пе-
спустя некоторое время (обычно это 30 минут или 1 час), резапустив Sendmail, вы получите работающий «серый»
а «неправильные» либо сделают повтор сразу же, либо не фильтр. В /var/log/maillog (если не менялись настройки
сделают вообще. по умолчанию демона Syslog) вы сможете отследить то,
как этот фильтр работает:
Пример практической реализации
Jun 5 10:23:52 mydomain milter-greylist: k556NpVc033684:
Чтобы было понятнее, рассмотрим работу грейлистин- addr 1.2.3.4 from <user@mail.server.ru> to <user@mydomain.ru>
га на конкретном примере. Для Sendmail существует про- delayed for 00:05:00
грамма milter-greylist. Её установка из портов FreeBSD тру- Jun 5 11:23:58 mydomain milter-greylist: k557Nuv5034199:
addr 1.2.3.4 from <user@mail.server.ru> rcpt <user@mydomain.ru>:
да не составит: autowhitelisted for 24:00:00
14
администрирование
имеет полный доступ к настройке ма-
шин, определённых как Backup-серве- Не «мильтером» единым... ках в конце статьи SMTP-прокси Spey. Не-
ры для его домена. Упомяну тый здесь инструмент, milter- которые из этих инструментов перечис-
Ещё одна проблема связана с сер- greylist, не единственный. Существует лены на страницах специализированно-
верами, на которых эксплуатирует- масса фильтров и модулей к различным го сайта, посвящённого пропаганде грей-
ся «конкурирующая» система борьбы MTA, есть самостоятельные (не зависящие листинга – http://greylisting.org. Впрочем,
со спамом – так называемый обрат- от конкретной почтовой программы) паке- не забывайте, что если для лечения бо-
ный звонок (callback). Суть этого мето- ты, такие как фильтр Spamd (см. журнал лезни существует огромный выбор раз-
да заключается в следующем: при по- №6, 2005 г.), работающий в паре с пакет- личных препаратов, значит, болезнь не-
лучении входящего соединения сер- ным фильтром pf, или упомянутый в ссыл- излечима.
вер на стадии RCPT TO приостанав-
ливает сессию и имитирует рабочую ше серверов станут использовать «се- Поэтому не стоит возлагать такие
сессию с сервером, указанным в ко- рые» списки в своей практике, тем ме- надежды на использование «серых»
манде MAIL FROM. Если эта попытка нее эффективной и более проблемной списков. И уж конечно же, не нужно
из-за несуществующего адреса отпра- для законопослушных отправителей всюду пропагандировать эту техно-
вителя или по другим причинам завер- станет эта технология. логию – чем меньше людей о ней зна-
шается неудачей, то и приостановлен- Так, по мере распространения грей- ют, тем больше преимуществ она при-
ное соединение разрывается без даль- листинга всё больше ресурсов будет несёт лично вам.
нейшей обработки. тратиться на доставку почты. Хорошо,
Нетрудно догадаться, что если если ваши пользователи имеют огра- Ложка мёда
вы будете использовать грейлистинг, ниченный и регулярный список адре- Ну и немножко оптимизма напоследок.
то у вас наверняка возникнут про- сатов, большая часть которых будет Да, сам по себе грейлистинг эффекти-
блемы с отправкой почты на серверы, постоянно присутствовать в «белом» вен лишь в небольших дозах. Но в тан-
где настроен callback: в ответ на ваше списке, не влияя на эффективность деме с такими методами, как сигнатур-
подключение удалённый сервер попы- работы. А если нет? ные анализаторы или «чёрные» спис-
тается установить с вами «встречное» Не исключено, что крупные поч- ки на основе DNS, он может оказать-
соединение, а вы его отправите «поп- товые провайдеры будут вынуждены ся весьма полезен. Ведь он вынужда-
робовать немного позже». Кому от это- устанавливать специальные Fallback- ет спамеров делать задержку в своей
го будет хуже – неизвестно. серверы исключительно для обслу- рассылке, необходимую для того, что-
В нашем «наглядном пособии» – живания «серой» почты, что естес- бы обнаружить столь странную актив-
milter-greylist – эта проблема тоже из- твенно приведёт к удорожанию ус- ность и занести их адреса или сигна-
вестна, и для её решения предусмот- луг или снижению их качества (впро- туры сообщений в соответствующие
рен ещё один параметр – delayedreject. чем, о каком качестве может ид- базы. А дальше, как говорится, де-
При его активации milter-greylist будет ти речь, если каждое новое письмо ло техники.
возвращать ошибку 4xx не после ко- в среднем будет задерживаться ми- Так что будем надеяться, что когда-
манды RCPT TO, как это предусмот- нут на сорок). нибудь в наших почтовых ящиках бу-
рено по умолчанию, а после получе- Конечно, можно возразить, что дут «оседать» только действительно
ния команды DATA. Это вынуждает «своя рубашка ближе к телу» и что до- нужные нам письма.
удалённый сервер надеяться на ус- полнительные затраты на грейлис-
пех чуть дольше, но зато не создаёт тинг с лихвой компенсируются зна- 1. http://greylisting.org – cайт, посвящён-
препятствий для «обратного звон- чительным снижением спам-трафи- ный пропаганде «серых списков».
ка», который, как правило, заверша- ка и нагрузки на оборудование, им со- 2. http://projects.puremagic.com/greylisting –
ется после ответа сервера на коман- здаваемой. Только вот действительно проект Эвана Харриса, автора идеи
ду RCPT TO. ли это снижение будет столь уж зна- и концепции «серых списков», а также
Ну и кто знает, как будут реагиро- чительным? одной из практических реализаций.
вать на ошибку 4хх службы «легаль- Ведь что требуется от спамера, 3. http://www.eserv.ru/GreyListing – cтра-
ной» рассылки. Для них тоже не до- чтобы с лёгкостью обойти грейлис- ница компании «ЕТАЙП», посвящён-
ставит удовольствия по полдня возить- тинг? Всего-навсего через час про- ная технологии «greylisting».
ся с обработкой задержанных по тем вести повторную рассылку с теми же 4. http://ru.wikipedia.org/wiki/Greylisting –
или иным причинам сообщений. параметрами... И дальше пожинать Wikipedia о «серых списках».
плоды попадания в «белый» список. 5. h t t p s : / / h d c . t a m u . e d u / r e f e r e n c e /
Прогнозы на будущее Даже не нужно ничего менять в про- documentation/?section_id=586 – FAQ
Можно сделать вывод, что грейлистинг граммах рассылки. Так что как толь- по вопросам грейлистинга на сайте Те-
при всех своих недостатках на данный ко грейлистинг станет серьёзной по- хасского A&M University.
момент – вполне эффективная тех- мехой для спамеров, он, как это ни 6. http://hcpnet.free.fr/milter-greylist – домаш-
нология. Но её эффективность опре- странно прозвучит, вообще потеряет няя страничка проекта milter-greylist.
деляется исключительно низкой рас- свою актуальность, лишившись боль- 7. http://spey.sourceforge.net – SMTP-
пространённостью. Звучит парадок- шинства преимуществ, но сохранив прокси с под держкой технологии
сально, но это так и есть – чем боль- все недостатки. greylisting.
Сергей Яремчук
Борьба с непрошеной коммерческой почтой – спамом, как и прочие задачи, отбирает некоторое
время и силы системных администраторов, особенно на первом этапе установки и настройки
спам-фильтров. В Сети можно найти многостраничные руководства по настройке любой
системы борьбы со спамом, а мы попробуем найти более удобный вариант.
Б
ольшие организации с соответс- больших же фирмах покупка дорогос- рьезная подготовка и наличие некото-
твующим бюджетом и имеющие тоящего решения не только не целе- рого времени, так как заставить рабо-
в своем штате целый IT-отдел сообразна, но иногда и просто не по тать как единое целое несколько про-
могут позволить себе закупать гото- карману. Почитав некоторые описания грамм с ходу не получится. Это и пос-
вые решения, сэкономив тем самым по настройке почтовых систем на базе лужило одной из причин возникнове-
время на развертывание и получив со- свободного ПО, приходишь к выводу, ния готовых наборов антиспам-сис-
ответствующую техподдержку. В не- что для их реализации требуются се- тем, которые на порядок проще в уста-
16
администрирование
новке, настройке и последующей экс-
плуатации. Об одном из них и пойдет
речь сегодня.
Возможности CanIt
В основе канадской системы CanIt ле-
жат известные утилиты: MIMEDefang –
гибкий инструмент, предназначенный
для защиты компьютерных систем
от вирусов, и SpamAssassin – извест-
ное средство борьбы со спамом. Кро-
ме того, в состав входят скрипты, уп-
рощающие установку и первичную на-
стройку, дополнительные приложения
и удобный веб-интерфейс, необходи-
мый для дальнейшей настройки сис-
темы и спам-фильтров, а также выда-
чи отчетов. Для прослушивания SMTP
соединений MIMEDefang использует
milter интерфейс Sendmail. Поэтому
почтовая система должна быть пост-
роена только на Sendmail. Это не са- Рисунок 1. Принцип работы CanIt
мый мой любимый почтовый сервер,
с настройкой и безопасностью у него лиз заголовка, анализ формата со- бы отметить хорошую документацию
постоянные проблемы. Но, очевидно, общения, Байесовский статистичес- проекта, часть которой поставляется
здесь сыграла роль его популярность. кий анализ, черные, белые и серые вместе с дистрибутивом.
Если у вас уже установлен другой MTA списки, списки известных open-proxy,
(Postfix, Exim, Qmail), то разработчики DNS-верификация, SPF (sender policy Архитектура и принцип
предлагают использовать Sendmail framework, http://spf.pobox.com). А так- работы CanIt
для фильтрации спама, а затем пере- же hit-and-run, когда неизвестному Для того чтобы немного понять прин-
давать почту основному MTA, работа- пользователю отсылается сообщение цип работы системы CanIt и проще бы-
ющему на нестандартном порту. Вам о невозможности доставки и в случае ло бы разобраться с настройкой, не-
не потребуется делать дополнитель- его повторного отправления сообще- обходимо рассмотреть её архитекту-
ные денежные вложения, если в сис- ние будет принято. Хотя здесь тоже ру. Сообщение при помощи milter пе-
теме предусмотрено достаточно ресур- имеются дополнительные настройки, редается mimedefang, который запус-
сов на развитие, правда, это несколь- позволяющие ограничить прием пов- кает отдельный процесс, работающий
ко усложнит систему. Но в том случае торного сообщения только той подсе- в дальнейшем с сообщением. Между
когда используется MTA, разработан- тью, из которой письмо было отправ- ними может быть как UNIX, так и TCP-
ное для отличных от UNIX-операцион- лено первый раз. Система может быть сокет. Процесс, получивший заголо-
ных систем, без отдельного компью- сконфигурирована для фильтрации вок и тело сообщения от Sendmail, по-
тера уже не обойтись. Либо как вари- входящего, исходящего и внутренне- мещает его во временный каталог
ант решения разработчики предлага- го почтового трафика. Можно задать (/var/spool/MIMEDefang) и через UNIX-
ют приобрести фильтрующий почто- правила фильтрации по MIME-типу, сокет отсылает команду mimedefang-
вый прокси CanIt Appliance. потенциально опасным расширениям multiplexor, который управляет пулом
В качестве антивируса по умолча- прикрепленных файлов (в документа- постоянно запущенных Perl-процес-
нию применяется ClamAV, но при же- ции приведено 56 таких расширений – сов, осуществляющих фильтрацию,
лании CanIt можно легко сконфигури- asf, bat, chm, cmd, com, crt, dll, exe, hlp, и передает сообщение одному из них.
ровать с F-Risk’s F-PROT и F-PROTD, hta, inf, scr и прочие), почтовым адре- При нехватке Perl-процессов по ко-
F-Secure’s FSAV, H + BEDV AntiVir, сам получателя и отправителя, доме- манде multiplexor запускаются допол-
Network Associates’ uvscan, Norman ну и прочие. Вы можете задать и свои нительные, а при уменьшении нагруз-
Virus Control, Sophos Sweep, Symantec правила фильтрации. ки лишние «убиваются». Чтобы избе-
CarrierScan Server, Trend Micro’s vscan Также несколько установленных жать утечки памяти все процессы пе-
и Vexira Anti-Virus. Учитывая, что ви- CanIt могут образовывать единую сеть, риодически обновляются (забегая впе-
русы часто рассылаются при помо- позволяющую синхронно тренировать ред, скажу, что это все настраивается
щи спам-технологий, они частично бу- Байесовские фильтры, Roaring Penguin в файле mimedefang.conf).
дут отброшены антиспам-фильтром. Traning Network. Если SMTP-соединение либо от-
Для определения спама использова- Кроме GNU/Linux CanIt будет рабо- правитель сообщения принадлежат
ны практически все популярные се- тать на Solaris, FreeBSD, Compaq Tru64 к любому из черных списков, сооб-
годня методы: ключевого слова, ана- UNIX, HPUX и AIX. Отдельно хотелось щение отвергается. На следующем
вать исходный код для своих задач (кроме, надо полагать, Welcome to the CanIt preparation script for Fedora Core 1
GPL-продуктов, входящих в состав), система будет подде-
This script will check your system to ensure that all prerequisites
рживать не более 50 пользователей, правила всех анти- required to run CanIt are installed.
спам-фильтров может редактировать только администра-
Verifying that you are running Fedora Core 1... FAILED
тор, пользователи будут лишены некоторых возможнос- Fedora Core not found; you are running ALT Linux Sisyphus (20050723)
тей, не будет доступна техническая поддержка и Roaring
Penguin Training Network, нельзя использовать продукт Чтобы не пропустить какое-то из обязательных действий,
для обслуживания третьей стороны. Для небольшой ор- я рекомендую вам изменить любой из этих скриптов. Обя-
ганизации такие ограничения не существенны. Кроме то- зательно закомментируйте функцию проверки версии сис-
го, free-лицензия будет действительна ровно год, затем ее темы check_release и, возможно, функцию проверки нали-
придется обновлять. При этом если послать запрос зара- чия установленных пакетов, требуемых для удовлетворе-
нее, до истечения срока действия ключа, на уже исполь- ния зависимостей check_rpms. Если посмотреть на работу
зованный один раз электронный адрес, то все равно полу- функции, отвечающей за проверку наличия установленных
чите старый ключ, даже если остальные параметры (орга- пакетов, то можно получить этот список:
низация, операционная система) будут изменены. Поэто-
му, если вам нужно несколько ключей, пользуйтесь раз- db4 db4-devel perl httpd postgresql-devel postgresql
postgresql-libs postgresql-server php php-pgsql php-imap sendmail
ными адресами. sendmail-devel sendmail-cf gcc make glibc-devel m4 binutils libgcc
Готовим систему к установке Free CanIt В некоторых системах, в том числе и основанных
Во время написания статьи была актуальной версия Free на rpm-пакетах, названия могут немного отличаться. Просто
CanIt 3.2.0, выпущенная в феврале 2006 года, о ней и пой- проверьте, что у вас уже установлено. Далее скрипт прове-
дет речь. Перед получением доступа к архиву необходимо ряет наличие в системе необходимых пользователей и ка-
подтвердить лицензионное соглашение и заполнить данные талогов для работы и, если требуется, создает их. Снача-
для генерирования ключа, обязательно указав правильный ла пользователь для Sendmail.
электронный адрес. После чего внизу страницы набираем
«I agree» и нажимаем «Generate Licence Key». # id smmsp
Архивы с прекомпилированными пакетами доступны uid=112(smmsp) gid=# id smmsp
uid=112(smmsp) gid=58(smmsp) группы=58(smmsp)58(smmsp) группы=58(smmsp)
для Red Hat 8.0, Red Hat 9, Fedora Core 1, Fedora Core 2,
18
администрирование
Если в системе нет пользователя smmsp, создаем. пуска системы, если нужен запуск на остальных уровнях,
Но скорее всего это означает, что Sendmail либо не установ- укажите другой конечный каталог.
лен, либо работает от имени другого пользователя.
# ln -s /etc/init.d/canit /etc/rc3.d/S86canit
# /usr/sbin/useradd -c "Sendmail user" -r -M -d ↵ # ln -s /etc/init.d/canit-ticker /etc/rc3.d/S87canit-ticker
/var/spool/clientmqueue -s /bin/false smmsp
Для остановки при выключении и перезагрузке сис-
Теперь проверяем для MIMEDefang. темы.
После этого сохраняем старые настройки и компили- Во многих дистрибутивах параметр max_execution_time,
руем рабочий файл. определяющий максимальное время выполнения каждого
скрипта, в файле php.ini имеет низкое значение (обычно 30),
# mv -f /etc/mail/sendmail.mc /etc/mail/sendmail.mc.ORIG недостаточное для нормального выполнения некоторых
# mv -f /etc/mail/sendmail.mc.NEW /etc/mail/sendmail.mc
# make -C /etc/mail действий CanIt. Его рекомендуется установить в 300. Также
необходимо отключить safe_mode, так как чтение файла
Теперь проверяем и устанавливаем в автозагрузку все /etc/mail/canit/db-settings невозможно в этом режиме.
сервисы, от которых зависит работа CanIt. В различных
дистрибутивах это делается по-разному, приведу пример safe_mode = Off
для RedHat и SuSE.
Теперь запускаем PostgreSQL и Apache и переходим
# chkconfig sendmail on к следующему этапу.
# chkconfig postgresql on
# chkconfig httpd on
# /etc/init.d/httpd start
# /etc/init.d/postgresql start
Для сервисов CanIt устанавливаем запуск с большим
номером, чем у предыдущих.
Компилируем модули
# ln -s /etc/mail/canit/mimedefang-ctrl /etc/init.d/canit и устанавливаем CanIt
# ln -s /etc/mail/canit/ticker-ctrl /etc/init.d/canit-ticker
После всех подготовительных работ переходим непосредс-
Делаем символическую ссылку для третьего уровня за- твенно к сборке модулей Perl, MIMEDefang и Sendmail 8.12
*** NOTE: There is no 'defang' user on this system. We strongly Please enter the Web GUI login name of the CanIt administrator
*** recommend creating a 'defang' user and group for MIMEDefang. [admin]:
Please enter the CanIt administrator's password:
Please re-enter the CanIt administrator's password:
Обратите внимание на вывод. Если соответствующий
Review of your entry:
модуль уже был установлен в системе, то он пропускается. CanIt Administrator: admin
Бывает, что Perl модуль по непонятным причинам не ком- Is this information correct? (Y/N) y
пилируется и тогда скрипт завершается с ошибкой. В этом Checking for existing spam database... NO
No spam database found; creating a fresh one.
случае просто установите его стандартным способом, на- No spam database found; creating a fresh one.
пример, при помощи apt-get. При сборке он будет помечен Detected PostgreSQL version 8.0.4
Creating user postgres OK
как установленный, и соответствующий шаг будет пропу- Creating database 'spam' OK
щен. Также в системе на момент сборки не было пользова- Creating standard CanIt tables, sequences and indexes
теля defang, скрипт, как видите, предупредил нас об этом. Creating sequences:
..... OK
В некоторых ситуациях, возможно, понадобится передать Creating tables:
скрипту дополнительные параметры. Например, --everything ......................................... OK
Creating indexes:
позволит принудительно пересобрать все, а при использо- ......... OK
вании --not-sendmail или --not-clamav не будут собираться Granting access on objects to postgres:
соответствующие приложения. ..... OK
Granting access on objects to postgres:
Теперь поступаем, как подсказывает предыдущий вы- ......................................... OK
вод, и запускаем скрипт install.sh, в качестве параметра ему Doing base CanIt variable descriptions OK
Doing base CanIt data OK
необходимо передать каталог веб-сервера, куда будут ско- Creating administrator account OK
пированы php-скрипты. Как вариант можно все настройки
указать в файле layouts/layout.default. Для CanIt лучше ис- Данные для доступа к БД будут сохранены в файле
пользовать отдельный каталог. Я указал rr, в примерах до- /etc/mail/canit/db-setting, их можно впоследствии изменить
кументации использован canit. вручную. Владельцем этого файла должен быть apache,
20
администрирование
группа defang права доступа 0640, на каталог и подкатало-
ги /etc/mail/canit соответственно root:root и 0755.
Проверяем
Корректность установки CanIt можно проверить при помо-
щи telnet.
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 notebook.net ESMTP Sendmail 8.13.4/8.13.4; Thu, 25 May 2006 14:05:05 +0300
HELO localhost
250 notebook.net Hello notebook.net [127.0.0.1], pleased to meet you
MAIL FROM:<canit-probe@roaringpenguin.com>
554 5.7.1 CanIt is installed
QUIT
Рисунок 4. В настройках CanIt можно указать адреса Отправка письма canit-probe@roaringpenguin.com долж-
отправителей и действия, которые будут применены
при получении от них письма на завершиться с ошибкой, но будет выведено сообще-
ние «CanIt is installed», говорящее о том, что установка
В поставляемых в комплекте CanIt файлах не оказа- прошла успешно. В /etc/mail/canit находится файл sample-
лось DB_File.pm. Проблема решилась установкой пакета spam-message, отправив который можно проверить рабо-
perl-DBM-5.8.7-alt2.i586.rpm. ту спам-фильтров.
Теперь в веб-браузере набираем «http://имя_узла/rr/» А при помощи команды ps waux | grep defang убежда-
и получаем доступ к графическому интерфейсу. После ре- емся в запуске новых процессов, обрабатывающих сооб-
гистрации, используя логин и пароль, указанный при ини- щение.
циализации базы данных, вам предложат ввести регист-
рационный ключ, без которого CanIt работать не будет. Об- $ ps waux | grep defang
ратите внимание на сообщения на странице приветствия defang 9326 0.0 0.2 3376 696 ? S 13:46 0:00
/usr/local/bin/mimedefang-multiplexor -p /var/spool/MIMEDefang/ticker.pid
(рис. 2), обязательно просмотите все указанные ссылки. -U defang -m 2 -x 4 -r 100 -i 3600 -b 432000 -c 50 -w 0 -s
Первое, помеченное как warning, говорит о том, что имеют- /var/spool/MIMEDefang/ticker.sock -l -X 150 -P 4 -Y canit-ticker -F
/etc/mail/canit/ticker-filter
ся замечания по настройке (рис. 3). Администратор предуп- defang 9327 0.0 2.2 18936 5304 ? S 13:46 0:01
реждается о том, что настройки PostgreSQL не оптималь- /usr/bin/perl /usr/local/bin/mimedefang.pl -f /etc/mail/canit/ticker-filter
-server
ны (такие сообщения всегда доступны в «Setup → System …
defang 9408 0.0 0.2 4080 592 ? S 14:00 0:00
Check»). Последнее сообщение предлагает воспользо- /usr/local/bin/mimedefang -P /var/spool/MIMEDefang/mimedefang.pid -m
ваться мастером Basic Setup Wizard для первоначальной /var/spool/MIMEDefang/mimedefang-multiplexor.sock -R 1 -z
/var/spool/MIMEDefang -U defang -s -t -p
настройки CanIt. Перейдя по ссылке, вы обнаружите пара- /var/spool/MIMEDefang/mimedefang.sock -x CanIt (www . roaringpenguin . com)
метры, выставленные в файле filter-settings.pl. И наконец,
сообщение по середине сообщает, что свободная версия Информация о работе CanIt заносится в файлы журна-
рассчитана на 50 пользователей и их необходимо занес- лов. Успехов!
ти в таблицу «Valid Recipients». В версии CanIt Pro эта таб-
лица используется для обозначения действующих почто- 1. Сайт проекта Roaring Penguin CanIt – http://www.roaring
вых адресов и активируется установкой «Only accept mail penguin.com.
for accounts in the Valid Recipients table» в «Administration → 2. Сайт проекта MIMEDefang – http://www.mimedefang.org.
22
администрирование
Народная мудрость
Сергей Супрунов
Если ваш почтовый сервер перестал справляться с возросшей нагрузкой или работает
недостаточно стабильно, не спешите покупать более мощное «железо». Возможно, проблема
решится после грамотной настройки Sendmail.
24
администрирование
mailnull sendmail: startup with w83-193.abo.wanadoo.fr (sendmail) Статистика
mailnull sendmail: server [220.69.161.120] cmd read (sendmail)
Помимо лог-файлов полезной может оказаться и утилита
Как видите, вполне можно обеспечить работу Sendmail mailstats (рис. 1). Она выводит число принятых и отправ-
с правами обычного пользователя. Однако это ослабит за- ленных сообщений (msgsto и msgsfr соответственно), вхо-
щиту на других участках – suid-бит на файле mail.local, до- дящий и исходящий трафик (bytes_to и bytes_from), число
полнительные права на запись в UNIX-сокеты внешних филь- отклонённых сообщений (в соответствии с базой access).
тров и т. д. Так что подобная настройка весьма неоднознач- Последние две строки – итоги (строка T) и количество со-
на. Впрочем, окончательное решение принимать вам. единений (строка C).
Для автоматической обработки может быть полезен
Собираем информацию запуск с ключом -P, когда не выполняется дополнительное
Прежде чем перейти к вопросам повышения производи- форматирование:
тельности почтового сервера, пару слов скажу о средствах
мониторинга его работы. Ведь чтобы оценить эффект от из- root# mailstats -P
менения, необходимо получить некоторые количественные 1148036405 1148543708
показатели «до» и «после», которые и будут сравниваться. 0 0 0 301 434 0 0 0 prog
1 0 0 43 506 0 0 0 *file*
Да и вообще, регулярный мониторинг работы сервера лиш- 3 862 51985 2495 129910 24 0 0 local
ним никогда не будет. 5 2938 134398 578 50810 513 0 0 esmtp
T 3800 186383 3417 181660 537 0 0
C 16764 720 8149
Log-файлы
Первое место, куда следует заглянуть, чтобы проконтроли- Запуск с ключом -p (обратите внимание на регистр сим-
ровать работу любого сервиса, – это лог-файлы. Sendmail вола) выводит аналогичную информацию, одновременно
по умолчанию ведёт журнал своей работы в файле /var/log/ очищая накопленную статистику. Этим можно воспользо-
maillog. Если быть точнее, то используется система Syslog, ку- ваться, например, для автоматической ежедневной, еже-
да выводятся рабочие сообщения с facility «mail». Дальнейшее недельной или ежемесячной (в зависимости от нагруз-
уже определяется настройками в /etc/syslog.conf. ки и требуемой оперативности) обработки статистичес-
Уровни сообщений задаются в опции LogLevel (в mc- ких данных.
файле директивой define(`confLOG_LEVEL’,`9’), где 9 – уро-
вень, используемый по умолчанию. Обычно используется Состояние хостов
значение от 0 (минимальное количество информации) до 10 В процессе работы Sendmail может собирать статисти-
(достаточно подробный вывод). Значения выше 10 обыч- ку доступности хостов-получателей, которую в дальней-
но используются лишь для отладки. В ряде случаев может шем можно просмотреть с помощью команды hoststat
оказаться полезным уровень 12, на котором протоколиру- (или sendmail -bh, что то же самое). Для этого в конфигу-
ются все SMTP-соединения. рационном файле укажите имя каталога (абсолютный путь
Не забывайте, что ведение лог-файлов создаёт до- или путь относительно каталога очереди), в котором будет
полнительную нагрузку на дисковую подсистему. На за- сохраняться статистическая информация:
груженных серверах, по возможности, выносите каталог
с лог-файлами на отдельный жёсткий диск либо исполь- define(`confHOST_STATUS_DIRECTORY', `.hoststat')dnl
зуйте способность Syslog отправлять сообщения по сети
на удалённый хост. Cпустя некоторое время вы сможете просмотреть со-
стояния хостов, к которым Sendmail обращался. Так можно
получить список хостов, возвративших ошибку «Operation
timed out»:
26
администрирование
Таблица 1. Опции тайм-аутов ра. Поэтому чуть подробнее рассмотрим вопросы, связан-
Опция в cf-файле Директива mc-файла Описание ные с ней.
Время ожидания команды
Timeout.helo define(`confTO_HELO', `знач')
HELO Организация очереди
Timeout.mail define(`confTO_MAIL', `знач')
Время ожидания команды Очередь сообщений организована в виде каталога в фай-
MAIL FROM: ловой системе. По умолчанию используется /var/spool/
Timeout.rcpt define(`confTO_RCPT', `знач')
Время ожидания команды mqueue (clientmqueue для процессов, вызванных локаль-
RCPT TO:
ными пользователями). В ней можно найти несколько ти-
Время ожидания команды
Timeout.quit define(`confTO_QUIT', `знач')
QUIT пов файлов:
qf* – заголовочный файл сообщения. Содержит инфор-
Таблица 2. Строки qt-файла очереди мацию, предназначенную для доставки и обработки со-
Строка Пример Описание общения (заголовок), а также некоторую служебную ин-
T T1148293041 UNIX-время постановки сообщения в очередь формацию, используемую программой обработки оче-
K K1148299145 UNIX-время последней обработки сообщения
реди (приоритет, время размещения в очереди). Значе-
ния некоторых строк представлены в таблице 2.
Количество выполненных попыток отправки
N N5
сообщения df* – в этих файлах хранятся почтовые сообщения. Со-
P P415878 Рассчитанный приоритет (см. ниже) ответствие с заголовочным файлом устанавливается
по оставшейся части имени файла.
S SMAILER-DAEMON Имя отправителя
MDeferred: Connection Сообщение о причине неудачной доставки
M
refused by mail.darbs.lv. в прошлый раз В процессе обработки создаются и другие временные
H? H??To: <info@job.lv> Строки заголовка сообщения
файлы (например, xf*, содержащие сведения об ошибках,
возникающие в процессе передачи сообщения).
трудничестве со Smart-хостом, который будет выполнять все
необходимые корректировки. В противном случае возмож- Приоритеты
ны проблемы при доставке ваших сообщений. Для сообщений, поставленных в очередь, можно назна-
Есть и более кардинальный способ: чать различные приоритеты. Это достигается с помощью
следующей конфигурационной директивы (используется
FEATURE(nodns) по умолчанию):
define(`confQUEUE_SORT_ORDER', `Priority')dnl
Так в чём задержка?
Дополнительной оптимизации вы достигнете, если с уста- Чем большее значение получает сообщение, тем позже оно
новите более подходящие для вашего конкретного случая будет обрабатываться. Рассчитывается значение приори-
значения тайм-аутов соединений. Используемые по умол- тета таким образом:
чанию значения довольно велики (например, время ожи-
дания ответа на команду HELO составляет 5 минут). Прав- Приоритет = Размер_сообщения_в_байтах –
(ClassFactor * Класс_сообщения) +
да, учтите, что в большинстве случаев они соответству- (RecipientFactor * Кол-во_получателей) +
ют принятым стандартам и рекомендациями (в частнос- (RetryFactor * Кол-во_попыток_отправки)
ти, RFC 2821). К тому же проблемные ситуации достаточ-
но редки при нормальной работе, так что снижение боль- где коэффициенты ClassFactor, RecipientFactor и RetryFactor
шинства тайм-аутов (например, Timeout.quit, определяю- задаются в файле конфигурации (в формуле указаны их
щий время ожидания команды QUIT) практически не ска- имена в cf-файле) и определяют «вес» класса сообще-
жется на общей производительности сервера. ния, количества получателей и числа предыдущих попы-
Но в ряде случаев изменение тайм-аутов может оказать- ток доставки.
ся полезным. Например, в наши дни протокол IDENT (см. Класс определяется значением поля Precedence, а его
врезку «Протокол IDENT»), предназначенный для иденти- числовое значение задаётся строками «P» в конфигураци-
фикации владельца сокета, используется редко из-за его онном (cf) файле, например:
неэффективности и недостоверности. Следовательно, нет
никакого смысла ожидать результата идентификации, и Pbulk=-60
Pfirst-class=0
можно смело устанавливать соответствующий параметр в Pjunk=-100
ноль: define(`confTO_IDENT’,`0’). Pspecial-delivery=100
Некоторые из опций, отвечающих за установку различ-
ных тайм-аутов, приведены в таблице 1. Таким образом, в первую очередь будут отправляться
Есть ещё группа тайм-аутов, отвечающих за работу поч- небольшие сообщения, имеющие минимальное число полу-
товой очереди, о них мы поговорим в следующем разделе. чателей и наибольший класс, и которые не имеют «тяжёлой
кармы» безуспешных попыток доставки в прошлом. Но на
Кто последний? практике механизм приоритетов не очень сильно влияет на
Почтовая очередь оказывает в большинстве случаев на- общую работу сервера. Конечно, более быстрая доставка
ибольшее влияние на общую производительность серве- небольших сообщений способствует «разгрузке» очереди,
28
администрирование
дет выбираться случайным образом, что гарантирует опре- «За выслугу лет»
делённую «равномерность» заполнения очередей. Есть воз- Ещё одним полезным параметром является MinQueueAge.
можность и более «интеллектуально» размещать различ- С его помощью можно указать, сколько сообщение долж-
ные сообщения – см. врезку «Группы очередей». но «отлежаться» в очереди, прежде чем будет предпринята
Если имена каталогов в mqueue будут начинаться с qf, следующая попытка доставить его. Такая странная на пер-
df, xf, то Sendmail будет использовать их для размещения вый взгляд опция позволяет повысить время отклика оче-
соответствующих файлов. Если при этом каталоги разнес- реди, установив сравнительно небольшой интервал её об-
ти по разным жёстким дискам, то можно повысить скорость работки (например, 5 минут), но без слишком частых попы-
обработки каждого сообщения. Причём некоторые файлы ток отправить «застрявшее» сообщение. Сделать это мож-
(например, xf) могут быть безболезненно размещены в па- но следующим образом:
мяти (используя tmpfs).
Помимо снижения количества сообщений в отдельных define(`confMIN_QUEUE_AGE', `30m')
каталогах, наборы очередей позволяют осуществлять па-
раллельную обработку нескольких очередей, что положи- Если теперь процесс-обработчик очереди запустить
тельно сказывается на производительности. с параметром -q5m, то очередь будет обрабатываться каж-
«Русский экстрим» Backup-сервер (на который должна ука- ет один недостаток: этот сервер ничего не
Для иллюстрации предлагаю вам рассмот- зывать MX-запись с меньшим приоритетом) будет знать о существовании конкретных
реть один практический пример. Имеется в рассматриваемой схеме выглядит не сов- пользователей, следовательно, он будет
почтовый сервер, который уже не справ- сем уместно, будучи подключенным на тот принимать всю почту, адресованную на
ляется с навалившейся на него нагрузкой, же интернет-канал. Если организация рас- обслуживаемый домен, вместо того что-
а денег на новый нет. Зато есть несколь- полагает резервным интернет-соединени- бы отклонять сообщения для несущест-
ко «слабеньких» машин, которые можно ем, то данный сервер следует подключить вующих пользователей ещё на стадии ко-
использовать. именно на него. Но даже в такой схеме его манды RCPT TO.
Один из вариантов решения – орга- использование позволит разгрузить основ- Мы рассмотрели, скажем так, «пре-
низовать «распределённый» почтовый ной сервер. Для этого нужно на основном дельный» случай. На практике можно ва-
сервер за счёт «разделения труда», ког- сервере установить небольшие значения рьировать его в весьма широких пределах
да несколько вспомогательных серве- тайм-аутов, а также «посильное» значение в зависимости от наличия «лишних» ком-
ров принимают на себя часть нагрузки MaxDaemonChildren. В результате медлен- пьютеров. Например, можно объединять на
основного. ные, а также «избыточные» внешние соеди- одной машине ряд задач (FallBack-сервер
Схема нашего «сводного сервера» нения будут отклоняться, и их обслужива- и Backup-сервер вполне уживутся на одном
представлена на рис. 3. ние возьмёт на себя Backup-сервер. компьютере, особенно если он будет под-
Основной сервер занимается взаи- Есть ещё один приём балансировки на- ключён на резервный интернет-канал) ли-
модействием с клиентами – принимает грузки. Заключается он в том, что если до- бо часть задач возлагать не на выделен-
от них сообщения для отправки, размеща- мен имеет несколько MX-записей с одина- ный сервер, а на уже имеющийся (напри-
ет входящую корреспонденцию по почто- ковым приоритетом, то для работы долж- мер, принт-сервер в локальной сети), если
вым ящикам пользователей, и т. д. То есть на выбираться случайным образом одна его ресурсы и режим безопасности позво-
делает то, что и любой почтовый сервер. из них, что обеспечивает равномерность ляют это сделать, и т. д. И конечно же, обя-
Но, чтобы ему было проще, предусмотрено распределения нагрузки между несколь- зательным является только основной сер-
несколько вспомогательных серверов. кими хостами. вер, все остальные – «опциональны».
Сервер, обозначенный на схеме как Для Backup-сер-
Smart-хост, берёт на себя заботу о достав- вера можно указать
ке исходящих сообщений. Поскольку он более приоритетную
имеет надёжную связь с основным серве- M X- з а п и с ь, ч то б ы
ром, то задержки при передаче ему почты вся вход ящая поч-
будут незначительными. Благодаря этому та поступала в пер-
затраты ресурсов основного сервера на от- вую очередь на него.
правку сократятся, поскольку никаких про- При этом основной
блем, способных вызвать чрезмерное раз- сервер сможет полу-
растание очереди, возникнуть не должно чать почту от Backup-
(не считая, конечно, выхода из строя са- сервера с меньшими
мого Smart-хоста). издержками благо-
Ещё один вспомогательный сервер, те- даря более быстро-
перь уже для облегчения участи Smart-хос- му и надёжному со-
та, – FallBack-сервер, задача которого – об- единению. Но имей-
рабатывать «проблемные» сообщения, ко- те в виду, что исполь-
торые Smart-хост не смог доставить. Благо- зование отдельного
даря этому и на Smart-хосте очередь долж- сервера для входя-
на оставаться минимальной. щих соединений име- Рисунок 3. Больше серверов – хороших и разных...
Ограничения по загрузке
Механизм обработки очереди в Sendmail предусматривает
ещё один метод предотвращения перегрузки сервера. Сра-
зу нужно заметить, что это не средство оптимизации рабо-
ты Sendmail, а своего рода «аварийный клапан», и если он
срабатывает достаточно регулярно – значит, нужно что-то
делать для повышения производительности.
Речь идёт о двух опциях – QueueLA и RefuseLA (в mc-фай-
ле – define(`confQUEUE_LA’, `знач’) и define(`confREFUSE_LA’,
`знач’) ) соответственно). Первая из них при превышении
средней загрузки сервера (Load Average) сверх указанной
Рисунок 4. Схема работы с резервным сервером
переводит Sendmail в режим «только очередь» (queue), ког-
да для входящих сообщений не предпринимаются попыт- набор очередей, разнеся различные каталоги по несколь-
ки доставить их немедленно, а выполняется только разме- ким дискам, то можно достичь ещё более высоких показа-
щение в очереди. телей скорости работы.
Вторая опция даёт указание отклонять новые соедине- Нужно сделать и одно предостережение – как бы ни ка-
ния, если средняя загрузка системы превышает указанное залось заманчивым размещение очереди в оперативной па-
значение. О том, что это произошло, можно узнать по за- мяти (используя tmpfs), этого не следует делать. Ведь со-
писям «Sendmail rejecting connecting, load average too high» общения для того и помещаются в очередь, чтобы гаранти-
в /var/log/maillog. ровать их сохранность при неожиданных проблемах с сер-
вером, вплоть до перезагрузки. Если же в вашем случае
Оптимизация очереди надёжностью доставки можно пренебречь (думаю, это вер-
Основная проблема, связанная с очередью, – это её чрез- но разве что при рассылке спама), то можно отключить оп-
мерное разрастание. Когда по тем или иным причинам (про- цию SuperSafe (define(`confSAFE_QUEUE’, `False’)).
блемы при доставке или поступление новых сообщений А вот размещение в tmpfs конфигурационных файлов
с большей скоростью, чем сервер может обработать) в ка- (таких как aliases.db, access.db) может быть весьма полез-
талоге очереди скапливается большое число файлов, сис- но – ведь в этом случае Sendmail не будет каждый раз об-
тема начинает тратить слишком много времени на их пред- ращаться к диску для «разрешения» псевдонима или по-
варительную обработку (поиск, чтение, расчёт порядка об- иска адреса отправителя в базе access. Впрочем, в грамот-
работки согласно приоритету и т. д.). но работающей системе эти данные и так должны преиму-
Если проблема носит регулярный характер, то более щественно находиться в дисковом кэше (если, конечно, не-
эффективным, по-видимому, будет устранение её причины хватка оперативной памяти не вынуждает систему снижать
(«узкий» интернет-канал, недостаточно быстрый процессор, размер кэша до предела).
спам-рассылки со стороны ваших клиентов). Учитывая пос-
тоянно возрастающие объёмы пересылаемой корреспон- Методы «авральной» работы
денции, попытки выиграть несколько процентов произво- И всё же порой случается, что очередь заполняется неимо-
дительности за счёт оптимизации работы с очередью (воз- верным количеством сообщений. Например, причиной по-
можно, ценой снижения функциональности или надёжнос- добного может явиться прерывание соединения с Интерне-
ти) могут рассматриваться лишь как временная мера. том на несколько часов. Пока канал будут «поднимать», не-
Тем не менее рассмотрим основные приёмы, позволяю- терпеливые пользователи накидают уйму писем, которые
щие добиться более быстрой работы с очередью. после восстановления соединения могут вызвать резкий
Во-первых, рассмотренные выше режимы сортировки всплеск нагрузки на сервер. Если учесть, что в это же время
очереди позволяют несколько перераспределить нагрузку на ваш MTA обрушится масса внешних соединений (удалён-
в зависимости от того, в каких ресурсах испытывается не- ные серверы ведь тоже накапливали всё это время письма,
достаток. Так, порядок Filename несколько снижает нагруз- адресованные вам, и теперь поспешат от них избавиться),
ку на дисковую подсистему; Host – оптимизирует исполь- то ситуация может стать близкой к катастрофической.
зование сетевых ресурсов и т. д. Наиболее простым и почти что «стандартным» спосо-
Во-вторых, подумайте над тем, чтобы вместо одной оче- бом решения подобных проблем можно считать перенос на-
реди использовать наборы. Меньшее число файлов в конк- копившихся файлов очереди в отдельный каталог с после-
ретном каталоге позволит более быстро и с меньшими за- дующей его обработкой «вручную». Это позволяет макси-
тратами выполнять поиск нужного файла. мально быстро вернуть сервер в «штатный» режим.
В-третьих, на сильно загруженных серверах имеет
смысл вынести каталог очереди на отдельный жёсткий Серверы на «чёрный» день
диск или даже на RAID-массив, с тем чтобы максимально К сожалению, время от времени любая техника даёт сбои.
повысить скорость доступа к файлам. Если использовать Чтобы смягчить последствия временной недоступнос-
30
администрирование
Для решения этой проблемы предусматривается так назы-
ваемый FallBack-сервер. Так, если основной сервер содер-
жит в своей конфигурации такую строку:
define(`confFALLBACK_MX', `адрес_сервера')
Ведём статистику
прокси-сервера Squid
Павел Малахов
Журнальные файлы прокси-сервера Squid даже для небольших предприятий могут быть
очень объёмны. Разбирать их вручную малоэффективно, а вести статистику или учёт просто
невозможно. Для этого существуют вспомогательные программы.
Р
ано или поздно мы (системные не глядя скачали какое-нибудь обнов- сколько раз сталкиваться со злонаме-
администраторы) хотим (или нас ление, но бывают случаи, от них не за- ренными самообновляющимися стра-
заставляют) установить контроль висящие. Например, не отвечал сер- ницами. Ясность частично можно вне-
над использованием интернет-трафи- вер mail.ru, а его агенты, пытаясь ус- сти и штатными средствами, исполь-
ка. У меня пользователи периодичес- тановить с ним связь, «съедали» у не- зуя команды cat и grep. Например, сде-
ки недоумённо осведомляются, на что которых пользователей большую часть лать выборку из журнала для конкрет-
истратилась их квота. Чаще всего они их скромной квоты. Приходилось не- ного IP-адреса командой:
32
администрирование
# cat /var/log/squid/access.log | grep 10.0.0.15 > ↵ Если вы используете Linux и хотите размещать конфигу-
/tmp/10.0.0.15.txt
рационные файлы в /etc/sarg (по умолчанию /usr/local/sarg),
а затем перенести файл на компьютер, где есть MS Excel, в этом случае укажите соответствующую опцию:
и там его просматривать. Так я и делал, пока не потребо-
валось проводить более серьёзный анализ и вести ста- # ./configure --enable-sysconfdir='/etc/sarg'
# make
тистику. # make install
$requester_report = -1;
$status_report = 1;
Рисунок 1. Список сайтов, которые посетил пользователь $type_report = -1;
$hostname = 'lookup';
$output_format = 'html,graph';
$output_path = '/var/www/html/reports/calamaris';
$output_file = 'index.html';
$show_reports = '0,2,5,6,8,10,11,13,14';
34
администрирование
case "$1" in
"today" )
REPPATH=$REP_PATH_PREFIX'/today';
checkdir;
cd $CALAM_DIR;
echo -n `date +%c` "Processing data for today... ";
cat $SQUID_LOG_DIR/access.log | ./calamaris.pl ↵
--config-file ./calamaris.conf --output-path
$REPPATH;
;;
"yesterday" )
REPPATH=$REP_PATH_PREFIX'/days/'$YESTD;
checkdir;
cd $CALAM_DIR;
echo -n `date +%c` "Processing data for yesterday... ";
cat $SQUID_LOG_DIR/access.log.0 | ./calamaris.pl ↵
--config-file ./calamaris.conf --output-path $REPPATH ↵
--cache-output-file $CACHE_DIR/day.$YESTD;
;;
"week" )
REPPATH=$REP_PATH_PREFIX'/weeks/'$YESTW;
checkdir;
cd $SQUID_LOG_DIR;
echo -n `date +%c` "Processing data for week... ";
cat access.log.6 access.log.5 access.log.4 access.log.3 ↵ Рисунок 3. Cуммарная информация по работе прокси-сервера
access.log.2 access.log.1 access.log.0 |
$CALAM_DIR/calamaris.pl --config-file
$CALAM_DIR/calamaris.conf --output-path $REPPATH ↵
--cache-output-file $CACHE_DIR/week.$YESTW;
;;
"month" )
REPPATH=$REP_PATH_PREFIX'/months/'$YESTM;
checkdir;
cd $CACHE_DIR;
CACHEFILES="";
for ((i=1; i<=31; i++)); do
FILE='day.'$i;
if [ -e "$FILE" ]; then
if ["$CACHEFILES" = ""]; then
CACHEFILES=$FILE;
else
CACHEFILES=$CACHEFILES':'$FILE;
fi
fi
done
echo 'files to process '$CACHEFILES;
echo -n `date +%c` "Processing data for month... ";
$CALAM_DIR/calamaris.pl --config-file
$CALAM_DIR/calamaris.conf --cache-input-file $CACHEFILES ↵
--no-input --output-path $REPPATH;
echo "Done";
# Очищаем кэш в начале месяца.
# Удаляем только записи для дней, для недель оставляем
DD=`date +%d`;
if [ "$DD" = "01" ]; then
echo -n `date +%c` "Cleaning up cache dir... ";
rm -f $CACHE_DIR/day.*;
fi Рисунок 4. Распределение трафика по протоколам
;; лям и сайтам, сильная сторона – общая статистика по на-
esac
echo "Done"; грузке на прокси-сервер. Все отчёты последовательно
echo `date +%c` "---Everything is done" отображаются на одной html-странице. Некоторые отчё-
exit 0
ты не отображаются, если в журнале не найдены необхо-
Делаем этот скрипт исполняемым: димые для него записи. Мне удалось получить 11 отчётов.
Вот их описание:
# chmod +x /etc/calamaris/calam_rep.sh Summary – суммарная информация по работе прокси-
сервера (рис. 3).
Cоздаём отчёт: Incoming requests by method – входящие запросы
по методу (Get, Post и т. д.).
# ./calam_rep.sh yesterday Incoming UDP(TCP)-requests by status – входящие за-
просы по статусу (HIT, MISS, DENIED и т. д.).
и смотрим его в браузере по адресу http://our.domain.ru/ Outgoing requests by status – исходящие запросы
reports/calamaris/days. по статусу.
Создаём журнальный файл /var/log/calam_rep.log, куда Outgoing requests by destination – исходящие запро-
будем записывать результаты запуска скрипта по cron: сы по месту назначения.
Request-destinations by 2nd-level-domain – сгруппиро-
# touch /var/log/calam_rep.log ванная статистика для доменов 2-го уровня, т.е. запро-
сы на site1.example.com и site2.example.com суммируют-
Слабое место Calamaris – статистика по пользовате- ся в статистике для домена example.com.
# mkdir -p /var/www/html/reports/lightsquid
Если Calamaris будет не единственным обработчиком Проверим в браузере, что мы получили. Начальная стра-
журналов Squid, то я бы не ставил поддержку графики ница отчёта должна быть, как на рис. 5.
(от них практической пользы нет) и не выводил статисти- LightSquid поддерживает как родной формат журнала
ку по пользователям (другие программы это делают и пол- Squid, так и формат httpd.
нее, и красивее). В таком облегчённом варианте он ставит- Можно объединять пользователей в группы и смотреть
ся быстро, и генерируемые им отчёты в будущем будут за- отчёты по группе. Для этого в файле group.cfg определяем,
нимать меньше места. какой пользователь к какой группе относится:
36
администрирование
час достаточно использовать имеющийся. Для того чтобы
получить отчёт, как на рис. 6, определяем в lightsquid.cfg
следующие параметры:
$ip2name = "list";
$showgrouplink = 1;
$userealname = 1;
sub StartUser() {
my $ipfile = "/var/www/html/reports/lightsquid/users.txt";
Конечно, если у вас где-то ведётся свой список пользо- Можно сделать доступ по паролю. Подробности по на-
вателей, то лучше использовать его, написав для LightSquid стройке доступа можно прочитать в [2].
небольшой скрипт по разбору этого файла.
Запуская программу, мы получаем следующие отчёты: Подведем итоги
Количество соединений и скачанных байт на день, У всех трёх программ есть настройки внешнего вида отчёта,
на месяц и на год по каждому пользователю, для груп- графики. Все поддерживают русский язык. У каждой есть
пы и для прокси-сервера в целом. свои отличительные характеристики, заслуживающие вни-
Популярные сайты (рис. 7). В этом есть возможность мания, и можно установить все три, но если такой возмож-
сортировки списка по количеству запросов либо по объ- ности (или желания) нет, то при выборе стоит учесть:
ёму данных. нужны ли вам те или иные отчёты;
Таблица времени доступа пользователя к сайтам, достаточно ли у вас дискового пространства, чтобы хра-
то есть время его активности в Интернете. нить все желаемые отчёты;
Отчёт о «больших» скачанных файлах. позволяет ли нагрузка на процессор добавить генера-
цию всех желаемых отчётов. Для обработки 140 тысяч
Хочется особо отметить удобный интерфейс. строк журнала на компьютере с процессором Pentium 4
с тактовой частотой 3 ГГц и с 1 Гб оперативной па-
Последние штрихи мяти потребовалось для всех трёх программ вместе
Осталось автоматизировать генерацию отчётов путём до- при их последовательном запуске около 2,5 минуты.
бавления в /etc/crontab соответствующих заданий:
Напоследок хочу сказать, что, поискав в Интернете от-
# Генерируем отчёты прокси сервера Squid клики по этим программам, вы обнаружите различные жа-
0/20 * * * * root /var/www/html/reports/lightsquid/ ↵
lightparser.pl today лобы администраторов на их неудобство или даже частич-
5 0 * * * root /usr/sbin/sarg ную неработоспособность. Так, например, Sarg до сих пор
30 0 * * * root /etc/calamaris/calam_rep.sh ↵
yesterday >> /var/log/calam_rep.log останавливается на некоторых записях журнала, отказы-
35 0 * * 6 root /etc/calamaris/calam_rep.sh ↵ ваясь создавать отчёт (благо что такие записи у меня по-
week >> /var/log/calam_rep.log
45 0 1 * * root /etc/calamaris/calam_rep.sh ↵ падаются редко). Однако все три проекта довольно актив-
month >> /var/log/calam_rep.log но развиваются и недочёты исправляются, поэтому ставь-
те свежие версии программ и пользуйтесь!
Конечно, частота обновления отчётов остаётся на ваше
усмотрение. В приведённом примере LightSquid будет под- 1. http://pm4u.narod.ru/linux_server.htm#Calamaris3.
держивать свои отчёты в актуальном состоянии, обновляя 2. Малахов П. Многоликий Apache. Размещаем несколько сай-
их через каждые 20 минут. Sarg будет создавать их один тов на одном веб-сервере. //Системный администратор, №12,
раз в день после ротации журналов, которую logrotate дела- 2005 г. – с. 63-65 (http://pm4u.narod.ru/apache.htm).
Сергей Можайский
После почти двухлетнего перерыва вышла новая версия популярного русскоязычного
LiveCD-дистрибутива Frenzy. Факт смены номера версии с 0.3 до 1.0 говорит о многом,
да и информация о релизе с описанием нововведений вас впечатлит.
П
рошли те времена, когда загру- системы и, как следствие, увеличи- пользователей. Дистрибутив со-
зочная дискета была непремен- лось количество приложений, была вы- держит все программы из standard-
ным атрибутом системного ад- пущена в августе 2004 года, после че- версии, а также дополнительные
министратора. На смену дискетам при- го развитие проекта приостановилось приложения (в том числе просмот-
шли LiveCD и загрузочные USB Flash. почти на два года. Благодаря помощи рщики CHM, PDF, DjVu-форматов,
Выбор LiveCD для системных адми- сообщества пользователей Frenzy ра- эмуляторы DosBox и QEMU, муль-
нистраторов достаточно велик, правда, бота была продолжена в апреле 2006 тимедийные проигрыватели XMMS
большинство дистрибутивов основа- года, и в начале мая в Интернете поя- и MPlayer). Размер дистрибутива –
ны на Linux (к примеру, INSERT, GRML вилась первая бета-версия Frenzy 1.0. 250 Мб.
и BackTrack). На основе же FreeBSD Такой скачок номера версии связан Frenzy lite – содержит только кон-
создано всего несколько дистрибути- с большими изменениями в структу- сольные утилиты. Размер дистри-
вов, и почти все они ориентированы ре дистрибутива. Открытое бета-тес- бутива – всего 50 Мб, что позво-
на обычного пользователя. Все, кро- тирование длилось месяц, за это вре- ляет уместить его на CD-визит-
ме одного. мя были найдены и исправлены мно- ку и носить с собой в бумажнике
Летом 2003 года я начал работу гие ошибки. (как я и поступил).
над проектом по созданию LiveCD-дис- После двух месяцев активной раз-
трибутива для системных администра- работки 5 июня вышел релиз Frenzy 1.0 Немалова жным достоинством
торов на основе ОС FreeBSD. Новый (Dreamchild). Новая версия выпускает- Frenzy является качественная руси-
дистрибутив, названный Frenzy, быс- ся в нескольких вариантах: фикация системы. В отличие от мно-
тро стал популярным в среде русско- Frenzy standard – предназначена гих LiveCD-дистрибутивов, в которых
язычных администраторов и пользо- в первую очередь для системных локализации уделено мало внимания,
вателей FreeBSD. Этому способство- администраторов. Размер дист- в Frenzy поддержка русского языка
вала поддержка русского языка, не- рибутива – 200 Мб, что позволяет присутствует изначально – проблем
большой размер, хорошая подбор- уместить его на 3-дюймовый CD. с ним ни в консоли, ни в графичес-
ка утилит. Версия 0.3, в которой поя- Frenzy extended – для системных кой оболочке не возникает. Кроме то-
вилась поддержка сжатой файловой администраторов и продвинутых го, Frenzy отлично документирована –
38
администрирование
в ее состав входит Frenzy Handbook, учетной записью су-
описывающий основы работы с дист- перпользователя, в ос-
рибутивом и специфичными для него тальные можно вой-
программами, а также русскоязычная ти, используя логин
документация по FreeBSD (традицион- root без пароля. В от-
ные Handbook и FAQ). На официаль- личие от стандартной
ном сайте проекта (http://frenzy.org.ua) FreeBSD системные
работает форум, где можно пообщать- сообщения не выводят-
ся с разработчиком и пользователями ся на первую консоль,
Frenzy. Также у проекта есть почтовая их можно просмотреть,
дискуссионная рассылка. нажав <Alt+F12>.
Рисунок 1. Загрузочное меню Frenzy
Дистрибутив можно свободно ска- Присутствует и гра-
чать (http://frenzy.org.ua/ru/releases/1.0/ фическая система X.Org 6.9.0, в качес- щих в состав Frenzy, вы можете найти
download.shtml) или приобрести в он- тве графической оболочки использу- в документации по системе или на сай-
лайн-магазинах. ется популярный оконный менеджер те проекта. Мы же рассмотрим только
fluxbox. В новой версии Frenzy fluxbox некоторые программы, представля-
Начинаем работу настроен так, что можно перемещать ющие интерес для системных адми-
З а г р у ж а е м с я с к о м п а к т- д и с к а . и масштабировать окна, используя нистраторов.
Frenzy 1.0 основана на FreeBSD 6.1- клавиатурные комбинации. Меню про- Набор программ для работы сетью
STABLE, поэтому вначале загруз- грамм можно вызвать, просто щелк- в Frenzy весьма велик. Помимо стан-
ка ничем не отличается от FreeBSD нув правой кнопкой мыши на рабочем дартных утилит ping и traceroute при-
(изменен только логотип при загруз- столе или нажав клавишу «Windows» сутствует полезная утилита mtr, соче-
ке), но сразу после загрузки ядра мы на клавиатуре (к чему многие при- тающая в себе преимущества обеих
попадаем в меню выбора параметров выкли). программ. Статистику трафика, прохо-
загрузки (рис. 1). Меню программ в fluxbox стоит от- дящего через компьютер, можно пос-
Мы можем выбрать язык систе- метить особо. В нем содержатся прак- мотреть с помощью trafshow. Хочется
мы, указать размер диска в оператив- тически все утилиты, входящие в со- отметить утилиту darkstat, выводящую
ной памяти. став Frenzy (консольные утилиты за- статистику о проходящем трафике че-
В Frenzy 1.0 появилось два новых пускаются в окне терминала rxvt). Кро- рез веб-интерфейс. Для работы с бес-
режима загрузки. Режим toram поз- ме того, они рассортированы по темам, проводными сетями присутствует на-
воляет загружать Frenzy полностью что позволяет легко найти нужную про- бор утилит bsd-airtools и популярная
в оперативную память, позволяя из- грамму (рис. 2). утилита kismet.
влечь компакт-диск из привода. В ре- Перечислять все программы, вхо- Для подключения к другим компью-
жиме fromhdd система будет загру- дящие в состав дистрибутива, можно терам в сети можно воспользовать-
жаться со сжатого образа на жестком долго – в standard-версию входит бо- ся ssh-клиентом PuTTY, терминаль-
диске (для этого папку frenzy с компакт- лее 500 пакетов, в extended – более ным клиентом для Windows Terminal
диска необходимо скопировать в ко- 600. Полный список программ, входя- Services rdesktop или VNC-клиен-
рень любого раздела на HDD), компакт-
диск при этом также освободится.
Кроме того, теперь мы можем ука-
зать при загрузке, что делать с разде-
лами жесткого диска. В предыдущих
версиях система по умолчанию пыта-
лась монтировать разделы жесткого
диска в режиме «только чтение», дру-
гих вариантов предусмотрено не бы-
ло. Теперь мы можем вообще не об-
ращаться к жесткому диску (пара-
метр nohdd), производить поиск раз-
делов, но не монтировать их (параметр
nohdmnt) или же монтировать разделы
диска в режиме чтения и записи (пара-
метр hdrw). Frenzy поддерживает фай-
ловые системы UFS, FAT, EXT2/EXT3,
NTFS, ReiserFS (последние две – толь-
ко в режиме чтения).
После загрузки мы попадаем в кон-
сольный режим. На первой консоли ав-
томатически производится вход под Рисунок 2. Меню fluxbox
40
администрирование
эмуляторы dosbox и qemu. DosBox позволяет запускать в редактируем файл /etc/fstab и меняем в описании точки мон-
Frenzy DOS-программы, а QEMU, являющийся свободным тирования корневой файловой системы нули на единицы:
аналогом VMWare, позволяет запускать практически лю-
бую операционную систему. # Device Mountpoint Fstype Options Dump Pass#
/dev/ad0s1a / ufs rw 1 1
В целом можно сказать, что набор программ покры-
вает практически все потребности системного админис- Установка на USB Flash выполняется у тилитой
тратора. «install2flash» также просто. Утилита установки автомати-
чески разбивает флешку на два раздела – один для установ-
Настройка и установка ки Frenzy (размер зависит от типа дистрибутива, 50-250 Мб),
Кроме традиционного sysinstall, в Frenzy имеется конфигу- второй – для хранения данных (под него резервируется все
рационный центр frconf, с помощью которого вы можете на- оставшееся место).
строить систему (рис. 3). В частности, с помощью этой ути-
литы легко создать swap-файл на указанном разделе диска. Frenzy SDK
Для настройки сетевых подключений предназначена утили- Кроме ISO-образов, в сети доступен и комплект Frenzy SDK,
та netconf. С ее помощью можно настроить соединение по предназначенный для самостоятельной сборки собствен-
локальной сети, dialup-соединение, VPN-соединение (в ка- ного дистрибутива Frenzy. В его состав входят сборочные
честве VPN-клиента используется mpd) и соединение через скрипты, архивы исходных кодов FreeBSD и дерева портов,
ADSL-модем. Утилита servconf предназначена для быстро- пакаджи и исходные коды для всех программ из Frenzy.
го конфигурирования и запуска различных серверов. Она Структура сборочных скриптов заметно изменилась
позволит быстро запустить SSH-сервер, FTP-сервер, веб- по сравнению с предыдущими версиями. Появилась подде-
сервер thttpd и сервер Samba. ржка нескольких версий сборки – сейчас одна и та же струк-
Все сделанные настройки можно сохранить на диске- тура скриптов используется для сборки standard и extended
ту, жесткий диск или USB Flash с помощью утилиты frbk. версий как англоязычной, так и русскоязычной, достаточно
При следующей загрузке Frenzy настройки будут восста- лишь внести изменения в файл конфигурации. Ручное вме-
новлены автоматически. шательство в процесс сборки сведено к минимуму – нуж-
Одной из самых долгожданных новинок в Frenzy 1.0 ста- но положить собранные пакаджи в нужный каталог и под-
ла возможность установки на жесткий диск и USB Flash. править конфигурацию сборочных скриптов. Подробную
Эта возможность была добавлена по многочисленным информацию о работе с набором SDK можно найти в офи-
просьбам пользователей Frenzy, которые желали видеть циальной документации по Frenzy.
на своем жестком диске FreeBSD, настроенную точно так же.
Процесс установки весьма прост – набираете «install2hdd» Что дальше?
и следуете инструкциям инсталлятора. Правда, упроще- Естественно, развитие дистрибутива продолжается. В сле-
ние процесса установки привело к тому, что вся система дующей версии планируется в первую очередь включить но-
устанавливается на один слайс, создание отдельных раз- вую реализацию unionfs для FreeBSD от Daichi Goto, кото-
делов для /var, /usr и т. п. не предусмотрено. Для рабочей рая в настоящее время существует в виде набора патчей.
станции это приемлемо, но для сервера такую конфигура- Это позволит реализовать модульную структуру LiveCD
цию я не рекомендую. (как это уже сделано в популярном чешском дистрибути-
После установки Frenzy на жесткий диск вы получите ве SLAX), что заметно упростит процесс самостоятельной
полноценную ОС FreeBSD с набором программ. Разве что сборки и модификации дистрибутива. Также планируется
исходные коды системы (src) и коллекцию портов (ports) интегрировать tmpfs, портированную из NetBSD, которая
нужно будет установить самостоятельно. намного выигрывает в быстродействии у mfs-реализации
Правда, не обошлось без ложки дегтя. В установленной RAM-дисков в FreeBSD.
на жесткий диск Frenzy 1.0 после выключения питания наот- В недавнем обзоре на Distrowatch Frenzy был назван
рез отказывается запускаться fsck для проверки диска. Ко- лучшим LiveCD-дистрибутивом на основе FreeBSD как
нечно, его можно запустить вручную или с LiveCD, но лучше для системных администраторов, так и для начинаю-
исправить проблему сразу. Поэтому сразу после установки щих пользователей. Действительно каждый может найти
в этом дистрибутиве что-то полезное
LiveCD для сисадминов нения размеров разделов жесткого диска, и интересное. Новички могут начать
Кроме Frenzy, есть и другие LiveCD-дис- и антивирусный пакет clamav, занимая при знакомство с FreeBSD именно с это-
трибутивы, ориентированные на систем- этом всего 50 Мб. Stresslinux (http://www. го дистрибутива, не устанавливая ОС
ных администраторов. Правда, практи- stresslinux.org) предназначен специально на жесткий диск. Продвинутые поль-
чески все они основаны на том или ином для стресс-тестирования и мониторинга зователи найдут множество полезных
дистрибутиве Linux. GRML (http://grml.org) аппаратного обеспечения. И напоследок программ. Ну а системные админист-
предлагает большой набор утилит для си- вспомним о Backtrack (http://www.remote- раторы, для которых и разрабатывал-
садминов для восстановления системы, exploit.org/index.php/BackTrack), образо- ся дистрибутив, не раз воспользуют-
анализа сети и просто для работы. INSERT вавшемся в результате слияния дистрибу- ся Frenzy в своей повседневной рабо-
(http://www.inside-security.de/insert_en.html) тивов WHAX и Auditor, который предлагает те. Лично меня Frenzy выручала неод-
содержит такие полезные утилиты, как ути- большой набор утилит для анализа безо- нократно, надеюсь, что и вам она то-
лита gparted для редактирования и изме- пасности компьютеров и сетей. же пригодится.
Дмитрий Волков
На основе компьютера с ОС Linux и StressLinux можно создать инструмент
для автоматического тестирования железа всех узлов локальной сети.
Б
ывают дефек ты оборудова- храняться на сервере. Что мы и попы- граммы разработаны для создания вы-
ния, которые могут проявить- таемся реализовать. сокой нагрузки процессоров, поэто-
ся только при высоких нагруз- На сегодняшний день существует му неохлаждаемые, разогнанные или
ках, в этом случае поможет дистри- единственный специализированный по другой причине «непрочные» (weak)
бутив Linux, который может использо- для тестирования LiveCD-дистрибу- системы при прохождении тестирова-
вать ресурсы ваших комплектующих тив – StressLinux. Он работает толь- ния могут вызвать потерю данных (пов-
на 100%. В первую очередь тестиро- ко в режиме консоли и занимает по- реждение файловой системы), также
вание будет полезно для компьюте- рядка 50 Мб, но этого будет достаточ- есть вероятность нанести поврежде-
ров, на которых возлагаются задачи, но чтобы провести полноценное тести- ния компонентам микросхем».
требующие большой загрузки процес- рование. StressLinux содержит основ- Поэтому если ваше железо еще
сора. Такие компьютеры должны рабо- ные утилиты для тестирования комп- на гарантии, можете проводить тесты,
тать 24 часа в сутки и не давать сбоев. лектующих компьютера при высоких а если нет, то использовать тестирова-
Поэтому их как следует нужно прове- нагрузках, утилиты для считывания ние вы будете на свой страх и риск.
рить на прочность. информации с датчиков процессор-
В настоящее время существует ной платы, а также обладает высокой Конфигурация тестового
множество утилит для тестирования гибкостью в настройках сценариев для комплекса
железа как из Windows, так из Linux. тестирования. Вы сами сможете зада- Комплекс для тестирования будет со-
Но необязательно, что на компьюте- вать сценарии тестирования, добавляя стоять из сервера и одной рабочей
рах находятся две ОС: Linux и Windows. или убирая тесты. В качестве оболоч- станции, соединенных в одну сеть.
Поэтому для тестирования удобно ки в StressLinux используется busybox. Требования к рабочей станции –
использовать дистрибутивы LiveCD. Она содержит набор общих UNIX-ути- наличие сетевой карты с поддержкой
Но такой путь ведет к потере време- лит для работы в Linux, позаимствован- PXE. Список поддерживаемых карт
ни, если у вас много хостов, требующих ных из GNU пакетов fileutils, shellutils можно узнать здесь: (http://www.bootix.
тестирования. Каждый компьютер не- и т. д. С помощью busybox можно со- com/adapters/adapters_en.html). В ка-
обходимо загружать с CD/DVD и про- здать ОС Linux, умещающуюся на од- честве рабочей станции я буду ис-
гонять тесты вручную, при этом другие ну дискету. Подробную информацию пользовать VMWare, так как это удоб-
узлы сети будут простаивать и ждать о проекте вы можете найти на сайте но для создания скриншотов в момен-
своей очереди. Для решения пробле- http://www.busybox.net. ты загрузки системы. Тесты загру-
мы можно использовать тестирование жать в VMWare бесполезно, потому
с загрузкой тестов через сеть по ваше- Как насчет гарантии? что при тестировании будет использо-
му собственному сценарию, при этом Разработчики тестов, входящих в со- ваться только та часть ресурсов, кото-
все результаты тестирования будут со- став StressLinux, сообщают: «Эти про- рая выделена под виртуальную систе-
42
администрирование
му. Поэтому тестирование надо проводить на реальной ма- default – имя сценария для загрузки по умолчанию;
шине. А вот настройки загрузки через сеть StressLinux под prompt – может принимать значения 1 или 0. Если значе-
VMWare проводить очень удобно, не придется бегать от сер- ние 1, то перед загрузкой будет выведена строка «boot:
вера к клиенту и проверять, что же там опять не работает. <Имя загружаемого сценария>». Если же значение 0,
Со стороны сервера потребуется: то эта строка выводится только при: нажатии <Alt> или
дистрибутив StressLinux; <Shift>, или при включенном CapsLock, или Scroll lock;
дистрибутив Linux, функционирующий на сервере (я ис- timeout – содержит количество секунд до начала авто-
пользую ASP Linux 9.0); матической загрузки;
серверная часть пакетов: pxe, dhcp, tftp, nfs. display – параметр, указывающий на файл-приветствие,
будем использовать по умолчанию loader.msg:
Как будет работать тестовый комплекс
Перезапускаем клиентскую машину и в BIOS выбираем Welcome to StressLinux Boot Server!
загрузку по сети. После перезагрузки сетевая карта будет 0fTo start the stresslinux distribution enter press ↵
выполнять поиск DHCP-сервера. Сервер принимает за- <return>.07
прос и присваивает клиенту IP-адрес, pxe предлагает вы- Available boot options:
брать загрузку:
stress - Boot Stresslinux via PXE with initrd
Local boot – с жесткого диска;
PXELinux – появится меню для выбора загрузки одно- 09F1:0f Stresslinux
го из ядер StressLinux, или загрузки отдельного теста,
например теста памяти – memtest. F1 – здесь можно создать файл-help и указать все воз-
можные параметры ядер;
При выборе ядра происходит передача его по протоко- label – это имя сценария загрузки, а сценарий может со-
лу tftp с последующей загрузкой корневой файловой сис- держать в себе 3 параметра:
темы nfs, находящейся на сервере. Выполняется тестиро- kernel – путь к ядру Linux или к отдельной загружа-
вание в автоматическом режиме, а результаты записыва- емой программе, например memtest;
ются в текстовые файлы на сервере. append – список параметров, передаваемых ядру;
ippappend – параметр, используемый PXELinux
Конфигурация сервера для указания настроек сети. Он нам не нужен,
Я использую дистрибутив ASP Linux 9.0 на rpm-пакетах. так как предполагаем, что загрузка для всех уз-
Вам нужно использовать пакеты, входящие в состав ва- лов сети общая. Параметры сети для каждого кли-
шего Linux. ента указывает dhcp сервер. Описание всех воз-
Для начала скачиваем последнюю версию дистрибутива можных конфигураций файла default можно узнать
StressLinux 0.3.1 с http://www.stresslinux.org/release/stresslinux- (http://syslinux.zytor.com/faq.php).
0.3.1.pxe.tgz с поддержкой загрузки через PXE. Распаковы-
ваем каталог с корневой системой StressLinux (_stresslinux) Далее будем настраивать dhcp-сервер. Для этого не-
в директорию на сервере /tftpboot/X86PC/_stresslinux. обходимо установить его из вашего дистрибутива Linux,
Скачиваем http://www.stresslinux.org/release/stresslinux- в ASP Linux это rpm – Uvh dhcp-3.0pl1-23.i386.rpm, а ес-
0.3.1.pxe_sample_configs.tgz архив с примерами конфигура- ли же такого под рукой не имеется, тогда скачиваем его
ционных файлов pxe, dhcp, tftp, nfs. Распаковываем в ката- с http://ftp.isc.org/isc/dhcp. На момент написания статьи пос-
лог /tftpboot/X86PC/pxelinux содержимое из папки pxes. Этот ледней версией была – 3.0.4. Создаем конфигурационный
каталог будет использоваться для создания сценариев за- файл /etc/dhcpd.conf, указав MAC-адрес одного из клиен-
грузки рабочих станций через pxe. Каждой рабочей станции тов. Я буду указывать MAC-адрес VMWare. После измене-
можно присвоить свой сценарий загрузки на основе её IP-ад- ний файл должен выглядеть так:
реса, за подробной информацией можно обратиться на сайт
http://syslinux.zytor.com/pxe.php. Применим одинаковый сце- Subnet 192.168.12.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
нарий загрузки для всех клиентов – default. В файл внесем default-lease-time 21600;
изменения, указав в nfsroot адрес вашего сервера и располо- max-lease-time 43200;
host some_host{
жение корневого каталога _stresslinux. Сервер имеет IP-ад- # Указываю MAC-адрес VMWare
рес: 192.168.12.191. После изменений файл /tftpboot/X86PC/ hardware ethernet 00:0C::29:50:84:D7;
fixed-adress 192.168.12.242;
pxelinux/pxelinux.cfg/default будет выглядеть так: option vendor-class-identifier "PXEClient"
}
}
default stress
prompt 1
timeout 600 Надо уделить внимание опции ‘option vendor-class-
display loader.msg identifier “PXEClient”’. Она требуется для того, чтобы dhcp
F1 loader.msg
передал управление серверу pxe в момент присвоения
label stress # Stresslinux IP-адреса клиенту, а pxe в свою очередь смог отобразить
kernel ../_stresslinux/boot/vmlinuz
append rw video=vesafb:640x480-32@75,nomtrr,ywrap ↵ меню для выбора загрузки (это меню появляется путем за-
root=/dev/nfs nfsroot=192.168.12.191:/tftpboot/ ↵ пуска бинарного файла pxelinux.0 на сетевой карте). Служ-
X86PC/_stresslinuxip=dhcp hda=scsi hdb=scsi ↵
hdc=scsi hdd=scsi бы dhcp и tftp можно запустить на разных узлах сети, тогда
/tftpboot/X86PC/_stresslinux 192.168.12.0/255.255.255.0 ↵
(rw,insecure,sync,no_root_squash)
Рисунок 1. Пример конфигурационного файла pxe.conf Теперь запускаем программы dhcpd, pxe, tftp, nfs. Пере-
загружаем клиента и выбираем загрузку по сети, в резуль-
тате появится приглашение (см. рис. 2).
Выбираем PXELinux (см. рис. 3). Отображается меню
StressLinux для выбора загрузочного ядра в нашем случае –
это будет одно-единственное 2.6.16. Но это пока, в дальней-
шем можно будет расширить список ядер и отдельных про-
грамм для тестирования.
Рисунок 2. Приглашение для выбора варианта загрузки Выбираем ядро и загружаемся. Если оно загрузилось ус-
пешно, тогда выводится приглашение (см. рис. 4) для вво-
необходимо добавить в конфигурационный файл параметр да логина. Вводим root без пароля.
next-server, указывающий на имя или IP-адрес tftp-серве- Друг за другом появятся 2 меню для выбора раскладки
ра. Мы же будем использовать один хост, поэтому этот па- клавиатуры и выбора процессорной платы соответствен-
раметр не указываем. но (см. рис. 5, 6).
Перейдем к настройке предзагрузочной среды запуска – Если на вашей процессорной плате есть сенсоры темпе-
pxe. Для её установки в ASP Linux выполняю rpm –Uvh pxe- ратуры и напряжений, то тогда во время тестирования мож-
0.1-36.i386.rpm, если в вашем дистрибутиве такого пакета но будет наблюдать за состоянием компьютера. Вывод дан-
нет, то скачиваем с сайта http://www.kano.org.uk/projects/pxe. ных реализован программой sensors из пакета lm_sensors.
Изменяем конфигурационный файл /etc/pxe.conf, устано- Список поддерживаемых процессорных плат можно узнать
вив 2 значения: на http://secure.netroedge.com/~lm78/supported.html. Для по-
interface – номер интерфейса на сервере, по которому иска требуемых модулей можно воспользоваться програм-
соединены сервер с клиентом; мой sensors-detect.
default_address – IP-адрес сервера. В этой версии StressLinux используется ядро 2.6.16. Ес-
ли вас устраивает это ядро, тогда следующий пункт мож-
Остальные параметры оставляем без изменений. Вид но пропустить, если же нет, тогда перейдем к настройке
файла после изменений смотрите на рис. 1. собственного ядра.
Устанавливаем tftp-server, взяв его из дистрибутива
(tftp-server-0.33-1asp.i386.rpm) или с http://www.kernel.org/ Конфигурация нового ядра
pub/software/network/tftp. Tftp-сервер будет использовать- Ядро, входящее в дистрибутив StressLinux, не име-
ся для передачи ядра и образа ядра клиентам. Запуск ет поддержки некоторых SCSI-контроллеров. Поэто-
его можно реализовать из-под xinetd, для этого в файле му можно использовать собственное ядро с подде-
/etc/xinet.d/tftp исправить значение параметра disable с «yes» ржкой всего необходимого железа. При нго конфигу-
на «no» и убедиться, что в качестве рабочего каталога уста- рировании необходимо не забыть установить параметр
новлен /tftpboot. А запуск из консоли можно выполнить: CONFIG_ROOT_NFS, для того чтобы использовать корневую
файловую систему nfs. Также можно добавить последнюю
# in.tftpd –v –l –s /tftpboot версию пакета lm_sensors. Для загрузки нового ядра копиру-
ем его в каталог /tftpboot/X86PC/_stresslinux/boot/ и назовем
Теперь подходим к финальному шагу по настройке за- vmlinuz-<номер версии ядра>. Все модули этого ядра копи-
грузки StressLinux – конфигурированию nfs, который будет руем в /tftpboot/X86PC/_stresslinux/lib/<номер версии ядра>.
44
администрирование
Добавляем следующие строки в файл /tftpboot/X86PC/
pxelinux/pxelinux.cfg/default:
Сценарии тестирования
Для создания сценария достаточно создать скрипт на bash
или другом языке программирования и указать его выпол-
нение в файле /tftpboot/X86PC/_stresslinux/etc/bash.bashrc.
Создадим сценарий – test.sh и разместим его в /tftpboot/
X86PC/_stresslinux/etc/init.d/. Предполагаем, что компьютеров
для тестирования будет много, поэтому результаты прохож- Рисунок 6. Программа для ручного выбора процессорной платы
дения тестов для каждого узла будем сохранять в отдельную
папку, в качестве имени папки будем использовать IP-адрес VAL=`/sbin/lsmod | grep i2c-isa`
if [
этого узла. Реализовать это можно следующим образом: x$VAL
==
#!/bin/bash x
]
// Получаем IP-адрес узла then
IP=`ifconfig|grep inet|perl -nle ↵ echo
@ar=split(/\s+/,$_);@ar2=split(/\:/,\\$ar[2]); ↵ trying insert module i2c-isa
print \\$ar2[1]`
modprobe i2c-isa
// Создаем каталог, если такого еще не существует fi
if[ ! -d /home/result/$IP ]
then Перед тестированием собираем информацию об узле
echo
Making results dir /home/result/$IP и сохраняем ее на сервере:
/bin/mkdir -p result/$IP echo
fi Collecting information
// все результаты тестирования будем записывать сюда
cd /home/result/$IP # собираем информацию о PCI-устройствах
/sbin/lspci | tee lspci
Далее загружаем модули для вывода информации, мо- sleep5
дули для вашей процессорной платы можно определить # собираем информацию о процессорах
/usr/bin/x86info | tee x86info
с помощью скрипта detect-sensors. sleep5
TM=20 # Таймер
echo
Starting 1st test
| tee stress1
echo
Spanning 10 workers spinning on sqrt()
| tee -a stress1
Рисунок 7. Список программ для тестирования с кратким echo
описанием waiting for $TM seconds
| tee -a stress1
/usr/bin/stress -v -c 10 -t $TM | tee -a stress1 &
46
администрирование
Сергей Яремчук
Объемы информации постоянно растут, повышаются требования к её безопасности,
доступности, актуальности. Возникают вопросы как переносить разрозненные данные
с различных носителей в централизованные хранилища? Как построить системы хранения
информации даже в небольших организациях?
48
администрирование
С
егодня на рынке существует
достаточное количество пред-
ложений систем хранения дан-
ных, отличающихся возможностями,
архитектурой и ценой. Решения на ба-
зе Windows Storage Server или Cisco
Storage Networking требуют опреде-
ленной подготовки администраторов,
да и не всегда могут подойти по цене.
Можно попытаться решить проблему
при помощи любой из свободных опе-
рационных систем, но придётся затра-
тить много времени на развертывание
и поддержку. Есть ещё вариант – ис-
пользовать специальную разработку
FreeNAS (http://www.freenas.org).
Возможности FreeNAS
Разработка представляет собой Open
Source NAS-сервер, построенный
на базе FreeBSD 6 и распространяе-
мый по лицензии BSD. Отсюда и его
назначение – обеспечивать неболь-
шие организации и отделы надеж- Рисунок 1. Вся настройка происходит посредством удобного веб-интерфейса
ным устройством хранения информа-
ции по минимальной стоимости. Раз-
работкой FreeNAS занимается в сво-
бодное время Оливер Кохард (Olivier
Cochard). Судя по релизам, делает он
это весьма активно, так как за 5 ме-
сяцев 2006 года уже было 11 предре-
лизов.
Текущая на момент написания ста-
тьи версия 0.66 обеспечивает подде-
ржку:
сетевых файловых протоколов
CIFS, FTP, NFS, SSH, RSYNC и AFP
(для компьютеров Apple);
жестких дисков ATA/SATA, SCSI,
USB и Firewire;
файловые системы UFS, FAT32,
EXT2/EXT3, NTFS (только чтение);
программного RAID 0, 1 и 5;
аппаратных RAID и сетевых карт,
поддерживаемые FreeBSD 6 (вклю-
чая беспроводные);
аутентификации локальной и до-
мена Microsoft (сейчас полным
ходом идет работа по под де -
Рисунок 2. В пункте «System: General setup» настраиваются основные параметры
ржке LDAP, планируется еще NIS сервера
и Radius).
Так как под него могут форматировать- разных версий был скачан более 85
З а г ру з к а с и с т е м ы в о з м ож н а ся диски полностью, нельзя использо- тысяч раз.
не только с жесткого диска, но и с USB- вать загрузочный диск как часть RAID.
устройства. Например, можно исполь- На сайте доступен образ, оптимизиро- Установка FreeNAS
зовать flash-карту, т.к. размер установ- ванный под VMWare. Для настройки Д ля ус тановки и ис поль зования
ленной системы не превышает 17 Мб), уже установленной системы исполь- FreeNAS понадобится компьютер,
такой вариант может быть полезен при зуется веб-интерфейс. За время раз- как минимум, с 96 Мб оперативной па-
использовании программного RAID. вития с сайта SourceForge.net FreeNAS мяти, сетевой картой и одним или бо-
50
администрирование
ко интерфейсов можно использовать
только для доступа к серверу FreeNAS
из разных сетей.
После перезагрузки в пункте 2 уста-
навливаем для LAN IP-адрес (как при-
мер, 192.168.0.1) и сетевую маску (как
обычно, 255.255.255.0 или в CIDR но-
тации – 24). Дополнительные интер-
фейсы настраиваются исключитель-
но при помощи веб-браузера.
Воспользовавшись пунктом 6, мож-
но попробовать пропинговать любой
узел в сети. Если все нормально, мо-
нитор, клавиатуру и прочие лишние ус-
тройства можно отключить и в даль-
нейшем работать удаленно, через веб-
интерфейс.
Веб-интерфейс FreeNAS
В строке веб-браузера набираем
http://192.168.0.1. Для регистрации ис-
пользуем пользователя admin и пароль Рисунок 3. Окно добавления нового диска
freenas (его можно сбросить при помо-
щи 3-го пункта).
Как видите из рис. 1, через веб-ин-
терфейс доступно семь разделов на-
строек. Чтобы легче было ориентиро-
ваться, все основные параметры све-
дены в таблицу.
Настройка NAS
в рабочей группе
Оливер Кохард, по его словам, бу-
дет активно заниматься документа-
цией проекта уже после релиза 1.0,
сейчас на сайте доступен документ
«FreeNAS Setup and User guide», ко-
торый дает довольно общие поня-
тия процесса (хотя почитать его сле-
дует). Поэтому в завершение статьи
небольшой практический пример. На-
строим FreeNAS с одним диском в не-
большой рабочей группе, использую-
щей в качестве клиентов компьютеры Рисунок 4. Создание новой точки монтирования
с MS Windows.
После регистрации в системе не- ющий добавить новый диск. Выбира- Чтобы зайти на сервер через
обходимо первым делом установить ем в выпадающем списке «Disk» диск, веб-консоль, используем уже прото-
имя сервера, протокол работы сменить с которым будем работать (рис. 3), при кол HTTPS, т.е. адрес выглядит так:
на защищенный и поставить новый па- необходимости устанавливаем для не- https://192.168.0.1/, после чего прини-
роль администратора, а также выбрать го режим работы UDMA, параметры маем сертификат сервера.
свой часовой пояс. Заходим в «System: перехода в standby, Advanced Power Диски добавлены, теперь оче-
General setup» и заполняем соответс- Management и acoustic. После чего на- редь точек монтирования. Выбираем
твующие поля (рис. 2). Для того чтобы жимаем «Add». Новый диск появит- в «Disks: Mount Point» и нажимаем «+».
изменения вступили в силу, потребует- ся в «Disks: Management», остальные В выпадающем меню «Disk» (рис. 4)
ся перезагрузка системы, но это мож- диски добавляются аналогично. Пос- выбираем жесткий диск, в «Partition» –
но сделать и после выполнения следу- ле того как в систему будут добавлены номер раздела в слайсе (первый раз-
ющей операции. все диски, нажимаем «Аpply changes», дел сейчас занят под систему, поэтому
В «Disks: Management» нажимаем для подтверждения изменений и те- выбираем 2), в «File System» устанав-
на «+» и попадаем в пункт, позволя- перь перезагружаемся. ливаем файловую систему UFS и за-
52
администрирование
Алексей Коршунов
Не секрет, что своевременный доступ к информации, в том числе хранящейся внутри
корпоративной сети компании, может оказаться решающим фактором успешной работы
сотрудников. Речь о виртуальных частных сетях (VPN). Иногда предоставить доступ
оказывается не так-то просто.
Доступ всегда и везде сеть. Разумеется, мобильные пользо- мер, к почтовому серверу (во многих
Обеспечивая удалённый доступ во ватели обязаны (как правило, на уров- компаниях использование внешних со-
внутреннюю сеть компании приходит- не корпоративного стандарта) не ста- единений по POP3, IMAP и SMTP-про-
ся учитывать множество факторов. На- вить опцию хранения пароля на учёт- токолам запрещено). Проблема может
пример, ситуации, когда установить со- ную запись доступа VPN, но... вы много заключаться в том, что почтовый сер-
единение между клиентом и сервером таких пользователей видели? Мне пока вер находится, например, вне локаль-
не возможно. Причина может быть про- не довелось ни одного. Поэтому пред- ной сети компании. Существует ком-
ста – системные администраторы гос- почтительно ввести дополнительные плексное решение всех обозначен-
тевой сети, из которой сотрудник ва- средства безопасности доступа к внут- ных проблем.
шей фирмы пытается произвести под- ренней сети компании. Другими слова-
ключение, закрыли возможность всех ми, использовать двухфакторную ав- Как мы будем
исходящих соединений, а доступ к веб- торизацию пользователей – програм- решать задачу
ресурсам осуществляется через «про- мным и аппаратным способом. Речь Воспользуемся следующими програм-
зрачный» прокси-сервер. В такой си- идёт о ключах eToken, которые могут мными и аппаратными средствами:
туации установить VPN-соединение, использоваться для безопасного хра- OpenVPN, работающим под Linux,
используя стандартные решения типа нения сертификатов для шифрования в качестве поставщика защищён-
pptp и IPsec, не возможно. и дешифрования данных или автори- ного частного канала связи;
Второй большой неприятностью зации в различных системах. программами htc и hts для орга-
для любого мобильного пользовате- И последнее (по счёту, но не по важ- низации http-тунеля через прокси-
ля может оказаться банальная потеря ности), что хотелось бы упомянуть – сервера;
(или кража) ноутбука. Излишне объяс- возможность получения дост упа eToken PRO от компании Alladin.
нять, чем обернётся для компании до- не только к файлам на серверах ком-
ступ чужого человека в корпоративную пании, но и к другим ресурсам. Напри- Вы можете использовать аналогич-
54
администрирование
Первоначально создадим все необходимые сертифи- cert и key. Если будут выставлены пересекающиеся опции,
каты и ключи для сервера. система откажется запускаться.
Если вы решили использовать обычный VPN, укажи-
# cd /etc/openvpn/easy-rsa те адресное пространство, в котором он будет работать
# source ./vars
# ./clean-all и из которого будет назначать адреса клиентам.
# ./build-ca
# ./build-key-pkcs12 --server server server 192.168.4.0 255.255.255.0
# ./build-dh
# ./build-key-pkcs12 –-pkcs12 client1
Если вы собираетесь использовать подключение типа
Последняя команда создаёт PKCS12-ключи для поль- «мост», то потребуется другая опция (параметр server за-
зователя. Client1 – это имя пользователя. Команда долж- комментируйте, так как сервер может единовременно ра-
на быть выполнена для каждого предполагаемого клиен- ботать только в одном качестве):
та. Обратите внимание, что при создании ключа вы може-
те защитить его дополнительно паролем. server-bridge 192.168.1.73 255.255.255.0 192.168.1.61 ↵
192.168.1.63
# route add -net 192.168.4.0/24 gw 192.168.1.73 Если устройство не появилось, то внимательно просмот-
рите журнал и файл конфигурации.
где первый адрес – это наша виртуальная подсеть, а вто- Не забудьте добавить сервис OpenVPN в список авто-
рой – адрес внутреннего интерфейса сервера OpenVPN. матически запускаемых, а также сохранить новые прави-
Если не сделать вышеописанных действий, пакеты из ло- ла iptables в вашем списке.
кальной сети не смогут найти «дорогу» до VPN-клиента.
Установка и настройка клиента OpenVPN
Обеспечение доступа к внешнему ресурсу Теперь, когда первая половина настройки нашей системы
для VPN-клиентов завершена, самое время приступить к установке клиент-
Для того чтобы позволить VPN-клиентам попадать на наш ской части программы (клиенты Linux и Windows-систем).
почтовый сервер, находящийся во внешнем мире отно-
сительно нашей рабочей сети, воспользуемся услугами Устанавливаем Linux VPN-клиент
iptables. Клиент на Linux-системе может потребоваться вот в каком
Создавая правило, я не стал указывать допустимые пор- случае. Допустим, у вас есть удалённые интранет-серве-
ты соединения по той простой причине, что на внешнем сер- ры, ресурсы которых вы хотели бы использовать в своей
вере помимо почтового сервиса находятся и другие серви- локальной сети. Нет ничего проще! Вы просто подключае-
сы, работающие на нестандартных портах, которые часто те эти системы к VPN и пользуйтесь. Особенно это может
закрыты в гостевых системах для соединения. Вы можете оказаться полезным, если сервер является локальным для
указать, какие порты будут доступны для соединений кли- какой-нибудь удалённой сети.
ентам VPN. Как и в случае с настройкой серверной системы, убеди-
Если правила на вашем firewall настроены по принци- тесь в наличии необходимых модулей в ядре.
пу «всё запретить, нужное разрешить», то не забудьте до- В Linux клиентская часть от серверной отличается толь-
бавить разрешения на пересылку пакетов с интерфей- ко конфигурационным файлом. Этот файл значительно ко-
са tun0. роче и снабжён подробными комментариями.
Первые же параметры указывают сервису OpenVPN,
Запускаем сервер что в системе он является клиентом. Какое сетевое устройс-
Пришло время запустить OpenVPN-сервер и посмот- тво и протокол используются, а также, какой IP-адрес у сер-
реть, что будет в журнальном файле. Обратите внимание: вера и какой порт используется сервисом OpenVPN.
по умолчанию скрипт /etc/init.d/openvpn настроен на рабо-
ту с конфигурационным файлом /etc/openvpn/openvpn.conf, client
dev tun
а вовсе не server.conf, который идёт в примерах. Итак, за- proto tcp
пускаем наш сервер: remote openvpn.domain.ru 443
Sat Jun 17 22:54:42 2006 us=295361 OpenVPN 2.0.6 i686-pc-linux-gnu [SSL] [LZO] [EPOLL]
built on Jun 15 2006
Sat Jun 17 22:54:42 2006 us=569088 Diffie-Hellman initialized with 1024 bit key
и укажем их в конфигурационном файле
Sat Jun 17 22:54:42 2006 us=798824 TLS-Auth MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0
EL:0 ]
Sat Jun 17 22:54:42 2006 us=799346 TUN/TAP device tun0 opened
ca /etc/openvpn/easy-rsa/keys/ca.crt
56
администрирование
cert /etc/openvpn/easy-rsa/keys/client1.crt просмотр журнал соединения (вызов из контекстного
key /etc/openvpn/easy-rsa/keys/client1.key
меню);
На этом настройка клиентской системы завершена, и вы изменение настроек конфигурационного файла (вызов
можете её использовать. Запускать можно, просто пере- из контекстного меню);
именовав файл из client.conf в openvpn.conf или же коман- использование OpenVPN в качестве системного сер-
дной сторокой: виса;
окно ввода пароля на цифровой сертификат для аутен-
# openvpn /etc/openvpn/client.conf тификации на сервере;
дополнительная защита программы на операцию со-
Первый раз я рекомендовал бы запустить из коман- единения (свой собственный пароль);
дной строки. Так как протокол будет выводиться непос- изменение пароля на защищённый ключ (в том числе
редственно на экран, это поможет убедиться, что всё PKCS # 12);
в порядке. настройка используемого прокси-сервера;
Если всё прошло нормально, то в окончание вывода бу- использование настроек прокси-сервера из опций
дет приблизительно следующим: Internet Explorer;
выполнение скрипта (bat) перед и/или после соедине-
Sun Jun 18 20:32:02 2006 TUN/TAP device tun0 opened
Sun Jun 18 20:32:02 2006 /sbin/ifconfig tun0 192.168.4.30
ния с сервером OpenVPN;
pointopoint 192.168.4.29 mtu 1500 индикация статуса соединения в системном трее.
Sun Jun 18 20:32:02 2006 /sbin/route add -net 192.168.1.0
netmask 255.255.255.0 gw 192.168.4.29
Sun Jun 18 20:32:02 2006 /sbin/route add -net Х.Х.Х.Х netmask Помните, что в версиях Windows младше 2000/XP
255.255.255.255 gw 192.168.4.29 OpenVPN-клиент работать не будет. Но думаю, в наше время
Sun Jun 18 20:32:02 2006 /sbin/route add -net 192.168.4.0
netmask 255.255.255.0 gw 192.168.4.29
такие версии операционных систем встречаются редко.
Sun Jun 18 20:32:02 2006 GID set to nobody После установки клиента в меню программ появляется
Sun Jun 18 20:32:02 2006 UID set to nobody пункт OpenVPN с богатым выбором:
Sun Jun 18 20:32:02 2006 Initialization Sequence Completed
ссылка на папку с конфигурационными файлами;
Не забудьте добавить сервис в список автоматически на папку с примерами;
запускаемых. программа формирования статического ключа;
программа создания сертификата и формирования за-
Устанавливаем Windows OpenVPN-клиент проса на его подпись;
OpenVPN в Windows-системе обладает графическим ин- программа-клиент OpenVPN;
терфейсом (GUI), что значительно упрощает работу с ним ссылки на различную документацию.
для пользователей. По адресу [2] всегда можно найти све-
жую версию программы. Рекомендую хотя бы первый раз Конфигурационный файл, как и все предыдущие, снаб-
скачать полный инсталяционный пакет (на данный момент жен комментариями и ничем не отличается от файла для
это openvpn-2.0.7-gui-1.0.3-install.exe), так как в нём содер- клиента Linux-системы. Разница только в расширении фай-
жатся драйвера для TUN/TAP-интерфейсов. В последс- ла. Если в Linux оно было «conf», то в Windows – opvpn. По-
твии можно скачивать обновления только самой програм- этому описывать настройки смысла не имеет, можно сме-
мы. (Application only по ссылке.) ло заимствовать их из предыдущего примера.
Среди достоинств и удобств клиента можно выделить: Остановимся только на описании ключей и сертифика-
отображение иконки программы в системном трее; тов. Как вы помните, мы решили использовать двухфактор-
свертывание окна журнала соединения сразу после ус- ную аутентификацию мобильных пользователей. Для этого
тановления сессии; скопируем на клиентскую систему с серверной только два
58
администрирование
C:\httptunnel\htc.exe -F 443 -P 192.168.1.1:3128 X.X.X.X:80 (может быть, потому что не силён в написании скриптов
для Windows). Если вам способ известен – тем лучше.
где: Как вы заметили, для установления туннеля нам потре-
-F 443 – указывает порт, являющийся итоговым полу- бовалось знать IP-адрес и порт, на которых работает прокси-
чателем; сервер гостевой системы. Эта информация, конечно, не на-
-P 192.168.1.1:3128 – IP-адрес и порт прокси-сервера писана крупным шрифтом при входе в здание, но тем не ме-
гостевой системы; нее (обычно) легко узнаётся у системного администратора.
X.X.X.X:80 – собственно адрес серверной части Случаев, когда сисадмин отказывался сообщать парамет-
httptunnel. ры прокси, мне (возможно, пока) не известны.
Теперь наша система полностью настроена и готова
Выбор места создания и имени файла для скрип- работать в практически любых условиях. Этакий макси-
та не случаен. Как было уже сказано выше, OpenVPN мально защищённый «вседорожник» на просторах Ин-
для Windows умеет выполнять bat-файлы до соедине- тернета!
ния, сразу после соединения и после завершения сессии.
Для этого достаточно выполнить всего два условия. Со- Насколько мобильным может быть
здать bat-файл в директории конфигурационных файлов OpenVPN
OpenVPN и назвать файл по следующей схеме: Система OpenVPN позволяет использовать удалённую ло-
Назвать файл xxx_pre.bat для выполнения скрипта не- кальную сеть практически в любых условиях. Но помимо
посредственно перед соединением. компьютеров (в том числе и ноутбуков), как вам известно,
Назвать xxx_up.bat для выполнения сразу после уста- существуют ещё более «мобильные» устройства. Я гово-
новления соединения. рю о коммуникаторах и наладонниках (КПК). В большинс-
Назвать ххх_down.bat для завершающего сессию скрип- тве из них (например, в устройствах на базе Windows Mobile
та. или Symbian) есть либо встроенное средство установле-
ния VPN-соединения, либо можно установить программное
Нас интересует первый тип скрипта. К слову сказать, обеспечение стороннего производителя.
выполнив команду из нашего bat-файла, система не за- Однако из-за использования в системе OpenVPN
кроет окно, и это придётся сделать вручную. Это не оста- TUN/TAP простые средства соединения не подойдут. И най-
новит наш туннель, но избавит от лишнего открытого ок- ти их для устройств данного класса, увы, пока не возмож-
на на рабочем столе. но. Изыскания в Интернете дали только информацию о ве-
Предполагаю, есть средство, позволяющее избежать дущихся разработках реализации возможности использо-
«вечно открытого» окна, но с ходу я его не обнаружил вания OpenVPN. (Сейчас ссылка на информацию об этом
есть уже и на главной странице проекта. [5])
Правда, есть одно исключение. Если вы обладатель КПК
Sharp Zaurus и давно собирались установить на него Linux,
то вполне сможете использовать ваш VPN. Драйвера и не-
обходимый софт для этого можно найти на просторах Ин-
тернета. Он используется многими людьми. Необходимые
файлы можно взять, например здесь [6].
Заключительное слово
Устанавливая и настраивая клиент OpenVPN, помните,
что средства встроенной защиты уже самой Windows-
программы никто не отменял и ввод ещё одного пароля
не будет лишним, если того требует строгая политика ин-
формационной безопасности вашей компании. Использо-
вание же сертификатов без eToken также нам доступно.
Например, на домашних компьютерах аппаратные клю-
чи использовать совершенно не обязательно. А вот мо-
бильным пользователям ПК eToken явно не будет лиш-
ним. Особенно если вспомнить, что этот же ключ мож-
но использовать для авторизации в самой Windows-сис-
теме (и не только).
1. http://openvpn.net
2. http://openvpn.se/files/install_packages
3. http://www.alladin.ru/support/download/category177
4. http://userpages.umbc.edu/~tmoses1/hypertunnelNT.zip
5. http://www.ziggurat29.com/OVPNPPCAlpha/OVPNPPCAlpha.htm
Рисунок 4. Удача и поражение 6. http://users.skynet.be/isa-et-pep/pep/zaurus/feed
Установка и настройка
Systems Management Server 2003
Дмитрий Щербаков
Системному администратору приходится устанавливать и обновлять программное обеспечение,
проводить инвентаризацию. Эту рутинную работу лучше доверить System Management Server 2003.
60
администрирование
С
помощью Systems Management
Server (SMS) вы сможете цент-
рализованно развертывать про-
граммное обеспечение, своевремен-
но обновлять прикладные програм-
мы и операционные системы семейс-
тва Windows, а также собирать инфор-
мацию об аппаратном и программном
обеспечении компьютеров сети, уда-
ленно управлять ПК.
Средствами SMS 2003 можно со-
ставлять разнообразные отчеты об
имеющемся парке вычислительной
техники, причем выборка производит-
ся из десятков параметров, которые
вы можете компоновать по собствен-
ному усмотрению. Приятно, что есть
возможность фильтрации по тому или
иному признаку, например, по уста-
новленной ОС. Рисунок 1. Поиск ресурсов сети
Хочется заметить, немного забе-
гая вперед, что, так как сведения об
имеющемся оборудовании и ПО хра-
нятся в базе SQL-сервера, они до-
ступны и при выключенном удален-
ном компьютере и есть возможность
отслеживать изменения в конфигура-
ции машин.
Официальная страничка в Интер-
нете, посвященная SMS, находится
по адресу: http://www.microsoft.com/
smserver/default.mspx.
На данный момент готовится к вы-
ходу версия SMS 2003 R2, последнее
обновление – Service Pack 2.
Требования к аппаратному обеспе-
чению сервера:
Процессор 550 МГц и мощнее.
Оперативная память 256 Мб и боль-
ше.
Минимум 2 Гб свободного мес- Рисунок 2. Назначение ролей серверу SMS
та на жестком диске на разделе
NTFS. н е н и же Windows 20 0 0 S P4 и л и новлении SMS 2.0. В этом режиме для
Сетевая карта. Windows XP SP1. взаимодействия между компьютерами
Прежде чем перейти непосредс- используются доменные учетные запи-
Требования к программному обес- твенно к установке SMS 2003, добав- си. Microsoft рекомендует выбирать ре-
печению: лю, что использование SMS целесо- жим Advanced, если не требуется под-
Windows 2000 Server SP4 и выше. образно в больших сетях (от 100 ком- держка доменов NT 4.0 и предполага-
IIS. пьютеров) либо в распределенных се- ется работа только в домене под уп-
Microsoft SQL Server 7.0 SP3 и вы- тях, где расстояние между объекта- равлением Windows 2000 или Windows
ше, SQL Server 2000 SP3a или ми велико. 2003 Server, так как этот режим обес-
SQL Server 2005 (SQL Server не обя- печивает более высокий уровень бе-
зательно должен быть установлен Установка SMS 2003 зопасности. Для взаимодействия меж-
на одном компьютере с SMS). Сервер SMS может работать в двух ду компьютерами используются учет-
режимах безопасности: Standard ные записи компьютеров. Для нашего
SMS 2003 поддерживает два ти- и Advanced. примера установки выберем Advanced
па клиентов: Legacy Client – только Стандартный режим служит для Security.
для Windows 98 и Advanced Client – взаимодействия с доменами NT4.0 Перед установкой SMS 2003 жела-
для клиентов под управлением ОС и используется по умолчанию при об- тельно создать SMS Service Account
62
администрирование
компьютеров помещаются в соответс-
твующую коллекцию (по умолчанию –
идет разделение по типу ОС). Потом
вы можете для удобства работы сами
создать свою коллекцию.
Для обнаружения учетных запи-
сей пользователей в знакомом уже
«Discovery Methods» находим пункт
«Windows User Account Discovery». До-
бавим домен и на вкладке «Polling
Schedule» установим флажок «Run
discovery as soon as possible». То же
самое надо проделать для «Active
Directory User Discovery». Аналогично
происходит обнаружение учетных за-
писей групп – пункты «Active Directory
System Group Discovery» и «Windows
User Group Discovery». Результаты
поиска пользователей помещаются
в коллекцию All Users, а групп – в All
User Group. Учетные записи пользо- Рисунок 6. Обновление политики на клиенте
вателей и групп зачастую обнаружива-
ются быстрее компьютеров, но с ними Одна из возможных причин – от- Для установки клиента SMS вруч-
также возможны проблемы. сутствие или неправильное имя об- ную потребуются права админист-
щедоступного ресурса с клиентом ратора. Запустим программу уста-
Установка клиентов SMS. Необходимо проверить каталог новки client.msi из сетевого каталога
SMS 2003 C:\SMS\Client (если установка прохо- \\имя_сервера\SMSClient\I386. На вто-
Перед установкой клиентов необ- дила на этот диск). Он должен быть ром экране установки введите код ва-
ходимо подготовить сервер SMS. общим с именем SMSClient. Если это шего сайта (обычно первые три буквы
Для этого запустим консоль «SMS не так, дайте необходимые разре- имени сервера).
Administrator → Site Database → шения (достаточно read для группы Для ускорения добавления клиен-
Site Hierarchy → имя_сайта → Site Everyone). та в базу SMS и для того, чтобы сра-
Settings → Site Systems». Назначим Теперь приступим непосредствен- зу же начать работать, в «Панели уп-
серверу роли «Management Point», но к установке клиента методом Client равления» запустите аплет Systems
«Server Locator Point», «Client Access Push. В коллекции «All Systems» вы- Management и на вкладке «Actions»
Point» и «Distribution Point». Для это- берем нужный компьютер (или можно для «Machine Policy Evalution and
го на соответствующих вк ладках установить клиента сразу на все ком- Retrieval Cycle, User Policy Evalution and
в свойствах сервера установим флаж- пьютеры), «All Tasks → Install Client». Retrieval Cycle» произведите операцию
ки (cм. рис. 2). На втором экране выбираем «Install Initiate Action (см. рис. 6). Опять же, на-
Существует два вида установки the SMS client», «Advanced Client», да- личие клиента на компьютере не быс-
клиентов: методом Client Push и руч- лее ставим галочку напротив пунк- тро отражается в базе SMS, поэтому,
ная установка. Legacy Client под- та «Always install». Рекомендуют ос- для того чтобы увидеть истинное ко-
держивает только ручную установ- тавлять галочку «Include only clients личество компьютеров с установлен-
ку. Рассмотрим установку Advanced assigned to this site», но если сайт у вас ными клиентами, надо немного подож-
Client методом Client Push. В консоли один, нет удаленного офиса и мо- дать или, как в случае с поиском ком-
«SMS Administrator» находим «Client бильных клиентов, то можно ее снять, пьютеров по сети, принудительно об-
Installation Methods» («Site Database → так как иногда инсталляция клиента новить коллекции.
Site Hierarchy → имя_сайта → Site методом Client Push в такой конфигу- На этом начальная фаза установ-
Settings»). В свойствах «Client Push рации не проходит (см. рис. 4, 5). Ус- ки сервера SMS, его предваритель-
Installation» установим флажки «Enable тановка клиента происходит скрыто ная настройка и установка клиентов
Client Push Installation to assigned от пользователя. Проследить за про- завершены. Далее все зависит толь-
resources и Domain Controllers», а так- цессом установки можно, просмат- ко от желаний и требований, предъяв-
же «Enable Client Push Installation to site ривая файл ccmsetup.log в каталоге ляемых к управлению сетью. В следу-
systems» и выберем «Advanced Client» c:\windows\system32\ccmsetup. Также ющей статье будут рассмотрены воп-
(см. рис. 3). На вкладке «Accounts» в Task Manager будет присутствовать росы проведения инвентаризации обо-
введите информацию об учетной за- процесс ccmsetup.exe. По окончании рудования и программного обеспече-
писи администратора домена. установки в «Панели управления» по- ния, централизованная установка ПО
Бывает так, что инсталляция таким явятся новые аплеты типа Systems и применение Remote Tools for Client
методом не проходит. Management. Support.
Иван Хрипунов
Windows SharePoint Services предоставляет удобный и простой интерфейс, с помощью
которого вы можете создавать и изменять веб-страницы. А если требуется расширить
функциональность этой технологии и улучшить внешний вид веб-узла?
В
первой части статьи [1] вы позна- дет именоваться Microsoft SharePoint C помощью FrontPage вы можете
комились с базовыми элемента- Designer 2007. Это говорит о том, выполнять задачи по обслуживанию
ми Windows SharePoint Services. что программа ориентирована исклю- и управлению веб-узлами:
В качестве иллюстрации возможнос- чительно на работу с технологиями Создавать веб-узлы, списки, биб-
тей технологии мы создали веб-узел SharePoint. лиотеки документов, страницы веб-
телефонного справочника, содержа- В настоящий момент для пользо- частей, используя мастера и шаб-
щий сведения о сотрудниках компа- вателей и администраторов веб-уз- лоны.
нии, а также их фотографии. Все из- лов, использующих платформу WSS, Изменять основные параметры
менения на веб-узле проводились с по- во FrontPage доступны такие возмож- веб-узлов, списков, библиотек до-
мощью обозревателя Internet Explorer. ности: кументов. В том числе добавлять
Эта функциональность WSS позволя- Дизайн. Если вы не знакомы с язы- и редактировать столбцы в спис-
ет решать большинство задач по пре- ком разметки HTML или не хотите ках и библиотеках. Появляется воз-
доставлению информации. работать с кодом, вы можете изме- можность изменить URL веб-узла,
Со временем вам, возможно, пот- нять веб-страницы в режиме конс- используя окно свойств.
ребуются более гибкие настройки труктора (WYSIWYG). Добавляйте Изменять служебные файлы спис-
и расширенная функциональность. На- слои, динамические эффекты и па- ков и библиотек документов, ко-
пример, вывести данные в формате, нели навигации – это улучшит вне- торые позволяют добавлять, ре-
отличном от стандартного, или изме- шней вид веб-узлов WSS. дактировать и просмотривать эле-
нить расположение элементов на стра- Кодирование. Изменяйте веб-стра- менты.
нице. В этом случае вам на помощь ницы в режиме кодирования с по- Создавать и восстанавливать ре-
придет редактор, совместимый с тех- мощью профессионального редак- зервные копии веб-узлов.
нологиями SharePoint. тора HTML, XML и CSS. Доступны
функции автозавершения и провер- Каталог источников
Microsoft Office ки правильности кода, шаблоны по- данных
FrontPage 2003 ведения (Behaviors) и работа с эле- При работе с веб-узлами, основанны-
С момента выхода первой версии про- ментами управления ASP.NET. ми на технологии SharePoint, FrontPage
граммы, которая была нацелена на ис- Расширение функциональности. позволяет получать данные из разно-
пользование в качестве наглядного Вы можете работать с информаци- образных источников:
(WYSIWYG, What You See Is What You ей из различных источников, созда- Списков и библиотек документов
Get) редактора HTML, во FrontPage вая веб-узлы, управляемые данны- данного узла.
2003 многое изменилось. Помимо то- ми. Создавайте и изменяйте цвето- Баз данных, совместимых с OLEDB,
го, что стало удобнее редактировать вые схемы с помощью встроенного например, Microsoft SQL Server.
HTML, XML, CSS и проч., теперь мож- редактора. Анализируйте статис- Веб-сервисов.
но полноценно работать со службами тику использования веб-узла WSS XML-файлов.
SharePoint. А следующая версия, ко- в различных разрезах при помощи
торая выйдет в начале 2007 года, бу- представления «Отчеты». Все используемые источники ин-
64
администрирование
формации текущего веб-узла хранят-
ся в так называемом каталоге дан-
ных. Физически этот каталог пред-
ставлен в иерархии узла папкой, обыч-
но _fpdatasources, где хранятся файлы
в формате XML с описаниями подклю-
чений. Эта папка создается при пер-
вом обращении к каталогу источни-
ков данных во FrontPage. Вы може-
те добавлять каталоги других узлов
и таким образом отображать данные
списков, библиотек документов и т. д.,
расположенных за пределами теку- Рисунок 1. Схема работы механизма передачи данных WSS
щего узла.
Основа для получения информации вы можете с помощью браузера или _catalogs. Это скрытая системная
из перечисленных источников – меха- FrontPage. папка. Отображается, если разре-
низм передачи данных (data retrieval Стандартные веб-части списков шен показ скрытых файлов и папок.
service), одно из нововведений в WSS. и библиотек документов вы можете Эта опция устанавливается в окне
Этот механизм позволяет обменивать- трансформировать в «Представление параметров узла. Содержит ката-
ся информацией между поставщиком данных» во FrontPage с помощью ко- лог шаблонов списков, узлов и веб-
и получателем данных по протоколу манды «Преобразовать в XSLT-пред- частей.
SOAP (Simple Object Access Protocol), ставление данных». При этом сохра- _fpdatasources. Папка катало-
используя XML, и является, по-сути, няется идентичный исходной веб-час- га источников данных. Создается
веб-сервисом. ти внешний вид и функциональность, при первом обращении к каталогу
а также вам доступны средства, при- во FrontPage.
Вывод информации менимые к веб-части «Представле- _private. Это специальный скры-
из каталога ние данных». тый каталог FrontPage, не видимый
Чтобы отображать данные из каталога в обозревателе. Его можно исполь-
на веб-страницах, в составе WSS пос- Используем FrontPage зовать, например, для хранения ин-
тавляется веб-часть «Представление Давайте на практике рассмотрим ра- формации, собранной с помощью
данных» (DataView web part). Она вы- боту с веб-узлами во FrontPage. Вер- форм.
ступает как клиент сервиса переда- немся к нашему телефонному спра- Images. Пустая папка для изобра-
чи данных, форматируя их с помощью вочнику, расположенному по адре- жений, которые могут быть исполь-
XSLT (eXtensible Stylesheet Language су http://server01/phones/. На первой зованы при дизайне веб-страницы.
for Transformations, расширяемый язык странице веб-узла, default.aspx, рас-
стилей для преобразований). Таб- положены две связанные между собой Также в структуре отображаются
лицы XSLT используются для описа- веб-части – одна отображает контакт- все файлы веб-страниц.
ния преобразований структуры доку- ную информацию сотрудников компа- При изменении файлов вы може-
ментов, посредством простых набо- нии, другая – их фотографии. Данные те выбирать представление, которое
ров правил. о сотрудниках и их фотографии хра- больше вам подходит. Это может быть
FronPage – одна из первых про- нятся в списке и библиотеке рисунков представление «Конструктор», позво-
грамм, предоставляющих возмож- соответственно. ляющее редактировать страницу в ви-
ность наглядного редактирования Откроем наш веб-узел во FrontPage: зуальном редакторе, или представле-
XSLT. Это означает, что вы можете ре- для этого запустите программу и вы- ние «Код», для работы непосредствен-
дактировать стили XSLT, не обладая берите пункт «Открыть узел» в меню но над кодом веб-страницы. Одним
глубокими знаниями о них. С другой «Файл». Справа на панели представле- из удобных является представление
стороны, если вы не новичок в работе ны все каталоги открытого узла. Обра- «С разделением», которое комбиниру-
с XSLT, вы можете использовать ре- тите внимание, что библиотеки файлов ет вышеуказанные представления так,
дактор кода FrontPage для самостоя- (в нашем случае – фотографий сотруд- что вам доступны и изменение кода,
тельного создания необходимых пре- ников) и списки (они находятся в ди- и визуальный редактор. При этом обе
образований. ректории Lists) отображаются в виде части окна синхронизируются, то есть
Веб-часть «Представление дан- папок. Внутри каждого списка или биб- если вы добавили в таблицу код для
ных» поддерживает все свойства, лиотеки файлов (в папке «Forms») на- создания нового столбца, это измене-
присущие этому элементу WSS, – из- ходятся вспомогательные файлы со- ние будет отражено в визуальной час-
менение параметров, персонализа- здания, редактирования и просмотра ти. А если вы выделите в визуальной
ция, соединения с другими веб-час- элемента, а также файлы веб-страниц части любой элемент, он будет подсве-
тями. Для добавления на веб-страни- представлений. Кроме того, в структу- чен в области кода.
цы данная веб-часть доступна только ре узла присутствуют следующие слу- Найдите файл default.aspx и от-
из FrontPage. Изменять ее настройки жебные папки: кройте его.
66
администрирование
ется ссылка на страницу. Такая ссылка не будет работать бцов для сортировки; выбрать отображение набора эле-
для отправки сообщений электронной почты, и это придет- ментов и так далее.
ся исправить в коде вручную. Для нашего примера можно включить параметр для сор-
Если вы уже работали с языком разметки, то знаете, что тировки данных по заголовкам столбцов.
для ссылок на адреса электронной почты параметр href те-
га <A> должен содержать строку «mailto:[e-mail]». Выдели- Фотографии сотрудников
те в визуальной части окна элемент с адресом и найдите Получившийся список контактов неплохо выглядит, но,
в выделенном фрагменте вот такой код: в отличие от первой версии, на странице не отображает-
ся фотография.
<td class="ms-vb"> Вы можете поступить уже известным вам способом [1] –
<a>
<xsl:attribute name="href"> соединить веб-часть представления данных с веб-частью
<xsl:value-of select="@Email"/> изображения, используя в качестве адреса фотографии
</xsl:attribute>
<xsl:value-of select="@Email"/> поле «Фото». Отличительная особенность «Представления
</a> данных» от веб-части списка в том, что создавать соедине-
</td>
ния можно по любым полям, вне зависимости, показаны они
В описании XSL-атрибута href для тега <A> (строка 4) из- на странице или нет. Единственное условие – поле списка
мените значение на «mailto:<xsl:value-of select=”@Email”/>». должно быть указано в запросе данных. Еще одна замеча-
Теперь гиперссылка будет работать правильно – при выборе тельная возможность «Представления данных» – настройка
ее будет создаваться сообщение электронной почты. Вы не отправки первой строки всем присоединенным веб-частям.
забываете сохранять изменения? На практике это означает, что при начальном отображении
Данная ситуация исправлена в новой версии FrontPage – страницы во всех связанных веб-частях будет отображать-
SharePoint Designer 2007. Во второй бета-версии, доступ- ся информация. Изменить эту настройку вы можете в окне
ной для публичного тестирования, при форматировании изменения параметров веб-части, в разделе «Разное».
элемента как гиперссылки открывается стандартное окно Но раз уж мы ведем речь о «Представлении данных», сде-
«Выбор гиперссылки». Все остальные поля пока оставим лаем вывод фотографий с помощью именно этой веб-части.
без изменений форматирования. Повторите описанные выше шаги по добавлению пред-
ставления данных списка «Сотрудники» на страницу, но в веб-
Используем условное форматирование зону «Right», расположенную в правой части страницы. Уда-
Можно немного оживить наш список – добавить условное лите всю информацию, оставив пустую таблицу, состоящую
форматирование. С помощью этой опции FrontPage вы мо- из одного столбца. Оставьте в таблице строку заголовка, а од-
жете, например, изменять форматирование (цвета, шрифт, ну из строк, содержащих данные, разбейте на 7 строк. Пос-
отображение) в зависимости от выполнения какого-либо ус- ледние пять строк разделите на две колонки. Теперь «пере-
ловия. С веб-частью списка сделать это нельзя, а вот для тащите» поля списка в полученный макет, введите названия
«Представления данных» это не сложно. и отформатируйте текст. Первые две строки – это поля «Фо-
Давайте для примера будем изменять цвет фона каждой то» и «Полное имя».
нечетной строки на серый. Для создания правила условно- Элемент, содержащий путь к фотографии сотрудника,
го форматирования выделите строку таблицы и на панели отформатируйте как рисунок. Нажмите правую кнопку мы-
«Сведения о представлении данных» выберите команду «Ус- ши и из меню «Отформатировать элемент как» выберите
ловное форматирование». Создайте правило применения «Рисунок». На рис. 3 показано, что у вас должно получить-
форматирования, в качестве поля укажите [номер строки] – ся. Не забывайте сохранять страницу.
нечетный. В окне изменения стилей («Формат» → «Грани-
ца» → «Заливка» ) укажите цвет заливки – светло-серый. Соединение веб-частей
Если этот цвет из стандартного набора кажется темным, Мы сделали вывод дополнительной информации о сотруд-
то, нажав «Другие цвета» в списке цветов, введите, напри- нике на одной странице – вместе с фотографией теперь до-
мер, значение «Hex={DF,DF,DF}». ступны все необходимые поля. Осталось лишь связать спи-
сок сотрудников с созданным информационным блоком, на-
Сортируем и группируем список зовем его «Сотрудник – подробно».
Используя веб-части списков вы можете сортировать, груп- Создание соединений между веб-частями такого типа
пировать и фильтровать данные – эти команды располо- доступно только во FrontPage. Выберите одно из представ-
жены на панели инструментов. К тому же, нажав на заго- лений данных, нажмите правую кнопку и выберите «Соеди-
ловок столбца, вы можете отсортировать строки. А что же нения веб-частей» из меню. Если данный элемент уже име-
«Представление данных»? Вся эта функциональность при- ет настроенные соединения, то вы увидите окно соединений.
сутствует и в этой веб-части. Откройте окно «Типы пред- Здесь перечислены все соединения, любое из них вы може-
ставлений» с помощью команды «Стиль» на панели «Све- те отредактировать или удалить. Мы создаем первое соеди-
дения о представлении данных». На закладке «парамет- нение для веб-части, поэтому сразу открывается окно «Мас-
ры» вы можете изменить следующие настройки веб-час- тер соединения веб-частей». Не буду описывать подробно
ти – показывать или нет панель инструментов, с помо- все шаги мастера, в процессе его работы даются достаточ-
щью которой можно сортировать, фильтровать и группи- но подробные объяснения. Замечу лишь, что так как мы свя-
ровать информацию; создать ссылки в заголовках стол- зываем две веб-части, основанные на одном списке, то в ка-
А как же остальные
источники данных?
Все действия, описанные в статье, вы
можете применять для данных, полу-
ченных из других поддерживаемых ис-
точников. Отличаться будет только за-
прос данных.
Используйте веб-сервисы, кото-
рые устанавливаются вместе с WSS,
и те, что доступны на внешних узлах
в Интернете. Подробное описание веб-
сервисов для технологий SharePoint
вы можете найти на сайте MSDN –
http://msdn.microsoft.com/library/en-us/
spptsdk /html/soapnsMicrosoftShare
PointSoapServer2_SV01043862.asp .
Выгружайте на веб-узлы файлы
Рисунок 3. Результат изменений телефонного справочника в формате xml и выводите информацию
из них на страницах веб-сайтов. Таким
честве связующего стоит использовать Если список сотрудников достаточ- образом вы можете публиковать, на-
поле «Идентификатор». Хотелось обра- но большой, создайте еще один спи- пример, курсы валют в удобном для вас
тить ваше внимание на предпоследний сок, содержащий буквы алфавита. До- формате. То же самое вы можете сде-
шаг мастера. На этом этапе вам пред- бавьте в список сотрудников вычисля- лать и с потоками в формате RSS.
лагается выбрать поле веб-части источ- емое поле, в котором будет содержать-
ника, на котором будет создана ссылка ся первая буква фамилии сотрудника. 1. Хрипунов И., Черневский А. Воз-
для связи, и указать, какие поля будут Сделать это можно, записав в поле можности технологии MS Windows
участвовать в обозначении выделенно- формулу «=ЛЕВСИМВ([Фамилия];1)». SharePoint Services. //Системный ад-
го элемента. Выделенный элемент вы- Добавьте на страницу еще одну веб- министратор, №5, 2006 г. – C. 20-27.
деляется полужирным написанием. Вы- часть «Представление данных» с бук- 2. http://www.sharepointcustomization.com –
берите в качестве поля со ссылкой и по- вами алфавита и соедините ее с веб- сайт, посвященный совместному ис-
ля обозначения столбец «Фамилия» на- частью списка сотрудников. Вы получи- пользованию FrontPage и технологий
шего списка. Теперь сохраните страницу те удобную разбивку списка по алфа- SharePoint.
и откройте веб-узел в обозревателе. виту, и ориентироваться в таком спра- 3. ht tp : / / w w w.mic rosof t .c om / tec hnet /
вочнике будет удобнее. prodtechnol/office/office2003/maintain/
Полезные мелочи Вам необходимо добавить ссылку fp03wss.mspx – использование
Посмотрите на получившуюся страни- на экспорт контактов в Outlook на стра- FrontPage для редактирования веб-уз-
цу – фактически она ничем не отлича- ницу? Воспользуйтесь возможностями лов SharePoint.
ется от первой версии, созданной с ис- протокола stssync, реализованного в 4. http://msdn.microsoft.com/library/default.
пользованием стандартных веб-частей WSS. Подробнее об этом вы можете про- asp?url=/library/en-us/odc_fp2003_ta/
списков и изображений. Но получивший- читать на страницах библиотеки MSDN html/odc_fpbldgxmlwebs.asp – построе-
ся справочник содержит на одной веб- (http://msdn.microsoft.com/library/en-us/ ние узлов, управляемых данными.
странице всю информацию о сотрудни- spptsdk/html/tsstsync_SV01036546.asp) 5. http://www.sharepointcustomization.com/
ке, позволяет более гибко настраивать Если вам потребуется выгрузка дан- resources/whitepapers.htm – сборник до-
внешний вид. Несмотря на то что на раз- ных в Excel, создайте на странице ссыл- кументации.
работку такой страницы уходит больше ку на файл запроса данных. Получить 6. http://www.sharepointcustomization.
времени, результат того стоит. такой файл вы можете на страницах com/resources/sdks.htm – Software
Что можно еще улучшить? Напри- представлений списка. Достаточно най- Development Kits для FrontPage и WSS.
мер, добавить в XSLT-шаблон дина- ти ссылку «Экспорт в электронную таб-
мические эффекты с помощью тегов лицу». При запросе необходимо сохра- Все перечисленные интернет-ресур-
<xsl:attribute>. Таким образом вы мо- нить файл *.iqy на ваш веб-узел. сы представлены на английском языке.
жете описать DHTML-события OnClick, И помните о том, что если при ра- Из русскоязычных ресурсов в ближыйшее
OnMouseOver и прочие. Например, ис- боте с «Представлением данных» вам время начнет функционировать блог, пос-
пользуя событие OnClick, вы сможете не хватает функциональности, кото- вященный технологиям SharePoint. Най-
выводить информацию о сотруднике рая присутствует в стандартной веб- ти его вы сможете по адресу http://blogs.
по щелчку в любом месте строки. части списка или библиотеки, вы в лю- technet.com/ruswss.
68
человек номера
О
браз человека, который мы ри- тором. Школа была математическая, студентом. А когда знаешь, как изнут-
суем, вспоминая о нем, – вещь поэтому с 9 класса он изучал языки ри устроено чудо техники, трудно счи-
часто весьма неожиданная. программирования – Фортран и Бей- тать его чудом… Сергей закончил Бе-
Иногда после общения с мужчиной бо- сик. Интернета еще, естественно, лорусский государственный универси-
гатырского телосложения представля- не существовало. Он появился позже. тет в 1994 году по специальности «Ра-
ешь… маленького плачущего ребенка. «Как что-то не совсем понятное, завое- диофизика и электроника, математи-
А побеседовав с хрупкой невзрачной вал свое место в жизни в качестве со- ческие машины» и благодарен своим
женщиной, думаешь: какое величие ставной части коммуникационной сре- преподавателям: «В Минске у нас был
духа, красота души! Директор компа- ды современного общества. Как не- очень сильный преподавательский со-
нии «Битрикс» внешне – симпатичный льзя представить сегодня общество став именно по программированию.
молодой человек, которого при жела- без телевидения, газет, так нельзя его Это было действительно мастерство:
нии с удовольствием бы взяли сни- себе сегодня представить без Интер- с помощью очень ограниченных в ре-
маться в сериал про современную нета», – рассказывает Сергей. Навер- сурсах машин программировать очень
жизнь на роль главного героя. Но по- ное, у талантливого, технически под- сложные задачи. Алгоритмически они
чему-то после интервью с Сергеем мое кованного юноши не было эйфории часто достигали больших результа-
подсознание рисует такую картинку: от осознания возможностей электрон- тов». Правда, в некоторых вопросах
крестьянское подворье, дом, службы, ной почты, какая была у меня в нача- преподаватели были осведомлены
живность, с утра до вечера кипит ра- ле 90-х: вот сейчас твое письмо здесь, меньше, чем их продвинутые студен-
бота, и посреди двора Сергей Рыжи- на экране монитора, но стоит нажать ты. Преподаватели опирались на учеб-
ков – хозяин этого богатства. «Send» – и оно уже на другом конце ник, и на лекции порой звучало «кон-
планеты. Сергей Рыжиков – прагматик, фиксус» вместо «конфиксис». А сту-
IT-родословная он наверняка и в начале пути считал денты исходили из практики. И здесь
Многие сегодняшние тридцатипяти- Интернет просто средством достав- у них была явная «фора». На 4-м кур-
летние впервые увидели компьютер ки информации. К тому же в отличие се Сергей с однокурсниками написа-
в старших классах школы. Сережа от гуманитариев, вроде меня, он учил- ли книгу на 400 страниц «Програм-
Рыжиков сразу познакомился с IBM – ся программированию в школе и ву- мирование микропроцессоров X-86
серьезной машиной с цветным мони- зе, первый компьютер собрал, будучи Pentium…». На пятом курсе получили
70
человек номера
лицензию, открыли фирму со знако- свежую версию программного продук-
вым именем «Битрикс», взяли кредит, та, потому что в отдел, отвечающий Сергей Рыжиков
издали книгу и продали ее. Выпусти- за состояние веб-страницы образова- В 1994 году окончил БГУ по специальнос-
ли еще несколько книжек, и «Битрикс» тельного ведомства столицы, пришли ти радиофизика и электроника. В АКБ
№1 на этом прекратил существова- новые люди и у них руки пока не до- «Инвестбанк» возглавлял отдел интернет-
ние. В планы Сергея не входило осе- шли до обновлений. История типичная, технологий и финансовых телекоммуни-
дать в Белоруссии. Минск ему очень так бывает часто. каций. С 1998 года – директор компании
нравился, но он понимал, что перс- Это сегодня Сергей Рыжиков – хо- «Битрикс». С 2005 года активно участву-
пектив у бизнеса в республике немно- зяин компании, которая разрабатыва- ет в организации и проведении Российс-
го. Рыжиков вернулся в Калининград, ет программные продукты для управ- кого Интернет-Форума. Член сообществ
устроился на работу в один банк, по- ления веб-проектами и многофункци- ISDEF и Ezhe.ru.
том в другой. В итоге возглавил отдел ональные информационные системы
интернет-технологий и коммуникаций для ведения коммерческой деятель- стал убеждать, что нужно делать про-
платежных систем. «Я не ставил за- ности в сети Интернет. А начинали ра- дукты. У меня это не получилось. И мы
дачи уйти и создать бизнес. Но в 1998 ботать, между прочим, как аутсорсин- пришли к необходимости заняться са-
году наступил кризис банковской сис- говая компания. Если опять исполь- мостоятельной деятельностью». Ар-
темы. Самый главный вывод, который зовать сравнение с крестьянским хо- гументы Сергея трудно оспорить хо-
из этого можно было сделать: бли- зяйством, сначала Сергей Рыжиков тя бы потому, что сегодня на россий-
жайшие пять лет после кризиса банки и его сотрудники ходили «в батраках», ском рынке преобладает аутсорсинг
обычно озабочены одной проблемой – нанимались то к одному, то к друго- отдельных задач или ресурсов. Отсю-
выживания. Так оно и оказалось. Банки му хозяину и выполняли работу, ка- да низкая экономическая эффектив-
стремились просто выжить и сохранить кую попросит. А потом завели свое ность контрактов с фирмами-аутсор-
технологический уровень. Более того, хозяйство и ныне выращивают свой серами. Аналитики находят в системе
произошла очень сильная централиза- хлеб, высадили на российских про- немало других «подводных камней»,
ция банковской системы. А в филиаль- сторах свой «лес». Он шумит повсю- но надеются, что их удастся преодо-
ной сетке нет перспектив для развития. ду, где есть партнерская сеть «Бит- леть со временем. Для усовершенс-
Развитие всегда идет из центра, а фи- рикса», а это ни много, ни мало – 700 твования этой организационной схе-
лиальная сеть только осваивает тех- компаний. Кстати, партнеры у «Битрик- мы предлагаются разные варианты –
нологию. Понимая, к чему это может са» есть не только в России, но и за ру- диверсификация аутсорсинга, дубли-
привести, перед 1999 годом я уволил- бежом. На Западе с ним сотруднича- рование важнейших участков, введе-
ся из банка». Впереди замаячили «Бит- ют около 200 компаний – американс- ние большого числа компаний-подряд-
рикс» №2 и сегодняшний успех. ких, европейских, ближневосточных. чиков и т. п. Сергей, как человек побы-
Так что за развитием ситуации в Ира- вавший в шкуре аутсорсера, не видит
Свой лес не Сергей следит с особым интере- и особых перспектив этого направле-
«Битрикс» на сегодня – стремительно сом – ведь там у «Битрикса» эксклю- ния бизнеса: «Чтобы увеличить доход-
развивающаяся компания, словно бо- зивный партнер, который неплохо вы- ность, рентабельность, есть две стра-
гатое хозяйство, выстроенное своими полняет свои обязательства. Военные тегии: либо нанимать больше людей,
руками. Сергей Рыжиков и его коллеги действия и выходки экстремистов на- чтобы, условно говоря, было больше
работают на средний и малый бизнес, прямую бьют по кошельку российских станков, либо увеличивать стоимость
а это совсем не простые покупатели. бизнесменов. цены часа. У каждого из этих факто-
Они хотят получать не просто качест- Популярный ныне в России аутсор- ров есть свои недостатки. Увеличение
венные продукты, но еще и не слиш- синг, который, по оценкам некоторых числа людей – это риски, постоянная
ком дорогие. Программными продукта- экспертов, набирает обороты быстрее, зависимость от контрактов. Идея, ко-
ми «Битрикс: Арендуемые магазины», чем на Западе, Сергей считает вред- торую я провожу, – нужно продавать
«Битрикс: Инфопортал», «Битрикс: Уп- ным для экономики государства биз- продукт. Это важно для России в це-
равление сайтом» пользуются госу- несом: «Потому что это другая форма лом и для каждой компании в частнос-
дарственные и образовательные уч- продажи человеческих ресурсов. С од- ти. Создание продуктов – это специфи-
реждения, крупные предприятия и ор- ной стороны, мы продаем нефть. А так ческий, отдельный бизнес. Он отлича-
ганизации. На «Битрикс. Управление мы продаем рабочее время. С вами ра- ется от почасовой продажи, вообще
сайтом» сегодня работают и готовятся зорвали контракт – у вас ничего не ос- от продажи и создания услуг. Это пол-
к выпуску более 2500 различных веб- талось, вам нечего продавать. Вы за- ный цикл: нужно определить сегмент
проектов. Цифра немаленькая! висимы от того, что у вас есть в конт- рынка, функции, которыми должен об-
С сайтом Департамента образования ракте. Интеллектуальные права все- ладать продукт, чтобы быть востребо-
города Москвы http://www.educom.ru я го созданного принадлежат заказчи- ванным, выпустить его своевременно,
знакома давно, он мне нравится за удобс- ку. Вы не владеете этим, вы не созда- правильно донести до потенциально-
тво навигации и симпатичный дизайн. ли продукт, ничего не сделали. То есть го потребителя, окупить, организовать
Кстати, сам Сергей на мои комплимен- завершен контракт – в истории ниче- смену версий, производство, докумен-
ты отреагировал улыбкой: оказывает- го не осталось. Еще работая аутсорсе- тирование, техподдержку... Длинный
ся, департамент использует не самую ром, я наших американских партнеров цикл, но это правильно. Очень хочет-
72
сети
Рашид Ачилов
Сформировать файлы, необходимые для создания собственной зоны DNS, – это еще не все.
Необходимо настроить и запустить программу BIND, зарегистрировать доменное имя,
дождаться завершения тестов – и можно раздавать друзьям адреса mymail@shortdomain.com!
74
сети
Определяем специальную зону «подсказок». Эта зона отдельной зоны tail.krokodil.ru, которая может администри-
содержит список «хорошо известных» серверов, с которых роваться другим человеком, и соответственно наш сервер
начинается поиск адреса, если его еще нет в кэше. Факти- должен отсылать клиента к серверу зоны tail.krokodil.ru).
чески, мы описываем весь Интернет этой зоной.
view "external" {
match-clients { any; };
zone "." { recursion no;
type hint;
file "named.root";
}; Определяем основную зону прямого преобразования.
Для этой зоны сервер является основным и полностью бло-
Определяем обратную зону для 127.0.0.1. Для данной зо- кирует любые обновления.
ны сервер является основным (master), не отсылает изве-
щения об обновлении, блокирует любые попытки обновить zone "krokodil.ru" {
type master;
или запросить трансфер зоны. Если для зоны не указаны file "direct-ru.ext";
allow-query, allow-update или allow-transfer, то применяются allow-update { none; };
};
установки представления (внешнего или внутреннего), по-
падание в представление означает получение доступа. Та- Определяем основную зону обратного преобразования.
ким образом, не задавая allow-transfer, мы оставляем воз- Для этой зоны сервер является основным и полностью бло-
можность запустить трансфер зоны. Хотя для данной зоны кирует любые обновления. Определение этой зоны не нуж-
это не страшно – просто бесполезная операция. но, если провайдер предоставляет блок адресов размером
менее сети класса С.
zone "0.0.127.IN-ADDR.ARPA" {
type master; zone "5.20.212.in-addr.arpa" {
notify no; type master;
file "localhost.rev"; file "zone212.rev";
allow-update { none; }; allow-update { none; };
allow-transfer { none; }; };
}; };
Определяем основную зону прямого преобразования. Здесь мы рассмотрели только основные параметры
Для этой зоны сервер является основным, блокирует любые для описания зон. Множество других параметров – опции
попытки обновления зоны, разрешает запрос из зоны толь- настройки клиентской части («резолвера»), настройки ка-
ко клиентам, удовлетворяющим перечисленным ACL. нала управления RNDC – остались в стороне, поскольку
они непосредственно не связаны с настройкой зон, хотя
zone "krokodil.ru" { достаточно существенны для работы локальных программ
type master;
file "direct-krokodil-ru.int"; и сопровождения.
allow-update { none; };
allow-query { me-white; grayteeth; };
}; Запуск и сопровождение
Для запуска named достаточно добавить
Определяем основную зону обратного преобразования
и завершаем внутреннюю часть. Для этой зоны сервер яв- named_enable="YES"
ляется основным, блокирует любые попытки обновления
зоны, разрешает запрос из зоны только клиентам, удов- в /etc/rc.conf. По умолчанию в нынешних версиях рабо-
летворяющим перечисленным ACL. чий каталог named делается с рассчетом на jail, и поэ-
тому вынесен в /var/named, где уже созданы подкатало-
zone "2.87.10.in-addr.arpa" { ги /dev, /etc и /var, а /etc/namedb является символическим
type master;
file "zone10.rev"; линком на /var/named/etc/namedb. Меня это не устроило,
allow-update { none; }; и я расположил рабочий каталог в более привычном мес-
allow-query { me-white; grayteeth; };
}; те – /etc/namedb. Для этого в /etc/rc.conf пришлось доба-
}; вить строки:
Создаем внешние зоны. Поскольку просмотр ACL идет named_flags="-c /etc/namedb/named.conf -4 -u bind"
named_chrootdir=""
по схеме «first win», то есть используется первое совпадение,
то все клиенты, которые не могут быть отнесены к внутрен- Параметр -4 отключает поддержку Ipv6 (когда она
ним, автоматически попадут во внешние, следовательно, еще будет), параметр -u bind задает сброс привилегий
нет необходимости в специальном описании ACL. Для за- после запуска до пользователя bind. Последняя стро-
проса от внешнего клиента сервер является нерекурсив- ка нужна для /etc/rc.d/named, чтобы он не пытался со-
ным, то есть в ответе может содержаться не только положи- здать /var/named/etc/namedb. Если вас устраивает рас-
тельный или отрицательный результат, но и ссылка на дру- положение рабочего каталога по умолчанию, то доста-
гой сервер (DNS NXDOMAIN). В нашем случае это не име- точно строки:
ет значения, но могло бы понадобиться, если бы мы опре-
деляли подзоны (например, end.tail.krokodil.ru потребует named_flags="-4 -u bind"
76
сети
Whois phone: +7 095 3631150
Whois – вспомогательный информационный сервис, очень fax-no: +7 095 3631150
e-mail: mihalev@land.ru
тесно связанный с DNS, поскольку с его помощью опреде- registrar: RUCENTER-REG-RIPN
ляется, например, занято в настоящий момент доменное created: 2002.06.21
paid-till: 2006.06.21
имя или свободно. Описывается он RFC 954. Задача этого source: TC-RIPN
сервиса – поиск информации о запрошенном имени на ука- Last updated on 2006.05.28 15:03:19 MSK/MSD
занном сервере. Любой регистратор, как правило, предо-
ставляет возможность вам воспользоваться этим сервисом, За информацией о регистрации сетей, обратных зон
чтобы выполнить поиск информации о каком-либо домене, и выяснения принадлежности IP – в RIPE [3]. Вывод будет
сети или персоне. Такой поиск выполняется неявно, когда иметь следующий вид:
вы указываете имя домена, которое хотите зарегистриро-
вать. В зависимости от сервера, вам могут либо сообщить, # whois -r 212.20.5.0/24
что доменное имя занято, либо предложат зарегистриро- inetnum: 212.20.5.0 - 212.20.5.255
вать имя в другом TLD. Whois отображает только информа- netname: GRANCH
descr: Granch ltd
цию, которая находится в открытом доступе. При обраще- descr: Novosibirsk
нии к разным серверам информация может выглядеть по- descr: Pisareva str. 53
разному. Например, Network Solutions вставляет в выдава- descr: RU-630005
country: RU
емую информацию большой рекламный заголовок. admin-c: RNA1-RIPE
Самый простой путь получения информации через tech-c: RNA1-RIPE
status: ASSIGNED PA
whois – воспользоваться соответствующим сервисом, на-
mnt-by: AS8691-MNT
пример в РУЦЕНТРе [8]. Для тех же, кто предпочитает ко- mnt-by: ROSNIIROS-MNT
мандную строку, существует команда whois. Для ее ис- source: RIPE # Filtered
пользования требуется разблокированный на брандмау-
эре порт 43. Существует также простенькая X-версия ко- Несмотря на то что данная информация уже устаре-
манды xwhois, требующая Glib. ла, она все еще присутствует в RIPE. Можно запросить ин-
Несмотря на то что обратиться за информацией whois формацию о персоне, указав ее handle для данного серве-
можно к большому количеству регистраторов, которые пе- ра (напоминаю, что каждый регистратор имеет свои собс-
речислены в man whois, практическое значение для нас име- твенные handles):
ют только некоторые из них. За информацией об именах
в зонах .com, .org, .net, .edu, .biz и прочих функциональных # whois -r RNA1-RIPE
зон – в Network Solutions [9]. Вывод будет иметь следующий person: Rashid N Achilov
вид (рекламный заголовок опущен): address: Granch Ltd.
address: Pisareva str, 53
address: RU-630005 Novosibirsk
# whois -i freebsd.org
address: RUSSIA
Registrant: phone: +7 3832 242363
The FreeBSD Project fax-no: +7 3832 242363
839 S.E. 209th Ave. e-mail: shelton@granch.nsk.su
Gresham, OR 97030-2235 nic-hdl: RNA1-RIPE
US source: RIPE # Filtered
Domain Name: FREEBSD.ORG
Administrative Contact, Technical Contact:
Lawrence, David G. dg@dglawrence.com DNS считается одной из самых сложных тем при организа-
TriGamma Robotics Corp. ции сети. И это вовсе неспроста – для понимания его ра-
839 SE 209th Ave.
Gresham, OR 97030-2235 боты требуется многое. Хотя такая относительно простая
US задача, как создание небольшой зоны, содержащей толь-
503 660 0199
ко ссылки на внешний веб- и почтовый серверы, вполне по
Record expires on 20-Sep-2006.
Record created on 15-May-2002. силам большинству администраторов. Надеюсь, что прочи-
Database last updated on 28-May-2006 07:14:10 EDT. тав эту статью, вы тоже сможете ее решить.
Domain servers in listed order:
NS0.FREEBSD.ORG 216.136.204.126
NS1.IAFRICA.COM 196.7.0.139 1. http://www.isc.org/index.pl?/sw/bind/arm93.
NS1.DOWNLOADTECH.COM 209.237.247.3 2. ftp://ftp.internic.net/domain/named.root.
NS2.DOWNLOADTECH.COM 209.237.247.2
3. http://www.ripe.net.
За информацией об именах в зонах .ru, .su – в РУЦЕНТР 4. http://www.ripe.net/rs/reverse/rdns-project/index.html.
[8]. Вывод будет иметь совершенно другой вид: 5. Немет Э., Снайдер Г., Сибасс С., Хейн Т.Р. UNIX: руководство сис-
темного администратора. Для профессионалов/Пер. с англ. –
# whois -c ru samag.ru Спб.:Питер; К.: Издательская группа BHV, 2002. – 928 с.: ил.
domain: SAMAG.RU 6. Cricket Liu, Paul Albitz, DNS and BIND, Third Edition, 1998 (изд-
type: CORPORATE во O’Reilly, ISBN 1-56592-512-2).
nserver: ns0.redline.ru.
nserver: ns0.ug.ru. 7. http://linuxmafia.com/pub/linux/network.
state: REGISTERED, DELEGATED 8. http://www.nic.ru.
person: Mikhalyov Alexander Vladimirovich
9. http://www.networksolutions.com.
Василий Озеров
Chroot и Jail – два разных способа изолировать процесс от основной файловой системы.
Где и когда их использовать? Каковы их преимущества и недостатки?
Б
ольшинство сервисов, работаю- чить безопасность системы и протес- ный ущерб от взломанного сервиса,
щих в системе, имеют возмож- тировать новое ПО. следует изолировать его от основной
ность просматривать структу- При увеличении безопасности про- системы, используя chroot. Тогда сер-
ру всей файловой системы сервера. цесса принципиальное значение име- вис будет иметь доступ только к той
Это не всегда безопасно для информа- ют свойства процесса, а именно: с ка- части файловой системы, в которой
ции, хранящейся на сервере. Для того кими привилегиями он работает. Если он «заперт».
чтобы не допустить кражу секретной процесс был запущен от имени обыч- Используя chroot для тестирования
информации, были придуманы спо- ного пользователя, то все проблемы ПО, вы можете не бояться за основ-
собы, позволяющие изолировать про- с безопасностью решаются грамотной ную систему, ведь процесс не может
цесс: chroot и jail. установкой прав на файлы и катало- получить к ней доступ, не говоря уже
ги. Процесс, запущенный от имени су- об удалении важных файлов.
Chroot перпользователя, имеет абсолютные Для того чтобы перенести програм-
Chroot – операция изменения корне- привилегии в системе, благодаря ко- му с одной системы на другую, не имея
вого каталога для текущего процесса торым может выполнять любые дейст- исходных кодов, достаточно перенес-
и всех его потомков – поможет увели- вия. Для того чтобы снизить возмож- ти все библиотеки, нужные для рабо-
78
безопасность
ты программы, и запустить саму программу в chroot-окру- После этого запустим программу без chroot-окружения
жении. Думаю, преимущества chroot очевидны. и создадим, например, файл chr00t.
Отмечу недостатки chroot: Проверяем наличие файла «/chr00t», как видно, такого
Увеличивается число копий одних и тех же файлов. файла не существует:
Возможность выйти из chroot-окружения (на некоторых
ядрах). # ls -la /chr00t
ls: /chr00t: No such file or directory
Первый случай я поясню на примере: мы пытаемся за-
пустить в «песочнице» /bin/sh. Корнем этого процесса сде- Запускаем программу:
лаем /usr/chroot/. Посмотрим, от каких библиотек зави-
сит sh: # ./prog
Enter filename to create: chr00t
# ldd /bin/sh
/bin/sh: Опять проверяем наличие файла «/chr00t», как видно,
libedit.so.5 => /lib/libedit.so.5 (0x2808c000) файл успешно был создан:
libncurses.so.6 => /lib/libncurses.so.6 (0x280a0000)
libc.so.6 => /lib/libc.so.6 (0x280df000)
# ls -la /chr00t
Так как для sh теперь корнем будет /usr/chroot, то биб- -rw-r--r-- 1 root wheel 0 Jun 2 00:54 /chr00t
лиотеки должны быть расположены следующим образом
(относительно реального корня): /usr/chroot/lib/*. Обратите Очистим рабочее пространство для будущих экспери-
внимание, что это не все библиотеки, которые необходимо ментов:
перенести. Очевидно, что нерационально расходуется мес-
то на жестком диске. Если же попытаться запустить связ- # rm -f /chr00t
ку Apache + MySQL + PHP в chroot, то придется переносить
чуть ли не больше половины всей системы. А теперь задай- Теперь запустим нашу программу в chroot-среде, но для
те себе вопрос: а действительно ли переносить всю связ- этого предварительно необходимо создать нужное нам де-
ку так необходимо? Ведь Apache работает не от имени су- рево каталогов и перенести туда соответствующие файлы.
перпользователя, и главное – правильно выставить права Создаем дерево каталогов. В частности, папки lib
на файлы и каталоги. и libexec для нужных библиотек:
О возможности выйти из chroot я расскажу чуть позже.
Вернемся к нашей теме «Как увеличить безопасность # mkdir -p /usr/chroot/{lib,libexec}
системы с помощью chroot». Я написал небольшую про-
граммку на C, которая наглядно демонстрирует работу Переносим нашу программу в /usr/chroot:
chroot:
# cp ./prog /usr/chroot/
#include <errno.h>
#include <stdio.h>
#include <sys/types.h> Смотрим, с чем связана наша программа:
int main(void)
{ # ldd /usr/chroot/prog
char line[255]=""; /* Переменная для названия файла */ /usr/chroot/prog:
chdir("/");/* Перемещаемся в корень */ libc.so.6 => /lib/libc.so.6 (0x28074000)
printf("Enter filename to create: ");
scanf("%s", &line);
Копируем необходимые библиотеки:
if((fopen(line,"w+") == NULL)) /* Создаем файл */
{
perror("Error"); /* Выводим сообщение об ошибке */ # cp /lib/libc.so.6 /usr/chroot/lib/
exit(1); /* И выходим, если создать файл
не удалось */
} Библиотека ld-elf.so.1 нужна для запуска бинарных фай-
лов формата elf:
return 0;
}
# cp /libexec/ld-elf.so.1 /usr/chroot/libexec/
Как вы видите из кода, первым делом мы перемеща-
емся в кореневой каталог файловой системы, а потом уже После того как все предварительные шаги сделаны,
там создаем файл. Теперь посмотрим, как будет работать можно запускать нашу программу в chroot-окружение, но пе-
программа в chroot-кружении и без него. ред этим проверим наличие файла в /usr/chroot и в /.
Компилируем: Следующие две команды проверяют наличие файла
в /usr/chroot и в /:
# gcc prog.c -o prog
# ls -la prog
# ls -la /chr00t
-rwxr-xr-x 1 root wheel 5533 Jun 2 00:52 prog ls: /chr00t: No such file or directory
Запускаем нашу программу в изолированной среде: mkdir("tmp", 0755); /* Создаем временную директорию */
dir_fd = open(".", O_RDONLY); /* Открываем текущую директорию */
# ls -la /chr00t
Код достаточно прокомментирован, поэтому разобрать-
ls: /chr00t: No such file or directory ся в нем не составит труда.
Итак, запустим новую программу на FreeBSD 4.6.
Как видите, файл успешно создался не в настоящем Проверяем наличие файла «/chr00t», такого файла нет:
корне системы, а в корневом каталоге для данного процес-
са. На этом примере прекрасно видно, что процесс, «поса- # ls -la /chr00t
женный в песочницу», не имеет доступа ко всей файловой ls: /chr00t: No such file or directory
системе, а только к /usr/chroot/.
Создаем папки для библиотек:
Выход из chroot-окружения
Как я уже писал ранее, возможен обход chroot-окружения, # mkdir -p /usr/chroot/usr/{lib,libexec}
но для этого одновременно должны выполняться два ус-
ловия: Компилируем программу:
Процесс должен работать под правами суперпользова-
теля. # gcc break_chroot.c -o /usr/chroot/break_chroot
Ядро должно поддерживать вложенные chroot-вызовы.
Копируем необходимые библиотеки:
Запускаем нашу программу под правами суперпользо-
вателя, поэтому одно из условий уже соблюдается. # cp /usr/lib/libc.so.4 /usr/chroot/usr/lib/
# cp /usr/libexec/ld-elf.so.1 /usr/chroot/usr/libexec/
Со вторым условием потруднее. Я протестировал
свою программу для выхода из chroot на следующих сис- Запускаем программу в chroot-среде:
темах:
FreeBSD 6.0/6.1 # chroot /usr/chroot/ /break_chroot
FreeBSD 5.4 Enter filename to create: chr00t
FreeBSD 4.6
Проверяем наличие файла «/chr00t»:
И только четвертая версия ОС FreeBSD выпустила ме-
ня за пределы chroot, а следовательно, из chroot в систе- # ls -la /chr00t
мах FreeBSD 5.x/6.x выйти невозможно, по крайней мере -rw-r--r-- 1 root wheel 0 Jun 2 00:56 /chr00t
мне не удалось.
Но я все же расскажу о выходе из «песочницы». Для это- Как хорошо видно, файл был создан не в chroot-окруже-
го процессу необходимо выполнить следующие действия: нии, а в настоящем корневом каталоге файловой системы.
Создать временную(tmp) директорию в текущем рабо- Чтобы не дать выйти программе за пределы chroot-окруже-
чем каталоге. ния, следует использовать функции setuid, setgid для изме-
Открыть временную директорию (нужно, только если нения EUID, EGID-процесса. Так как вызов chroot может быть
вызов chroot меняет текущую рабочую директорию). вызван только суперпользователем, то программа просто
Изменить корневой каталог на временную директорию не сможет сделать еще один chroot.
вызовом chroot.
Использую fchdir выйти из chroot-окружения (нужно, Тестирование ПО с помощью chroot
только если вызов chroot меняет текущую рабочую ди- Если нужно протестировать какую-нибудь программу,
ректорию). а под рукой нет тестового компьютера, то проще всего бу-
Много раз выполнить chdir(“..”) для перемещения в ре- дет создать себе изолированную систему для тестов, ис-
альный корень файловой системы. пользуя chroot. Сразу предупреждаю: создать полноцен-
Изменить корневой каталог процесса на текущий ную систему с помощью chroot не получится, для этого при-
(chroot(“.”)), то есть реальный корень. меняется jail.
80
безопасность
Давайте теперь попробуем запустить sh в chroot, для Давайте определимся:
тестирования ПО. Домен – UNIX.
Создаем папки для упешного применения chroot для sh: Компьютер, на котором производится установка вирту-
альной машины – satdevil.unix.(172.16.0.200).
# mkdir /usr/chroot/{bin,sbin,lib,libexec,usr} Виртуальная машина – evil.unix.(172.16.0.199).
# mkdir /usr/chroot/usr/{bin,sbin,lib,libexec}
DNS-сервер – dns.unix.(172.16.0.1).
Копируем нужные бинарные файлы:
Чтобы понимать, на какой машине происходит действие,
# cp /bin/* /usr/chroot/bin/ приглашение командного интерпретатора будет выглядеть
# cp /sbin/* /usr/chroot/sbin/
# cp /usr/sbin/* /usr/chroot/usr/sbin/ следующим образом: «hostname#».
# cp /usr/bin/* /usr/chroot/usr/bin/
Создание виртуальной машины
Копируем необходимые библиотеки: Создаем директорию, где будет находиться виртуальная
машина:
# cp -r /lib/* /usr/chroot/lib/
# cp /libexec/* /usr/chroot/libexec/
# cp -r /usr/lib/* /usr/chroot/usr/lib/ satdevil# mkdir /usr/local/evil
# cp -r /usr/libexec/* /usr/chroot/usr/libexec/
Собираем и устанавливаем «мир» в только что создан-
Запускаем sh в chroot: ную директорию:
Теперь посмотрим, что у нас в корне. Из вывода ls пре- Теперь установите конфигурационные файлы, скрип-
красно видно, что настоящий корень – /usr/chroot. ты и т. д. в каталог:
Мы скопировали библиотеки не только для sh, но и для Теперь мы находимся в нашей новой системе. Для на-
остальных утилит, которыми мы будем пользоваться, на- стройки можно воспользоваться sysinstall, но я буду исполь-
пример ls и pwd. зовать командный режим, а не графический.
Предыдущий пример использования chroot не очень Первым делом создаём пустой файл /etc/fstab, это нуж-
удачный, так как chroot не создан для виртуализации сис- но для предотвращения ошибок при загрузке системы.
темы. Для этого используется механизм jail, который явля-
ется родным для FreeBSD, следовательно, продуман jail на- evil# touch /etc/fstab
много лучше, нежели chroot.
Теперь настроим автозагрузку.
Jail Отключаем rpcbind, который на виртуальной машине
Механизм jail позволяет администратору делить полноцен- не нужен:
ную FreeBSD-систему на маленькие подсистемы, которые
называются jail (тюрьмами). В каждой такой «тюрьме» на- evil# echo rpcbind_enable="NO" > /etc/rc.conf
ходятся свои процессы, файлы, аккаунты. Благодаря этому
механизму можно увеличить безопасность системы и со- Отключаем конфигурирование интерфейсов, дабы из-
здать виртуальные машины. бежать ошибок, связанных с ifconfig:
Я бы не хотел повторяться, рассматривая примеры, ко-
торые были применены к chroot, поэтому сейчас я расскажу evil# echo network_interfaces="" >> /etc/rc.conf
о том, как создать виртуальную машину с помощью jail.
Итак, в первую очередь необходимо настроить DNS-сер- Включаем sshd для удаленного управления виртуаль-
вер. Так как статья посвящена безопасности, то настройку ной машиной:
сервера имен я здесь не описываю. Но имена машин нам
понадобятся. evil# echo sshd_enable="YES" >> /etc/rc.conf
Теперь настраиваем timezone. Для Москвы это будет // Далее идет описание конкретной «тюрьмы»,
// в нашем случае это evil
выглядеть так:
// Задаем корневой каталог
evil# cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime jail_evil_rootdir="/usr/local/evil/"
// Указываем имя запускаемой виртуальной машины
jail_evil_hostname="evil.unix"
Задаем пароль суперпользователю в виртуальной ма-
шине. Напоминаю, что root в виртуальной системе и root // Указываем IP-адрес виртуальной машины
jail_evil_ip="172.16.0.199"
на основной системе – два совершенно разных пользова-
теля, никаким образом не зависящих друг от друга. // Указываем, что именно запустить в «тюрьме».
// Команда /bin/sh /etc/rc приведет к инициализации
// и запуску системы
evil# passwd jail_evil_exec="/bin/sh /etc/rc"
Changing local password for root // Разрешаем использование файлов устройств
New Password: jail_evil_devfs_enable="YES"
Retype New Password:
satdevil# mount -t procfs proc /usr/local/evil/proc Также не забывайте и о превосходной системе прав
в UNIX, которая позволяет решить практически любую про-
Jail хорошо продумана во FreeBSD, поэтому запускать блему, связанную с безопасностью. Тем более если процесс
мы ее будем не из командной строки, как chroot, а с помо- не работает от имени суперпользователя.
щью специального скрипта, расположенного в /etc/rc.d/. С jail тоже не следует переусердствовать: если у вас
При запуске скрипт считывает данные из /etc/rc.conf. Все слишком много виртуальных машин, то проще парочку
действия производим на satdevil. из них вынести на настоящие машины.
Добавляем в rc.conf: Главное – найти золотую середину.
82
ретроспектива
Дмитрий Мороз
NeXT относится к числу немногих тёмных лошадок компьютерной истории. Слухи об этой
компании перестали циркулировать сразу же после её исчезновения. Тем не менее наследие,
оставленное NeXT, очень внушительно и её история не должна быть забыта.
84
ретроспектива
ше, что при Джобсе было невозмож-
но», 10 апреля при поддержке сове-
та директоров Скалли отстранил его
от управления компанией. Стив Джобс
всё ещё оставался членом этого со-
вета, но в реальности никаких реше-
ний больше принимать не мог. Про-
дав часть принадлежавших ему акций
на сумму 20 млн. долларов, он съездил
на отдых во Францию и Италию и вер-
нулся в Америку, полон сил и энергии,
готовый вновь «изменить мир».
Теперь самое время перейти к рож-
дению компании NeXT, идея которой
пришла Джобсу… за завтраком. В на-
чале сентября 1985 года Стив завтра-
кал вместе с лауреатом Нобелевской
премии, биохимиком Стэндфордского
университета Полом Бергом. Во вре-
мя трапезы учёный рассказывал
Джобсу о своих исследованиях ДНК Рисунок 1. Скриншот первого веб-браузера, разработанного Тимом Бернерсом-Лии
и о трудностях, с которыми сталкива-
ются при этом он со своей командой. бой, запротестовал, поскольку все компания судится со своими создате-
На его вопрос об использовании ком- они занимали довольно большие пос- лями. «Мне сложно объяснить, поче-
пьютера в качестве средства для уско- ты: Даниель Левин – маркетинг-ме- му Apple с годовым оборотом более
рения моделирования экспериментов неджер Apple в секторе образования, 2 млрд. долларов и персоналом бо-
Берг ответил, что, к сожалению, боль- Бад Трайббл – руководитель отдела лее 4300 сотрудников боится шести
шинство университетов не распола- разработки программного обеспече- человек в синих джинсах», – говорил
гают необходимыми компьютерными ния, Сьюзен Бернес – глава отделе- по этому поводу Джобс.
мощностями и соответствующим про- ния Apple по продажам на рынке США, Первоначально он вложил в новую
граммным обеспечением. «Вот тогда я а также Рич Пейдж и Джордж Кроу, яв- компанию 7 млн. долларов личных сбе-
и начал развивать эту идею дальше», – лявшиеся одними из лучших инжене- режений. Первые 100 тыс. долларов
вспоминает Джобс. В его голове чёт- ров компании. ушли на создание логотипа NeXT Inc,
ко сформировался образ идеального Впоследствии Apple подала иск над которым работал 71-летний про-
компьютера для высших учебных заве- против новоиспечённой NeXT Inc., мо- фессор Йельского университета Пол
дений, способный, подобно Macintosh тивируя своё решение тем, что «лю- Ренд, известный в Америке дизайнер
в 1984 году, стать новым «открыти- ди, ушедшие в новую компанию, рас- и автор логотипов компаний ABC, IBM,
ем» в учебном и исследовательском полагают секретной информацией UPS и Westinghouse. В июне 1986 он
процессах. относительно ещё не анонсирован- представил Стиву результат.
Несколькими днями позже, 13 сен- ных продуктов, их стоимости, а также Изначально Джобс планировал
тября, он проинформировал совет ди- фамилий «независимых» людей, ко- сделать NeXT Inc. исключительно час-
ректоров Apple о том, что принял ре- торые будут помогать Apple в рекла-
шение покинуть компанию и основать ме». 17 сентября Джобс сделал ответ-
новую. При этом Джобс пообещал, ный ход – разослал копии бланка ре-
что ни в коем случае не собирается гистрации новой компании (позже пе-
конкурировать с Apple и что его цель – реименованной в NeXT Computer Inc.,
рынок образования, конкретнее – выс- однако в статье для краткости я буду
ших учебных заведений. Единствен- использовать оригинальное название)
ное, что попросил Стив, – возмож- во многие СМИ, а также пригласил
ность взять с собой пару сотрудников представителей прессы в свой особ-
Apple «низшего звена», после чего его няк в городке Вудсайд, где публич-
след исчезнет навсегда. Совет дирек- но объявил, что ушёл из Apple и боль-
торов сразу же согласился и при этом ше не имеет с этой компанией ниче-
пообещал купить в будущем 10% ак- го общего.
ций новой компании Джобса. На том Судебный иск против NeXT Inc. про-
и порешили. существовал недолго. Главным обра-
Однако уже на следующий день зом из-за того, что сама Apple боялась
Скалли, увидев фамилии пяти чело- таким образом навредить собственно-
Рисунок 2. Стив Джобс возле
век, которых Джобс хотел увести с со- му имиджу. Всё-таки не каждый день NeXT Computer
86
ретроспектива
рационная система NEXTSTEP, о ко-
торой мы поговорим позже, занима-
ла 200 Мб (1987 год!). Поэтому инже-
неры были вынуждены искать другой
путь. Решение пришло в лице компа-
нии Canon и её новой и революцион-
ной разработки – магнитооптической
технологии. Записывание информации
в ней производится при помощи луча
лазера и магнитного поля, а считыва-
ние – при помощи одного только ла-
зера. Благодаря большому объёму за-
писываемой и хранимой информации
(256 Мб) этот привод был как раз тем,
что искали инженеры NeXT Inc.
Стоит отдельно поговорить и о вне-
шнем виде NeXT Computer. Идеей
Джобса было сделать корпус компью-
тера в форме идеального куба со сто-
Рисунок 6. Компьютер NeXT Station
ронами чуть больше 30 см (12 дюймов).
Дизайном занималась компания Frog
Design, зарекомендовавшая себя со-
зданием внешнего вида оригиналь-
ного Macintosh. Корпус NeXT Computer
состоял из чистого магния и был пок-
рашен в чёрный цвет, делая из ком-
пьютера вершину дизайнерской мыс-
ли, однако при этом «накручивая счёт-
чик» цены, которая позже ещё сыграет
с NeXT Inc. злую шутку.
88
ретроспектива
клюзивное право на продажи NeXT Отличие NeXT Cube (7995 долл.) от ка в моей жизни», – говорил он тогда.
Computer в странах Азиатского конти- NeXT Station заключалось лишь в воз- В результате Джобсу пришлось вло-
нента. Эта сумма подняла оценочную можности установки до 64 Мб ОЗУ жить дополнительные 10 млн. долла-
стоимость NeXT Inc. до гигантских 600 (штатно – 16 Мб), слотах расширения ров в свою компанию. Подобные вло-
млн. долл. Однако в то время в компа- NeXTbus, а также возможности уста- жения сделала и Canon, расставшись
нии работали всего 200 сотрудников, новки видеоадаптера NeXT Dimension. с 55 миллионами.
а о доходе не могло быть и речи. Последний наделял NeXT Cube воз- Однако весь мир был в неведении
можностью работать с 32-битным цве- о трудностях NeXT Inc. Джобс разгла-
Призрачная надежда том. Внешне же он ничем не отличал- гольствовал о «светлом будущем»
Что же касается новых разработок, ся от NeXT Computer. своей компании и предпочитал вмес-
в конце 1989 года состоялся долго- К сожалению, трудности компа- то цифр о финансовом состоянии сво-
жданный выпуск версии 1.0 операци- нии Motorola с выпуском процессо- ей компании говорить о будущих но-
онной системы NEXTSTEP. Главным ра 68040 привели к задержке старта винках.
её нововведением стало появление продаж новых компьютеров до мар- 22 января 1992 года в Сан-Фран-
пакета для разработки приложений та 1991 года. циско NeXT Inc. организовала первую
Interface Builder, являвшегося анало- Что же касается нововведений выставку NeXT World, на которой пред-
гом современных сред визуального NEXTSTEP 2.0, стоит отметить поя- ставила NEXTSTEP 3.0 и NEXTSTEP
программирования. вившуюся файловую систему NFS 486. Новая ОС поддерживала 7 ми-
Не стояли в сторонке и инженеры (Network File System) компании Sun ровых языков, имела новые библио-
компании. В январе 1990 года в NeXT Microsystems, поддержку дисководов, теки для работы с 3D-графикой и ба-
Inc. стартовал проект «Основа 9» CD-ROM, факсов, и модемов. Кроме зами данных, а также поставлялась
(Warp 9), целью которого являлась пе- того, был переработан и улучшен окон- с полной копией пакета RanderMan
реработка NeXT Computer для сниже- ный менеджер Workspace Manager. компании Pixar (которую Джобс при-
ния цены до изначально планировав- После того как в 1990 году корпора- обрёл у LucasFilm ещё в 1986 году).
шихся 3 тыс. долл. ция IBM объявила о прекращении со- ОС NEXTSTEP 486 (с выходом Pentium
Через месяц после старта «Осно- трудничества с NeXT Inc. и подписании позже переименованная в NEXTSTEP
вы 9», не выдержав всё возрастающе- нового контракта с Apple, Росс Перот for Intel Processors) предназнача-
го напряжения внутри компании, NeXT начал обвинять Джобса в пустой тра- лась для работы с ПК и была ответом
Inc. покинули первые сотрудники. Сре- те денег и производстве компьютеров Microsoft на выпуск Windows 3.1.
ди них был Даниель Левин – один из собственными силами компании. Осо- NeXT Inc. также представила бо-
пятёрки первых инженеров Apple, за- бенно его вывели из себя результаты лее дешёвые Turbo-версии своих ком-
вербованных Джобсом. финансового квартала 1991 года, ког- пьютеров (оснащённых процессорами
Сам проект, несмотря на потрачен- да доход, составивший 28 млн. долла- 68040 с частотой 33 МГц), однако всё
ные на него шесть месяцев, оправдал ров, после изымания налогов и про- было напрасно.
себя, и 18 сентября 1990 года NeXT Inc. чих издержек превратился в чистый К концу года компанию покинули
объявила о выпуске сразу трёх новых «ноль». На протяжении шести лет свое- женившиеся Бад Трайббл и Сьюзен
моделей своих компьютеров, а также го существования компания работала Бернес, а также Рич Пейдж. Из пятёр-
NEXTSTEP 2.0. себе в убыток. ки первых сотрудников NeXT Inc., за-
NeXT Station представляла собой К концу второго квартала, несмот- вербованных Джобсом из Apple, остал-
результат «Основы 9»: компьютер, ря на увеличившийся до 46 млн. дол- ся лишь Джордж Кроу.
по своим характеристикам отличав- ларов доход, продажи NeXT Inc. упали Главная же неожиданность жда-
шийся от NeXT Computer более быс- на 50%, и разочарованный Росс Перот ла Стива в середине 1992 года. Питер
трым процессором 68040, работаю- ушёл из компании, продав свои 16% ван Кайленберг, нанятый им в мар-
щим на частоте 25 МГц, возможнос- акций. «Я не должен был давать им де- те на пост исполнительного директо-
тью установки до 32 Мб ОЗУ (стандар- ньги. Это была самая большая ошиб- ра, предал Джобса, тайно предложив
тно – 8 Мб), а также штатными флоппи- президенту Sun Скоту МакНили купить
дисководом и жёстким диском. Мини- NeXT Inc., уволить Стива и отдать ему
атюрный корпус NeXT Station, над ди- пост генерального директора. Однако
зайном которого работала Frog Design, честный МакНили предварительно поз-
имел размеры всего 397 х 364 х 64 мм. вонил Джобсу и предупредил о пред-
Правда, цена всё равно была выше ложении. Ван Кайленберг был с позо-
планируемой – 4995 долл. Заплатив ром выкинут из компании, однако ос-
на три тысячи больше, пользователь нователь NeXT Inc., наконец, не выдер-
получал NeXT Station Color, которая, жал и сдался.
кроме увеличенного до 12 Мб объёма
оперативной памяти, отличалась на- Рисунок 10. Сторонними компаниями
«Чёрный вторник»
личием в комплекте нового 16-дюй- для компьютеров NeXT было выпущено 10 февраля 1993 года (впоследс-
мового монитора, способного отобра- несколько плат-акселераторов. твии названный «чёрным вторни-
На снимке – NeXT Nitro с 40 МГц
жать 4096 цветов. процессором 68040 ком») NeXT Inc. официально объяви-
Планы на будущее
В дальнейшем, кроме платформы
х86, NEXTSTEP была перенесена
на рабочие станции Sun (архитектура
SPARC) и Hewlett-Packard (архитектура
PA-RISC), однако особого распростра-
нения из-за своей цены (995 долларов
за одну лицензию) не получила.
В 1993 году компания Microsoft пуб-
лично заявила, что в скором време-
ни выпустит объектно-ориентирован-
ную операционную систему, получив-
шую кодовое название «Каир» (Cairo).
С этой ОС компания собиралась вый-
ти на рынок объектно-ориентирован-
ных окружений, на котором до этого Рисунок 12. Скриншот Rhapsody, работающий на компьютере с процессором Pentium
90
ретроспектива
новилась на ноги. Однако, как извес-
тно, за небольшими, но потенциаль-
но успешными компаниями часто на-
блюдают их более зрелые конкурен-
ты. Нередко большая рыба для укреп-
ления собственных сил и авторитета
поглощает более мелких представи-
телей своего вида. То же случилось
и с NeXT Inc: Джобс даже не подозре-
вал, что Apple, с которой он порвал вся-
кие отношения, выберет его компанию
для покупки.
Возвращение на родину
К середине 90-х годов прошлого столе-
тия операционная система MacOS уже
не являлась чем-то особенным. Да, её
внешний вид и пользовательский ин-
терфейс всё ещё радовали глаз, одна-
ко внутри она стремительно устарева-
ла. Отсутствие вытесняющей многоза-
Рисунок 13. MacOS X 10.0 – реинкарнация NEXTSTEP
дачности, поддержки нескольких про-
цессоров, а также защищённого режи- не менее революционной, уже заслу- Первым делом были убраны все
ма памяти – вот список того, чем бо- жила место под солнцем среди раз- лицензированные ранее технологии,
ялась хвастаться MacOS. В Apple был личных исследовательских организа- например, Display PostScript была за-
создан проект операционной систе- ций, военных структур и финансовых менена на бесплатную Quartz. В 1997
мы нового поколения под кодовым на- учреждений. году Apple выпустила финальную вер-
званием «Copland», однако безрезуль- Ещё одна причина, перетягивав- сию OpenStep 4.2, а также бета-вер-
татная разработка шла на протяжении шая канат на сторону NeXT, – вели- сию Rhapsody, которая позже, пос-
двух с лишним лет, а после очередной колепные средства разработки новых ле выхода Rhapsody DR3, была пере-
выставки MacWorld в 1996 году, на ко- программ для этой ОС. Демонстрацию именована в MacOS X. В новой ОС бы-
торой обещанная ОС так и не была вы- работы Interface Builder, которой заве- ло принято отказаться от ядра Mach
пущена, общественность окончатель- довал сам Стив Джобс, было сложно в пользу его наследника – открыто-
но потеряла веру в неё. не назвать уникальной. В то время как го проекта Darwin. Кроме того, пуб-
У Apple была возможность лицен- владелец NeXT проводил перед соб- лике был представлен новый поль-
зировать другую операционную сис- равшимися очередной семинар, про- зовательский интерфейс под назва-
тему (ходили слухи о Solaris от Sun граммист из его компании начинал раз- нием Aqua.
и Windows NT от Microsoft), однако ком- работку нового приложения. Под конец На выставке Apple Expo 2000
пания выбрала другой путь – покупку семинара Джобс демонстрировал гото- в Париже Apple представила публике
ОС вместе с её владельцем. вую к работе программу. MacOS X Public Beta, ставшую самой
Первоначально в качестве потен- Точка над «i» в переговорах была коммерчески успешной платной бета-
циальной цели для покупки высту- поставлена 20 декабря 1996 года, ког- версией программы. Окончательный
пала Be Inc. с её операционной сис- да Apple Computer объявила о покупке же выпуск новой операционной систе-
темой BeOS, которая обладала все- NeXT Inc. за 427 млн. долларов (из ко- мы состоялся 24 марта 2001 года.
ми необходимыми качествами и к то- торых 130 млн. долларов Джобс забрал На сегодняшний день MacOS X
му же прекрасно работала на компью- себе). Сумма впечатляет, особенно многими названа наиболее совершен-
терах Macintosh. К сожалению, тайные по сравнению с жалкими 120 млн., ко- ной операционной системой, пред-
переговоры с владельцем Be Inc. Жа- торые Apple была согласна выплатить лагающей мощь UNIX вместе с про-
ном-Луи Гассе застопорились на цене, Гассе за его компанию. Однако этот стотой MacOS. «Ушки» NeXT, «торча-
которую он затребовал за свою компа- отчаянный шаг был единственным лу- щие» за этим выражением, трудно не
нию. К тому же, несмотря на свою ре- чиком света среди туч, постоянно сгу- заметить.
волюционность, BeOS в то время бы- щавшихся над головой Apple.
ла молодой чёрной лошадкой, которой Сразу же после приобретения NeXT 1. http://www.cnet.com
ещё предстояло пройти суровую школу Inc. проект «Copland» был закрыт, а его 2. http://www.osnews.com
жизни на компьютерах обычных поль- место занял новый – «Rhapsody», бла- 3. http://www.wikipedia.com
зователей. годаря которому OpenStep должна бы- 4. http://www.romain-moisescot.com
С другой стороны, на рынке дав- ла стать «MacOS нового поколения». 5. http://www.wired.com
но существовала NeXT Inc., операци- Руководство по переделке ОС взял 6. http://www.ex.com
онная система которой, являвшаяся на себя Ави Теваньян. 7. http://www.alyon.org
Мир программирования.
Основы современных алгоритмов
Дж. Макконнелл
математическими сведениями. В пос- стых параллельных операциях, а так-
ледующем каждая из глав посвящена же о основных алгоритмах сортиров-
одному из классов алгоритмов. Сре- ки и поиска. Достаточно подробно рас-
ди рассмотренных алгоритмов поиска сказано о недетерминированных ал-
и выборки: последовательный и дво- горитмах. Из приложения вы узнае-
ичный поиск. Алгоритмы сортировки: те о случайных и псевдослучайных
пузырьковая, корневая, пирамидаль- числах, элементах теории алгорит-
ная, сортировка Шелла. Не остались мов, оценки трудоемкости. В завер-
без внимания и сортировка вставка- шении каждой из глав, вашему вни-
ми, слиянием, а также быстрая сор- манию будут предложены упражнения
тировка. Численные алгоритмы: вы- для самоконтроля усвоения материа-
числения значений многочленов, ум- ла. Ответы на все задания вы найде-
ножение матриц, решение линейных те в приложении. Замечательная кни-
Ни для кого не секрет, что от правиль- уравнений. га, которую можно порекомендовать
ности выбора алгоритма для реше- Рассмотрены алгоритмы срав- программистам.
ния той или иной задачи зачастую за- нения с образом. Алгоритмы на гра-
висит успешность реализации проек- фах: основные понятия теории гра- Издательство: «Техносфера»
та. В этой книге автор рассматрива- фов, структуры и данные для пред- Год издания: 2004
ет практически все наиболее извест- ставления графов, алгоритмы обхода Количество страниц: 368
ные алгоритмы для разного рода за- в глубину и по уровням, а также поис- ISBN: 5094836-005-9
дач. В первой главе вы познакомитесь ка кратчайшего пути. Из главы «Па- Цена: ≈ 200 руб.
с основами анализа алгоритмов ине- раллельные алгоритмы» вы узнаете Книга предоставлена издательством «Тех-
обходимыми для дальнейшей работы о параллелизме, модели PRAM, про- носфера».
92
книжная полка
Руководство по технологиям
объединенных сетей
Cisco system inc
ренных тем: основы теории объеди- талоги, сетевое кеширование, удален-
ненных сетей, технологии локальных ный мониторинг, протокол SNMP, QoS).
сетей (Ethernet, FDDI), распределен- В конце каждой из глав находятся кон-
ные сети (рассмотрены протоколы трольные вопросы, которые помогут
Frame Relay, PPP, SDLC, X.25, техно- лучше усвоить прочитанный матери-
логия ISDN). Раздел «Технологии муль- ал. В приложении вы найдете ответы
тисервисного доступа» представлен на контрольные вопросы, а также крат-
материалом о беспроводных техно- кую информацию о технологиях Token
логиях, а также кабельных и оптичес- Ring, Xerox Network system и Banyan
ких сетях, цифровых абонентских ка- VINES. Хорошая книга, которая может
налах, VoIP, протоколах динамической послужить настольным справочником
транспортировки пакетов. Мосты и пе- для широкого круга системных и сете-
реключатели (прозрачное соединение вых администраторов.
Эта книга – четверное издание фун- сетей, коммутируемые локальные се-
даментального труда, посвященного ти и сети VLAN, MPLS, DLSw). Сетевые Издательство: «Вильямс»
современным сетевым технологиям. протоколы (IP, IPv6, NetWare, AppleTalk, Год издания: 2005
В этой книге, носящей статус спра- DECnet). Очень подробно рассмотре- Количество страниц: 1040
вочного издания, освещены факти- ны все основные протоколы маршру- ISBN: 5-8459-0787-X
чески все сетевые протоколы и тех- тизации (GP, EIGRP, IGRP, NSLP, OSPF, Цена: ≈ 950 руб.
нологии, используемые в настоящее RIP, RSVP, SMRP). Управление сетями Книга предоставлена Издательским домом
время. Нельзя не отметить, что кни- (технологии защиты сетей, сетевые ка- «Вильямс».
га грамотно структурирована и удач-
но поделена на части. Среди рассмот- Обзор книжных новинок подготовил Александр Байрак
Подписные
индексы:
20780*
81655**
по каталогу
агентства
«Роспечать»
87836
по каталогу
агентства
«Пресса
России»
*
годовой
**
полугодовой
УЧРЕДИТЕЛИ
ЧИТАЙТЕ
Владимир Положевец
Александр Михалев В СЛЕДУЮЩЕМ
РУКОВОДИТЕЛЬ ПРОЕКТА
Петр Положевец
НОМЕРЕ:
РЕДАКЦИЯ
Исполнительный директор
Владимир Положевец Маленькая ный подход со стандартными старто-
Ответственный секретарь телекоммуникационная выми скриптами. Рассмотрим, как это
Наталья Хвостова революция сделать на примере SUSE Linux.
sekretar@samag.ru Крупные конференции позволяют
Технический редактор взглянуть на казалось бы давно знако- Аудит
Владимир Лукин мых людей с другой стороны. На про- и дизассемблирование
Редактор шедшем в конце июня мероприятии эксплоитов
Алексей Коршунов
Interop Moscow представилась возмож- Эксплоиты, демонстрирующие нали-
Внештатные редакторы
ность пообщаться со многими предста- чие дыры (proof-of-concept), обычно
Алексей Барабанов
Сергей Супрунов вителями ИТ-индустрии, прямым обра- распространяются в исходных текстах,
зом повлиявшими на ее положение се- однако, основной функционал заклю-
РЕКЛАМНАЯ СЛУЖБА годня. Один из них – Марк Спенсер – чен в shell-коде, анализ которого пред-
тел./факс: (495) 628-8253 благодаря своей увлеченности в от- ставляет весьма нетривиальную за-
Евгения Тарабрина крытом ПО и стечению обстоятельств дачу, требующую инженерного скла-
reсlama@samag.ru смог совершить маленькую револю- да ума, развитой интуиции, обширных
цию в телекоммуникациях... Он пода- знаний и… знания специальных при-
Верстка и оформление рил миру мощную, а главное свобод- емов дизассемблирования, о которых
maker_up@samag.ru ную, замену дорогостоящим коммер- и пойдет речь в следующем номере.
Дизайн обложки
ческим PBX – Asterisk. Марк поделил-
Николай Петрочук
ся мыслями об этом продукте и об от- Windows Firewall:
По вопросам распространения крытом ПО вообще в интервью «Сис- защищаем внутренние
обращайтесь по телефону: темному администратору» сразу после ресурсы сети
(495) 628-8253 (доб. 120) своего выступления на Interop, завер- Современные средства защиты корпо-
шившего конференцию по VoIP. ративных ресурсов от внешних угроз
107045, г. Москва, разнообразны, существуют как аппарат-
Ананьевский переулок, дом 4/2, стр. 1 Современный Linux ные и программные межсетевые экра-
тел./факс: (495) 628-8253 сервер: виртуализируем ны, так и системы обнаружения вторже-
Сайт журнала: www.samag.ru сетевые устройства ния, разбирающие IP-пакеты до уровня
ИЗДАТЕЛЬ
Часть 2 приложений, а также шлюзовые антиви-
Перевод сетевых интерфейсов в кате- русы фильтрующие определенный вид
ЗАО «Издательский дом
горию виртуальных не выйдет за рам- трафика. А что происходит с защитой
«Учительская газета»
ки занимательного эксперимента ресурсов внутренней сети? Рассмотрим,
Отпечатано типографией без четкого практического алгорит- как защищать рабочие станции с помо-
ГП «Московская Типография №13» ма, который позволяет сочетать дан- щью Windows Personal Firewall.
Тираж 11000 экз.
96