Role Based Access Control (RBAC) в Solaris 9::Журнал СА 5.2004
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6230
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6936
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4224
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3013
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3809
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3826
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6322
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3173
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3465
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7282
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10647
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12369
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14002
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9130
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7081
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5391
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4619
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3429
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3160
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3405
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3029
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Role Based Access Control (RBAC) в Solaris 9

Архив номеров / 2004 / Выпуск №5 (18) / Role Based Access Control (RBAC) в Solaris 9

Рубрика: Безопасность /  Разграничение доступа

 ДМИТРИЙ СЕЛЕЗНЁВ

Role based access control (RBAC) в Solaris 9
Введение в RBAC

Не секрет, что в классических UNIX-системах суперпользователь root имеет все полномочия по управлению системой. С другой стороны, возможности обычного пользователя ограничены домашним каталогом и рядом пользовательских приложений. Однако в условиях чрезвычайно возросшей мощности серверных UNIX-систем, а следовательно, увеличения количества обслуживаемых пользователей и решаемых задач, усложнения периферии и современных требований к безопасности, существует необходимость разделения административных полномочий на нескольких пользователей. В современных UNIX-системах эта задача решается тем или иным способом. Примером может служить всем известная технология sudo.

Рассмотрим, какие средства в этом контексте предоставляет нам ОС Solaris 9.

Role based access control (в дальнейшем RBAC) является чрезвычайно гибким и мощным антиподом упомянутой классической радикальной двухуровневой схеме. RBAC позволяет делегировать определенные возможности суперпользователя группам пользователей. Это позволяет им выполнять конкретные административные задачи. Например, управлять печатью, операциями резервного копирования и т. д.

Основная идея RBAC заключается в предоставлении определенных наборов прав суперпользователя группам пользователей. Такой набор прав и называется ролью. Отдельные пользователи могут быть наделены несколькими ролями. Однако роль не может ссылаться на другую роль.

По отношению к использованию RBAC, стратегии управления системой можно условно разделить на следующие категории:

  • Без использования RBAC. Это уже упомянутая классическая двухуровневая модель: все операции по администрированию системы выполняются суперпользователем (root).
  • Использование роли root. Бюджет суперпользователя реализован в виде роли. Пользователи, принадлежащие к этой роли, входят в систему под своими именами, а уже после авторизуют себя в роли, выполняя su root.
  • Используется одна роль на основе профайла Primary Administrator. Практически аналогична второму пункту.
  • Используются роли на основе предопределенных в Solaris Operating Environment (далее SOE) типовых профайлах, таких как Primary Administrator, System Administrator, Operator и т. д.
  • Специальные пользовательские роли создаются для решения отдельных задач, исходя из конкретной стратегии администрирования системы. Эти роли могут основываться на наборах как предопределенных профайлов, так и специально созданных.

В зависимости от конкретных потребностей организации выбирается та или иная стратегия использования технологии RBAC. Технология RBAC строится на двух базовых понятиях: профайл прав (rights profile) и авторизация (authorization)

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

Как уже было отмечено выше, SOE включает в себя набор предопределенных профайлов прав, которые, по мнению разработчиков Solaris, отвечают конкретным типовым задачам управления системой. Вот лишь некоторые из них: Basic Solaris User, Operator, Media Backup, User Security, FTP Management. Помимо предопределенных профайлов прав, можно создавать собственные профайлы.

Авторизация – определенное право доступа к той или иной компоненте системы, которым может быть пользователь или роль. Существуют целые классы авторизаций. Для наглядности приведу пример:

solaris.admin.usermgr.read

solaris.admin.usermgr.write

solaris.admin.usermgr.passwd

Как несложно догадаться, каждая из трех приведенных авторизаций отвечает за управление пользовательскими бюджетами: на это указывает префикс solaris.admin.usermgr. Первая позволяет читать информацию о пользовательских бюджетах, вторая – их модифицировать, а третья разрешает изменение пользовательских паролей.

Если авторизация заканчивается суффиксом grant, то она позволяет делегировать права на все операции префикса.

Авторизации локальной системы всегда начинаются со слова «solaris», авторизации, предоставляемые другими системами, начинаются с реверсивной записи DNS-имени хоста. Вообще говоря, помимо определенных в SOE авторизаций, новые локальные авторизации создавать нельзя.

Реализация RBAC в Solaris 9 базируется на 2 + 4 + 1 = 7 базах данных. Почему 2 + 4 + 1?

Две первые базы – это стандартные для UNIX-систем файлы /etc/passwd и /etc/shadow. Назначение их известно, их структуру мы рассматривать здесь не будем. Я лишь продемонстрирую место этих файлов в технологии RBAC.

Следующие четыре – это RBAC-специфические базы. Собственно, они и есть RBAC. Их-то мы и рассмотрим подробно.

Первый из четырех – файл /etc/user_attr. Этот файл содержит объявления ролей и пользователей с их профайлами прав и авторизациями, а также определяет принадлежность пользователей ролям. Каждая запись (строка) этого файла соответствует одноименной записи в файлах /etc/passwd и /etc/shadow. В определенном смысле user_attr является расширением базы пользовательских бюджетов /etc/passwd.

Структура записей файла такова:

user/role name:нечто1:нечто2:нечто3:список атрибутов

Каждое поле отделяется от другого двоеточием. Первое поле – это имя пользователя или роли, второе, третье и четвертое поля («нечто») в настоящее время пусты, они зарезервированы для возможного последующего использования в будущих версиях Solaris. В последующих описаниях форматов баз я буду эти поля просто оставлять пустыми. Последнее поле содержит атрибуты, разделенные точкой с запятой. Атрибут состоит из названия типа атрибута, знака «=» и соответствующих ему значений, разделенных запятой.

Атрибуты бывают четырех типов:

  • type – указывает тип записи,
  • normal – соответствует обычному пользователю,
  • role – роли,
  • auths – содержит перечни авторизаций, разделенные запятой.

Авторизации в качестве суффикса могут содержать символ * для обозначения всех операций, определяемых префиксом; profiles содержит перечень профайлов прав, разделенных запятой; roles содержит перечень ролей, к которым относится пользователь. Разумеется, этот атрибут применим только для записей с типом normal, т.е. для записи пользователя, поскольку, как это было сказано выше, нельзя задавать роль на основе других ролей. В качестве примера приведу фрагмент файла /etc/user_attr моей системы:

# Copyright (c) 1999-2001 by Sun Microsystems, Inc.

# All rights reserved.

#

# /etc/user_attr

#

# user attributes. see user_attr(4)

#

#pragma ident    "@(#)user_attr      1.5    01/12/11 SMI"

#

root::::auths=solaris.*,solaris.grant;profiles=All

lp::::profiles=Printer Management

adm::::profiles=Log Management

master::::type=role;profiles=Primary Administrator

team::::type=role;profiles=Device Management,Media Backup,Media Restore,Log Management

ivanov::::type=normal;roles=master

petrov::::type=normal;roles=team

Запись master определяет основную административную роль на основе профайла Primary Administrator, запись ivanov определяет пользователя и его принадлежность роли master. Обратите внимание на то, что роль team построена на базе сразу четырех профайлов прав. Как следует из названия профайлов, пользователи, принадлежащие к роли team, могут управлять сменными накопителями, производить операции резервного копирования и восстановления данных и управлять системой ведения log-файлов.

Второй из четырех – файл /etc/security/prof_attr. Файл является базой данных профайлов прав. Приведу структуру файла:

profile_name:::описание:атрибуты

Атрибуты записей в этом файле бывают двух типов:

  • help – задает файл подсказки в формате html,
  • auths – содержит перечни авторизаций, разделенные запятой.

Авторизации в качестве суффикса могут содержать символ * для обозначения всех операций, определяемых префиксом; profiles содержит перечень профайлов прав, разделенных запятой. Вот фрагмент файла prof_attr:

Device Management:::Control Access to Removable Media:auths=solaris.device.*,solaris.admin.serialmgr.*;      help=RtDeviceMngmnt.htmlAll:::Execute any command as the user or role:help=RtAll.html

Как мы видим, роль team ссылается на профайлы прав, определенные в обсуждаемом файле. Заметим, что эта база данных позволяет также определять профайлы прав на основе ранее описанных профайлов.

Третий из четырех – файл /etc/security/auth_attr. База auth_attr описывает авторизации. Из всех RBAC-баз данных это единственная база, которую нельзя редактировать вручную, т.е. нельзя самостоятельно определять авторизации. Формат файла auth_attr следующий:

auth_name:::краткое описание:подробное описание:атрибуты

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

solaris.device.:::

Device Allocation::help=DevAllocHeader.htmlsolaris.device.grant:::Delegate

Device Administration::help=DevGrant.html.

Обратите внимание на первую из приведенных строк: имя авторизации состоит из префикса и заканчивается точкой. Такие записи служат для объявления оглавления группы авторизаций одноименного префикса в программах с графическим интерфейсом.

И наконец, четвертый файл – /etc/security/exec_attr. Эта база определяет соответствие профайлов прав конкретным командам и атрибутам их выполнения. Структура файла такова:

prof_name:policy:тип:::команда:атрибуты

В текущей реализации RBAC поле policy может принимать единственное значение – suser (суперпользователь), а тип может быть только cmd (команда). Под командой подразумевается полный путь к исполняемому файлу или shell-скрипту; если в поле команды стоит символ *, то это означает любую команду. Атрибуты, как и раньше, разделяются точкой с запятой и могут быть четырех типов:

  • uid – идентификатор пользователя,
  • euid – эффективный идентификатор пользователя,
  • gid – идентификатор группы,
  • egid – эффективный идентификатор группы.

Последний из рассматриваемых файлов (помните, +1) /etc/security/policy.conf. Он задает авторизации и профайлы прав, предоставляемые пользователю по умолчанию. Как видно из примера, файл содержит две записи:

# Copyright 1999-2002 Sun Microsystems, Inc.

# All rights reserved.

# Use is subject to license terms.

AUTHS_GRANTED=solaris.device.cdrw

PROFS_GRANTED=Basic Solaris User

Разумеется, значения этих двух полей должны быть определены в файлах auth_attr и prof_attr.

Взаимодействие компонентов RBAC

Рисунок 1. Компоненты RBAC и взаимодействие между ними

Рисунок 1. Компоненты RBAC и взаимодействие между ними

Поясню связи компонентов RBAC комментариями.

Прежде всего напомню, что каждой записи в user_attr соответствуют одноименные записи в файлах /etc/passwd и /etc/shadow.

Стоит обратить внимание на то, что в строках ролей файла /etc/passwd в поле командного интерпретатора стоит не обычный пользовательский shell (bash, csh, sh), а так называемый «профайловый» shell (profile shell) с префиксом pf:

...team:x:102:1:Operators" Team:/export/home/team:/bin/pfshivanov:x:103:1:V. Ivanov:/export/home/ivanov:/usr/bin/bash...

Когда пользователь авторизуется в роли, то запускается соответствующий profile shell, и в дальнейшем все команды выполняются при помощи pfexec с текущими полномочиями, которые определены в роли.

Записи в /etc/user_attr, обозначающие пользователей, могут ссылаться на описанные в нем же роли.

Атрибуты auths и profiles ссылаются соответственно на авторизации (файл /etc/security/auth_attr) и профайлы прав (файл /etc/security/prof_attr).

Записи профайлов прав в файле /etc/security/prof_attr ссылаются на:

  • другие профайлы, определенные в этом же файле;
  • авторизации, описанные в файле auth_attr;
  • одну или несколько строк в файле /etc/security/exec_attr, которая и начинается с имени данного профайла.

