29 июня 2007

Часть 1. SELinux. Максимальный уровень защиты – бесплатно

Пару недель назад в новостях промелькнуло сообщение о том, что Red Hat Enterprise Linux на серверах IBM получил уровень сертификации по безопасности EAL4 Augmented with ALC_FLR.3. Это наивысший уровень сертификации, который когда-либо достигался операционной системой. Кроме RHEL5 эта планка достигнута лишь Trusted Solaris. Такой уровень как правило не нужен при внедрениях в коммерческих организациях, но он открыл дорогу для участия в проектах связанных с правительственными и военными организациями США. До этого другие дистрибутивы Linux уже имели подтвержденный уровень доверия EAL4, но без сертификации Labeled Security Protection Profile (LSPP).

Что важно нам, «простым смертным», - нет необходимости платить никому ни копейки для того, чтобы получить на своей машине столь же высокий уровень защиты, какой требуется в военных ведомствах. Как известно, Enterprise Linux строится на кодовой базе Open Source проекта Fedora (прежнее название Fedora Core). Забавно, что в RHEL5 Server более 300 пакетов даже не пересобирались специально под Enterprise Linux – это видно по тегу fc6 в имени пакета (в RHEL5 тег - el5). Так что в ряде случаев общий не только код, но и сами «бинарники». Fedora же совершенно бесплатно доступна для скачивания. Сравнение Enterprise Linux и Fedora приведено здесь.

Итак, каким же образом обеспечивается соответствие столь высокому критерию безопасности? В немалой степени это стало возможным благодаря SELinux (Security-Enhanced Linux) - реализации системы мандатного контроля доступа (MAC), которая может работать (и работает по умолчанию) параллельно с классической дискреционной системой контроля доступа (DAC).

Оставаясь в рамках DAC, мы имеем фундаментальное ограничение в плане разделения доступа пользователей к ресурсам – доступ к ресурсам основывается на правах доступа пользователя. Это классические права rwx на трех уровнях – владелец, группа-владелец и остальные. Плюс к этому, POSIX ACL, которые лишь расширяют число уровней, на которых можно определить права, но не более.

Таким образом, любое приложение, запущенное с правами usera, теоретически может сделать все что угодно со всеми данными, к которым имеет доступ usera. И не важно, например, что данное приложение – это почтовая программа, которой нужно иметь доступ только к письмам usera. Эта программа будет иметь доступ и, например, к видеофайлам usera, и к картинкам usera. И мало того, что сама программа имеет доступ, но она же может и все эти данные сделать доступными остальным. Все становиться гораздо хуже, когда usera имеет UID=0 (то есть это root). Мы утыкаемся в классическую «проблему суперпользователя». В данном случае мы получаем всего лишь два уровня доступа: root и обыкновенные пользователи. Иными словами, становиться невозможным реализовать доступ с использованием минимально необходимых привилегий.

В MAC же права доступа определяются самой системой при помощи специально определенных политик. Если же говорить конкретно о рассматриваемой реализации – SELinux, то такие политики работают на уровне системных вызовов и применяются самим ядром (но можно реализовать и на уровне приложения). SELinux изначально был разработан АНБ США, а в настоящий момент является Open Source-проектом и входит в стандартное «ванильное» ядро Linux. Коммерческая поддержка доступна уже более двух лет в составе RHEL4.

SELinux действует после классической модели безопасности Unix. Иными словами, через SELinux нельзя разрешить то, что запрещено через права доступа пользователей/групп. Политики описываются при помощи специального гибкого языка описания правил доступа. В большинстве случаев правила SELinux «прозрачны» для приложений, и не требуется никакой их модификации. В состав Fedora/RHEL входят готовые политики, в которых права могут определяться на основе совпадения типов процесса (субъекта) и файла (объекта) – это основной механизм SELinux. Две других формы контроля доступа – доступ на основе ролей и на основе многоуровневой системы безопасности (например, ДСП, секретно, совершенно секретно).

Самый простой для работы и поддержки с точки зрения ИТ службы предприятия тип политики - так называемая «целевая» политика, разработанная в рамках проекта Fedora. Эта политика устанавливается и включается по умолчанию и в RHEL4, и в RHEL5 и является единственной, поддерживаемой Red Hat в составе стандартных контрактов поддержки, политикой. В рамках политики описано более 200 процессов, которые могут выполняться в RHEL5 (в RHEL4 описано намного меньше, в том числе httpd,squid,pegasus,Mailman,Named, dhcpd,mysqld, nscd,ntpd,portmap,postgresql,snmpd,syslogd,winbindd). Все, что не описано «целевой» политикой, выполняется в домене (с типом) unconfined_t. Процессы, работающие в этом домене, не защищаются SELinux. Таким образом, все сторонние пользовательские приложения будут без всяких проблем работать в системе с «целевой» политикой в рамках классических разрешений DAC.

