SELinux: strumento da riga di comando per guardare il contesto di sicurezza (come selabel_lookup (3))

3

La funzione di libreria selabel_lookup(3) fornisce un modo per ottenere le informazioni sul contesto di sicurezza SELinux per un file, ovvero quale etichetta di sicurezza è prevista per un file [1].

Esiste un'utilità della riga di comando che cerca informazioni di contesto di sicurezza per un file dalle definizioni della politica - possibilmente una che utilizza anche selabel_lookup(3) sotto le copertine?

Posso usare un reverse grep(1) per cercare /etc/selinux/targeted/contexts/files/file_contexts . Sembra che le voci utilizzino espressioni regolari estese (quindi egrep anziché grep ). Quindi dovrei cercare le chiavi in file_contexts iterando su di loro e applicando la chiave per una ricerca regolare contro il mio nome di file. Questo potrebbe richiedere molto tempo. Ad esempio, Fedora 23 ha 5935 linee in file_contexts , quindi ciò potrebbe significare 5935 invocazioni di grep. Speravo in una soluzione più efficiente di quella.

[1] ls -Z o secon fornisce un contesto di sicurezza corrente per un file, ma potrebbe non essere il contesto corretto per quel file (come delineato nella definizione della politica di SELinux per il sistema ).

    
posta Juan 01.07.2016 - 01:27
fonte

1 risposta

2

Sembra che matchpathcon(8) (dal pacchetto libselinux-utils ) faccia il trucco:

% matchpathcon /tmp
/tmp    system_u:object_r:tmp_t:s0
% matchpathcon /tmp/foobar
/tmp/foobar     <<none>>

Penso che dovrebbe soddisfare i miei bisogni [1].

Puoi utilizzare matchpathcon per verificare le etichette dei file esistenti:

% matchpathcon -V /tmp
/tmp verified

Sebbene -V sia un po 'di confusione per i file che non hanno alcuna definizione politica:

% matchpathcon -V /tmp/foobar; echo $?
/tmp/foobar has context unconfined_u:object_r:user_tmp_t:s0, should be <<none>>
1

Penso che un valore di contesto di <<none>> possa corrispondere a qualsiasi contesto con successo invece di essere contrassegnato come un errore. L'implementazione corrente che ho testato (libselinux-utils 2.4.4) contrassegna questi casi con un codice di uscita diverso da zero (come mostrato sopra).

[1] La mia effettiva necessità è di cercare il corretto contesto di sicurezza di un file in un'immagine chroot montata di un disco rimovibile e impostarlo nel contesto corretto in base al criterio definito dal sistema - questo assicurerà che il disco abbia il corretto etichette di sicurezza prima di essere distribuite. In particolare, volevo cercare il contesto di sicurezza per /tmp per applicare quel contesto a una directory personalizzata che ha la semantica di /tmp -like. La directory personalizzata non è (ancora) definita in un elenco file_contexts .

    
risposta data 01.07.2016 - 02:52
fonte

Leggi altre domande sui tag