null

Различия в работе RBAC на Solaris 10 и Solaris 11

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

Предположим, Вы уже настроили RBAC для предоставления доступа пользователей в их зоны. И, соответственно, Вашим пользователям назначен профиль Zone Management, без которого попать в свою зону без ввода пароля они не могут. Но в Вашей сети на системах используется не только Solaris 11, но и Solaris 10, и для всем систем под Solaris используются общая база пользователей в LDAP.

Вроде бы всё хорошо, нужным пользователям разрешён доступ в их зоны, все довольны и ничего не предвещало беды. Пока не понадобилось создать еще несколько зон уже на Solaris 10 и выдать доступ к ним другим пользователям. Тут то и выяснилось, что в Solaris 10 нет возможности назначить права доступа пользователю в конкретную зону, только всё или ничего. Но еще более страшное открылось при изучени на Solaris 10 файла /etc/security/exec_attr, в котором оказались следующие строки:

Zone Management:solaris:cmd:::/usr/sbin/txzonemgr:uid=0
Zone Management:solaris:cmd:::/usr/sbin/zlogin:uid=0
Zone Management:solaris:cmd:::/usr/sbin/zoneadm:uid=0
Zone Management:solaris:cmd:::/usr/sbin/zonecfg:uid=0

В Solaris 11 для выполнения выполнения команды zonecfg необходимо иметь профиль Zone Security. А вот в Solaris 10 все пользователи, имеющие профиль Zone Management, могут работать с  командой zonecfg, а значит могут создавать, изменять и удалять зоны. К чему это может привести в понимающих руках догадаться не сложно:

$ pfexec zonecfg -z test
zonecfg:test> create
zonecfg:test> set zonepath=/export/zones/test
zonecfg:test> set autoboot=false
zonecfg:test> add fs
zonecfg:test:fs> set dir=/global
zonecfg:test:fs> set special=/etc
zonecfg:test:fs> set type=lofs
zonecfg:test:fs> end
zonecfg:test> commit
$ zoneadm -z test install
$ zoneadm -z test boot
$ zlogin test
# grep -c root /global/shadow
1

Для решения данной проблемы на имеющихся системах под управлением Solaris 11 был создан новый профиль Zone Login, для чего был создан новый файл /etc/security/prof_attr.d/zonelogin со следущим содержимым:

Zone Login:RO::\
Zones Virtual Application Environment Login:\
help=RtZoneMngmnt.html

Назначено этому профилю разрешение запускать zlogin, создав файл /etc/security/exec_attr.d/zonelogin с содержимым:

Zone Login:solaris:cmd:RO::/usr/sbin/zlogin:euid=0

И поменян всем имевшим доступ к зонам пользователям профиль на Zone Login. Заодно запретив тем самым этим пользователям переустанавливать зоны.

А вот на Solaris 10 пришлось генерировать пароли для пользователей в зонах и предоставлять доступ по ssh.

 

Коротко о себе:

Работаю в компании Tune-IT и тьютором кафедры Вычислительной техники в СПбГУИТМО.

Очень люблю команду cat, core solaris и IPv6.