29 июля 2008

Kerberized NFSv4 issue in RHEL 5.1

При настройке NFSv4 в связке с Kerberos на сервере с Red Hat Enterprise Linux 5.1 столкнулся с тем, что в Kerberos был изменен алгоритм по умолчанию с des-cbc-crc на 3des-cbc-hmac. Это конечно здорово, но вот NFSv4 работает только с алгоритмом шифрования des-cbc-crc.
Соответственно, когда добавляем созданного принципала nfs/stationX.example.com в /etc/krb5.keytab нужно в ktadd указать алгоритм:

kadmin: ktadd -e des-cbc-crc:normal -k /etc/krb5.keytab \
nfs/stationX.example.com

В противном случае получаем в /var/log/messages ошибку:

gss_kerberos_mech: unsupported algorithm 7

13 июля 2008

"Книжная полка" журнала "Системный администратор" (Часть 1)

Последний год веду в журнале «Системный администратор» рубрику обзоров «Книжная полка». Хотя весь объем выходящей компьютерной литературы охватить просто не реально, но большая масса новинок мимо меня не проходит, а с четырьмя книгами в месяц можно познакомиться более-менее подробно. Поскольку спустя какое-то время редакция разрешает выкладывать тексты в интернет, ниже привожу часть обзоров самых интересных книг попавших на «книжную полку».

Операционные системы: разработка и реализация. 3-е издание
Эндрю Таненбаум, Альберт Вудхалл
Издательство: «Питер»

Год издания: 2007

Количество страниц: 704

ISBN: 978-5-469-01403-4


Несмотря на то что «Системный администратор» уже писал об этой книге в 2005 году, мы вновь решили обратить ваше внимание на это классическое издание, посвященное устройству операционных систем, воспользовавшись тем, что на этот раз речь идет о самом последнем, третьем издании (на языке оригинала вышло в 2006 году). Предыдущее, второе, датируется далеким по меркам развития IT‑технологий 1997 годом. По сравнению со вторым изданием практически весь материал переработан, и добавлено много нового. В частности, строение операционных систем рассматривается на примере последней версии, специально созданной для курса, читаемого автором в VU University Amsterdam, «учебной» UNIX-подобной операционной системы MINIX 3.

Книга состоит из шести глав и двух приложений. Первая глава является введением в операционные системы. Вторая посвящена процессам. Третья вводу-выводу. Четвертая – управлению памятью, и наконец пятая – файловым системам. шестая представляет из себя библиографию. К книге прилагается CD-диск. Наверное, наиболее ценное из записанного на нем – это Приложение B: около 29 тысяч строк кода с комментариями, переведенными на русский язык. Последнюю же версию самой операционной системы лучше скачать с сайта http://www.minix3.org. Ну и в конце, пожалуй, будет уместным привести цитату из книги «Just For Fun» создателя ядра операционной системы Linux Линуса Торвальдса: «У каждого есть книга, которая перевернула его жизнь. Библия. «Капитал»... Меня лично вдохновила на подвиги «Проектирование и реализация операционных систем» Эндрю С. Таненбаума».


Программирование на Perl 3-е издание
Ларри Уолл, Том Кристиансен, Джон Орвант
Издательство: «Символ-Плюс»
Год издания: 2007
Количество страниц: 1156
ISBN: 5-93286-020-0

Библия всех Perl-программистов, книга с верблюдом на обложке (так называемая «Camel Book»), наконец, спустя семь лет, вышла на русском языке. Это перевод последнего, третьего издания, выпущенного в двухтысячном году. В книге, среди авторов которой числится и сам создатель языка программирования Perl Ларри Уолл, рассматривается версия Perl 5.6. Данная книга одновременно и учебник, и справочник, и рассказ об истории и культуре Perl. Помимо прочего данное издание само является частью культуры Perl, и обязательно к прочтению любым программистом, более или менее серьезно работающим с этим языком программирования. Книга написана с юмором и читается очень легко. Авторы рассказывают не только, как делается та или иная вещь в языке Perl, но и почему так, а не иначе, пытаясь приобщить читателя к самой культуре программирования на Perl.

Структурно эта весьма объемная книга состоит из пяти частей. В первой, под названием «Общий обзор», излагаются базовые идеи языка и дается неформальное введение в Perl. Во второй части «Анатомия Perl» вас ждет рассказ о внутреннем устройстве языка. Третья часть «Perl как технология» посвящена таким темам, как потоки, межпроцессное взаимодействие, компиляция, интерфейс командной строки, отладчик Perl. Четвертая часть «Perl как культура» содержит множество советов по совершенствованию программ на языке Perl. Наконец, заключительная часть объемом более четырехсот страниц полностью характеризуется своим названием «Справочник»


Winternals. Руководство по администрированию, восстановлению, дефрагментации
Под редакцией Дейва Клеймана
Издательство: «Бином»
Год издания: 2007
Количество страниц: 516
ISBN: 978-5-9518-0201-9

Название инструментальных средств Winternals и Sysinternals, наверное, известно всем, кто более или менее плотно работает в качестве администратора с операционными системами от компании из Редмонда. Именно этим утилитам, безусловно лучшим из подобного рода утилит, и посвящена последняя в нашем обзоре книга. К сожалению, после покупки Microsoft компании Winternals коммерческие разработки, описанные в данном издании, больше не доступны для заказчиков. Однако компания Microsoft пообещала использовать приобретенные технологии в своих новых продуктах. Что же касается описанных в книге бесплатных утилит Sysinternals, они все еще доступны для бесплатного использования и даже регулярно обновляются, но уже на сайте Microsoft.

Книга разбита на главы в соответствии с типом задач, решаемых утилитами Winternals и Sysinternals. Среди таких задач: наблюдение за работой компьютера, аудит защиты, управление диском, восстановление потерянных данных, поиск и устранение неисправностей системы и сетевой подсистемы, инструменты для программиста, работа с исходным кодом утилит и утилиты, разработанные для NT 4.0. Каждая глава завершается ответами на часто задаваемые вопросы (FAQ) по теме главы. Данную книгу можно рекомендовать системным администраторам, желающим повысить эффективность своей работы при работе с операционными системами Microsoft.


Virtualization with XenTM: Including XenenterpriseTM, XenserverTM, and XenexpressTM
David E. Williams, Juan Garcia
Издательство: Syngress
Год издания: 2007
Количество страниц: 364
ISBN: 978-1597491679

Новый год мы решили начать с эксперимента – включения в наши обзоры англоязычных книг. Не секрет, что зачастую технические книги к моменту перевода и выхода на российский рынок успевают устареть, а множество и вовсе не доходит до русскоязычного читателя. Однако самые свежие издания доступны для заказа через различные интернет-магазины, а значит, при желании доступны и читателю нашего журнала.

Книга, с которой хотелось бы начать обзор, посвящена одной из активно развивающихся и продвигаемых на массовый рынок технологий – виртуализации. Собственно, «Virtualization with Xen» – это самая первая книга, полностью посвященная гипервизору Xen. Благодаря преимуществам открытого кода Xen выступает как один из важных компонентов основных открытых операционных систем уровня предприятия (например, SELS или RHEL). В книге помимо информации, общей для всех реализаций гипервизора, особое внимание уделяется продуктам непосредственно от XenSource. В восьми главах книга последовательно вводит читателя в мир технологий виртуализации от основ до сложных тем.

Начав с введения в виртуализацию и базовых концепций, читатель знакомится с особенностями внедрения и управления конкретным продуктом. Отдельно рассмотрены «родные» утилиты администрирования и утилиты от сторонних поставщиков. Описано развертывание в качестве «гостевой ОС» как систем с поддержкой паравиртуализации, так и немодифицированных ОС в режиме полной виртуализации (на примере Windows). Кратко затрагиваются «продвинутые» темы (кластеры, работа с дисковыми хранилищами и другое). Отдельная глава книги посвящена будущему виртуализации на примере Xen.


Ядро Linux. 3-е издание
Даниель Бовет, Марко Чезати
Издательство: «БХВ-Петербург»
Год издания: 2007
Количество страниц: 1104
ISBN: 978-5-94157-957-0

Данная книга вполне достойна занять место на вашей полке рядом с «Операционными системами» Эндрю Таненбаума и «Внутренним устройством Microsoft Windows...» Руссиновича и Соломона. В оригинале «Understanding the Linux Kernel (3rd Edition)» вышла в ноябре 2005 года. Однако чтение тысячестраничной книги на английском языке обычно менее комфортно, чем на родном. И вот теперь отечественному читателю представилась возможность ознакомиться с этой классической книгой по устройству ядра современной открытой операционной системы и на русском языке.

В книге описывается ядро версии 2.6.11. И хотя это не самая последняя версия, но для целей изучения основ работы ядра Linux это вполне приемлемо и на сегодняшний день.

Сами авторы называют свой труд «путеводителем по ядру Linux», и это не преувеличение. Обсуждение кода ведется «снизу вверх» – от особенностей функционирования ядра на процессорах архитектуры 80х86 до аппаратнонезависимых компонентов. Подробно описывается управление памятью и управление процессами. В отдельных главах разобраны такие темы, как прерывания и исключения, синхронизация в ядре, хронометраж, системные вызовы, сигналы, архитектура ввода/вывода и драйверы устройств (в той степени, в какой это касается интерфейса ядра), кэш страниц, взаимодействие процессов и выполнение программ. Рассматриваются виртуальная файловая система и файловые системы ext2/ext3.

На русский язык книга переведена весьма добротно, и её можно порекомендовать всем интересующимся строением современных операционных систем.


Live Linux CDs: Building and Customizing Bootables
Christopher Negus
Издательство: Prentice Hall PTR
Год издания: 2007
Количество страниц: 456
ISBN: 978-0132432740

Даже если вы не работаете с операционной системой GNU/Linux, наверняка вы встречались, пробовали или хотя бы слышали о различных «живых» (Live CD) дистрибутивах Linux. Загрузившись со специального диска, вы можете, ничего не переустанавливая и не трогая на своем жестком диске, получить готовую рабочую среду. Как правило, такие Live CD-дистрибутивы являются специализированными, например для анализа защищенности вашей сети, для превращения персонального компьютера в мультимедиа-центр, маршрутизатор или для знакомства с новой для себя операционной системой. А что если попробовать самому создать такой «живой диск»? Именно этому и посвящена рассматриваемая книга «Live Linux CDs: Building and Customizing Bootables».

Зачем вам может понадобиться собственный загрузочный диск? Причин может быть множество – от создания CD/DVD или загрузочного USB-брелка под свои специфические задачи, содержащего свой уникальный набор программного обеспечения, до просто желания разобраться «а как оно работает».

В четырнадцати главах автор дает инструкции, как построить свой Live CD на основе таких дистрибутивов, как KNOPPIX (на основе Debian), Fedora, Gentoo, Damn Small Linux и SLAX. Что касается Fedora, обратите внимание на то, что описываемые в книге инструменты устарели. В настоящий момент вместо описанного Kadischi, разработка которого прекращена, используется набор Fedora Live CD.

Отдельные главы книги посвящены созданию CD для анализа защиты систем, CD c вашей презентацией, игрового и мультимедийных дисков, создания специализированных дисков для организации брандмауэра и кластера.

P.S. За время, прошедшее с момента описания данной книги, в издательстве "Триумф" вышел перевод.

03 июля 2008

Новая статья в Red Hat Magazine посвященная SELinux

В Red Hat Magazine вышла новая статья "Writing policy for confined SELinuxusers ", написанная Dan Walsh. В ней Dan на примере двух простых задач описывает как при помощи мастера создания модулей политики
в утилите system-config-selinux можно модифицировать существующий тип пользователя и как добавить новый.

В первом примере модифицируется политика для xguest, позволяя этому пользователю не только запускать браузер, но и работать с IM по протоколу
AIM/AOL. Во втором примере создается новый тип пользователя, которому разрешено пользоваться терминалом, отправлять почту и читать/писать
в /maildir.

Отличная статья для первоначального знакомства с некоторыми расширенными в Fedora 9 функциями GUI-утилиты system-config-selinux.

20 июня 2008

Основные анонсы Саммита Red Hat в Бостоне

  • Представлена новая система виртуализации http://www.ovirt.org/. Включает в себя управляющее ПО и 64Мб образ гипервизора на основе KVM. В настоящий момент проект находится в стадии бета-тестирования. Предполагается, что приблизительно к концу года проект будет готов к промышленному применению. В качестве гостевых операционных систем могут выступать как Red Hat Enterprise Linux так и Microsoft Windows. Постараюсь на следующих выходных развернуть это "безобразие" на парочке DL320. После - опишу в блоге.
  • Открыт исходный код проприетарного продукта Red Hat Network (RHN) Satellite Server. Проект которому было дано имя Spacewalk расположен на сайте http://www.redhat.com/spacewalk/. Основные функции продукта: инвентаризация систем (аппаратное и программное обеспечение); установка и обновление ПО и операционных систем на серверах и рабочих станциях; управление конфигурационными файлами; мониторинг серверов, рабочих станций и виртуальных машин. Это пожалуй сразу в "продакшен" для управления тестовыми серверами и виртуалками в лабе :) Заодно опыт для сдачи 401 экзамена накоплю :)
  • Анонсирован новый продукт под названием Red Hat Enterprise IPA, являющийся решением с открытым исходным кодом для управления доступом и учетными данными. Red Hat Enterprise IPA осуществляет централизованную аутентификацию, управление политиками доступа и аудита для компьютеров, пользователей и сервисов в Unix и Linux-окружениях. В состав решения входят ряд служб, в том числе: LDAP, Kerberos и RADIUS. Помимо этого существуют средства для интеграции с другими сервисами каталогов, включая Active Directory и утилиты для миграции с NIS. Для упрощения работы с Red Hat Enterprise IPA в состав решения входит консоль управления с web-интерфейсом. Про Red Hat Enterprise IPA я писал вчера.
  • Время полной поддержки дистрибутивов Red Hat Enterprise Linux версий 4 и 5 продлено на один год. Выпуск обновлений связанных с безопасностью продлен до 2012 и 2014 года соответственно.

19 июня 2008

Red Hat Enterprise IPA

Сегодня компания Red Hat анонсировала новый продукт под названием Red Hat Enterprise IPA, являющийся решением с открытым исходным кодом для управления доступом и учетными данными. Red Hat Enterprise IPA осуществляет централизованную аутентификацию, управление политиками доступа и аудита для компьютеров, пользователей и сервисов в Unix и Linux-окружениях. В состав решения входят ряд служб, в том числе: LDAP, Kerberos и RADIUS. Помимо этого существуют средства для интеграции с другими сервисами каталогов, включая Active Directory и утилиты для миграции с NIS. Для упрощения работы с Red Hat Enterprise IPA в состав решения входит консоль управления с web-интерфейсом.

Важным преимуществом решения является то, что оно основывается на полностью открытых стандартах и технологиях, что является отличной защитой инвестиций и позволяет избежать замыкания на продуктах конкретного вендора (vendor lock-in).

Основные особенности решения:
  • SSO при помощи единой учетной записи, используя Kerberos и LDAP (Red Hat Directory Server) для доступа к компьютерам и службам
  • Возможность использовать нескольких полностью равноправных мастер-серверов с автоматическим разрешением конфликтов
  • Синхронизация с уже существующими серверами каталогов, включая Active Directory. В следующих версиях помимо односторонней или двухсторонней синхронизации планируется возможность использовать выданные Active Directory билеты Kerberos в Kerberos-области Red Hat Enterprise IPA, а также интеграция с Red Hat Certificate System
  • Использование открытых стандартов
  • Простота установки и управления законченным решением
  • Расширение функционала за счет подключаемых модулей (plug-ins)
Функциональная схема первой версии Red Hat Enterprise IPA/Free IPA:


Требования к серверу:
  • Red Hat Enterprise Linux 5 (32 или 64-bit)
Требования к клиентам:
  • Red Hat Enterprise Linux версий 2.1, 3, 4, 5
  • HP-UX версий 11, 11i v.1 и 2
  • Sun Solaris 2.6, 7, 8, 9, 10
  • AIX 5.1, 5.2, 5.3
  • Mac OS X
  • Microsoft Windows XP/2000
В качестве основы Red Hat Enterprise IPA выступает спонсируемый компанией Red Hat проект FreeIPA. Фактически Red Hat Enterprise IPA - это FreeIPA с поддержкой от Red Hat.

Пара снимков с экрана web-интерфейса тестового сервера FreeIPA. Red Hat Enterprise IPA должен отличаться только логотипами:



FreeIPA включен в репозиторий Fedora 9. Все, что нужно для установки - это отдать команду:

yum install ipa-server

или

yum install ipa-client

При разработке версии 1 основное внимание было уделено централизованному управлению пользователями и аутентификацией. В следующих версиях будут добавлены функции централизованного управления сервисами, физическими и виртуальными машинами. Также будут реализованы централизованные политики управления sudoers и аудита.

Кроме того, Red Hat Enterprise IPA/Free IPA используется для аутентификации и авторизации в другом представленном на днях проекте Red Hat - решении для виртуализации на основе KVM - oVirt.

Ссылки:
http://www.redhat.com/promo/ipa/ - Страница Red Hat Enterprise IPA на сайте Red Hat
http://freeipa.org - Проект FreeIPA
http://www.markelov.net/articles.php?lng=ru&pg=2363 - мой обзор Fedora Directory Server, являющегося основой Red Hat Enterprise IPA и FreeIPA

17 июня 2008

Некоторые новшества в Fedora 9 с точки зрения SELinux

Месяц назад вышла девятая версия Linux-дистрибутива общего назначения Fedora. В этом посте я хотел бы продолжить разговор о системе мандатного контроля доступа SELinux и кратко рассмотреть, что же нового появилось в этой подсистеме c выходом Fedora 9. Для простоты давайте пройдемся по соответствующей секции Release Notes и разберем каждый из пунктов.

1) guest_t does not allow running setuid binaries, making network connections, or using a GUI.

Собственно, тип guest_t был добавлен еще в Fedora 8. Проведем эксперимент:

[root@fc9 ~]# semanage login -m -s guest_u andreym
[andrey@station20 ~]$ ssh andreym@fc9
[andreym@fc9 ~]$ id
uid=501(andreym) gid=501(andreym) группы=501(andreym) context=guest_u:guest_r:guest_t:s0

Отлично. Как мы видим контекст нашего пользователя - guest_u:guest_r:guest_t:s0. Теперь попробуем отдать команды:

[andreym@fc9 ~]$ ssh localhost
ssh: connect to host localhost port 22: Permission denied
[andreym@fc9 ~]$ links http://www.markelov.net

В это время в /var/log/audit/audit.log появятся примерно такие сообщения:

type=AVC msg=audit(1213692142.442:100268): avc: denied { name_connect } for pid=27564 comm="ssh" dest=22 scontext=guest_u:guest_r:guest_t:s0 tcontext=system_u:object_r:ssh_port_t:s0 tclass=tcp_socket

и

type=AVC msg=audit(1213692261.542:100271): avc: denied { name_connect } for pid=27570 comm="links" dest=80 scontext=guest_u:guest_r:guest_t:s0 tcontext=system_u:object_r:http_port_t:s0 tclass=tcp_socket

No comments :)

Также помимо отсутствия взаимодействия по сети, у нас нет возможности запустить какие-либо исполнимые файлы из домашней директории, директории /tmp или любые исполнимые файлы с выставленным битом setuid. Пользователь andreym может зайти на хост fc9 c текстовой консоли, через ssh, rshd, rlogind или telnet. Однако, он не сможет использовать X-Window.

За guest_u у нас отвечает модуль:

[root@fc9 ~]# semodule -l | grep ^guest
guest 1.0.1

Для чего можно использовать такого пользователя? Например, хостинг-провайдер таким образом разрешает подключаться к web-серверу и править содержимое public_html. Или разумно задействовать guest_u, если вам необходимо предоставить доступ своим пользователям к какому-либо локальному приложению на сервере.

2) xguest_t disallows network access except for HTTP via a Web browser, and no setuid binaries.

С xguest_t мы также уже успели поэкспериментировать в Fedora 8. Dan Walsh в свое время подробно расписал использование этого типа SELinux в своем блоге http://danwalsh.livejournal.com/11913.html. Фактически, пользователь xguest идеален для создания «киоска» в общедоступном месте. Xguest может зайти локально в X-Window и запустить браузер. Никакие другие сетевые коммуникации ему не разрешены.
Если SELinux включен, то мы можем разрешить пользователю xguest вход без пароля. Для обеспечения этого был написан специальный модуль PAM - /lib/security/pam_selinux_permit.so. В свою очередь /lib/security/pam_namespace.so создает (и удаляет при выходе из системы) временные домашнюю директорию и директорию /tmp для пользователя xguest. Таким образом, между двумя сеансами работы xguest на машине ничего не сохраняется. Да, и пока мы работаем из-под xguest, никаких setuid-бинарников.
Попробовать работу с режимом «киоска» можно установив пакет:

[root@fc9 ~]# yum install xguest

Соответствующая документация находится в /usr/share/doc/xguest-*

3) user_t is ideal for office users: prevents becoming root via setuid applications.

User_t — тип SELinux, предназначенный для работы непривилегированных пользователей, выполняющих обычные «офисные» задачи. В отличие от xguest, этот тип используется для «нормальных» учетных записей и взаимодействие по сети для таких пользователей не ограниченно 80 портом.

[root@fc9 ~]# semanage login -m -s user_u andreym

Безусловно, можно воспользоваться и GUI-утилитой system-config-selinux:


Также разумным вариантом можно считать использование по умолчанию user_u вместо __default__:

[root@fc9 ~]# semanage login -m -s user_u __default__

Кроме того, пользователи не могут запускать исполнимые файлы с выставленным битом setuid и обращаться к ряду системных файлов, к которым традиционно предоставляются стандартные unix-права на чтение. По умолчанию разрешено запускать исполнимые файлы из /tmp и домашней директории:

[root@fc9 ~]# getsebool allow_user_exec_content
allow_user_exec_content --> on

Установив этот переключатель в 0, вы запретите исполнение этих файлов.

4) staff_t is same as user_t, except that root access via sudo is allowed.

Staff_t - то же самое что и user_t, однако, он может работать с правами root через sudo. Не забудьте поправить файлик sudoers. Как и многие другие базовые утилиты, sudo поддерживает работу с SELinux: man sudoers.

5) unconfined_t provides full access, the same as when not using SELinux.
Этот пункт, думаю, комментировать не нужно :)

Также обратите внимание на расширенный по сравнению с Fedora 8 список модулей SELinux:

[root@fc9 ~]# semodule -l

и включенную в Fedora среду разработки SELinux Policy IDE.

Ссылки:

1. http://docs.fedoraproject.org/release-notes/f9/en_US/sn-Security.html
2. http://www.redhatmagazine.com/2008/04/17/fedora-9-and-summit-preview-confining-the-user-with-selinux/
3. Также вы можете ознакомиться с другими статьями посвященными SELinux в моем блоге http://markelov.blogspot.com.