tor
a zapnutí logování do souboru, končí neúspěšně snaha o přístup k adresáři /var/log/tor
, konkrétně se v audit.log
objevují zprávy:
type=AVC msg=audit(1471788913.950:110): avc: denied { mounton } for pid=918 comm="(tor)" path="/run/tor" dev="tmpfs" ino=17585 scontext=system_u:system_r:init_t:s0 tcontext=system_u:object_r:tor_var_run_t:s0 tclass=dir permissive=0
Tuto situaci lze jednoduše vyřešit přidáním našich vlastních pravidel, které tuto operaci umožní. Ideální je tuto situaci vyřešit analýzou říčin a ručním vytvořením příslušných SELinux pravidel, ale v tomto jednoduchém případě si ukážeme cestu přes automatické skripty.
K vyhledání zpráv vaudit.log
s informacemi o odmítnutí určitých operací využijeme utilitu ausearch
. Pro vytvoření příslušného povolovacího pravidla k dané zalogované zprávě využijeme audit2allow
. Protože může být zalogovaných zpráv více od různých aplikací, a protože se pravidla typicky pojmenovávají dle své funkce/aplikace, nabízí ausearch
různé selektory na časový údaj, typ zprávy, ap. V tomto případě by bylo vhodné například použít:
# ausearch -m avc -c '(tor)' | audit2allow -M my-torProgram
audit2allow
vygeneruje soubor my-tor.te
("te" značí "Type Enforcement"):
module my-tor 1.0; require { type tor_var_lib_t; type init_t; type tor_var_run_t; type tor_var_log_t; class dir mounton; } #============= init_t ============== #!!!! This avc is allowed in the current policy allow init_t tor_var_lib_t:dir mounton; allow init_t tor_var_log_t:dir mounton; #!!!! This avc is allowed in the current policy allow init_t tor_var_run_t:dir mounton;a jeho binární ekvivalent
my-tor.pp
("pp" značí "Policy Package"). Ten už lze přidat do systému SELinux pravidel:
# semodule -i my-tor.ppPři přidávání dalších pravidel je nutné používat jiná pojmenování, tj. například
my-tor2
, jinak by docházelo při jejich správě ke zbytečným zmatkům.
-- LeoGalambos - 22 Aug 2016