Re: CUPS + smb tiskarna + krb5 DOPLNĚNO: Dokumentace k SELinuxu pro začátečníky

Ing. Leoš Houser leos.houser na aacomputer.cz
Čtvrtek Leden 31 16:46:03 CET 2013


Dobrý den.

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

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

Nemám jak vyzkoušet. Je to na vás, i když zřejmě je již problém vyřešen.

Co se týká dokumentace SELinuxu pro začátečníky, je to problém. SELinux je 
dítě NSA http://www.nsa.gov/research/selinux/index.shtml Snad i proto jej 
většina lidí raději vypíná. :-) Spíše je to ale proto, že zaměstnavatel nebo 
zákazník rozdíl v bezpečnosti při nasazeném SELinuxu bezprostředně nepozná. 
A s jeho pokročilou konfigurací je docela práce a nastudování problematiky 
je týden času.

Rozumně použitelný je SELinux v distribucích RedHatu, kde implicitně 
nesvazuje celý operační systém, ale jen síťové daemony (režim targeted). Od 
RH4, kdy byl zařazen se vyvíjí a postupně se zlepšují možnosti jeho 
ovládání, ale i zvyšuje složitost. S verzí v RH6 základní nástroje pro 
ovládání "vandrovaly" do jiných RPM balíčků, a i já jako dlouholetý uživatel 
jsem se divil, kam mi zmizelo semanage a musel jsem ho hledat :-( První 
instalace RH6 a nachození SELinuxu bylo docela časově náročné. A začátečník, 
který neví přesně, jaký nástroj hledá, a jak se s ním problém řešit to má 
opravdu těžké.

Pokusil jsem se kdysi o popis řešení základních úloh v SELinuxu:
http://it-blog.cz/linux/selinux-na-rhel-a-centos-prakticky-i/
http://it-blog.cz/linux/selinux-na-rhel-a-centos-prakticky-ii/
http://it-blog.cz/linux/selinux-na-rhel-a-centos-prakticky-iii/

Bohužel, seriál není dokončený. Příliš nestíhám.

S pozdravem

--
Ing. Leoš Houser, jednatel
AA COMPUTER, s.r.o.
Konečná 917/25
360 05 Karlovy Vary
Tel: +420 353 566 539
Mob.: +420 737 107 202
E-mail: leos.houser na aacomputer.cz
WWW: http://www.aacomputer.cz


----- Původní zpráva ----- 
Od: "Luděk Finstrle" <luf na pzkagis.cz>
Komu: "Diskuse o Linuxu v cestine" <linux na linux.cz>
Odesláno: 31. ledna 2013 14:05
Předmět: Re: CUPS + smb tiskarna + krb5


Dobry den,

  diky rade Pavla jsem prosel skrz, ale rad se dozvim o selinuxu
vic, nez jen jak ho vypinat. A priznam se, ze jsem ocekaval, ze se
z toho problemu dostanu prave nejakym tranzitivnim pravidlem
(ale nevyznam se v tom, takze mozna mylna predstava).

 Čtvrtek, 31 Leden, 2013 12:49 CET, "Ing. Leoš Houser" 
<leos.houser na aacomputer.cz> napsal:
> Pokud jsem pochopil váš velmi hutný popis problému správně, 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. Zkuste jej doplnit pokud tam není a modul zkompilujte a zaveďte
> ručně.

Bohuzel vubec netusim jak maji tranzitivni pravidla vypadat.
Je nekde howto pro zacatecniky?

Vzdycky kdyz jsem zkusil do selinuxu proniknout tak jsem skoncil po
X strankach teorie, ze ktere mi sla hlava kolem. No a protoze jsem si
na to nikdy nevyclenil dostatek casu, tak selinux umim jen vypinat :(

Pokud by to zajimalo (komentare i rady na vylepseni vitam) i nekoho dalsiho,
tak tady je muj stavajici obsah modulu:

module cupssmbkrb 1.0.0;

require {
type cgroup_t;
type cupsd_t;
type lastlog_t;
type su_exec_t;
type systemd_logind_t;
type systemd_logind_sessions_t;
type user_home_dir_t;
type user_tmp_t;
type xauth_exec_t;

class dbus send_msg;
class dir { getattr open read search write };
class fifo_file write;
class file { getattr execute execute_no_trans open read write };
class key write;
class netlink_selinux_socket create;
class passwd rootok;
class process setrlimit;
}

#============= cupsd_t ==============
allow cupsd_t cgroup_t:dir { getattr open read search };

allow cupsd_t lastlog_t:file { read write open };

allow cupsd_t systemd_logind_t:dbus send_msg;

allow cupsd_t systemd_logind_sessions_t:fifo_file write;

allow cupsd_t self:key write;
allow cupsd_t self:netlink_selinux_socket create;
allow cupsd_t self:passwd { rootok };
allow cupsd_t self:process setrlimit;

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

allow cupsd_t user_home_dir_t:dir getattr;

allow cupsd_t user_tmp_t:dir { getattr open read search write };
allow cupsd_t user_tmp_t:file open;

allow cupsd_t xauth_exec_t:file execute;


#============= systemd_logind_t ==============
allow systemd_logind_t cupsd_t:dbus send_msg;

Diky za rady




Další informace o konferenci Linux