Академический Документы
Профессиональный Документы
Культура Документы
ЛИ
С
ЛИ
ТЯ Е
Ж ПИ
ЗА ДНИ
НУ
РА КУ
ЛЫ ГО
ТИ РАС
К У ВО
РО
№1(74) январь 2009
НИ НО
СТ
БЫ
подписной индекс 20780
КА
www.samag.ru
Автоматическая установка
И
ЬГ
ЬД О
БО А
К
ИС НН
ЕН
РА СК
ТЕ
УС
ИЛ ДА
У
ТП
НА П
Л ОТ
НЧ ЖИ
ВО
Вы еще не используете
РА ЛЕ
КО НЕО
Л
АВ ОС
ХА
УЕ
Windows Vista?
ЗА
Оптимизируем PPD-файлы
Так видит журнал читатель, оформивший подписку:
Анализируем трафик с Nulog2
Контролируем изменения
в конфигурационных файлах
nUbuntu – дистрибутив
для тестирования защищенности
П
озвольте поздравить всех вас, уважаемые читатели, с окончани-
ем самых длинных в году праздников. Честно сказать, я не слиш-
ком люблю затяжные каникулы, потому как последствия для рабо-
ты они создают самые ужасные. Необходимое время для адаптации к ра-
боте и общее нежелание заставлять себя что-то делать после почти двух-
недельного отдыха практически парализуют работу компаний едва ли
не до конца января.
Однако праздники закончились, и мы с горем пополам приступили к вы-
полнению своих прямых обязанностей или... к поиску нового места рабо-
ты. В этом году сотрудники многих компаний были отправлены на прину-
дительный отдых до 15, а то и до 19 января. Выходя на работу 16-го или
20-го числа, некоторые сотрудники имели неприятную возможность не-
ожиданно оказаться безработными. Хочется верить, что читателей наше-
го журнала миновала эта незавидная участь.
Новый, 2009 год обещает быть интересным хотя бы потому, что ни-
кто толком не может понять, чего от него следует ожидать. Кто-то запа-
сается рисом, кто-то подумывает, а не уехать ли куда-нибудь и желатель-
но подальше, а кто-то... совершенно неожиданно для себя получает край-
не интересные предложения по работе. Причем зачастую эти счастлив-
чики (в момент получения предложений) не являются безработными. Во-
обще, насколько я могу судить, уверенные в себе специалисты и сейчас
запросто срываются с насиженных мест и ищут новую работу. И находят
ее, что самое интересное.
В этом году нам всем придется приложить немало усилий для того, что-
бы сохранить и приумножить то, к чему мы так привыкли. Однако я пред-
лагаю не унывать, пока не смотреть новостные каналы (дабы те своими
истериками не мешали создавать правильный позитивный настрой) и, ве-
ря в успех, смело двигаться вперед.
Алексей Коршунов
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
тенденции
Google развивает Chrome по всем чем занимался Кэй Тайтц (Kai Tietz). «Впрочем, для того
направлениям чтобы эти наработки попали в основную ветку, потребует-
В начале декабря Аарон Будман (Aaron Boodman), пред- ся сделать еще много вещей», – подчеркнул Ланкхорст. На-
ставляющий коллектив разработчиков веб-браузера с от- работки по проекту wine64 доступны в Git-дереве wine64.git
крытым кодом Google Chrome, опубликовал в своем бло- (http://repo.or.cz/w/wine/wine64.git).
ге ссылку на информацию о готовящейся системе расши-
рений. Тогда о расширениях впервые заговорили в новом Sun выпустила веб-сервер с открытым
для Chrome ключе: они все же нужны и вовсе не обязатель- кодом
но будут мешать «легковесности» браузера. Главное вы- Sun Microsystems представила результаты проекта откры-
двинутое требование к расширениям – высокий уровень их тия исходного кода своего веб-сервера Sun Java System
качества («как будто эти расширения создавали разработ- Web Server (SJSWS). В середине января было объявле-
чики самого браузера»). Кроме того, расширения будут об- но об официальном запуске нового продукта компании –
новляться незаметно для пользователя. Сроки реализации Open Web Server.
проекта расширений для Chrome неизвестны. Open Web Server – это ядро Sun Java System Web Server,
Вскоре в СМИ появилось новое сообщение о Chrome: исходный код которого доступен всем желающим под ли-
Google сняла с браузера статус «бета» – всего через три цензией BSD. Он лишен некоторых возможностей SJSWS
месяца после первого публичного релиза. Это событие оз- (например, WebDAV, поиска, административного графи-
наменовалось исчезновением в 15-м релизе Chrome соот- ческого и консольного интерфейсов), но несмотря на это,
ветствующей подписи («бета») при запуске программы. в Sun его называют «тем же самым высокомасштабируе-
В январе стали известны подробности о сроках выпус- мым HTTP-сервером, обеспечивающим функционирова-
ка долгожданных версий Chrome для GNU/Linux и Mac OS X. ние многих нагруженных веб-сайтов, требующих высоко-
Эти релизы запланированы на июнь наступившего года. го уровня надежности».
Пока готовы лишь базовые версии Chrome для Linux и Mac, Среди возможностей, поддерживаемых в Open Web
которые позволяют только «хорошо отображать большую Server, можно выделить HTTP 1.0/1.1, SSL, CGI/FastCGI,
часть веб-страниц». SHTML, ACL, LDAP/LDAPS, NSAPI, кэширование файлов
И в завершение череды событий про Chrome сто- (NSFC), локализации, мониторинг.
ит отметить интересные изменения в тестовой сборке Open Web Server стал частью так называемого веб-стека
Chrome (2.0.156.1). В ней реализована поддержка скриптов (Web Stack) проекта операционной системы OpenSolaris.
Greasemonkey (Greasemonkey – расширение к Mozilla Firefox,
позволяющее пользователям устанавливать скрипты, пре- Linux Foundation объявила конкурс
образующие HTML-страницы на лету), появились профили, на рекламный ролик
автоматическое дополнение в веб-формах, полное масшта- В середине января организация Linux Foundation (LF), за-
бирование страниц, импорт закладок из Google Bookmarks, нимающаяся продвижением операционной системы GNU/
автоматический скроллинг. Linux, объявила о начале приема рекламных видеороликов
на участие в конкурсе «I'm Linux».
Sun и WINE сделали важные шаги Конкурс на лучший 60-секундный рекламный видеоро-
навстречу 64-битным системам лик был анонсирован Linux Foundation во второй половине
За ноябрьским анонсом выпуска альфа-версии Adobe Flash декабря. Название конкурса, которое должно содержать-
Player 10 для 64-битных Linux-систем последовали не ме- ся в каждом видео, было выбрано не случайно: оно явля-
нее значимые декабрьские релизы. ется прямой пародией на недавние рекламные кампании
Так, компания Sun Microsystems, выпустив предва- Apple («I'm a Mac») и Microsoft («I'm a PC»). Победитель кон-
рительную версию грядущего обновления к Java (Java 6 курса получит возможность бесплатного участия в Japan
Update 12), представила плагин для веб-браузеров на ма- Linux Symposium, что пройдет в Токио (Япония) в октябре
шинах с 64-битной архитектурой. Java-плагин для веб-бра- 2009 года.
узеров пользователей систем с 64-битной архитектурой – Участник конкурса должен быть старше 18 лет, уложить-
это столь давняя проблема, что достаточно указать да- ся в 60 секунд и показать в ролике, почему он любит Linux.
ту соответствующей записи в системе баг-трекинга Sun: Юмор в роликах рекомендуется, но не является обязатель-
14 января 2003 года (баг #4802695). Из-за этого обладате- ным. Комиссия LF будет оценивать в роликах оригиналь-
лям 64-битных систем приходилось пользоваться 32-бит- ность, ясность посылки и то, «насколько он вдохновляет
ными сборками браузеров или идти на другие ухищрения. других на использование Linux».
По-видимому, уже в ближайшее время пользователи смо- Присланные на конкурс «I'm Linux» работы доступны
гут забыть о былых неудобствах. Пока 64-битный Java-пла- на video.linuxfoundation.org.
гин доступен (на https://jdk6.dev.java.net/6uNea.html) только
для Firefox на платформах GNU/Linux и Windows. Когда по- Подготовил Дмитрий Шурупов
по материалам www.nixp.ru
явится его сборка для Solaris, не сообщается.
Почти одновременно с этим Маартен Ланкхорст (Maarten
Lankhorst) из проекта WINE объявил об успешном запус-
ке первого приложения, созданного для 64-битной версии
ОС Windows. Для этого потребовалось переработать GCC,
4-5 декабря 2008 года в Москве в здании Академии Наук РФ прошла десятая ежегодная
конференция Microsoft – «Платформа 2009. Определяя будущее». На ней было представлено
большое количество тематических докладов, но обо всем по порядку.
Н
ачну с того, что за несколько ме- Темы докладов n Бизнес-аналитика и отчеты.
сяцев до начала конференции На конференции было представлено n Управление IT-инфраструктурой.
на сайте и блогах, посвященных 60 технических докладов в несколь- n Портальные решения и групповая
предстоящей «Платформе», многими ких тематических секциях. Также про- работа.
пользователями высказывалось сом- водились круглые столы, посвящен- n Операционные cистемы.
нение в целесообразности проведения ные различным техническим пробле- n Архитектура систем и приложений.
мероприятия, в условиях глобально- мам, партнерская выставка, лабора- n Безопасность.
го экономического кризиса. Объясня- торные работы, как с инструктором, n Объединенные голосовые и почто-
лась такая точка зрения тем, что в ны- так и для самостоятельного выполне- вые коммуникации.
нешних условиях заказчики не будут ния, действовала зона «Спроси экс- n Доклады партнеров.
покупать новое программное обеспе- перта». Еще до начала конференции
чение, и соответственно, нет смысла было объявлено, что основным доклад- Операционные системы
проводить конференцию. И хотя кон- чиком будет Марк Руссинович, извест- Уместить в одной статье даже крат-
ференцию не отменили, но все же, ми- ный специалист по операционной сис- кое описание всех докладов довольно
ровые экономические проблемы вне- теме Windows. сложно, попробуем рассмотреть более
сли определенные коррективы в пла- Для тех, кто не смог лично присутс- подробно, что входило каждую из этих
ны организаторов. Изначально мес- твовать на конференции, была развер- тем. Открывал конференцию, как и бы-
том проведения предполагалось вы- нута веб-трансляция, которая, правда, ло заявлено, Марк Руссинович.
брать Крокус Сити, но потом было вы- не всегда работала. Начнем с «Операционных систем».
брано более привычное место – здание Но вернемся к темам докладов. Здесь было семь выступлений. В до-
РАН. Также, изначально хотели при- Вот основные из них. кладе «Windows – как создается опе-
гласить до 5000 человек, однако ре- n Инструменты и технологии разра- рационная система» было рассказано,
ально на конференцию были пригла- ботки программного обеспечения. как создается Microsoft Windows, как
шены только 1500. n Базы данных. устроен процесс разработки и тестиро-
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
репортаж
вания, что происходит с Windows пос- обзор технологий «Geneva» был посвя- шийся мной доклад Марка Руссинови-
ле выпуска и как решаются проблемы щен набирающим популярность в пос- ча. Вообще, следует отметить, что те-
сопровождения и поддержки. При этом, леднее время Identity, то есть сред- матическое деление было весьма ус-
в качестве примера была представле- ствам управления учетными запися- ловным, и многие доклады попадали
на разработка новых возможностей ми в различных приложениях. В до- сразу в несколько тематик.
Windows 7 и реальных ошибок, исправ- кладе рассматривались продукты се-
ленных в разных версиях Windows. мейства Geneva для обеспечения уп- Управление
В д р у г о м д о к л а д е «W i n d ow s равления учетными записями. IT‑инфраструктурой
Server 7 – новые технологии в Windows Другой док лад был посвящен Еще одной популярной темой кон-
Server 2008 R2» рассказывалось о но- Network Access Protection, средствам ференции было «Управление IT-ин-
вых возможностях готовящейся к вы- обеспечения контроля доступа уст- фраструктурой». В этой тематике
ходу операционной системы. ройств в корпоративную сеть. был представлен доклад «Microsoft
Еще один интересный док лад Д о к л а д «S ystem C enter Dat a Services Business Architecture – мето-
был посвящен платформе Microsoft Protection Manager 2007 – защити дан- дология формирования IT-стратегии»,
Windows Embedded. Данная платфор- ные как Герой» рассказывал об од- посвященный методологии Microsoft
ма предназначена для встраивания ном из ключевых продуктов семейс- Services Business Architecture (MSBA),
в различные устройства, от промыш- тва Microsoft System Center, обеспечи- используемой службой консалтинга
ленных контроллеров до сложных вающего непрерывную защиту дан- Microsoft в проектах, связанных с фор-
мультимедийных решений. ных посредством резервного копиро- мированием IT-стратегии.
Доклад «Построение инфраструк- вания, серверных и клиентских систем Еще один доклад, рассказываю-
туры систем высокой доступности» семейства Windows, файловых серве- щий о методах работы службы кон-
был посвящен созданию отказоустой- ров, приложений и данных Exchange, салтинга Microsoft – «Как Microsoft
чивых решений на основе механизмов SQL и SharePoint. Consulting Services делает крупные ин-
Failover Clustering и системы виртуали- «Безопасный обмен данными меж- фраструктурные проекты». Этот до-
зации Microsoft Hyper-V. ду организациями с использовани- клад раскрывал тему развертывания
Следующий доклад был посвящен ем Active Directory Rights Management Enterprise-класса инфраструктурных
достаточно актуальной теме – при- Services и Active Directory Federation решений силами Microsoft Consulting
чинам несовместимости приложений Services» – этот доклад рассказы- Services и партнеров.
с Windows Vista и их устранению. Ос- вал о новых средствах безопаснос- Следующий доклад был посвящен
новной упор автором доклада делался ти, представленных в Windows Server продуктам Small Business Server 2008
на понимании причин несовместимости 2008 и Vista: контролем прав и новых и Essential Business Server 2008, и рас-
и устранения и обхода этих проблем. функций в Active Directory. сказывал о преимуществах их ис-
Windows Embedded был также пос- Доклад «Стратегия Microsoft в об- пользования. В частности, их внедре-
вящен еще один доклад «Разработка ласти информационной безопаснос- ние позволит существенно снизить за-
устройств на базе Windows Embedded ти в России» был посвящен стратегии траты на развертывание и обслужи-
Standard». В этом докладе рассмат- Microsoft в этой области и ее особен- вание IT-инфраструктуры, и тем са-
ривался процесс разработки обра- ностям для российского рынка. Опи- мым сэкономить немало средств ва-
зов операционной системы Windows сываются общие тенденции развития шей компании.
Embedded Standard для различных ус- данных средств и использование но- «Как продать свой IT-отдел?» – этим
тройств, основные этапы разработ- вых технологий в продуктах Microsoft. вопросом озадачился автор следую-
ки и обзор инструментария разработ- Средствам борьбы с вирусами щего доклада. В докладе рассматри-
ки ОС. В конце доклада была проде- и спамом был посвящен доклад «Те- вался вопрос вывода IT-отдела в отде-
монстрирована сборка образа Windows ория и практика борьбы со спамом льную дочернюю компанию, оказываю-
Embedded Standard и загрузка в вирту- и вредоносным кодом с помощью тех- щую услуги аутсорсинга. Экономичес-
альной среде. нологий Microsoft». Как и следова- кий эффект от операции, повышение
И наконец, был доклад Марка Рус- ло ожидать, в докладе прежде всего качества поддержки, привлечение но-
синовича «Технологии безопасности рассматривались продукты семейс- вых заказчиков.
Windows». В этом докладе автор рас- тва Forefront, а также новые сред- Еще один доклад по схожей теме –
смотрел такие новые функции Windows ства защиты от спама в Microsoft «Как спланировать и построить инф-
Server 2008 как User Account Control, Exchange 2007. раструктуру объединенных коммуни-
Cod Integrity и PatchGuard, а также то, Доклад с интригующим названием каций». В докладе сооющалось о ме-
что изменилось в уже имевшихся «Что в филиале мне твоём?» был пос- тодиках планирования решения, вы-
функциях в Windows Server 2003, та- вящен новым средствам создания рас- боре партнерского ПО, дополняющего
ких как, подсистема обеспечения сес- пределенной доменной инфраструк- наше решение для объединенных ком-
сий пользователей. туры Active Directory и нововведениям муникаций и этапах внедрения полу-
в области безопасности, появившим- ченного комплекса. Аналогичный до-
Безопасность ся в Windows Server 2008. клад «Построение концепции разви-
По теме «Безопасность» было восемь Восьмым же докладом по темати- тия IT-системы предприятия: подход
докладов. Доклад «Claim-based identity: ке «Безопасность» был уже упоминав- Microsoft – оценка, планирование, вы-
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
иза х!
и х пр
о ваш
вай зо в те
забы ыш а
п р и
ны
Не ы г р к о в а
роз о п уб
ли
тоги то и уду т да.
м , ч А » б 9 г о
о м инае р и з ДВ а л я 200
На п
к и й п ф е вр з Т Р И»
А д м инс н а л а 25 и й при о ва л
« у р с к и р
с а й те ж « А д мин
а р е г и с тр
на р ыш а , к то з н а ла.
ы г е р
а м и роз в я тс я вс е р о в жу д ать.
тни к та н о о м е ж
Учас тически с д у щ их н о у м е ни
о м а п р е ды я т ольк
ав т ов и з би т с rIT –
к о д а д о e c u
шес т
ь
в а м по н а н ии S
п
э то т ра з з от ком
В
п е р пр и
ан с у И»
ы г р з Т Р
уд е т ра з и й п ри
Б
б у к . д м ин ск
ноу т р и з ов «А года.
ы ш ап а 2 0 09
р
г и р оз ыг ы 4 м ар т
Ито о д в ед е н
тп
буду
зяев!
и х хо
т сво
ы ж ду
Приз
Более подробную информацию о сроках и правилах проведения розыгрышей призов смотрите на сайте журнала – www.samag.ru
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Анализируем трафик
с Nulog2
Сергей Яремчук
Рассмотрим настройку веб-интерфейса NuLog2, позволяющего администратору в удобном
виде просматривать информацию о соединениях, проходящих через Netfilter и uFW.
Проект NuLog2 нию данных с ULOG, например, демон тернете встречаются и другие его на‑
В GNU/Linux все сетевые пакеты прохо‑ ulogd [1], написанный самим Гараль‑ звания – NuLog1 или ulogd-php). Раз‑
дят через Netfilter, в силу чего он и об‑ дом Велте, specter [2], построенный на работка последнего приостановле‑
ладает самой достоверной информа‑ базе ulogd 1.02, и ulog‑acctd [3]. Стоит на в июле 2007 года, но уже через ме‑
цией о количестве переданных и при‑ заметить, что основные разработки сяц начата работа над его второй вер‑
нятых данных. В 2000 году Гаральдом представленных проектов датированы сией – NuLog2, которая позициони‑
Велте (Harald Welte) был написан патч 2005 годом, правда, это не мешает их руется уже как анализатор журналов
к ядру – ULOG (Userspace Logging), полноценно использовать и до сих пор. Netfilter и NuFW.
позволяющий получать эту инфор‑ И только ulogd, о возможностях которо‑ В отличие от предшественника, на‑
мацию в пространстве пользователь‑ го будем говорить по ходу статьи, не‑ писанного на PHP, код NuLog2 полно‑
ских процессов (user space) в удобном давно начал опять активно развивать‑ стью переписан на Python с исполь‑
виде. Несмотря на то что «добраться» ся. Другие проекты нацелены на выда‑ зованием среды разработки Twisted.
до нужных данных теперь стало на по‑ чу информации, полученной при помо‑ Но, несмотря на все отличия, NuLog2
рядок проще, администраторам прихо‑ щи программ первой группы в удоб‑ использует ту же модель данных, по‑
дилось самостоятельно решать проб‑ ной форме – scanulog, ulog-monitor, этому очень просто можно перейти
лему их съема, обработки и выдачи Webfwlog и Nulog2. Возможностям пос‑ с NuLog на NuLog2 без потери инфор‑
в нужном виде. Как результат появи‑ леднего и посвящена статья. мации. Кроме среды разработки, изме‑
лось несколько проектов, решающих Проект NuLog2 [4] является даль‑ нена и лицензия с GPL v2 на GPL v3.
эти проблемы. Некоторые обеспечи‑ нейшим развитием PHP-интерфей‑ В настоящее время интерфейс
вали понятный интерфейс к получе‑ са к ulogd и NuFW [5]– NuLog (в Ин‑ обеспечивает просмотр информации
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
о разрешенных, заблокированных
пакетах по IP-адресам и пользовате‑
лям (только NuFW), TCP- и UDP-пор‑
там, а также приложениям, задейство‑
ванным в процессе соединения (толь‑
ко NuFW).
Поддерживаются обе версии про‑
токола IPv4 и IPv6, возможен деталь‑
ный просмотр каждого пакета, вывод
истории запросов. Все данные сведе‑
ны в таблицы и графики, предлагаю‑
щие просмотр в удобном виде. Возмо‑
жен экспорт данных в CVS-файл.
Реализованы функции поиска, ин‑
терфейс, написанный с использова‑
нием технологии AJAX, полностью
настраиваемый. В настоящее время
NuLog2 не локализован, но все пара‑
метры понятны и без перевода, так как
соответсвуют устоявшимся терминам. Интерфейс NuLog2 сразу после установки
Предвидя вопросы, скажу, что, к боль‑
шому сожалению, такой востребо‑
ванной функции как учет трафика, в
NuLog2 нет.
Установка и настройка
ulogd
Ознакомиться с возможностями Nulog2
(а также NuFW и интерфейса для его
настройки Nuface) можно в дистри‑
бутиве NuFW.live [6], который выпол‑
нен в формате LiveCD, основанном на
KNOPPIX. Мы же рассмотрим установ‑
ку его на рабочую систему на приме‑
ре Ubuntu 8.04 LTS, хотя много из ска‑
занного применимо и для других дис‑
трибутивов.
Для регистрации событий необ‑
ходим модуль ядра ipt_ULOG.o, кото‑ В NuLog2 реализованы функции поиска по нескольким параметрам
рый появился в ядре начиная с вер‑
сии 2.4.18-pre8. Тому, кто использует более ранний релиз В репозитарии Ubuntu имеются нужные пакеты для уста‑
ядра, следует его обновить или установить патч ulog-patch новки ulogd. Но следует знать, что сегодня существует две
с netfilter patch‑o‑matic. Ядро, используемое в Ubuntu 8.04 ветки: стабильная 1.2x и находящаяся пока в стадии разра‑
по умолчанию: ботки ulogd-2.x. Последняя имеет несколько больше встро‑
енных модулей, кроме этого, в ней реализована система
$ uname -r фильтров (подробнее во врезке «Сборка ulogd2 в Ubuntu»).
2.6.24-16-generic Для работы NuLog2 достаточно и релиза 1.23 (апрель
2005 года), который и доступен в репозитарии Ubuntu.
В параметрах сборки ULOG активирован:
$ sudo apt-cache showpkg ulogd | grep -i versions
$ grep -i ulog /usr/src/linux/.config Versions: 1.23
CONFIG_BRIDGE_EBT_ULOG=m
CONFIG_IP_NF_TARGET_ULOG=m
Устанавливается стандартно:
Забегая чуть вперед, скажу, что после загрузки демона
ulogd в списке lsmod должен появиться нужный модуль: $ sudo aptitude install ulogd ulogd-mysql
файл формата PCAP/Tcpdump или syslog. Для работы Все настройки UFW находятся в каталоге /etc/ufw, син‑
NuLog2 в выбранном варианте необходима поддержка таксис команд несколько напоминает iptables, но чуть про‑
MySQL, модули для работы с которой как раз и находятся ще и понятнее. По умолчанию UFW отключен, и перед за‑
во втором пакете. пуском демона необходимо в файле /etc/ufw/ufw.conf раз‑
Конфигурационный файл по умолчанию находится в /etc/ решить его запуск, заменив строку:
ulogd.conf, если он раположен в другом месте, на него мож‑
но указать при помощи параметра -c. В отличие от ulogd2, # set to yes to start on boot
ENABLED=no
в котором на порядок больше настроек, файл ulogd.conf го‑
раздо проще, значения основной части понятны: на
[global] ENABLED=yes
# Файл журнала и уровень журналирования
logfile="/var/log/ulog/ulogd.log"
# debug(1), info(3), notice(5), error(7) or fatal(8) Правила регистрации находятся в файле /etc/ufw/
# Вначале лучше поставить 1, а затем после полного
# прогона переключить на 5 after.rules и по умолчанию выглядят так:
loglevel=1
# Плагины вывода $ cat /etc/ufw/after.rules
# Текстовый формат ...
plugin="/usr/lib/ulogd/ulogd_LOGEMU.so" # catchall for logging
# Для вывода в MySQL, пока отключаем -A ufw-after-input -m limit --limit 3/min ↵
#plugin="/usr/lib/ulogd/ulogd_MYSQL.so" --limit-burst 10 -j LOG ↵
# Параметры вывода для разных плагинов --log-prefix "[UFW BLOCK INPUT]: "
# Текстовый -A ufw-after-forward -m limit --limit 3/min ↵
[LOGEMU] --limit-burst 10 -j LOG ↵
file="/var/log/ulog/syslogemu.log" --log-prefix "[UFW BLOCK FORWARD]: "
# Подключение к MySQL
[MYSQL]
table="ulog" Чтобы переключить их на ULOG, достаточно заменить
pass="pass"
user="user" LOG на ULOG (параметры с limit можно убрать):
db="ulogd"
host="localhost" -A ufw-after-input -m limit --limit 3/min ↵
--limit-burst 10 -j ULOG ↵
Далее нужно в правилах iptables указать, чтобы он ис‑ --ulog-prefix "[UFW BLOCK INPUT]: "
пользовал ULOG вместо LOG. В общем случае идея очень -A ufw-after-forward -m limit --limit 3/min ↵
--limit-burst 10 -j ULOG ↵
проста, нужно в правилах заменить строки вида: --ulog-prefix "[UFW BLOCK FORWARD]: "
10
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
limit: avg 3/min burst 10 ULOG copy_range 0 nlgroup 1 prefix ми доступны по адресу http://software.inl.fr/releases/Nulog2.
`[UFW BLOCK FORWARD]: ' queue_threshold 1 Скачиваем и распаковываем обычным образом. Созда‑
ULOG all -- 0.0.0.0/0 0.0.0.0/0
limit: avg 3/min burst 10 ULOG copy_range 0 nlgroup 1 prefix ем базу данных и учетную запись.
`[UFW BLOCK INPUT]: ' queue_threshold 1
$ mysql -uroot -prootpassword
> CREATE DATABASE ulogd;
Перезапускаем демон ulogd: > GRANT ALL PRIVILEGES ON ulogd.* TO 'user'@'localhost' ↵
IDENTIFIED BY 'pass';
$ sudo /etc/init.d/ulogd restart
В подкаталоге scripts архива находятся файлы для соз‑
Параллельно проверяем записи в файле журнала: дания таблиц. Для IPv4-сети выбираем файл ipv4.sql:
[server]
port=8080
vardir = /var/lib/nucentral/
address = 0.0.0.0
# список модулей
[modules]
nulog-core=yes
nulog-web=yes
Интерфейс NuLog2 легко видоизменить auth=yes
Сборка ulogd2 в Ubuntu Для сборки, кроме самого архива с ис‑ На момент написания этих строк бы‑
Тем же, кто решил установить самую пос‑ ходными кодами, потребуются самые пос‑ ла актуальной версия ulogd-2.0.0beta2,
леднюю версию ulogd, приведу краткую ледние версии библиотек – libnfnetlink, при использовании которой могут появ‑
инструкцию по компиляции. Возможности libnetfilter_log (захват пакетов) и libnetfilter_ ляться разного рода ошибки. Поэтому
во второй версии несколько шире. Так, уже conntrack (захват потока conntrack), кото‑ лучше использовать более «свежую» svn/
реализовано три типа плагинов: источник, рые можно скачать по ссылкам на страни‑ git‑версию. В этом случае для сборки, кро‑
фильтр и вывод. Плагины комбинируются це http://www.netfilter.org/projects. Некото‑ ме, собственно, build-essential и subversion
в стек (stack), который, собственно, и ука‑ рые из этих библиотек есть в репозитарии, в Ubuntu, потребуется установить еще ряд
зывает, что нужно делать демону. То есть но их версия существенно отстает от тре‑ пакетов:
теперь, чтобы захватить и вывести данные буемой. В случае возникновения проблем $ sudo apt-get install autoconf ↵
в файл, необходимо явно задавать: конфигурационный скрипт самостоятель‑ automake1.9 libtool
но укажет, чего ему не хватает. Далее как обычно.
stack=log1:NFLOG,op1: LOGEMU
checking for LIBNETFILTER_CONNTRACK... no $ svn co https://svn.netfilter.org/ ↵
Иначе получим ошибку вроде: configure: error: Cannot find libnetfilter_ netfilter/branches/ulog/ulogd2
conntrack >= 0.0.95 $ cd ulogd2
~/ulogd2$ ./autogen.sh; ./configure; ↵
Mon Dec 29 21:53:14 2008 <8> ulogd.c:1102 make; sudo make install
not even a single working plugin stack Компиляция библиотек стандартна:
$ ./configure Так как по умолчанию установка про‑
Означающую, что ulogd попрост у $ make изводится в /usr/local, следует указать путь
$ sudo make install
не знает, что ему делать. к /usr/local/lib/ulogd в файле /etc/ld.so.conf,
В стек может входить только по одно‑ Для удобства можно собрать deb-па‑ чтобы динамические библиотеки были
му плагину источника и вывода. Количест‑ кет, воспользовавшись инструкцией The видны.
во фильтров неограничено. Конфигурация Ubuntu Packaging Guide (https://help.ubuntu. Кроме этого, необходимо вручную пе‑
может содержать несколько стеков, поэто‑ com/6.10/ubuntu/packagingguide/C). ренести конфигурационные файлы и соз‑
му отбор нужной информации можно на‑ Если в процессе конфигурирования дать ссылки для запуска:
строить действительно тонко. ulogd будут получены сообщения вроде: $ sudo cp -v ulogd.conf ↵
Кроме этого, в ulogd2 используется не‑ /usr/local/etc/ulogd.conf
configure: WARNING: mysql.h not found $ sudo cp -v ulogd.logrotate ↵
сколько измененная схема SQL, в которой checking for mysql_close in -lmysqlclient... no /etc/logrotate.d/ulogd
данные разделены на несколько таблиц
configure: WARNING: libmysqlclient.so not found $ sudo cp -v ulogd.init ↵
/etc/init.d/ulogd
(вместо одной в ulogd), что дает возмож‑ Это означает, что нет заголовочных $ sudo ln –s /etc/init.d/ulogd ↵
ность легко добавить дополнительную ин‑ файлов для активации поддержки MySQL. /etc/rcS.d/S99ulogd
формацию, создав новую таблицу. В отли‑ Так как для работы NuLog2 такой модуль После настроек советую в первый раз
чие от ulogd1 вторая версия построена та‑ необходим, доустанавливаем пакет, в ко‑ запустить демон в консоли, чтобы просмот‑
ким образом, что изменение схемы SQL ни‑ тором находятся нужные файлы. реть возможные ошибки.
как не повлияет на его работу. Кроме ULOG, $ sudo aptitude install ↵ $ sudo /usr/local/sbin/ulogd
поддерживается и NFLOG. libmysqlclient15-dev
Далее для создания рабочего окружения запускаем Файл nulog.conf содержит настройки, актуальные для
скрипт install_defconf.sh. веб‑интерфейса (их скорее всего трогать не придется).
12
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
И запускаем:
Дмитрий Петухов
Компьютерная инфраструктура – критически важная среда для ведения бизнеса,
требующая постоянного контроля и обеспечения ее бесперебойной работы. Всегда быть
в курсе происходящего и предотвратить какие-либо проблемы поможет внедрение системы
мониторинга ресурсов сети.
В
недрение на предприятии систе- системе мониторинга корпоративного Linux, Solaris 10 или старше, Mac OS X
мы мониторинга ресурсов сети уровня Hyperic HQ. (Intel x86), Windows 2003 Server, по-
является верным шагом на пу- средством инсталлируемых на серве-
ти управления развивающейся ин- О системе Hyperic HQ ры агентов.
фраструктурой. За счет постоянно- Hyperic HQ – это всеобъемлющий набор Hyperic HQ доступна в двух вари-
го контроля всех важных узлов и эле- инструментов, который позволяет: антах для загрузки: Enterprise и Open
ментов повышается надежность и от- n отслеживать производительность Source. На настоящий момент послед-
казоустойчивость всей системы в це- системы; ней стабильной версией является 3.2.
лом. При возникновении критических n собирать и хранить данные об аппа- Отличие версии Enterprise от Open
ситуаций, система оповестит ключе- ратных средствах сети, средствах Source заключается в отсутствии у пос-
вой персонал о возникших неполад- виртуализации и приложениях; ледней некоторой функциональности,
ках, либо и вовсе поможет предотвра- n создавать оповещения об интере- в частности технической поддержки,
тить проблему. Одной из основных сующих нас событиях – используя возможности создания своих шабло-
проблем при внедрении такой систе- единый центр управления, доступ- нов оповещения, авторизации LDAP
мы, становится выбор из всего мно- ный через веб-интерфейс. и Kerberos, но, несмотря на это, она
гообразия предлагаемых продуктов. вполне пригодна для использования
В этом обзоре мы подробно остано- Комплекс достаточно прост в ус- на малых предприятиях со средней
вимся на одном из таких вариантов – тановке и может быть развернут на сложности инфраструктурой.
14
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Также стоит упомянуть о существовании совместного
открытого проекта компаний Red Hat и Hyperic, под назва-
нием RHQ, нацеленного на управление корпоративной ин-
формационно-технической инфраструктурой. RHQ разра-
батывается как единый набор инструментов, которые бу-
дут включены в будущие издания продуктов Red Hat, та-
ких как JBoss Operations Network и Red Hat Network, а так-
же в сам Hyperic HQ.
Архитектура системы базируется на следующих четы-
рех основных абстракциях:
n Platform (платформа) – машина, операционная систе-
ма или любая комбинация сетей и устройств хранения
данных. Платформы являются самым нижним уровнем
в архитектуре управления и могут включать в себя та-
кие элементы, как процессоры, сетевые интерфейсы,
жесткие диски, а также файловые системы.
n Server (сервер) – это любое серверное программное Рисунок 1. Модель Application
обеспечение, которое установлено на платформу.
Hyperic HQ способно управлять различными типами сер- n 500 Мб свободного дискового пространства;
веров, такими как веб-серверы с базами данных, сер- n под держиваемые операционные системы Linux,
веры обмена и многое другое. Windows XP или 2003 Server, Solaris 8 или выше, HP‑UX,
n Service (служба) – это один из компонентов серверов, AIX, FreeBSD.
который выполняет конкретную задачу. Примером такой
службы может являться виртуальный хост в настройках Общими требованиями для сервера и агента является
Apache. наличие JRE или JDK 1.4 или 1.5. И сервер, и агент уже со-
n Application – это понятие представляет собой идею держат в комплекте JRE, которое рекомендовано для ис-
того, что одна общая задача выполняется на различ- пользования. Однако иногда бывает предпочтительнее ис-
ных платформах и обеспечивается разными сервера- пользовать JRE (или JDK), которые могут быть уже уста-
ми. Пользовательский интерфейс предлагает способ новлены в системе.
управления инфраструктурой с прикладной точки зре-
ния в противовес аппаратной. Смысл в том, чтобы объ- Установка Hyperic HQ
единить службы, выполняющие одну глобальную зада- Установка и тестирование системы производилось мной
чу в единые группы. Для большей наглядности и пони- на Windows Vista Ultimate SP1 и CentOS 5.1. Хотя Windows
мания этой абстракции предлагаю взглянуть на рис. 1. Vista и не заявлена в документации как поддерживаемая
платформа, Hyperic HQ была проинсталлирована, и без ка-
Системные требования ких- либо проблем выполняла свои функции.
Необходимое аппаратное обеспечение для нормальной ра- Процесс установки системы на Windows достаточно
боты серверной части: прост. После скачивания архива распаковываем его в ко-
n Процессор Pentium 4 или эквивалент, 1 ГГц или выше рень системного диска и запускаем файл setup.bat из кор-
(рекомендуется два процессора Pentium Xeon 2.4 ГГц ня установочной директории. Откроется консоль со следу-
или эквивалент); ющим содержимым:
n 1 Гб или выше (рекомендуется 4 Гб или более);
n 1-5 Гб свободного дискового пространства; C:\<Installation Directory>\setup.bat
Initializing Hyperic HQ Installation...
n Поддерживаемые операционные системы Linux, Choose which software to install:
Windows XP или 2003 Server, Solaris 8 или выше, 1: Hyperic HQ Server
2: Hyperic HQ Shell
HP‑UX. 3: Hyperic HQ Agent
You may enter multiple choices, separated by commas.
Hyperic HQ Server по умолчанию настроен на работу
со своей собственной базой данных, однако есть возмож- Здесь предлагается выбрать компоненты для уста-
ность хранения информации и в других базах данных. Под- новки, причем можно выбрать сразу несколько компонен-
держиваются следующие БД: тов через запятую. Выбираем установку сервера и агента,
n PostgreSQL 8 или выше; то есть вводим «1, 3».
n Oracle 9i или 10g; Далее предлагается выбрать путь для установки сер-
n MySQL 5.0.45 или выше. вера, по умолчанию это C:\Program Files, мы не будем муд-
рить и просто нажмем клавишу <Enter>. Если на вашей
Необходимое аппаратное обеспечение для нормаль- системе не обнаружен SMTP-сервер, который будет ис-
ной работы агента: пользоваться системой для отправки уведомлений, то бу-
n Celeron 500 МГц или выше, или эквивалент; дет запрошен его адрес или доменное имя. Следующим
n 256 Мб ОЗУ; шагом установщик запросит путь для установки аген-
та, по умолчанию это опять все тот же C:\Program Files. Затем спрашивается, хотим ли мы, чтобы соединение
На этом вопросы заканчиваются, и начинается установ- между сервером и агентом было безопасное, – по умолча-
ка сервера, агента и встроенной базы данных. Если ус- нию это нет. Включить эту опцию имеет смысл в том слу-
тановка остановится на Starting built-in database... то на- чае, если сервер и агент для соединения используют Ин-
жмите <Enter> для продолжения. По завершении уста- тернет. В нашем же случае оставляем все как есть и жмем
новки инсталляционный скрип сообщит вам об удачной <Enter>.
установке.
Should Agent communications to HQ always be secure [default=no]:
Следующим шагом инсталляции будет установка сер-
вера, в качестве службы Windows. Для этого проследуйте Далее, предлагается ввести номер порта для связи
в директорию C:\Program Files\server-x.x.x\bin, где x.x.x но- с сервером – по умолчанию это порт 7080. Жмем <Enter>
мер версии, и запустите оттуда файл hq-server.exe с клю- и переходим к следующему пункту.
чом -i. После чего стартует сервис из оснастки «Управление
What is the HQ server port [default=7080]:
компьютером → Службы». Заметьте, что вместе со служ-
бой сервера была также установлена служба Hyperic HQ Следующими двумя пунктами будут запрошены логин
Database, которая стартует автоматом сразу после запус- и пароль для доступа к серверу – по умолчанию это hqadmin/
ка сервера. hqadmin, если вы не изменяли ни то, ни другое, то жмем
Далее переходим к агенту. Запуск производится из ди- <Enter> и идем далее.
ректории C:\Program Files\agent-x.x.x\bin, где x.x.x номер вер-
сии. После старта hq-agent.exe в консоль выводится: - Testing insecure connection ... Success
What is your HQ login [default=hqadmin]:
What is your HQ password:
Starting agent
- Unable to load agent token file. Generating a new one ... Done
- Invoking agent Теперь определяем IP-адрес и порт, которые сервер бу-
Agent successfully started дет использовать для связи с агентом, здесь также все ос-
[ Running agent setup ]
тавляем по умолчанию.
What is the HQ server IP address:
What IP should HQ use to contact the agent [default=127.0.0.1]:
What port should HQ use to contact the agent [default=2144]:
Здесь предлагается ввести IP-адрес сервера, так как
серверная часть находится на той же машине, что и агент, Если инсталляция прошла успешно, вы должны уви-
то мы пишем 127.0.0.1. деть следующее:
16
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
- Received temporary auth token from agent же как и сервер с ключом -i, и стартуем сервис. Установ-
- Registering agent with HQ ка агента и сервера под Linux производится путем запус-
- HQ gave us the following agent token
1104817706987-8534327776788402831-4021000845020676153 ка установочного скрипта setup.sh и никаких затруднений
- Informing agent of new HQ server вызывать не должна. После установки запускаем сервер
- Validating
- Successfully setup agent
/home/hyperic/bin/hq-server.sh start и агент /home/hyperic/bin/
hq-agent.sh start. Все вопросы, выводимые в консоль, пол-
Вся установка агента завершена успешно. Для того что- ностью идентичны тем, что выводятся при запуске серве-
бы агент выполнялся в качестве службы, запускаем его, так ра и агента в Windows.
Работа с программой в адресной строке вашего любимо- на вся основная информация о рабо-
После того как сервер и клиент уста- го браузера your _ip:7080 и попадаем те системы, избранные ресурсы, не-
новлены и сконфигурированы, мож- на страницу авторизации, по умолча- давние оповещения и тому подобные
но переходить к проверке работос- нию логин/пароль для доступа к серве- вещи, позволяющие видеть картину
пособности и настройке програм- ру hqadmin/ hqadmin, после регистра- происходящего в целом. На данный
мы. Для контроля и анализа получен- ции на сервере в целях безопасности момент нас интересует раздел Auto-
ных сервером данных, а также опове- рекомендуется сразу же сменить па- Discovery – это автообнаружение сер-
щения об интересующих нас событи- роль – это можно сделать в разделе висов. Если при инсталляции вы вы-
ях, программа имеет весьма удобный Administration веб-интерфейса. брали установку агента, и он у вас за-
веб-интерфейс. Если вы не меняли но- При успешной регистрации вы пущен и нормально функционирует,
мер порта при установке, то он досту- попадете на стартовую страницу то вы увидите, что компьютер, на ко-
пен на порту 7080, поэтому набираем Dashboard (см. рис. 2), здесь собра- тором установлен агент, в нашем слу-
18
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
чае, это тот же компьютер, на кото- ществляется одноименными кнопка- таблицы с отображением минимально-
ром установлен сервер, то он появил- ми, расположенными в верхнем пра- го, среднего, пикового значений, так-
ся в списке вместе с перечнем ресур- вом углу списка. же показатели доступности и интервал
сов для мониторинга. Ставим галочки Теперь, если мы в разделе Platforms обновления данных.
напротив тех сервисов, которые же- нажмем на нашу, пока что единствен- Теперь, чтобы описание систе-
лаем контролировать, и жмем Add to ную платформу, то попадем в раздел мы не сводилось к сухому описанию
Inventory – все наши ресурсы добав- текущего состояния ресурсов. Так мож- вкладок, давайте здесь мы перейдем
лены в опись сервисов. но сделать, нажав на любой из име- к практике, и для наибольшей понят-
Теперь посмотрим, что у нас полу- ющихся ресурсов, будь то платфор- ности и наглядности создадим сервис.
чилось. Переходим через главное ме- ма, сервер или сервис. Но мы начнем Итак, перейдем на вкладку Inventory
ню на вкладку «Resource → Browser» с платформы, так как она является (см. рис. 6), здесь в разделе Services
(см. рис. 3). Здесь мы видим уже зна- самым нижним уровнем абстракции отображаются сервисы, относящи-
комые нам из описанной выше архи- в архитектуре системы. Итак, здесь еся непосредственно к нашей плат-
тектуры системы разделы. В разде- сверху мы видим краткую информа- форме. Жмем кнопу NEW и попада-
ле Platforms отображается наша плат- цию о конфигурации нашей платфор- ем на страницу создания нового сер-
форма, пока она у нас одна. В разде- мы: операционная система, парамет- виса. Тут пишем имя создаваемого
ле Servers – наши серверы, среди кото- ры сети, количество оперативной па- сервиса, при желании его описание,
рых виден и наш агент, согласно архи- мяти, тип процессора. Ниже несколь- и ниже выбираем тип. Для примера
тектуре системы агент, также являет- ко вкладок, в нашем случае их четы- давайте создадим сервис, контроли-
ся сервером. В разделе Services нахо- ре, в зависимости от того, что откры- рующий состояние службы Windows
дятся наши сервисы, которые в данный то, их может быть разное количество. «Диспетчер печати», выберем Windows
момент мониторятся системой. Также Первая вкладка Monitor (см. рис. 4), Service и нажмем OK. Далее, в разде-
имеются разделы Compatible Groups/ в левой колонке Resources – список ле Configuration Properties жмем кноп-
Clusters, Mixed Groups и Applications, сервисов и серверов, находящихся ку Edit и в поле service_name вписы-
которые мы можем создать при не- на данной платформе. Середина стра- ваем реальное имя службы, в нашем
обходимости через Tools Menu, рас- ницы разделена на две вкладки, пер- случае это Spooler, жмем OK. Все, сер-
положенные в верхнем левом углу. вая Indicators, здесь расположены ин- вис создан, теперь, перейдя на вклад-
Просмотр списков ресурсов может дикатор доступности, ниже отобра- ку Monitor, мы можем отслеживать со-
осуществляться двумя способами: жаются графики метрик, обычно это стояние нашей службы.
по умолчанию – это List View, т.е. прос- загрузка процессора, использование Имея данные о доступности служ-
той список, либо Chart View – каждый оперативной памяти, это опять же за- бы и используемых ей ресурсов, мы
пункт отображается с миниатюрами висит от того, что открыто, и еще ни- можем на основании этого строить
графиков и цветовым представлени- же индикатор отслеживания событий. систему оповещения. Например, мы
ем доступности сервиса. Переключе- Во вкладке Metric Data (см. рис. 5) мы хотим получить оповещение, если на-
ние между режимами просмотра осу- видим все то же самое, только в виде ша служба Spooler стала недоступ-
на. Для создания оповещения пере- чае это служба Windows, и мы можем смотреть какие-либо события или опо-
ходим во вкладку Alert и жмем NEW произвести над ней действия Start, вещения, отфильтровав их в разрезе
(см. рис. 7), задаем имя и описа- Stop и Restart прямо через веб-интер- каких-либо критериев.
ние в соответствующих полях. Ниже фейс. Также можем посмотреть ис- В последнем разделе Administration
в Condition Set задаем наше условие. торию выполняемых действий в под- предоставляется возможность управ-
Выбираем метрику Availability и усло- вкладке History. ления пользователями системы, схе-
вие «is !=(Not Equal to) 100%», то есть Следующая вкладка Views, но, пе- мами эскалации, а также настройка-
доступность службы не равна 100%, рейдя на нее, вам сообщат, что для дан- ми самой системы и платинами.
и жмем OK. После нажатия кнопки ного ресурса элементы просмотра от-
OK мы попадаем на страницу нашего сутствуют. В этой вкладке доступны Заключение
оповещения, здесь внизу мы можем для просмотра данные в реальном ре- Данная система, конечно, в первую
задать схему эскалации оповещения, жиме времени, поступающие с плат- очередь предназначена для круп-
что бывает удобно для некоторых со- формы, поэтому при помощи меню Map, ных компаний, таких как дата-цент-
бытий, схемы эскалации можно созда- расположенного в верхнем левом уг- ры и хост провайдеры, система мо-
вать в разделе Administration главного лу экрана, переходим к нашей Win32 жет применяться в гетерогенных сетях,
меню, а также кому будут отправлять platform. Там появилась кнопка Live осуществляет сбор данных по SNMP,
оповещения. Оповещения можно от- Exec (см. рис. 8), нажав на нее, мы пе- поддерживает мониторинг виртуаль-
правлять пользователям, которые име- реходим к экрану просмотра. Слева ных машин, таких как VMware или Xen,
ются в системе, – вкладка Notify HQ есть выпадающее меню, в котором до- имеется возможность кластеризации.
Users, а также на произвольно задан- ступна для выбора информация о цент- Для небольших компаний она менее
ные почтовые ящики – вкладка Notify ральном процессоре и его использова- пригодна, ввиду того, что для своей ра-
Other Recipients. Ну вот теперь, если нии, информация о файловой системе, боты требует достаточно больших вы-
остановить службу «Диспетчер печа- информация о статистике и конфигура- числительных мощностей, и как след-
ти» , вы получите оповещение об этом ции сети, а также процессы, запущен- ствие выделение под себя отдельного
на свой почтовый ящик. ные в системе, и информация о зало- сервера, что не всем по карману, в лю-
Понятие о том, как создавать опо- гинившихся пользователях. бом случае выбор за вами.
вещения, мы получили, теперь пере- Следующий раздел интерфейса Удачи!
ходим к следующей вкладке. Вкладка Analyze содержит в себе два инстру-
Control имеется не везде, но в нашем мента, предназначенные для просмот- 1. Сайт проек та Hyperic HQ – http://
случае она есть, здесь можно произ- ра и анализа оповещений Alert Center www.hyperic.com.
водить какие-либо действия над кон- и событий Event Center. Они могут быть 2. Сайт проекта RHQ-Project – http://
тролируемым объектом, в нашем слу- полезны, если вам необходимо про- www.rhq-project.org.
20
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Иван Коробко
Решить задачу пакетной установки драйверов можно разными способами. Среди них
наиболее распространенный – интеграция в дистрибутив операционной системы, однако
он не единственный. Поговорим о малоизвестных способах пакетной установки драйверов.
В
крупных организациях парк ком- Для решения этой проблемы необ- гающихся в каталоге %SystemRoot%/
пьютеров, как правило, унифи- ходимо инсталлировать часто исполь- System32.
цирован. Однако он постоянно зуемые драйверы на всех компьютерах Интерпретатор SETUPAPI находит-
обновляется. Самый распространен- на этапе разворачивания программно- ся в библиотечном файле setupapi.dll,
ный из них – интеграция пакета драй- го обеспечения. интерпретатор ADVANCEDINF – в биб-
веров в дистрибутив операционной Для обеспечения автоматической лиотечном файле advpack.dll. Ос-
системы. Существует еще несколько пакетной установки драйверов можно новным интерпретатором является
альтернативных способов, которым использовать либо командный файл, SETUPAPI. Для получения доступа
стоит уделить внимание: установка па- либо Driver Package Installer (DPInst). к интерпретаторам используется за-
кета драйверов с помощью командно- Рассмотрим подробнее два способа. пускаемый файл RUNDLL32.EXE. Фор-
го файла и с помощью Driver Package мат запуска любой библиотеки сле-
Installer. Командный файл дующий:
Довольно часто возникает ситуа- Алгоритм установки драйверов уст-
ция, когда необходимо предустановить ройств описан в INF-файле. В нем на- rundll32.exe DLL,Function Рarameters
пакет драйверов. В целях безопас- ходится информация о том, какие биб-
ности большинство сотрудников в се- лиотеки и куда необходимо скопиро- где:
ти не обладают административными вать, какие изменения сделать в ре- n DLL – имя файла библиотеки.
правами и не могут устанавливать уст- естре и т. д. В данном случае setupapi.dll или
ройства. По этой причине они не могут В Windows используется два ин- advpack.dll.
подключить без помощи администра- терпретатора INF-файлов: SETUPAPI n Function – функция, вызываемая
тора различные внешние устройства и ADVANCEDINF, которые представ- из библиотеки, или, как ее еще на-
с интерфейсом USB, Fire Ware и т. д. ляют собой два DLL-файла, распола- зывают, точка входа. Обратите вни-
22
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
мание: название файла и вызываемой функции разде- INF-файла, служащую его точкой входа. Для этого адми-
лены запятой без пробелов. нистратор должен разбираться в синтаксисе.
n Parameters – параметры, передаваемые функции.
Driver Package Installer
Интерпретатор SETUPAPI Driver Package Installer (DPInst) – компонент, разработанный
Интерпретатор SETUPAPI позволяет: компанией Microsoft, входящий в состав пакета Microsoft
n управлять реестром: создание и удаление ключей, па- Windows Driver Install Frameworks (DIF). В настоящее время
раметров и их значений; используется DIF v 2.1. DPInst обладает возможностями:
n распаковывать CAB-файлы; n Установка Plug and Play (PnP) драйверов. По умолчанию
n управлять файлами и папками, их атрибутами; устанавливаются все подписанные PnP-драйверы, на-
n устанавливать и удалять драйверы устройств. ходящиеся в каталоге с файлом dpinst.exe. Для отклю-
чения проверки используется ключ /LM.
Для запуска процесса установки драйверов использует- n Пакетная установка драйверов с помощью файла
ся функция InstallHinfSection, для удаления – соответствен- dpinst.xml. Описание структуры XML-файла см. далее.
но unInstallHinfSection. В листинге 1 приведен пример уста- n Поддержка «тихого» режима установки. Для включения
новки драйверов, описанных в файле HP_1200.INF. режима используется ключ /S или /Q.
n Поддержка многоязычного интерфейса установщика
Листинг 1. Установка драйверов с помощью интерпретатора драйверов.
SETUPAPI
n Ведение журнала установки.
rundll32.exe setupapi,InstallHinfSection HP_1200_PPD 132 ↵ n Деинсталляция драйверов.
C:\HP_1200.INF
Функция InstallHinfSection имеет три параметра. Пер- Из перечисленных возможностей видно, что с помощью
вый из них – имя выполняемой секции INF-файла, второй – DPInst можно реализовать автоматическую установку груп-
флаг обработки файла. В таблице приведены возможные пы драйверов в «тихом» режиме. По умолчанию DPInst ус-
значения флага. Третий параметр – непосредственно имя танавливает в системе все драйверы, INF-файлы которых
INF-файла. находятся в одном каталоге с этой утилитой, однако устра-
ивать помойку из драйверов по меньшей мере некорректно.
Интерпретатор ADVANCEDINF Для решения этой проблемы используется DPInst.XML, на-
По своей сути интерпретатор ADVANCEDINF является над- ходящийся в одном каталоге с DPInst.EXE. Он представля-
стройкой над SETUPAPI, позволяющей выполнять допол- ет собой обычный текстовый файл в формате XML. Единс-
нительно следующие функции: твенное его отличие от других файлов – наличие стандар-
n однократное выполнение доустановки после входа тизированных тегов.
в систему при инсталляции и деинсталляции (Active
Setup); Установка пакета драйверов
n предварительная запись изменяемых ключей реестра Существует два способа пакетной установки: с помощью
в бинарный файл (функция отката); тега <group> и <search>. Принципиальная разница между
n запуск исполняемых файлов с параметрами в скрытом этими способами заключается в том, что с помощью тега
и нормальном режимах; <group> реализована установка драйверов, местоположе-
n вывод диалоговых окон. ние которых точно указано. Используя тег <search>, можно
установить все драйверы в указанной и ее дочерних пап-
Стандартные функции ADVANCEDINF передает на ис- ках. Рассмотрим подробнее оба способа.
полнение интерпретатору SETUPAPI.
В листинге 2 приведен аналогичный пример установ- Пакетная установка драйверов с помощью
ки PostScript драйвера принтера HP 1200. Несмотря на то тега <group>
что в функции использованы те же три параметра, их по- Для обеспечения установки пакета драйверов в файле
рядок изменился. Первый параметр – имя INF-файла, вто- DPInst.XML используется тег <group>, в котором может быть
рой – название секции, третий – флаг обработки файла три типа дочерних тегов:
(см. таблицу). n <package path = «…»/> – таких тегов может быть неогра-
ниченное количество. Значение параметра path – относи-
Листинг 2. Установка драйверов с помощью интерпретатора тельный или абсолютный путь к INF-файлу драйвера.
SETUPAPI
24
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
bugtraq
Вы еще не используете
Windows Vista?
Андрей Бирюков
Основные возможности и нововведения операционной системы.
П
рошло у же почти два года бор компонентов, прежде всего муль- заголовков, Flip3D, и анимированных
со времени выхода операци- тимедийных. эффектов при сворачивании/разво-
онной системы Windows Vista. Как видно из таблицы, каждая рачивании окон.
За это время продукт от Microsoft уже из редакций имеет свою целевую Второй уровень – Aero Glass – об-
успел наделать много шума на интер- аудиторию, позволяя не тратить день- ладает всеми ранее перечисленны-
нет-форумах и в различных печатных ги на тот функционал, который вам ми эффектами. Aero Glass – примене-
изданиях. Одни пользователи отча- не требуется. Говоря о возможнос- ние прозрачных (с размывкой заднего
янно ругают эту операционную сис- тях, следует отметить появление но- плана) заголовков и панелей в окнах
тему, другие восхищаются. Попробу- вых средств, которые также упомина- в стиле оформления «Windows Aero».
ем разобраться в том, что же такое лись в таблице. Windows Flip – новый вид меню <alt> +
Windows Vista. Прежде всего это Aero – новый ин- <tab>, в котором показываются эскизы
Вашему вниманию предлагает- терфейс, который содержит различ- открытых окон и их значки. Windows
ся цикл статей, посвященных различ- ные средства визуализации. Напри- Flip 3D – замена <win> + <tab>, теперь
ным возможностям Vista. В этой ста- мер, прозрачные заголовки и грани- все окна выстраиваются в ряд в 3D.
тье я расскажу об основных новшес- цы, плавное сворачивание и развора- При помощи стрелок клавиатуры или
твах данной операционной системы чивание окон, Flip3D – все это новые колесика мышки можно прокручивать
и опишу ее установку и базовую на- графические компоненты, появивши- окна. Клавиша <Enter> или клик мыш-
стройку. еся в Vista. кой активируют окно стоящее по сере-
Прежде всего поговорим о сущес- Архитектура Aero содержит не- дине ряда.
твующих редакциях Windows Vista. сколько уровней. Возможность исполь- Вообще, говоря про Aero, следует
Их довольно много, поэтому новичку зования каждого из них зависит от ха- заметить, что далеко не все оборудо-
может оказаться непросто в них ра- рактеристик оборудования. Чем мощ- вание поддерживает данный интер-
зобраться (см. таблицу). Пусть вас нее конфигурация компьютера, тем бо- фейс, о том, как проверить это и поп-
не пугает присутствие новых назва- лее высокий уровень Aero поддержи- робовать включить, мы поговорим да-
ний в таблице, о том, что они означа- вается системой. Основных уровня лее в этой статье. На момент написа-
ют, мы поговорим позднее. всего два – Windows Basic и Aero (ра- ния статьи поддерживалось 203 уст-
Кроме приведенных в таблице, нее так же известные, как Aero Express ройства.
по требованиям ЕС в Европе вы мо- и Aero Glass). Наилучших результатов можно до-
жете встретить редакции Home Basic и Первый уровень содержит эффек- стигнуть с графическими процессора-
Business, которые содержат другой на- ты уровня Glass, кроме прозрачности ми следующих конфигураций:
26
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
n 64 Мб графической памяти для под- Редакции Windows Vista
держки монитора с разрешени- Редакция Аппаратные ограничения Предназначение
ем мене е 1 310 720 пикс елов Vista Starter Поддерживается только один 32‑битный Данная редакция позиционируется
(1280х1024); процессор, нет поддержки Aero, разработчиками как рабочая платформа
нет шифрования, не поддерживаются для различных веб-киосков и платежных
n 128 М б г р аф ич е с ко й п а м я т и входящие соединения, нельзя включать терминалов. Не думаю, что в России получит
для поддержки монитора с разре- в домен, возможны не более трех широкое распространение
одновременных исходящих подключений,
шением от 1 310 720 до 2 304 000 нельзя использовать Media Center
пикселов (1600х1200); Vista Home Basic Поддерживаются как входящие, так и Предназначена для домашних компьютеров,
n 25 6 Мб г р аф ич е с ко й п а м я т и исходящие соединения, 32‑битная на которых не требуются мощные функции
для поддержки монитора с разре- архитектура, нельзя включать в домен по воспроизведению мультимедиа
шением более 2 304 000 пикселов Vista Home Premium Аналогично редакции Home Basic, Эта редакция, по мнению разработчиков,
но поддерживает 64-битную архитектуру должна стать оптимальной рабочей средой
(2560х1600). и Media Center для домашних компьютеров
Vista Business Схожа с редакцией Home Premium, Операционная система для рабочих станций,
Еще одна новая функция – это Media но нет Media Center, шифрования и есть не требующих мощных вычислительных
возможность включения в домен нагрузок
Center. Фактически это средство для
полноценного просмотра не только Vista Enterprise Нет только Media Center. Поддерживается Для продвинутых рабочих станций
64‑битная архитектура
видео, но и телевидения (при наличии
Vista Ultimate Поддерживаются все возможные функции Для высокопроизводительных рабочих
ТВ‑тюнера). Здесь сразу возникает Windows Vista станций, требующих постоянной работы
вопрос, с какими устройствами рабо- с большими потоками медиаданных
тает Vista Media Center. На сайте компа-
нии Microsoft есть раздел сертифици- Обратите внимание на то, что для ра- весьма полезно в тех случаях, когда
рованных под Media Center устройств – боты Vista Upgrade Advisor вам необ- приходится выполнять сразу несколь-
видеорекордеров и ТВ-тюнеров [1]. ходимо установить Microsoft Core XML ко инсталляций.
Так же в таблице упоминалась Services 6.0 и .NET Framework 2.0. Дан- Перед началом установки хочу об-
64‑битная архитектура. Скажу не- ные компоненты также можно найти ратить внимание еще на один неболь-
сколько слов о совместимости. 32‑бит- на сайте Microsoft. шой момент, а именно, дистрибутив
ную редакцию можно использовать Vista распространяется на DVD-дис-
на 64‑битной архитектуре, однако об- Непосредственно ках, поэтому не забудьте убедиться,
ратное невозможно. Использовать установка что во всех рабочих станциях, на ко-
64‑битную редакцию на 32‑битной Итак, определившись с редакцией торые вы собираетесь устанавливать
архитектуре вам не удастся. Вообще и убедившись в аппаратной совмес- новую ОС, есть DVD-приводы.
при планировании установки вы може- тимости, приступим к установке но- После загрузки с установочно-
те воспользоваться статьями и инстру- вой операционной системы. Рассмот- го диска на первом шаге у вас спро-
ментами на странице [2]. рим установку системы на «чистый» сят язык, формат даты и язык вво-
Для проверки компьютера на сов- раздел. Надо отдать должное разра- да с клавиатуры. Затем вам необхо-
местимость с Vista вы можете восполь- ботчикам, они упростили и автомати- димо указать Product Key, состоящий
зоваться специальным инструментом – зировали процесс развертывания. Ин- из 25 символов.
Windows Vista Upgrade Advisor, позво- сталлятор сначала задает все необ- После этого вам будет предложено
ляющим проверить машину на совмес- ходимые вопросы, а затем самосто- активировать систему. Я бы рекомен-
тимость. Данная утилита предназначе- ятельно копирует системные файлы довал отказаться от активации в про-
на для работы с 32‑битными архитекту- и настройки и перезагружает рабочую цессе установки по нескольким причи-
рами. Получить ее можно по адресу [3]. станцию. Согласитесь, это новшество нам. Прежде всего система активации
позволит вам переустановить систе- Далее нужно указать раздел, на ко- На следующем шаге вам нужно
му только один раз, если вам придет- торый производится установка. Ес- указать дату и время, а также часовой
ся переустанавливать ОС более одно- ли вы используете RAID-контроллеры пояс. И выбрать текущее расположе-
го раза, то нужно будет связываться со или жесткие диски со специфическими ние (Location). Microsoft рекомендует
службой поддержки Microsoft, что мо- драйверами, то на этом шаге вы може- использовать Public Location.
жет занять немало времени. К тому же те загрузить данные драйвера. На этом установка системы завер-
в случае если после установки какое- После этого программа установки шена. Теперь посмотрим на нововве-
либо устройство будет работать не- начнет копирование системных фай- дения, появившиеся в Windows Vista.
корректно, вполне возможно, что вам лов. После этого вам нужно будет ука- Сразу отмечу, что в этой статье речь
придется менять аппаратную конфи- зать имя пользователя и пароль, а за- пойдет только о новшествах в GUI.
гурацию (например, материнскую пла- тем имя компьютера. На следующем Для начала попробуйте включить ин-
ту), а такие изменения также требуют шаге вам будет предложено устано- терфейс Aero. Прежде всего ваша ви-
повторной активации системы. Так что вить обновления. Стоит ли это делать деокарта должна соответствовать тем
в течение месяца вы можете работать в процессе установки или нет, думаю, требованиям, которые я приводил ра-
без активации, проверяя работоспо- каждый системный администратор нее в этой статье.
собность операционной системы. должен решить самостоятельно, ос- Для запуска выполните следующие
На следующем шаге вам необходи- новываясь на собственном опыте ус- несложные действия: «Пуск → Панель
мо выбрать редакцию. Здесь вы можете тановки Vista. К тому же если вы выбе- управления → Персонализация → Цвет
выбрать любую редакцию, однако в слу- рете Ask Me Later, то вы сможете поз- и внешний вид окон (включить про-
чае если ваш ключ активации не пред- днее использовать в качестве источ- зрачность) → Открыть свойства клас-
назначен для данной редакции, продол- ника обновлений локальный сервер сического внешнего вида для выбо-
жить установку вам не удастся. При не- WSUS (Windows Server Update Services), ра других возможностей → Парамет-
обходимости вы можете вернуться на- если он у вас развернут, что позволит ры оформления → Цветовая схема →
зад, чтобы ввести другой ключ. сэкономить на интернет-трафике. Windows Aero → Применить». Однако,
28
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
как выясняется, даже если ваша видеокарта соответствует ти и целостности данных. Появились такие функции, как
требованиям, то интерфейс Aero не всегда работает. При- Parent Control (родительский контроль), User Account Control
веду несколько рекомендаций, которые могут пригодить- (UAC, управление учетными данными пользователей), улуч-
ся при решении проблем с Aero. шенный Windows Firewall, поддержка NAP (Network Access
Protection, защита сетевого доступа) и другие функции.
Решение проблем с запуском Aero Обо всем этом в других статьях, а следующая будет пос-
Для начала убедитесь, что для цвета установлена разряд- вящена средствам обеспечения безопасности в Windows
ность 32 бита, частота обновления экрана монитора выше Vista.
10 герц, тема установлена в Windows Vista, для цветовой схе-
мы выбрана Windows Aero и включена прозрачность рамки 1. http://www.microsoft.com/windows/compatibility/Browse.aspx?typ
окна. Для того чтобы установить 32-битную цветопереда- e=Hardware&category=TV%20Devices&subcategory=TV%20Tun
чу откройте окно настройки параметров экрана. В списке ers – список совместимых с Vista ТВ-тюнеров.
«Цвета» выберите «Высшее (32 бита)» и нажмите ОК. (Ес- 2. http://technet.microsoft.com/ru-ru/windows/aa904820.aspx – ста-
ли не удается выбрать 32 бит, убедитесь, что установлено тьи по планированию и развертыванию Windows Vista.
максимально возможное разрешение, а затем попытайтесь 3. http://www.microsoft.com/windows/windows-vista/get/upgrade-
снова.) Установить частоту обновления экрана можно в ок- advisor.aspx – инструмент Windows Vista Upgrade Advisor.
не настройки параметров экрана.
Во вкладке «Дополнительные параметры» перейдите Реклама
на вкладку «Наблюдать», а затем выберите частоту обнов-
ления выше 10 герц. Для смены частоты обновления необ-
ходимо некоторое время. Если требуется сохранить изме-
нения, нажмите «Применить». Если изменения не будут со-
хранены в течение пятнадцати секунд, частота обновления
вернется к своему прежнему значению.
Для того чтобы сменить тему рабочего стола, необхо-
димо щелкнуть по ссылке и открыть «Параметры темы» и
в списке «Тема» выбрать Windows Vista.
Для установки цветовой схемы в Windows Aero в списке
«Цветовая схема» выберите Windows Aero и нажмите ОК.
Чтобы включить прозрачность рамки окна, сначала
необходимо установить цветовую схему в Windows Aero.
Для этого в «Панели управления» щелкните «Оформление
и личная настройка», «Персонализация», а затем выбери-
те «Цвет и внешний вид окна». Установите флажок «Вклю-
чить прозрачность». Эти стандартные действия должны по-
мочь при работе с Aero.
В случае если они не помогают, есть еще не совсем
стандартные средства. Для запуска Aero можно также
внести некоторые правки в параметры реестра. В редак-
торе реестра необходимо изменить значение следующих
параметров:
n HKCU\Software\Microsoft\Windows\DWM\Composition из-
меняем на 1 (32-bit DWORD),
n H K C U \ S o f t w a r e \ M i c r o s o f t \ W i n d o w s \ D W M \
CompositionPolicy изменяем на 2 (32-bit DWORD).
Заключение
Что же еще нового мы можем увидеть в Windows Vista? Це-
лый ряд новшеств связан с обеспечением безопаснос-
Оптимизируем PPD-файлы
Иван Коробко
Все основные настройки Post Script-драйверов хранятся в отдельных файлах.
Рассмотрим их подробнее.
П
еред запуском документа на печать необходимо вы- чанию и сократить предлагаемый список форматов бума-
брать принтер и определить ряд обязательных па- ги до разумного (см. рисунок). Аналогичная ситуация воз-
раметров. По умолчанию им уже присвоены значе- никает с качеством печати: зачем на обычном принтере пе-
ния. Однако не все они отвечают требованиям конечного чатать с качеством 1200 точек на дюйм, когда вполне до-
пользователя. Например, на принтере формата А4 в боль- статочно 300 dpi или 600 dpi.
шинстве случаев по умолчанию установлен формат бумаги Все вышеуказанные параметры хранятся в текстовом
letter, хотя необходим А4. В одном случае из ста может воз- файле с расширением PPD, который поставляется произ-
никнуть необходимость распечатать на конверте. Возника- водителем принтера в комплекте драйверов.
ет закономерный вопрос: как изменить значение по умол-
Структура PostScript‑драйвера
Любой PostScript или PS-драйвер состоит из нескольких
библиотек, входящих в комплект операционной системы.
Несмотря на это они включаются в дистрибутив драйвера
принтера для удобства его установки. В таблице 1 приведен
список библиотек стандартного PS-драйвера Windows 2K.
После установки все файлы драйвера копируются в папку
C:\Windows\System32\spool\drivers\w32x86.
В листинге 1 приведен стандартный INF-файл, обеспе-
чивающий установку PS-драйвера для принтера. На прак-
тике производитель создает для драйвера графическую
оболочку, которая видоизменяет его до неузнаваемости.
Основной недостаток GUI-оболочки заключается в сниже-
нии работоспособности драйвера. Иногда ошибки програм-
мистов, создавшие графическую оболочку, могут привес-
ти к невозможности распечатать документ. Любую GUI-обо-
Список размеров бумаги в настройках драйвера принтера лочку драйвера можно убрать (см. [1]).
30
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Листинг 1. Шаблон INF-файла стандартного PS-драйвера це 2. В листинге 2 приведен текст стандартного заголов-
[Version] ка PPD-файла:
Signature="$Windows CHICAGO$"
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318} Листинг 2. Типичный заголовок PPD-файла
Class=Printer
Provider="temp" *PPD-Adobe: "4.3"
[Manufacturer] *% ======================================================
%Company%=firm *% Printer Description File
*% Copyright 1992-2001 Hewlett-Packard Company
[firm] *%=======================================================
"Product Name" = **********, unique_identifier *% PPD for HP LaserJet 1200 Series
*%=======================================================
[**********]
CopyFiles=@*****.PPD,PSCRIPT_NT ; PPD-файл. *% === PPD File Version Information ====
DataSection=PSCRIPT_DATA *FileVersion: "1.004"
DataFile=*****.PPD *FormatVersion: "4.3"
Include=NTPRINT.INF ; инсталляция NTPRINT.INF. *LanguageEncoding: ISOLatin1
Needs=PSCRIPT.OEM ; инсталляция PSCRIPT. *LanguageVersion: English
*PCFileName: "HP1200_7.PPD"
[DestinationDirs]
DefaultDestDir=66000 *% === Product Version Information ====
[SourceDisksNames] *ModelName: "HP LaserJet 1200 Series"
1 = "HP",,,"" *ShortNickName: "HP LaserJet 1200 Series PS"
[SourceDisksFiles] *NickName: "HP LaserJet 1200 Series PS"
HP1200.ppd = 1,,,,,,,11,3 *Product: "(HP LaserJet 1200 Series)"
[Strings] *Manufacturer: "HP"
Company = "Firm Name" *PSVersion: "(2014.108) 1"
ит из строк, каждая из которых начи- *FormatVersion 4.3 Версия PPD. Значение совпадает со значением параметра
*PPD-Adobe
нается с символа звездочки «*». Стро-
*LanguageEncoding ISOLatin1, Cyrillic Кодировка, используемая в драйвере. Для английского
ка может состоять из нескольких под- языка ISOLatin1, для русского – Cyrillic
строк. В этом случае строка не начи- *LanguageVersion English, Russian Язык, используемый в настройках драйвера
нается с символа «*», комментарий на-
*Manufacturer HP Производитель оборудования
чинается с «*%».
*ModelName HP LaserJet 1200 Series Модель принтера. Назначается производителем
В общем виде строка строится
*NickName HP LaserJet 1200 Series PS Локальное имя принтера, задаваемое при установке
по следующему шаблону: устройства мастером. В нем также обычно указывается
версия драйвера. Длина не ограничена
*command:value *ShortNickName HP LaserJet 1200 Series PS Локальное имя принтера, задаваемое при установке
устройства мастером. В отличие от *NickName длина
ограничена 31-м символом
где command – зарезервированная ко-
*Product (HP LaserJet 1200 Series) Уникальное Название продукта. По этом полю система
манда (см. [2]), value – его значение. определяет установлен ли драйвер в системе и предлагает
один из вариантов действия: заменить, пропустить
Листинг 3. Описание поддерживаемых форматов бумаги Листинг 6. Назначение формата бумаги по умолчанию
32
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
bugtraq
Рамиль Айзятуллен
Хотите организовать или перевести старый домен на новое программное обеспечение,
при этом чтобы пользователи ничего не заметили? Я поделюсь с вами опытом по самой
трудоемкой части этого процесса – переносу профилей пользователей.
В
озникла задача перевести учет- ся в том, что вы знаете к ней пароль, ром прописан DNS Windows 2003, вто-
ные данные всех пользовате- иначе, когда вы выведете компьютер рым остался DNS сервера на FreeBSD.
лей из домена Samba в домен из домена, придется этот пароль сбра- Также в DHCP прописан сервер WINS,
Windows. Самое сложное и утомитель- сывать [1]. установленный на Samba 3.
ное во всем этом – перенос профилей Коротко опишу состояние локаль- На сервере DNS Windows 2003
пользователей. ной сети. Мы имеем два настроенных включена пересылка запросов DNS,
Итак приступим. У нас есть два домена, один на платформе FreeBSD которые не могут быть обработаны са-
домена, старый OLD (домен Samba 3) с установленным пакетом Samba 3 (по- мим сервером (например, адресован-
и новый new.local (домен Windows 2003). читать об установке и настройке мож- ные в Интернет).
На рабочих станциях установлены опе- но на в моем блоге [2]), и другой до- В качестве сервера, куда пересы-
рационные системы Windows 2000 мен AD на MS Windows 2003. На сер- лаются запросы, указан IP-адрес сер-
Professional и Windows XP Professional вере Samba включена служба WINS вера DNS на платформе FreeBSD.
Edition. для сопоставления netbios-имён ком- Согласно принятой политике бе-
Внимание! Рекомендую преж- пьютеров с IP-адресами узлов. зопасности пользователи сами на-
де всего проверить на всех рабочих На отдельном сервере на платфор- значали себе пароли, и потому в но-
станциях наличие учетной записи ло- ме FreeBSD запущены службы DNS вом Windows 2003 домене были со-
кального администратора и убедить- и DHCP. В DHCP первым DNS-серве- зданы такие же учетные записи поль-
34
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
зователей, но с одинаковым паролем.
В свойствах учетной записи всех поль-
зователей на вкладке «Учетная за-
пись» установлена галка «Требовать
смену пароля при следующем входе
в систему».
В обоих доменах имеется сценарий
входа, подключающий сетевые диски
с Samba-сервера.
У нас есть два домена, и они пре-
красно существуют в одной сети. Ду-
маю, что если подобным образом пе-
реходить из одного Windows-доме-
на в другой, проблем также не воз-
никнет.
А теперь к делу: перенос профи-
лей пользователей из одного доме-
на в другой.
Регистрируемся в старом домене
с учетной записью администратора
домена и выводим компьютер из до-
мена (у обычных пользователей не- Рисунок 1. Установка прав пользователя к папке профиля в Windows XP
достаточно для этого прав). В ходе
этой операции будут запрошены имя
пользователя и пароль, можно ниче-
го не вводить.
После успешного вывода в рабо-
чую группу (например, OLD) потре-
буется перегрузить компьютер поль-
зователя.
После перезагрузки компьютера
регистрируемся с учетной записью ло-
кального администратора и находим
профиль пользователя данного ком-
пьютера (который требуется перенес-
ти), в нашей локальной сети использо-
вались локальные профили пользова-
телей. К примеру, это может быть пап-
ка C:\Documents and Settings\ivanov. Пе-
реименовываем эту папку, к примеру
в ivanov123.
Далее вводим машину в новый до-
мен new.local, здесь понадобится па-
роль администратора этого домена,
и перезагружаем компьютер. Регист- Рисунок 2. Установка прав пользователя на ветку реестра в Windows XP
рируемся на рабочей станции с домен-
ной учетной записью ivanov. Открываем свойства папки ivanov, ем в меню «Файл → Загрузить куст»,
После этого опять перезагружа- переходим на вкладку безопасность выбираем файл C:\Documents and
ем компьютер, это необходимо, что- и даем полный доступ к этой папке Settings\ivanov\NTUSER.DAT. Так как
бы выгрузилась ветка реестра поль- пользователю ivanov из нового доме- этот файл скрытый, то нужно предва-
зователя ivanov. Если этого не сделать, на (см. рис. 1). рительно в проводнике Windows вы-
не получится полностью удалить папку Далее запускаем программу regedit брать папку C:\Documents and Settings\
C:\Documents and Settings\ivanov. для операционной системы Windows XP ivanov и в меню «Сервис → Свойства
Регистрируемся в новый домен (нажимаем «Пуск → Выполнить», в по- папки → Вид» включить «Показывать
с учетной записью пользователя ад- ле «Открыть» набираем команду скрытые файлы и папки».
министратор нового домена. Удаля- «regedit», нажимаем Ok) и програм- На предложение указать имя раз-
ем папку C:\Documents and Settings\ му regedt32 для Windows 2000. Запус- дела пишем, например, 123. После это-
ivanov, а папку ivanov123 переимено- тится редактор реестра, затем выби- го выбираем данный раздел и даем
вываем в ivanov. раем раздел HKEY_USERS. Нажима- полный доступ к нему пользователю
Резюме
При достаточной сноровке, современ-
ном компьютере и не очень большой
папке C:\Documents and Settings\ivanov
перенос профиля занимает в среднем
15-20 минут, а значит, за один рабочий
день силами только одного системного
Рисунок 3. Установка прав пользователя на ветку реестра в Windows 2000 администратора офис небольшой ком-
пании в 20 рабочих мест может быть
ivanov из нового домена. Далее выби- Внимание! Что было утеряно: переведен из домена в домен. Обсу-
раем в меню «Файл → Выгрузить куст» n головная боль всех администрато- дить статью можно на форуме – http://
(см. рис. 2). Для Windows 2000 в меню ров – пароль Skype (в Windows XP, www.samag.ru/forum.
есть специальный пункт «Разреше- в Windows 2000 он сохранился);
ния», вот и все отличие (см. рис. 3). n адрес прокси-сервера в Internet 1. Сброс локальных паролей Windows –
Завершаем сеанс администрато- Explorer (Mozilla Firefox лишена h t t p : / / h o m e . e u n e t . n o /~ p n o r d a h l /
ра и регистрируемся в домен с учет- этой проблемы), сохраненные ло- ntpasswd.
ной записью пользователя ivanov. Ви- гин и пароль для доступа к прокси- 2. Настройка Samba – http://argo-uln.
дим старый рабочий стол пользовате- серверу; blogspot.com/2006/08/samba-3-pdc-ldap-
ля со всеми его ярлыками, файлами, n пароль на почтовый ящик в Outlook freebsd-61.html.
программами. Express; 3 PDC LDAP FreeBSD 6.1.
36
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Иван Коробко
Группа безопасности – один из основных объектов Active Directory, определяющего правила
доступа к ресурсам домена. Умение управлять этим объектом дает большие возможности
в автоматизации управления Active Directory.
Г
руппа безопасности, так же как Тип группы (group type) определяет, Directory Users and Computers выбором
и учетная запись пользователя, – является ли группа – группой рассыл- пункта «New → Group» из контекстно-
очень важный объект, значение ки или же группой безопасности. го меню папки, в которой необходимо
которого нельзя недооценивать, не- Существует два типа групп: Security создать учетную запись. Таким обра-
смотря на его простоту по сравнению (безопасности) и Distribution (распро- зом, определяется местоположение
с последним. С помощью групп безо- странения). объекта, которому в Active Directory со-
пасности определяют уровень досту- Вторая важная характеристика – ответствует значение атрибута объек-
па к сетевым или локальным ресур- область действия группы (Group scope). та distinguishedName.
сам; используя членство пользовате- Областью действия определяют, ка- Работа мастера состоит из одно-
лей в группах, создают интеллектуаль- ким образом может быть использова- го шага (см. рис. 1). Во время соз-
ные сценарии регистрации пользова- на группа: как локальная, как глобаль- дания группы безопасности необ-
телей в сети. ная или как универсальная. При нали- ходимо назначить имя и тип груп-
В этой статье, являющейся четвер- чии в лесу двух и более доменов об- пы, определить область действия
той частью цикла статей о внутреннем ласть действия группы играет значе- и имя группы для совместимости (Pre-
устройстве Active Directory, рассмот- ние, однако при наличии в нем одно- Windows 2000) с доменом Windows NT
рим анатомию группы Active Directory го домена – область действия не име- (см. таблицу 1).
и принципы программного управления ет значения. Рассмотрим параметры, задава-
этим объектом. емые мастером во время создания
Создание группы учетной записи. Первым из них явля-
Основные понятия Существует минимум два способа ется название группы (атрибут Group).
Прежде чем перейти к описанию объ- создания группы безопасности: с по- В каталоге Active Directory ему соответ-
ектной модели группы безопасности, мощью мастера и сценария. Рассмот- ствует атрибут cn. Значение атрибута
рассматривать вопрос членства учет- рим сначала работу мастера, уделив name – отображаемое имя, назнача-
ных записей пользователей в груп- особое внимание изменениям, кото- ется автоматически, идентично значе-
пе, необходимо определить понятие рые происходят в это время в каталоге нию cn. Однако впоследствии оно мо-
«группа безопасности». Active Directory. Основные параметры, жет быть изменено в свойствах груп-
Группа безопасности (security задаваемые при создании группы ад- пы безопасности.
group) – объект, в котором могут со- министратором – ее имя и тип. Измене- Одновременно с этим значени-
держаться дочерние объекты: учет- ние остальных параметров возможно ем назначается имя группы, исполь-
ные записи групп и пользователей. только после создания объекта с помо- зуемое для совместимости с домена-
Она используется для определения щью соответствующего мастера. ми Windows NT – значение параметра
разрешений доступа к файлам и дру- Group name (Pre‑Windows 2000). В ка-
гим ресурсам. Любая группа безопас- Создание группы с помощью талоге Active Directory ему соответству-
ности характеризуется двумя парамет- мастера ет атрибут sAMAccountName.
рами: ее типом и областью действия Запуск мастера создания группы осу- Значения атрибута cn и sAMAccount-
(см. таблицу 1). ществляется из MMC-консоли Active Name можно изменить, только пере-
емое имя. Group name cn, name String Название группы в домене
С помощью двух оставшихся бло- Group name sAMAccountname String Название группы, используемое
ков определяют тип и область действия (Pre-Windows 2000) для совместимости с доменом Windows NT
группы. По умолчанию мастер предла- Group scope groupType Radio Button Суммарным значением параметра описывается
область действия и тип создаваемой группы
гает создать глобальную группу безо- безопасности
пасности (groupType = -2147483646).
Каждому из выбранных значений
соответствует цифровой эквива-
лент (см. таблицу 2). В каталог Active
Directory записывается суммарное зна-
чение в числовое поле groupType.
Удаление группы
Аналогично описанию процесса создания группы рассмот-
рим удаление группы с двух ракурсов: работы мастера
Рисунок 2. Удаление учетной записи группы с помощью
и сценария, их взаимосвязи. мастера
38
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Удаление объекта с помощью Таблица 3. Параметры сценария для создания учетной записи пользователя
сценария Параметр Описание Способ назначения
В сценарии удаления объекта необхо- сn = Test Отображаемое имя Явный
димо указать тип удаляемого объекта sAMAccountName = Test Имя в сети для совместимости с доменами Windows NT Явный
и путь к этому объекту в каталоге Active
groupType = -2147483646 Область действия и тип группы Явный
Directory. Оба параметра в сумме со-
distinguishedName = CN=Test, Путь к создаваемой учетной записи группы Неявный
ставляют значение distinguishedName. OU=WorkSpace,DC=Island,DC=ru
Например, если требуется удалить
группу Test, то необходимо определить значение парамет- Алгоритм работы сценария в обоих случаях следующий.
ра distinguishedName. Затем – имя объекта (значение cn) На первом этапе с помощью функции GetObject() получа-
и папку, в которой он находится. ют доступ к группе. Затем, вызывая функцию, аргумент ко-
торой составное имя группы или учетной записи, осущест-
Листинг 2. Удаление учетной записи группы вляют требуемое действие, причем вызывать setInfo() для
set RootDSE = GetObject("LDAP://RootDSE") записи данных в каталог Active Directory не нужно.
Domain = rootDSE.Get("defaultNamingContext") Для добавления учетной записи используется функция
Set objUsers = GetObject("LDAP://OU=WorkGroup," & Domain)
objUsers.delete "group", "cn=Test" Add (см. листинг 4а), а для удаления – Remove (см. лис-
Set objUsers = nothing тинг 4б).
path = …
Каждый из этих способов можно реализовать как про- objPath=…
граммно, так и с помощью мастера ММС-консоли, от- Set objGroup = GetObject("LDAP:// " & path)
objGroup.Remove("LDAP:// " & objPath)
крыв вкладку Members учетной записи в свойствах груп-
пы (см. рис. 3).
Заключение
Получение списка членов группы Практическая ценность использования групп безопасности
Членами группы безопасности могут быть группы или заключается в том, что на основе членства в группе поль-
пользователи. Список членов группы хранится в масси- зователю можно предоставлять определенный админист-
ве Member, который хранится в виде составного LDAP-пу- ратором набор сервисов, причем независимо от рабочей
ти (см. листинг 3а). станции, на которой работает пользователь. Широкое при-
В графической оболочке отображается преобразован- менение эта идея нашла в сценариях регистрации пользо-
ное каноническое имя, которому соответствует значение по- вателей в сети.
ля cn. Такое преобразование приведено в листинге 3б. Надеюсь, эта статья поможет автоматизировать неко-
торые процессы в вашей сети.
Листинг 3а. Получение списка членов группы
(стандартный вариант)
1. Object Naming – http://www.microsoft.com/technet/prodtechnol/
path = … windows2000serv/reskit/distrib/dsbb_act_kjpw.mspx?mfr=true.
Set objGroup = GetObject("LDAP:// " & path)
temp = ""
For Each obj In objGroup.member
temp = temp + obj + vbNewLine
Next
MsgBox temp
path = …
Set objGroup = GetObject("LDAP:// " & path)
For Each obj In objGroup.member
temp = temp + GetObject("LDAP:// " & ↵
obj.cn) + vbNewLine
Next
MsgBox temp
Контролируем изменения
в конфигурационных файлах
Владимир Легеза
40
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
О
дна из классических проблем, Теория ми группами разработчиков. Наибо-
с которой я часто встречался На все вопросы «кем, когда, что и как» лее заметными реализациями с от-
на практике, является самой нам дает ответ любая система контро- крытым кодом стали GIT (создавав-
распространенной и звучит так: ля версий. С ее помощью можно видеть шаяся в первую очередь для ведения
n «Только что работало, а сейчас все вносимые изменения, а также ис- процесса разработки ядра OS Linux)
не хочет» – возникает, как прави- торию о том, кем и когда они были сде- и Mercurial, появившиеся практически
ло, когда во время редактирования ланы. И многое другое. в одно время.
случайно было задето что-то лиш- Система контроля конфигурацион-
нее. Например, удалены несколько ных файлов состоит из двух частей. С точки зрения инструмента для ра-
строк. Если эта оплошность не вне- n Репозитарий. Внутри репозита- боты с конфигурационными файлами
сла нарушения в синтаксис файла, рия хранится вся история измене- основное отличие между всеми этими
то устранить ее можно будет толь- ний со всей сопутствующей инфор- системами в большей степени заклю-
ко после того, как станет извест- мацией. чается в удобстве и простоте исполь-
но «что» и «где» перестало рабо- n Файлы. Назовем их «последней зования. К примеру, установка конт-
тать. В другом примере, приложе- версией, извлеченной из репози- роля над файлом в системе RCS мо-
ние не обладает встроенным конт- тария». Это те самые файлы, ко- жет быть достигнута всего одной ко-
ролем синтаксиса файла конфигу- торые непосредственно исполь- мандой. В Mercurial – минимум двумя.
рации, и отыскать несколько симво- зуются приложениями (такими как А в SVN это может превратиться в на-
лов, по той или иной причине ока- Apache, Bind и т. д.). Содержимое стоящую эпопею – если нужный файл
завшихся в неположенном мес- каждого из них идентично послед- имеет десяток вышестоящих в иерар-
те, – задача не из легких. Особен- ней версии, находящейся в репо- хии каталогов, каждый из которых при-
но если в файле несколько тысяч зитарии. дется последовательно инициализиро-
строк. вать в системе.
n «Я его случайно удалил!» – другая Основной принцип сводится к тому, Функции, позволяющие осущест-
проблема, чуть менее распростра- что после каждого изменения конфи- влять хранение конфигурационных
ненная, но не менее неприятная. гурационного файла его новый вари- файлов в отдаленных (remote) репо-
Вам повезло, и у вас есть бэкап! ант сохраняется в репозитарии. зитариях, практически непримени-
Но радоваться рано – еще пред- На сегодняшний день системы мы. Создание локального репозита-
стоит вспомнить и воссоздать мо- контроля версий сменили третье по- рия более целесообразно, посколь-
дификации, которые в бэкап не по- коление: ку в этом случае его функционирова-
пали. n Локальные – системы способны ние не зависит от работоспособности
n «Мои изменения куда-то делись! контролировать отдельные фай- сторонних систем и обеспечивает до-
Но я ведь проверял, что они со- лы, каждый из которых обладает ступность данных в случае потери свя-
хранились!» – достаточно редкое, собственным файлом репозита- зи с «внешним миром».
но весьма грустное явление. Такое рия. Представителем этого клас- Единственный случай, при кото-
зачастую происходит, когда один са является RCS (Revision Control ром перемещение репозитариев на-
и тот же файл одновременно ре- System). Это первая в истории сис- ходит свое применение, – это синх-
дактируется несколькими людьми тема контроля версий с открытым ронизация конфигурационных фай-
с разных терминалов. кодом, созданная еще в середине лов нескольких серверов в системах
n «А правил ли кто-нибудь...» – ког- 80-х годов. Несмотря на свой воз- с распределением нагрузки. Несмот-
да никто ничего не трогал, но все раст, она по-прежнему «широко ис- ря на то что этот способ синхрониза-
упало. Файлы правятся не только пользуется в узких кругах». ции гарантирует идентичность изме-
администраторами, как мы знаем, n Централизованные – отличитель- нений на каждом из серверов, приме-
но и менеджерами пакетов, раз- ной особенностью является спо- няется он крайне редко. Связано это
личными утилитами и так далее. собность хранить несколько фай- с тем, что чаще всего конфигурация
К счастью, проблемы такого клас- лов и каталогов в одном репози- синхронизируется теми же средства-
са встречаются не так уж часто. тарии, который может находиться ми, что и основной контент.
n «Откатите, пожалуйста, назад удаленно. Это завоевавшие сер-
изменения, которые вы дела- дца миллионов CVS (Concurrent Репозитарии
ли на прошлой неделе» – кто-то Versions System) и позднее пришед- Каждый из репозитариев, созданных
действительно помнит, как было шая ей на смену SVN (Subversion). в соответствующей системе контро-
до этого? И снова бэкап, ленты, n Децентрализованные системы – ля версий, имеет особенности в меха-
сравнение файлов, и т. д. принципиально новый подход в ре- низме инициализации и внутреннем
шении задач версионности. В пос- устройстве.
Все эти трудности связаны с тем, леднее время они все чаще начи- Репозитарий RCS создается от-
что мы хотим знать: кем, когда, что и нают использоваться в проектах дельно для каждого нового файла
как изменилось или изменяется в на- с очень внушительным количест- и представляет собой файл с одно-
стоящий момент, а также помнить ис- вом файлов и большими, зачас- именным названием и дополнитель-
торию изменений. тую территориально разделенны- ным суффиксом (*,v), находящийся
42
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
теме. К радости некоторых админист- терфейсом и хорошей документацией.
раторов, etckeeper способен работать Это серьезно облегчает переход на но-
c Git, Mercurial и Bazar. вые «рельсы» тем, кто ранее работал
В моей практике проблеме с пра- с CVS или SVN.
вами уделяется не много внимания, Финальным аккордом стал проект
поскольку я стараюсь контролиро- TortoiseHG (http://tortoisehg.sourceforge.
вать версионность исключительно net) – клиент для MS Windows, интег-
тех файлов, которые действительно рирующийся с Internet Explorer (мно-
в этом нуждаются (файлы типа shadow гие почему-то к нему быстро привы-
или group к ним не относятся). Вы мо- кают).
жете возразить, но мой аргумент – хо- Единственной преградой на пу-
рошая система бэкапа, а информация ти интеграции Mercurial для нужд ад-
о том, как файл shadow выглядел па- министраторов оставался механизм
ру лет назад, не представляет ника- блокировок, а точнее его отсутствие.
кого интереса. Ее удалось обойти «малой кровью» –
Последним нюансом будет отсутс- написав небольшой скрипт, который Рисунок 3. Репозитарий Mercurial
твие функционала блокировок у де- я назвал hglock (сообразно названи-
централизованных систем. Механизм ям оригинальным командам систе- Во-первых, система контроля вер-
не вписывается в концепцию децентра- мы). Актуальную версию можно ска- сий должна применяться только к фай-
лизации. К сожалению, даже etckeeper чать по ссылке http://primtech.ru/files/ лам, которые являются уникальными
эту проблему не решает. hglock. Возможно, стоит организовать для данной системы и имеют верси-
такой функционал в виде дополнитель- онную ценность.
Кому отдать предпочтение ного модуля. Но пока это не было сде- Как я уже упоминал ранее, нет не-
Вместе со мной в компании работают лано. Позже был добавлен механизм обходимости хранить файлы с пароля-
порядка пяти сотен программистов. автоматической разблокировки при ми, группами или сетевыми настройка-
Разработка ведется на множестве язы- сохранении изменений в репозитарии. ми. Также нет смысла сохранять фай-
ков (от PHP и JAVA до С) и для самых И после этих изменений нам больше лы, которые для большинства серве-
разнообразных платформ (от Windows ничто не препятствовало. ров идентичны. Например, настройки
до Solaris и Z/OS). При выборе системы Нельзя однозначно сказать, какую почтовой маршрутизации или прави-
контроля версий в качестве корпора- из систем использовать лучше. Глав- ла авторизации пользователей (PAM,
тивного стандарта нам хотелось най- ное, чтобы решалась основная зада- LDAP, SSH... ). Сюда же я отношу все
ти систему с открытым кодом, которая ча – «контроль за изменениями» и «ни- файлы, которые всегда прибывают
могла бы стать единой для всех. чего не терялось». А в остальном – это в том состоянии, в каком были уста-
Учитывая то количество проблем дело привычки или конкретной ситуа- новлены вместе с системой. В итоге
и нюансов, которые в моей практике ции. Могу лишь добавить, что чем про- остается только очень небольшое чис-
удалось разрешать только при помощи ще с системой работать, тем меньше ло файлов, с которыми действительно
децентрализации (например, с ее по- шансов наделать ошибок. постоянно приходится работать. Сре-
мощью удалось избежать остановки Для администраторов, которые ди них named.conf, nginx.conf, crontab
процесса разработки в региональных раньше не сталкивались с система- (в компании, где я работаю, рядовым
представительствах при длительном ми контроля версий, а также для не- пользователям запрещено самосто-
отсутствии связи с центральным офи- больших организаций, я рекомендую ятельно создавать записи в cron, это
сом), вопрос о выборе типа репозита- сначала попробовать RCS. Он самый делается администраторами по заявке
риев даже не рассматривался. простой как в плане понимания, так и строго определенной формы), на поч-
В свете «единой для всех» систе- в плане применения. товых серверах – конфигурация почто-
ма должна быть кроссплатформен- вых систем, на брандмауэрах (firewall) –
ной. И в этом плане в лидеры вышел Интеграция непосредственно настройки фильтра-
Mercurial благодаря наличию клиен- Для того чтобы описываемый метод ции и т. д.
тов под множество ОС. работы стал не обузой, а эффектив- Во-вторых, необходимо, чтобы все
Далее Mercurial выделился привыч- ным инструментом, достаточно при- администраторы в вашей команде так-
ным для пользователей Subversion ин- держиваться нескольких правил: же следовали выбранной методологии.
Практика # hg init /
Практика показывает, что нагляднее всего – несколько про-
стых примеров. По умолчанию созданный репозитарий доступен
Предполагается, что все задействованные в приме- для чтения абсолютно всем. В тех случаях, когда планиру-
ре конфигурационные файлы разрешено корректировать ется поместить в репозитарий файлы, содержащие закры-
только пользователям, обладающим соответствующими тую информацию (например, ключи ssh), рекомендую при-
привилегиями. Все приведенные ниже команды выполня- менить самый старый и проверенный способ: установить
ются с привилегиями суперпользователя (root). ограничения доступа на уровне файловой системы.
Обращаю ваше внимание на то, откуда берутся имена Закроем весь репозитарий от посторонних глаз:
пользователей, сохраняемые в репозитарии. При повыше-
нии привилегий пользователя изменяется только «эффек- # chmod 700 /.gh
# ls -ld /.hg
тивный» (effective id) идентификатор, а «реальный» (real id)
остается неизменным. Скрипт hglock использует имен- john pts/2 Nov 20 18:00 (172.30.0.215)
но «реальный» идентификатор, то есть имя пользователя
(login), использовавшееся при входе в систему. Mercurial же Если возникает необходимость скрыть только опре-
извлекает имя пользователя из переменных окружения, деленный файл, права нужно изменять не у репозитария,
а также позволяет определять его самостоятельно в фай- а у соответствующего файла в каталоге /.hg/store/data . На-
ле ~/.hgrc. Это означает, что не следует использовать ме- пример, файлу /etc/inet/hosts будет соответствовать файл
тоды повышения привилегий, изменяющие оригинальное /.hg/store/data/etc/inet/hosts.i.
окружение (например «su – »). В ином случае авторство бу- Установим скрипт работы с блокировками и внесем со-
дет приписано пользователю root. ответствующие настройки в репозитарий:
Итак, демонстрация работы администратора будет по-
казана на сервере под управлением ОС Solaris. # cp hglock /usr/bin/
# cat >>/.hg/hgrc<<EOF
Прежде всего убедимся в том, что Mercurial установлен
и функционирует. > [hooks]
> port-commit = hglock -C
> post-add = hglock -A
$ hg --version > EOF
Mercurial Distributed SCM (version 0.9.5)
. . . Если мы попробуем вывести статус репозитария, то воп-
реки нашим ожиданиям процесс займет несколько минут,
Несколько предварительных персональных настроек а в результате нашему вниманию будет продемонстриро-
пользователя: ван список абсолютно всех файлов сервера.
Следующая команда решает эту проблему. Она застав-
$ id ляет игнорировать все файлы, о которых нет записей в ре-
uid=100(john) gid=1(other) позитарии.
A etc/inet/hosts
Убедимся, что реальный идентификатор при этом ос- A usr/local/apache2/conf/httpd.conf
A var/spool/cron/crontabs/root
тался неизменным:
44
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Сейчас – в момент добавления файлов – мы можем убе- В принципе имя файла можно опустить. Но так как hglock
диться, что автоматически установилась блокировка: не проверяет, кем заблокирован файл, то есть опасность
убрать еще и чужую блокировку.
# cat /.hg/locksfile Давайте рассмотрим еще несколько часто используе-
etc/inet/hosts:john:15:47 2008.11.20 мых команд.
usr/local/apache2/conf/httpd.conf:john:15:47 2008.11.20 Кем вносились последние изменения:
var/spool/cron/crontabs/root:john:15:47 2008.11.20
# cd /etc/inet
# hg log hosts
Хорошо. Помещаем файлы в репозитарий:
changeset: 1:3d8a608232b9
# hg commit -m "Init" tag: tip
user: John Doe <john@example.com>
date: Thu Nov 20 00:46:46 2008 +0300
Посмотрим на блокировку теперь: summary: first change
Сергей Яремчук
Популярный дистрибутив Ubuntu Linux традиционно ассоциируется с простотой
в использовании и поэтому в первую очередь рекомендуется начинающим. Но среди
его многочисленных клонов имеется специальное решение nUbuntu [1], ориентированное
на специалистов.
Выбор решения ла оценка защищенности сетей и ком- стью требовала обновления. Это бы-
Пик популярности специальных дист- пьютеров. ло неудобно как разработчикам, так и
рибутивов, ориентированных на спе- Как результат, за относительно ко- пользователям.
циалистов в области безопасности, роткий срок появился целый ряд ре- Это ли было причиной, но через
пришелся приблизительно на 2003 год. шений – Whoppix (чуть позже WHAX), некоторое время интерес к специаль-
Как раз в этот период появились пер- KNOPPIX-NSM, PHLAK, Auditor Security ным дистрибутивам стал постепен-
вые LiveCD-дистрибутивы, самым яр- Linux, Hakin9 Live и другие. Положи- но угасать.
ким представителем которых стал тельной стороной таких сборок было В результате некоторые проекты
KNOPPIX. Простота сборки своего ре- то, что специалист получал в свои руки практически перестали выпускать об-
шения, работа прямо с привода ком- готовый инструмент, содержащий весь новления (Hakin9 Live) или совсем ис-
пакт-дисков без предварительной ус- необходимый софт, который быстро чезли, другие проекты объединились.
тановки на жесткий диск и автомати- приводился в «боевое» положение. Например, команды Auditor Security
ческая настройка под любое оборудо- Минусы, конечно, тоже были. Учи- Linux и WHAX на основе своих разра-
вание были оценены как обычными тывая количество программ в дист- боток создали довольно неплохой дис-
пользователями, так и группами и ор- рибутиве, уже через некоторое вре- трибутив BackTrack [2]. Появились и но-
ганизациями, в задачу которых входи- мя сама сборка практически полно- вые решения вроде Samurai [3], раз-
46
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
работка которого сегодня идет весь-
ма активно.
Но как только Linux «научился» нор-
мально загружаться и работать с USB-
флеш-устройств и появился целый
подкласс небольших сетевых компью-
теров – нетбуков, интерес у специалис-
тов к дистрибутивам, предназначен-
ным для проверки безопасности, сно-
ва начал расти.
Поиск «своего» решения нужно на-
чинать с сайта securitydistro.com. На-
значение большинства представлен-
ных там дистрибутивов совпадает,
но основа, начинка и, главное, их воз-
можности существенно отличаются.
В итоге без подбора нужного решения
здесь не обойтись.
Например, задачей BackTrack явля-
ется обеспечение пользователя инст-
рументами, позволяющими провес-
ти тестирование на проникновение Рабочий стол nUbuntu
(penetration test), и он, кроме много-
численных сетевых сканеров, анали- тами для тестирования сетей и систем. ванный вручную сетевой интерфейс
заторов протоколов, сниферов и дру- На распространенный вопрос «Зачем в дистрибутиве BackTrack 3 может за-
гого сопутствующего софта, под завяз- еще один дистрибутив?» разработчи- просто «исчезнуть» вне зависимос-
ку набит эксплойтами от SecurityFocus, ки отвечают, что им интересен в пер- ти от виртуальной машины: VirtualBox
PacketStorm, Metaspl0it Framework 2/3 вую очередь сам процесс его создания, или VMware.
и другими. Его основой является а использовать результат их работы Запуск LiveCD происходит быстро
SLAX. или нет – это выбор каждого. из-за того, что графическая подсис-
Прак тически ана логичное на- Первая стабильная версия бы- тема по умолчанию не загружается.
значение – у Samurai, построенного ла анонсирована сразу же после вы- В процессе обнаруживаются и автома-
на Debian. Только ориентирован он хода Ubuntu 6.06, с тех пор дистри- тически настраиваются все устройст-
на web pen-testing environment, то есть бутив по мере появления новых вер- ва, включая проводные и беспровод-
тестирование веб-приложений. сий Ubuntu несколько раз обновлялся. ные сетевые карты.
Дистрибутив grml [5], также постро- В настоящее время актуальной явля- По окончании в консоли выда-
енный на Debian, предназначен для ре- ется Alpha-версия 8.10. ется краткий список рекомендаций
шения более широкого круга задач – В качестве графической среды по дальнейшим действиям. В отличие
от восстановления системы и редак- в nUbuntu вместо KDE или GNOME ис- от большинства решений, все дейст-
тирования системных файлов до ана- пользован легкий Fluxbox, плюс убра- вия в nUbuntu производятся от име-
лиза структуры сети. ны все «лишние» приложения вроде ни непривилегированного пользова-
Не остались в стороне достиже- OpenOffice.org, почтовые клиенты, иг- теля nubuntu.
ния Ubuntu на десктопах. В итоге пред- ры и так далее. Это позволило умень- Для выполнения задач, требующих
ложено, как минимум, два решения шить размер дистрибутива до 430 Мб. прав администратора, используется
на его основе – Protech ONE и nUbuntu Также стоит отметить, что в отли- sudo, что является стандартом в Ubuntu.
(Network Ubuntu). Проект Protech ONE чие от остальных подобных решений Хотя при выборе некоторых меню для
после нескольких тестовых релизов интерфейс nUbuntu локализован, хо- запуска утилит (Nmap, например) сразу
представил (в сентябре 2007 года) тя и частично. Выбор языка системы открывается рутовская консоль.
лишь единственную версию, и о его производится стандартно для LiveCD Чтобы загрузить Fluxbox, достаточ-
дальнейшем развитии информации Ubuntu – в загрузочном меню. Конечно, но набрать «startx».
в настоящее время нет. отсутствие интерфейса на родном язы- Кроме инструментов безопаснос-
ке не должно останавливать пользова- ти, дистрибутив содержит некоторые
Дистрибутив nUbuntu теля, на которого рассчитаны специ- стандартные приложения:
Проект nUbuntu появился в конце де- альные дистрибутивы, но такая функ- n текстовые редакторы – VIM, Gvim
кабря 2005 года. Основной его зада- циональность лишней не будет. и GNU/Nano;
чей было создание LiveCD-версии на- Тестирование показало, что nUbuntu n сетевые приложения – XChat, irssi,
биравшего тогда популярность дистри- хорошо себя чувствует на самом раз- gFTP;
бутива Ubuntu (в то время он не имел ном оборудовании и на виртуальных n клиенты удаленного рабочего
LiveCD-варианта), оснащенного утили- машинах. Например, сконфигуриро- стола – RDesktop и VNC Viewer;
48
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
В
первой части статьи (см. №11 за 2008 г.) я описал Вышеуказанные шаги нужно произвести на каждом
процедуру установки и настройки кластерной фай- из серверов из пары Master/Slave. Обычно я устанавливаю
ловой системы Lustre. На данный момент текущая критические программы из исходных кодов вместо уже соб-
версия ФС Lustre не поддерживает технологий избыточ- ранных пакетов, потому что производители последних часто
ности информации (RAID, replication), поэтому при отклю- очень опаздывают с выпуском обновленных версий.
чении какого-либо сервера с данными они будут недоступ-
ны клиентам. Настройка DRBD
В этой статье я расскажу, как можно повысить отказо- На этом этапе необходимо настроить репликацию данных
устойчивость системы путем дублирования информации на между серверами oss1-a и oss1-b. Для этого в файл /etc/
серверах с данными. Для этого мы воспользуемся двумя drbd.conf вносим следующие конфигурационные строки:
известными проектами High-Availability Linux Project (Linux
HA) и Distributed Replicated Block Device (DRBD). # Название нашего ресурса (диска)
resource r0 {
# Синхронный протокол репликации
Топология системы protocol C;
# Временные настройки
Предполагается, что данные каждого сервера будут репли- startup { wfc-timeout 0; degr-wfc-timeout 120; }
цированы на запасной сервер средствами DRBD. Для про- # Отключать ресурс в случае сбоя диска
disk { on-io-error detach; }
зрачного переключения между серверами будет использо- # Ограничение скорости передачи данных между серверами
ваться пакет Linux HA. # Slave и Master
syncer { rate 10M; }
# Описание подсистемы на oss1-a
Установка и настройка DRBD on oss1-a1.domain.com {
# Путь к устройству хранилища DRBD
В этом разделе я опишу процесс создания программно-ап- device /dev/drbd1;
паратного комплекса из двух серверов с использованием # Путь к физическому диску, где будут храниться
# метаданные и сами данные сервиса DRBD
программы DRBD. Как результат, первый сервер будет на- disk /dev/hda7;
ходится в режиме Master, второй же будет содержать реп- # IP-адрес первого сервера
address 10.40.10.10:7791;
лицированные данные с первого сервера. # Указание, где будут храниться метаданные сервиса DRBD.
# В данном случае я использовал внутренний объем
# раздела, где хранятся данные.
Установка программы DRBD meta-disk internal;
В своей работе я использую CentOS, поэтому описание про- }
}
цедуры установки и настройки будет ориентировано на этот
дистрибутив. Получаем последнюю версию программы По аналогии создаем описание устройства DRBD
DRBD (на момент написания была доступна версия 8.2.7 с в этом же файле для второго сервера oss1-b:
сайта производителя http://www.drbd.org, раскрываем ар-
хив и устанавливаем программу: on oss1-b.domain.com
{
device /dev/drbd1;
tar -xzvf drbd-8.2.7.tgz disk /dev/sda7;
make KDIR=/usr/src/linux address 10.40.10.11:7791;
make tools meta-disk /internal;
make install }
make install-tools
где переменная KDIR указывает на каталог с исходными Копируем этот файл на сервер oss1-b.domain.com в ка-
текстами используемого ядра Linux. талог /etc.
Установка Linux HA
Запуск сервиса DRBD и инициализация хранилищ Домашняя страница проекта находится по адресу http://
Перед инициализацией хранилищ DRBD необходимо за- linux-ha.org. Загружаем архив последней версии програм-
пустить сервис drbd на обоих серверах: мы Linux HA, раскрываем, проводим конфигурацию, ком-
пилируем и устанавливаем:
/etc/init.d/drbd start
tar -xvf STABLE-2.1.4.tar
cd Heartbeat-STABLE-2-1-STABLE-2.1.4
На каждом сервере необходимо выполнить следующие ./ConfigureMe configure
шаги. Создание блока метаданных: make
make install
Подключение сервисной части DRBD к ресурсу: Небольшое отступление. Когда master-сервер перехо-
дит в состояние сбоя, то Linux HA должен смонтировать реп-
drbdadm connect r0 лицированный раздел /dev/drbd1 на Slave-сервере в режим
Master. Для этого существует скрипт drbd, который входит
Затем запускаем синхронизацию с сервера oss1-a: в поставку программы Linux HA. Его нужно скопировать
из каталога scripts в каталог ресурсов Linux HA:
drbdadm -- --overwrite-data-of-peer primary r0
cp /usr/src/drbd-8.2.7/scripts/drbddisk ↵
/usr/local/etc/ha.d/resource.d/
По умолчанию синхронизация может занять несколько
дней, если данные не поступают в хранилище. У меня это
заняло несколько дней, поэтому для ускорения я применил Настройка Linux HA
следующую команду на сервере oss1-a: Система настроек Linux HA состоит из трех файлов:
n ha.cf – общие настройки;
drbdadm adjust r0 n haresources – настройка ресурсов;
n authkeys – файл аутентификации.
Далее проверяем содержимое /proc/drbd, в котором дол-
жен быть виден прогресс синхронизации. По завершении Общие настройки
репликация сервера oss1-a на oss1-b должна быть в состо- Находятся в файле /usr/local/etc/ha.d/ha.cf. Минимальный
янии Primary/Secondary: набор состоит из следующих строк:
50
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
# Включить использование системного syslog для лог-файлов
use_logd on
Настройка ресурсов
Файл /usr/local/etc/ha.d/haresources содержит список ресур-
сов, которые должны активизироваться на slave-сервере
в случае отключения master-сервера. Описание каждого
ресурса для типичного случая содержит компоненты:
n имя master-сервера;
n отказоустойчивый адрес-IP; Топология системы
n описание общей файловой системы;
n список сервисов, которые должны быть запущены на ак- mount | grep drbd
тивном сервере (не используются на серверах OSS, так /dev/drbd1 on /mnt/ost1 type lustre (rw)
как сервисы обычно запускаются на клиентах ФС Lustre).
Соответственно на сервере MDS в лог-файлах можно
В нашем случае строка ресурсов выглядит так: увидеть следующую строку:
Connection restored to service webstor-webstorage using nid xx.xx.xx.xx@tcp.
oss1-a.domain.com 10.40.10.12/25/eth0 drbddisk::r0 ↵
Filesystem::/dev/drbd1::/mnt/ost1::lustre
где 10.40.10.12 – наш отказоустойчивый адрес IP (смотри-
те таблицу).
Настройка файла аутентификации authkeys
Этот файл authkeys расположен в /usr/local/etc/had.d/ и со- Тестирование Failover
держит описание методов, которые используются для аутен- Выключаем сервер oss1-a, ждем несколько минут и прове-
тификации сервера Slave на сервере Master и наоборот. ряем сервер oss1-b. Если все правильно настроено, то мо-
Формат записей следующий: жем обнаружить, что наш «плавающий» IP появился на этом
сервере. Также сервис DRBD находится в состоянии Master,
auth 1 и что файловая система Lustre смонтирована:
1 sha1 your_password_here
Квартет:
«САМО», «1C», wine и Etersoft
Сергей Барановский
52
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Н
а рынке туроператоров наша фирма уже больше го-
да держит «флаг первенства» в переходе на ОС Linux.
Несмотря на то что приятно быть первыми, другие
компании не решаются на столь отважный шаг. Инфор-
мация о переходе в других компаниях нашей отрасли мне
не известна. Если частичный переход на Open Office осу-
ществили десятки туристических фирм, в том числе и на-
ши партнёры, то малая популярность использования ОС
Linux состоит в том, что не все компании могут организо-
вать её грамотную поддержку. Однако когда число компью-
теров исчисляется сотнями, даже первичная оценка стои-
мости покупки различных лицензий и обновления желе-
за отрезвляет.
В процессе перевода «рабочих мест» сотрудников
под ОС Linux выяснилось, что для сотрудников нужны
не только офис, браузер и почта, но и другие нестандарт-
ные приложения, такие как бухгалтерские программы, банк-
клиенты, on-line-системы бронирования, системы учёта кад-
ров и пр. Если вначале нам казалось, что камнем преткно-
вения являлась программа «САМО-Тур» и компания «САМО- Рисунок 1. Выбор пакетов для установки с помощью winetricks
Софт» недружелюбно к нам относилась, то сейчас, в срав-
нении с «1С», можно сказать, что мы ошибались. Запустить wine-cms i386 1.1.9-2.fc8 updates-newkey 42 k
wine-core i386 1.1.9-2.fc8 updates-newkey 11 M
«САМО-Тур» под Linux удалось [1, 2], а имеющиеся ошибки wine-desktop i386 1.1.9-2.fc8 updates-newkey 26 k
wine-esd i386 1.1.9-2.fc8 updates-newkey 37 k
неспешно исправляются разработчиками, когда мы о них wine-jack i386 1.1.9-2.fc8 updates-newkey 39 k
сообщаем. С «1С» возникло больше вопросов, чем отве- wine-ldap i386 1.1.9-2.fc8 updates-newkey 91 k
wine-nas i386 1.1.9-2.fc8 updates-newkey 25 k
тов. Несколько лет мы не можем добиться помощи, а отве- wine-tools i386 1.1.9-2.fc8 updates-newkey 626 k
wine-twain i386 1.1.9-2.fc8 updates-newkey 48 k
ты их технической поддержки похожи на шутку: «Извините,
у нас нет туалетной бумаги, зато есть наждачная». Transaction Summary
================================================================================
В своей работе для бухгалтерского учёта мы исполь- Install 11 Package(s)
54
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Для этого создаём директорию, например resource_
browser в директории %System Drive%\Program Files\Far\
Plugins и помещаем туда файлы из архива frb100b5.zip [7].
Перезапускаем Far, ставим курсор на файл 1crcrus.dll
и жмём <F11>, выбираем расширение Resource Browser
(см. рис. 3) и заходим внутрь файла.
Далее можно удалить ресурс 1049\ZLIB_DATA\1189
(см. рис. 4). Это и есть стартовая заставка «1C», сжатая
Рисунок 5. Убираем галочку «Окна → Панель окон → Показать»
архиватором ZIP.
Замечание: приобретённый и используемый нами дис-
трибутив «1С:Предприятие 7.7. Бухгалтерский учёт. Типовая
конфигурация» лицензионным соглашением, где бы запре-
щалось или разрешалось модифицировать библиотеки для
собственных целей, на момент приобретения не комплекто-
вался. На сайте www.1c.ru найти информацию не удалось.
По телефону в ответ на вопрос о лицензионном соглаше-
нии подтвердили отсутствие лицензионного соглашения
для данного продукта. Выгоды из предлагаемого решения
мы не получаем, авторские права фирмы «1С» мы не нару-
шаем. Так как журнал может быть прочитан за пределами
РФ, ответственность за соблюдение местных законов ле-
жит на читателях. Вариантом другого решения может быть
использование Wine@Etersoft. Рисунок 6. «Администрирование → Параметры базы данных
SQL...»
После удаления заставки повторяем запуск в режиме
конфигуратора. Заставка не появляется, а через некото-
рое время мы видим окно входа в систему.
После ввода правильных аутентификационных данных
мы попадаем в программу «1С» в режиме конфигуратора,
где необходимо убрать галочку «Окна → Панель окон →
Показать» (см. рис. 5), так как нижняя панель некорректно
Рисунок 7. Вводим адрес SQL-сервер, имя базы данных,
работает под wine и приводит к закрытию всего приложе- имя пользователя и пароль
ния при обычном запуске.
Если у вас не используется SQL-сервер или сетевое ...
хранение данных, то на этом настройка системы закон- //192.168.0.1/base_1c on /base_1c type cifs (rw,mand)
56
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Проверить правильность можно командой:
$ wine ./1cv7s.exe
WINE@Etersoft SQL
Таким образом, через месяц мучений стало ясно, что пе-
рейти на WINE@Etersoft SQL судьба. Мы удалили бесплат-
ный wine и установили новый:
58
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
groupadd: группа wine существует Из хорошего – половина экспортов происходит неза-
groupadd: группа wineadmin существует висимо от наличия пакета MS Office сразу в файлы, ко-
2:wine ############################## [ 67%]
WINE: Registering binary handler for Windows program: [ DONE ] торые после можно либо копировать по сети, либо от-
3:wine-etersoft-sql ############# ################ [100%] крывать в любой подходящей программе. Подобным об-
Running etersafed... [ DONE ]
разом, через внешний файл работает экспорт и импорт
в банк-клиент.
Замечание: в промежутке между удалением старой Что же касательно «САМО-Тура», то тут «САМО-Софт»
версии wine и установкой новой директория ~/.wine была потрудились, написали и продают модуль, работающий на-
вручную удалена. прямую с их БД, правда, работает он только в одну сторо-
Как ни странно, но если в ранних версиях WINE@ ну, в другую обмен информацией происходит также через
Etersoft SQL были проблемы, то после нашего регулярно- внешний xml-файл.
го общения по почте с «Этерсофтом» версия 1.0.9 научи- Некоторые экспорты из «1С» всё же не работают на ком-
лась запускать и «САМО-Тур». пьютерах без офиса, так как используется СОМ-метод об-
Программы «1С» и «САМО-Тур» были установлены за- ращения к приложениям. Например, если зайти в меню
ново. Настройка «1С» не отличается от указанных выше. «Журналы → Путёвки» и щёлкнуть на любую путёвку, да-
Настройка «САМО-Тура» производилась как если бы эта лее, в окошке шаблон выбрать .dot- или .doc-файл шаблона,
программа ставилась под ОС Windows, то есть ни freetds, а после в печати выбрать пункт «Печать Word» (см. рис. 16),
ни unixODBC, ни BDE ставить не пришлось. Была про- то возникает ошибка (см. рис. 17).
писана база через настройки odbcad32.exe и параметр Радует одно – этим экспортом в нашей фирме поль-
SHAREDMEMLOCATION (см. рис. 11) как в шаге после ус- зуется только одна сотрудница. Переводу всех остальных
тановки MDAC 2.8. под Linux ничего не мешает.
После обе программы успешно заработали. «1С» в том Но даже и эту ошибку можно попробовать исправить
числе стала заходить на сервер, даже если там уже рабо- в будущем. Для этого надо воспользоваться проектом
тают другие пользователи. unioffice [12]. Эта программа позволяет транслировать за-
Удивительно, но «1С» и «САМО-Тур» работают, в пер- просы (точнее, COM-объекты), направленные к MS Office
вом случае даже не надо возиться с отключением застав- в запросы к OpenOffice.
ки, окно ввода имени пользователя и пароля отображает- Маленькая проблема в том, что сейчас (версия 0.4)
ся правильно. Поставил и работай. Не зря «Этерсофт» спе- транслируются только запросы, направленные к электрон-
циализируется на запуске Windows-приложений под Linux, ным таблицам Exсel. Поддержка некоторых, наиболее час-
наверняка «не одну собаку съели». то используемых СОМ-интерфейсов приложения Word пла-
Несмотря на то, что WINE@Etersoft SQL – коммерчес- нируется в ближайшем будущем. Может, к выходу статьи
кий продукт, от процесса его тестирования и общения уже будет реализована. По крайней мере мы уже успели
с сотрудниками фирмы только положительные впечатле- направить свои пожелания в Etersoft, который этим и зани-
ния. Может, когда-нибудь они откроют секрет, что надо мается в свободное от других проектов время.
сделать с обычным wine, чтобы работала SQL-версия «1С». Чтобы понять, что вызвало ошибку (вам это может тоже
Не очень они любят говорить про бесплатный wine, видимо, понадобиться) и знать, какие методы используются, чтобы
есть чем гордиться в их закрытой версии, хотя как вари- послать их разработчикам, в первую очередь надо запус-
ант можно и не ждать, ведь есть и некоммерческая сборка тить «1С» в режиме конфигуратора, а далее, находясь в нём,
wine [11]. Работа «1С» под ней нами ещё не тестировалась нажать клавишу <F11>, после чего запустится ещё одна ко-
из-за отсутствия времени, но в случае успеха можно будет пия программы «1С», уже рабочая, где следует повторить
сравнить исходные коды и получить ответ уже сейчас, ес- все действия, приводящие к ошибке. Далее надо щёлкнуть
ли «1С» заработает. на красные буковки «err» слева от ошибки, в конфигурато-
Вообще это приятно, когда коммерческая фирма берёт- ре откроется новое окно, где вы попадёте на участок кода,
ся развивать некоммерческие проекты, подобно тому вызвавший ошибку:
как существуют Red Hat и Fedora, а то, что это российская
фирма и есть форум на русском языке, вдвойне приятно. Процедура ПоКнопкеВорд()
Знак = "0";
Если СокрЛП(ИмяФайла)<>"" Тогда
Ошибка экспорта в Word
Состояние("Выполняется подключение к шаблону ↵
MS Word...");
Но несмотря на оптимизм последнего удачного запуска Word=СоздатьОбъект("Word.Application");
программы «1С» под ОС Linux, есть и недостатки в её ра- Word.Documents.Add(ИмяФайла);
Word.Selection.GoTo(-1,,, "ДатаСозданияПутёвки");
боте. Они не связаны вообще с операционной системой, Word.Selection.Delete(2,1);
а скрываются в программе, «1С:Предприятие. Версия 7.7» .....
Word.Selection.GoTo(-1,,, "Сумма2");
писалась во времена господства на рынке пиратских вер- Word.Selection.Delete(2,1);
сий ОС Windows и MS Office, поэтому
она с ними только и работает. Фирма
«1С» никак не нацелена на адаптиро-
вание своего продукта к OpenOffice
или альтернативным почтовым кли-
ентам. Рисунок 14. Ошибка «1С:Предприятие» Рисунок 15. Ошибка конфигуратора
60
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Максим Лобов
В конце прошлого года директору нашей фирмы пришло официальное письмо с исходящим
номером и за подписью заместителя начальника инспекции Федеральной налоговой службы,
где мы состоим на учёте. В тексте предлагалось прийти на встречу в назначенное время
«по вопросу сдачи отчётности через Интернет».
С
удя по тексту письма, в ИФНС получить аккаунт, а после через веб- терфейс потерпит фиаско. Никто не хо-
России №17 по г. Москве реши- форму сдавать отчётность, то это бы- чет оказаться крайним в ситуации, ког-
ли сделать благое дело и пе- ло бы воспринято всеми на ура и пере- да на столичных рынках в подполье по-
ревести фирмы на сдачу отчётнос- ход был бы гладким и быстрым. явятся DVD-диски с налоговой отчёт-
ти в электронном виде. По задумке, Но так сделано не было – то ли нет ностью различных фирм.
это должно сулить меньше очередей, хороших специалистов по веб-техно- Поэтому были выбраны фирмы,
оптимизацию процесса сдачи и про- логиям в ФНС, то ли думают по друго- которые получили разрешения и бы-
верки, в целом подход прогрессивный, му. Что же было предложено? ли сертифицированы для передачи
учитывая, что столица наиболее ком- Понимая, что передавать госу- конфиденциальных данных по сети
пьютеризирована и практически вез- дарственные секреты между отчиты- как с использованием VPN-решений,
де есть доступ в Интернет. Однако гло- вающейся фирмой и налоговой инс- так и без. То есть, фактически, обра-
бальные планы по строительству свет- пекцией надо в зашифрованном виде, зовалось несколько фирм, работникам
лого будущего были испорчены конеч- а стандартный протокол https не под- которых надо также выплачивать зар-
ным решением. держивает алгоритм шифрования плату, которые законно занимаются
ГОСТ‑28147‑89, то есть отечествен- сбором налоговых сведений от фирм
Гладко было на бумаге.... ную стойкую криптографию, сертифи- по защищённым каналам, подписыва-
Если бы фирмам предложили зайти цировать такое решение никто не бу- нием сданных отчётов или удостовере-
на сайт (например mosnalog.ru) и за- дет, а значит, быстрый и удобный ме- нием легитимности цифровой подписи
полнить там регистрационную анкету, ханизм сдачи отчётности через веб-ин- фирмы и передачей их в ФНС. Бесплат-
62
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
1. Сд ач а н а л о го во й от ч ёт н о с т и ч е -
Что мешает использованию используются однопроводные решения рез фирму «Контур-Экстерн» – http://
криптографических средств в виде «таблеток» Touch Memory (iButton), kontur-agent.ru, http://real-soft.ru/cgi-bin/
под ОС Linux? то под ОС Linux в ядре реализована под- h.pl?kontur.
Если смотреть глобально на возможные держка протокола 1-Wire. Если это клю- 2. Сдача налоговой отчётности через
проблемы при работе с криптографически- чи на USB, то имеется PC/SC. Про диске- фирму «Тензор» – http://ereport.sbis.ru/
ми средствами в ОС Linux, то всё упирается ты вообще излишне говорить. То есть ре- podkl/podkluchenie.
в хранение ключевой информации. Обыч- ально проблем нет, было бы желание раз- 3. Сд ача на логовой от чётно с ти че -
но это какое-то внешнее устройство. Если работчиков. рез фирму «Гарант-Телеком» – http://
telecom.garant-corp.ru.
были. Второй, в независимости от гео- галтерской отчетности в электронном 4. Сдача налоговой отчётности через фир-
графической, принадлежности обра- виде. Версия 4.00»[13]. му «Такском» – http://www.taxcom.ru.
щающегося переадресовывает нас 5. В п о м о щ ь н а л о го п л ател ьщ и к у –
на www.r77.nalog.ru. Возможно, была Вывод http://www.robotech.ru/articles/detail.
задумка обращающихся перенаправ- Прочитав эти документы вместе с кол- php?id=48.
лять к доменам своих регионов, но эк- легами, мы поняли, что работа по стан- 6. http://www.cryptopro.ru/cryptopro/forum2/
сперименты с использованием разных дартизации сдачи налоговой отчётнос- default.aspx?g=posts&t=87.
анонимизирующих прокси-серверов ти ведётся, но принимаемые докумен- 7. Пакет свободного программного обес-
дали один и тот же результат. ты и решения по ним далеки от конеч- печения для образовательных учреж-
Попав на сайт, первым делом мы ных потребителей. Требования к фор- дений России – http://freecode.pspo.
ввели слово Linux в поиске, а в ответ мату передачи данных должны быть perm.ru/glossary/index.html, http://linux.
получили ошибку (см. рисунок). открыты и доступны, но, к сожале- armd.ru/ru/news/project_news/index.
Это ошибка никак не связана с опе- нию, в нашей фирме нет «Кулибиных» php?id110=101459.
рационной системой Linux, просто за- способных перевести их в работаю- 8. В сентябре 2008 году «Армада» объ-
были мелочь – права доступа на скрип- щую программу под Linux, как и лиш- явила о завершении пилотного проекта
те поиска исправить, что накладывает них средств для покупки готовых про- по созданию и поставке свободного про-
общий отпечаток на всю ФНС, «за де- грамм под ОС Windows. граммного обеспечения на базе Linux
ржаву обидно», хотя и бальзам на душу, По закону нас не могут обязать в школы... – http://www.cnews.ru/news/
что сервер работает под управлением покупать что-то у сторонней фирмы. line/index.shtml?2008/11/06/326563.
FreeBSD. Что интересно, за те два ме- Все предлагаемые решения должны 9. Семинар «Свободное программное
сяца, что я писал статью, ошибка так быть бесплатны и удобны в использо- о бе с п еч е н и е в го суд ар с т ве н н о м
и не исчезла. Поискав на сайте «вруч- вании. Поэтому дальше мы так и бу- и некоммерческом секторе» – http://
ную», мы нашли страницу «Система дем сдавать отчётность по старинке, linux.armd.ru/ru/news/gosspo/index.
представления налоговой и бухгалтер- пока не появятся новые эффективные php?id110=101480.
ской отчетности в электронном виде по и удобные решения данной проблемы. 10. Российское Агентство развития ин-
телекоммуникационным каналам свя- Буду очень рад, если на форуме формационного общества – http://
зи» [12] и узнали, что существует «Фор- журнала http://samag.ru/forum возник- www.rario.ru.
мат представления налоговой и бух- нет обсуждение данного вопроса. 11. Д и с т р и бу т и в A LT L i n u x D e s k to p
Professional получил сертификат
ФСТЭК – http://cnews.ru/news/top/index.
shtml?2008/08/01/310364.
12. Система представления налоговой
и бухгалтерской отчетности в элект-
ронном виде по телекоммуникацион-
ным каналам связи – http://www.r77.
nalog.ru/index.php?topic=sb77.
13. Ф о р м а т п р е д с т а в л е н и я н а л о г о -
в о й и бу х г а л те р с ко й от ч е т н о с т и
в электронном виде. Версия 4.00 –
ht tp: // w w w.nalo g.ru /do c ument.
php?id=25597&topic=nal_otch_400.
14. Сертифицированные ФСБ РФ мно-
гоплатформенные криптобиблиоте-
ки – http://www.bifit.com/ru/technologies/
cryptography/index.html.
15. Сп и с о к бан к- к л и е н то в, раб отаю -
щих под Linux – http://www.etersoft.ru/
news/82.
Ошибка поиска на сайте ФНС
Альберт Балаков
Фирмой «1С» разработан ряд универсальных отчетов и обработок, которые представляют
собой мощный инструмент для манипулирования данными в среде «1С:Предприятие 8».
Они названы универсальными, потому что работают с любой конфигурацией и позволяют
решать широкий круг задач.
Э
ти универсальные инструменты можно найти на дис- n Непосредственное удаление документов и элементов
ках информационно-технологического сопровожде- справочников из базы данных (минуя пометку удаления);
ния, поставляемых фирмой «1С» в разделе «Работа- n Провести или отменить проведение документов.
ем с программами → Методическая поддержка 1С:Пред-
приятия 8 → Универсальные отчеты и обработки». Часть Рассмотрим функционирование обработки на примере
из них встроена в типовые конфигурации. справочника «Контрагенты». Выберем в шапке объект поис-
Рассмотрим некоторые из существующих в настоя-
щее время универсальных отчетов и обработок, обсудим
их функциональное назначение, рассмотрим примеры ис-
пользования.
64
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование «1С»
ка – «Контрагенты» (см. рис. 1). На за- мер колонки с данными в поле «№ ко-
кладке «Отбор по значениям реквизи- лонки».
тов» зададим условия отбора, исполь- На рис. 3 у реквизита «ИНН» уста-
зуя в качестве фильтра как любые рек- новлен флажок в колонке «Поле поис-
визиты самого справочника, так и поля ка». Тем самым мы указываем обра-
реквизитов и нажимаем кнопку «Най- ботке предварительно выполнить по-
ти объекты». иск контрагента с таким ИНН и, если
На закладке «Найденные объек- нашли, перезаполнить существующий Рисунок 2. Обработка «Загрузка данных
из табличного документа», закладка
ты» будут представлены отобранные элемент новыми данными. «Табличный документ»
объекты, для которых можно как вы- В колонке «Режим загрузки» мы мо-
брать перечисленные выше предопре- жем выбрать один из трех режимов: «Ус- шем примере (см. рис. 3) основной
деленные действия, так и выполнить танавливать», «Искать», «Вычислять». менеджер контрагента должен выби-
произвольный алгоритм на встроен- Режим «Устанавливать». В этом ре- раться из справочника «Пользовате-
ном языке. Текст программы вносит- жиме в реквизит заносится фиксиро- ли». При этом мы видим, что данные
ся непосредственно в обработке и мо- ванное значение из колонки «Значе- для поиска извлекаются из четвертой
жет быть сохранен для дальнейшего ние по умолчанию». В нашем примере, колонки исходной таблицы и в обра-
использования. представленном на рис. 3, в поле «Ком- ботке указано, что искать в справоч-
На рис. 1 представлена наша об- ментарий» всех контрагентов будет за- нике «Пользователи» следует по по-
работка «Пример», осуществляющая писана строка «Загрузка из файла». лю «Наименование».
копирование ИНН контрагента в поле Режим «Вычислять». Этот режим Важно заметить, что в типовых ре-
«Комментарий». После нажатия кноп- обеспечивает широкие возможности шениях фирмы «1С» на платформе
ки «Выполнить» она будет последова- по настройке обработки под конкрет- «1С:Предприятие 8» выделены специ-
тельно выполнена для каждого отоб- ные нужды: в поле «Выражение» мож- альные документы для ввода началь-
ранного элемента справочника. Обра- но записать произвольный алгоритм ных остатков. Обработка «Загрузка
тите внимание, что в тексте програм- на встроенном языке, «вернув» резуль- данных из табличного документа» мо-
мы обращение к текущему обрабаты- тат расчетов через переменную «Ре- жет использоваться не только для за-
ваемому элементу осуществляется че- зультат». Простой пример использо- грузки справочников, но и для запол-
рез переменную «Объект». вания режима представлен на рис. 3: нения таких документов на основе
в поле «Полное наименование» зано- внешних источников. Это делает ее
Загрузка данных сится наименование из исходной таб- высокоэффективным инструментом
из табличного документа лицы, перед которым добавляется при переносе данных, способным сэ-
Обработка позволяет загрузить дан- строка «Контрагент:». кономить IT-специалистам массу уси-
ные в справочники, регистры сведений, Режим «Искать». Если режим ус- лий и времени.
табличные части документов и спра- тановлен для реквизита примитивно-
вочников из dbf-, csv- и xls-файлов. го типа (строка, число и т. п.), то в со- Универсальный обмен
Рассмотрим функционирование ответствующее поле объекта пере- данными в формате XML
обработки на следующем примере: носятся данные из исходной таблицы Обработка предназначена для загруз-
из старой учетной системы данные (с приведением типов). Для реквизи- ки из файла и выгрузки в файл дан-
о контрагентах выгрузили в таблицу та ссылочного типа запускается поиск ных из любой конфигурации, реали-
MS Excel. Требуется загрузить эти дан- элемента, используя данные исход- зованной на платформе «1С:Пред-
ные в «1С:Управление торговлей 8». ной таблицы в качестве ключа. В на- приятие 8».
Запустим обработку, выберем ре-
жим «Загрузка в справочник», вид
справочника – «Контрагенты». С помо-
щью кнопки «Открыть файл...» импор-
тируем данные из таблицы MS Excel
на закладку «Табличный документ»
(см. рис. 2). Далее по тексту данные
этой закладки будем называть исход-
ной таблицей.
На закладке «Настройка» сделаем
поле «№ колонки» доступным – вклю-
чим режим ручной нумерации колонок
(«Нумерация колонок → Ручная нуме-
рация колонок»).
Для каждого реквизита справоч-
ника укажем, из какой колонки исход-
ной таблицы следует загружать дан-
ные. Для этого введем порядковый но- Рисунок 3. Обработка «Загрузка данных из табличного документа», закладка «Настройка»
66
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование «1С»
Настройка технологического журнала
Обработка предназначена для редактирования конфигура-
ционного файла технологического журнала. Она позволя-
ет настроить перечень событий и свойств, которые долж- Рисунок 5. Справочник «Контрагенты» до запуска обработки
ны отражаться в технологическом журнале, и условия их «Изменение конфиденциальной информации»
записи в него.
Консоль заданий
Обработка предназначена для визуального контроля со-
стояния и управления работой регламентных и фоновых
заданий.
Поиск данных
В технологическую платформу «1С:Предприятия 8» встроен
Рисунок 6. Обработки «Изменение конфиденциальной
механизм полнотекстового поиска, позволяющий осущест- информации», закладка «Список объектов»
влять поиск в базе данных с указанием поисковых опера-
торов (и, или, не, рядом и другие).
Обработка иллюстрирует применение этой полезной
возможности (см. рис. 4). Перед использованием обработ-
ки следует разрешить полнотекстовый поиск и создать или
обновить индекс. Для этого выберите пункт «Операции → Рисунок 7. Обработки «Изменение конфиденциальной
Управление полнотекстовым поиском». информации», закладка «Общие настройки изменения данных»
Исследование уязвимостей
с помощью Metasploit Framework
Павел Троицкий
Учиться никогда не поздно, а учить других – приятное занятие... Из этой статьи вы сможете
узнать о том, как просто и наглядно можно продемонстрировать работу большинства
уязвимостей с помощью Metasploit Framework.
68
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
из личного опыта
В
сё что ни случается в жизни –
к лучшему... В одно субботнее
утро мне пришлось отважно по-
работать. Согласитесь, не самое при-
ятное занятие, особенно в свой выход-
ной день. Но на ситуацию можно пос-
мотреть и с другой стороны.
Через несколько часов утренней
работы, когда я освободился и пре-
бывал в состоянии сна на ходу, меня
уже не тянуло домой. Я плыл по ко-
ридору, где стояла убаюкивающая ти-
шина по сравнению с шумными буд-
нями. Не помню как, наверное, сра-
ботало любопытство, услышав изда-
лека характерные непрекращающи-
еся звуки быстрого нажатия клавиш
на клавиатуре, я на автопилоте изме-
нил курс и пришвартовался в сосед-
нем отделе.
Люблю наблюдать за увлечённо ра-
ботающими людьми. Оказалось, мой
тёзка и коллега сидит за двумя свои-
ми мониторами и что-то решает. Я мяг-
ко приземлился в одно из пустующих
кресел, включил чайник и стал ждать.
Пашок вернулся к жизни и за-
метил меня лишь только когда чай-
ник закипел и громко щёлкнул сво-
им термовыключателем на всю ком-
нату. Видимо, сработало то, что чай- Рисунок 1. Раздел Framework и ссылка для скачивания
ник он не ставил.
Увидев меня, он быстро заварил
себе кофе, сел обратно на своё место
и явно обрадовался тому, что сможет
излить мне свою душу во время чае-
пития и найти понимание. Так и ока-
залось. Он решал одну интересную
задачу, которую ему поставил шеф,
с микроконтроллерами, при этом ду-
мая и о другом задании, на которое
времени не хватало.
Второе задание было более инте-
ресным, чем первое, я постараюсь опи-
сать его вам, а далее предложить при-
думанное нами решение.
Закрытый код –
враг народа?
Не секрет, что технический отдел
с его руководством косо посматрива-
ют на тех, кто использует программы
с закрытым кодом, к тому же содержа-
щие много уязвимостей. Когда руко- Рисунок 2. Запуск программы Metasploit Framework
водство компании понимает проблему,
это хорошо. Техническому отделу дает- Но бывают и другие случаи, когда Например, не вс е оценивают
ся зелёный свет, и вся организация пе- руководство, опираясь на мнение дру- преимущества новых версий Linux,
реходит на более правильные и безо- зей и знакомых, делает вид, что разби- OpenOf fice или браузера Mozilla
пасные для фирмы решения. рается, а на самом деле это не так. Firefox (по сравнению с их закрытыми
70
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
из личного опыта
жив открытых портов и уязвимых сер- лало программу более привлекатель-
висов, ошибочно думают, что их сис- ной для менее опытных пользователей
темы в полном порядке. (особенно наличие версии программы
Мы попытаемся доказать эту ошиб- под Windows). Хорошо это или плохо,
ку на примере браузера IE с помощью сказать сложно. Мы выберем версию
программы Metasploit Framework. под Linux и GUI-интерфейс.
В качестве операционной системы
План действий. взята недавно вышедшая Fedora 10.
Немного теории Конечно, она не без проблем. Ско-
Получая различные рассылки по воп- рее всего, через полгода – год мелкие
росам безопасности или посещая сай- проблемы будут решены, и она ста-
ты по подобной тематике, периодичес- нет рабочей платформой для многих
ки встречаешь информацию о раз- администраторов, а пока она очень
личных уязвимостях. Такая-то уяз- подходит для наших эксперимен-
вимость позволяет передать клиен- тов. Если взять более ранние версии
ту и выполнить на его стороне какой- (Fedora 8, 9), то принципиальных раз-
либо код, такая-то просто завершает личий в установке быть не должно.
приложение. Для работы графического интер-
В теории получается следующее: фейса необходима установка языка
вы заходите на сайт XXX, а у вас вмес- Ruby и библиотек:
то этого открывается окно терминала, n ruby-1.8.6.287-2.fc10.i386.rpm;
где запускается команда «format с:». n ruby-libs-1.8.6.287-2.fc10.i386.rpm;
Пример утрирован, но, если вам n ruby-gtk2-0.18.0-2.fc10.i386.rpm;
в это сложно поверить, к концу статьи n ruby-libglade2-0.18.0-2.fc10.i386.
вы сможете провести аналогичный эк- rpm;
сперимент у себя. n ruby-atk-0.18.0-2.fc10.i386.rpm;
n ruby-cairo-1.8.0-1.fc10.i386.rpm;
The Metasploit Project n ruby-gdkpixbuf2-0.18.0-2.fc10.i386. Рисунок 5. Версии ПО уязвимой машины:
Это проект [2], созданный фирмой rpm; а) версия ОС; б) версия браузера
Metasploit LLC, содержащий полез- n ruby-glib2-0.18.0-2.fc10.i386.rpm;
ную информацию для людей, зани- n ruby-gnome2- 0.18.0 -2.fc10.i386. Сделать это можно либо вручную
мающихся пополнением баз данных rpm; через команды:
для СОА (систем обнаружения атак), n ruby-gnomecanvas2-0.18.0-2.fc10.
а также исследованием уязвимостей i386.rpm; rpm -ihv *.rpm
и того, как они работают. n ruby-libart2-0.18.0-2.fc10.i386.rpm;
Цель ресурса – собрать различную n ruby-pango-0.18.0-2.fc10.i386.rpm. либо через:
информацию об известных эксплоитах
и уязвимостях вместе с реализующи-
ми их кодами, чтобы эта информация
была доступна администраторам бе-
зопасности и разработчикам.
На сайте содержится несколько
разделов, содержащих полезную ин-
формацию.
Нам понадобится раздел Framework
(см. рис. 1), посвящённый платформе,
на которой можно реализовать наш
план.
Ищем Download внизу и скачиваем
framework-3.2.tar.gz.
Установка
Metasploit Framework
Ранее программа была доступна толь-
ко через CLI (интерфейс командной
строки), в связи с чем была известна
только в узких кругах.
Недавно появилась поддержка GUI
(графического интерфейса), что сде- Рисунок 6. Настройка эксплоита под уязвимость MS06-067
72
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
из личного опыта
или: –dport 8081 -j ACCEPT
# iptables -I OUTPUT-o eth0 -p tcp –dport 1024:65535 ↵
–sport 8081 -j ACCEPT
# /etc/rc.d/init.d/httpd stop
Логи:
иначе непонятно, какая из двух программ должна прослу- 12:28:08 - Initialized the Metasploit Framework GUI.
шивать порт на входящие соединения. С этой целью в при- 12:45:38 - ms06_067_keyframe [*] Launching exploit windows/browser/ms06_067_keyframe...
12:45:39 - ms06_067_keyframe [*] Using URL: http://0.0.0.0:8081/
мере взят порт 8081, который заведомо будет свободен. 12:45:39 - ms06_067_keyframe [*] Local IP: http://127.0.0.1:8081/
12:45:39 - ms06_067_keyframe [*] Server started.
После подтверждаем настройки (см. рис. 9) и в спис- 12:46:04 - ms06_067_keyframe [*] Sending Internet Explorer Daxctle.OCX KeyFrame Method
Heap Buffer Overflow Vulnerability to 192.168.0.3:1603...
ке висящих заданий (jobs) у нас появляется новая зада- 12:46:28 - [*] Stopping exploit: windows/browser/ms06_067_keyframe
12:46:28 - ms06_067_keyframe [*] Server stopped.
ча (см. рис. 10).
Далее мы можем посмотреть в логи – вкладка Output Окно машины жертвы (см. рис. 11).
и попытаться обратиться с машины жертвы на наш сервер.
Предварительно следует не забыть прописать разрешаю- Заключение
щие правила для пакетного фильтра, например: Конечно, данный пример тривиален, и для того чтобы пора-
зить окружающих или вашего шефа, лучше его модифици-
# iptables -I INPUT -i eth0 -p tcp –sport 1024:65535 ↵ ровать, учитывая специфику. Мы так устроены, что какое-
либо действие (изменения) привле-
кают нас больше, поэтому для людей,
не очень понимающих, как осущест-
вляется переполнение буфера, лучше
вместо калькулятора запустить архи-
ватор с ключами, чтобы в окошке бы-
ла анимация, например «бежало» чис-
ло процентов сжатых файлов из папки
«Мои документы\конфиденциально».
Тогда и сказать, что этот сайт нацелен
на сбор информации с компьютера ва-
шего шефа, будет проще и ваши аргу-
менты будут весомее. Раз сайт запус-
тил архиватор, а не какой-нибудь каль-
кулятор, то проблема намного серьёз-
нее. Хотя надеюсь, что большинство
читателей, читая эти строчки, улыб-
нутся лишний раз.
Также эту статью и пример можно
Рисунок 10. Запущена новая задача использовать в образовательных це-
лях. Чем не пособие для преподава-
телей на курсах по безопасности или
в вузах по проведению демонстраций
или лабораторных работ? Выполнять
такую лабораторную работу студентам
будет куда интереснее, чем обсчиты-
вать не всегда понятные результаты.
Если вы задумались, а не по-
ра ли вам обновить/сменить систе-
му или бразуер, то значит, вы на вер-
ном пути!
Александр Слесарев
Эпоха WEB 2.0 диктует разработчикам новые правила. Что же скрывается
за функциональностью современных веб-приложений? Какие инструменты должен
использовать разработчик для решения нестандартных задач при разработке клиентских
приложений эпохи WEB 2.0? Ответ на эти вопросы есть – использование фреймворка,
рассчитанного на решение этих задач. И такой фреймворк, который содержит богатейший
набор методов для разработки современных веб-приложений, существует – JQuery.
В
последние годы возникла тен- ционных источниках мелькает термин объединяемые звучным термином
денция повышения требований WEB 2.0, определяющий приложения WEB 2.0. Естественно, что для увели-
к функциональности веб-прило- новой формации. Да, именно прило- чения функциональности приходится
жений, причем не столько к серверной жения, потому что большинство сов- использовать клиентские языки про-
части, а именно к клиентской. Появи- ременных веб-ресурсов трудно на- граммирования, так как базовые тех-
лись элементы управления, которые до звать сайтами, об этом можно много нологии веб-разработки HTML и CSS
этого были доступны только приклад- дискутировать, но факт остается фак- являются статичными. Самым распро-
ным программам: табы, деревья, слай- том – многие из современных «сайтов» страненным в данный момент языком
деры, прогрессбары и многое другое. по‑другому назвать нельзя. программирования на клиентской час-
Появилось очень много сайтов, кото- На фоне всего этого веб-разработ- ти является JavaScript. Появилось мно-
рые по функциональности вполне мо- чикам приходится прибегать к различ- жество JS-библиотек, позволяющих
гут соперничать с прикладными про- ным нестандартным приемам, искать реализовать красивые графические
граммами. Еще более усилило эту тен- новые пути решения задач. Приходит- эффекты, анимацию, общение с серве-
денцию появление технологии AJAX. ся брать на вооружение все, что поз- ром без перезагрузки страницы, в об-
Очень часто в различных информа- воляет создавать новые приложения, щем, инструментарий для облегчения
74
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб-программирование
жизни веб-разработчикам. Многие из них отличает либо (лицензии на свободное ПО). Его разработал польский про-
большая сложность, либо ограниченность функциональ- граммист Михал Войцеховски (Michal Wojciechowski) [4].
ности. Наибольшую популярность у разработчиков завое- Для этого потребуется скачать сам плагин [5], разархиви-
вали лишь несколько библиотек, одной из которых являет- ровать и подключить его к нашей странице в контейнер
ся фреймворк JQuery. <head>, как было описано выше. Далее создаем в нашей
Не знаю, можно ли говорить о том, что JQuery самая странице код:
лучшая библиотека, так как конкурирующие продукты (на-
пример, Prototype, Mootools и ExtJS) тоже имеют ряд удоб- <html>
<head>
ных моментов, но к явным плюсам JQuery можно отнести <meta http-equiv="Content-Type" content="text/html; ↵
следующие: charset=windows-1251" />
<title>Jquery</title>
n небольшой объем (15 Кб в сжатом виде); <script src="js/jquery-1.2.6.js"></script>
n совместимость с основными браузерами. <script src="js/jquery.imgareaselect-0.6.1.js"></script>
<script language="JavaScript" type="text/javascript">
var $x1, $y1, $x2, $y2, $w, $h;
И еще одно несомненное преимущество – это то,
function selectChange(img, selection)
что библиотека может претендовать на то, чтобы стать стан- {
дартом в веб-разработке. Ведь не спроста такой софтвер- $x1.text(selection.x1);
$y1.text(selection.y1);
ный монстр как Microsoft собирается включить ее в состав $x2.text(selection.x2);
своего набора инструментов Visual Studio. $y2.text(selection.y2);
$w.text(selection.width);
Следует обратить внимание на еще один немаловажный $h.text(selection.height);
момент. Дело в том, что одним из ключевых понятий про- }
граммирования является пространство имен (namespacing). $(document).ready(function(){
JavaScript предоставляет разработчику одно глобальное $x1 = $('#x1');
$y1 = $('#y1');
пространство имен – объект window. Зачастую при напи- $x2 = $('#x2');
сании кода программисту приходится его «замусоривать», $y2 = $('#y2');
$w = $('#w');
добавляя без надобности глобальные переменные. JQuery $h = $('#h');
решает эту проблему, добавляя в это пространство лишь });
один объект – функцию jQuery. Все остальное является ли- $(window).load(function(){
бо свойствами, либо методами этого объекта. $('img#flower').imgAreaSelect({ selectionOpacity: 0, ↵
onSelectChange: selectChange });
});
Первое знакомство </script>
</head>
Библиотека JQuery была впервые опубликована на ком- <body>
пьютерной конференции «BarCamp» в Нью-Йорке Джоном <div style="float: left;">
<img id="flower" src="flower.jpg" />
Ресигом (John Resig) в 2006 году. Спустя некоторое время </div>
она уже завоевала популярность у веб-разработчиков. Дан- <div style="float: left; margin-left: 10px;">
<p style="background: #eee; border: solid 1px #ddd; ↵
ный фреймворк базируется на взаимодействии JavaScript margin: 0; padding: 10px;">
и DOM HTML-документа. К основным возможностям мож- <b>Координаты выделения:</b><br />
но отнести следующие: <b>X<sub>1</sub>:</b> <span id="x1"></span><br />
n переход по дереву DOM, включая поддержку XPath <b>Y<sub>1</sub>:</b> <span id="y1"></span><br />
<b>X<sub>2</sub>:</b> <span id="x2"></span><br />
как плагина;
n обработка событий; <b>Y<sub>2</sub>:</b> <span id="y2"></span><br />
<br />
n визуальные эффекты; <b>Размеры выделения:</b><br />
n AJAX-дополнения. <b>Width:</b> <span id="w"></span><br />
<b>Height:</b> <span id="h"></span>
</p>
В качестве базиса в нее заложен выбор CSS-селекто- </div>
</div>
ров, в том числе в стиле XPath, и не менее изящное реше- </body>
ние, последовательный вызов методов в виде цепочек. </html>
Для начала нам понадобятся дистрибутив фреймворка,
который можно скачать на официальном сайте разработ-
чика [1], и тестовая веб-страница. Для подключения биб-
лиотеки к нашей веб-странице нужно всего лишь добавить
ссылку на сценарий в контейнере <head>:
<head>
<script type="text/javascript" ↵
src="путь к файлу/jquery.js"></script>
</head>
После вызова этой функции все обращения к $ будут Все четные строки в таблице с атрибутом class="orders":
адресованы библиотеке Prototype. Другой способ – созда-
ние анонимной функции: $('table.orders tr:odd');
76
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб-программирование
Изменяем элементы Как было сказано выше, объект, возвращаемый функ-
Объекты, которые возвращает функция jQuery, имеют не- цией $, обладает свойствами массива, поэтому к любому
которые интересные особенности. элементу можно обратиться по индексу:
С одной стороны, это набор элементов DOM, который об-
ладает свойствами массива, имеет свойство lenght, к каж- $('p')[0].className = "myclass";
дому элементу можно получить доступ по индексу.
С другой стороны, это объект JQuery, который имеет В том случае, если вам необходимо пройтись по всем
большой набор методов, с помощью которых можно изме- элементам коллекции и выполнить над ними какие-то дейст-
нять данные элементы. вия, можно использовать метод each():
Нет смысла описывать все доступные методы, это мож-
но посмотреть в технической документации [3], приведу $('p').each(
function(){
лишь несколько примеров. //Действия над элементом
Выставляет ширину блока div с атрибутом id="block" }
);
в 300 пикселей:
В качестве параметра each() принимает функцию, ко-
$('div#block').width(300); торая работает в контексте найденного элемента, поэтому
в ней можно использовать переменную this, указывающую
Изменяет цвет элементов p с атрибутом class="title": на текущий элемент.
78
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб-программирование
плагин, реализующий свои методы, эффекты и даже се- jQuery.fn.myplugin = function(options)
{
лекторы. Достаточно следовать некоторым простым пра- // Начальные параметры
вилам. Чтобы было более понятно, давайте рассмотрим var settings = {default: "Мой плагин!", value: ""};
это на простом примере. // Замена параметров
Для начала придумаем назание нового плагина, на- settings = jQuery.extend(settings, options);
пример, myplugin. Далее создадим JavaScript файл // Вывод новых значений
jquery.myplugin.js. Для добавления в плагин нового мето- if(settings.value == "")
alert("Значение по умолчанию: " + ↵
да, который будет доступен сразу из функции $, достаточ- settings.default);
но добавить его в объект fn. else
alert("Полученное значение: " + settings.value);
Запишем код в созданный файл: return this;
};
jQuery.fn.myplugin = function()
{
alert("Мой плагин!"); Заменив в нашей тестовой странице строку, чтобы вы-
return this; звать плагин с новыми параметрами:
};
80
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
bugtraq
WinBinder PHP.
Создаём GUI-интерфейс за 2 клика
Александр Майоров
82
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
web-программирование
Что это?
WinBinder – это библиотека для создания приложений с гра-
фическим интерфейсом на языке программирования PHP.
Наверное, не стоит говорить о том, какое большое распро-
странение получил этот язык в настоящее время. PHP яв-
ляется очень популярным языком сценариев, который ис-
пользуется главным образом для веб-разработок, но так-
же набирает популярность как язык скриптов общего на-
значения. Надёжно укрепив свои позиции на серверах, те-
перь переходит в другие секторы, и десктопы не исключе-
ние. Об этом свидетельствует появление таких библиотек,
как PHP-GTK, PHP-Qt и собственно WinBinder, о котором
мы собрались поговорить.
Препарируем WinBinder
Давайте теперь детально рассмотрим, что из себя пред-
Рисунок 1. Схема взаимодействия компонентов в приложении
ставляет фреймворк WinBinder. Это расширение для PHP на WinBinder
с открытым исходным кодом. Оно позволяет PHP‑програм-
мистам быстро и легко разрабатывать Windows-приложе- единый интерфейс для управления всеми объектами. Эта
ния. Среди основных особенностей WinBinder можно упо- функция, кстати, применима ко всем без исключения ком-
мянуть непосредственное взаимодействие с программным понентам Windows, начиная от простых лэйблов и полей
интерфейсом операционной системы Microsoft Windows, не- ввода и заканчивая такими сложными компонентами, как
большой размер конечных файлов приложений (при компи- компоненты для форматированного вывода текста, пунк-
ляции скриптов с помощью утилиты bamcompile), обширную тов меню и прочего, устраняя тем самым необходимость
базу всевозможных PHP-функций, возможность как объек- использовать функции для каждого класса (к примеру, это
тноориентированного, так и процедурного программирова- были бы функции wbSelect, wbCheck и т. д.).
ния, а также удобство использования. Собственно второй слой, который мы уже упомина-
WinBinder состоит из DLL-библиотеки, которая факти- ли выше, – это слой PHP, который эффективно связывает
чески является PHP-расширением небольшого набора вспо- Windows API с Zend Engine, создавая новый набор пользова-
могательных скриптов и файлов. На рис. 1 представлена тельских функций PHP. Многие из этих функций имеют пре-
схема работы приложения, написанного с использованием фикс wb_, например, wb_set_value(), которую вам придется
данного расширения. часто использовать для установки значения объектам.
Связь между компонентами в WinBinder реализована Результатом двухслойной архитектуры WinBinder явля-
через механизм обратных вызовов. Windows-сообщения, ется набор простых и удобных в использовании функций,
генерируемые контроллерами и таймерами, транслиру- упрощающих работу с Windows API-интерфейсом. Напри-
ются в одиночные callback-события, которые можно легко мер, чтобы присвоить иконку для окна приложения, нужно
перехватить в PHP-программе. Каждое сообщение имеет вызвать функцию wb_set_image(). Её прототип выглядит
свой целочисленный идентификатор, по которому его мож- следующим образом:
но идентифицировать.
Библиотека WinBinder фактически состоит из двух сло- bool wb_set_image (int wbobject, mixed source, ↵
int transparentcolor, int index, int param)
ев, взаимодействующих между собой. Первый слой – это
нижний уровень, называемый API‑слоем. Данный слой на- Достаточно передать идентификатор объекта и ресурс.
прямую связан с Windows API и предоставляет единый ин- В качестве ресурса может быть как графический файл, так и
терфейс для более высокоуровневого слоя – слоя PHP. Хо- DLL-библиотека или исполняемый файл, содержащие в се-
тя функции на нижнем уровне представляют из себя оберт- бе графические ресурсы (для этого указывается индекс ре-
ки для Windows API вызовов, большинство из них являются сурса внутри бинарного файла – index). Та же функция ис-
больше чем просто обертки вокруг API. Они инкапсулируют пользуется и для растровых изображений, применяемых
работу Windows-функций и упрощают доступ к ним. к любому объекту, хоть списки, хоть проводник с деревом.
Например, Windows использует различные сообщения Таким образом, программист освобождается от всех тонкос-
для установки числовых значений для таких компонент, как тей работы с Windows API, с его множеством функций и со-
progress-bar, scroll-bar и т. д. И хотя существует явное сходс- общений, которые скрыты от глаз PHP-программиста.
тво между этими элементами управления при генерации со- Еще одним преимуществом такой архитек т уры
общений, их аргументы различны. Примеры генерации со- WinBinder является то, что можно создавать переплеты
общений (см. таблицу).
Примеры генерации сообщений
Одна из целей WinBinder как раз заключает-
Scroll bars SendMessage(hCtrl, SBM_SETPOS, (WPARAM)dwValue, TRUE);
ся в том, чтобы изолировать программиста от
всех этих сложностей, предоставляя функционал Track bars SendMessage(hCtrl, TBM_SETPOS, TRUE, (LPARAM)(LONG)dwValue);
библиотеки. API-слой выполняет всю работу че- Progress bars SendMessage(hCtrl, PBM_SETPOS, (WPARAM)dwValue, 0);
рез единую функцию wbSetValue(), которая имеет Up/down controls SendMessage(hCtrl, UDM_SETPOS, 0, (LPARAM)MAKELONG((short)dwValue, 0));
с другими скриптовыми языками программирования, заме- Теперь заходим на http://exvision.net. Качаем оттуда сту-
нив слой PHP на какой-то другой. В этом случае WinBinder дию. Установка делается в 2 клика, так что нет смысла её
будет действовать как основа, каркас, связывающий раз- расписывать. Запускаем студию и получаем главное ок-
нородные компоненты воедино. но – рабочий стол. Жмете в меню «Project → New», задае-
Возможна даже замена Windows API-слоя, что позво- те имя проекта, пусть у нас будет это Samag. После созда-
лит делать приложения для других операционных систем, ния проекта будет сгенерирован главный файл MAIN. Сле-
отличных от Windows, но это только в теории. На практи- ва вы увидите его. Надо заметить сразу, что это не обоз-
ке вопросом на данный момент никто не занимается и это реватель файлов, а проводник ресурсов. Все, что отобра-
не входит в рамки развития проекта. Хотя никто не меша- жается в этом списке, будет скомпилировано в исполняе-
ет вам подумать над этим, может быть, кто-то и заинтере- мый файл. Имена ресурсов автоматически генерируются
суется. Все в ваших руках. на основе реальных имен файлов. Из имени исключает-
ся все лишнее (точки, пробелы, прочее), и оно приводится
И опять, и снова да здравствует мир во к верхнему регистру.
всём мире! Итак. С чего начнем? Банальный «Привет, мир!» нам сто-
Ну что же, мы разобрали, что такое WinBinder, давайте пе- ит написать, чтобы быстро показать идеологию проектиро-
рейдем теперь к практической части. Библиотеку и нужные вания на WinBinder. Сделаем простое окно с текстом и кноп-
компоненты можно скачать с официального сайта http:// кой Show message (см. рис. 2).
winbinder.org. Этого достаточно, чтобы писать приложения, Как и в PHP-GTK, чтобы создать форму, нужно описать
но есть одно «но». Как и в случае с PHP-GTK, на компьюте- ее, инициализировать библиотеку и прочее. Но WinBinder
ре должен быть интепретатор PHP. И что же? Меняем ши- тем и хорош, что он позволяет создать форму за два клика.
ло на мыло? Не совсем. Да, WinBinder не кроссплатфор- Открываем редактор форм (WinBinder Form Editor). Созда-
менный, в отличие от того же PHP-GTK, но он более легок ем форму, какую захотим. Давайте кинем на форму кнопку.
в освоении и программировании. В WinBinder есть графи- Назовите её как-нибудь. Теперь выберите из пункта меню
ческий редактор форм, который позволяет экспортировать File: Export PHP Code. Сохраните форму в файл, к приме-
их сразу в нативный PHP-код. ру, mainform.php. Далее можно пойти несколькими путями.
Но WinBinder мало чем отличался бы от аналогов, ес- Самый простой, но не самый правильный – это скопировать
ли бы не одна разработка от eXvision. Называется она содержимое файла mainform.php в нашу открытую рабочую
miniPHP Studio. Эта студия представляет собой прос- область (файл MAIN). У вас должно получиться:
той, но тем не менее удобный редактор PHP-кода, редак-
тор ресурсов и компилятор кода в исполняемый файл. <?php
В качестве компилятора в ней используется bamcompile /********************************************************
(http://www.bambalam.se/bamcompile). Это очень удобный
WINBINDER - form editor PHP file (generated automatically)
и наиболее распространенный компилятор PHP в исполняе-
мые exe-файлы. Скомпилированные бинарники сжимаются ********************************************************/
утилитой UPX (Ultimate Packer for eXecutables – упаковщик // Control identifiers
исполняемых файлов, поддерживающий несколько различ- if(!defined('IDC_PUSHBUTTON1002')) ↵
define('IDC_PUSHBUTTON1002', 1002);
ных платформ и форматов файлов). На выходе получается
компактная программка с графическим интерфейсом, на- // Create window
$winmain = wb_create_window(null, AppWindow, ↵
писанная на PHP. Она готова к распространению, а глав- 'www.samag.ru', WBC_CENTER, WBC_CENTER, 317, 179, ↵
ное, на компьютере пользователя не нужно что-то допол- 0x00000000, 0);
нительно устанавливать. Все необходимое уже будет вклю- // Insert controls
чено в бинарный файл и готово к использованию. Также wb_create_control($winmain, PushButton, 'Show message', ↵
105, 65, 90, 25, IDC_PUSHBUTTON1002, 0x00000000, ↵
miniPHP Studio позволяет включать в исполняемый файл 0, 0);
любой ресурс, будь то графический файл или текстовый,
// End controls
а также включать DLL-библиотеки и расширения PHP. ?>
84
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
web-программирование
Этого, правда, недостаточно для запуска. Теперь нам {
switch($id)
надо инициализировать саму библиотеку, вызвав функцию {
wb_init() в самом начале файла. Далее нам надо написать case IDC_PUSHBUTTON1002:
wb_message_box($Sender, ↵
и зарегистрировать функцию-обработчик для сообщений "Hello world!", ↵
Windows. Выглядеть она может так: "My first test programm");
break;
// Main Window's processor case IDCLOSE:
function main_events_handler($Sender, $id) wb_destroy_window($Sender);
{ break;
switch($id) }
{ }
case IDC_PUSHBUTTON1002:
wb_message_box($Sender, ↵ ?>
"Hello world!", ↵
"My first test programm");
break; Проведем краткий разбор приложения. Вначале мы ини-
case IDCLOSE: циализировали библиотеку, вызвав wb_init(). Затем объяви-
wb_destroy_window($Sender); ли константу IDC_PUSHBUTTON1002, присвоив ей значе-
break;
} ние 1002. Это целочисленный идентификатор нашей кноп-
} ки. В WinBinder ко всем ресурсам и компонентам доступ
происходит через целочисленные идентификаторы, будь
Теперь регистрируем функцию через следующий вызов: то окно, контроллер или сообщение. После мы создали
окно с заголовком www.samag.ru. Далее идет регистрация
wb_set_handler($winmain, "main_events_handler"); нашего обработчика сообщений wb_set_handler($winmain,
"main_events_handler"). В качестве аргументов передается
И вызываем функцию wb_main_loop(), она создает глав- идентификатор окна и название функции обратного вы-
ный цикл программы. Собственно все. Теперь запускаем зова. Функция принимает идентификатор объекта-роди-
программу кнопкой Preview project. Есть, правда, маленькое теля и целочисленный идентификатор сообщения. Внут-
«но». Программа miniPHP Studio написана без разделения ри функции мы обрабатываем эти сообщения по номерам
на потоки, поэтому при предварительной компиляции бу- в конструкции switch. Вы видите нашу объявленную кон-
дет казаться, что студия повисла. На самом деле это не так. станту IDC_PUSHBUTTON1002 и неизвестную IDCLOSE.
Кстати при компиляции всегда выскакивает окно с сообще- Вторая константа – это стандартная константа библиоте-
нием, что студия не может быть активна до окончания про- ки. Подробнее оних можно прочесть в справке, которая
цесса компиляции. Делается это не очень быстро, но тер- идет в комплекте со студией. Ну и, наконец, происходит
пимо. Процесс сборки может достигать минуты, так что запуск бесконечного цикла функцией wb_main_loop(). Все.
не спешите убивать процесс. Итак, делайте предваритель- Теперь вы можете скомпилировать вашу программу и рас-
ную сборку приложения и смотрите, что у вас получилось. пространять ее на любом компьютере с операционной сис-
Если возникнут ошибки, то студия вам сообщит о них. темой Windows.
Полный исходный код нашего тестового приложения После сборки на выходе получите исполняемый файл
выглядит так (см. рис. 3): размером примерно полтора мегабайта, готовый к работе
и включающий в себя все необходимые библиотеки и ре-
<?php сурсы.
wb_init();
/********************************************************
Тестер регулярных выражений
Давайте теперь напишем более полезную программу и не-
WINBINDER - form editor PHP file (generated automatically) много больше разберемся с WinBinder. Напишем утилиту,
********************************************************/ с помощью которой можно будет быстро протестировать ре-
гулярное выражение на пригодность. Итак, приступим.
// Control identifiers
if(!defined('IDC_PUSHBUTTON1002')) ↵ Для начала накидаем простейший класс-отладчик, ибо
define('IDC_PUSHBUTTON1002', 1002); без отладки немыслима разработка. Вся отладочная ин-
// Create window
$winmain = wb_create_window(null, AppWindow, ↵
'www.samag.ru', WBC_CENTER, WBC_CENTER, 317, 179, ↵
0x00000000, 0);
wb_set_handler($winmain, "main_events_handler");
// Insert controls
wb_create_control($winmain, PushButton, 'Show message', ↵
105, 65, 90, 25, IDC_PUSHBUTTON1002, 0x00000000, ↵
0, 0);
// End controls
wb_main_loop();
формация будет кидаться в текстовый лог-файл, так как те правой кнопкой мыши и выбираете пункт Import a PHP
это лучший способ отладки. Код нашего отладчика будет Script. Выбираете файл debug.php и подключаете.
следующим:
Ресурсы WinBinder
<?php Прежде чем продолжить, я должен рассказать вам про ре-
class Debug сурсы WinBinder и как с ними работать. Любой ресурс, им-
{ портированный в проект, будет храниться внутри бинарного
public static $dumpFile = 'dump.log';
файла. PHP-скрипты также являются текстовыми ресурса-
public static function var_dump() ми. Чтобы обратиться к внутреннему ресурсу надо исполь-
{
$args = func_get_args(); зовать схему res://. Общий прототип именования выглядит
ob_start(); следующим образом:
call_user_func_array('var_dump', $args);
error_log(ob_get_clean(), 3, self::$dumpFile);
} "res:///RESOURCETYPE/RESOURCENAME"
86
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
web-программирование
Этого достаточно для нашего приложения. Более подробно дельный класс и хранился в отдельном файле. Это особен-
обо всех видах ресурсов написано в справке к библиотеке. но удобно, если у вас очень большая программа. Вы сами
решите, как вам удобнее и лучше.
Создаем каркас Вернемся к нашим недописанным обработчикам сооб-
Кинем на форму два текстовых поля, две кнопки и компо- щений. Код этих методов выглядит следующим образом.
нент для рендеринга HTML кода. Наша форма должна вы- Для кнопки preg_match:
глядеть примерно так (см. рис. 4).
Теперь давайте напишем каркас нашего будущего при- public static function signal_pushButton1($Window)
{
ложения. Лучше всего его оформить один раз в виде клас- preg_match
са и впоследствии использовать во всех ваших приложе- (
wb_get_text(self::$components ↵
ниях с WinBinder. Каркас будет выглядеть так: [IDC_RTFEDITBOX1002]),
wb_get_text(self::$components ↵
<?php [IDC_RTFEDITBOX1001]),
$arrayResults
class WBMain );
{
public static $signalsBind = array(); self::setResult($arrayResults);
public static $components = array(); }
учиваться и изучать что-то сложное. WinBinder очень легок ния/записи памяти по произвольным адресам с помощью
в освоении, а на сайте есть очень подробная документация функций wb_peek() и wb_poke(). Например, таким образом
и хорошие примеры. Эта документация встроена и в саму был найден способ взаимодействия с буфером обмена.
студию, так что нет необходимости ходить на сайт. Кстати, вот вам пример работы напрямую с памятью. На-
пример, изменение содержимого строки в памяти:
Еще пару слов в пользу WinBinder
WinBinder настолько прост, что много о нём рассказывать <?php
не вижу смысла. Данной статьи достаточно для того, чтобы $string = "Test string";
сесть и начать писать всякие утилитки для себя уже после $addr = wb_get_address($string);
$peek = wb_peek($addr);
тридцати минут знакомства. Можно написать легко и быст- Debug::var_dump( $peek );
ро редактор для базы данных SQLIte. Можно написать прос-
wb_poke($addr, "Replace");
той графический редактор, используя GD. К примеру, про- $peek = wb_peek($addr);
грамму для визуального изменения размера изображений Debug::var_dump($peek, $string);
и их брендирования. И даже ICQ-клиент, благо есть библи- ?>
отека, написанная на PHP, для работы с этим протоколом.
Можно написать клиент для работы с почтой. Можно напи- В результате в лог-файл будет записано следующее:
сать FTP-клиент. Да можно много чего еще написать. Бы-
ла бы фантазия, прямые руки и свободное время, а инстру- string(11) "Test string"
string(11) "Replacering"
мент у нас уже есть. string(11) "Replacering"
Конечно WinBinder не заменит вам С#/C++ или Java,
но его возможностей достаточно для создания более-ме- Мы получили адрес строковой переменной с помо-
нее сложных приложений. Более того, сообщество програм- щью wb_get_adress(), затем получили её содержимое че-
мистов постоянно расширяет возможности WinBinder. Чего рез wb_peek() и изменили, перезаписав начало строки че-
только стоит поддержка WinAPI, а также возможность чте- рез wb_poke().
88
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
web-программирование
Еще один плюс в корзину WinBinder – это то, что он под-
держивает ресурсы из WinASM Studio (бесплатная среда
разработки программного обеспечения для ОС Windows
и DOS, изначально предназначенная для написания про-
грамм на языке Ассемблер) (см. рис. 6).
WinBinder умеет даже «на лету» работать с файлами ре-
сурсов. К примеру, у вас есть файл с ресурсом окна. Вы мо-
жете его подключить прямо в программе, распарсить функ-
цией parse_rc(), которая вернет нативный PHP-код и выпол-
нить его. Пример приведен ниже:
<?php
Антон Гришан
Большинство приложений вынуждено работать с базами данных, общаясь с СУБД на языке
SQL-запросов. Иными словами, одни программы на языках высокого уровня составляют
другие программы на SQL. Это выглядит привычным – поэтому кажется логичным и удобным,
но так ли это на самом деле?
Р
ассмотрим два способа взаимодействия приложения ций. Скрипт вызывает процедуру со списком параметров
и базы данных. Первый и на данный момент более и обрабатывает полученный результат(ы).
популярный способ – генерация SQL-запроса в теле Приведенный выше запрос (SELECT Cities.name FROM
скрипта (здесь и далее приводятся примеры для PHP5 + Countries, Cities WHERE Cities.countryId = Countries.id AND
MySQL 5 с установленным расширением mysqli): Countries.code = 'RU') можно сохранить в виде процеду-
ры – getCities, с одним входным параметром – код страны
/* Выбрать все города в стране с заданным кодом, (countryCode char(2)).
* динамическая генерация запроса
*/ Приведу пример создания хранимой процедуры:
$countryCode = 'RU';
$result = mysqli_query ($db, "SELECT Cities.name ↵ DELIMITER $$
FROM Countries, Cities WHERE Cities.countryId = ↵ CREATE PROCEDURE `getCities`(countryCode char(2))
Countries.id AND Countries.code = ↵ BEGIN
'".mysqli_real_escape_string($db, $countryCode)."'"); SELECT Cities.name FROM Countries, Cities ↵
WHERE Cities.countryId = Countries.id ↵
Второй способ – доступ к данным через хранимые про- AND Countries.code = countryCode;
цедуры. Хранимая процедура – объект базы данных, пред- END$$
DELIMITER ;
ставляющий собой набор скомпилированных SQL-инструк-
90
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб-программирование
В момент вызова хранимой процедуры СУБД подстав- n Защита приложения от изменений структуры БД.
ляет значение параметра в тело запроса и возвращает ре- В процессе развития проекта может возникнуть необ-
зультат выборки данных. ходимость в изменении структуры БД, например, до-
Для вызова хранимой процедуры ‘getCities’ на стороне бавить/удалить/переименовать таблицу или столбец.
сервера БД необходимо выполнить следующую команду: Если приложение генерирует SQL-запросы, то необхо-
димо внести изменения во все фрагменты кода, отве-
CALL `getCities`('RU'); чающие за генерацию запросов. Организация доступа
через хранимые процедуры не требует внесения изме-
Вызвать процедуру getCities из PHP-приложения мож- нений в код приложения до тех пор, пока имя хранимой
но следующим образом: процедуры и список параметров (а также ожидаемый
результат) остаются прежними.
/* Выбрать все города в стране с заданным кодом, n Снижение количества ошибок и упрощение отлад-
* вызов хранимой процедуры
*/ ки. Чаще всего ошибки в работе приложения с БД воз-
$countryCode = 'RU'; никают по следующим причинам:
mysqli_multi_query($db, "CALL getCities ↵
('".mysqli_real_escape_string ↵ приложение использует некорректные значения для
($db, $countryCode)."');"); генерации SQL-запроса;
SQL-выражение некорректно описывает ожидаемый
Работа с БД через хранимые процедуры в настоящий результат (т.е. ошибка в запросе);
момент встречается реже, чем генерация SQL-запроса в те- фрагмент кода приложения, отвечающий за генера-
ле программы. На мой взгляд, это происходит по следую- цию SQL-запроса, содержит ошибку и не способен
щим причинам: правильно построить нужный запрос.
n наиболее популярная связка для написания веб-прило- Если доступ к БД построен на основе хранимых проце-
жений – PHP + MySQL, однако только в MySQL 5 стало дур, то:
возможно использовать хранимые процедуры; легко узнать, какие значения попадают в хранимую
n в большинстве пособий по программированию приве- процедуру, достаточно распечатать список аргумен-
дены примеры работы с БД, основанные на генерации тов в момент вызова хранимой процедуры;
запроса в теле скрипта, и начинающим программистам вам не нужно гадать по коду приложения, какой
сложно отойти от книжных примеров; именно запрос должен получиться в том или ином
n написание приложения с использованием хранимых месте программы, достаточно посмотреть на тело
процедур подразумевает умение программистов рабо- хранимой процедуры, что значительно упрощает
тать с хранимыми процедурами или наличие времени процесс отладки;
для изучения данной технологии (что не всегда допус- этой ошибки возникнуть не может, так как приложе-
тимо в рамках конкретного проекта). ние вообще не генерирует SQL-запросов, все запро-
сы находятся в БД в виде хранимых процедур.
Преимущества использования n Безопасность. Использование хранимых процедур поз-
хранимых процедур воляет значительно снизить угрозу возникновения уяз-
n Повышение скорости работы БД. Процедуры хранят- вимости типа SQL-injection. Кроме того, можно устанав-
ся в скомпилированном виде, а значит, СУБД не тратит ливать права доступа к объектам базы данных для каж-
время на компиляцию запроса при каждом его испол- дой хранимой процедуры, что также способствует по-
нении. Приложению не требуется тратить время на ге- вышению уровня безопасности приложения.
нерацию запроса. Команда для вызова хранимой про-
цедуры значительно короче, чем запрос, содержащий- Трудности работы с хранимыми
ся в теле процедуры, поэтому требуется меньше време- процедурами
ни и трафика на передачу команд на сервер БД. Существует масса преимуществ, говорящих за использова-
n Большая степень свободы. Хранимые процедуры под- ние хранимых процедур. Однако не стоит думать, что храни-
держивают: входные и выходные параметры, локальные мые процедуры, безусловно, оптимальное решение для лю-
переменные, операторы условного ветвления, циклы, бого проекта. Чтобы сделать осмысленный выбор, давайте
вызовы встроенных команд и других процедур, испол- рассмотрим отрицательные стороны данного метода.
нение DDL-операторов. Во многом хранимые процеду- n Проблема совместимости. Если необходимо обеспе-
ры похожи на процедуры языков программирования вы- чить легкую переносимость приложения на максималь-
сокого уровня. ное количество СУБД, то, вероятно, стоит отдать пред-
n Упрощение кода приложения. В приложении нет SQL- почтение динамической генерации запросов, так как
запросов, а значит, программисту не нужно писать код хранимые процедуры поддерживаются не всеми СУБД.
для их генерации. Для вызова хранимой процедуры не- n Сложность внедрения хранимых процедур в сущес-
обходимо знать только имя и список параметров (ана- твующий проект. Внедрение хранимых процедур в при-
логично вызову обычных функций/методов в теле при- ложение, использующее динамическую генерацию за-
ложения). Такой подход сокращает размер кода и улуч- просов, приведет к полной реорганизации кода рабо-
шает его читабельность, что положительно влияет на ка- ты с БД. Необходимость такой реорганизации не всег-
чество конечного продукта. да просто объяснить заказчику.
92
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
сисадмин тоже человек
Сисадминский Новый год ций о том, что к компам прикасаться нельзя и все перестановки
Лежу я, значит, со своей девушкой на диване дома 31 декабря делает только админ. Ровно в 14.00 я свалил. И тут же начались
2008 года, в последний вечер года, и в самый интересный мо- звонки начальнице, почему мы уходим точно по графику, а кадро-
мент раздается звонок моей мобилы (звонят с работы), поднимаю вичка сидит до 10 вечера, когда надо. Была послана, но...
трубку и слышу: «Приезжай скорей, у нас компьютер не включа- Почему админ получает 35к, а кадровичка 150к за то, что со-
ется, пишет, что, типа, не найден такой-то файл, дальнейшая ра- кращает народ? Где-нибудь ценят админов нормально? И как ко-
бота Windows невозможна...» го коснулся этот кризис?
Обслуживаю сеть круглосуточных супермаркетов. Надо ехать, Дмитрий Иванов
но время 22:40, меньше чем через полтора часа Новый год! При-
ехал, спрашиваю: «Что произошло?» Отвечают: «Какое-то сооб-
щение вылезло, ну мы там нажали на OK, комп завис, мы его пе- Кризисное
резагрузили кнопкой, а он и не загружается, вот мы тебе и поз- Работал я админом в офисе. Все было хорошо, цивильно – нор-
вонили...» мальная сеть, построенная по уму, – отдельная серверная, стой-
– Что в сообщении-то было написано? ки-патчпанели, UPS. Разводка розеток (и сеть, и телефон, и пита-
Пожимают плечами. ние) на каждое рабочее место с запасом. Никаких «ужасов» вроде
– ??? серверов на полу или гирлянд из проводов, свисающих по стенам.
– Мы же видели, что ты, типа, нажимаешь на OK, потом пере- Делал ее мой предшественник, за что ему великий почет и ува-
загружаешь сервак, и все пучком! жение. Офис большой, комфортный, в удобном для меня месте.
В общем, на кассовом сервере жесткий сдох, хорошо хоть Полгода работал и горя не знал. А потом пришел кризис.
BackUpы есть! Не стал с ними церемониться, ввел POS-термина- И решили мы переезжать в офис поменьше и подальше, попут-
лы в автономный режим, до утра потерпят! но разделяясь на две организации. Отделилось одно из направле-
В обед на следующий день (1.01.2009) с бодуна прилетаю в ма- ний. Правда, от выбора до фактического переезда осталось две
газин, дабы поднять сервак. Сижу, ковыряюсь, мне звонок на мо- недели, но кого это волновало? А меня (админа) припахали заклю-
билу (генеральная звонит): «Что там произошло?» Объясняю все чать договора и запрашивать счета на подвод всего в это помеще-
доходчиво, что, типа, сервер упал – сижу, поднимаю. Она: «Мо- ние. С постоянными отчетами «когда уже». На намек, что раньше
жет, прислать кого из грузчиков? Помогут поднять!» Я в шоке: надо было суетиться и в средине декабря телефонная компания
«Зачем грузчиков? Сам справлюсь!» Потом сижу-догоняю: она закупает шампанское на корпоратив, а не тянет телефоны, реак-
же не в курсе, что падение сервера не обязательно означает его ции нет. Притом старый офис остался тоже на мне, да еще с пос-
физическое изменение месторасположения в короткий проме- тоянными левыми задачами, вроде «у меня компьютер гудит» или
жуток времени... «поищи нам музыку на Новый год, мы не умеем».
В итоге Новый год встречать приехал без четверти двенад- В серверной нового офиса отсутствует охлаждение. Как класс.
цать, девушка в шоке (она давно мою работу не любит)... Только свисающая с разобранного фальшпотолка труба, отклю-
P.S.: ченная от вентиляции здания. Из питания – розетки, 3 штуки.
1. Почему серваки падают в такое время, когда ты совсем этого На стене. От общей группы. Сети фактически нет. Есть кое-где
не ждешь, и в самый интересный момент (кстати, кому очень розетки, половина не рабочая. Но это ладно. Протянем-проло-
интересно, этот интересный процесс, все же я довел до свое- жим, поставим-настроим, не впервой. Мягко намекнули, что па-
го логического конца)? хать придется все праздники.
2. Я просто в шоке от юзверей, которые не читают сообще- Дальше началось совсем смешно. Питания и розеток на все
ния... рабочие места не хватает. На вопрос руководству «???» ответ:
«Подводи удлинителями». 19" стойку забрать не дали, отдали отде-
С Новым годом вас, камрады! ляющемуся направлению. Стоечный UPS – тоже. На вопрос «когда
ViRuZzz купим?» ответ: «ну, может быть к марту...» На вопрос «упадет, и са-
ми будете плакать» ответ: «ну, раньше же не падало». Убеждения,
что все когда-то бывает в первый раз, не помогли. А ежедневные
Незаменимые у нас есть изнасилования мозга отчетами и планами продолжались.
В свете кризиса выгнали на 4-дневку за свой счет. И начинаются Апогеем стала новость, что забрать из старого офиса мы смо-
в пятницу звонки. Как оказалось, все (бухи, кадры, даже электри- жем только занятые машины. Свободные – нет. И мониторы 19"
ки) работают, выгнали только «избранных», и админы попали в их свободные – тоже нет, сидите на 15". А вообще посмотрим, может,
число. Разумеется, все были посланы далеко и надолго. Сами вы- мы вообще тебе с февраля зарплату понизим, ведь людей будет
гнали – работайте как хотите. После того как подох свитч в сер- меньше. На вялый намек «основная часть моего времени уходит
вачной нам «разрешили» работать по пятницам до 2 часов. не на замену мышек, а на работу с сетью и серверами» ответа
Так, в пятницу, когда я сижу на минимуме поддержки, толь- нет. В итоге я написал заявление ПСЖ. И ушел. И на меня все ко-
ко критические ситуации, долбанутая кадровичка наметила пе- сились, как «бросил нас в кризисной ситуации».
рестановку и позвонила мне за 20 минут до конца рабочего дня Коллеги, подскажите – это я такой дурак, что ушел?
с просьбой подключить компьютеры. О том, что подключать ком- MInoy
пы надо к розеткам и сети, а также о том, что у них есть провода,
они даже не подумали. Также никто даже никто не читал инструк- По материалам сайта «Сисадмин тоже человек» –
http://sysadmin.mail.ru
Редакционная подписка
для физических лиц
n Вы можете оформить подписку n Журнал высылается почтой заказ-
только на российский адрес. ной бандеролью только после пос-
n При заполнении квитанции обя‑ тупления денег на расчетный счет
зательно РАЗБОРЧИВО укажи‑ и копии заполненного и оплачен‑
те фамилию, имя, отчество пол‑ ного бланка, отправленной в ре‑
ностью, почтовый индекс и ад‑ дакцию по факсу: (495) 628‑82‑53
рес получателя (область, город, (доб. 120) или на электронный
улица, номер дома, номер квар‑ адрес: subscribe@samag.ru.
тиры), контактный телефон.
ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
94
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
подписка на 2009 год
Российская Федерация печати «Гасид» (370102, г. Баку, ул. Джавадхана, 21)
n
Подписной индекс: годовой – 20780, полугодовой – 81655 n
Казахстан – по каталогу «Российская Пресса» через
Каталог агентства «Роспечать» ОАО «Казпочта» и ЗАО «Евразия пресс»
n Подписной индекс: годовой – 88099, полугодовой – 87836 n
Беларусь – по каталогу изданий стран СНГ через РГО
Объединенный каталог «Пресса России» «Белпочта» (220050, г. Минск, пр-т Ф. Скорины, 10)
Адресный каталог «Подписка за рабочим столом» n
Узбекистан – по каталогу «Davriy nashrlar» российс-
Адресный каталог «Библиотечный каталог» кие издания через агентство по распространению пе-
n Альтернативные подписные агентства: чати «Davriy nashrlar» (7000029, г. Ташкент, пл. Муста-
Агентство «Интер-Почта» (495) 500-00-60, курьерская киллик, 5/3, офис 33)
доставка по Москве n Армения – по списку номенклатуры «АРЗИ» через
Агентство «Вся Пресса» (495) 787-34-47 ГЗАО «Армпечать» (375005, г. Ереван, пл. Сасунци Да-
Агентство «Курьер-Прессервис» вида, д. 2) и ЗАО «Контакт-Мамул» (375002, г. Ереван,
Агентство «ООО Урал-Пресс» (343) 375-62-74 ул. Сарьяна, 22)
ЛинуксЦентр www.linuxcenter.ru n Грузия – по списку номенклатуры «АРЗИ» через АО
n Подписка On-line «Сакпресса» ( 380019, г. Тбилиси, ул. Хошараульская, 29)
http://www.arzi.ru и АО «Мацне» (380060, г. Тбилиси, пр-т Гамсахурдия, 42)
http://www.gazety.ru n Молдавия – по каталогу через ГП «Пошта Молдовей»
http://www.presscafe.ru (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
по списку через ГУП «Почта Приднестровья» (МD-3300,
СНГ г. Тирасполь, ул. Ленина, 17)
В странах СНГ подписка принимается в почтовых отделе- по прайс-листу через ООО Агентство «Editil Periodice»
ниях по национальным каталогам или по списку номенк- (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
латуры «АРЗИ»: n Подписка для Украины:
n Азербайджан – по объединенному каталогу россий- Киевский главпочтамт
ских изданий через предприятие по распространению Подписное агентство «KSS», тел./факс (044)464-0220
Подписные
индексы:
20780 *
+ диск с архивом
статей 2008 года
81655 **
без диска
по каталогу агентства
«Роспечать»
88099 *
+ диск с архивом
статей 2008 года
87836
без диска
**
по каталогу агентства
«Пресса России»
*
Годовой
**
Полугодовой
***
Диск вкладывается
в февральский
номер журнала,
распространяется
только на территории
России
УЧРЕДИТЕЛИ
Частные лица
РЕДАКЦИЯ
Генеральный директор
Владимир Положевец
Главный редактор
Алексей Коршунов
chief@samag.ru
Ответственный секретарь
Наталья Хвостова
sekretar@samag.ru
Технический редактор
Владимир Лукин Вы знаете, как бороться
с «Просачивающейся А дварью»?
Главный редактор
электронного приложения
Применяете «Чарующий скрипт»?
«Open Source»
Дмитрий Шурупов Редакция журнала «Системный администратор» представляет
Внештатные редакторы
вам новый админский сувенир для истинных знатоков своего дела –
Алексей Барабанов карточную игру «AYTCOPCEP».
Кирилл Сухов
Александр Емельянов
Андрей Луконькин
В ходе игры участники тянут из колоды карты «Проблем», с которым
им предстоит бороться один на один или с помощниками, используя
РЕКЛАМНАЯ СЛУЖБА подручные средства. Успешное решение «Проблемы» добавляет игроку
тел./факс: (495) 628-8253
Евгения Тарабрина (доб. 120)
уровни. Если вы не считаете себя добрым и милым, то для вас в игре
reсlama@samag.ru предусмотрена специальная возможность – сделать гадость другому
участнику и обойти его в погоне за уровнями.
Верстка и оформление
maker@samag.ru
Победителем становится тот, кто быстрее всех
Дизайн обложки доберется до 10 уровня. Остальные подробности об игре,
Дмитрий Репин
«Чарующем скрипте», «МегаУтилите» и «Клановом коктейле»
По вопросам распространения вы сможете узнать из правил игры.
обращайтесь по телефону:
Светлана Зобова
(495) 628-8253 (доб. 120)
«AYTCOPCEP» – это пародия на жизнь, которая позволит вам
ощутить всю прелесть аутсорсинга... но без всей словесной мишуры,
107045, г. Москва, типа, «утром стулья, вечером деньги…»!
Ананьевский переулок, дом 4/2, стр. 1
тел./факс: (495) 628-8253
Приобретайте игру «AYTCOPCEP» в редакции.
Сайт журнала: www.samag.ru
ИЗДАТЕЛЬ
ООО «С 13»
Отпечатано типографией
ООО «Периодика»
Тираж 17000 экз.
96
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru