CUPS + smb tiskarna + krb5

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Čtvrtek Leden 31 20:21:29 CET 2013


On Thu, 31 Jan 2013, Ing. Leoš Houser wrote:

> [...] máte aktuálně problém v přechodem cupsu do bezpečnostní domény 
> su_exec_t Tato konfigurace by potom měla obsahovat povolující 
> tranzitivní pravidlo pro cups do domény su_exec_t.

Tento úryvek imho obsahuje hned několik nesmyslů: Typ su_exec_t není 
doména (tedy typ běžícího procesu). Nevím, která pravidla jsou dle Vás 
"tranzitivní", já znám jen přechodová (transition, pokud to někdo chce 
počeštit jen napůl, tak by to bylo asi "transiční").


On Thu, 31 Jan 2013, Luděk Finstrle wrote:

>> Nedávno tady byla taková menší diskuse o tom, jak předávat bezpečně
>> parametry dovnitř su... [...]
> Poradis klicova slova? Konefru beru, ale tohoto si nejsem vubec vedom.

"Eskejpovani pro su" z října 2012.

> Zajimave, ale zadne AVC denied tam nebylo. Jen

Protože to AVC neodmítlo. su udělalo dotaz (z pohledu AVC v jádře čistě 
nezávazný), ale zamítlo si to pak samo.

> Nemam problem to zadat jako bug. Jen pro potvrzeni, melo by to byt neco jako:
> type=AVC msg=audit(<timestamp>): avc:  denied  { rootok } for  pid=.. comm=".." scontext=system_u:system_r:cupsd_t:s0-s0:c0.c1023 tcontext=... tclass=process ?

Asi tak nějak s malými výhradami:
type=USER_AVC, protože se to vyhodnocuje v userspace
class=passwd, protože je to tato třída přístupových práv

Je možné, že patřičná místa usoudí, že "root check failed" je postačující, 
ale to se uvidí.


On Thu, 31 Jan 2013, Luděk Finstrle wrote:

> [...] ale rad se dozvim o selinuxu vic, nez jen jak ho vypinat.

Jako celkem dobrý úvod se mi jevilo toto:
<http://www.trust.rub.de/media/ei/attachments/files/2009/02/selinux_intro_0.1_.pdf>

Také byl docela zajímavý tento dokument, který navzdory názvu šel i do 
hlubších až obskurních detailů, které bylo občas dost obtížné vyčíst
z jiných zdrojů:
<http://www.freetechbooks.com/efiles/selinuxnotebook/The_SELinux_Notebook_The_Foundations.pdf>

Také doporučuji studium referenční politiky.

Nicméně jakési pochopení základní teorie (zejména toho, jak funguje type 
enforcement) je asi nezbytné.


On Thu, 31 Jan 2013, Ing. Leoš Houser wrote:

> Tranzitivní pravidlo je napříkad toto z vašeho konfigu modulu.
> allow cupsd_t xauth_exec_t:file execute;

Jak už jsem psal výše, tak si úplně nejsem jistý, čemu říkáte "tranzitivní 
pravidlo".

Přechodové toto pravidlo určitě není, protože povoluje doméně cupsd_t 
spustit soubor typu xauth_exec_t, ale přechod mezi typy ani nedefinuje 
(type_transition), ani nepovoluje (allow ... transition nebo entrypoint).

> Úprava pro spuštění /bin/su cupsem by vypadala takto:
> allow cupsd_t su_exec_t:file execute;

Takové pravidlo tam už ovšem bylo:

allow cupsd_t su_exec_t:file { getattr execute execute_no_trans open read };

a navíc je tam povoleno execute_no_trans, čili je naprosto 
"bezpřechodové": je povoleno, aby su po svém spuštění běželo v původní 
doméně cupsd_t.

Zřejmě pak cupsd_t běží i to, co je spuštěno pod su, jak naznačuje 
pravidlo povolující spouštět xauth.

Je tak trochu otázka, zda by nebylo lepší, kdyby tam nějaký přechod byl, 
ne-li dokonce dva (jedna mezilehlá doména pro su, další doména pro 
smbspool), ale to by vyžadovalo nějaké vyšívání na té politice.


-- 
Pavel Kankovsky aka Peak                          / Jeremiah 9:21        \
"For death is come up into our MS Windows(tm)..." \ 21st century edition /


Další informace o konferenci Linux