Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
СЬ
www.samag.ru
ЛИ
Почему MS SQL медленно работает?
Ищем причины
ЛИ
ТЯ Е
Ж ПИ
Строим защищенную беспроводную сеть:
ЗА ДНИ
РА КУ
Настраиваем UPS под Linux
ЛЫ ГО
ТИ РАС
Как восстановить
удаленные файлы под BSD
К У ВО
О
танавливаем Symantec Antivirus 9.0
НИ НО
ТР
в корпоративной сети
Эффективно управляем
С
полями пользователей в AD
БЫ
Контролируем безопасность сети
с помощью OSSIM
КА
И
ЬГ
ЬД О
РА СКА
ТЕ
К
ИС НН
ЕН
УС
БО
НА ТПУ
ИЛ ДА
ТП
НЧ ЖИ
ВО
РА Е О
КО НЕО
АВ СЛ
Л
Л
ХА
ПО
УЕ
ЗА
Так видит журнал читатель, оформивший подписку:
№5(30) май 2005
подписной индекс 81655
www.samag.ru
ПОДПИШИТЕСЬ И ЧИТАЙТЕ!
Роспечать – 20780, 81655
Пресса России – 87836
Интер-почта – тел. (495) 500-00-60
в номере
5 ТЕНДЕНЦИИ 48 Как обнаружить malware-программы?
Универсальный метод.
РЕПОРТАЖ Крис Касперски
kk@sendmail.ru
6 Берегись, «мышь» полетела!
Состоялся Первый Всероссийский слет сисадминов. ЧЕЛОВЕК НОМЕРА
Репортаж с места событий.
Оксана Родионова 56 Пират виртуального мира
rodion@dol.ru «Перевоспитавшийся» хакер Кевин Митник решает
новые головоломки. Теперь он защищает компании
от былых коллег.
АДМИНИСТРИРОВАНИЕ Оксана Родионова
rodion@dol.ru
10 Семь веб-интерфейсов к электронной
почте. Выберите лучший! WEB
Требования мобильности и доступности электронной
почты в любых условиях делают использование про- 60 Ajax: новый канал общения клиента
токолов POP3/IMAP не всегда удобным. На помощь и сервера
приходят системы, обеспечивающие веб-интерфейс После того, как Ajax взяли на вооружение такие веб-ги-
к почтовым ящикам. ганты, как google и gmail, технологией стали интересо-
Сергей Супрунов ваться все: от руководителей крупных проектов до на-
amsand@rambler.ru чинающих веб-мастеров. Алексей Мичурин
alexey@michurin.com.ru
20 Полезные советы: FreeBSD
Сергей Супрунов 66 Устанавливаем DACS
amsand@rambler.ru Установим систему контроля доступа к веб-ресурсам
DACS в минимальной конфигурации, а заодно посмот-
21 Полезные советы: Apache рим на нее в работе. Сергей Яремчук
Сергей Супрунов grinder@ua.fm
amsand@rambler.ru
ПРОГРАММИРОВАНИЕ
22 Обзор систем резервного копирования
Не секрет, что информационные ресурсы любой ком- 72 Развиваем модуль DBI
пании представляют ценность. В сборе, анализе и ис- DBI, Perl-модуль для взаимодействия с базами данных,
пользовании информации задействованы практически используется в доброй половине всех существующих
все сотрудники. Но как ее тяжело добыть, так же лег- Perl-программ. Как его усовершенствовать?
ко ее подчас потерять. Алексей Мичурин
Сергей Яремчук alexey@michurin.com.ru
grinder@ua.fm
IMHO
30 Упаковщики исполняемых файлов
в Linux/BSD 78 В поисках профессиональной этики
Коммерческие продукты с закрытым кодом зачастую сисадминов
распространяются в упакованном виде, что препятс- В Интернете и печатных изданиях встречаются разные
твует анализу, снижает производительность и ухудша- представления о принципах системного администриро-
ет совместимость с UNIX-клонами. Как можно освобо- вания. Попробуем найти в этих вариантах общие черты
диться от упаковщиков? и определить направление совершенствования.
Крис Касперски Алексей Барабанов
kk@sendmail.ru alekseybb@mail.ru
БЕЗОПАСНОСТЬ РЕТРОСПЕКТИВА
40 Zlock: контролируйте доступ 86 Суровая правда, скрытая за «розовыми
к USB-устройствам очками»: история компании Transmeta
У конкурентов оказалась база данных ваших клиен- Компания Transmeta принесла практически совершен-
тов? Сотрудники используют рабочее место для об- ные процессоры в массы, но собственноручно допу-
работки и записи гигабайт личных фотографий с циф- щенные ошибки, жестокая конкуренция и приверед-
ровой камеры на CD? Без надежной системы контро- ливые пользователи не позволили ей завоевать мес-
ля доступа к мобильным устройствам вряд удастся из- то под солнцем. Дмитрий Мороз
бежать подобное. akuji@list.ru
Андрей Гущин
info@securit.ru КНИЖНАЯ ПОЛКА
44 Защищаемся от malware с помощью 92 Обзор книжных новинок
BufferZone Александр Байрак
Обзор проекта BufferZone. x01mer@pisem.net
Сергей Яремчук
grinder@ua.fm 59, 91, 94 BUGTRAQ
Программа конференции
http://www.linuxland.ru/conf.phtml
Информационная поддержка
Контакты:
e-mail: info@linuxcenter.ru
Телефон: (812) 929-09-07
тенденции
IBM не считает OpenSolaris рабочей станции под управлением GNU/Linux. Вместе с тем
проектом Open Source Lenovo будет предоставлять техническую поддержку по Linux
По мнению представителей IBM, проект OpenSolaris нельзя для своих лаптопов – это касается драйверов и технологий
по-настоящему отнести к Open Source, потому что его автор, ThinkVantage. Одной из причин, открывших перспективы по-
компания Sun Microsystems, не желает делиться управлени- лученному союзу, как считает Билл Йори (Bill Iori), ответс-
ем OpenSolaris со сторонними разработчиками. твенный за ThinkPad T Series в Lenovo, является тот факт,
«Sun держит все за огненной стеной. Сообщество не мо- что Linux-ядро теперь обладает лучшей поддержкой таких
жет ничего увидеть, – заявил Дэн Фрай (Dan Frye), вице-пре- используемых в ноутбуках технологий, как спящий режим.
зидент из IBM, ответственный за технологический Linux-центр
в компании, на LinuxWorld Conference and Expo. – Это только HP предоставит поддержку
видимость. Куча маркетинга и никакого сообщества». для Debian GNU/Linux
Фрай отметил, что если Sun хочет превратить OpenSolaris Компания Hewlett-Packard решила расширить круг GNU/
в настоящий продукт сообщества, необходимо перенести Linux-дистрибутивов, по которым она предоставляет тех-
все обсуждение проекта в публичные форумы, чтобы все ническую поддержку, добавив к продукции Red Hat и Novell
желающие видели, что происходит. разрабатываемый сообществом Debian GNU/Linux. Как по-
Джим Грисанзо (Jim Grisanzio) из Sun ответил на эти яснил Джеффри Вейд (Jeffrey Wade), менеджер по мировым
заявления непониманием, почему IBM атакует сообщест- продажам в Open Source и Linux-подразделении HP, у ком-
во OpenSolaris, заметив, что Sun 16 раз представляла ре- пании большое число заказчиков, заинтересованных в ра-
лизы ПО с открытым кодом, а с момента запуска проекта боте с Debian на серверах HP. HP будет оказывать услуги
(что произошло чуть более года назад) сторонними разра- по установке и настройке некоммерческого дистрибути-
ботчиками было внесено 116 добавлений. ва на протяжении времени поддержки серверов. Несмот-
ря на это известие, Red Hat и Novell останутся ключевыми
NetBSD 3.1 готовится к выходу мировыми Linux-партнерами HP. Кроме того, HP не будет
Команда разработчиков свободной ОС NetBSD в рассылке продвигать Debian, и заказчикам придется самостоятель-
netbsd-announce обнародовала план выпуска следующего но скачивать эту систему со всем нужным ПО. HP не наме-
стабильного релиза – 3.1. В соответствии с опубликованной рена формально сертифицировать Debian для своих серве-
информацией первый кандидат в релиз (NetBSD 3.1_RC1) ров, предоставлять для этого дистрибутива предложения
появился 21 августа, второй (3.1_RC2) – через две недели, от таких своих партнеров, как BEA Systems и Oracle.
4 сентября. Финальный релиз 3.1 запланирован на 18 сен-
тября (если не возникнет никаких серьезных проблем с вы- Составил Дмитрий Шурупов
по материалам www.nixp.ru
пущенными RC – в противном случае будет представлен
еще один кандидат в релиз, а релиз отложат еще на 2 не-
дели). В NetBSD 3.1 по сравнению с предыдущим релизом –
3.0 – представлены такие новшества, как поддержка domU
для Xen 3, значительные улучшения в стабильности LFS,
множество других улучшений, исправлений и дополнений.
Я
думала, что еду на турслет. Ну и ре. А эти подозрительные товарищи… зами налить воду ковшиком из ба-
что, что системных администра- бросаются «мышками»! И клавиатура- ка в бутылку. Девушка Лена успешно
торов? Да пусть даже бухгалте- ми. Это они так проверяют, кто дальше с заданием справилась. Народ вокруг
ров! Туристы они и в Африке туристы. кинет. Хм, а ведь не так просто, оказы- ее бурно поддерживал. Но мне все-та-
Но все оказалось совсем не так прос- вается, забросить «мыша» в неболь- ки не верится, что это сисадмины. Иду
то… А поляна под Калугой, где прохо- шой огороженный квадрат. Похоже, по- к палаткам знакомиться. Вот компания,
дят слеты людей всевозможных про- бедители долго тренировались. Инте- играющая в преферанс. Не хочется ме-
фессий, оказалась заколдованным ресно, на ком? Надеюсь, не на своих шать, но что делать…
местом, настоящим Зазеркальем. юзерах… Они вообще любят кидать- – Вы системные администраторы?
ся чем ни попадя на этом слете, как я – Не все. Вот двое.
Глюк №1: погляжу. Вот еще одна игра: предла- – А как отличить системного адми-
Сисадмин-футболист гается пройти по маршруту, попутно нистратора от обычного человека?
Кто эти люди, играющие в футбол и во- выполняя задания. Число ходов ука- – Это сложно, если без компьюте-
лейбол? Нет, не может быть, чтобы это зывает огромный деревянный кубик. ра. Но если люди играют в преферанс –
были сисадмины! Они ведь никогда Алле-ап, бросили! Сколько? Два оч- верный признак!
не расстаются с «мышками» и не отры- ка. Пропускаете ход. Сколько? Одно. – А вы откуда?
ваются от экранов мониторов, их паль- Опять пропускаете. Сколько? Три оч- – Из Ярославля.
цы непрерывно бегают по клавиату- ка! Вам задание: с завязанными гла- – Как вам идея собраться здесь?
6
репортаж
– Хорошая идея! По какому по-
воду собираться, не важно. Просто Подведены итоги конкурсов! ния Дня Сисадмина-2006 на сайте http://
на природу выехать, лапшички сва- Накануне Дня Сисадмина-2006 на сисад- sysadmin.mail.ru проходил конкурс сисад-
рить на костре. минском сайте был проведен конкурс «Сис- минских репортажей. Сисадмины из раз-
админские рекорды». Каждый сисадмин ных регионов рассказывали о том, как они
Глюк №2: мог предоставить на суд пользователей встретили праздник. Победителями стали
Девушка-сисадмин сайта свой рекорд – личный или профес- три системных администратора, которые
На другом конце поляны расположи- синальный. Победители определялись го- по-разному, но очень увлеченно описали
лась Вологда. Подхожу. Теперь уже лосованием. свой отдых на Первом Всероссийском слё-
не я, а меня спрашивают: Главные призы получили Дмитрий Лу- те Сисадминов: Голыженков Алексей, Бе-
– А вы системный администратор? говой – за рекорд о самом большом числе лякова Светлана и Бринько Сергей.
С глубоким изумлением отвечаю, способов передачи данных, Наталья Бак- Все победители получают в качестве
что нет. Ребята огорчены: ланова с зажигательным списком ежеднев- подарка уникальные сисадминские фут-
– А мы уже думали, что встретили! ных рекордов и побед в их организации болки, пакет лицензионного ПО от мага-
По легенде, бывают девушки – систем- и Сергей Заворыкин, описавший рекорд зина Allsoft.ru, обучение в Учебном Цент-
ные администраторы. по самым частым пересадкам. ре Softline и подписку на журнал «Систем-
– И здесь есть? В течение 10 дней после празднова- ный администратор».
– Говорят, вчера была, танцевала
хорошо. ку, до нашей команды заглушки не сни- кера бутылки, висящие на веревочке.
– А системные администраторы хо- мать! Они находятся здесь для безо- Увлеклась зрелищем.
рошо танцуют? пасности, чтобы случайно не сделать – Вы его жена? – раздалось сбоку.
– А чего нет! выстрел. Самое главное – не снимать Ну чем не театр абсурда? Я не жена
– А о чем здесь разговоры идут? – маску во время игры. Если увидите ко- сисадмина, я не сисадминка! А кто я?..
интересуюсь. го-то без маски, по этим людям стре- Не помню.
– О работе… и обо всем осталь- лять не надо. Если гражданский появ-
ном. ляется на поле, опять-таки не стреля- Глюк №3:
– Зачем о работе? ем. У каждого свои дела могут быть Бурные аплодисменты
– Сисадмины – такие люди, что где в этом лесу... Из задумчивости меня вывел звонкий
угодно будут о работе говорить. Организаторы игры помогли на- голос, усиленный динамиками, напом-
Потом я все-таки увидела девуш- деть маски бойцам и на прощание нивший, что это все же турслет адми-
ку сисадмина из Учкудука и поняла, спросили: нистраторов, а не второй сон Веры
что это не миф, а правда. Девушка – Здоровые все? Никому плохо Павловны:
была обаятельна и весела – она пони- не станет? – Все, кто приехал, подойдите
мала, какая роль ей досталась. Гово- Нервно отсмеявшись, мужчины уш- в штаб. Штаб – это синяя палатка. Там
рят, на поляне можно было найти да- ли в лес играть в войнушку. бегает и ждет вас Полкошки, у которой
же несколько системных администра- А я осталась наблюдать, как сисад- вы зарегистрируетесь. Там же вы мо-
торов женского пола – этакий слет си- мин из Вологды расстреливает из мар- жете приобрести футболочки и банда-
садминок.
Однако развлечения на слете были
явно рассчитаны на мужчин. Вот пейнт-
бол, например, – типично мужское за-
нятие. Все серьезно – оружие, маски,
инструктаж…
– Сейчас будем играть в пейнтбол.
Две команды по пять человек, одна
с одной, другая с другой стороны. Цель
игры – захватить флаг и принести его
на базу противника. Как только флаг
принесли, игра закончена. Флаг нахо-
дится в центре. Задача игроков – от-
стоять свой флаг.
Комментарий участника игры:
Убей его, пока он не убил тебя.
– Бойцы, смотрите! Будете играть
такими маркерами, – инструктор пока-
зал оружие. – Сюда насыпаются шары,
здесь находится воздух, отсюда выле-
тает шарик. На маркере находится за-
глушка. До выхода на игровую площад- География слета
8
администрирование
Семь веб-интерфейсов
к электронной почте
Выберите лучший!
Сергей Супрунов
10
администрирование
12
администрирование
Хранение пользовательских дан-
ных, как и в случае с Ilohamail, осущест-
вляется в текстовых файлах, размеща-
емых в каталоге database, так что ника-
ких особых прав доступа для этого ката-
лога не требуется, и вся работа ведётся
исключительно с правами пользователя,
от имени которого работает Apache.
Есть возможность выбрать язык ин-
терфейса из очень большого числа ва-
риантов. Русский среди них присутству-
ет, и к качеству перевода никаких на-
реканий нет. Правда, впечатление не-
сколько подпортила некорректная рабо-
та с кодировкой входящих сообщений –
UebiMiau не сумел правильно выбрать
Рисунок 3. Здесь есть почти всё, о чём только можно мечтать
кодировку даже для сообщения, которое
через него же и отправлялось.
Интерфейс организован очень удоб-
но и интуитивно понятен. При первом
входе в систему вас переправят на стра-
ницу настроек. При желании можно из-
менить часовой пояс, режимы управле-
ния корзиной (куда будут помещаться
удаляемые сообщения), задать личную
подпись. Из дополнительных возмож-
ностей – работа с папками, поиск (по от-
правителю, теме, телу сообщения), ад-
ресная книга.
Поддержка браузером скриптов на
JavaScript обязательна – иначе не будет
работать даже меню. Также обязательна
и поддержка cookies (хотя в настройках
это требование можно отключить, тог-
да UebiMiau будет использовать другие
способы поддержания сессий).
Проблем с безопасностью зарегис-
трировано три, все помечены низким Рисунок 4. Веб-диск позволит вам копаться в своём домашнем каталоге, даже если
злой админ не открыл FTP-доступ
уровнем опасности. Последняя из них
(межсайтовый скриптинг) датирована 3 июля этого года. фильтрацию спама (за это отвечает SpamAssassin), прове-
Несмотря на предельную простоту и не столь большое рять правописание (подключается ispell) и так далее.
число функций, этот веб-интерфейс будет прекрасным вы- Установка выполняется по умолчанию в /usr/local/www/
бором в том случае, если вам просто нужно обеспечить cgi-bin/openwebmail. Для начала работы нужно указывать
«запасный выход» для некоторых своих клиентов (или да- в адресной строке полный путь к файлу: mysite.ru/cgi-bin/
же только для себя), чтобы иметь возможность просмот- openwebmail/openwebmail.pl. В принципе можно попробо-
реть свою почту из любого интернет-кафе. Впрочем, не- вать сделать более «красивый» путь с помощью псевдони-
корректная работа с кодировками может несколько под- мов, но в процессе работы особой необходимости в этом
портить впечатление. не возникает.
Все конфигурационные файлы размещаются здесь же,
OpenWebMail в каталоге cgi-bin/openwebmail/etc. Доступ к ним регулиру-
Тестируемая версия: openwebmail-2.52_1. ется с помощью прав на исполнение, так что особое внима-
Порт: /usr/ports/mail/openwebmail. ние нужно уделять грамотной настройке доступа к cgi-ката-
Язык разработки: Perl. логу (в частности, нельзя допускать, чтобы он был доступен
Официальный сайт: http://turtle.ee.ncku.edu.tw/ в корне веб-сайта по прямой ссылке, в обход ScriptAlias). До-
openwebmail. кументация на сайте включает файлы README, FAQ и дру-
Демо-версия: http://www.postman.net. гие, которые в ряде случаев могут оказаться полезны.
Поскольку пользовательские данные OpenWebMail хра-
При установке можно задать ряд параметров, в том чис- нит в домашних каталогах пользователей (то есть пакет
ле подключить проверку на вирусы (с помощью ClamAV), «завязан» на учётные записи и требует, в частности, что-
14
администрирование
(запускается он из командной строки).
Если вам доводилось заниматься на-
стройкой различного сетевого обору-
дования, то интерфейс покажется вам
знакомым (см. рис. 6).
Документация на сайте весьма под-
робная, коротко, но ясно описывающая
буквально каждый шаг. Есть большое
число дополнений, которые можно ус-
тановить из коллекции портов (напри-
мер, вы можете автоматически добав-
лять к каждому письму «нижний колон-
титул» с помощью плагина squirrelmail-
email_footer-plugin или выполнять с по-
Рисунок 7. Наверное, именно так и должно выглядеть совершенство
мощью squirrelmail-login_auth-plugin ав-
томатическую HTTP-аутентификацию).
Язык по умолчанию предлагается
английский, но может быть переопре-
делён в настройках («Options → Display
Preferences»), где среди множества
представленных вы наверняка найдё-
те тот, который вам нужен. Русский там,
естественно, присутствует. Качество пе-
ревода никаких нареканий не вызвало,
«белых пятен» также в ходе тестирова-
ния не обнаружилось.
Там же, в настройках, помимо всего
прочего, можно изменить и цветовую
гамму интерфейса. Выбор заложенных
в поставку тем огромен – от приятных
и гармоничных (например, Bluesome),
до режущих глаз ядовито-зелёных.
Впрочем, на вкус и цвет, как известно,
товарищей нет.
Обрадовало наличие подробной
справочной информации, доступной
здесь же, через веб-интерфейс. Так что
особо непонятливых пользователей, ко- Рисунок 8. Крепость так и не сдалась...
торые умудрятся заблудиться в столь по-
нятном и простом интерфейсе, можно будет отсылать к ней, именно то оформление, которое сделает приятным даже
а не «куда-нибудь подальше». получение письма от начальства, что срочно нужно подго-
Отправка-чтение работают «на ура», включая вложения товить отчёт, срок сдачи – «вчера»...
(за исключением русских имён файлов) и автораспознава-
ние кодировки. Из «сервисных функций» – адресная кни- RoundCube
га, работа с папками, поиск и справка. Ряд дополнитель- Тестируемая версия: roundcube-0.1.20060518.
ный функций можно установить из плагинов. Порт: /usr/ports/mail/roundcube.
А вот что касается безопасности, то первое, что прихо- Язык разработки: PHP.
дит в голову при просмотре списка уязвимостей, это сло- Официальный сайт: http://www.roundcube.net.
во «решето»... 22 штуки, включая «средние» и «критичес- Демо-версия: http://demo.roundcube.net.
кие», позволяющие получить доступ к системной инфор-
мации и даже выполнение произвольного кода с правами Для хранения пользовательских данных использует
веб-сервера – это уже не шутки. Правда, последнее вре- СУБД – при инсталляции предлагается на выбор MySQL
мя «поток уязвимостей» несколько стабилизировался, так или PostgreSQL. После сборки размещается в /usr/local/
что можно надеяться, что сейчас использование пакета не www/roundcube.
представляет такой уж серьёзной опасности. Перед началом работы требуется сформировать нуж-
Так что, если «паранойя» – не ваш диагноз, то SquirrelMail ную базу данных и настроить параметры подключения к ней
обеспечит вашим пользователям удобный и прекрасно ло- в конфигурации (файл config/db.inc.php). Прочие настрой-
кализованный веб-интерфейс для работы с электронной ки, такие как параметры почтовых серверов, указываются
почтой, к тому же позволяющий выбрать из множества тем в config/main.inc.php.
16
администрирование
Установка выполняется в /usr/local/www/data/ismail, После этого форма стала открываться. Кнопки «Отпра-
так что если data в вашем случае является символьной вить» и здесь нет (видимо, разработчики решили во всём
ссылкой на корень веб-сайта, то будьте готовы к тому, следовать интерфейсу «оффлайновых» клиентов), так что
что ISMail сразу станет доступен вашим пользователям. пришлось предварительно поводить мышкой по иконкам,
Так же, как и для RoundCube, необходимо в php.ini раз- разбираясь, что же они означают.
решить автоматическую инициализацию сессий: Если вы не большой поклонник коричневого, то внешний
вид можно подправить в include/istheme.conf.
; Initialize session on request startup С языком – хуже. Среди настроек русский не отыскал-
session.auto_start = 1
ся. Тем не менее определённую надежду вселило нали-
Конфигурационные файлы размещаются в каталоге чие каталога locale, где можно найти mo- и po-файлы для
include. Для того чтобы веб-интерфейс заработал, нужно пе- итальянского, чешского, датского и английского, но поче-
реименовать файлы ismail.conf.sample и istheme.conf.sample му-то выбор любого из этих языков в настройках на языке
в ismail.conf и istheme.conf соответственно. Ну и, естествен- интерфейса никак не отражался. Разве что «зюки» стано-
но, внести в них необходимые изменения. В частности, обя- вились другими. Создание «по образу и подобию» катало-
зательно нужно прописать секцию своего домена (пример га с русской локалью (пришлось повспоминать азы gettext)
того, как это сделать, можно посмотреть в секции default). не привело к появлению родного языка среди доступных.
И не забудьте убрать секцию example.net, иначе она тоже Пришлось править исходники.
будет предлагаться на выбор при входе в систему. В частности, русский язык был добавлен в список до-
Для отправки сообщения вы должны задать переменную ступных в массив $defaultsettings["locale"]["values"] (файл
mailprogram в конфигурационном файле, которая бы указы- include/globals.php). Но на переключение языка интерфейса
вала на вашу локальную программу отправки почты. В нем эта опция упорно влиять не желала. Так что, не мудрствуя
по умолчанию есть примеры для использования sendmail лукаво, в include/globals.php был жёстко прописан для ва-
и exim. Если через /bin/sendmail, то и постфикс имеет такой рианта по умолчанию «ru_RU», и там же (строка 204) явно
враппер – конкретно используется команда: указана кодировка, так как из файла локалей её разработ-
чики решили не вытаскивать, ограничившись жёсткой при-
/usr/libexec/sendmail/sendmail -oi -t вязкой к iso-8859-2:
но, поскольку эта команда задаётся прямо в конфигура- function PageHeader($echo=1, $frame=0) {
$header = "";
ционном файле, то в принципе можно указать любой вы- if ($_SESSION["locale"] == "ru_RU") {
зов, лишь бы он поддерживал нужный режим работы. Из- $header = "<?xml version=\"1.0\" ↵
encoding=\"koi8-r\"?>\n";
менил предыдущее предложение... Использовать любой } else {
SMTP-сервер вы не сможете. $header = "<?xml version=\"1.0\" ↵
encoding=\"iso-8859-1\"?>\n";
Интерфейс буквально поразил своей красотой в стиле }
Ubuntu. Но ещё больше «поразил» нечитаемыми символами,
выводимыми вместо русских букв в именах отправителей и Вся эта «хирургия» позволила наконец-то увидеть рус-
темах сообщений. Удручила и невнятная панель инструмен- ские надписи в элементах интерфейса, и koi8-r стал отоб-
тов, о назначении иконок на которой можно узнать, только ражаться нормально и в сообщениях.
подведя к ней мышку (возможно, со временем, когда работа А вот письмам в других кодировках так и не повезло –
дойдёт до автоматизма, это будет и удобно, что ничего лиш- они по-прежнему сохранили свою «нечитаемость». Похо-
него, но при первом знакомстве с таким интерфейсом просто же, пакет не предусматривает, что у кого-то может быть
теряешься). Зато по расположению фреймов очень напоми- несколько кодовых таблиц и что все их хорошо бы обраба-
нает привычные многим «оффлайновые» почтовые клиен- тывать по-своему.
ты типа Outlook Express, что можно считать довольно хоро- Из дополнительных функций – лишь адресная книга,
шим начинанием (особенно это поможет низкоквалифици- так что даже если абстрагироваться от проблем с коди-
рованным пользователям). Для работы требуются JavaScript ровками, пакет всё равно оставляет чувство какой-то не-
и поддержка cookies. При попытке открыть форму редакти- доработанности.
рования нового сообщения меня встретил чистый экран. По- Небольшим утешением можно считать отсутствие из-
искав в логах, я обнаружил сообщение об ошибке: вестных уязвимостей. Тем не менее ISMail можно пореко-
мендовать разве что любителям копаться в исходниках
[error] PHP Parse error: syntax error, unexpected ';'
in /var/www/webmailtesting/ismail/sendmail.php on line 167
и править локали. Ну а я с грустью констатирую, что мне
«взять Измаил» сходу не удалось, а к длительной осаде
Пришлось в указанном файле заменить строчку: я сейчас не предрасположен.
Установка выполняется в /usr/local/www/nocc. Перед на- на это, пакет вполне можно считать достаточно неплохим
чалом работы следует внести нужные изменения в конфи- выбором для использования на промышленных серверах,
гурационный файл (conf.php), к слову, очень подробно про- особенно если вы не планируете баловать своих пользова-
комментированный. Обязательно нужно установить зна- телей различными «излишествами».
чение переменной $tmpdir. Пришлось также доустановить
из php4-extensions расширение Iconv (как зависимость оно Подводим итоги
не установилось). Не забывайте перезапускать Apache пос- Для того чтобы было проще охватить сразу все рассмат-
ле добавления расширений. риваемые пакеты, наиболее важные особенности сведе-
В отличие от RoundCube и ISMail, здесь для нормальной ны в таблицу.
работы, наоборот, нужно отключить автоматическую ини- Довольно сложно вынести вердикт, что «этот пакет
циализацию сессий: хорош, а этот плох». За исключением ISMail, который
так и не удалось заставить полноценно работать, не гово-
; Initialize session on request startup ря уже о работе «из коробки» (впрочем, никто поддержку
session.auto_start = 0
русского языка здесь и не обещал), каждый из оставшихся
В противном случае получите ошибку «Невозможно вправе претендовать на вашу благосклонность.
подключиться к серверу». Cookies для поддержания сес- Если вам нужно лёгкое и нетребовательное реше-
сии не требуются. Имеется поддержка SSL. ние, то хорошими кандидатами являются Ilohamail, NoCC
Русский язык был предложен по умолчанию. или UebiMiau (последний – если для вас не слишком кри-
Интерфейс довольно милый (хотя и несколько гро- тична корректная работа с различными кодировками).
моздкий), с корректным отображением кириллицы. Ни- Для «гурманов» прекрасным выбором будет блистательный
чего лишнего (даже настроек, не говоря уже об адресных RoundCube (если не обращать внимания на не очень бога-
книгах и т. д.). Есть по умолчанию три цветовые темы (вы- тый фунционал). Если вам нужна непревзойдённая функ-
брать одну из них можно при входе, на экране ввода логи- циональность, даже ценой снижения безопасности сервера,
на и пароля). то обратите внимание на OpenWebMail или SquirrelMail.
Уязвимостей было обнаружено две (последняя из них В общем, выбирать есть из чего, и окончательное ре-
в феврале этого года – с уровнем «средний»). Несмотря шение мы оставляем за вами.
18
полезные советы FreeBSD
Как не «проморгать» нужную строку жмёте <Enter>, если удалить – вводите <d> и потом <Enter>.
Вы, думаю, помните, сколько всего выводится на экран Понятно, что если какой-то из удаляемых пакетов «держит»
при сборке ядра или какого-нибудь большого пакета. Пос- другие в качестве зависимости, то эти другие сами станут
тоянно наблюдать за выводом довольно скучно, а экранный «листовыми». Поскольку запускать «pkg_cutleaves -x» рекур-
буфер не всегда позволяет «отмотать» вывод до интересу- сивно, пока не останутся только нужные пакеты, – не самое
ющего вас момента. Можно, конечно, перенаправить вывод весёлое занятие, разработчики предусмотрели ещё один
в файл и потом изучать его сколько угодно, но в этом слу- ключ: -R. Команда «pkg_cutleaves -R» работает аналогично
чае вы теряете возможность «мониторить» процесс в ре- приведённому выше, за тем исключением, что если в сис-
жиме реального времени. Проблема легко решается с по- теме есть пакеты, от которых зависит только удаляемый,
мощью утилиты script: то они будут удалены автоматически и рекурсивно, без до-
полнительных вопросов. Как обычно в таких случаях, на-
# script /var/log/build.log
стоятельно рекомендую ознакомиться с man pkg_cutleaves
Script started, output file is /var/log/build.log и внимательно отвечать на каждый вопрос программы.
# make buildworld
<. . . отображение процесса сборки . . .>
О пользе обратных кавычек
# exit Свойство оболочки исполнять выражение в обратных ка-
exit
вычках (`команда`) и подставлять результат в исполняемую
Script done, output file is /var/log/build.log командную строку, предоставляет широчайшие возможнос-
ти для автоматизации. Например, следующая команда вы-
То есть вы всё видите на экране, но при этом весь вывод, ведет на экран конфигурационный файл текущего ядра, не-
равно как и ввод, дублируются в указанном файле. Глав- зависимо от платформы и имени этого файла:
ное, чтобы места на диске хватило. Только не забывайте,
$ cat /usr/src/sys/`uname -p`/conf/`uname -i`
что в этот же файл попадут и управляющие символы, так что
этот метод не слишком подходит для «логирования» интен- Ещё один пример:
сивной интерактивной работы, особенно если вам часто
$ touch arch`date "+%Y-%m-%d"`
приходится использовать Backspace.
В итоге вы получите файл с именем вида arch2006-07-21,
зависящим от даты исполнения команды. При необходимос-
Удалите из системы всё лишнее ти можно создавать и вложенные конструкции, например:
При интенсивной работе с пакетами программ в систе-
$ echo a`echo b\`echo c\\\`echo d\\\`c\`b`a
ме со временем накапливается много лишнего, например,
пакеты, которые устанавливались как зависимости к уже abcdcba
удалённым или обновлённым приложениям. Для их удале-
ния в «полуавтоматическом» режиме служит очень удоб- Обратите внимание на то, как приходится экранировать
ная утилита: pkg_cutleaves (установить её можно из пор- служебные символы для того, чтобы они «срабатывали»
тов: sysutils/pkg_cutleaves). Поскольку она использует воз- на нужном уровне вложенности (сам слэш тоже нуждает-
можности portupgrade, то эта программа также должна быть ся в экранировании, поэтому на «уровне d» мы вынуждены
у вас установлена. Если говорить точнее, то pkg_cutleaves использовать целых три символа «\»). Наибольшую пользу
работает с так называемыми листовыми пакетами, т.е. с та- обратные кавычки приносят при использовании в скриптах,
кими, которые не являются зависимостями для других, ус- автоматизирующих те или иные действия.
тановленных в системе. Например, команда «pkg_cutleaves
-lc» выведет (с краткими комментариями) список паке-
тов-кандидатов на удаление, среди которых будут и bash, Обновляйте коллекцию портов
без которой вы жить не можете, и какой-нибудь gmake, кото- без усилий
рый был нужен для установки приложения, уже давно «по- В FreeBSD 6.x появилась удобная утилита для обновления
чившего в бозе». Поэтому её работа в любом случае тре- портов: portsnap. Теперь не обязательно устанавливать и на-
бует вашего пристального внимания: страивать cvsup, обновление дерева очень легко выполня-
ется системными средствами:
# /usr/local/sbin/pkg_cutleaves -x
# portsnap fetch && portsnap update
Package 1 of 38:
autoconf-2.59_2 - Automatically <...> Un*x platforms (2.59)
autoconf-2.59_2 - [keep]/(d)elete/(f)lush marked pkgs/(a)bort?
При первом запуске между этими командами понадобит-
** Keeping autoconf-2.59_2. ся ещё одна: «portsnap extract». Для автоматического скачи-
вания обновлений (например, по расписанию cron) вместо
Package 2 of 38:
bash-2.05b.007_5 - The GNU Bourne Again Shell portsnap fetch следует использовать portsnap cron.
bash-2.05b.007_5 - [keep]/(d)elete/(f)lush marked pkgs/(a)bort?
Сергей Супрунов
И так по всем пакетам: если хотите оставить – просто
20
полезные советы
Сергей Яремчук
Не секрет, что информационные ресурсы любой компании представляют ценность. В сборе,
анализе и использовании информации задействованы практически все сотрудники. Но как ее
тяжело добыть, так же легко ее подчас потерять.
22
администрирование
С
амым распространенным спо- пространять и продавать при условии,
собом сохранения информа- что авторство будет сохранено.
ции в любой ситуации является AMANDA является надстройкой к
ее дублирование. Резервная копия, со- стандартным программам dump/restore,
храненная на другом источнике, стри- GNU tar и многим другим.
мере, жестком диске, DVD/CD, в слу- Построен по клиент-серверной схе-
чае выхода из строя основной систе- ме, причем клиент может быть уста-
мы позволит восстановить необходи- новлен на одном компьютере с сер-
мое практически с нуля. вером либо клиенты могут быть уста-
Решение задачи построения сис- новлены на всех компьютерах, кото-
тем резервного копирования и хране- рым требуется архивация.
ния данных зависит от инфраструкту- Для передачи информации исполь-
ры предприятия, ценности информа- зуется свой протокол, работающий по-
ции и требований к степени готовнос- верх UDP или TCP. Последние версии
ти такой системы. AMANDA могут взаимодействовать
Рисунок 1. Менеджер управления Arkeia
Поэтому, несмотря на кажущуюся с компьютерами Windows посредством
простоту, выбрать необходимое реше- SAMBA, либо как вариант можно ис- поненты написаны на Java и доступны
ние удается не сразу. Схожие на пер- пользовать клиента, скомпилирован- для большого числа платформ. Лока-
вый взгляд проекты не сразу раскры- ного под cygwin. лизованного интерфейса, к сожале-
вают все свои возможности, и, что- Поддерживается шифрование ин- нию, нет. Клиент в принципе не привя-
бы их выявить, иногда приходится ус- формации как на клиенте, так и на сер- зан к конкретному серверу, можно раз-
танавливать систему и пробовать ее вере, для этих целей используется не- вернуть несколько серверов и для ре-
в работе. Учитывая, что в каждой кон- симметричный GPG и симметричный зервирования выбрать любой из до-
кретной ситуации (сервер, небольшая amcrypt-алгоритм, хотя легко можно ступных, если администратор разре-
сеть, гетерогенная сеть и пр.) необхо- добавить и любой другой. Аналогично шил к нему доступ.
димо персонально подходить к реше- можно настроить и сжатие данных. Ес- Пользователи могут быть раз-
нию задачи копирования, решено бы- ли сжимать информацию на клиенте, делены на роли (ADMINISTRATOR,
ло протестировать ряд проектов, ре- это уменьшит нагрузку на сеть, если OPERATOR, USER) со своими права-
зультат в виде 17 систем различно- на сервере, то снизит нагрузку на мало- ми в системе.
го назначения представлен в итого- мощную машину клиента. При наличии Разработаны также дополнитель-
вой таблице. нескольких средств архивации на од- ные модули, позволяющие резерви-
Системные требования участни- ном сервере можно использовать не- ровать данные отдельных приложений
ков тестирования существенно раз- сколько независимых конфигураций. без их остановки.
нятся, так, если для работы сервера AMANDA оптимизирована для ра- В настоящее время доступны такие
afbackup подойдет компьютер пяти- боты со стримерами, но никто не за- модули для Lotus, Open-Xchange, LDAP,
летней давности, то для Time Navigator прещает использовать CD и DVD. MS Exchange, и баз данных Oracle,
и Arkeia Network Backup они на поря- Процессом резервирования можно mySQL, PostgreSQL, DB2, и MS SQL
док выше. руководить как вручную, так и запус- Server.
К сожалению, объемы статьи не поз- кать при помощи cron. Стоит также отметить и функцию
воляют включить в итог все существую- Disaster Recovery, появившуюся в про-
щие решения. Но главная цель статьи – Arkeia дуктах Arkeia начиная с версии 5.3.12.
не показать победителя, а помочь со- Компания выпускает два продук- С ее помощью можно восстановить
риентироваться при выборе и опреде- та – Arkeia Network Backup и Arkeia данные на компьютере под управлени-
литься с критериями. Smart Backup. Первый предназначен ем Linux или Windows всего за несколь-
для больших и средних сетей, второй – ко шагов, даже если исходный компью-
AMANDA для небольших растущих сетей, отли- тер потерян или вышел из строя.
Проект AMANDA (Advanced Maryland чаются ценой. Так, Smart Backup для Поддерживается протокол NDMP
Automatic Network Disk Archiver), нача- пользователей Linux бесплатен и ог- версии 3, позволяющий управлять дан-
тый в 1998 году в департаменте ком- раничен 50 Гб архивируемой инфор- ными на носителях. Его применение
пьютерных технологий университе- мации. Стоимость лицензии Network дает выигрыш по времени в операциях
та Maryland США, постепенно утра- Backup может колебаться от 3 000 резервирования и восстановления.
тил поддержку в родных стенах, и ис- до 15 000 у.е. Возможно несколько вариантов
ходные тексты были перемещены Построен по клиент-серверной дублирования резервной информации:
на Sourceforge. схеме. Имеются перекомпилирован- восстановление с переадресацией
В настоящее время разрабатыва- ные пакеты для большинства систем. данных, выполнение команд до и пос-
ется многими добровольцами, и, хотя Для управления процессом архиви- ле резервирования.
не заявлена лицензия GNU GPL, лю- рования используется Arkeia Manager, Удобный планировщик календар-
бой желающий может модифициро- а на клиентских машинах устанавли- ного типа позволяет выполнить все не-
вать код по своему усмотрению, рас- ваются программы-клиенты. Эти ком- обходимые операции: полную, инкре-
Bacula
Модульная архитектура этого мощно-
го средства для создания, управления
и восстановления информации поз-
воляет использовать его как в малых,
так и больших сетях. Работает по кли-
ент-серверной схеме. Относительно
прост в настройках и обладает боль-
шим количеством продвинутых воз-
можностей, позволяющих с легкостью
находить и восстанавливать утрачен-
ные или поврежденные файлы. Воз-
можно, указать индивидуальные па-
раметры для различных типов фай-
лов. Например, текстовые сжимать,
а архивы, исполняемые файлы пере-
давать без сжатия.
Центральным элементом Bacula
является Director, который отвечает
за хранение и запуск заданий, ведение
Рисунок 2. Bеб-интерфейс управления BackupPC журнала. Для хранения журналов ар-
хивных копий используется база дан-
ментную, дифференциальную копии, Чтобы знать, какие файлы уже бы- ных. В настоящее время поддержива-
восстановление и прочее. ли резервированы, клиент ведет спе- ются PostgreSQL, MySQL или SQLite,
Общее впечатление портит толь- циальный список, удаление которого хотя, если нет проблем с лицензиро-
ко передача логина/пароля в откры- приведет к тому, что повторно будет ванием, можно использовать еще око-
том виде, что при возможностях Arkeia произведено полное резервирование. ло 10 других СУБД.
может привести к утечке информации, Аналогично, так как резервная копия На компьютерах клиентов устанав-
ведь восстановить файл можно в про- привязана к имени узла, при его из- ливается File Daemon, который соби-
извольное место в сети. менении будет создана полная копия. рает данные для архивирования. Уп-
Для уменьшения нагрузки на сеть фай- равление осуществляется посредс-
Afbackup лы сжимаются индивидуально на сто- твом Bacula Console. Последние два
Построен по клиент-серверной схеме. роне клиента. компонента существуют для различ-
Сервер отвечает за работу с различ- Сервер может работать в одном ных платформ, что позволяет без про-
ными устройствами хранения инфор- из двух режимов: однопоточном, под- блем использовать Bacula в гетероген-
мации, отслеживает их состояние, ко- ходящем для полного резервирования, ных сетях.
личество. Все остальное лежит на кли- и многопоточном, для инкрементного. Также стоит отметить весьма удач-
енте. Клиент знает, какие файлы, ката- В последнем случае для каждого со- ный планировщик и систему приорите-
логи подлежат резервированию, на ка- единения открывается новый порт. та выполнения заданий.
кую кассету на стримере должна быть Все используемые кассеты получа-
записана информация. ют специальную метку, к которой при- BackupPC
На стороне клиента задействуют- вязывается записанная информация, Высокопроизводительное решение
ся три утилиты. Утилита afclient отве- поэтому желательно эту метку нанес- уровня предприятия, позволяющее
чает за связь с сервером и осущест- ти на коробку, чтобы не путать. Для ра- резервировать данные компьютеров,
вляет распаковку и упаковку файлов, боты с одним клиентом может быть на- работающих под управлением UNIX/
afrestore – за восстановление инфор- строено несколько серверов. Предус- Linux, MacOS X и Windows разных вер-
мации, а afclient выполняет контро- мотрено дублирование архива. сий. Прост в настройке и поддержке.
лирующие и управляющие функции. Восстановлением информации мо- Не требует клиентского ПО.
Для последних двух утилит имеются жет руководить как пользователь, так и Для резервирования данных
фронт-енды xafrestore и xclientconfig. централизованно администратор. Windows-систем, используется про-
24
администрирование
токол smb (или rsync работающий че- Для верифика-
рез cygwin), UNIX и Linux – rsync или tar ции записанной ин-
(над ssh/rsh/nfs). формации исполь-
Для экономии ресурсов одинако- зуется MD5, опцио-
вые файлы с одного и даже несколь- нально архив мож-
ких компьютеров загружаются только но зашифровать
один раз, затем для привязки к конк- с помощью GnuPG.
ретной системе используются жест-
кие ссылки, если на одной из систем Backupninja
такой файл изменился, то он будет пе- Большинство сво-
резаписан. бодных скриптов
Для управления процессом резер- и программ пред-
вирования и восстановления инфор- назначенных для
мации, просмотра журналов и файлов создания резерв-
в архиве, настройки, используется веб- ных копий имеют
интерфейс (т.е. придется ставить еще неудобный файл
и веб-сервер), который, к сожалению конфигурации или
не локализован. Выбранный для вос- вообще обходятся Рисунок 3. Мультиплатформенный интерфейс к Box Backup - Boxi
становления файл может быть скопи- без такового. Це-
рован на любой ресурс. лью проекта backupninja как раз и яв- клиента bbackupd, задача которого
Следует также отметить поддержку ляется повышение удобства при ис- контролировать изменения и загру-
резервирования систем, подключаю- пользовании таких программ, путем жать их на сервер и bbackupquery, инс-
щихся к сети периодически без пос- создания набора конфигурационных трумента, предназначенного для со-
тоянного IP-адреса и работающих че- файлов расположенных в etc/backup.d/, здания запросов и восстановления
рез медленные каналы. Резервирова- имеющих единую, простую и понят- информации.
ния можно настроить как персонально, ную структуру. И попутно объедине- Особое внимание уделено воп-
так и указать параметры, зависящие ние возможностей нескольких про- росам безопасности данных. Так, со-
от операционной системы клиента. Оп- грамм. Псевдографическая консоль единение между клиентом и серве-
ределить различные задачи для пол- ninjahelper упрощает создание конфи- ром по умолчанию происходит по за-
ных и инкрементных копий. Если ин- гурационных файлов и кроме того вы- шифрованному каналу, для генериро-
формация с компьютера некоторое дает подсказки по проведению некото- вания и управления ключей, необходи-
время не резервировалась, то поль- рых операций. мых при аутентификации, в комплекте
зователю будет послано предупреж- Поддерживается создание копий имеются скрипты. Кроме того, резер-
дение посредством электронной поч- с удаленных ресурсов (посредством вируемые файлы на клиенте шифру-
ты. Работает с архивами, созданными rdiff-backup), создание зашифрован- ются при помощи AES, а метаданные
AMANDA (т.е. практически может слу- ных GnuPG-образов (duplicity), резер- Blowfish. Поэтому даже если сервер
жить к нему интерфейсом). вирование Linux-Vserver, баз данных компрометирован, данные все равно
MySQL и РostgreSQL, содержимого остаются в безопасности. Резервиро-
Backup Manager 0.7.4 OpenLDAP, SVN-репозитариев, выда- вание происходит в режиме «snapshot».
Представляет собой инструмент, уп- ча информации по системе и аппарат- После первого копирования в дальней-
рощающий процесс создания резер- ному составу. Информация по работе шем для обновления резервной копии
вных копий, как полных, так и инкре- может отправляться на указанный поч- используется rsync, поэтому в дальней-
ментных. Для восстановления инфор- товый адрес. шем трафик может быть относительно
мации Backup Manager не использу- небольшой. Старые версии не заменя-
ется. Но зато с его помощью очень Box Backup ются новыми, а удаляются только когда
просто организовать копирование ло- Система резервирования Box Backup остется мало свободного места.
кальных каталогов, баз данных MySQL принадлежит к так называемым on-line. По умолчанию в комплекте идут
и SVN-репозитариев в архивы несколь- Разработчики считают, что в некото- только утилиты командной строки,
ких видов, на CD/DVD-диски, а также рых случаях дешевле вместо одно- но отдельно разработан графический
на удаленные ресурсы. го весьма дорогого стримера приоб- клиент Boxi (http://boxi.sourceforge.net),
В качестве протоколов последних рести обычный сервер с нескольки- использующий мультиплатформенную
поддерживаются FTP, SSH, RSYNC ми дисками. У такой системы есть од- библиотеку wxWidgets. С его помощью
и Amazon S3 (Simple Storage Service, но, но очень ценное достоинство: все довольно просто настроить опции ко-
http://aws.amazon.com). Кроме то- данные пользователю доступны по пирования и восстановления файлов.
го, есть возможность выполнения первому требованию, ведь все хра-
pre и post-скриптов, что позволяет, нится на сервере, и нет необходимос- BRU Server
например, автоматически монтиро- ти в смене кассет. Построен по клиент- Простая в установке и использова-
вать и размонтировать SMB, NFS- серверной схеме. И состоит из трех нии система, подходящая для созда-
ресурсы. элементов: сервера bbstored, бэкап- ния резервных копий индивидуальным
№9, сентябрь 2006 25
администрирование
Свободная характеристика систем резервного копирования
Backup
0.7.4 http://www.backup-manager.org GNU GPL GNU/Linux cron
Manager
Команда auto_check,
http://web.mit.edu/~emin/www/
сохраняющая данные
DIBS 0.9.2 source_code/dibs/index.html, GNU GPL Linux и другие POSIX-системы, Windows
в определенных
http://dibs.sourceforge.net
каталогах
Внутренний
Hydra 0.3.1 http://www.cprogrammer.org/trac/hydra GNU GPL UNIX-подобные
планировщик
26
администрирование
Нет, данные
Полное
GPG-ключ GnuPG шифруются перед Нет Полное/выборочное
Инкрементное
передачей
Клиент, кроме
Есть, кроме того Полное
Пароль, Active того информация Полное/выборочное/
данные шифруются Инкрементное Есть
Directory подписывается другая система
перед передачей Выборочное
хэшем
Полное
Полное/выборочное/
Пароль Нет OpenSSH Инкрементное gzip/bzip2
другая система
Выборочное
Полное Полное/выборочное/
Локальный
Нет Нет Сохранение «сырых» gzip/bzip2 другая система/
пользователь
разделов клонирование
Полное
Данные шифруются Полное/выборочное/
Пароль mcrypt или GnuPG Инкрементное gzip/bzip2/lzop
перед передачей другая система
Выборочное
Полное Полное/выборочное/
Пароль Нет Нет bzip
Только каталоги другая система
28
администрирование
здания резервных копий. Как и боль- тов, то он имеет специальную струк- зервирования. Всю работу выполняет
шинство проектов synbak является туру Security and Compliance Manager сервер, результат сохраняется в ката-
удобным интерфейсом для существу- (SCM), управляющую ключами и сер- лог ftp-сервера. К сожалению, Hydra
ющих программ. Используется простой тификатами. Вся информация разби- умеет создавать только полные копии
и понятный файл конфигурации. Под- та на классы, к которым используют- и только локальных каталогов, если
держивается создание резервных ко- ся разные правила защиты, это позво- нужны инкрементные и дифференци-
пий, в том числе и с удаленных ресур- ляет более гибко использовать ресур- альные, то этот проект не для вас. Ка-
сов с использованием rsync (ssh, rsync, сы без ущерба безопасности. Для кон- талоги можно копировать ежедневно,
SMB/CIFS), баз данных MySQL и Oracle, троля безопасности ведутся журна- еженедельно или ежемесячно.
каталогов LDAP, на архивы tar (tar, tar. лы аудита, в которых заносится вся Файл конфигурации не использует-
gz и tar.bz2), стримеры и CDR/CD-RW/ информация о деятельности поль- ся, вместо этого все введенные адми-
DVR/DVD-RW. Ресурсы cifs/smb при не- зователя. Система генерации отче- нистратором параметры сохраняются
обходимости могут быть монтированы тов ReporterTM, собирающая данные в файл /var/lib/hydra/targets_dump.
и размонтированы автоматически. Ло- со всех ресурсов, позволит получить В комплекте с системой поставля-
кальные базы MySQL могут быть со- практически всю необходимую при ад- ется как клиент командной строки, поз-
хранены в разных архивах, удаленные министрировании информацию, опре- воляющий управлять процессом уда-
только в одном архиве. Любой удален- делить слабые места и выработать оп- ленно, так и графический PyQT-кли-
ный ресурс может быть указан в стан- тимальную стратегию резервного ко- ент. Клиенты могут использоваться
дарте URI, то есть протокол://пользо- пирования. для администрирования процессов ре-
ватель:пароль@узел/рeсурс. Система зервного копирования на любом сер-
отчетов также стоит внимания, подде- Mondo Rescue вере Hydra в сети, для доступа исполь-
рживается вывод на консоль, отправ- Представляет собой набор утилит, ус- зуется пароль, хеш которого сохраня-
ка электронной почты, RSS-сообще- танавливающихся в систему, либо за- ется в ~/.hydra, позволяя в последую-
ний, а также генерация html-файла. гружаемых с CD. Он предназначен для щем не вводить его при подключении
При этом synbak имеет модульную ар- создания резервной копии любой ло- к серверу.
хитектуру, позволяющую легко адапти- кальной области системы и записи их
ровать для любой другой задачи, до- затем на CD/DVD, стример, жесткий Hdup2
бавлен как новый метод резервирова- диск или NFS-сетевой ресурс. В слу- Небольшая по размеру, простая в на-
ния, так и любые формы отчетов. чае краха можно будет очень легко стройках, но в то же время доволь-
восстановить, и в том числе и с ну- но мощная утилита резервного копи-
Time Navigator ля, не только сохраненную информа- рования. Поддерживаются все при-
Очень мощная, легко расширяемая цию, но и систему. Поэтому Mondo мо- сущие большинству подобных ути-
коммерческая разработка компании жет пригодиться не только в аварий- лит возможности: include/exclude спи-
Atempo, предназначенная в первую ных случаях, но и при переразбиении сок, резервирования с удаленных ис-
очередь для больших предприятий, ра- дискового пространства или, напри- точников, шифрование архива. Кроме
ботающих в гетерогенной среде. Адми- мер, при переходе на RAID. того, возможно разбиение резервной
нистрация упрощена благодаря проду- Также этот пакет весьма удобен для копии на файлы установленного раз-
манному унифицированному интер- клонирования системы на несколько мера, для того чтобы записать их за-
фейсу, позволяющему без проблем компьютеров с одинаковой конфигура- тем на CD/DVD-диск, отдельные под-
управлять несколькими серверами. цией. Для создания ежедневных резер- каталоги можно исключить при помо-
При этом хранение информации про- вных копий он не удобен. Mondo Rescue щи .nobackup-файлов.
зрачно для пользователя, хотя копии поддерживает почти все файловые
различного назначения могут хранить- системы, о которых знает ядро Linux Как видите, выбирать есть из че-
ся на разных ресурсах с разным време- ext2/3, JFS, XFS, ReiserFS, VFAT, а так- го, и я надеюсь, статья поможет вам
нем доступа (месяц – стример, день – же LVM и RAID. Возможность клониро- в этом. Успехов.
диск и пр.). Поддерживается работа вания позволяет использовать Mondo
с протоколом NDMP. Rescue и для резервирования не-Linux 1. Яремчук С. Cпасем пингвина: Mindi
Применение Virtual Library System файловых систем, например NTFS. Linux и Mondo Rescue.//«Системный ад-
(VLS) позволяет эмулировать стример В работе помогает понятная curses- министратор», № 2, 2004 г. – С. 14-17.
на жестком диске. Вся информация пе- консоль, позволяющая руководить 2. Маркелов А. Linux на страже Windows.
ред передачей шифруется, кроме то- процессом сохранения и восстанов- Обзор и установка системы резервного
го, возможно создание защищенных ления информации. Кстати, Mondo копирования BackupPC.//«Системный
туннелей, для проверки оригиналь- Rescue используют такие компании, администратор», № 9, 2004 г. – С. 2-7.
ности создается хеш. После передачи как Siemens, HP, IBM, NASA. 3. Гринько А. Архивируем данные с помо-
на сервер данные повторно проверя- щью Bacula.//«Системный администра-
ются путем сравнения хэшей, вырабо- Hydra Backup System тор», № 4, 2005 г. – С. 42-47.
танных клиентом и сервером. Так как Клиент-серверная система, в которой 4. Коршунов А. Box Backup – горячие ре-
Time Navigator предназначен для ра- клиент используется администрато- зервные копии.//«Системный админис-
боты с большим количеством клиен- ром для настройки параметров ре- тратор», № 5, 2006 г. – С. 6-11.
Упаковщики исполняемых
файлов в Linux/BSD
Крис Касперски
Большинство UNIX-программ распространяются в исходных текстах, но количество
коммерческих продуктов с закрытым кодом неуклонно растет. Зачастую они распространяются
в упакованном виде, что не только препятствует анализу, но снижает производительность
и ухудшает совместимость с UNIX-клонами. Покажем на примере ELFCrypt, UPX, Burneye и Shiva,
как можно освободиться от упаковщиков.
В
Windows упаковщики исполня- ках уже есть (и многие коммерческие и погубило. На всех Linux/BSD-сис-
емых файлов получили очень фирмы хотели бы выпустить закрытые темах, до которых я только смог до-
б ол ь ш о е р а с п р о с т р а н е н и е порты своих продуктов под UNIX, ос- тянуться, Shiva падает с сообщением
и сформировали обширную рыноч- новательно их защитив), но рынок про- «Segmentation fault». Какое же это счас-
ную нишу, переваривающую огром- текторов еще не успел сформировать- тье Windows-программистам иметь од-
ные деньги, питающие целые фирмы ся, а потому разработкой упаковщиков ну, ну пусть две (с учетом 9x) ОС, прак-
и привлекающие высококвалифици- занимается от силы десяток энтузиас- тически полностью совместимые меж-
рованных специалистов, создающих тов, повторяющих трюки времен ран- ду собой даже на уровне недокументи-
нехилые защитные механизмы, борь- ней молодости MS-DOS, и только Shiva рованных возможностей!
ба с которыми требует консолидации попытался предпринять качественный Создание надежной защиты, запус-
всего хакерского сообщества. рывок вперед, вплотную приблизив- кающейся более чем на одной версии
Под UNIX ситуация обстоит прибли- шись к протектору Software Passport Linux, – практически безнадежное де-
зительно так: потребность в упаковщи- (бывший Armadillo), однако, это его ло, а если вспомнить про BSD и экс-
30
администрирование
Упаковщики ма уже не может «выкинуть» принадлежа- полностью утратила смысл и стала толь-
и производительность щие ему страницы, ведь возможности пов- ко вредить (она хорошо работала в эпоху
При запуске файла с дискеты или CD-ROM торно загрузить их с диска уже нет и при- господства MS-DOS, но те времена дав-
упаковка действительно ускоряет загрузку, ходится заниматься вытеснением в swap. но прошли). Теперь упаковывать (а точ-
поскольку физически передается сущест- При однократном запуске программы это нее, зашифровывать) файл стоит только
венно меньший объем данных, а скорость еще не так заметно, но многократный за- ради того, чтобы затруднить его анализ,
этих устройств несопоставима со скоро- пуск упакованного файла приводит к су- да и то… стоит ли? Хакеры все равно взло-
стью процессора, поэтому временем рас- щественному замедлению загрузки (ведь, мают (ни один из существующих протекто-
паковки можно полностью пренебречь и по- вместо того, чтобы обратиться к уже загру- ров не избежал этой участи), а вот у легаль-
лученный выигрыш численно равен степе- женным страницам, операционной системе ных пользователей снижается производи-
ни упаковки. приходится заниматься распаковкой каж- тельность и появляются проблемы совмес-
При запуске с жесткого диска все про- дый раз). По той же причине растут потреб- тимости, тем более, что будущее все рав-
исходит с точностью до наоборот. Неупако- ности в оперативной памяти – несколько но за открытым программным обеспече-
ванный elf проецируется непосредственно экземпляров упакованной программы не нием. Как показывает практика, по мере
в оперативную память и в swap вытесня- могут совместно использовать общие стра- взросления любая отрасль неизбежно при-
ются только модифицированные страни- ницы физической памяти. В довершение ходит к открытым стандартам – взять хотя
цы секции данных. При запуске несколь- ко всему большинство упаковщиков тре- бы автомобилестроение или электрони-
ких экземпляров неупакованного elf-фай- буют дополнительной памяти для склады- ку. Лет тридцать назад японцы (в то вре-
ла выделения новых страниц физической вания промежуточных результатов распа- мя лидеры в этой области) закладывали
памяти практически не происходит, вместо ковки. На утилитах, запускаемых огромное в свои радиоприемники/магнитофоны ам-
этого операционная система просто отоб- количество раз (например, make), разница пулы с кислотой, чтобы при вскрытии кор-
ражает на адресное пространство процес- между упакованным и неупакованным фай- пуса все разъедало. Чуть позже для этой
са ранее загруженные страницы. лом просто колоссальна! же цели стали применять эпоксидную смо-
Если же файл упаковать, то при запус- Отсюда вывод: с появлением жест- лу, а сейчас… принципиальные схемы раз-
ке он модифицирует всю свою проекцию ких дисков и многозадачных операцион- даются всем сервисным центрам или отда-
целиком, а это значит, что при нехватке ных систем со страничной организаци- ются под чисто формальное соглашение
физической памяти операционная систе- ей памяти упаковка исполняемых файлов о неразглашении.
периментальные ядра типа Hurd, то к программированию Достаточно просто установить точку сразу же за кон-
можно даже не приступать. В то же время, слабость защит- цом расшифровщика (в данном случае она расположена по
ных механизмов компенсируется отсутствием достойного адресу 80495F9h), после чего в нашем распоряжении ока-
хакерского инструментария, поэтому даже простейшая за- жется расшифрованный elf, с которого можно снять дамп.
щита представляет собой большую проблему, превращая В случае с gdb последовательность команд будет выгля-
распаковку программ в довольно нетривиальную задачу! деть приблизительно так (см. листинг 2).
Но мы ее решим! Начиная с самых простых упаковщиков Кстати говоря, последние версии IDA Pro, портирован-
и приобретая в сражении тактические навыки и необходи- ные под Linux, содержат интерактивный отладчик в стиле
мый инструментарий, в конечном счете, мы сможем сра- Turbo-Debugger, работающий через prtace() и позволяющий
зиться с кем угодно! делать такие вещи прямо в дизассемблере! Но специально
на этот случай JunkCode подложил хакерам большую сви-
ELF-Crypt нью, сбивающую IDA Pro с толку.
Простейший шифровщик (не упаковщик!) elf-файлов, со- Изменив точку входа в elf-файл (entrypoint) путем пере-
зданный индийским студентом по прозвищу JunkCode направления ее на тело своего расшифровщика, он «забыл»
(junkcode@yahoo.com) и распространяющийся в исходных тек- скорректировать символьную метку _start, продолжающую
стах: http://www.infogreg.com/
source-code/public-domain/ Листинг 1. Дизассемблерный листинг расшифровщика, внедряемого ELFCrypt в файл
(как он выглядит в hiew)
elfcrypt-v1.0.html.
Он шифрует кодовую :entrypoint
.080495DC: EB02 jmps .0080495E0 ; переходим на расшифровщик
секцию (которой, как пра- .080495DE: 06 push es ; \ мусор, оставленный...
вило, является секция .text) .080495DF: C6 ??? ; / ...транслятором ассемблера
.080495E0: 60 pushad ; сохраняем все регистры в стеке
и встраивает в elf-файл кро- .080495E1: 9C pushfd ; сохраняем флаги в стеке
хотный расшифровщик, .080495E2: BEC0820408 mov esi, 0080482C0 ; начало расшифровываемого фрагмента
.080495E7: 8BFE mov edi, esi ; EDI := EDI (расшифровка на месте)
возвращающий ее в ис- .080495E9: B978000000 mov ecx, 000000078 ; количество двойных слов для расшифровки
ходный вид. Не содержит .080495EE: BBBD03CC09 mov ebx, 009CC03BD ; ключ расшифровки
.080495F3: AD lodsd ; читаем очередной двойное слово <-----+
никаких антиотладочных .080495F4: 33C3 xor eax,ebx ; расшифровываем через xor |
приемов и замечательно .080495F6: AB stosd ; записываем результат на место |
.080495F7: E2FA loop .0080495F3 ; мотаем цикл -------------------------+
распаковывается любым .080495F9: 9D popfd ; восстанавливаем флаги из стека
отладчиком, в том числе .080495FA: 61 popad ; восстанавливаем все регистры
.080495FB: BDC0820408 mov ebp, 0080482C0 ; адрес оригинальной точки входа (OEP)
и gdb/ald (см. листинг 1). .08049600: FFE5 jmp ebp ; передаем управление расшифрован. коду
32
администрирование
функций! Но тот факт, что файл все-таки работает, убеж- ; ничего! Отладчик же показывает код, засылающий в стек
; смещение первого (считая от нуля) элемента таблицы .got
дает нас, что да – может! Просто IDA Pro в попытке «эму- ; и передающего управление по адресу, записанному во втором
ляции» загрузки elf-файла помещает в extern то, чего там ; элементе таблицы .got. Как следует из спецификации
; elf-формата, первые три элемента секции .got зарезервированы
на стадии загрузки файла еще нет. ; для служебных целей и вторая из них хранит адрес функции
Здесь мы подходим к одной из самых любопытных ; _dl_map_object_deps, которая, получив в качестве аргумента
; адрес начала .got, читает его содержимое
особенностей строения elf-файлов. В отличие от Windows, ; (а содержатся там ссылки на библиотечные функции)
где заполнение extern происходит на стадии загрузки ; и заполняет extern фактическими адресами
файла в память, в UNIX это делает стартовый код, при- 0x4000bbd0 in _dl_map_object_deps () from /lib/ld-linux.so.2
чем делает он это очень хитрым способом. Ниже пока- 1: x/i $pc 0x4000bbd0 <_dl_map_object_deps+4384>: push %eax
зан протокол трассировки программы под отладчиком ; ага! Вот эта функция, расположенная на моей машине
с моими комментариями, отмеченными знаком «;» и со- ; по адресу 4000BBD0h, принадлежащему библиотеке libc.so.6
; (на других машинах этот адрес может быть иным)
держимым дизассемблерного листинга IDA Pro, отме- ; она-то и выполняет всю работу по инициализации extern,
ченным знаком «#». Как говорится – сравните и почувс- ; в котором находится наш расшифровщик, уже расшифровавший
; программу, а затем вызывает __libc_start_main,
твуйте разницу! ; так что загрузка динамической библиотеки происходит
Для облегчения понимания возьмем незашифрованную ; совершенно прозрачно
программу, необработанную ELFCrypt:
Вот такая, оказывается, она IDA Pro! Чтобы скрыть код
Листинг 5. Протокол отладки, иллюстрирующий ход от глаз исследователя, достаточно разместить его в extern.
динамической загрузки
Для вирусов, червей и прочего malware это очень даже акту-
; устанавливаем точку останова на начало стартового кода ально (особенно в свете того факта, что IDA Pro уже давно
(gdb) b _start
стала дизассемблером де-факто). На самом деле, IDA Pro
Breakpoint 1 at 0x80482c0: file ../sysdeps/i386/elf/start.S, line 47. (а точнее, elf-загрузчик) тут совсем не причем, «просто мы
; запускаем программу на выполнение не умеем его готовить» . Чтобы все заработало правильно,
(gdb) r необходимо при загрузке файла взвести флажок «Manual
Breakpoint 1, _start () at ../sysdeps/i386/elf/start.S:47 Load» и в появившемся диалоговом окне «Loading options»
выбрать «Force using of PHT instead of SHT» (см. рис. 2).
; ок, мы в точке входа. Смотрим на extern
(gdb) x 0x80495DC Теперь и точка входа отображается нормально и файл
можно расшифровать прямо встроенным в IDA Pro расшиф-
# extern:80495DC 7F 01 00 00 extern puts@@GLIBC_2_0:near
0x80495dc: 0x00000000 ровщиком (см. рис. 3), после чего продолжить дизассемб-
лирование или снять готовый дамп.
; IDA Pro нас уверяет, что extern содержит адрес 0000017Fh,
; но в действительности область extern на момент запуска Тот факт, что функция _dl_map_object_deps() вызыва-
; файла девственно чиста и забита нулями ется из стартового кода, дает в наши руки универсальный
#.text:080482C0 _start proc near способ распаковки elf-файлов, упакованных практически
#.text:080482C0 31 ED xor ebp, ebp любым упаковщиком, за исключением тех случаев, когда
1: x/i $pc 0x80482c0 <_start>: xor %ebp,%ebp
файл слинкован со всеми используемыми библиотеками
; незначащие машинные инструкции пропущены статическим образом (то есть действует по принципу «все
#.text:080482D7 68 90 83 04 08 push offset main свое всегда ношу с собой»), но такие файлы встречают-
1: x/i $pc 0x80482d7 <_start+23>: push $0x8048390
#.text:080482DC E8 CF FF FF FF call ___libc_start_main
ся достаточно редко. Если только упаковщик не сопротив-
1: x/i $pc 0x80482dc <_start+28>: call 0x80482b0 <_init+56> ляется отладчику, достаточно всего лишь установить точ-
ку останова на _dl_map_object_deps() и... дождаться, ког-
; но вот стартовый код вызывает библиотечную функцию
; ___libc_start_main, поскольку компилятор еще не знает да она сработает. Тут же в стеке по адресу [ESP+08h] бу-
; ее фактического адреса, он вставляет переходник к секции дет адрес возврата из CALL __libc_start_main, а по адресу
; .plt, содержащей переходники к секции .got,
; заполняемой динамическим загрузчиком
#.plt:080482B0 ___libc_start_main proc near
#.plt:080482B0 FF 25 D0 95 04 08 jmp ds:off_80495D0
1: x/i $pc 0x80482b0 <_init+56>: jmp *0x80495d0
Рисунок 3. Расшифровка файла непосредственно в IDA Pro ; дизассемблер показывает типичный стартовый код,
; значит, приложение уже распаковано!
[ESP+0Ch] указатель непосредственно на саму main. Ес-
ли, конечно, нам повезет… Проблемы начинаются с того, Как вариант, изучив код распаковщика, можно напи-
что gdb с большой неохотой устанавливает точки остано- сать скрипт для IDA Pro, выполняющий распаковку само-
ва на shared-функции и потому точка останова обязатель- стоятельно. Это хорошо работает с несложными расшиф-
но должна быть аппаратной, причем срабатывать она мо- ровщиками/распаковщиками, и в данном случае листинг
жет несколько раз. Левые, срабатывая, распознаются лег- укладывается всего в несколько строк:
ко. Если по [ESP+08h] и [ESP+0Ch] лежит совсем не то, что
ожидалось (а это легко определить по диапазону адресов), Листинг 7. Скрипт для IDA Pro, расшифровывающий программу
пропускаем текущее срабатывание точки останова и про- auto a,x;
должаем выполнение программы командой «c». for(a=0x80482C0;a<0x8048338;)
{
Примерный сеанс работы с отладчиком может выгля- x=Dword(a);
деть так: x = x ^ 0x9CC03BD;
PatchDword(a,x);
a = a + 4;
Листинг 6. Распаковка программы путем установки точки }
останова на _dl_map_object_deps
34
администрирование
рован, что (теоретически) должно существенно упростить Листинг 10. Затертая сигнатура
дизассемблирование, но практически из-за отсутствия сим- 000013B390: 92 24 FF 00 55 50 58 21 │ 0D 0C 08 07 8F F1 E8 8C Т$ 6669♪♀◘•ПёшМ
вольных имен библиотечных функций анализ рискует пре- 000013B3A0: 05 97 B4 63 8C 6F 43 00 │ 19 EC 0D 00 00 41 52 00 ♣Ч┤cМoC ↓ь♪ AR
000013B3B0: 49 14 00 37 80 00 00 00 │ I 7А
вратиться в пытку.
Если же снимать дамп необязательно и достаточно Файл запускается так же, как и раньше, но