##docs intrepid
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
'''!AppArmor''' è una implementazione del '''Linux Security Module''' di controlli d'accesso basati sul nome. '''!AppArmor''' confina i singoli programmi a un gruppo di file selezionati e capacità POSIX 1003.1e draft.
= Installazione =
In '''Ubuntu 8.04''' «'''Hardy Heron'''» e successive, '''!AppArmor''' è installato e caricato in modo predefinito. Alcuni pacchetti installano dei profili propri, ma profili aggiuntivi possono essere trovati nel pacchetto ''apparmor-profiles'' presente nel [[Repository/Componenti|componente]] '''universe'''.
= Utilizzo di base =
Tutti i comandi debbono essere eseguiti in un terminale.
== Elencare lo stato corrente di AppArmor ==
{{{
sudo apparmor_status
}}}
== Mettere un profilo in modalità apprendimento ==
{{{
sudo aa-complain /percorso/al/binario
}}}
Esempio: {{{
sudo aa-complain /bin/ping
}}}
{{{#!wiki note
Nella modalità apprendimento (in originale complain) vengono rilevate le violazioni alle regole dei profili di !AppArmor (per esempio il programma profilato accede a file non permessi dal profilo). Tali violazioni sono permesse, ma anche registrate. Questa modalità è conveniente per lo sviluppo di profili ed è usata dagli strumenti di !AppArmor per la generazione dei profili (dalla documentazione su novell.com).}}}
== Mettere tutti i profili in modalità apprendimento ==
{{{
sudo aa-complain /etc/apparmor.d/*
}}}
== Mettere un profilo in modalità esecutiva ==
{{{
sudo aa-enforce /percorso/al/binario
}}}
Esempio: {{{
sudo aa-enforce /bin/ping
}}}
{{{#!wiki note
Il caricamento di un profilo nella modalità di esecuzione (enforcment) fa sì che sia rispettata la politica definita nel profilo e allo stesso tempo segnalata a syslogd ogni tentata violazione (dalla documentazione su novell.com).}}}
== Mettere tutti i profili in modalità esecutiva ==
{{{
sudo aa-enforce /etc/apparmor.d/*
}}}
== Disabilitare l'infrastruttura AppArmor ==
{{{
sudo /etc/init.d/apparmor kill
sudo update-rc.d -f apparmor remove
}}}
== Abilitare l'infrastruttura AppArmor ==
{{{
sudo /etc/init.d/apparmor start
sudo update-rc.d apparmor start 37 S .
}}}
== Ricaricare tutti i profili ==
{{{
sudo /etc/init.d/apparmor reload
}}}
== Ricaricare un profilo ==
{{{
cat /etc/apparmor.d/nome.profilo | sudo apparmor_parser -r
}}}
Esempio: {{{
cat /etc/apparmor.d/bin.ping | sudo apparmor_parser -r
}}}
== Disabilitare un profilo ==
{{{
ln -s /etc/apparmor.d/nome.profilo /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/nome.profilo
}}}
Esempio:
{{{
ln -s /etc/apparmor.d/bin.ping /etc/apparmor.d/disable/
apparmor_parser -R /etc/apparmor.d/bin.ping
}}}
== Abilitare un profilo ==
In modo predefinito, i profili sono abilitati (cioè caricati all'interno del kernel e applicati ai processi).
{{{
rm /etc/apparmor.d/disable/nome.profilo
cat /etc/apparmor.d/nome.profilo | sudo apparmor_parser -a
}}}
Esempio: {{{
rm /etc/apparmor.d/disable/bin.ping
cat /etc/apparmor.d/bin.ping | sudo apparmor_parser -a
}}}
= Personalizzazione dei profili =
I profili possono essere trovati in `/etc/apparmor.d/`.
Alcune personalizzazioni possono essere compiute in `/etc/apparmor.d/tunables/`.
== Impostare la posizione delle directory home ==
La posizione delle directory home può essere regolata in `/etc/apparmor.d/tunables/home`.
= Domande frequenti =
== apparmor_status riporta processi che sono non confinati ma che hanno definito un profilo ==
Riavviare i processi elencati. Anche eseguire un riavvio di sistema corregge il problema.
'''!AppArmor''' può tenere traccia e proteggere solo i processi che sono avviato dopo che il modulo kernel è stato caricato. Dopo l'installazione dei pacchetti ''apparmor'', '''!AppArmor''' viene avviato. I processi già in esecuzione però non vengono protetti da '''!AppArmor'''. Sia riavviare il processo che l'intero sistema corregge il problema.
È anche possibile applicare un profilo a un processo già in esecuzione attraverso il seguente comando: {{{
sudo sh -c "echo 'setprofile /percorso/al/binario' > /proc/pid/attr/current"
}}}
<>
= Creazione di un nuovo profilo =
== Progettare un piano di test ==
Provare a pensare a come è possibile mettere sotto tortura l'applicazione. Il piano di test dovrebbe essere diviso in casi di test più piccoli. Ciascun caso di test dovrebbe avere una piccola descrizione ed elencare i passi da seguire.
Alcuni casi di test standard sono:
* avviare il programma
* arrestare il programma
* ricaricare il programma
* controllare tutti i comandi supportati dallo script di init
== Generare il nuovo profilo ==
Usare ''aa-genprof'' per generare un nuovo profilo.
Da un terminale, usare il comando ''aa-genprof'': {{{
sudo aa-genprof eseguibile
}}}
Esempio: {{{
sudo aa-genprof slapd
}}}
Maggiori informazioni sono disponibili nella pagina di manuale: {{{
man aa-genprof
}}}
== Includere il proprio nuovo profilo nel pacchetto apparmor-profiles ==
Per fare in modo che il proprio nuovo profilo sia incluso nel pacchetto ''apparmor-profiles'', aprire in Launchpad un bug per il [[https://bugs.launchpad.net/ubuntu/+source/apparmor/+filebug|pacchetto AppArmor]]:
* includere il proprio piano di test e i casi di test
* allegare il proprio profilo al bug
<>
= Aggiornamento dei profili =
Quando il programma non si comporta in modo corretto, vengono inviati dei messaggi di audit ai file di registro. È possibile usare il programma ''aa-logprof'' per scansionare i file di registro in cerca dei messaggi di '''!AppArmor''', revisionare tali messaggi e aggiornare i profili: {{{
sudo aa-logprof
}}}
Maggiori informazioni sono disponibili nella pagina di manuale: {{{
man aa-logprof
}}}
= Ulteriori risorse =
* [[https://help.ubuntu.com/community/AppArmor|Documento originale su ubuntu.com]]
* [[http://en.opensuse.org/SDB:AppArmor_geeks]]: utilizzo dettagliato di apparmor
* [[http://www.novell.com/documentation/apparmor/index.html?page=/documentation/apparmor/apparmor_user/data/bktitleuser.html|Guida rapida e Guida di Amministrazione su Novell Doc]]
----
CategorySicurezza CategoryDaRevisionare