SELinux. di Maurizio Pagani

Похожие документы
OpenVAS - Open Source Vulnerability Scanner

FtpZone Guida all uso Versione 2.1

Registratori di Cassa

MANUALE PARCELLA FACILE PLUS INDICE

Gestione delle Presenze WorkFlow Manuale Operativo

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Security Enhanced Linux (SELinux)

InitZero s.r.l. Via P. Calamandrei, Arezzo

Il sistema C.R.M. / E.R.M.

FtpZone Guida all uso

Mac Application Manager 1.3 (SOLO PER TIGER)

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

DINAMIC: gestione assistenza tecnica

SharePoints è attualmente disponibile in Inglese, Italiano e Francese.

GUIDA UTENTE BILLIARDS COUNTER (Vers )

Amministrazione gruppi (Comunità)

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

Protezione. Protezione. Protezione. Obiettivi della protezione

CONTENT MANAGEMENT SY STEM

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Product Shipping Cost Guida d'installazione ed Utilizzo

Procedura di installazione di Xubuntu 8.10 su un PC

GateManager. 1 Indice. tecnico@gate-manager.it

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Manuale Utente Amministrazione Trasparente GA

SERVIZIO PAGHE ON-LINE

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

L amministratore di dominio

1. Il Client Skype for Business

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

SOMMARIO... 3 INTRODUZIONE...

GESGOLF SMS ONLINE. Manuale per l utente

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Manuale Terminal Manager 2.0

Manuale Utente Albo Pretorio GA

Creare un sito Multilingua con Joomla 1.6

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

GUIDA UTENTE PRIMA NOTA SEMPLICE

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

FPf per Windows 3.1. Guida all uso

Word processor funzione Stampa Unione

Progetto NoiPA per la gestione giuridicoeconomica del personale delle Aziende e degli Enti del Servizio Sanitario della Regione Lazio

Guida all uso di Java Diagrammi ER

PORTALE CLIENTI Manuale utente

Gestione Risorse Umane Web

Guida alla registrazione on-line di un DataLogger

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

DATA BASE ON LINE (BANCA DATI MODULI SPERIMENTALI)

6.3 Invio Estratto Conto, Recupero Crediti e Rubrica

File, Modifica, Visualizza, Strumenti, Messaggio

Gestione Risorse Umane Web Work-flow Selezione

Installazione MS SQL Express e utilizzo con progetti PHMI

1) GESTIONE DELLE POSTAZIONI REMOTE

Manuale per la configurazione di AziendaSoft in rete

ESSE 3 GUIDA DOCENTI PER LA GESTIONE DEI REGISTRI DELLE LEZIONI e DEGLI IMPEGNI (AGGIORNATO AL 20/04/2015)

Manuale Servizio NEWSLETTER

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.

Amministrazione classi

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

2.1 Installazione e configurazione LMS [4]

ImporterONE Export Plugin Magento

Joomla: Come installarlo e come usarlo. A cura di

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Gestionalino-Base è un Software che gestisce altri Software Specifici progettati per

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

Xampp. Valeriano Maysonnave - A.A. 2014/2015 -

Guida informatica per l associazione #IDEA

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

PowerPoint. Guida introduttiva

Guida di Pro Spam Remove

Guida Migrazione Posta Operazioni da effettuare entro il 15 gennaio 2012

Guida Software GestioneSpiaggia.it

SIMULAZIONE CIRCUITI LOGICI CON LOGISIM

Regimi IVA Speciali MULTI. Gestione Beni Usati

Laboratorio di reti Relazione N 5 Gruppo 9. Vettorato Mattia Mesin Alberto

Condividere contenuti online

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Guida all utilizzo del CRM

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Samba: guida rapida - Guide@Debianizzati.Org

MICHELANGELO Piattaforma autorizzativa per la gestione di interventi riservata ai fornitori


Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

VADEMECUM TECNICO. Per PC con sistema operativo Windows XP Windows Vista - Windows 7

TUTORIAL. Come compilare il Modulo Ordine Spedizione per spedire un pacco con SpedireAdesso.com

NOZIONI BASE SHELL E SCRIPT LINUX

SPRING SQ COMUNICAZIONE OPERAZIONI IVA NON INFERIORI A 3000 EURO PER L ANNO 2011

2. LOGIN E RECUPERO DATI DI ACCESSO

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

IP CONTROLLER IPC-3008/ IPC-3108 IPC-3002 / IPC-3102

Транскрипт:

SELinux di Maurizio Pagani 1. Introduzione Il SELinux (Security-Enhanced Linux) è un prodotto di sicurezza creato dalla NSA (National Security Agency) che gira direttamente nel kernel, implementando così un sistema di Mandatory Access Control. È un modulo installato di default nel kernel RedHat (Redhat Enterprise, Fedora, CentOS). Nei sistemi Unix/Linux si usa un concetto di sicurezza chiamato DAC (Discrectionary Access Control), Prima di andare avanti spieghiamo la differenza tra DAC e MAC, cosi da poter capire il perché migrare da un DAC ad un MAC e quindi i motivi che ci giustificano la migrazione di tale implementazione e l uso di prodotti come SELinux. 1.1 DAC vs MAC DAC: Il Discrectionary Access Control è un modello di sicurezza ed è usato nei nostri sistemi tradizionali quali Solaris/AIX/hp-ux/Linux/BSD e cosi via. Comunemente conosciuto perché i permessi vengono gestiti via sette bit, ovvero: rwx r = 4, w = 2, x = 1. Vedete l esempio di un ls l: Sulla prima colonna a sinistra troviamo le tre colonne con i sette bit che gestiscono i permessi di quel file, le colonne come sappiamo, sono in ordine da sinistra verso destra: user-group-other. Questo concetto quindi è basato sulle ACL (Access Control List).

Questo è un sistema del tutto inadeguato per un ambiente dove la sicurezza sta al primo posto, proprio perché l unico utente che sarà in grado di fare tutto è root ovvero l amministratore, mentre gli altri utenti ordinari hanno le stesse grant, e possono essere gestite solo tramite questi sette bit. MAC: Il Mandatory Access Control è basato principalmente su due concetti: oggetti (object) e soggetti (subject). Gli oggetti sono i file, directory e device, mentre i soggetti sono un utente che avvia un comando, un applicazione, un processo, un thread e via dicendo. Lo scopo del MAC sta nel controllare che tali subject comunichino con l object richiesto. Ad esempio se un utente Apache va ad interagire con il tool postfix c è qualcosa che non quadra e quindi viene bloccato. Tutto questo viene gestito tramite le policy che è appunto il file dove inseriremo quale subject può comunicare con quali object. Faccio un esempio, mettiamo caso che ci sia la necessità di dover configurare l utente apache che sia in grado di dover interagire con l applicazione apache ed i suoi processi, e in tutto questo nessun altro potrà, neanche root. Faccio notare che non c è più un livello gerarchico del tipo: root è l amministratore e tutto il resto è ordinario, poiché con le policy decidiamo noi una volta implementate, chi, è proprietario di cosa. Vediamo un esempio di ls Z con SELinux:

1.2 Architettura Di sotto riporto un esempio dell architettura di un kernel con SELinux implementato. 2. SELinux Contexts (Contesti SELinux) Processi e files sono etichettati (labeled) con un SELinux context che contiene tre tipi di informazioni: SELinux user, role, type e, se disponibile, un livello. Quando SELinux è in running queste informazioni (context) servono per il controllo degli accessi (access control decisions). In RedHat Enterprise Linux, SELinux ha i seguenti componenti: Role-Based Access Control (RBAC), Type Enforcement(TE), e opzionalmente, Multi-Level Security (MLS). Un esempio di SELinux Contexts: Spieghiamo la screenshot sopra incollata: system_u = user object_r = role admin_home_t = type s0 = level syntax

SELinux User Il SELinux user è l identità specificata all interno di una policy, è una parte del SELinux contexts al quale poi viene allegato uno o più ruoli. Un SELinux user non è altro che un Linux user mappato all interno del prodotto SELinux, ovviamente per vedere quale utente SELinux è l equivalente Linux user esiste un comando che è: semanage login l. Vediamo un esempio dell output: Dalla prima colonna vediamo il Login Name che equivale agli utenti Linux, la seconda colonna SELinux User riporta gli utenti SELinux, la terza ed ultima colonna descrive i livelli MLS/MCS Range Multi-Level Security e Multi-Category Security. Role (Ruolo) Come spiegato prima, SELinux ha come componente RBAC (Role-Based Access Control), il ruolo è un attributo dello stesso, e serve per dare un ruolo appunto agli utenti e i ruoli poi vengono abilitati dai Domini, quindi il ruolo fa da intermediario tra domini e SELinux User. Il Ruolo serve per controllare su che tipo di oggetto è autorizzato ad accedere l utente. Type (Tipo) Il type serve per specificare domini e tipi, la differenza è che un dominio è per i processi, mentre i tipi sono per i file, tramite la policy se ci sono regole precise, si decide se tali domini possono accedere altri domini e se tali domini possono accedere ad altri file, quindi immaginate processi di apache che non possono comunicare con un processo dei terminali, cosi da non rilasciare shell a utenti applicativi. Level (Livello) Il livello è una parte del MLS (Multi-Level Security) e MCS (Multi-Category Security). La sintassi del MLS è un low-level.high-level se i livelli sono diversi, se invece sono uguali come ad esempio s1.s1 il livello unico è s1.

La coppia è intesa come sensibilità categoria, questo: s0.c0 significa s0 = sensibilità 0 e c0 = categoria 0, per vedere ogni categoria come è classificata, vedere il file /etc/selinux/targeted/setrans.conf. 2.1 Domain Transitions Una transizione tra domini avviene per gestire il perimetro dei processi/programmi, ad esempio: un processo sendmail che avrà un dominio sendmail_t non ha senso che comunichi con un dominio di tipo mount_exec_t (che serve per eseguire il mount di un device). Il processo per la transizione tra un dominio e l altro avviene con i seguenti step: Il processo sendmail con dominio sendmail_t avvia una richiesta che richiama il comando mount ; Qui avviene il check da parte del SELinux: controlla la policy e verifica che ci sia l entrypoint che dà il permesso ad un dominio di accedere ad un altro; Una volta verificato che l entrypoint non esiste l accesso non viene consentito e la transizione è terminata. Come già anticipato prima, la transazione tra i due domini sendmail_t e mount_exec_t non è eseguita poiché non c è motivo che dialoghino. Questa negazione la troviamo di default anche nella Targeted Policy che è quella di default su Red Hat Enterprise Linux.

2.2 SELinux Contexts for Processes Per visualizzare il Context dei processi, lanciare il comando ps ez : Importante: system_r è il ruolo che la policy Type Enforcement usa per i processi, e tenere sempre presente che i type sono definiti domini per i processi e type per i file.

2.3 SELinux Contexts for Users Per vedere il Context per gli utenti lanciare il comando id Z : 3. Amministrazione del servizio SELinux 3.1 Logging La parte logging su SELinux viene gestita da due demoni, il primo è auditd e l altro è rsyslogd. Il file principale è /var/log/audit/audit.log, vediamo un esempio di questo log: Come potete vedere, si può interpretare senza dare nessuna spiegazione. 3.2 File di configurazione Principale Il file principale di configurazione del SELinux dove appunto si può settare la policy da usare e il tipo di livello da usare è /etc/sysconfig/selinux: Spieghiamo velocemente: la prima stringa SELINUX=enforcing stà ad indicare il livello che deve usare SELinux:

ENFORCING: questo livello viene usato per far si che SELinux applichi le policy sul sistema. PERMISSIVE: questo livello fa si che SELinux sia impostato in modalità auditing, ovvero non applica nessuna policy al sistema, ma logga tutto quanto come se fosse attivo. Ottimo per le operazioni di troubleshooting. DISABLED: Come dice la parola stessa, con questa opzione il SELinux è disabilitato ed al riavvio non verrà caricato alcun modulo sul kernel. La seconda stringa SELINUXTYPE=targeted indica il tipo di policy che deve essere usata, in questo caso targeted è la policy di default che usa REDHAT. 3.3 Amministrazione SELinux L amministrazione si divide in due campi, la prima è il cambiamento di livello a caldo che può essere solo da enforced e permissive, ed avviene con il comando setenforce. Se lanciamo il comando setenforce 0 SELinux passa in modalità permissive, altrimenti se cambiamo il parametro e mettiamo il numero 1 (es. setenforce 1) passiamo in modalità enforced. Per vedere in che livello ci troviamo, usiamo il comando getenforce. Ora la seconda parte è la gestione dei boolean, lanciando il comando: semanage boolean l avremo il seguente output: Come potete vedere ci sono le varie direttive configurate nelle policy (targeted di default) che sono settate con on o off, vedrete che lanciando il comando ci saranno molte opzioni oltre a queste poche che sono presenti nella screenshot. Un comando analogo per la lista dei boolean è:

Ora per modificare le boolean da off ad on o viceversa si effettua con il comando: Setsebool è il comando con il quale possiamo amministrare le boolean e gestire quindi la policy targeted di REDHAT. Licenza d'uso Attribuzione - Non commerciale - Non opere derivate, secondo i criteri internazionali Creative Commons (http://creativecommons.org/licenses/by-nc-nd/2.5/it/)