SELinux: come "sbloccare" WICD e Google Earth?

Buona sera,
credo di avere trovato la configurazione più o meno ottimale di Fedora10 nel mio Asus F6E (aka PRO60E).

Ho dovuto sostituire NetworkManager con WICD a causa di un cattivo funzionamento del primo (abilitando e disabilitando la rete tramite tasti funzione) e dell’ottimo funzionamento del secondo.

Veniamo al problema: SELinux mi blocca WICD e Google Earth e per il momento ho provveduto a disattivarlo per aggirare l’inconveniente.

Potete spiegarmi come si configura SELinux? (ho già letto le guide di fedora e red hat)
Come posso “sbloccare” queste 2 applicazione ed eventualmente altre che potrei installare in futuro?

Grazie, ciao :slight_smile:

puoi usare in applicazioni --> strumenti di sistema --> policy generation tool
una semplice interfaccia grafica che genera automaticamente, sulla base delle tue indicazioni, la politica da adottare.

Beh… :slight_smile:
Il tool l’avevo visto ed ho anche provato ad usarlo ma con scarsi risultati… :oops:

Proviamo così:

  • apri un terminale, diventa root e crea dove vuoi una cartella che ci servirà per lavorare. In questo esempio la cartella sarà /root/moduli_audit. Poi spostati in quella cartella.
mkdir /root/moduli_audit
cd /root/moduli_audit
  • fai una copia del file audit.log
cat /var/log/audit/audit.log > audit_WICD1
  • apri WICD (da utente normale come fai di solito) e aspetta che abbia caricato tutto e che eventualmente ti appaia l’avviso che selinux ha rilevato un azione non permessa. Poi richiudilo.

  • copia di nuovo il file audit.log

cat /var/log/audit/audit.log > audit_WICD2
  • calcola la differenza tra i due file e salvala
diff -e audit_WICD1 audit_WICD2 > diff_WICD
  • apri il file con un editor (nell’esempio uso nano ma puoi usare quello che vuoi) e cancella la prima e l’ultima riga che sono un aggiunta del programma diff (le riconosci perché sono molto diverse dalle altre righe, la prima è un numero + una lettera e l’ultima è un punto) [se qualcuno sa come ottenere un output pulito da diff si faccia avanti! così evitiamo un passaggio]. NOTA: forse questo passaggio non è necessario perché audit2allow dovrebbe scartare le righe malformate quindi anche la prima e l’ultima. Ma non ne sono certo perché con fedora 10 non ho avuto un solo problema con selinux e nel file log non c’è niente di utile per fare le prove…Chi volesse/potesse dare conferma farebbe cosa gradita :slight_smile:
nano diff_WICD

cancella la prima e l’ultima riga, premi ctrl+o per salvare e ctrl+x per uscire

  • genera un modulo contenente i permessi relativi a WICD. Dagli un nome tale da ricordarti che è un modulo fatto da te.
audit2allow -i diff_WICD -M fattodame_modulo_WICD

Ti crea due file: uno .te e l’altro .pp con il nome da te scelto per il modulo. Il primo sono le regole che sono state messe nel modulo espresse in forma testuale e più comprensibile, il secondo è lo stesso file ma “compilato” nel formato dei moduli di SELinux. Il primo postalo qui sul forum così possiamo vedere/controllare.

  • Installa il modulo
semodule -i fattodame_modulo_WICD.pp
  • controlla se il modulo è caricato
semodule -l | grep fattodame

dovrebbe listarti il modulo appena caricato.

A questo punto i problemi di WICD con SELinux dovrebbero essere risolti! Adesso devi ripetere i passaggi per Google Earth.

cat /var/log/audit/audit.log > audit_GoogleE1

apri Google Earth e richiudilo

cat /var/log/audit/audit.log > audit_GoogleE2
diff -e audit_GoogleE1 audit_GoogleE2 > diff_GoogleE

Cancella la prima e ultima riga (ma come prima questo passaggio forse è inutile)

audit2allow -i diff_GoogleE -M fattodame_modulo_Google_Earth

posta qui il file .te

semodule -i fattodame_modulo_Google_Earth.pp

Infine

semodule -l | grep fattodame

dovrebbe darti tutti e due i moduli appena creati.

E i tuoi problemi con SELinux dovrebbero essersi risolti (speruma).

Ricordati di postare i file .te così possiamo darci un occhiata e possono anche servire ad altri!

ben fatto.
Astharoth.

Ottimo, credo di avere capito il metodo.
Appena avrò un po di tempo per fare le cose con calma provo.
Grazie, Astharoth!

Urka! Altro che risposta, il nostro Astharoth ti ha scritto una piccola guida ad hoc. Bravo, complimenti!
Robyduck

Eheheh grazie, spero risolva i problemi! Queste reminescenze sono frutto di un piccolo incontro ravvicinato con SELinux su Fedora 8 del quale ho ancora qualche piccola cicatrice :slight_smile: Fortunatamente con F10 non sto avendo alcun problema (escludendo matlab, ma quello non conta: è programmato con i piedi e fa richieste assurde…assolutamente incontentabile).

wow… bellissimo questo thread, me l’ero perso!

Puoi fare tutto in un solo passaggio con:

diff -e audit_WICD1 audit_WICD2 | sed '1d;$d' > diff_WICD

in questo modo “sed” stampa tutto eccetto la prima e l’ultima riga.