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
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.