Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение. |
Ролевое управление доступом (RBAC). Вопросы безопасности
Полномочия
Полномочие (в предыдущем издании этой книги мы использовали термин "авторизация", но "полномочие" – более понятный термин, да и по-русски так лучше) представляет собой право, включенное в профиль или данное пользователю, выполнять определенные действия в системе. В Solaris доступны только предопределенные полномочия, добавить новое нельзя. Список полномочий хранится в файле /etc/security/auth_attr:
# # Copyright (c) 2001 by Sun Microsystems, Inc. All rights reserved. # # /etc/security/auth_attr # # authorization attributes. see auth_attr(4) # #pragma ident "@(#)auth_attr 1.1 01/03/19 SMI" # solaris.admin.volmgr.:::Logical Volume Manager:: solaris.admin.volmgr.write:::Manage Logical Volumes::help=AuthVolmgrWrite.html solaris.admin.volmgr.read:::View Logical Volumes::help=AuthVolmgrRead.html solaris.admin.printer.modify:::Update Printer Information::help=AuthPrinter Modify.html solaris.admin.serialmgr.read:::View Serial Ports::help=AuthSerialmgrRead.html solaris.admin.logsvc.:::Log Viewer::help=AuthLogsvcHeader.html solaris.admin.procmgr.user:::Manage Owned Processes::help=AuthProcmgrUser.html solaris.admin.usermgr.read:::View Users and Roles::help=AuthUsermgrRead.html solaris.profmgr.:::Rights::help=ProfmgrHeader.html solaris.admin.procmgr.admin:::Manage All Processes::help=AuthProcmgrAdmin.html solaris.admin.logsvc.write:::Manage Log Settings::help=AuthLogsvcWrite.html solaris.admin.serialmgr.:::Serial Port Manager::help=AuthSerialmgrHeader.html solaris.admin.fsmgr.write:::Mount and Share Files::help=AuthFsmgrWrite.html solaris.admin.dcmgr.read:::View OS Services, Patches and Diskless Clients:: help=AuthDcmgrRead.html solaris.device.cdrw:::CD-R/RW Recording Authorizations::help=DevCDRW.html solaris.admin.usermgr.:::User Accounts::help=AuthUsermgrHeader.html solaris.role.delegate:::Assign Owned Roles::help=AuthRoleDelegate.html solaris.admin.patchmgr.read:::View Patches::help=AuthPatchmgrRead.html solaris.project.read:::View Projects::help=AuthProjmgrRead.html solaris.profmgr.write:::Manage Rights::help=AuthProfmgrWrite.html solaris.system.shutdown:::Shutdown the System::help=SysShutdown.html solaris.device.grant:::Delegate Device Administration::help=DevGrant.html solaris.:::All Solaris Authorizations::help=AllSolAuthsHeader.html solaris.project.write:::Manage Projects::help=AuthProjmgrWrite.html solaris.admin.serialmgr.modify:::Manage Serial Ports::help=AuthSerialmgrModify.html solaris.admin.patchmgr.:::Patch Manager:: solaris.admin.diskmgr.write:::Manage Disks::help=AuthDiskmgrWrite.html solaris.device.revoke:::Revoke or Reclaim Device::help=DevRevoke.html solaris.jobs.grant:::Delegate Cron & At Administration::help=JobsGrant.html solaris.dhcpmgr.write:::Modify DHCP Service Configuration::help=DhcpmgrWrite. html solaris.network.hosts.write:::Manage Computers and Networks::help=Network HostsWrite.html solaris.mail.mailq:::Mail Queue::help=MailQueue.html solaris.admin.dcmgr.clients:::Manage Diskless Clients::help=AuthDcmgrClients.html solaris.project.:::Solaris Projects:: solaris.admin.logsvc.read:::View Log Files::help=AuthLogsvcRead.html solaris.admin.fsmgr.read:::View Mounts and Shares::help=AuthFsmgrRead.html solaris.admin.fsmgr.:::Mounts and Shares::help=AuthFsmgrHeader.html solaris.jobs.user:::Manage Owned Jobs::help=AuthJobsUser.html solaris.role.assign:::Assign All Roles::help=AuthRoleAssign.html solaris.network.hosts.:::Computers and Networks::help=NetworkHostsHeader.html solaris.admin.usermgr.write:::Manage Users::help=AuthUsermgrWrite.html solaris.compsys.read:::View Computer System Information::help=AuthCompSys Read.html solaris.audit.:::Audit Management::help=AuditHeader.html solaris.profmgr.read:::View Rights::help=AuthProfmgrRead.html solaris.device.config:::Configure Device Attributes::help=DevConfig.html solaris.profmgr.delegate:::Assign Owned Rights::help=AuthProfmgrDelegate.html solaris.admin.printer.delete:::Delete Printer Information::help=AuthPrinter Delete.html solaris.admin.dcmgr.admin:::Manage OS Services and Patches::help=AuthDcmgrAdmin.html solaris.admin.printer.:::Printer Information::help=AuthPrinterHeader.html solaris.admin.diskmgr.:::Disk Manager::help=AuthDiskmgrHeader.html solaris.role.write:::Manage Roles::help=AuthRoleWrite.html solaris.role.:::Roles::help=RoleHeader.html solaris.admin.patchmgr.write:::Add and Remove Patches::help=AuthPatchmgrWrite.html solaris.mail.:::Mail::help=MailHeader.html solaris.admin.procmgr.:::Process Manager::help=AuthProcmgrHeader.html solaris.device.allocate:::Allocate Device::help=DevAllocate.html solaris.system.:::Machine Administration::help=SysHeader.html solaris.compsys.write:::Manage Computer System Information::help=AuthCompSys Write.html solaris.compsys.:::Computer System Information::help=AuthCompSysHeader.html solaris.network.hosts.read:::View Computers and Networks::help=NetworkHostsRead.html solaris.device.:::Device Allocation::help=DevAllocHeader.html solaris.snmp.:::SNMP Management::help=AuthSnmpHeader.html solaris.admin.dcmgr.:::OS Server Manager::help=AuthDcmgrHeader.html solaris.dhcpmgr.:::DHCP Service Management::help=DhcpmgrHeader.html solaris.login.enable:::Enable Logins::help=LoginEnable.html solaris.admin.logsvc.purge:::Remove Log Files::help=AuthLogsvcPurge.html solaris.audit.read:::Read Audit Trail::help=AuditRead.html solaris.login.remote:::Remote Login::help=LoginRemote.html solaris.system.date:::Set Date & Time::help=SysDate.html solaris.admin.serialmgr.delete:::Delete Serial Ports::help=AuthSerialmgrDelete.html solaris.audit.config:::Configure Auditing::help=AuditConfig.html solaris.jobs.admin:::Manage All Jobs::help=AuthJobsAdmin.html solaris.grant:::Grant All Solaris Authorizations::help=PriAdmin.html solaris.jobs.:::Job Scheduler::help=JobHeader.html solaris.profmgr.execattr.write:::Manage Commands::help=AuthProfmgrExecattr Write.html solaris.admin.usermgr.pswd:::Change Password::help=AuthUserMgrPswd.html solaris.login.:::Login Control::help=LoginHeader.html solaris.snmp.write:::Set SNMP Information::help=AuthSnmpWrite.html solaris.admin.printer.read:::View Printer Information::help=AuthPrinterRead. html solaris.profmgr.assign:::Assign All Rights::help=AuthProfmgrAssign.html solaris.snmp.read:::Get SNMP Information::help=AuthSnmpRead.html solaris.admin.diskmgr.read:::View Disks::help=AuthDiskmgrRead.html
Значения полей в этом файле таковы:
name:res1:res2:short_desc:long_desc:attr
name – обязательное поле, имя набора прав (полномочия). Это уникальное имя, которое получается из комбинации префикса и суффикса, где префикс – это часть имени до самой правой точки.
Префикс наборов прав, придуманных компанией Sun, всегда начинается со слова solaris. Все остальные разработчики должны ради соблюдения уникальности имени указывать в качестве начала префикса имя своего домена в Интернете в обратном порядке (например, com.intel.) После имени компании идет дополнительная часть префикса, содержание которой зависит от смысла набора прав. Компоненты дополнительной части разделяются символом "точка"( .)
Суффикс – это слово, определяющее детальный смысл авторизации. Слово grant предполагает право собладающего этой авторизацией пользователя делегировать свои наборы прав (авторизации) другим.
Команды
Файл /etc/security/exec_attr представляет собой базу данных атрибутов запуска программ, ассоциированных с тем или иным профилем (из prof_attr ).
# execution attributes for profiles. see exec_attr(4) # #pragma ident "@(#)exec_attr 1.1 01/10/23 SMI" # # iPlanet Directory Management:suser:cmd:::/usr/sbin/ directoryserver:uid=0 Software Installation:suser:cmd:::/usr/bin/pkgparam:uid=0 Network Management:suser:cmd:::/usr/sbin/in.named:uid=0 File System Management:suser:cmd:::/usr/sbin/mount:uid=0 FTP Management:suser:cmd:::/usr/sbin/ftprestart:euid=0 Software Installation:suser:cmd:::/usr/bin/pkgtrans:uid=0 Name Service Security:suser:cmd:::/usr/bin/nisaddcred:euid=0 Mail Management:suser:cmd:::/usr/sbin/makemap:euid=0 Software Installation:suser:cmd:::/usr/sbin/install:euid=0 Process Management:suser:cmd:::/usr/bin/crontab:euid=0 Audit Review:suser:cmd:::/usr/sbin/praudit:euid=0 Name Service Security:suser:cmd:::/usr/sbin/ldapclient:uid=0 Media Backup:suser:cmd:::/usr/bin/mt:euid=0
Формат записей в файле /etc/security/exec_attr предполагает обязательное указание имени профиля прав, жестко установленных значений полей policy и cmd, идентификатора и, при необходимости, атрибутов.
name:policy:type:res1:res2:id:attr
- name – имя профиля прав (помните, регистр букв в имени важен!).
- policy – политика, ассоциированная с профилем прав; единственное допустимое значение этого поля в настоящее время – suser.
- тype – тип объекта, определенного в данной записи; единственное допустимое значение этого поля в настоящее время – cmd.
- id – строка, которая является уникальным идентификатором объекта, описанного в данной записи; для типа cmd этот идентификатор, кроме того, является полным именем файла выполняемой программы или символом звездочка ( * ), который разрешает запустить любую команду. Можно указывать звездочку в конце полного имени файла, что будет означать любую программу в соответствующем каталоге.
- аttr – атрибуты вида имя=значение, разделенные точкой с запятой; допустимые варианты атрибутоов: euid, uid, egid, and gid.
Все компоненты RBAC могут быть использованы как в виде файлов, так и в виде карт NIS или таблиц NIS+. Соответственно, в файле /etc/nsswitch.conf понадобится указать порядок обращения к различным источникам.
Итак, схема назначений прав в системе ролей следующая: определенные программы могут быть запущены не только пользователем root, что традиционно, но и другими пользователями. Для этого существуют полномочия ( authorizations ), которые могут быть даны напрямую пользователям (что нежелательно с организационной точки зрения) или профилям прав. Профиль прав, представляющий собой набор определенных прав, назначается роли. Пользователь может претендовать на то, что он будет играть ту или иную роль, если он знает пароль этой роли и может "перевоплотиться" в нее с помощью команды su. Рис. 9.1 иллюстрирует взаимоотношения компонент RBAC между собой.