UNIVERSITA DEGLI STUDI PARTHENOPE - FACOLTA DI SCIENZE E TECNOLOGIE CORSO DI LAUREA MAGISTRALE IN INFORMATICA APPLICATA - A.A.



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

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

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

IRSplit. Istruzioni d uso 07/10-01 PC

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

La VPN con il FRITZ!Box Parte II. La VPN con il FRITZ!Box Parte II

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

Il web server Apache Lezione n. 3. Introduzione

Installazione LINUX 10.0

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Supporto On Line Allegato FAQ

BMSO1001. Orchestrator. Istruzioni d uso 02/10-01 PC

Installazione di GFI Network Server Monitor

UTILIZZO DEL SOFTWARE MONITOR

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

FPf per Windows 3.1. Guida all uso

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

DW-SmartCluster (ver. 2.1) Architettura e funzionamento

Manuale per la configurazione di AziendaSoft in rete

Online Help StruxureWare Data Center Expert

Guida all installazione di Easy

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Installazione e caratteristiche generali 1

Web Application Libro Firme Autorizzate

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Integrazione del progetto CART regione Toscana nel software di CCE K2

CONFIGURARE IL DISPOSITIVO DI TELEASSISTENZA

Setup dell ambiente virtuale

Architettura di un sistema operativo

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

MyFRITZ!, Dynamic DNS e Accesso Remoto

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

GUIDA PER IL DOCENTE ALL UTILIZZO DELL APPLICATIVO ONLINE E PORTFOLIO

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Mac Application Manager 1.3 (SOLO PER TIGER)

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

System Center Virtual Machine Manager Library Management

SOMMARIO... 3 INTRODUZIONE...

MANUALE UTENTE Fiscali Free

Software di gestione della stampante

e/fiscali - Rel e/fiscali Installazione

Guida Compilazione Piani di Studio on-line

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Supporto On Line Allegato FAQ

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

Corso di Informatica

Gestione Risorse Umane Web

Installazione & Configurazione Php e MySQL su Mac Os X. Php

I TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.

GE 032 DESCRIZIONE RETI GEOGRAFICHE PER MX 650

Virtualizzazione VirtualBox su Host Windows

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Apache 2, PHP5, MySQL 5

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

Invio SMS. DM Board ICS Invio SMS

flusso delle informazioni... 2 password... 3 password/ inserimento di una nuova richiesta... 4 le condizioni di vendita... 6

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

DINAMIC: gestione assistenza tecnica

MANUALE D USO MA-PMX-U-SFW

Intel One Boot Flash Update Utility Guida dell utente

FAQ DI INSTALLAZIONE DI INAZIENDA Rev.2

Registratori di Cassa

VMware. Gestione dello shutdown con UPS MetaSystem

developed by Emanuele De Carlo

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

Manuale Utente Albo Pretorio GA

GUIDA UTENTE MONEY TRANSFER MANAGER

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Software Servizi Web UOGA

Configurazione avanzata di XAMPP

SDD System design document

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

Informazioni relative al Decreto legislativo 30 giugno 2003, n Codice in materia di protezione dei dati personali

MANUALE INSTALLAZIONE E CONFIGURAZIONE

Approccio stratificato

Dynamic 07 -Software per la lettura ottica e data capture. G.Q.S. Srl Global Quality Service Via Bernini, 5/7 Corsico (MILANO)

OmniAccessSuite. Plug-Ins. Ver. 1.3

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

Firewall applicativo per la protezione di portali intranet/extranet

2.1 Configurare il Firewall di Windows

Attivazione della connessione PPTP ADSL

1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio

WebFax- manuale utente

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

CONFIGURAZIONE E GESTIONE DEI DATABASE (rev. 1.1)

Come Installare SQL Server 2008 R2 Express Edition With Tools

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27

File Server Resource Manager (FSRM)

Software di interfacciamento sistemi gestionali Manuale di installazione, configurazione ed utilizzo

Procedure di ripristino del sistema.

Windows Web Server 2008 R2 64bit 1x Processore Intel Atom Dual (2x core 1.80 GHz) Dispositivo di memorizzazione flash esterno 32GB

Manuale LiveBox WEB ADMIN.

Guida all amministrazione VPH Webmin/Virtualmin

Transcript:

UNIVERSITA DEGLI STUDI PARTHENOPE - FACOLTA DI SCIENZE E TECNOLOGIE CORSO DI LAUREA MAGISTRALE IN INFORMATICA APPLICATA - A.A. 2010-2011 SICUREZZA DEI SISTEMA INFORMATICI studente:gianfx PROGETTO OPERATIVO PARA VIRTUALIZZAZIONE NATIVA IN SOLARIS 11 EXPRESS pag. 1

INDICE Parte compilativa Premessa pag. 3 Introduzione alle zone pag. 3 Istallazione di una zona pag. 4 Disamina dei principali comandi e parametri pe la definizione di nuove zone pag. 6 Istallazione di una zona configurata pag. 7 Preconfigurazione delle zone pag. 8 Clonazione di una zona pag. 8 Aspetti innovativi sulla virtualizzazione nativa in Oracle Solaris 11 expresspag. 9 Virtualizzazione di rete pag. 10 Parte sperimentale Introduzione pag. 11 Istallazione e configurazione della zona master pag. 13 Personalizzazione della zona master pag. 15 Creazione della database-zone mediante clonazione pag. 17 Configurazione database-zone pag. 18 Script shell di auto clonazione e configurazione delle zone pag. 19 Ultimazione della preconfigurazione mediante sysidcfg file pag. 23 Il webserver Apache 2.2 e i permessi di esecuzione pag. 24 Script PHP di creazione interfacce utente pag. 24 Conclusione pag. 25 pag. 2

PARTE COMPILATIVA PREMESSA In ambito aziendale i server sono solitamente impiegati per fornire la massima resa rispetto alle potenzialità computazionali e di memoria. Questo impiego massivo comporta l attivazione di notevoli istanze e innumerevoli servizi su un singolo main frame ampliando in questo modo la superficie d attacco al sistema stesso. Un attaccante, indivuduato un servizio mal configurato o affetto da bug, può in questo modo avere l accesso al sistema con privilegi di root. Una soluzione per ottimizzare l impiego delle risorse di main frame aziendali può essere quella della frammentazione dei sistemi (e quindi dei servizi da questi offerti) e il conseguente isolamento dei servizi mediante la virtualizzazione. L idea è quella di utilizzare macchine virtuali, ospitate da un host (main frame), su cui distribuire pochi servizi specifici, frammentando così la superficie d attacco in modo tale che un attaccante, individuata una vulnerabilità, possa al massimo prendere il controllo di una sola o poche macchine virtuali. L impiego generale di questa tecnica ha tuttavia scoraggiato molti amministratori a causa dei costi sia economici che di inevitabile overhead. Oracle Solaris dalla versione 10 ha implementato nel sistema operativo una virtualizzazione nativa a livello kernel che permette l isolamento dei servizi in zone amministrabili separatamente con un minimo di overhead. Questa soluzione, insieme alle caratteristiche di sicurezza offerta dal filesystem ZFS rende sistemi ben configurati basati su Oracle Solaris estremamente sicuri. La presente relazione di progetto ha lo scopo di evidenziare questi aspetti peculiari del sistema Solaris attraverso un esempio di impiego. Il progetto prevede l impiego di un sistema operativo Oracle Solaris 11 express installato su architettura x86 a 32 bit connesso ad una rete lan TCP/IP di classe C. Introduzione alle Zone. Un Container Solaris è una tecnologia che mette insieme il controllo delle risorse hardware e l isolamento del software all interno delle cosiddette Solaris Zone (zone). Una zona, quindi, è un sistema operativo virtualizzato creato all interno di una singola istanza di Oracle Solaris. Quando viene creata una zona si produce un ambiente di esecuzione delle applicazioni dentro il quale i processi sono isolati dal resto del sistema. Questo isolamento non consente a processi in esecuzione in una zona di controllare processi in esecuzione in altre zone anche quando questi processi sono eseguiti con privilegi di superutente. Con le Zone di Oracle Solaris è possibile implementare un modello di sistema basato su un applicazione per ogni server condividendo allo stesso tempo le risorse hardware tra i server virtualizzati. I Container costituiscono una tecnologia fondamentale grazie alla quale i sistemi Solaris raggiungono prestazioni elevate rispetto anche ai costi di mantenimento (consumi, raffreddamento, manutenzione ecc). La virtualizzazione è talmente radicata che in Solaris il pag. 3

sistema reale viene denominato zona globale (Global-Zone) a differenza dei sistemi virtuali denominati Non-Global Zone. Questa tecnologià può essere usata su macchine con architettura hardware X86 e SPARC su cui è installato il sistema operativo Oracle Solaris 10 o versioni successive. Il limite massimo per il numero di zone attivabili su un tale sistema è 8192. Tuttavia il numero che effettivamente puo essere implementato nella configurazione su un singolo sistema dipende dalla richesta di risorse che le applicazioni in esecuzione sulle zone richiedono al sistema. Il modello di file system per la zone sulla versione 11 di Oracle Solaris prevede un file system per l intera radice delle directory della zona. Questo modello (whole root) consente la massima configurabilità consentendo l installazione di tutto il software richiesto per le zone e di ogni altro pacchetto opzionale installato nel file system privato della zona. In Solaris 10 l amministratore può scegliere di personalizzare l installazione dei pacchetti software nelle zone facendo ereditare una parte dei pacchetti della global zone. Questo modello è denominato sparse root e consente di limitare lo spazio occupato dalle zone che condividono in questo modo alcuni pacchetti software e librerie (in sola lettura) con la zona globale. La mancata specifica dei pacchetti ereditabili comporta l istallazione nella zona globale di tutto il sotto insieme software previsto di default. Una zona non globale può essere accessoriata con software aggiuntivo che resterà installato solo in essa e non nella zona globale. Istallazione di una zona Solaris. pag. 4

Un amministratore della global-zone o un utente a cui sono stati assegnati i profili standard di amministrazione zone, attraverso il comdando zonecfg puo speficifare le caratteristiche di base della zona da installare (es path della zona, interfaccia di rete, directory condivise, autoboot, risorse HW assegnate ecc). La zona configurata viene successivamente installata attraverso il comando di amministrazione zone zoneadm. Lo stesso comando, con opportuni parametri puo essere usato per disinstallare una zona, fare il boot, shutdown o settare un diverso stato di zona. In particolare una zona può avere 6 diversi stati descritti nella tabella sottostante: STATO DESCRIZIONE Configured Incomplete installed Ready Running shutting down and down La zona è stata configurata tramite il comando zonecfg ed è stata associata ad un path disponibile. Tuttavia sono necessari ulteriori configurazioni post-boot (nameservice, root password, timezone ecc.) Durante tutta la fase i installazione e disinstallazione il comando zonadm mette la zona in questo stato (stato transitorio) Se la fase di installazione tramite il comando zoneadm -z nome-zona boot termina a buon fine la zona viene marcata come installed ovvero pronta per il boot. Questo stato caratterizza una zona la cui piattaforma virtuale è stata stabilita ma nessun processo della zona è stato ancora avviato. I processi utente sono stati avviati e l ambiente virtuale è in esecuzione. Sono stati di transizione durante la fase di spegnimento della piattaforma virtuale. pag. 5

Disamina dei principali comandi e parametri per la definizione di nuove zone in Solaris. Come descritto sopra la prima fase per l istallazione di zone in Oracle Solaris consiste nella configurazione della zona mediante il comando zonecfg. Di seguito vengono messi in evidenza i comandi principali di questa fase: global# zonecfg -z my-zone my-zone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg avvisa che essendo la prima volta che si configura questa zona bisogna crearla con il comando create. Creazione della zona: zonecfg:my-zone> create definizione della locazione (nella zona globale) del filesystem della zona: zonecfg:my-zone> set zonepath=/zones/my-zone definizione della modalità di avvio della zona: zonecfg:my-zone> set autoboot=true definizione del numero di cpu e valutazione di importanza sullo scheduling della cpu: zonecfg:my-zone> add dedicated-cpu zonecfg:my-zone:dedicated-cpu> set ncpus=1-2 zonecfg:my-zone:dedicated-cpu> set importance=10 zonecfg:my-zone:dedicated-cpu> end aggiunta di filesystem alla zona: zonecfg:my-zone> add fs definizione del punto di mount (nel filesystem della zona): zonecfg:my-zone:fs> set dir=/usr/my_dir specifica della directory nella global-zone: zonecfg:my-zone:fs> set special=/opt/zones/my-zone/local definisce il tipo di file sistem: zonecfg:my-zone:fs> set type=lofs zonecfg:my-zone:fs> end pag. 6

Nella parte sperimentale i comandi di definizione del filesystem sono stati utilizzati per creare una directory condivisa tra le zone. definizione di package sofware in sola lettura (condiviso con la global zona). Questa definizione non deve essere utilizzata se si vuole ottenere un sistema whole root in quanto il software condiviso non può essere rimosso nè sostituito. zonecfg:my-zone> add inherit-pkg-dir zonecfg:my-zone:inherit-pkg-dir> set dir=/opt/software zonecfg:my-zone:inherit-pkg-dir> end definizione del tipo di interfaccia di rete per la zona (scelta tra shared e exclusive): zonecfg:my-zone> set ip-type=exclusive definizione dell interfaccia di rete per la zona: zonecfg:my-zone> add net zonecfg:my-zone:net> set address=192.168.0.1 zonecfg:my-zone:net> set physical=e1000g0 zonecfg:my-zone:net> set defrouter=10.0.0.1 zonecfg:my-zone:net> end Con la definizione del tipo exclusive è possibile creare una zona per il routing all interno del sistema virtuale. In caso di tipo shared invece non è possibile configurare nè i parametri dell interfaccia di rete nè le tabelle di routing. prima di uscire dalla configurazione i seguenti comandi verificano e confermano la configurazione: zonecfg:my-zone> verify zonecfg:my-zone> commit zonecfg:my-zone> exit La configurazione sopra descritta è effettuabile anche in modalità sub-command. Tale modalità risulta molto utile quando la configurazione è affidata ad uno script shell. global# zonecfg -z my-zone "create ; set zonepath=/export/home/my-zone" Un altra modalità di configurazione, adottata anche nella parte sperimentale di questo lavoro, è quella che utilizza un file che contiene le direttive di configurazione: global# zonecfg -z my-zone -f file_conf Istallazione di una zona configurata. L istallazione di una zona configurata con i comandi evidenziati nel paragrafo precedente viene effettuata tramite il comando zoneadm: global# zoneadm -z my-zone install pag. 7

La fase di istallazione consiste nel replicare il filesystem della zona. La procedura può impiegare diversi minuti. Per disinstallare una zona: global# zoneadm -z my-zone uninstall Per verificare lo stato di tutte le zone configurate (compresa la global zone): global# zoneadm list -iv per avviare, riavviare, spegnere e disistallare una zona configurata e istallata: global# zoneadm -z my-zone boot global# zoneadm -z my-zone reboot global# zoneadm -z my-zone halt global# zoneadm -z my-zone uninstall Per rimuovere completamente una zona configurata: global# zonecfg -z my-zone delete ; Preconfigurazione della zona. Per effettuare il login in una zona istallata e avviata è necessario, solo al primo accesso, effettuare la configurazione dei servizi di rete e di altri settaggi tramite il comando zlogin -C myzone. Questo aspetto viene trattato in modo specifico nella parte sperimentale di questo lavoro. Clonazione di una zona. La clonazione di una zona non globale viene effettuata per ottenere una zona clonata con package identico alla zona da clonare. La fase di preconfigurazione al login con zlogin -C myzone-cloned permette di differenziare i parametri univoci (ip, nomehost, dns, timezone ecc.). Le fasi di una clonazione prevedono l esportazione del file di configurazione e la clonazione vera e propria: global# zonecfg -z zone1 -f /export/zones/master global# zoneadm -z zone1 clone my-zone L operazione di clonazione, a differenza dell istallazione, è molto veloce ed impiega al massimo pochi secondi. pag. 8

Aspetti innovativi sulla virtualizzazione nativa in Solaris 11 Express. La seguente parte sperimentale del presente progetto è stata implementata utilizzando la recente versione rilasciata da Oracle di Solaris ovvero la versione 11 Express pertanto di seguito verranno evidenziate le peculiarità e i miglioramenti della virtualizzazione di quest ultima versione: Facilità di istallazione di nuovo software nelle zone grazie all integrazione del sistema di packaging IPS (Image packaging System); Supporto alla precedente versione 10 di Solaris per lasciare inalterato il funzionamento delle applicazioni ad essa legate; Integrazione di una nuova architettura di rete; Miglioramento delle utilità di analisi delle zone; Permessi di amministrazione delegata ai proprietari di specifiche zone. Questa caratteristica sfrutta le potenzialità offerte dal sistema RBAC di Solaris per consentire, ad esempio, ad un determinato utente di amministrare (clonare, avviare, rimuovere) una sola o più specifiche zone; Stretta integrazione con il filesystem ZFS che consente di dedicare singoli dataset ZFS per ogni zona; ZFS diventa il filesystem di default consentendo una facile manutenzione (ripristino, backup avanzati ecc.). Non sono più supportate le zone in modalità sparse root e la fase di istallazione richiede una connessione di rete attiva per essere completata; pag. 9

Virtualizzazione di rete in Oracle Solaris 11 La virtualizzazione nativa descritta nei precedenti paragrafi evidenzia la versatilità offerta dai comandi al solo fine di replicare (virtualmente) varie istanze del sistema host Solaris senza entrare nel merito della condivisione dei device di rete. In particolare le configurazioni viste nei comandi d esempio riguardano la modalità di configurazione shared. Tale modalità consente di aggiungere in fase di configurazione un indirizzamento di rete alla zona associata al device di rete condiviso. La modalità shared non consente agli utilizzatori della zona di effettuare modifiche allo stack di rete. In alternativa Solaris propone la modalità di configurazione exclusive ovvero l assegnazione esclusiva del device di rete alla zona. Questa modalità consente di effettuare modifiche allo stack di rete (indirizzamento, routing ecc.) della zona. L esclusività all uso dei device di rete da parte delle zone limita fortemente la condivisione (spesso necessaria) dei device di rete fisici con la zona globale. Tale problematica può essere agevolmente superata utilizzando la virtualizzazione di rete Solaris. Questa tecnologia consente di creare un numero arbitrario di device di rete virtuali in modo emulare una vera e propria rete fisica tra le zone a livello kernel. E possibile quindi creare oltre a interfacce di rete anche switch di rete (etherstub) per l interconnessione tra device virtuali e reali, ponti tra connessioni (bridge), aggragazioni ecc. delegando l eventuale indirizzamento tra diverse sottoreti ad apposite routing zone. L argomento accennato in questo paragrafo è in realtà molto complesso e merita trattazione separata. Di seguito viene riportato un grafico di una possibile applicazione della virtualizzazione di rete Solaris al progetto riportato in dettaglio nella parte sperimentale del presente lavoro. pag. 10

PARTE SPERIMENTALE Introduzione Il progetto operativo prevede l implementazione di un sistema di gestione di server virtuali basato sulla virtualizzazione nativa in Oracle Solaris. In questa parte saranno utilizzati parte dei comandi analizzati nella parte compilativa del presente lavoro contestualizzati al progetto in esame. Il sistema consente di creare delle macchine virtuali basate su O.S. Oracle Solaris 11 in modo automatico dall utente fruitore del servizio mediante un pannello di attivazione web. L implementazione del progetto è stata realizzata virtualizzando un sistema Oracle Solaris 11 express sotto la piattaforma VirtualBox. L hard disk virtuale (SolarisII.vdi) viene allegato alla presente realzione di progetto insieme ad altri file di configurazione. Le utenze di utilizzo con le relative password di tutti i sistemi in gioco (global-zone e zone) sono, per semplicità, sempre uguali: root -> SSI gianfx -> gianfx Le macchine virtuali forgiate dal sistema implementato forniscono i seguenti servizi di base già preconfigurati in un ambiente di rete lan di classe C 192.168.1.0/24 con accesso a Internet tramite gateway (reale) 192.168.1.1: 1. Completa disponibilità di un server virtuale Oracle Solaris 11 in modalità whole root ; 2. Accesso via ssh tramite credenziali di accesso provvisorie comunicate in fase di attivazione; 3. Accesso via ftp tramite credenziali di accesso provvisorie comunicate in fase di attivazione; 4. Web server Apache versione 2.2. con modulo php 5.2; 5. Database relazionale Oracle Mysql (non attivo di default); 6. Accesso a database remoto (database-zone) Mysql tramite credenziali di accesso counicate in fase di attivazione; 7. accesso a directory condivisa per file sharing tra utenti del sistema (proprietari delle zone) in /export/share/ La seguente immagine mostra lo schema generale del sistema, con relativo indirizzamento delle macchine virtuali e della global-zone. pag. 11

L attivazione delle macchine virtuali (zone) mediante interfaccia web (web application - zone activator) ha richiesto delle procedure per limitare la superficie di attacco alla sicurezza della global-zone. A tal scopo sono state sfruttate le potenzialità del sistema RBAC di Solaris, creando un profilo ad-hoc a cui sono stati assegnati tutti e soli i permessi necessari per effettuare le operazioni di configurazione ed esecuzione del progetto. Più avanti questo profilo sarà associato all utente webservd della global-zone con cui Oracle Solaris 11 esegue le istanze del webserver Apache 2.2. Assumiamo il predetto profilo con il nome di Gianfx Management e con le seguenti autorizzazioni. (stralcio file database /etc/security/exec_attr della global-zone):. Gianfx Management:solaris:cmd:::/usr/sbin/zonecfg:euid=0 Gianfx Management:solaris:cmd:::/usr/sbin/txzonemgr:euid=0 Gianfx Management:solaris:cmd:::/usr/sbin/zlogin:euid=0 Gianfx Management:solaris:cmd:::/usr/sbin/zoneadm:euid=0 Di seguito i comandi per l assegnazione del profilo creato ad-hoc Gianfx Management all utente webservd mediante il ruolo creato per la gestione delle utenze: gianfx@solarissi:~ su usermngr password: gianfx@solarissi:~pfexec usermod -P Gianfx Management webservd pag. 12

Istallazione e configurazione della zona master. La zona master consiste in una zona con brand ipkg di Oracle Solaris 11 quindi uno stesso sistema Solaris 11 virtulizzato. L idea è quella di effettuare la fase di istallazione di una nuova zona una sola volta, per poi utilizzare l istruzione di clonazione di zona. Il motivo di questa scelta sta nel fatto che la fase di istallazione di una zona, sebbene sia comunque molto veloce, consiste nel installare un sistema operativo che offre un accesso whole root ovvero con un corredo sofware indipendente dalla zona globale. Come anticipato nella parte compilativa l istallazione richiede una connessione attiva la cui velocità incide sui tempi di istallazione. La logica RBAC di Oracle Solaris 11 è stata applicata per la configurazione e l istallazione delle zone. Pertanto viene assegnato all utente gianfx il ruolo di zoneadm: #usermod -R root,zoneadm gianfx #su - gianfx gianfx@solarissi:~su zoneadm password: Il ruolo zoneadm è stato creato associandolo ai profili standard di Solaris 11 Zone Management e Zone Security : gianfx@solarissi:~$ cat /etc/user_attr grep zoneadm gianfx::::type=normal;roles=root,zoneadm,usermngr zoneadm::::type=role;profiles=zone Management,Zone Security Prima di procedere con l installazione della zona è necessario effettuare la configurazione di base utilizzando il comando zonecfg: gianfx@solarissi:~$ pfexec zonecfg -z master zonecfg:master> create zonecfg:master> set zonepath=/zones/master zonecfg:master> set autoboot=true zonecfg:master> add net zonecfg:master> set physical=e1000g0 zonecfg:master> set address=192.168.1.201 zonecfg:master> set defrouter=192.168.1.1 zonecfg:master> end zonecfg:master> add fs zonecfg:master> set dir=/export/share zonecfg:master> set special=/zones/share zonecfg:master> set type=lofs zonecfg:master> end zonecfg:master> verify zonecfg:master> committ pag. 13

zonecfg:master> exit La fase di installazione vera è propria viene avviata mediante il comando zoneadm: gianfx@solarissi:~$ pfexec -z master install La fase di istallazione in Oracle Solaris 11 prevede il download da repository online presso sun.com con un tempo di esecuzione legato anche alla velocità della connessione Internet. Nel caso in esame con global-zone virtualizzata tramite Virtualbox su macchina Linux - 4 GB RAM, processore Intel i7 e connessione ADSL 7Mbs, ha impiegato circa 15 minuti: Il file di configurazione della zona master viene salvato per essere utilizzato successivamente per le clonazioni di zona: gianfx@solarissi:~pfexec zonecfg -z master export -f /zones/master Come suggerito dal messaggio d uscita dalla fase di istallazione, si procede alla fase di configurazione della zona mediante il comando: gianfx@solarissi:~pfexec zlogin -C -e @ master Il parametro -C indica a zlogin di effettuare il login alla zona previo configurazione di alcuni parametri di sistema (es. password di root, timezone, DNS, tipo terminale ecc.). Il parametro -e consente di definire la sequenza di escape per uscire dal prompt di configurazione e login (senza la quale è impossibile uscire!). Il comando zlogin -C di default propone un approccio pag. 14

interattivo di scelta dei parametri che, sebbene sia facile ed intuitivo, è difficilmente gestibile da script shell per l automazione di tutti i passaggi. Più avanti verrà sostituito con un differente metodo basato su file sysidcfg. La configurazione ha inizio con l avvio della zona mediante il comando zoneadm da altro terminale oppure dallo stesso terminale facendo precedere il boot al comando zlogin: gianfx@solarissi:~pfexec zoneadm -z master boot Se la fase di configurazione della zona termina correttamente il comando zlogin propone la schermata di login alla zona. L accesso avviene mediante root con la password scelta nella predetta fase. Personalizzazione della zona master. Volendo perseguire l obiettivo di produrre le zone del sistema in esame mediante clonazione della zona master, viene quindi avviata una fase di personalizzazione che consiste nei seguenti punti: 1. Creazione utente di default (gianfx!) 2. installazione web server Apache vers. 2.2 3. installazione modulo php 5.2 4. installazione database Oracle Mysql 5.1 5. installazione pagina di web di benvenuto (pannello di controllo?) 6. installazione FTP server 7. personalizzazione manifesti ssh,ftp ecc. Di seguito vengono proposti a scopo dimostrativo i comandi principali utilizzati. login come root user nella zona: gianfx@solarissi:~$ /usr/bin/pfexec /usr/sbin/zlogin master [Connected to zone 'master' pts/2] Last login: Wed Sep 21 08:11:41 on pts/7 Oracle Corporation SunOS 5.11 snv_151a November 2010 root@web1:~# root@web1:~# useradd -R root -m -d /export/gianfx -s /bin/bash gianfx root@web1:~# passwd gianfx New Password:gianfx Re-enter new Password:gianfx Installazione software: root@web1:~# pkg refresh root@web1:~# pkg install amp root@web1:~# svcadm enable apache22 pag. 15

Non viene avviato il database mysql in quanto il progetto prevede l utilizzo di una databasezone, che centralizza il servizio, all indirizzo ip 192.168.1.202: A tal scopo viene realizzata una pagina php di esempio con connessione alla base dati remota. Per semplicità la pagina visualizzerà lo stato di attivazione delle zone che sarà appunto memorizzato in una base dati presso l host virtuale 192.168.1.202 (che sarà configurato più avanti): Codice PHP della pagina di benvenuto: <?php if(!($link = mysql_connect('192.168.1.202','solarisdb','solarispw'))) { echo "Errore connessione: ".mysql_error(); } if(!mysql_select_db('zone')) {echo "Errore selezione db: ".mysql_error();} $q = "SELECT * FROM zone"; $ris = mysql_query($q); $server_name = shell_exec("hostname"); $server_addr = $_SERVER['SERVER_ADDR']; echo "<center><h1>benvenuti sul sistema $server_name - $server_addr <center></h1><br>\n"; echo "Elenco host virtuali disponibili (info da tabella zone su database-zone - 192.168.1.202)\n"; echo "<table border=1><tr>\n"; echo "<td>nome zona</td><td>indirizzo</td><td>stato</td><td>azione</td></tr>\n"; while($t = mysql_fetch_array($ris)) { echo "<form action=\"http://192.168.1.200/attiva_zona.php\" method=\"post\"><tr><td>$t[0]</td><td>". $t[indirizzo]. "</td><td>". $t[stato]. "</td><input type=hidden name=nome value=\"$t[0]\"><input type=hidden name=ind value=\"$t[1]\"><td><input type=submit value=attiva></tr></form>\n"; } echo "</table>"; mysql_close($link);?> pag. 16

Creazione della database zone mediante clonazione. A questo punto si procede alla creazione e configurazione della database zone che ospiterà la base dati per la gestione logica delle zone. A differenza della zona master questa volta, per velocizzare i tempi di installazione, saranno utilizzati gli strumenti di clonazione delle zone messe a disposizione da Oracle Solaris 11. Per clonare una zona è necessario che la stessa non sia avviata pertanto sarà necessario procedere con: gianfx@solarissi:~$ id uid=102(zoneadm) gid=1(other) groups=1(other) gianfx@solarissi:~$ /usr/sbin/zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / ipkg shared 1 master running /zones/master ipkg shared gianfx@solarissi:~$ /usr/bin/pfexec /usr/sbin/zoneadm -z master halt gianfx@solarissi:~$ /usr/sbin/zoneadm list -iv ID NAME STATUS PATH BRAND IP 0 global running / ipkg shared - master installed /zones/master ipkg shared La zona viene preconfigurata utilizzando il file esportato durante la creazione della zona master: gianfx@solarissi:~$ pfexec /usr/sbin/zonecfg -z database-zone -f /zones/master Quindi il comando per la clonazione di master zone: gianfx@solarissi:~$ pfexec /usr/sbin/zoneadm -z database-zone clone master A differenza dell installazione della zona master vista sopra, questa fase impiega solo alcuni secondi malgrado la global-zone sia virtualizzata sotto Virtualbox!. A questo punto si procede all avvio della zona e successiva configurazione con zlogin analogamente a quanto fatto per la zona master: gianfx@solarissi:~$ pfexec /usr/sbin/zoneadm -z master halt gianfx@solarissi:~$ /usr/bin/pfexec /usr/sbin/zlogin database-zone pag. 17

Configurazione database-zone. Una volta avviata, configurata ed effettuato l accesso sulla database-zone viene effettuata la configurazione della database-zone differenziandola leggermante della zona master. Nello specifico la database-zone dovrà avere avviato il database mysql di default e lo stesso dovrà accettare connessioni da client esterni (le zone virtuali che condivideranno la base dati). Di seguito alcuni comandi: root@database-zone:~# svcadm enable mysql root@database-zone:~# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.1.37 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database zone; Query OK, 1 row affected (0.00 sec) pag. 18

Per enfatizzare la presenza della database-zone, è stata effettuata la scelta di vincolare i nomi, gli indirizzi ip, e quindi il numero massimo di zone attivabili dal sistema. Tuttavia lo stesso potrebbe essere configurato in modo tale da lasciare all utente abilitato al pannello di controllo web, un grado di libertà maggiore. Infine viene abilitato l accesso al database alla sola utenza dbsolaris, condivisa tra gl host virtuali, e limitandola ai soli host della sottorete 192.168.1.0/24. L utente mysql solarisdb viene identificato con la password solarispw : mysql> GRANT ALL PRIVILEGES ON zone.zone TO solarisdb @ 192.168.1.% WITH GRANT OPTION; exit root@database-zone:~# exit gianfx@solarissi:~$ Script shell di auto clonazione e configurazione delle zone. La creazione, la configurazione e il successivo avvio delle zone sono stati effettuati utilizzando il comando zonadm mediante la clonazione della zona master precedentemente configurata. Tutti i passaggi che saranno evidenziati di seguito sono stati affidati ad uno script shell denominato crea_auto_zone.sh. Lo script effettua le seguenti operazioni: riceve 5 parametri in ingresso: - nome zona; - nome host; - indirizzo ip; - interfaccia fisica di rete; - nome della zona da clonare. crea il file di preconfigurazione della zona personalizzato con i parametri passati allo script; crea il file di post-configurazione personalizzato con i parametri passati allo script; configura la zona (zonecfg); clona la zona master (zoneadm); installa il file di post-configurazione (sysidcfg); avvia la zona (zoneadm); pag. 19

esegue la post-configurazione della zona (zlogin -C); gianfx@solarissi:/zones/conf/$./crea_auto_zone.sh Usage:crea_auto_zone.sh <nome-zona> <nome-host> <ind. ip> <inteface> <zona-da-clonare> I file di preconfigurazione vengono mantenuti nella directory /zones/conf in quanto potenzialmente utili all amministratore delle zone per operazioni di debug. La password di root cifrata, per semplicità, viene generata in modo identico per tutte le zone ed il suo corrispondente valore al prompt equivale alla stringa: SSI. pag. 20

Di seguito viene riportato il file crea_auto_zone.sh: #!/bin/sh # #FILENAME: crea_auto_zone.sh #DESCRIPTION: questo script creato da gianfx@gmail.com provvede a creare in automatico una zona mediante clonazione sotto Oracle Solaris 11 # if [ $#!= 5 ] then echo "Usage: crea_auto_zone.sh <nome-zona> <nome-host> <ind. ip> <inteface> <zona-da-clonare>" exit 1 fi NOMEZONA=$1 NOMEHOST=$2 IP=$3 DEV=$4 CLONE=$5 echo "Creo la zona $NOMEZONA con hostname $NOMEHOST e ip $IP..." cat > /zones/conf/temp_$nomezona << _FINE_ create -b set zonepath=/zones/$nomezona set brand=ipkg set autoboot=false set ip-type=shared add net set address=$ip/24 set physical=$dev set defrouter=192.168.1.1 end _FINE_ echo "file $temp_$nomezona creato..." cat > /zones/conf/sysidcfg_$nomezona << _FINE_ system_locale=c terminal=xterm network_interface=primary { hostname=$nomehost ip_address=$ip default_route=192.168.1.1 netmask=255.255.255.0 protocol_ipv6=no pag. 21