Hello,

Am un sistem debian etch pe care l-am configurat cu selinux enabled.
Am folosit selinux-policy-default (a trebuit sa dau Yes sa puna toate
domeniile ca astfel, fiind scris intr-un mod foarte "inteligent", imi
facea probleme: fara indeajuns de multe ifdef-uri).

L-am pus in permissive mode ca sa pot sa modific ce e de modificat.
Problema mea este urmatoarea: /var/run/sshd.pid are tipul file_t (la
care normal ca sshd_t nu are acces).

Acum, inspectand configurarile, am observat ca exista un type_transition
care spune ca orice fisier legat de var_run_t folosit de sshd_t sa devina
sshd_var_run_t. De curiozitate, am umblat in macro-urile care generau
acest type_transition si pe langa acele allow-uri am adaugat si un
auditallow identic.

sshd ruleaza ca sshd_t. /var/run este var_run_t. sshd.pid este inca
file_t. Uimitor este ce e in /var/log/messages:

<citez>
Sep 20 19:14:25 mimir kernel: audit(1158779665.169:14193): avc:  granted
{ search } for  pid=3763 comm="sshd" name="var" dev=hda1 ino=7
scontext=system_u:system_r:sshd_t tcontext=system_u:object_r:var_t
tclass=dir

Sep 20 19:14:25 mimir kernel: audit(1158779665.173:14196): avc:  granted
{ write search } for  pid=3763 comm="sshd" name="run" dev=hda1 ino=201
scontext=system_u:system_r:sshd_t tcontext=system_u:object_r:var_run_t
tclass=dir

Sep 20 19:14:25 mimir kernel: audit(1158779665.173:14197): avc:  granted
{ add_name search } for  pid=3763 comm="sshd" name="sshd.pid"
scontext=system_u:system_r:sshd_t tcontext=system_u:object_r:var_run_t
tclass=dir

Sep 20 19:14:25 mimir kernel: audit(1158779665.173:14198): avc:  granted
{ create } for  pid=3763 comm="sshd" name="sshd.pid"
scontext=system_u:system_r:sshd_t
tcontext=system_u:object_r:sshd_var_run_t tclass=file

Sep 20 19:14:25 mimir kernel: audit(1158779665.173:14199): avc:  denied
{ getattr } for  pid=3763 comm="sshd" name="sshd.pid" dev=hda1 ino=25560
scontext=system_u:system_r:sshd_t tcontext=system_u:object_r:file_t
tclass=file
</citez>

De unde deduc ca el saracul vrea sa-l faca sshd_var_run_t, dar din
pacate ajunge sa fie file_t.

Acum, gresesc undeva? Chestiile astea apar aproape in ordine (bine,
recunosc, am omis partea in care dadea de 10 ori search la var si run,
incerca sa citeasca /var/run/sshd/ care ramasese de ultima oara, creat
desigur cu file_t, dar atat).

Daca aveti ceva experiente cu chestia asta, astept niste rtfm-uri putin
mai detaliate (i.e. sa contina si un link, ca am cam citit ce era in
/usr/share/doc - pachetul selinux-doc included).

Luci Stanescu

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui