User Tools

Site Tools


cn:ccr:formazione:centos7:2018-11:selinux

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cn:ccr:formazione:centos7:2018-11:selinux [2018/11/29 08:39] brunengo@infn.itcn:ccr:formazione:centos7:2018-11:selinux [2018/11/29 14:01] (current) brunengo@infn.it
Line 1: Line 1:
 +====== SELinux ======
 +
 +==== Setup iniziale ====
 +
 +Installazione dei pacchetti necessari al management di SELinux.
 +<code>
 +[root@statichostname ~]# yum -y install policycoreutils selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans policycoreutils-devel selinux-policy-devel
 +</code>
 +
 +Attivazione di SELinux e relabel del file system
 +<code>
 +[root@statichostname ~]# vi /etc/selinux/config
 +[root@statichostname ~]# grep ^SELINUX= /etc/selinux/config 
 +SELINUX=enforcing
 +[root@statichostname ~]# touch /.autorelabel
 +[root@statichostname ~]# reboot
 +</code>
 +
 +Creazione utenti
 +<code>
 +[root@statichostname ~]# useradd user1
 +[root@statichostname ~]# useradd user2
 +[root@statichostname ~]# # set password (user1/user1, user2/user2)
 +</code>
 +
 +==== Esercitazione 1 ====
 +
 +  - Visualizzazione dello stato di SELinux
 +  - Visualizzazione del context dei processi di systemd e cron
 +  - Visualizzazione del context dei file /etc/passwd, /etc/shadow, /etc/cron.d (verificare la presenza degli extended attributes corrispondenti)
 +  - Visualizzazione degli SELinux user e associazione con role e level
 +  - Visualizzazione della associazione degli user agli SELinux user
 +  - Visualizzare i context di httpd e della sua DocumentRoot ed identificare la rule che permette l'accesso\\ Utilizzare sesearch (man sesearch) per trovare la rule)
 +  - Verificare che cambiando il context type di /var/www/html/index.html in var_t l'accesso a httpd e' negato, quindi restorare il context del file e verificare che l'accesso e' consentito
 +  - Spostare la DocumentRoot di httpd in /www/html\\ Per fare questo si deve: modificare la configurazione di httpd, creare la nuova document root, verificare che non funziona, assegnare il default context (semanage fcontext), e modificare il context (restorecon)
 +
 +
 +==== Esercitazione 2 ====
 +
 +
 +  - Utilizzare seinfo per visualizzare l'esistenza di un type init_t, l'elenco degli attributi associati a questo type e verificare che domain sia tra questi
 +  - Utilizzare seinfo per visualizzare l'esistenza dell'attribute domain, l'elenco di type che hanno domain tra i loro attributi e verificare che init_t sia tra questi
 +  - Domain transition: identificare le policy che permettono la domain transition da systemd a httpd
 +    - Visualizzare domain e type di systemd, httpd, /usr/sbin/httpd
 +    - Verificare l'esistenza di una rule che permetta a systemd di eseguire /usr/sbin/httpd
 +    - Verificare che esista una rule che definisca che il type dell'eseguibile sia entrypoint del dominio di destinazione
 +    - Verificare che esista una rule che permette al parent domain (init_t) una transizione verso il destination domain (httpd_t)
 +    - Verificare l'esistenza di una transition rule che definisca il default destination domain conseguente alla esecuzione di un eseguibile di type httpd_exec_t da parte di un processo di domain init_t
 +
 +
 +==== Esercitazione 3 ====
 +
 +
 +  - Confinamento di un utente: confinare user1 a user_u (verifica impossibilita' di fare su)
 +    - Visualizzazione context del processo di login dell'utente user1 e verifica che l'utente user1 possa eseguire su e diventare user2
 +    - Confinare il linux user user1 associandolo all'SELinux user user_u
 +    - Verificare che user1, il cui dominio attuale e' user_t, non puo' fare su e diventare user2
 +  - Visualizzazione del policy module apache
 +  - Abilitare tramite boolean httpd a leggere le home directory degli utenti
 +
 +
 +==== Esercitazione 4 ====
 +
 +  - Generare un messaggio di errore eseguendo il comando **su** come user **user1**
 +  - Analizzare l'errore e generare un modulo che contenga le rule per rendere lecita l'operazione
 +  - Caricare il modulo generato e verificare che l'operazione ora e' permessa
 +  - Disabilitare e rimuovere il modulo, verificando che l'operazione e' nuovamente proibita
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki