LINUX.ORG.RU
решено ФорумAdmin

[selinux][gentoo] Как заставить взлететь?


0

0

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

Файловая система, в т.ч. /dev, размечена.

Все ключевые части системы имеют нужный контекст, как описано тут.

Однако, при попытке загрузиться с параметром ядра

enforcing=1
, после загрузки самого ядра, init не загружает систему.

Проблемы начинаются после старта udev: пишет, что не удаётся получить доступа к usbmon0, и прочим устройствам из /dev, присутствующим в моей системе, далее, диски не монтируются и в результате, я получаю систему без подмонтированных /usr, /var, /opt, /home.

Впрочем, того, что остаётся на корне, достаточно для того, чтобы прочитать /var/log/dmesg.

[    6.792371] SELinux: initialized (dev rootfs, type rootfs), uses genfs_contexts
[    6.792381] SELinux: initialized (dev sysfs, type sysfs), uses genfs_contexts
[    6.794841] type=1403 audit(1268742832.794:2): policy loaded auid=4294967295 ses=4294967295
[    8.173275] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[    8.182223] type=1400 audit(1268742834.182:3): avc:  denied  { read } for  pid=120 comm="restorecon" name="console" dev=sda3 ino=140 scontext=system_u:system_r:setfiles_t tcontext=system_u:object_r:console_device_t tclass=chr_file
[    8.182277] type=1400 audit(1268742834.182:4): avc:  denied  { read } for  pid=120 comm="restorecon" path="/dev/console" dev=sda3 ino=140 scontext=system_u:system_r:setfiles_t tcontext=system_u:object_r:console_device_t tclass=chr_file
[    8.182352] type=1400 audit(1268742834.182:5): avc:  denied  { read } for  pid=120 comm="restorecon" path="/dev/console" dev=sda3 ino=140 scontext=system_u:system_r:setfiles_t tcontext=system_u:object_r:console_device_t tclass=chr_file
[    8.302653] type=1400 audit(1268742834.302:6): avc:  denied  { write } for  pid=127 comm="bash" name="null" dev=tmpfs ino=1552 scontext=system_u:system_r:initrc_t tcontext=system_u:object_r:device_t tclass=chr_file
[    8.464670] type=1400 audit(1268742834.464:7): avc:  denied  { read write } for  pid=136 comm="write_root_link" name="tty" dev=tmpfs ino=1551 scontext=system_u:system_r:initrc_t tcontext=system_u:object_r:device_t tclass=chr_file
[    8.465228] type=1400 audit(1268742834.465:8): avc:  denied  { read write } for  pid=136 comm="write_root_link" name="console" dev=tmpfs ino=1549 scontext=system_u:system_r:initrc_t tcontext=system_u:object_r:device_t tclass=chr_file
[    8.524298] type=1400 audit(1268742834.524:9): avc:  denied  { write } for  pid=140 comm="bash" name="null" dev=tmpfs ino=1552 scontext=system_u:system_r:initrc_t tcontext=system_u:object_r:device_t tclass=chr_file
[    8.841506] type=1400 audit(1268742834.841:10): avc:  denied  { read write } for  pid=146 comm="modprobe" path="/dev/null" dev=tmpfs ino=1552 scontext=system_u:system_r:insmod_t tcontext=system_u:object_r:device_t tclass=chr_file
[    8.841551] type=1400 audit(1268742834.841:11): avc:  denied  { read write } for  pid=146 comm="modprobe" path="/dev/null" dev=tmpfs ino=1552 scontext=system_u:system_r:insmod_t tcontext=system_u:object_r:device_t tclass=chr_file
[   13.345301] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[   13.345716] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[   13.345879] type=1400 audit(1268742839.345:206): avc:  denied  { write } for  pid=422 comm="mount" name="blkid.tab" dev=sda3 ino=5795 scontext=system_u:system_r:mount_t tcontext=system_u:object_r:etc_t tclass=file
[   13.462510] SELinux: initialized (dev binfmt_misc, type binfmt_misc), uses genfs_contexts
[   15.071030] type=1400 audit(1268742843.187:207): avc:  denied  { write } for  pid=450 comm="bash" name="lock" dev=sda3 ino=5804 scontext=system_u:system_r:initrc_t tcontext=root:object_r:var_t tclass=dir
[   15.237106] type=1400 audit(1268742843.354:208): avc:  denied  { read } for  pid=467 comm="restorecon" name="console" dev=sda3 ino=140 scontext=system_u:system_r:setfiles_t tcontext=system_u:object_r:console_device_t tclass=chr_file
[   15.237208] type=1400 audit(1268742843.354:209): avc:  denied  { read } for  pid=467 comm="restorecon" path="/dev/console" dev=sda3 ino=140 scontext=system_u:system_r:setfiles_t tcontext=system_u:object_r:console_device_t tclass=chr_file

