Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
2
события
Форум по открытому коду в России «Open Source Forum Russia» и возможность внеконкурсного
27-29 апреля 2005 г. показа своих разработок в демозоне OpenSourceLive.
В конце апреля впервые состоится Open Source Forum Заявки на участие в конкурсе принимаются до 15 марта
Russia – крупнейшее на сегодняшний день мероприятие, 2005 года по адресу http://www.opennet.ru/konkurs. С 15 мар-
целиком посвященное технологиям разработки программ- та по 10 апреля будет проходить голосование, а уже 11 ап-
ного обеспечения с открытым исходным кодом. реля будут подведены итоги и опубликованы результаты ра-
Форум, включающий в себя конференцию и выставку, боты.
пройдет 27-29 апреля 2005 года в Москве, в гостинице «Рэ- В качестве претендентов могут выступать специалис-
диссон САС Славянская». Организаторы – ассоциация РУС- ты, участвующие в разработке программ, распространяе-
СОФТ, агентство Форт-Росс и компания Линукс Инк. мых с открытыми исходными текстами; авторы статей и пе-
Чем особенно интересно данное мероприятие? реводов документации; энтузиасты, поддерживающие па-
! Многие широко известные в мире гуру открытого кода кеты программ; эксперты, предоставляющие консультации
и главы компаний, занимающихся открытым кодом, уже в веб-форумах, новостных конференциях и почтовых рас-
подтвердили свои выступления в программе. Это Jon сылках.
maddog (Linux International), Richard Seibt (Novell), David Кроме бесплатного участия в московском форуме, по-
Axmark (MySQL), Larry Wall (Perl), Alex Pinchev (RedHat) бедители конкурса ОpenNet.ru получат комплект призов от
и другие. компании LinuxCenter. От редакции журнала «Системный
! Во время форума будет постоянно работать выставка, администратор» обладатели призовых мест получат в по-
два раздела которой будут посвящены демонстрации дарок бесплатную подписку на издание на 2005 год. Для
наиболее интересных решений (в разделе Linux City – одного из участников, не вошедшего в тройку лидеров, на
как различные предприятия и организации полностью основании решения администрации OpenNet.ru будет пре-
функционируют на Linux, и в разделе OpenSourceLive – доставлен сертификат на покупку книг на сумму 3000 руб.
лучшие приложения и решения на открытом коде, ото- Планируется, что проводимое в рамках OpenNet.ru ме-
бранные к демонстрации на конкурсной основе). роприятие получит продолжение в серии конкурсов, направ-
! Форум поддержан Министерством ИТ и связи и Мини- ленных на поддержание и стимулирование русскоязычных
стерством экономического развития и торговли. Вопро- разработчиков открытых программ.
сам использования открытого кода в государственных
структурах будет посвящен один из дней конференции. Международная специализированная
выставка-конференция
Программный комитет включает представителей все- Infosecurity Russia
мирно известных вендоров, лидеров разработки программ- 7-9 сентября 2005 г.
ного обеспечения, представителей ведущих отраслевых Выставочное объединение «Рестэк» совместно с компани-
министерств и крупнейших ИТ-ассоциаций как РУССОФТ ей Reed Exhibitions объявляют о проведении международной
и ITAA. Форум по открытому коду в России получил под- специализированной выставки-конференции Infosecurity
держку Всемирного Альянса ИТ-ассоциаций (WITSA). Russia.
Программный комитет отбирает темы и выступления для Выставка пройдет 7-9 сентября 2005 года на одной пло-
широкого обсуждения и профессиональных дискуссий: щадке с LinuxWorld Russia и StorageExpo в выставочном ком-
! управление проектами при разработке ПО с открытым плексе «Гостиный двор» (Москва, ул. Ильинка, д. 4).
кодом; В рамках выставки Infosecurity 2005 предусмотрена на-
! безопасность программных продуктов и технологий на сыщенная деловая программа, которая включает в себя кон-
базе ПО с открытым кодом; ференцию, «круглые столы», семинары и презентации для
! обучение персонала ведению разработок в среде ПО с специалистов отрасли.
открытым кодом; На выставке Infosecurity 2005 будут представлены про-
! особенности разработки и оказания коммерческих ус- дукты и решения мировых лидеров отрасли информаци-
луг по разработке ПО с открытым кодом; онной безопасности, таких как Cisco Systems, CPS, Hewlett-
! сравнение характеристик ПО с открытым кодом и зак- Packard, McAfee (Associates), Nortel, PatchLink Corporation,
рытого ПО. RedHat, SafeBoot, Sun Microsystems, Symantec, Veritas, а
также ведущих российских фирм, таких как АМТ Груп, Ди-
Подробную информацию об участии в выставке и кон- алогНаука, Информзащита, Инфосистемы Джет, Корпо-
ференции вы можете найти на сайте по адресу: http:// рация ЮНИ, Компьюлинк, Лаборатория Касперского, ЛА-
www.opensource-forum.ru. Ждем вашей регистрации на сай- НИТ, ЛанКрипто, МОО «АЗИ», Элвис Плюс, Aladdin, Digital
те или по электронной почте: info@fort-ross.ru. Security, InfoWatch, Positive Technologies, Protection
Technologies, Rainbow Technologies, SecurIT и других.
Конкурс Посетить экспозицию выставки Infosecurity 2005, а также
Стартовал первый конкурс разработчиков открытого про- послушать любой из докладов экспертов абсолютно бесплат-
граммного обеспечения, проводимый проектом OpenNet.ru но может каждый специалист по информационной безопас-
совместно с ассоциацией РУССОФТ, компанией LinuxCenter ности, предварительно зарегистрировавшийся на официаль-
и журналом «Системный администратор». Трех победителей ном веб-сайте выставки www.infosecuritymoscow.com с мар-
ждет бесплатное участие в специализированном форуме та 2005 года. Следите за обновлениями на сайте!
4
администрирование
РОМАН МАРКОВ
«Системная интеграция». К сожалению, не все IT-специа- При этом понятие «интеграция» подразумевает реали-
листы четко понимают смысл этого выражения. Сегодня мы зацию единых механизмов взаимодействия IT-ресурсов и
попробуем разъяснить значение этого популярного в обла- пользователей, комплексные меры безопасности на уровне
сти информационных технологий термина, а также дадим всей информационной структуры предприятия, создание ад-
рекомендации по самостоятельному осуществлению этой министративной политики работы в сети, регламент функ-
задачи силами собственного IT-отдела. ционирования отделов технической поддержки, системных
Проект системной интеграции в разрезе информацион- администраторов и руководителей IT-структур.
но-технического обеспечения предприятия – это комплекс Помимо этого, важным условием для успешного внедре-
действий, направленных на автоматизацию рабочих про- ния проекта является реализация всех этапов автоматиза-
цессов и увеличение эффективности труда сотрудников при ции одной организацией (структурным подразделением),
помощи вычислительной техники, а также на повышение имеющей опыт создания и сдачи подобных проектов «под
безопасности корпоративной сети. ключ».
6
администрирование
С чего начать? реть «лишнюю пару» – дополнительный провод (или не-
Попробуем описать общие концепции такого проекта, а так- сколько – все зависит от задач), который не будет исполь-
же типичные ошибки и трудности, с которыми придется зоваться сразу, однако при необходимости легко вводится
столкнуться на различных этапах работы. Автор статьи яв- в общую схему коммутации. Это поможет в будущем избе-
ляется руководителем отдела системной интеграции IT-ком- жать проблем с потерей скорости при резком увеличении
пании и принимает прямое участие в таких проектах. Опи- количества рабочих мест в соседних зданиях/помещениях.
санные ситуации основаны на реальных событиях, проис- Телефонная сеть вообще является камнем преткновения
ходящих в процессе взаимодействия с участниками проек- при расширении компании. В случае с масштабированием
та. Как было сказано выше, «системная интеграция» – гло- компьютерной сети всегда можно выйти из положения (пусть
бальный процесс, поэтому участниками проекта в той или и ценой потери скорости передачи данных) установкой до-
иной мере являются все сотрудники фирмы. В связи с этим полнительного сетевого коммутатора в помещение, где
и появляется необходимость в создании административных сгруппировались новые рабочие места. К сожалению, со
правил для всех подразделений предприятия. Впрочем, обо стандартной телефонией такой фокус не проходит и при
всем по порядку. Опишем порядок как административных, необходимости увеличить количество телефонов в опреде-
так и технических мер. ленном помещении приходится тянуть туда новые прово-
Существуют два варианта развития проекта: да. В этом случае и можно будет использовать «лишний
! Вы хотите построить на своем предприятии всю IT-струк- провод», который был заблаговременно оставлен при пер-
туру «с нуля» и «под ключ». вичной прокладке сети. Причем задействовать витую пару,
! У вас уже есть функционирующая сетевая инфраструк- которая была запланирована под локальную сеть с некото-
тура, которую необходимо упорядочить. рой избыточностью, оказывается гораздо удобнее, так как
по стандартной витой паре можно прокинуть сразу несколь-
Как правило, первый вариант всегда проще, хотя и в ко телефонных линий.
этом случае обязательна разработка плана и концепций. В Постарайтесь при начальном монтаже максимально об-
противном случае в итоге вы получите вариант №2 и нача- легчить себе дальнейшую жизнь. Справедливость поговор-
ло новой попытки системной интеграции. Рассмотрим пер- ки «Два переезда равны одному пожару» много раз прове-
вый вариант как основу построения корпоративных систем, рена на практике, поэтому попробуйте приложить все уси-
а затем на его базе проанализируем возможные пути мо- лия, чтобы спланировать это еще на этапе проектирования
дификации уже существующей инфраструктуры. кабельных систем. Помимо этого, не стоит забывать об уже
прочно держащих позиции технологиях беспроводных се-
Кабельная система – все «с нуля» тей. В последние годы оборудование для построения бес-
Как «театр начинается с вешалки», так и любая IT-система проводных сетей наконец-то стало удовлетворять тем тре-
начинается с физических коммуникаций. Проще говоря, с бованиям, которые возникают при работе пользователей с
проводов (или беспроводных коммуникаций). Именно гра- современными сетевыми приложениями, так что их приме-
мотное проектирование с учетом дальнейшего роста ком- нение в помещениях с прямой видимостью (или с незначи-
пании, а также качественная разводка кабельных систем и тельными перекрытиями) является прекрасной альтерна-
определяет дальнейшие возможности масштабирования су- тивой проводным системам. Однако следует помнить, что
ществующей сети. стремиться построить полностью беспроводную сеть не
Старайтесь сразу строить предварительные расчеты и стоит – соединения между помещениями/этажами лучше
планы таким образом, чтобы свести все коммуникации (ло- сделать на кабельной основе.
кальная сеть и телефония) в единый центр коммутации. Как
правило, это коммутационный шкаф-стойка для установки Оборудование
в нем патч-панелей и оборудования. Именно здесь рекомен- После того, как все кабельные системы спроектированы и
дуется сконцентрировать все проводные коммуникации для построены, можно приступать к закупке нового оборудова-
их дальнейшей коммутации и распределения. Кажущиеся из- ния и модификации устаревшего. Тут следует руководство-
лишними трудозатраты по организации описанной схемы с ваться многократно описанными принципами соответствия
лихвой оправдаются дальнейшей экономией времени при ре- поставленных задач и необходимой для этого техники.
организации фирмы (переезды отделов в другие помеще- Прежде всего необходимо напомнить основную мысль, ко-
ния, добавление рабочих мест и т. п.). Статистика показыва- торую, к сожалению, очень часто игнорируют: не экономь-
ет, что в средних и крупных компаниях примерно 30% слу- те на узлах, которые являются критичными по отношению
жащих раз в год меняют свое рабочее место в связи с опи- к работоспособности всей системы. Практика показывает,
санными выше событиями. И именно по этой причине все- что возможность сэкономить хотя бы сотню долларов час-
гда необходимо планировать кабельную сеть таким образом, то приводит к тому, что закрываются глаза на обратную
чтобы количество розеток было большим, чем нужно для сторону медали – итоговую надежность системы. Как пра-
удовлетворения сегодняшнего спроса. При масштабирова- вило, руководители, принимающие решения в области фи-
нии сети такой избыток дает возможность пользователям и нансирования, не в состоянии оперировать техническими
гостям беспроблемно мигрировать внутри офиса. понятиями. Зато они прекрасно знают и понимают значи-
Всегда необходимо помнить, что и в глобальных комму- мость таких терминов, как «убытки в результате простоя
никациях (это могут быть как соединения между помеще- предприятия», «цейтнот при формировании результатов»,
ниями, так и между зданиями) рекомендуется предусмот- «налоговая и финансово-экономическая отчетность». И в
8
администрирование
Перейдем к принципам настройки серверного программ- вилам, должны отбрасываться. Причем чаще всего реко-
ного обеспечения, вопросам защиты от вторжений, а так- мендуется применять для защиты «режим молчания». Зап-
же настройке рабочих станций для взаимодействия с сер- рещающие правила систем маршрутизации при поступле-
верами и между собой. Акцентируем ваше внимание, что в нии соответствующего пакета отправляют ответ о том, что
статье не приводится инструкций по настройке конкретно- запрошенный ресурс запрещает подключение к нему. При
го программного обеспечения или оборудования, а даются соблюдении режима молчания такой пакет игнорируется,
общие рекомендации, следуя которым вы получите макси- имитируя выключенное или несуществующее устройство.
мально защищенную IT-структуру. Также не указывается Для настройки таких систем необходим специалист, хоро-
никаких предпочтений при выборе операционных систем шо представляющий работу стека протокола IP. Для боль-
для реализации проекта. Автор ни в коей мере не претен- шей надежности рекомендуется использовать аппаратные
дует на непогрешимость указанных методов, а всего лишь маршрутизаторы/межсетевые экраны. Абсолютным лиде-
делится своим опытом реализации подобных проектов. ром в этой области является компания Cisco Systems. Од-
Практика показала, что после сдачи таких сетей у заказчи- нако их продукты отличаются очень высокой стоимостью
ков не возникает необходимости полной реорганизации, а (проверенная надежность не бывает дешевой). В последнее
масштабируемость позволяет легко вводить в эксплуата- время на рынок вышли многочисленные компании, пред-
цию новые сервера, рабочие места и программное обеспе- лагающие недорогую альтернативу подобным продуктам.
чение. Практически все производители сетевого оборудования
Прежде всего необходима логическая структура, кото- имеют в ассортименте решения для построения защитных
рая будет объединять все учетные записи для пользовате- систем эконом-класса (маршрутизаторы со встроенными
лей, компьютеров и серверов в одно целое. Это «домен». пакетными фильтрами, VPN-маршрутизаторы). Наиболее
Обращаем внимание, что понятие «домен» вовсе не под- надежным окажется решение с использованием каскадно-
разумевает обязательное использование продуктов го комплекса защиты. Например, последовательного ис-
Microsoft, как многие ошибочно считают. «Домен» в пере- пользования аппаратного маршрутизатора и шлюзового
воде означает «область», «район». То есть в нашем случае сервера с работающими на нем средствами маршрутиза-
домен – это логическое объединение для централизован- ции и протоколирования.
ного управления. Домен отличается от рабочей группы тем, Следующие шаги также неразрывно связаны с досту-
что данные о всех структурных единицах, в него входящих, пом во внешний мир. Это использование антивирусных
хранятся в единой центральной базе данных, что сильно мониторов и сканеров корпоративного уровня, а также обя-
упрощает администрирование системы в целом. зательное создание внутреннего почтового сервера, отве-
Внутри домена необходимо спланировать разделение чающего за перенаправление всей электронной почты ком-
упомянутых структурных единиц на группы. Это упростит пании. Акцентируем внимание на словосочетании «корпо-
дальнейшее делегирование прав на пользование ресурса- ративный уровень». Помните, что в системе IT-безопасно-
ми. Помните, что основой построения защищенной среды сти компании не должно быть звеньев, хоть каким-то обра-
является принцип «что не разрешено, то запрещено» и ни зом зависящих от решения пользователя. Понятие «корпо-
в коем случае не наоборот! Действительно, по умолчанию ративный антивирусный монитор и сканер» означает, что
при начальном вводе систему в эксплуатацию никто (кро- это программное обеспечение настраивается и устанавли-
ме администратора, разумеется) не должен иметь доступа вается администратором системы, автоматически прове-
никуда. Абсолютно! После этого можно делегировать груп- ряет наличие обновлений, распространяется на всю сеть, а
пам и структурным единицам определенные права. Упомя- пользователь не в состоянии ни отключить, ни удалить про-
нутый и кажущийся очень простым принцип на самом деле дукт со своей рабочей станции. Такой антивирусный про-
подразумевает под собой систему глобальной безопаснос- дукт при грамотной настройке не будет спрашивать пользо-
ти. Просто необходимо научиться корректно его реализо- вателя о необходимости обновить свои базы, не станет уточ-
вывать. нять, что делать с зараженным файлом, не позволит вме-
шаться в свою работу.
Связь с внешним миром При этом корпоративная почтовая система просканиру-
и безопасность ет всю входящую и исходящую корреспонденцию еще до
Построив систему в виде локальной сети и проверив ее того, как пользователь получит возможность принять ее,
работоспособность (взаимодействие клиент-сервер, кли- отбросит зараженные письма, заблокирует подозрительные
ент-клиент, действие запретов и разрешений), приступаем и явно запрещенные вложения, проверит легитимность от-
к организации связи с внешним миром. Проще говоря, под- правителя и отсутствие его в международных черных спис-
ключаемся к сети Интернет и другим филиалам компании. ках. И только после этого доставит письмо пользователю.
Тут действует тот же универсальный принцип, о котором Как правило, на почтовые системы устанавливают антиви-
мы уже писали. Поэтому перед тем, как подключить кабель рус другого производителя, нежели используется в режи-
от внешнего мира к вашей локальной сети, необходимо убе- ме монитора внутри локальной сети. Таким образом дости-
диться в том, что на устройстве маршрутизации запрещен гается страховка от несвоевременного выхода обновлений
проход любого трафика во всех направлениях. Только пос- какого-либо из них. Неопознанное на почтовом сервере
ле этого можно аккуратно добавлять настройки, которые зараженное письмо будет поймано монитором на локаль-
будут частично разрешать прохождение необходимого тра- ной машине пользователя и наоборот. Для еще большей
фика. Любые запросы, не отвечающие разрешающим пра- надежности можно применять третий способ защиты – ска-
10
bugtraq
12
администрирование
больше, чем аббревиатуры типа «hda3» или словосочета- сия LILO наотрез отказалась дружить с моим ноутбуком,
ния вроде «третий основной раздел». Для уже созданных намертво зависая при загрузке. Пожалуй, этой проблемы
разделов можно назначить точку монтирования, которая вы- можно было бы избежать, если знать о ней заранее: я бы
бирается из выпадающего списка (в соответствии с нау- просто попросил программу не устанавливать свой загруз-
кой, содержащаяся на разделе файловая система – ext2, чик в MBR или вообще никуда – Xandros предоставляет и
ext3 или ReiserFS – может быть смонтирована в /, /usr/local, такую возможность.
/var или /opt). Если вы пожелаете установить Xandros на После всех описанных выше манипуляций программа
непустой раздел, инсталлятор предложит вам сохранить откроет окно «Summary». Проверьте и, если вас устраива-
имеющиеся на нем каталоги /root и /home. Естественно, это ют все введенные параметры, нажмите кнопку Finish, что-
произойдет лишь в том случае, если раздел ранее принад- бы начать копирование файлов. Инсталлятор будет держать
лежал какой-либо UNIX-системе. Среди элементов управ- вас в курсе происходящего, постоянно сообщая о своих те-
ления в окне менеджера разделов присутствует и кнопка кущих занятиях («устанавливаю базовую систему», «на-
«Add», которая, по логике вещей, должна создавать новые страиваю Samba» ) в строке статуса.
партиции, однако по не очень понятным мне причинам она
перманентно отключена. Первый запуск
Другая уникальная в разрезе рассмотренных ранее на- После того как инсталлятор закончит работу, вам будет
стольных дистрибутивов возможность Xandros – это функ- предложено перезагрузить компьютер (в вопросах подоб-
ция выбора пакетов. Начинающий администратор может ус- ного рода Xandros не скупится – соответствующие пригла-
тановить одну из заранее определенных конфигураций: шения выводятся на экран шрифтом такого размера, что
«Minimal Desktop» (минимальный набор, всего 655 Мб), разрешения 1024x768 едва хватает на 3-4 строчки текста).
«Standard Desktop» (стандартный набор – 980 Мб), Выбрав нужный пункт в загрузочном меню и подождав не-
«Complete Desktop» (полный набор, 1156 Мб) и «Custom которое время (как и все настольные дистрибутивы, Xandros
Desktop» (установка по выбору пользователя). Все доступ- тяжеловат на подъем), вы увидите менеджер входа в сис-
ные пакеты сгруппированы по категориям, а их выбор осу- тему, выглядящий на фоне своих аналогов из Linspire или
ществляется путем выставления «галочки» возле имени. Lycoris Desktop/LX несколько аскетично: выпадающее меню
Отрадно, что в этом списке присутствуют и средства раз- с именем учетной записи, поле для ввода пароля и пара
работки. Как правило, производители настольных дистри- кнопок. Как видите, ничего лишнего. После авторизации
бутивов по ряду причин предпочитают не включать столь появляется стандартный стартовый экран KDE, а затем –
мощный инструмент в базовый комплект поставки. мастер первого запуска («First Run Wizard»). Выбрав тип
Разобравшись с программным обеспечением, можно пе- мыши («левая» или «правая»), пользователь попадает на
реходить к вводу параметров сети (Static IP/DHCP, шлюз, поистине интересную вкладку: «Regional Settings» («Регио-
DNS). Здесь все вполне стандартно. Далее инсталлятор нальные настройки»). Здесь можно указать системную ло-
предложит ввести пароль администратора (Administrator), каль, язык рабочего стола, кодировку и раскладку клавиа-
он же – root. При этом в нижней части окна будут располо- туры для текущего пользователя. Для каждого из этих па-
жены две «галочки», одна из которых – «Enforce strong раметров (кроме, к сожалению, языка рабочего стола) дос-
passwords» («Требовать сильные пароли») – сейчас пред- тупны «русифицированные» варианты ответа. Лично я ос-
ставляет для нас особый интерес. Если она находится во тановился на следующем наборе: локаль – ru_RU, кодиров-
включенном состоянии, то отделаться паролем «123456», ка – KOI8-R, раскладка – Russian. После этого Xandros сра-
который, не пикнув, проглатывали Linare, Linspire и Lycoris зу же заговорил по-русски, весьма неплохо, хотя и с «ак-
Desktop/LX, уже не удастся. Второй флажок – «Make user центом». Шрифты, используемые системой для отображе-
home folders private» («Сделать домашние каталоги пользо- ния кириллицы, выглядят ничуть не хуже латинских, благо
вателей личными») – просто запрещает автоматический до- в стандартную поставку Xandros (в том числе, Xandros OCE)
ступ к домашним каталогам пользователей по сети. Завер- входит некоторое число коммерческих фонтов от Bitstream.
шив эти манипуляции, можно приступать к созданию не- Правда, моноширинный кириллический шрифт, использу-
привилегированных учетных записей. Рекомендуется сде- емый в эмуляторе терминала, почему-то странно двоится,
лать хотя бы одну из них, и использовать ее для повседнев- однако этот огрех можно считать мелочью на фоне того,
ных надобностей. При включенной опции «Enforce strong что творится с поддержкой русского языка в иных конкури-
passwords» к паролям простых пользователей предъявля- рующих продуктах (любознательного читателя мы отсыла-
ются те же требования, что и к паролю администратора. ем за подробностями к более ранним статьям данного цик-
Однако пустой пароль инсталлятор вполне устраивает. ла [1, 2, 3]). Для нормальной работы с системой следует до-
В вопросах установки дискового загрузчика Xandros так- установить язык US. English. Это можно сделать с помощью
же проявил неординарную проницательность и учтивость. контекстного меню стандартного переключателя раскладок
Инсталлятор корректно определил уже установленные на KDE, «обитающего» в системном лотке. Несмотря на несом-
компьютере операционные системы: Mandrakelinux и ненные достижения в области «лингвистики», Xandros был
Windows 2000 и добавил их в свое меню, сохранив, таким и остается иностранцем, поэтому пользоваться родным язы-
образом, время, которое я традиционно тратил на восста- ком в нем приходится с некоторой долей осторожности. Не-
новление содержимого MBR после деятельности менее которые подводные камни мы обсудим чуть позже.
аккуратных «собратьев». Правда, «покопаться с паяльни- Вслед за региональными настройками вам будет пред-
ком» все же пришлось: включенная в состав Xandros вер- ложено выбрать часовой пояс и установить принтеры (под-
14
администрирование
to CD Prject», ссылкой «Add all to CD Project...» в окне с со- Попробуем подвести итог вышесказанному. Xandros,
держимым каталога или простым перетаскиванием (drag- несомненно, один из самых мощных игроков на рынке на-
n-drop). Опыт работы показывает, что для файлов или про- стольного Linux, а неплохая поддержка русского языка и
ектов с русскими именами применим только последний наличие бесплатной версии делает его привлекательным
метод. Очевидно, что подобным образом можно добавлять и для отечественных пользователей. Неопределенность
файлы, находящиеся в различных каталогах или даже на относительно будущего Open Circualtion Edition несколько
различных носителях. Сведения о текущем состоянии про- настораживает, однако если вы твердо решили установить
екта можно получить, щелкнув по его имени в ветви «CD Linux на своем рабочем столе, я бы посоветовал вам иметь
Writer» (рис. 2). В нижней части появившегося окна распо- Xandros в виду. При своей доступности и легкости внедре-
ложена линейка, хорошо знакомая пользователям Ahead ния он может составить достойную конкуренцию распрост-
Nero и отражающая текущий процент заполнения диска. раненным некоммерческим дистрибутивам Linux.
XFM умеет работать с rewritable-носителями (т.е. очищать В заключение цикла статей о настольном Linux я хочу
их) и может создавать аудио-CD. К сожалению, разработ- привести небольшую сводную таблицу рассмотренных нами
чики не предусмотрели поддержку мультисессионных дис- дистрибутивов, чтобы вам было легче сравнивать их меж-
ков, т.е. «записать» на диск получится, а вот «дописать» – ду собой. Предварительно необходимо сделать несколько
уже нет. замечаний. В графе «Стоимость» указан диапазон цен для
В заключение отметим, что в бесплатном Xandros OCE различных моделей продуктовой линейки. Наличие средств
максимальная скорость записи в XFM ограничена 4x (600 разработки и запуска Windows-приложений определялось
Кб/сек). по принципу: «хотя бы в одной редакции продукта в стан-
дартной комплектации». Это означает, что доступность со-
Впечатления от работы ответствующих пакетов в сетях поддержки (например, CNR
В стандартную поставку Xandros входит весьма неплохой Warehouse) в расчет не принималась. Качество поддержки
комплект программ, способный удовлетворить все нужды русского языка оценивалось по пятибалльной шкале, где 1
среднестатистического офисного служащего. Немного соответствует некоему абстрактному дистрибутиву, в прин-
удивляет отстуствие полноценного графического редакто- ципе не способному отображать ничего, кроме латиницы, а
ра, например, GIMP, однако для простых рисунков неплохо 5 – полностью русифицированной системе (ввод и вывод
подойдет и KPaint. В качестве браузера по умолчанию ис- кириллицы на экран и на печать, переведенные системные
пользуется Opera 7.5 (в версии OCE – adware), ее же пред- сообщения, интерфейс программ и т. д.).
полагается применять для работы с электронной почтой.
Ни Mozilla, ни Firefox, ни тем более Evolution в состав
Xandros, как ни странно, не входят. Вообще у разработчи-
ков наблюдается странная неприязнь к приложениям на
базе GTK. Они практически отсутствуют – за исключени-
ем, пожалуй, MP3-проигрывателя XMMS, который искусно
замаскирован под общий стиль оформления (Plastik) при
помощи соответствующей «шкурки». Архитектурно такой
подход оправдан – рабочий стол получается более интег-
рированным, однако, как ловко подметил кто-то из экспер-
тов: «И в мире GTK, и в мире Qt есть приложения, не имею-
щие аналогов». Вряд ли ориентированность на другую ин- Пока верстался номер, 14 февраля в Сети появились све-
терфейсную библиотеку стала причиной нелюбви к GIMP – дения о том, что компания Xandros выпустила в свет третью
вероятнее всего, он просто не влез на диск. Для исправле- версию Open Circulation Edition, восстановив таким образом
ния сложившейся ситуации можно использовать Xandros соответствие между бесплатной и платной версиями. В со-
Networks (http://www.xandros.com/products/home/xn/ став продукта вошли веб-браузер Mozilla Firefox, клиент элек-
xn_intro.html) – продуманную систему для установки и об- тронной почты Mozilla Thunderbird и интернет-телефон Skype.
новления пакетов, бесплатно доступную всем зарегистри- Как и его предшественник, Xandros Desktop 3 Open Circulation
рованным пользователям. Edition будет доступен для свободной загрузки через
Xandros Networks может работать как с собственным BitTorrent. Вероятно, к выходу этого номера из печати, дист-
программным репозитарием, так и с банком программ рибутив можно будет приобрести и в российских интернет-
Debian, компакт-дисками и любыми другими хранилищами, магазинах.
совместимыми с apt. Если автоматическое разрешение за-
висимостей для вас не играет принципиальной роли, с по- Литература:
мощью Xandros Networks можно установить или удалить 1. Синицын В. Заметки о Linare. – журнал «Системный
любой пакет в формате DEB и RPM. Помимо свежего ПО администратор», №11, ноябрь 2004 г.
через сеть Xandros Networks распространяются новости, 2. Синицын В. Linspire одним глазком. – журнал «Систем-
уведомления и патчи. Таким образом, эта программа пред- ный администратор», №12, декабрь 2004 г.
ставляет собой мощный инструмент для сопровождения и 3. Синицын В. Linux из Редмонда: обзор Lycoris Desktop/
управления системой, но, к сожалению, ее детальное рас- LX. – журнал «Системный администратор», №1, январь
смотрение выходит за рамки данной статьи. 2005 г.
АНДРЕЙ ЕЛСУКОВ
В этой статье я хочу обобщить свой опыт по сборке релиза не существует, то следующие компоненты для вас не важ-
операционной системы FreeBSD. Создание релиза – не та- ны, если же нет, то идём по пунктам.
кая уж сложная задача, но достаточно длительная и при
некоторых обстоятельствах может продолжаться дольше, CVS-репозитарий
чем ей необходимо. Да и к тому же описание этого процес- Эта «свалка файлов» в архиве на данный момент у меня
са на русском языке мне найти не удалось. Надеюсь, что занимает порядка 500 Мб. Чтобы получить репозитарий –
статья поможет желающим собрать свой релиз и обойти те проще всего воспользоваться CVSup. У меня по крону раз
проблемы, с которыми столкнулся когда-то я. в сутки запускается следующая команда для обновления
репозитария:
Для чего это нужно?
Я вижу несколько причин, для чего может понадобиться со- # cvsup –g –L 2 /mnt/cvs/cvs-supfile
здать релиз ОС FreeBSD в «домашних» условиях:
! не всегда есть время, средства, возможность покупать где конфигурационный файл CVSup выглядит так:
свежий релиз системы, чтобы иметь его на CD для бо-
лее быстрой установки «свежей» системы; *default host=cvsup2.FreeBSD.org
*default base=/var/db
! хочется иметь под рукой загрузочный инсталляционный *default prefix=/mnt/cvs/ncvs
диск системы со специфическими настройками: устано- *default release=cvs
*default delete use-rel-suffix
вочный диск STABLE-ветки; диск с обновленными драй- *default compress
верами, например для RAID-контроллеров; с определен-
src-all
ным набором скомпилированных пакетов; с архивами ports-all
исходных файлов некоторых программ для компиляции doc-all
cvsroot-all
из «портов»;
! хочется всё знать и уметь. Лучше всего, если вы достанете архив репозитария, пусть
даже старый у своего знакомого или ещё где-то – сэконо-
Кто-то, возможно, предложит свои причины, для меня мите кучу времени и трафика. Поддержание репозитария
достаточно и этих. в «свежем» состоянии уже не так накладно, так что, сде-
лав один раз, использую и сейчас.
Что нам необходимо для начала?
Как это ни банально, нужна машина под управлением ОС Архивы исходных файлов для сборки портов
FreeBSD. Причём желательно, чтобы версия системы была Не пугайтесь, дистрибутивы для всех портов нам не понадо-
из той же ветки, что и версия будущего релиза (почему «же- бятся. Но и перечислять каждый порт довольно утомитель-
лательно» – расскажу позднее). Если ваша машина под- ное занятие, да и от релиза к релизу этот список может раз-
ключена к Интернету и проблемы с ценой трафика для вас личаться, поэтому я немного обобщу:
16
администрирование
! для сборки проекта документации понадобятся исход- которых может фатально сказаться на дальнейшей сборке
ные файлы для портов, список которых можно посмот- релиза, например Perl. Так что, если не хотите терять вре-
реть в файле src/release/Makefile.inc.docports; мя, лучше на первый раз закомментировать все опции в
! для создания ISO-образов дисков нужен порт ports/sys make.conf или переименовать этот файл. Возможно, наобо-
utils/cdrtools; рот, вы хотите использовать какие-то специфические оп-
! для создания полноценного miniinst-диска нужны исход- ции, например дополнительную оптимизацию, – дело ваше.
ные файлы Perl и X.org, либо XFree (в зависимости от
версии системы). Переменные окружения
Часть переменных окружения описана в мануале release(7).
В общем-то, вот и всё. Недостающие компоненты мож- Часть можно найти в make-скриптах, используемых при
но будет скачать во время сборки (если есть доступ к Инте- сборке (в папке src/release). Хочу обратить внимание на не-
ренету, то они скачаются автоматически). которые из них:
! DOC_LANG – в ней можно перечислить через пробел
Как это происходит? языки, для которых вы хотите собрать документацию,
Весь процесс сборки я условно разделил на несколько эта- например, DOC_LANG=”en_US.ISO8859-1 ru_RU.KOI8-
пов. Отчасти моя классификация перекрывает ту, что опи- R”. Если вы не укажете языки, то будут собираться все
сана в мануале release(7). Итак, по порядку. возможные, а это довольно долго.
! NOPORTREADMES – при включении в дистрибутив де-
Подготовка к сборке рева портов не будут генерироваться README.html с
Кроме вышеперечисленного я отнёс сюда следующие дей- описанием портов, что существенно ускорит процесс
ствия: сборки релиза.
! получение исходных файлов системы для будущего ре- ! RELEASENOUPDATE – если при сборке у вас возникнет
лиза; ошибка, эта переменная совместно с целью make
! выбор раздела, на котором достаточно свободного ме- rerelease освободит вас от повторного обновления ис-
ста. ходных файлов системы из CVS-репозитария.
! BUILDNAME – имя релиза. Если не зададите, то получи-
К слову сказать, для сборки релиза может понадобить- те в результате что-то подобное FreeBSD-4.11-20050131-
ся от двух до четырёх с небольшим гигабайт свободного STABLE. Ещё рекомендую задавать имя в стандартном
места. виде, как это делается в оригинальных дистрибутивах,
например 5.3-STABLE. Не нужно называть релиз своим
Сборка мира именем, если не хотите в дальнейшем иметь пробле-
Собственно, сборка мира точно такая же, как и при обнов- мы, например, при установке или обновлении портов.
лении системы, подробности – в handbook. ! MAKE_ISOS – если задать, то при завершении всех эта-
пов сборки автоматически будут созданы ISO-образы
Создание chroot-окружения дисков дистрибутива. Советую не спешить с указанием
Весь процесс сборки релиза, сразу после компиляции мира, этой переменной, создать образы никогда не поздно.
происходит в chroot-окружении. Сначала туда инсталлиру- ! hostname – это не переменная окружения, но я отнёс её
ется собранный мир, затем там происходит дальнейшая сюда. Когда вы соберёте релиз, при его установке, в
компиляция системных библиотек, ядер, портов, проекта выводе команды uname, будет фигурировать имя хос-
документации и т. п. та, на котором происходила сборка. Из эстетических
соображений на время сборки можно сменить имя хос-
Создание дистрибутива та командой hostname.
Это заключительная стадия, включает в себя компиляцию
указанных ядер, создание структуры каталогов дистрибути- «distfiles» для портов
ва, размещение архивов бинарных файлов и установочных Как я уже говорил, для сборки релиза понадобятся дистри-
скриптов, создание каталога для инсталляции с FTP, созда- бутивы некоторых портов. Если у вас уже есть скачанные
ние ISO-образов дисков. дистрибутивы, вы можете указать скриптам их местополо-
жение, и они не будут скачиваться снова. Для этого исполь-
На что следует обратить внимание? зуется переменная окружения RELEASEDISTFILES. Если вы
Рекомендую прочитать Makefile в каталоге src/release. Из него пользуетесь системой портов и в вашем дереве есть ката-
можно почерпнуть довольно много полезной информации. лог ports/distfiles, то переменную можно не определять, этот
Так же обязательно прочитать мануал release(7) и желательно каталог будет скопирован в chroot-окружение (наверное,
просмотреть все файлы, на которые он ссылается. стоит задуматься о том, сколько места он занимает).
18
администрирование
Я не проверял, будет ли этот способ работать при сбор- Перед сборкой ISO-образов в 5-й версии FreeBSD не-
ке релиза 5-й версии FreeBSD, находясь в окружении 4-й, обходимо создать пакеты xorg и perl5. Если делать всё «по
но не вижу причин, по которым сборка может не удастся. правилам», то для создания пакетов должен использовать-
Различие только в том, что собирать нужно будет не ся отдельный сервер, так как других лишних серверов у
mdconfig, а vnconfig и вместо монтирования devfs создавать меня в наличии нет, я использую этот же.
файлы устройств с помощью скрипта /dev/MAKEDEV. Технология такая:
! Создаётся каталог ${CHROOTDIR}/usr/ports/packages.
Приступим к сборке ! В chroot-окружении создаются необходимые пакеты вме-
Процесс сборки релиза опишу именно так, как делаю его я. сте со всеми зависимостями при помощи make package-
Начальные данные: recursive.
! Рабочий сервер, у которого есть доступ в Интернет, на ! По имеющимся пакетам создаётся файл INDEX.
нём находятся CVS-репозитарий и каталог distfiles с ди- ! Каталог packages копируется в ${CHROOTDIR}/R/cdrom/
стрибутивами для сборки портов. disc1/.
! Ещё один сервер, на котором я ставлю эксперименты,
он находится внутри локальной сети без доступа в Ин- По первым двум пунктам вроде бы вопросов быть не дол-
тернет. жно, а вот о создании файла INDEX расскажу подробнее.
! Доступ к CVS-репозитарию осуществляется по NFS. Я использовал для его создания свой скрипт, поэтому
! Собирать буду FreeBSD 5.3-STABLE, т.е. с CVS-тэгом не заметил, как в версии 5.3 появился скрипт src/release/
RELENG_5. scripts/mkpkgindex.sh.
Мой скрипт выглядит так:
Подготовка
#!/usr/local/bin/perl
# cd /usr/home
# mkdir release foreach(`ls All/`) {
chop;
# mount_nfs –o rdonly server:/usr/home/cvs /mnt s/\.t.z$//;
# cvs –Rd /mnt/ncvs co –Pr RELENG_5 src
# cd src/ `grep -E "^$_" ../INDEX-5 >> INDEX`;
}
# mv /etc/make.conf /etc/make.conf.old
# make –j8 buildworld
# cd release/
# vim start.sh Итак, для минимального дистрибутива нужны пакеты
perl и xorg, создаём их и копируем на «будущий» диск:
После сборки мира я создаю скрипт примерно со сле-
дующим содержанием: # mkdir /usr/home/release/usr/ports/packages
# cp mkindex.pl /usr/ports/packages
# chroot /usr/home/release
make –j8 CHROOTDIR=/usr/home/release BUILDNAME=5.3-STABLE ↵ # cd /usr/ports/lang/perl5.8 && make package-recursive
CVSROOT=/mnt/ncvs RELEASETAG=RELENG_5 ↵ # cd /usr/ports/x11/xorg && make package-recursive
DOC_LANG=”en_US.ISO8859-1 ru_RU.KOI8-R” ↵ # cd /usr/ports/x11/xorg-manpages && make package-recursive
NOPORTREADMES=yes RELEASENOUPDATE=yes release # cd /usr/ports/packages
# ./mkindex.pl
# rm mkindex.pl
-j8 –максимальное количество make-процессов, которое мо- # cp –PRv /usr/ports/packages /R/cdrom/disc1/
# exit
жет работать параллельно (сервер у меня двухпроцессор-
ный, со SCSI RAID-5); RELEASENOUPDATE – это на буду- Теперь можно создавать ISO-образы, исправляем файл
щее (чтобы не забыть), для цели «release» эта переменная start.sh, добавив переменную MAKE_ISOS=yes, и запуска-
не используется. ем start.sh. Установится порт cdrtools и создадутся два об-
NFS-каталог server:/usr/ports/distfiles можно примонтиро- раза диска.
вать сейчас в /usr/ports/distfiles или позже. На этом всё.
КОНСТРУКТИВНЫЙ DIALOG
СЕРГЕЙ СУПРУНОВ
Думаю, вам приходилось сталкиваться с работой утилиты Нужно заметить, что версии этой утилиты для Linux и
dialog, входящей в состав большинства UNIX-систем (вклю- для FreeBSD несколько отличаются. Данная статья будет
чая FreeBSD и практически все дистрибутивы Linux). Для посвящена версии, входящей в состав FreeBSD по умолча-
Linux она часто используется в конфигурационных сцена- нию (конкретно – FreeBSD 5.3), а в завершение я скажу не-
риях, во FreeBSD ее можно встретить при установке неко- сколько слов об особенностях dialog в Linux.
торых приложений из коллекции портов (например, oops, Если в командной строке набрать «dialog» без парамет-
php). Она позволяет создавать простейшие диалоговые ров, то будет выведена справка по использованию утили-
окна для взаимодействия с пользователем, используя псев- ты. Нужно заметить, что богатством функций она не бле-
дографику (как в sysinstall). Конечно, для «ортодоксально- щет. Так, с ее помощью можно задать пользователю воп-
го» системного администратора любое отступление от ко- рос, требующий ответа «Да» или «Нет», отобразить содер-
мандной строки – кощунство, однако интерактивность в жимое файла или результат работы какой-нибудь коман-
ряде случаев может быть весьма полезной. ды, запросить ввод строки, предложить выбрать одну или
20
администрирование
несколько альтернатив из списка, создать меню, отобразить strerr (имеющий дескриптор 2) в файл с помощью такой кон-
список некоторых значений в виде дерева. Dialog не позво- струкции: 2> apctl.tmp. В дальнейшем сохраняем содержи-
ляет комбинировать несколько элементов в одном окне (на- мое этого файла в переменной $COMMAND и дополняем
пример, группу полей ввода), то есть если вы решите ис- полным именем утилиты apachectl. Таким образом, в пере-
пользовать его для разработки сценария настройки сете- менной $COMMAND оказывается команда, которую нужно
вых интерфейсов, то такие параметры, как IP-адрес, мас- исполнить. Теперь уточним у пользователя, действительно
ка, шлюз по умолчанию, придется запрашивать поочеред- ли он хочет выполнить эту команду, для чего используем
но в отдельных окнах. Тем не менее на базе этой утилиты еще один диалог типа «Да/Нет». Результат взаимодействия
можно строить достаточно «продвинутые» сценарии. с пользователем в данном случае можно получить из пере-
Синтаксис команды, с вашего позволения, дублировать менной $?, хранящей код возврата последней команды.
не буду. Для разминки сразу напишем сценарий, позволяю- Если была выбрана кнопка «Yes», код возврата будет 0 (ус-
щий управлять сервером Apache – запускать его, останав- пешное завершение).
ливать, выполнять «мягкий» и «жесткий» перезапуск (graceful
и restart соответственно). Обычно для этого используется
утилита apachectl, однако если Apache работает достаточно
стабильно, то ее ключи начинают забываться. Следующий
пример демонстрирует решение поставленной задачи:
#!/bin/sh
# apctl.sh
22
администрирование
лем, удалит временные файлы, с которыми в этот же мо- нейшем используется в следующем диалоге ([Dialog 3b]),
мент времени работает другой экземпляр сценария. поясняя пользователю, что же он должен ввести.
Командой trap регистрируем обработчик для сигналов
0 (нормальное завершение), 2 (SIGINT – прерывание, на-
пример, по Ctrl-C), 9 (SIGKILL – безусловное завершение) и
15 (SIGTERM – программное прерывание). При поступле-
нии одного из этих сигналов будет выполнена команда rm,
удаляющая созданные сценарием временные файлы.
Фрагмент сценария, помеченный как [Dialog 0], выво-
дит окно типа «Да/Нет» с вопросом о продолжении, и при
ответе «Нет» работа сценария завершается.
[Dialog 1] выводит дерево каталогов, корнем которого
является в нашем случае папка www, и пользователь мо-
жет выбрать в нем каталог, в котором следует создать файл
.htaccess. Результат представлен на рис. 2, выбор пользо-
вателя заносится в переменную $HTDIR. Ðèñóíîê 4
Значение, введенное в [Dialog 3b] (рис. 5), заносится в
переменную $ERRMSG, и вместе с именем самой опции в
переменной $ERR2HT формируется строка, которая в даль-
нейшем будет записана в файл.
Ðèñóíîê 2
[Dialog 2] (см. рис. 3) выводит список флажков (checklist),
предлагая пользователю отметить те опции, которые он
желает иметь в создаваемом файле .htaccess. Результат
выбора раскладывается по переменным $ERROR и $SSI с Ðèñóíîê 5
помощью утилиты grep. Если та или иная опция не упоми- Следующий диалог ([Dialog 4a]) предлагает пользова-
нается во временном файле, то соответствующая перемен- телю отметить типы файлов, которые будут обрабатывать-
ная останется пустой, что и используется при определении ся SSI-парсером (рис. 6). Поскольку отмеченные пункты при
последующих действий. выводе в stderr (перенаправляемый в файл) заключаются
в кавычки, то при их извлечении кавычки нужно удалить,
для чего используется утилита tr.
Ðèñóíîê 3
Так, если была выбрана опция ErrorDocument, то на эк-
ране появится диалоговое окно, изображенное на рис. 4. Ðèñóíîê 6
За его формирование отвечает вызов dialog, помеченный, После всех этих мучений наконец-то создается файл
как [Dialog 3a]. Здесь реализуется список зависимых кно- .htaccess, и в него записываются сформированные строки
пок (radiolist), позволяющий выбрать один из предложен- (если они не пустые). [Dialog 5] поздравляет пользователя
ных вариантов. В зависимости от выбора пользователя в с этим знаменательным моментом (рис. 7), а [Dialog 6] вы-
переменную $TEXT заносится сообщение, которое в даль- водит на экран полученный результат, демонстрируя рабо-
Ðèñóíîê 7
Вернемся к свойствам утилиты dialog. Цветовую гамму Ðèñóíîê 9
окон и некоторые другие параметры (например, отображе- Ряд параметров (цвет элементов окна, наличие тени
ние тени) можно изменить. Для этого используется конфи- и т. д.) в Linux-версии можно изменить не только в конфи-
гурационный файл, шаблон которого можно создать такой гурационном файле, но и в командной строке с помощью
командой: соответствующих ключей.
Кстати говоря, Linux-версию утилиты dialog можно ус-
$ dialog --create-rc <file> тановить и на FreeBSD. Она доступна в коллекции портов
под именем cdialog (/usr/ports/devel/cdialog).
В результате в файл <file> будет записана конфигура- Помимо консольной версии существует Xdialog, выпол-
ция по умолчанию. Полученный файл следует либо пере- няющий аналогичные функции в графической среде. В том
именовать в .dialogrc и поместить в домашнюю папку же Knoppix его работу можно наблюдать, например, при
пользователя (в результате он будет распространяться на вызове сценария настройки сети (рис. 10). А на рис. 11 еще
все диалоги, запущенные этим пользователем), либо ука- раз показан «Календарь», но уже в исполнении Xdialog.
зать к нему путь в переменной окружения DIALOGRC. Ре-
дактирование конфигурационного файла сложностей выз-
вать не должно, поскольку каждая строчка в нем достаточ-
но хорошо прокомментирована.
Ðèñóíîê 10
Ðèñóíîê 8
Ну и как было обещано – несколько слов об особеннос-
тях dialog в Linux. Так как «стационарного» Linux у меня под
рукой нет, я воспользовался LiveCD-дистрибутивом Knoppix. Ðèñóíîê 11
В отличие от FreeBSD-версии в Linux dialog имеет ряд допол- В завершение статьи отмечу также, что библиотеку,
нительных опций и возможностей. Так, с его помощью мож- лежащую в основе утилиты dialog, можно использовать и
но реализовать диалоги выбора даты (--calendar, рис. 8), непосредственно в своих программах на C/C++. Существу-
выбора файла (--fselect, рис. 9), вывести индикатор выполне- ют также интерфейсы к данной библиотеке для Perl, Python
ния процесса, именуемый в народе «термометром» (--gauge), и Ruby (их можно установить из коллекции портов: devel/
запросить ввод пароля (элемент --passwordbox), можно до- p5-Dialog, devel/py24-dialog и devel/ruby-dialogs соответствен-
бавлять в диалоговые окна дополнительные кнопки и т. д. но). Дополнительную информацию, как обычно, можно по-
Зато в нем нет «деревьев» (элементы --tree и --ftree в лучить на страницах справочного руководства man dialog(1)
FreeBSD-версии), так что рассмотренный нами пример 2 на и dialog(3).
24
bugtraq
ГЕННАДИЙ ДМИТРИЕВ
В январском номере журнала за прошлый год вышла моя чтобы она выполняла функции фильтрации почты как на
статья [1], посвященная настройке почтовых фильтров на вирусы, так и на нежелательную корреспонденцию. В этой
базе MTA Sendmail. Тогда я не предполагал, что она может статье я не буду подробно описывать всю систему цели-
вызвать такой широкий интерес и привести к целому ряду ком, материалов на похожие темы предостаточно. Я лишь
публикаций на совершенно разные темы. Очень большое укажу на некоторые интересные моменты в данной связке
количество откликов со стороны читателей натолкнуло меня и покажу, какими минимальными средствами можно полу-
на мысль поделиться своими новыми изысканиями в обла- чить вполне рабочую систему. Итак, начнем.
сти системного администрирования.
Kaspersky
Немного теории Со времен выхода первой статьи [1], где я рассказывал о
Среди многочисленных систем передачи информации в связке Sendmail и Kaspersky Antivirus for FreeBSD, ничего не
глобальной сети Интернет немаловажную роль играет сис- изменилось. Однако для привязки Kaspersky Antivirus в RHEL
тема передачи электронных сообщений от одного респон- 3.0 нужно будет использовать отдельную утилиту, обеспечи-
дента к другому. Она включает в себя клиентов доставки, вающую шлюз для обмена данными между Postfix и антиви-
протоколы передачи данных и процедуры согласования русной программой. Но все по порядку.
между агентами. Один из основных агентов, отвечающий Первое, с чего мы начнем – это создадим отдельную
за доставку сообщения от одного клиента к другому, полу- группу и пользователей, от имени которых будут работать
чил название MTA (Mail Transfer Agent). На сегодняшний наши демоны. Они пригодятся нам в дальнейшем, когда
день этих агентов насчитывается уже более десяти. В дан- мы будем устанавливать и настраивать спам-фильтры.
ной статье речь пойдет об MTA Postfix.
Некоторое время назад я сменил работу, перейдя в одну # groupadd filter –g 551
# mkdir /var/spool/filter /var/spool/filter/spamd
из лучших фирм Петербурга на должность ведущего инже- # useradd -u 542 -g 551 -d /var/spool/filter/spamd ↵
нера. Системный администратор, занимавшийся управлени- -s /sbin/nologin avpclient
# useradd -u 543 -g 551 -d /nonexistent ↵
ем сетевой инфраструктурой фирмы, был очень занят серь- -s /nonexistent avpdaemon
езным проектом и меня попросили помочь в решении не- # chown avpclient:filter /var/spool/filter/spamd
# cd /var/spool/filter/avp
большой проблемы, связанной с постоянным падением по- # mkdir Bases ctl dev etc proc tmp tst usr var var/log
чтового сервера. Таким образом я получил в свои руки # chown –R avpdaemon:filter Bases ctl tmp tst var
# cd dev
связку из Red Hat Enterprise Linux (RHEL) 3.0 и как-то на- # mknod console c 0 0
строенного Postfix. При всем моем скептическом отноше- # mknod null c 2 2
нии к Linux меня в данной ситуации подогревал жуткий ин-
терес, какими минимальными средствами можно заставить Последние две команды необходимы, так как антиви-
корректно работать данную систему. При этом требовалось, русный демон будет запускаться в chroot-окружении.
26
администрирование
Покончив с деревом каталогов, берем дистрибутив BackupInfected=No
Kaspersky Antivirus for Linux Server (kavwslinux-4.0.3.1.tgz), IfDisinfImpossible=1
распаковываем: [Report]
# Òðåáóåì âåñòè ôàéë æóðíàëà
Report=Yes
# tar xzvf kavwslinux-4.0.3.1.tgz UseSysLog=No
# cd kavwslinux # Ïðîïèñûâàåì ïóòü ê ôàéëó æóðíàëà
ReportFileName=/var/log/kavscan.log
Из всего списка получившихся файлов нам понадобит- # Îòêëþ÷àåì ðàñøèðåííûå ôîðìû çàïèñè â æóðíàëå
ся: AvpUnix.ini, kavdaemon, kavscanner, kavupdater, а также ExtReport=No
RepForEachDisk=No
файл /etc/defUnix.prf. LongStrings=Yes
Перейдем к установке и настройке антивируса. Скопи- # Îòêëþ÷àåì ïîëüçîâàòåëüñêèé ôàéë æóðíàëà
UserReport=No
руем в каталог /var/spool/filter/avp перечисленные выше фай-
лы. В результате должно получиться следующее (обратите # Óñòàíàâëèâàåì ðåàêöèþ íà îáíàðóæåíèå âèðóñà: íå äåëàòü
# êîïèè ïèñåì
внимание на имя владельца подкаталогов): [ActionWithInfected]
InfectedCopy=No
# ls –all # Óñòàíàâëèâàåì ïîðÿäîê äåéñòâèé ïðè ïîäîçðåíèè íà âèðóñ:
# íå äåëàòü êîïèè ïèñåì
drwxr-xr-x 17 root wheel 4096 Фев 14 19:36 .
[ActionWithSuspicion]
drwxr-xr-x 4 root wheel 4096 Янв 15 15:17 .. SuspiciousCopy=No
-rwxr-xr-x 1 root wheel 21713 Янв 14 19:44 avcheck
-rw-r--r-- 1 root wheel 170 Янв 17 11:54 AvpUnix.ini # Óñòàíàâëèâàåì ïîðÿäîê äåéñòâèé â ñëó÷àå, åñëè íå óäàëîñü
drwxr-xr-x 2 avpdaemon filter 4096 Янв 27 13:31 Bases # ðàñïàêîâàòü ôàéë (ñ÷èòàåì åãî ïîâðåæäåííûì): íå äåëàòü
drwxr-xr-x 2 avpdaemon filter 4096 Фев 14 18:15 ctl # êîïèè ïèñåì
-rw-r--r-- 1 root wheel 1865 Янв 15 14:44 defUnix.prf [ActionWithCorrupted]
drwxr-xr-x 2 root wheel 4096 Янв 15 14:31 dev CorruptedCopy=No
drwxr-xr-x 2 root wheel 4096 Янв 15 14:44 etc
-rwxr-xr-x 1 avpdaemon filter 830742 Янв 24 2003 kavdaemon [TempFiles]
-rwxr-xr-x 1 root wheel 803771 Янв 24 2003 kavscanner # Óñòàíàâëèâàåì ïðåäåëüíûé ðàçìåð ñêàíèðóåìûõ ôàéëîâ
-rwxr-xr-x 1 root wheel 647648 Янв 24 2003 kavupdater # è îïðåäåëÿåì êàòàëîã äëÿ âðåìåííûõ ôàéëîâ
drwxr-xr-x 2 root wheel 4096 Янв 15 14:30 proc
UseMemoryFiles=Yes
LimitForMemFiles=6000
drwxr-xr-x 2 avpdaemon filter 4096 Фев 10 14:49 tmp
MemFilesMaxSize=20000
drwxr-xr-x 2 avpclient filter 4096 Фев 15 10:57 tst TempPath=/tmp
drwxr-xr-x 2 root wheel 4096 Янв 15 14:30 usr
drwxr--r-- 3 avpdaemon filter 4096 Янв 15 14:55 var [Customize]
# Îòêëþ÷àåì ïðîâåðêó íåîáõîäèìîñòè îáíîâëåíèÿ âèðóñíûõ áàç.
Перейдем к конфигурационным файлам. Ниже будут # Äàííàÿ îïöèÿ íåîáõîäèìà äëÿ ðàáîòû àíòèâèðóñíîé ïðîãðàììû
приведены лишь параметры, значения которых отличают- # áåç âìåøàòåëüñòâà àäìèíèñòðàòîðà.  ïðîòèâíîì ñëó÷àå
# îíà áóäåò ïðîñèòü îáíîâèòü áàçû êàæäûé ðàç ïðè çàãðóçêå
ся от принятых по умолчанию. UpdateCheck=No
# Îòêëþ÷àåì âñå ëèøíèå ïðåäóïðåæäåíèÿ íà êîíñîëè ñåðâåðà
OtherMessages=No
AvpUnix.ini RedundantMessage=No
DeleteAllMessage=No
[AVP32]
# Ìåíÿåì ïóòü ê îñíîâíîìó êîíôèãóðàöèîííîìó ôàéëó Основная идея состоит в том, чтобы максимально упрос-
DefaultProfile=defUnix.prf
тить ведение файлов журнала, и хранить в них только самое
[Configuration] главное: проверен такой-то файл, инфицирован или нет. К
KeysPath=.
# Ïðîïèñûâàåì ïóòü ê âèðóñíûì áàçàì îò êîðíåâîãî êàòàëîãà тем параметрам, которые я менял в этом файле, написаны
BasePath=/Bases комментарии. Остальные параметры не менялись. Как мож-
но заметить, все каталоги прописаны от корневого, в кото-
Конфигурационный файл defUnix.prf описывает дей- ром, собственно, и находится антивирусная программа. Все
ствия антивирусного сканера при обнаружении вирусов в дело в том, что дальше мы будем запускать антивирус в
теле сканируемого файла. chroot-окружении (зачем это нужно, будет объяснено чуть
позже). Приведу сценарий для запуска процедуры обнов-
defUnix.prf ления вирусных баз. Он достаточно маленький и состоит
# same section with parameters for objects из двух строчек. Этот скрипт следует прописать в crontab
[Object] для ежедневного выполнения, скажем, в час ночи.
# Óêàçûâàåì êàòàëîã, â êîòîðîì áóäåì ïðîâîäèòü ñêàíèðîâàíèå
# ôàéëà íà âèðóñû
Names=*/tst updater.sh
# Îòêëþ÷àåì ñêàíèðîâàíèå ïàìÿòè è ñåêòîðîâ ëîãè÷åñêèõ òîìîâ
Memory=No #!/bin/sh
Sectors=No /var/spool/filter/avp/kavupdater -y -kb ↵
# Óêàçûâàåì ïàðàìåòðû ñêàíèðîâàíèÿ óïàêîâàííûõ ôàéëîâ, -ui=http://downloads2.kaspersky-labs.com/updates/ ↵
# àðõèâîâ, ñàìîðàçâîðà÷èâàþùèõñÿ àðõèâîâ è òàê äàëåå -b=/var/spool/filter/avp/Bases
Packed=Yes /etc/init.d/kavd restart
Archives=Yes
SelfExtArchives=Yes
MailBases=Yes Сценарий для запуска/остановки демона антивирусной
MailPlain=Yes
Embedded=Yes программы (/etc/init.d/kavd) также необходимо несколько
# Óñòàíàâëèâàåì ðåàêöèþ íà îáíàðóæåíèå âèðóñà â òåëå ïèñüìà модифицировать. Здесь приведены лишь его части, под-
# «3» îçíà÷àåò óäàëåíèå òåëà âèðóñà áåç ïîïûòîê åãî ëå÷åíèÿ
InfectedAction=3 вергшиеся изменению. Остальное можно найти в дистри-
# Òðåáóåì íå àðõèâèðîâàòü ïèñüìî â ñëó÷àå îáíàðóæåíèÿ âèðóñà бутиве AVP.
28
администрирование
report_safe 0 Последние штрихи
report_charset koi8-r Кажется, все хорошо. Почта работает, вирусы отлавливает,
# dns testing спам идентифицируется. Но, как всегда, хочется большего.
dns_available no В связке Sendmail + SpamAssassin в milter (это программа,
# score options предоставляющая транспорт между MTA и почтовым фильт-
score FROM_ILLEGAL_CHARS 1.5 ром) можно было указать, на какой адрес пересылать всю
score HEAD_ILLEGAL_CHARS 1.5
score SUBJ_ILLEGAL_CHARS 1.5 нежелательную корреспонденцию. В Postfix мы воспользу-
score SUBJ_HAS_SPACES 2.5 емся стандартными средствами фильтрации по заголовкам
score NO_REAL_NAME 1.0
score PENIS_ENLARGE 3.5 письма. Однако прежде чем это делать, нам необходимо
score PENIS_ENLARGE2 3.5 проверить, чтобы наш MTA был не ниже версии 2.1. Ранние
score FROM_HAS_MIXED_NUMS 1.0
score FORGED_IMS_TAGS 0.5 версии не поддерживают инструкцию REDIRECT. Находим
score FORGED_MUA_OUTLOOK 0.5 дистрибутив для RHEL 3.0, устанавливаем:
score FORGED_OUTLOOK_TAGS 0.5
score BAYES_80 3.5 # rpm –Uvh postfix-2.1.5-4.rhel3.i386.rpm
score BAYES_90 4.0
score BAYES_99 10.0
# network whitelist
В файле main.cf добавляем строки, осуществляющие
whitelist_from localhost поиск в заголовках письма по регулярному выражению,
сохраненному в /etc/postfix/header.regexp:
В скрипте запуска демона SpamAssassin меняем одну
строку, относящуюся к стартовым параметрам демона. main.cf
header_checks=regexp:/etc/postfix/header.regexp
/etc/init.d/spamd
РЕЖЕМ СПАМ
ДОПОЛНИТЕЛЬНЫЕ МЕТОДЫ
Идет бабулька по подворотням, видит два парня
третьего пинают, она cпрашивает:
– За что это вы его так, сынки?
– Бабка, да это спамер!
– А ну тогда по почкам его! По почкам!
ДЕНИС НАЗАРОВ
Знакомый анекдот? А в реальной жизни вы пробовали под- ников они не набирали. Пришлось разбираться дальше.
считать количество «спама», проходящего через ваш по- Проанализировав протоколы за месяц, я пришел к выводу,
чтовый сервер? Недавний аудит одной финансовой компа- что 20 из этих 22 Гб были просто «спамом». Решено было
нии показал, что через почтовый сервер прошло больше избавлять компанию от этой назойливой почты...
22 Гб почтового трафика в месяц. Я информировал об этом
начальство и со спокойной душой решил, что аудит окон- Итак, мы имеем в наличии
чен, но я ошибся, руководство компании уверяло меня в ! OpenBSD 3.6.
том, что это просто невозможно, т.к. раньше у них был го- ! Postfix 2.1.5 (считаю этот МТА одним из лучших благо-
раздо меньший объем почтового трафика, а новых сотруд- даря гибкости настройки и возможностям).
30
администрирование
! DrWeb 4.32 (отличный антивирус, никогда не подводил, /etc/rc.conf
идеально работает с OpenBSD). spamd_flags="" # for normal use: "" and see spamd-setup(8)
spamd_grey=YES # use spamd greylisting if YES
! Пользователи: примерно 500 человек.
Влючаем spamd и указываем на то, что мы хотим ис-
Задача: Обеспечить максимальную защиту от спама и пользовать Grey Listing.
вирусов, которые вам стремятся подсунуть по электронной
почте. Crontab
0 * * * * /usr/libexec/spamd-setup
Конфигурационный файл похож и для «белого списка», Обязываем удаленный хост здороваться с нами, а не
за исключением директивы msg – она отсутствует. сразу начинать нас забрасывать почтой. Софт, разработан-
ный для рассылки спама, зачастую не умеет работать с
# cat /var/mail/whitelist.txt smtp-командой helo.
192.168.0.0/24
smtpd_helo_required = yes
Важно.
Проверяем наличие «верного» имени хоста для отпра-
all:\ вителей. Иначе отказываем отправителю.
:spamhaus:spews1:spews2:china:korea:whitelist:blacklist:
32
администрирование
smtpd_recipient_restrictions = reject_invalid_hostname, Spam Received See:
reject_non_fqdn_sender, http://www.dnsbl.sorbs.net/lookup.shtml?195.2.80.59;
reject_non_fqdn_recipient, from=<user@domain.name>
reject_unknown_sender_domain,
to=<user@ourhost.com> proto=SMTP helo=<domain.name>
reject_unknown_recipient_domain,
reject_unauth_pipelining,
permit_mynetworks, Система работает, как часы, все четко и точно. Если
reject_unauth_destination, вам не нравится, как spamd распределяет IP-адреса отпра-
reject_rbl_client relays.visi.com,
reject_rbl_client relays.ordb.org, вителей по «черному» и «белому» списку, используем ути-
reject_rbl_client list.dsbl.org, литу spamdb.
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client dnsbl.void.ru,
reject_rbl_client blackholes.mail-abuse.org, # spamdb | more
reject_rbl_client relays.mail-abuse.org,
reject_rbl_client dul.mail-abuse.org, WHITE|12.111.30.74|||1105460517|1105466496|1108576943|2|0
reject_rbl_client relays.ordb.org, WHITE|129.215.166.64|||1106681432|1106683445|1109793856|2|0
reject_rbl_client blackholes.wirehub.net, WHITE|13.16.138.21|||1105587869|1105591107|1108701528|3|0
reject_rbl_client dynablock.wirehub.net, WHITE|130.126.232.30|||1106168619|1106170545|1109281002|6|0
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client list.dsbl.org, WHITE|134.130.3.130|||1107270887|1107274487|1110384920|2|0
reject_rbl_client opm.blitzed.org, WHITE|138.220.29.7|||1105954380|1105956190|1109066641|6|0
reject_rbl_client http.dnsbl.sorbs.net,
reject_rbl_client socks.dnsbl.sorbs.net,
reject_rbl_client misc.dnsbl.sorbs.net, Данный листинг показывает ваши «белый список» и
reject_rbl_client smtp.dnsbl.sorbs.net, Grey Lists. Если вы намеренно хотите добавить в таблицу
reject_rbl_client web.dnsbl.sorbs.net,
reject_rbl_client bl.spamcop.net, хост, помеченный как White, используем параметр -a, что-
reject_rbl_client dev.null.dk, бы удалить -d:
reject_rbl_client blackholes.mail-abuse.com,
reject_rbl_client relays.mail-abuse.com,
reject_rbl_client dialups.mail-abuse.com, spamdb –a xxx.xxx.xxx.xxx
reject_rbl_client relays.ordb.org, spamdb –d xxx.xxx.xxx.xxx
reject_rbl_client list.dsbl.org,
reject_rbl_client multihop.dsbl.org, Примечание. Добавить или удалить можно только IP-
reject_rbl_client argentina.blackholes.us,
reject_rbl_client brazil.blackholes.us, адреса, помеченные как White. Для добавления IP-адреса
reject_rbl_client china.blackholes.us, в ваш «черный список» отредактируйте файл, указанный в
reject_rbl_client cn-kr.blackholes.us,
reject_rbl_client hongkong.blackholes.us, директиве file файла /etc/spamd.conf.
reject_rbl_client japan.blackholes.us, Основная настройка закончена. Остаются «рюшечки».
reject_rbl_client korea.blackholes.us,
reject_rbl_client malaysia.blackholes.us, Спам это, конечно, вредная вещь, но вирусы, трояны и про-
reject_rbl_client mexico.blackholes.us, чее может принести вам еще больше проблем. Приступим.
reject_rbl_client nigeria.blackholes.us,
reject_rbl_client singapore.blackholes.us, Берем последнюю версию DrWeb на сайте http://download.
reject_rbl_client taiwan.blackholes.us, drweb.com/unix/OpenBSD+3.6 и оттуда же фильтр для Postfix.
reject_rbl_client thailand.blackholes.us,
reject_rbl_client turkey.blackholes.us Установка DrWeb очень проста. Нужно распаковать ар-
хив и расположить файлы в системе так, как это сказано в
Строчка reject_rbl_client relays.visi.com … добавляет так readme. Также вам потребуется наличие демонстрацион-
называемую RBL-проверку. Принцип тот же, что и у spamd. ного ключа для запуска антивируса в демо-режиме. Если
Хост проверяется в «черном списке» у всех добавленных понравится работа DrWeb (а я надеюсь, так и будет), то вы
нами «reject_rbl_client», и, если будет обнаружен там, пись- можете без проблем приобрести нормальный ключ.
мо отбрасывается, как спам. Переходим к Postfix. Тут тоже все довольно просто.
После данной настройки системы и Postfix в качестве
MTA в протоколах мы можем наблюдать следующее: /etc/postfix/master.cf
Из протоколов видно, какой IP-адрес и сколько раз пы- filter unix - n n - - pipe
flags=R user=drweb argv=/usr/local/drweb/drweb-postfix ↵
тался соединиться и отправить нам спам. -f ${sender} -- ${recipient}
УНИВЕРСАЛЬНЫЙ ПРОКСИ-СЕРВЕР
– Извини, Пух, – сказала САВА. – Тигра сжевал все
провода от почтового сервера, и почта долго никак
не приходила...
– Провода, – подумал Пух злобно. – Носки вязать из
таких проводов.
Андрей Щербаков
«9600 бод и все-все-все...»
ВАЛЕНТИН СИНИЦЫН
В этой статье мы поговорим о протоколе SOCKS1. С его по- К слову сказать, название протокола не имеет ничего об-
мощью можно решать самые разные задачи: организовы- щего с упомянутыми в эпиграфе чулочными изделиями и яв-
вать защищенный доступ к службам, расположенным за ляется простым сокращением от «SOCK-et-S» – «гнезда»,
межсетевым экраном (firewall), скрывать свой истинный IP- или, в более привычном уху компьютерного специалиста пе-
адрес во время работы с недружелюбными сетевыми ресур- реводе – «сокеты». Термин был предложен создателями в
сами или реализовать универсальный прокси-сервер, под- качестве рабочего варианта, да так и прижился. Как извест-
держивающий любые протоколы прикладного уровня (HTTP, но, сокеты лежат в основе любого API, реализующего сете-
FTP, POP3/SMTP, ICQ и т. д.). К сожалению, несмотря на всю вое взаимодействие – UNIX, Winsock и т. п. Чтобы послать
простоту и богатство возможностей SOCKS, многие систем- данные по сети, приложению достаточно просто записать их
ные администраторы недостаточно хорошо знакомы с ним и в сокет, подобно тому, как это делается при сохранении ин-
не представляют, чем он может быть полезен. Хочется наде- формации в локальном файле. И в том, и в другом случае
яться, что после прочтения данного материала незаслужен- программе не приходится заботиться о происходящем «за
но забытый протокол займет достойное место в их арсена- кулисами». Дополнение пользовательских данных служеб-
ле. Сразу же оговоримся: все последующее изложение бу- ной информацией, разбивка на сегменты с их последующей
дет относиться к пятой версии SOCKS, SOCKS5. Предыду- инкапсуляцией в датаграммы и физическая отправка осу-
щая, четвертая версия (SOCKS4), все еще имеет хождение ществляются другими частями операционной системы – сте-
в Сети, однако ее возможности ограничены. ком TCP/IP и драйверами устройств, о которых приложению
1
Socks (англ.) – носки, чулочки.
34
администрирование
ничего не известно. Такое «разделение труда» позволяет как ICMP, используемый утилитами ping и traceroute, находит-
угодно изменять процедуру доставки сообщений при усло- ся ниже транспортного уровня, а потому соксификации, к
вии, что интерфейс прикладного программирования остает- сожалению, не поддается2.
ся постоянным. Именно эта особенность и лежит в основе Прежде чем отправлять какие-либо данные, клиент дол-
идеологии SOCKS. Основная задача данного протокола – жен пройти процедуру авторизации. Для этого он создает
внедрить в «нормальный» процесс обмена данными некое- TCP-соединение с SOCKS-сервером (стандартный порт –
го посредника, называемого SOCKS-сервером или SOCKS- 1080) и отправляет по нему специальное сообщение, со-
прокси. Когда клиент (поддерживающее SOCKS приложе- держащее кодовые номера поддерживаемых методов
ние: веб-браузер Mozilla, клиент ICQ Miranda IM и др., см. аутентификации (см. таблицу 1). SOCKS-сервер выбирает
ниже) желает отправить какую-либо информацию по сети, один из них по своему усмотрению и сообщает его номер
он устанавливает соединение не с реальным адресатом, а с клиенту. Как легко видеть, аутентификация может отсут-
SOCKS-сервером, который, в свою очередь, пересылает дан- ствова