Управление RBAC

Операционное окружение Solaris (SOE) предусматривает три способа управления ролевыми бюджетами. Самым «цивилизованным» способом является управление при помощи утилиты с графическим интерфейсом Solaris Management Console (smc).

На рис. 2 показано окно Solaris Management Console. Я не думаю, что стоит подробно рассказывать об управлении ролями и пользовательскими бюджетами при помощи этой утилиты: человек, знакомый с графическими оболочками и понимающий концепции и структуру RBAC, без труда разберется. Замечу лишь, что для управления ролями и пользовательскими бюджетами, разумеется, необходимы соответствующие права. Альтернативой использования утилиты smc является набор консольных утилит. Перечислим их и приведем их назначение.

Рисунок 2. Solaris Management Console

Рисунок 2. Solaris Management Console

Информационные команды:

  • auths – выводит перечень авторизаций, которыми обладает пользователь(и). Выполнение этой команды без параметров выводит список авторизаций текущего пользователя.
  • profiles – выводит перечень профайлов, которыми обладает пользователь(и).
  • roles – выводит имена ролей, к которым принадлежит пользователь(и).

Команды useradd, userdel, usermod и roleadd, roledel, rolemod позволяют добавлять, удалять и изменять пользователей и роли соответственно.

Утилита smrole управляет ролями и позволяет добавлять и удалять пользователя в роль. smprofile и smexec управляют содержимым баз prof_attr и exec_attr.

Утилиты, название которых начинается с sm, требуют запущенной Solaris Management Console. Подробная информация об этих командах и их опциях содержится в man-страницах (1M), мы же ограничимся несколькими простыми примерами использования. Вернемся к рассмотренному нами фрагменту файла user_attr:

...master::::type=role;profiles=Primary Administratorivanov::::type=normal;roles=masterteam::::

    ype=role;profiles=Device Management,Media Backup,Media Restore,Log Managementpetrov::::type=normal;roles=team...

Приведу здесь команды, при помощи которых созданы роли master и team, пользователи ivanov и petrov, принадлежающие к соответствующей роли. Создаем роль master:

# roleadd -m -d /export/home/master -c "Main Admins" -P "Primary Administrator" master

В опции -d указывается домашний каталог роли, ключ -m разрешает автоматическое создание каталога, если таковой не существует. Опция -c задает комментарий, а -P – перечень профайлов прав, на которых должна базироваться роль.

Создаем роль team:

# roleadd -m -d /export/home/team -c "Operators" team" -P "Device Management,Media Backup,Media Restore,Log Management" team

Обратите внимание на то, что при перечислении профайлов прав между запятой и именем следующего профайла пробелов быть не должно. Разумеется, задавать можно только существующие профайлы, определенные в файле /etc/security/prof_attr. Добавляем пользователя ivanov и определяем его принадлежность роли master:

master:#useradd -m -d /export/home/ivanov -c "V. Ivanov" -s /usr/bin/bash -R master

Добавляем пользователя petrov и определяем его принадлежность роли team:

#useradd -m -d /export/home/petrov -c "V. Ivanov" -s /usr/bin/bash -R petrov

Полагаю, что две последние команды не нуждаются в комментариях.

Помимо двух рассмотренных подходов в управлении ролями есть и третий: прямое редактирование баз данных RBAC (как уже сказано, кроме файла /etc/security/auth_attr), но этот подход не рекомендован разработчиками из Sun Microsystems по причине «возможных синтаксических ошибок».

Список используемых источников:

  1. System Administrator Guide: Security Services, Sun Microsystems, Inc.
  2. Advanced System administration for the Solaris 9 Operating Environment, Sun Microsystems, Inc.
  3. System Administration Guide: Basic Administration, Sun Microsystems, Inc.
  4. man pages section 1M: System Administration Commands, Sun Microsystems, Inc.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru