CUPS + smb tiskarna + krb5

Luděk Finstrle luf na pzkagis.cz
Čtvrtek Leden 31 13:30:57 CET 2013


Ahoj,

  predne diky moc za hint s rootok, bylo to presne ono. Tisk mi jiz fici.

 Čtvrtek, 31 Leden, 2013 12:13 CET, Pavel Kankovsky <peak na argo.troja.mff.cuni.cz> napsal:
> On Thu, 31 Jan 2013, Luděk Finstrle wrote:
> 
> > /bin/su -p -c "KRB5CCNAME=\"DIR:\$(/bin/ls -td /run/user/\`/usr/bin/id 
> > -u\`/krb5cc_* | /usr/bin/head -n1)\" /usr/bin/smbspool $1 $2 \"$3\" $4 
> > \"$5\"" $2
> 
> Nedávno tady byla taková menší diskuse o tom, jak předávat bezpečně 
> parametry dovnitř su... (Jistě, spouští se to pod rootem a tak, ale když 
> už chcete žonglovat s granáty, tak je pořád lepší z nich nevytahovat 
> pojistky.)

Poradis klicova slova? Konefru beru, ale tohoto si nejsem vubec vedom.
Navic je to cups predavajici parametry backendu, takze neocekavam, ze
by to bylo nutne, ale vzdy je co vylepsovat.

> > Potud dobry, ale mam problem, ze se selinuxem v rezimu enforcing mi to 
> > neprojde su pres pam_rootok a tudiz to nefunguje.
> 
> A jak víte, že to neprojde přes pam_rootok? Napsalo se něco do logu?

Zapnuty pam_rootok debug a:
Jan 30 19:59:41 hurvajs su: pam_rootok(su:auth): root check failed
versus
Jan 30 19:59:56 hurvajs su: pam_rootok(su:auth): root check succeeded

> (Mimochodem, v audit.log mohou být i hlášky, které audit2allow nedokáže 
> zpracovat a ignoruje.)

Zajimave, ale zadne AVC denied tam nebylo. Jen
Jen ruzne type=XYZ ... op=PAM:... res=success a jediny:
type=USER_AUTH msg=audit(1359572383.707:3497): pid=13053 uid=0 auid=4294967295 ses=429496729
5 subj=system_u:system_r:cupsd_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="luf" exe="/usr/bin/su" hostname=? addr=? terminal=? res=failed'

> > pam_rootok ma podporu selinuxu, ktera navic checkuje korektnost a ta 
> > pada, ale nevim co kde nastavit, abych cupsu (pod rootem) povolil su.
> 
> Korektnost čeho? Podle zdrojáků to vypadá, že provádí volání
> selinux_check_passwd_access s parametrem PASSWD__ROOTOK. Hádám, že budete 
> potřebovat něco jako "allow cups_t self:passwd { rootok }"

Presne toto. Omlouvam se, vcera vecer jsem se k tomuto dohrabal, ale uz jsem
byl pod casovym tlakem a dneska rano jsem to nedohledaval :(
Abych se priznal, tak jsem predpokladal, ze reseni bude nejaky prechod, nez
toto doplneni pravidla.

> Jestli je to tady tím a jestli se o tom nic nenapíše do audit logu, tak by 
> to bylo možná na nějaké hlášení, že by se to tam zaznamenat mělo.

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 ?

[root na hurvajs ~]# grep -i rootok /var/log/audit/audit.log*
[root na hurvajs ~]# 

Diky mockrat 


Další informace o konferenci Linux