Правильно ли я понимаю, что для исправления всего этого, мне надо вручную создавать политики во время загрузки в permissive mode и разрешать соответствующий доступ? Интересно, почему мейнтейнеры не сделали этого сразу?…

Народ, кто из вас настраивал SELinux также, как я, достаточно ли информации об этом в вышеприведённой ссылке или же есть более информативные материалы?

Ответ на: комментарий от CL-USER

Это тоже рассматривается в качестве одного из вариантов: поиграться с SELinux на уже настроенном дистрибутиве, а потом уже пытаться настраивать его там, где хочется…

HolyBoy ()
Ответ на: комментарий от CL-USER

А по делу есть что сказать?

Правильно ли я понимаю, что для исправления всего этого, мне надо вручную создавать политики во время загрузки в permissive mode и разрешать соответствующий доступ?

Как видишь, я мануал читал. И что делать примерно — представляю.

Просто, есть неочевидные для новичка вещи, например, вот такие:

Иногда бывает, что при загрузке ругается на /dev/console и тд. Это происходит из-за того, что при перемаркировке всей файловой системы, к /dev подмонтирован диск из оперативной памяти и в нём находятся генерированные устройства. Исходный же /dev с метками устройств недоступен. Для решения этой проблемы следует…

Соответственно, о вышеописанном я спрашивал, подразумевая то же самое: что-то неочевидное. Если же здесь всё ок, то что с этим делать надо, уже понял.

HolyBoy ()

Если действительно хочешь использовать SELinux - забудь про генту. И вообще про все дистры, кроме RHEL/CentOS и Fedora.

Иначе протрахаешься кучу времени, а потом просто забьешь.

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

anonymous ()
Ответ на: комментарий от HolyBoy

Извиняюсь, что встреваю, но твоя цитата, она откуда? Просто у меня некоторая проблема при использовании ramdisk не дает смонтировать устройство типа из за его занятости, fuser и mount ничего подозрительного не показывает.
Заранее спасибо!

Atlant ★★★★★ ()
Ответ на: комментарий от Atlant

Это моя собственная цитата. Из моих кратеньких конспектов. Вряд ли оно вам поможет, т.к. касается только особенностей selinux.

HolyBoy ()
Ответ на: комментарий от HolyBoy

может стоит поковырять версии selinux-base-policy и взять последнюю оттуда (2.20091215) ?
я ставил его (но было это давно и не правда уже) так никаких особых глюков вроде бы и не было....

Поднять селинух с нуля


а кто вам сказал что с нуля? политики для стартапа сервера там есть, а остальное можно и допилить - себе полезней будет...

r0mik ()
Ответ на: комментарий от r0mik

> может стоит поковырять версии selinux-base-policy и взять последнюю оттуда (2.20091215) ?

Последняя и стоит.

может стоит поковырять версии selinux-base-policy и взять последнюю оттуда (2.20091215) ?

Вы не можете припомнить, где вы брали информацию в тот раз? С офсайта или на вики было?

HolyBoy ()
Ответ на: комментарий от HolyBoy

не помню точно к сожалению, да это было года 4 тому наверное...
с хендбука, а может быть еще и на форуме... но вроде точно не на вики.. да я и не крутил его уж слишком сильно, так что сорри...

r0mik ()
Ответ на: комментарий от r0mik

Ясно, спасибо.

Я подозреваю, что вы его его запускали в permissive mode, т.к. если бы вы его в strict mode запустили, то столкнулись бы с вышенаписанным обязательно в той или иной мере. Разумеется, разрешительный режим не интересен, у меня оно тоже работает. :)

HolyBoy ()

Пытаться поднять селинух на чем-то, кроме рхела/центоса — имхо, пустая трата времени.

nnz ★★★★ ()
Ответ на: комментарий от HolyBoy

нет, у меня работал по крайней мере апач в strict mode
следовательно загрузиться мне удалось, причем без ковыряния (создания) политик
может просто с тех пор поломали что-то?
сегодня нужно будет попробовать наверное.....

r0mik ()

serg@graynder ~ $ eselect profile list
Available profile symlink targets:
[1] default/linux/x86/10.0
[2] default/linux/x86/10.0/desktop *
[3] default/linux/x86/10.0/developer
[4] default/linux/x86/10.0/server
[5] hardened/linux/x86/10.0
[6] selinux/2007.0/x86
[7] selinux/2007.0/x86/hardened
[8] selinux/v2refpolicy/x86
[9] selinux/v2refpolicy/x86/desktop
[10] selinux/v2refpolicy/x86/developer
[11] selinux/v2refpolicy/x86/hardened
[12] selinux/v2refpolicy/x86/server

Вот несчастный. Или у меня одного только профили есть)

anonymous ()
Ответ на: комментарий от HolyBoy

да я то не возражаю (мой_ник_на_ЛОРе@gentoo.ru), да только толку-то? я вон вчера собрал по быстрому, так у меня вообще rc сегфолтится)))

r0mik ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.