Кроме «целевой» политики, в состав дистрибутива входит политика с многоуровневой моделью безопасности (с поддержкой модели Bell LaPadula). Коммерческая поддержка этой политики доступна в RHEL5 со специальной лицензией и только для серверных систем с ограниченным числом установленных пакетов и без X Window System. Именно системы с данной политикой теперь имеют сертификацию EAL4+/LSPP.

Третий вариант политики - «строгий». Тут действует принцип «что не разрешено, то запрещено». Политика основывается на Reference Policy от компании Tresys. Данная политика не имеет коммерческой поддержки в RHEL.

Графическая утилита настройки system-config-selinux

Fedora и RHEL, безусловно, не единственные дистрибутивы, поддерживающие SELinux. Достаточно вспомнить Debian и Hardened Gentoo. Но, на мой взгляд, именно в Fedora/RHEL воспользоваться преимуществом мандатного контроля доступа наиболее просто «из коробки». Для удобства управления в состав дистрибутива входят графические утилиты управления и мониторинга от Red Hat и Tresys.

В дальнейших постах блога я предполагаю более подробно коснуться SELinux и привести ссылки на ресурсы в Интернет.

Update. Продолжение разговора о SELinux:
Часть 2.1. SELinux. MLS и MCS: что с чем едят. MLS.
Часть 2.2. SELinux. MLS и MCS: что с чем едят. MCS

05 июня 2007

Windows XP глазами пользователя Linux :)

Тут «пробегАли» достаточно давно появившиеся вещи типа «Анти-GPL» и т.д. Наверно, будет не очень зазорно запостить «баян» про впечатления от Windows XP, человека, ранее работавшего под Linux. Автор утерян – найдено на просторах Интернет. Конечно, многие вещи слишком преувеличены (все-таки это, скорее всего, в раздел «Юмор»). Да и XP, видимо, рассматривается еще без SP, судя по замечаниям про брандмауэр..

«Я устанавливаю windows ХР, как мне установить мой домашний каталог на отдельный раздел, чтоб в случае чего не потерять мои файлы? Читать документацию и создавать файл unattended? а что это собственно такое? и в чем мне его создавать?

Мне нравится reiserfs, но кроме fat и ntfs, других файловых систем не предлагается, но мне они не нравятся, reiser не требует дефрагментации, быстрее и лучше работает с маленькими файлами, у меня их будет много, как мне поставить ХР на reiser ? Никак?

Машина будет работать в офисе, с документами, где нет интернета, как мне отменить установку всего, связанного с сетью и интернетом? При установке вообще нельзя ничего выбрать!
А в чем мне тексты набирать? Офисный пакет в дистрибутив тоже не входит.. так он дороже чем windows стоит!!! Да, попал я... И картинки подправить не в чем... Ладно, антивирус купил, теперь офис покупать... Ворованное нельзя - мигом арестуют, у нас контора на видном месте. Опенофис поставить, что ли? ....»

Ну и так далее...
Один из «оригиналов» тут.
Еще раз. Это не сравнение. Это субъективное. Это баян. Это юмор.
Приятного чтения! А я пойду 2277 в памяти освежать – вечером нужно заниматься пропагандой продуктов Microsoft :)

10 мая 2007

Слайды учебного курса по Fedora Core Linux - 2

Работа над курсом по ОС Linux движется... Помимо версии в pdf, теперь доступна и версия слайдов в html, для просмотра непосредственно с сайта. Сейчас там около 250 слайдов. Все презентации будут выложены к 17 июня. Общая продолжительность курса – 100 академических часов. Новые слайды будут выкладываться 2-3 раза в неделю (как только вернусь из отпуска).

06 мая 2007

«Всадник без головы» вооруженный N800 (Headless Install)

Fedora Core на Nokia N800? :)

Нет.
Всего лишь «безголовая» установка по Wi-Fi через VNC.
Управление по VNC – это стандартная возможность программы установки Anaconda в Fedora/RHEL. В сочетании со сценариями автоматической установки Kickstart очень упрощает жизнь администратора.


Подробности можно поискать в документации на Anaconda или в статье из Red Hat Magazine. Мой перевод этой статьи - тут.

01 мая 2007

«Linux в кармане» - Nokia N800

Впечатления после пары часов использования...

В пятницу в фирменном салоне Nokia на Тверской появились наверно первые в России официально продающиеся «интернет-планшеты» Nokia N800, работающие на ОС Linux. Одним из счастливых обладателей этого чуда и стал ваш покорный слуга. Очень порадовала цена устройства в сравнении с моим предыдущим Linux-гаджетом Sharp Zaurus SL-C860. Кстати, в отличие от QT в Zaurus, в N800 используется GTK+. Из ТТХ, доступных на официальном сайте Nokia, можно выделить: небольшой вес устройства (206 грамм), экран (800 на 400 при 65k цветов), Bluetooth и Wi-Fi, камера для видеоконференций, а также возможность расширения памяти двумя SD-карами до 2Гб каждая.

Уделить устройству кое-какое время получилось только сегодня.

Итак, «из коробки» доступны:

- Opera 8 + Flash 7
- Почтовая программа на основе Sylpheed. Кстати, этим почтовиком я как основным пользуюсь на «большом брате» уже около двух лет, отказавшись от «тормозного» Evolution. Впрочем, за два года, возможно, evolution в этом плане изменился в лучшую сторону.
- RSS-читалка
- Google Talk. Поддержку Skype обещают к лету.
- Медиа-плеер (аудио, видео, Интернет-радио).
- Просмотр PDF
- Часы, калькулятор и прочая мелочь...



Есть встроенное FM-радио, но для него нужно установить отдельную программу, а в качестве антенны используются наушники. Я же предпочел воспользоваться Интернет-радио, и буквально уже через минуту слушал «Наше Радио».

Основной сайт для пользователей N770/N800 – это maemo.org. Оттуда можно скачать среду разработки приложений + среду исполнения для того, чтобы собирать и тестировать программы на ПК. Вся установка заняла не более получаса. Правда, потребовалось временно перевести на «большом брате» SELinux в permissive mode. Для тех же, «кто еще кипятит», есть образ виртуальной машины.

Также на maemo.org расположены различные руководства, блоги, и, конечно, каталог программ.

Из программ, которые я успел установить за недолгое время общения с устройством, могу назвать:

X-Terminal
MPlayer – после чего получил поддержку проигрывания DivX-фильмов
FM-Radio - необходимо замечание, что для этой программы не создался ярлык в меню, и она доступна через установку widget на стартовый экран
VNC Viewer – пока что мне его хватило. Собранного под N800 RDP-клиента еще не искал.
Nethack – Rouge-like игра



Из того, что пока не нравится – неудобное переключение языка в виртуальной клавиатуре. Возможно, просто не разобрался.

До Лондона постараюсь сделать в блоге подборку наиболее полезных ссылок и "must have" приложений.

23 апреля 2007

Слайды учебного курса по Fedora Core Linux

У одного из заказчиков читаю авторский курс по системному администрированию Linux, расчитанный на 100 академических часов. "Обкатывается" курс на двух группах по восемь человек.Выложил первые 110 слайдов презентаций полутора первых дней занятий под лицензией Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License. К июню должен накопиться и будет доступен весь комплект - примерно 800-900 слайдов. Курс примерно соответствует LPI 2, но с ориентацией на Fedora. Поэтому "соответствие" действительно примерное.

Скачать слайды можно здесь в разделе "Презентации учебного курса по Linux"

19 апреля 2007

Статистика по уязвимостям в RHEL 4 за два года

Вчера Марк Кокс (Director of the Red Hat Security Response Team) опубликовал в Red Hat Magazine статью, посвященную обнаруженным уязвимостям за два года, прошедших с выпуска Red Hat Enterprise Linux. Некоторые выдержки из статьи.

За два года во всех пакетах RHEL 4 AS было 5 критических уязвимостей, не связанных с браузером. Из них три связаны с IM. Оставшиеся две – это sendmail и модуль “Апача” mod_auth_pgsql. Обе уязвимости были устранены в течение одного дня. Если выбиралась установка пакетов “по умолчанию”, общее число критических уязвимостей за два года – три штуки. По всем уязвимостям со всеми уровнями критичности процент выпуска “заплатки” в течение дня обнаружения уязвимости – 75%. Сто процентов всех критических уязвимостей устранялось в течении двух календарных дней с момента появления информации об этих уязвимостях в открытых источниках.