Linux Ubuntu per Server e Reti.pdf

300
isario per installare e amministrare un server » li risorse con macchine Linux e Windows » configurazione di web server, mail server e DOS server » reare un completo fììedia Center e metterlo in rete » Linux Ubuntu i per server e reti *pro DigitalLifeStyle Alessandro Di ilicola

Transcript of Linux Ubuntu per Server e Reti.pdf

Page 1: Linux Ubuntu per Server e Reti.pdf

isario per installare e amministrare un server » li risorse con macchine Linux e Windows » configurazione di web server, mail server e DOS server »

reare un completo fììedia Center e metterlo in rete »

Linux Ubuntu i

per server e reti *pro

DigitalLifeStyle Alessandro Di ilicola

Page 2: Linux Ubuntu per Server e Reti.pdf

EDIZIONI

FAG MILANO

* >ro DigitalLifeStyle

kl centro non c'è la macchina. ci siamo noi. Con la nostra voglia di capire e ili fare. Informazione essenziale ma completa, raccolta direttamente sul campo. Ecco i libri Digital UfeStyle Pro. Uno strumento nuovo, per nuovi lettori, che nel digitale trovano la loro passione o la loro professione.

Linux Ubuntu per server e reti Quando si pensa al sistema operativo Linux in ambito server si pensa solitamente ad austeri centri di calcolo, ad ambienti di ricerca all'avanguardia e a enormi reti di computer. Un server Linux, però, può essere anche un comune PC e una rete di computer può essere costituita, perché no, da una manciata di macchine. Una rete di tal fatta può venire sfruttata per condividere una medesima stampante fra più PC o per creare un file server grazie al quale i membri di un team di lavoro possono scambiarsi documenti con estrema facilità. Singole macchine, poi. possono essere adibite al ruolo di uieb server e mail server oppure, ancora, possono venire impiegate per allestire dei media center. Ouesto libro spiega come costruire dalle fondamenta reti e server basati su Linux, utilizzando come guida la distribuzione Ubuntu Server: la scelta di un'unica distribuzione consente di fornire informazioni mirate su strumenti specifici e di guidare passo per passo il lettore anche nelle procedure più articolate, per guanto molte indicazioni di carattere metodologico fornite nel libro abbiano un valore generale.

Tra gli argomenti trattati • Installazione di Ubuntu Server sui PC della rete, con indicazioni su quali filesystem impiegare e quale software installare per i

singoli compiti. • L'ambiente di lavoro di un server: la shell, gli editor principali, gli strumenti per gestire la rete e quelli per creare copie di backup dei dati. • L'amministrazione del sistema da remoto con strumenti sicuri. Vengono trattate anche l'amministrazione via uieb e quella mediante inter-

faccia grafica. • Installazione e configurazione dei principali software server. Dal filesystem di rete (1FS al server CUPS per la condivisione delle stampanti,

dal web server Apache al mail server Postfix. • Come costruire dalle fondamenta un flledia Center audio o audio/video.

L'autore Alessandro Di nicola collabora con riviste di informatica come Linux Pro e Linux (llagazine, per la quale redige mese per mese l'articolo di copertina, ed è dottore in Lettere moderne. Ha precedentemente pubblicato per le Edizioni FA6 il libro "Linux Ubuntu per l'uso desktnn"

Edizioni FAG srl via Garibaldi. 5 - 20090 Assago (mi) tel.024885241 -uiujuj.fag.it

ujujuj.digital-lifestyle.it

ISBN 978-88-8233-7

€ 25,00 9 7 8 8 8 8 2 3 3 7 4

Page 3: Linux Ubuntu per Server e Reti.pdf

9 * i f • r *

J C W

per server e reti

Alessandro Di Nicola

EDIZIONI

FAG MILANO

Page 4: Linux Ubuntu per Server e Reti.pdf

Linux Ubuntu per server e reti

Autore: Alessandro Di Nicola

Collana:

* ro . Life Publisher: Fabrizio Comolli Proget to grafico: escom - Milano

ISBN: 978-88-8233-744-5

Copyright © 2008 Edizioni FAG Milano Via G. Garibaldi 5 - 20090 Assago (MI) - www.fag.it

Finito di stampare: nel mese di novembre 2008 da escom - Milano

Nessuna parte del presente libro può essere riprodotta, memorizzata in un sistema che ne permetta l'elaborazione, né trasmessa in qualsivoglia forma e con qualsivoglia mezzo elettronico o meccanico, né può essere fotocopiata, riprodotta o registrata altrimenti, senza previo consenso scritto dell'editore, tranne nel caso di brevi citazioni contenute in articoli di crìtica o recensioni.

La presente pubblicazione contiene le opinioni dell'autore e ha lo scopo di fornire informazioni precise e accurate. L'elaborazione dei testi, anche se curata con scrupolosa attenzione, non può comportare specifiche responsabilità in capo all'autore e/o all'editore per eventuali errori o inesattezze.

Nomi e marchi citati nel testo sono generalmente depositati o registrati dalle rispettive aziende.L'autore detiene i diritti per tutte le fotografie, i testi e le illustrazioni che compongono questo libro.

Si ringraziano CanonicaI e il progetto Ubuntu per l'uso del logo in copertina (il libro è una pubblicazione indipendente e non è formalmente collegato né a Canonical né al progetto Ubuntu). The book is not endorsed by Canonical and is not related to the Ubuntu project in any way.

Page 5: Linux Ubuntu per Server e Reti.pdf

Sommario

INTRODUZIONE 7

1. INSTALLAZIONE 11 Il CD di installazione 11 Avvio dal CD 13 Installare Ubuntu Server 15 Il part izionamento dei dischi 20 I dischi in RAID 37 Dati utente e software 44

2. GESTIRE IL SISTEMA 47 Amministrare gli utenti 47 La gestione dei pacchetti 60 Le partizioni 75

3. GLI STRUMENTI DELL'AMMINISTRATORE 91 La shell Bash 91 L'editor vi 108

4. LOG E PROCESSI PERIODICI 123 Gestire i log 123 Processi periodici con cron 130

5. IL SERVER È IN RETE 137 Le informazioni di base 137 Le reti Wi-Fi 150 Gli strumenti di control lo 159

6. CONFIGURAZIONE AVANZATA DELLA RETE 163 II firewall 1 6 3

Proteggere i servizi 174

Page 6: Linux Ubuntu per Server e Reti.pdf

7. AMMINISTRARE DA REMOTO 183 Un terminale remoto 183 Amministrazione dal web 195 Quando il server grafico è remoto 204

8. CONDIVIDERE IN RETE 211 Il server di stampa 211 Filesystem di rete NFS 218 Condividere con Samba 222

9. IL BACKUP 231 Copiare intere partizioni 231 Il backup di file e directory 239 Bacula, un server per il backup 247

10. COSTRUIRE UN MEDIA CENTER 261 Server musicale 261 Il Media Center completo 264

11.1 SERVER 273 Il mail server Postfix 273 FTP server con vsftpd 278 Il web server Apache 281 Il server DNS BIND 289

12. OTTIMIZZARE IL SISTEMA 297 Compilazione del kernel 297 Compilare i programmi 301

Page 7: Linux Ubuntu per Server e Reti.pdf

Introduzione Enormi stanze piene di computer rumorosi, misteriosi centri di calcolo sotterranei con centinaia di addett i che si aggirano in camice bianco, reti cablate che si estendono per chilometri e chilometri... Solitamente quan-do si pensa a delle macchine server la fantasia galoppa e l ' immaginazione ha il sopravvento sulla realtà. Un server, però, può essere un normale PC desktop e una rete può essere costituita da uno sparuto numero di macchine. Ma a cosa potrà mai ser-vire applicare a tale ambit i limitati tecnologie e conoscenze sviluppate in ambient i di ricerca e industriali? Innanzitutto, una rete di computer può risultare utile per condividere una medesima stampante tra più macchine, oppure per facilitare lo scambio di file tra colleghi di lavoro; un comune PC, inoltre, può diventare un pra-t ico web server per la gestione di pagine interne aziendali oppure un mail server per lo smistamento della posta elettronica. Infine, è possibile sfruttare in ambito domest ico gli strumenti solitamente impiegati nella gestione dei server per costruire pezzo per pezzo un dut-ti le ed economico Media Center: insomma, dagli austeri centri di calcolo si è passati al salotto di casa! In questo libro viene spiegato come allestire server e reti utilizzando Li-nux, un sistema operat ivo libero e gratuito: tale sistema può essere usato in piena libertà da qualsiasi utente e le linee di codice che lo compongo-no possono essere esaminate e modif icate da chiunque. A causa della libertà con cui è possibile intervenire sul sistema, Linux è disponibi le in varie versioni, che vengono chiamate distribuzioni (o "di-stro"): una distribuzione non è altro che l' insieme costituito dal kernel Linux e da un numero variabile di programmi ausiliari.

Page 8: Linux Ubuntu per Server e Reti.pdf

Il centro nevralgico di Linux, il cosiddetto kernel del sistema operativo, è stato creato nel 1991 da Linus Torvalds e attualmente viene sviluppato da programmatori sparsi in tutto il mondo. Nel sistema operativo Linux sono incluse le applicazioni GNU (GNU is Not Unix, un progetto nato per la creazione di un sistema operativo libero): per questo motivo, il nome per esteso del sistema operativo dovrebbe essere GNU/Linux.

Questo libro adotta come distro di r iferimento Ubuntu Server 8.04 LTS: si tratta di una distribuzione solida, completa e semplice da installare, espressamente sviluppata per l 'al lestimento di sistemi server. La dicitura LTS sta per Long Term Support e contraddist ingue le release della distri-buzione per le quali viene forni to un supporto della durata di cinque anni dal momento del rilascio: per quest'arco di tempo, dunque, verranno cor-rette falle di sicurezza e saranno risolti i bug rilevanti nelle applicazioni.

A differenza di Ubuntu Server, nella versione di Ubuntu dedicata all'uten-za desktop il supporto per le release LTS è di tre anni. Nelle normali release di Ubuntu, quelle prive della dicitura LTS e che vengono rilasciate ogni 6 mesi, il supporto ha invece una durata di soli 18 mesi.

Ubuntu Server è una distro derivata da Debian, una storica distribuzione Linux: questo significa che le istruzioni e le nozioni fornite in questo libro risulteranno valide, r ichiedendo solo minimi adattamenti, anche nel caso di utilizzo di sistemi Debian. Nel caso di altre distribuzioni, invece, le mo-difiche necessarie per adattare comandi e procedure presenti nei capitoli a seguire possono risultare più rilevanti.

Nel pr imo capitolo del volume viene presentata fin nei minimi particolari la procedura da seguire per installare Ubuntu Server su di un computer: si va dalla configurazione iniziale della rete al part izionamento dei dischi e si giunge, poi, all ' inserimento delle informazioni sull 'utente principale e al-

Page 9: Linux Ubuntu per Server e Reti.pdf

l 'installazione dei software più importanti . Le più significative tra le tappe del percorso di installazione, inoltre, costituiranno la giusta occasione per introdurre alcuni dei concetti di base nell'utilizzo del sistema operativo. Il secondo capitolo comincia illustrando il primo avvio di Ubuntu Server. Vengono quindi presentati gli aspetti fondamentali dell'amministrazione di un server: l'amministrazione degli utenti, l'installazione e la manutenzione del software e, quindi, la gestione delle partizioni presenti sull'hard disk. Nel capitolo successivo si passa all 'amministrazione quotidiana di una macchina: si offre una panoramica sui comandi e sulle funzionalità della shell Bash e si presenta l 'editor vi. La conoscenza approfondita di questi due strumenti fondamental i consente di gestire al megl io i compit i più ripetitivi che si trova a svolgere, g iorno dopo giorno, un amministratore di server Linux.

Il quarto capitolo fornisce informazioni dettagl iate sulla gestione dei log e sull'esecuzione automatica di comandi secondo scadenze prestabilite. Il capitolo seguente del libro, quindi, è dedicato alla configurazione ini-ziale della rete locale. Si comincia con la presentazione di informazioni generiche e quindi si individuano gli strumenti necessari per inserire una macchina all ' interno di una rete cablata o senza fili. Infine, si fa la cono-scenza di una manciata di programmi necessari per controllare il corretto funzionamento della rete stessa.

Il sesto capitolo costituisce una sorta di spartiacque nel volume. Gli ar-goment i nella parte restante del libro si faranno più complessi e anche le conoscenze che si presupporranno acquisite aumenteranno di pari passo. In questo capitolo, quindi, si entra maggiormente in profondità nella con-figurazione della rete: si allestisce un firewall, quindi si scopre come con-dividere una connessione Internet fra più macchine. Infine, si individuano gli strumenti migliori per proteggere i servizi attivi su un server. Nel capitolo successivo, quindi, si scopre come gestire una macchina da remoto. La prima parte del capitolo è dedicata all 'amministrazione via ter-minale e fornisce tut te le informazioni basilari per utilizzare al megl io SSH, un protocol lo per la comunicazione sicura tra due macchine in rete. Nelle pagine che seguono, poi, si installa e si configura Webmin, un sistema per gestire un PC a distanza tramite una pratica interfaccia web. Infine, nell'ul-

Page 10: Linux Ubuntu per Server e Reti.pdf

t ima parte del capitolo viene presentato TightVNC, il software ideale per tutt i coloro che vogl iono amministrare una macchina remota senza dover rinunciare alla praticità e alla piacevolezza delle interfacce grafiche. L'argomento del l 'ot tavo capitolo è la condivisione di risorse all ' interno della rete locale, si tratt i di stampanti o di directory sull'hard disk del server. L'ultima parte del capitolo è poi dedicata alle reti miste Linux-Win-dows e presenta una rapida guida all'installazione e all'utilizzo del server Samba. Il nono capitolo fornisce una panoramica sugli strumenti di backup dispo-nibili su Linux: si comincia presentando Partimage, un pratico e semplice software per la creazione di immagini di intere partizioni, poi si passa alla gestione del backup di file con tar e rsync e infine si arriva a installare e a utilizzare Bacula, un potente sistema client-server per il backup in rete. Nei due capitoli che seguono, poi, si portano a frutto le conoscenze ac-quisite nelle sezioni precedenti del volume: per cominciare, si costruisce pezzo per pezzo un completo Media Center basato su Linux, quindi si in-stallano e si configurano i principali software di t ipo server, dal web server Apache al mail server Postfix.

Il capitolo conclusivo, infine, contiene informazioni dettagl iate su come sfruttare al megl io l 'hardware su cui è stato installato Linux Ubuntu, otti-mizzando il kernel sottostante e compi lando in modo oppor tuno alcuni dei programmi utilizzati.

Page 11: Linux Ubuntu per Server e Reti.pdf

1. Installazione

Come creare il CD di ubuntu S e r v e r e in-

stallare il sistema sull 'hard disk.

Per installare Ubuntu Server su una macchina è necessario usare un appo-sito CD di installazione: per ottenerlo basta scaricare l ' immagine ISO del CD da Internet e masterizzarla su di un supporto vuoto.

Un'immagine ISO è un singolo file che racchiude l'intero contenuto di un CD o di un DVD.

Il CD di installazione La prima operazione da compiere, dunque, è prelevare l ' immagine ISO. Utilizzando un qualsiasi sistema operativo si apre con un web browser la pagina: ht tp : / /www.ubuntu.com/getubuntu e si fa clic sulla l inguetta Down load Ubuntu. Nella schermata che appare, quindi, si mette la spunta sull 'opzione Ubuntu 8.04 LTS Server Edit ion. Poi, poco più sotto, si indica il t ipo di computer sul quale va effettuata l'installazione: se si tratta di un PC con CPU a 32 bit selezionare l 'opzione Standard personal computer , mentre se si è in possesso di un computer con processore a 64 bit scegliere 64b i t A M D and Intel computers .

Page 12: Linux Ubuntu per Server e Reti.pdf

I File Modifica Visualizza Cronologia Segnalibri Strumenti Guida

I - t r a? > http://www.ubuntu.com/getubuntu/download

3 u b u n t u

» What is Ubuntu? » Gal Ubuntu

• Download ' Puf chase > Request CDs - Release Notes » Upgrading * Countdown • Mirror Ubuntu

• Software Catalogue » Mflfchartdis« • Cose Studies

-WÉ *''<•# G e t Ubuntu

Get Ubuntu

Online training for the desktop

: Ayailatne at the Ubuntu shop te**- w

1 Get Ubunty » Download Ubuntu

The fastest way for most people to get Ubuntu is by downloading the CO Installer The CO Installer is nearly j 700MB If you don't have a fast internet connection you may want to consider requesting a CO

61 Download Ubuntu J Buy UbsjnttJerr ) Rssjuest free

Which release do youDwant? C D s

Ü Ubuntu 8.04 LTS Desktop Edition - Supported to 2011 : f ) Ubuntu 8 04 LTS Server Edition - Supported to 2013

Tl>e "L TS"¥e'SIOri ol ub"n!u rece'ves long-term support. 3 years for desktop versions and 5 years lor serve

What type of computer do you have? ® Standard personal computer (x86 architecture, PentiumTM. Celeron TM. Athlon TM. SempronTM)

> 64bit AMD and Intel computers

Choose a location near you

Figura 1.1 - La pagina web da cui scaricare l'immagine ISO di Ubuntu Server 8.04 LTS.

Scendendo ancora un poco nella pagina si fa clic sulla scritta Please Choose a Locat ion e nel menu che appare si seleziona un server vicino da cui scaricare l ' immagine ISO, per esempio Italy Universi ty of Rome - La Sapienza. Effettuare il download da un server posto nelle proprie vicinanze permetterà di rendere l 'operazione più rapida. Infine, si fa clic su Start Download. Una volta che il file, chiamato ubuntu-8.04-server- i386. iso, è stato sca-ricato da Internet bisogna masterizzarlo su CD: per fare questo basta uti-lizzare un comune software di masterizzazione come Nero (su Windows), K3b o Braserò (su Linux).

Creato il CD di installazione non rimane che inserire questo nel lettore del PC e avviare la macchina. Per procedere nell'installazione è neces-sario che nel BIOS il lettore CD-ROM abbia una priorità più alta rispetto all 'hard disk per il boot del PC. In caso contrario, bisogna intervenire sulla configurazione del BIOS e cambiare le priorità (le informazioni su come accedere alla schermata di configurazione del BIOS si trovano all ' interno del manuale del proprio PC).

Page 13: Linux Ubuntu per Server e Reti.pdf

Avvia dal CD Al boot del PC comparirà la schermata di avvio del CD di Ubuntu Server. La prima operazione da compiere è scegliere la lingua che deve esse-re utilizzata nella procedura di installazione: nell 'elenco che appare sullo schermo ci si sposta da una voce all'altra tramite i tasti cursore; raggiunta la voce I tal iano si preme il pulsante Invio per confermare la scelta.

Language

Arabic Hindi Portugués

BejiapycKaq Hrvatski Romana

6"b/irapcKH Magyarul Pycckwfi

Bengali Bahasa Indonesia Sámegillii

Bosanski Slovenoina

Català B * f S Slovenscina

Cestina Shqip

Dansk Khmer Svenska

Deutsch Tamil

Dzongkha Kurdi Thai

EXXHUIKK Lietuviskai Tagalog

English Latviski Tiirkçe

Esperanto HakeaoHCKM yKpaïHCbKa

Español Malayalam Tiê'ng Viêt

Eesti Norsk bokmal Holof

Euskaraz Nepali

Suomi Nederlands t í a s ® )

Français Norsk nynorsk

Galego Punjabi(Gurmukhi)

Gujarati Polski

Hebreui Portugués do Brasil

FI Help F2 Language F3 Keymap F4 Modes F5 Accessibility F6 Other Options

Figura 1.2 - Inserito il CD bisogna indicare la propria lingua.

A questo punto si avrà la schermata di avvio del CD tradotta in lingua italiana (Figura 1.3). Nella schermata sono disponibi l i cinque opzioni: an-che qui, per muoversi tra le voci presenti si utilizzano i tasti cursore, poi si preme Invio per scegliere un'opzione tra quelle presenti.

Page 14: Linux Ubuntu per Server e Reti.pdf

Instali Llbuntu Server

Controlla d i f e t t i sul CO Ripr is t ina un sistema danneggiato

Test del la memoria Boot dal primo disco r ig ido

Premere F4 per selezionare modalità alternative di avvio e installazione.

FI Aiuto F2 Lingua F3 Tastiera F4 Modalità FS Accessibi l i tà F6 Al t re opzioni

Figura 1.3 - La schermata di avvio del CD in italiano.

La prima opzione disponibi le è Instali Ubuntu Server. Selezionandola verrà avviata la procedura di installazione. La seconda opzione è Contro l la d i fe t t i sul CD e serve ad assicurarsi che il supporto sul quale si è masterizzato il CD di Ubuntu Server sia effetti-vamente integro: in caso di blocchi e malfunzionamenti durante le opera-zioni di installazione si consiglia di controllare il CD per mezzo di questa opzione. Se il CD risulta difettoso, quindi, non rimane che effettuare una nuova masterizzazione su di un supporto affidabile. L'opzione successiva, Riprist ina un sistema dannegg ia to , consente di av-viare il CD in "modal i tà ripristino": ciò permette di recuperare un sistema non più funzionante. Grazie a questa opzione, in particolare, è possibile reinstallare il boot loader sull'hard disk e aprire una console di root, in

Page 15: Linux Ubuntu per Server e Reti.pdf

modo tale da poter effettuare tut te le operazioni di manutenzione neces-sarie per rimettere in sesto il sistema.

Root è l'utente di amministrazione nei sistemi derivati da Unix. Ha pieni poteri nell'accesso ai dispositivi e nella manipolazione di file e directory. Una console di root, quindi, è un terminale in cui è possibile amministra-re liberamente il sistema impartendo comandi diretti.

La quarta opzione disponibi le è Test del la memor ia e consente di veri-ficare che tutt i i banchi di RAM presenti sul PC siano perfettamente fun-zionanti. Se il PC va spesso in crash, prima di dare la colpa al sistema operativo, è consigliabile effettuare un controllo completo sulla memoria e, in caso di banchi difettosi, procedere immediatamente alla sostituzione della RAM.

Infine, l 'ultima opzione è Boot dal p r imo disco r ig ido. Questa permette, molto semplicemente, di avviare il sistema operativo presente sull'hard disk principale.

Installare Ubuntu Server Per installare Ubuntu Server sul disco r igido del PC si seleziona dunque la prima voce presente nella schermata di avvio, Instali Ubuntu Server. Fatto questo viene caricato il kernel Linux e si viene poi accolti dal pro-gramma di installazione, che fa sfoggio di una spartana ma solida inter-faccia a caratteri. Ecco come muoversi tra i vari elementi presenti nell'in-terfaccia: con i tasti freccia su e g iù si passa da un'opzione all'altra, con Tab si salta dalle opzioni ai pulsanti in basso nello schermo e viceversa e, infine, con Invio si selezionano l 'opzione o il pulsante attivi al momento. La prima schermata della procedura di installazione richiede che l 'utente selezioni la propria nazione d'appartenenza: viene preselezionata la voce Italia, quindi è sufficiente premere Invio per proseguire.

Page 16: Linux Ubuntu per Server e Reti.pdf

! !] Choose lariguag

In seguito a l l a scel ta de l la l ingua, s i è probabilmente in una d i queste nazioni o reg ion i .

Selezionare una nazione, un t e r r i t o r i o o un'area:

<Indietro>

Svizzera a l t r o

<TAB> sposta t ra elementi; <Spazio> seleziona; <Invio>

A questo punto viene rilevato il lettore di CD-ROM e sono caricati nel sistema alcuni component i aggiuntivi, poi se è possibile contattare un ser-ver DHCP viene configurata in automatico la scheda di rete.

Un server DHCP consente di assegnare automaticamente degli indirizzi IP ai computer presenti in una rete locale.

Nel caso in cui non fosse raggiungibi le alcun server DHCP, bisogna confi-gurare manualmente la rete. Ecco come fare. Dopo che è apparsa la scritta Conf iguraz ione automat ica della rete fal l i ta si deve premere Invio. Poi, nella schermata successiva si conferma l 'opzione di default, Conf igura la rete manualmente, premendo nuovamente Invio.

Page 17: Linux Ubuntu per Server e Reti.pdf

Quindi si inserisce l'indirizzo IP da assegnare al proprio PC (Figura 1.5) e nelle schermate che seguono si indicano la maschera di rete, il gateway e gli indirizzi dei server DNS.

La maschera di rete (netmask) consente di stabilire quali parti al l ' interno di un indirizzo IP si riferiscono alla rete remota e quali si riferiscono invece agli host nella rete locale. Il gateway è l'indirizzo del disposit ivo che inoltra i pacchetti da una rete interna a una esterna (Internet, di solito), mentre i server DNS si occupano di trasformare i nomi degl i host in indirizzi IP. I valori da inserire in queste schermate relative alla rete d ipendono dalla configurazione della propria LAN o WLAN. Nel caso si tratti del pr imo PC da mettere in rete, si può inserire come Indirizzo IP un qualsiasi indirizzo riservato alle reti interne (vedi Tabella 1.1), per esempio 192.168.0.2 e come maschera di rete 255.255.255.0.

Page 18: Linux Ubuntu per Server e Reti.pdf

255.255.255.0 è un valore tipico per la maschera di rete. Se viene appli-cato a un indirizzo di rete 192.168.0.0 stabilisce che gli indirizzi IP da 192.168.0.1 a 192.168.0.255 appartengono alla rete locale.

Quindi, come gateway si inserisca l'indirizzo del router ADSL, se dispo-nibile, e si d igi t ino infine gli indirizzi dei server DNS fornit i dal proprio provider per la connessione a Internet. In caso di incertezza è possibile lasciare gli indirizzi predefinit i: gateway e DNS potranno essere correttamente configurati anche dopo l'installazio-ne iniziale.

Una LAN (Locai Area Network) è una rete locale. Solitamente viene uti-lizzato il protocollo Ethernet per la trasmissione dei dati in questo tipo di reti. Una WLAN (Wireless Locai Area Network) è, in particolare, una rete locale in cui la connessione tra le macchine avviene senza fili, ma tramite onde radio. In questo caso i protocolli impiegati sono quelli contrasse-gnati dalla sigla IEEE 802.11 (Wi-Fi).

Tabella 1.1 - Gli indir izzi IP r iservati alle ret i locali

Indir izzo iniziale Indir izzo f inale

10.0.0.0 10.255.255.255

172.16.0.0 172.31.255.255

192.168.0.0 192.168.255.255

Se si hanno dei dubb i e si preferisce configurare la rete dopo l'installa-zione iniziale, nella schermata che appare dopo che è comparsa la scritta Conf iguraz ione automat ica della rete fal l i ta, al posto del l 'opzione Con-f igura la rete manualmente è possibile scegliere Non conf igurare la rete in questo momento .

Page 19: Linux Ubuntu per Server e Reti.pdf

Configurata o meno la propria rete, bisogna assegnare un nome al com-puter: questo consentirà di individuare il singolo PC all ' interno della rete locale. Nella schermata successiva dell ' installazione (Figura 1.6), quindi, viene proposto come nome predefinito "ubuntu" : si deve inserire al posto di questo un nome a piacere, sincerandosi di scegliere un nome diverso per ogni macchina presente in rete.

Nel caso non sia raggiungibi le alcun server DHCP, in un'ulteriore scher-mata ci viene richiesto di inserire anche il nome del dominio, cioè la par-te dell ' indirizzo che segue il nome del singolo computer: per esempio, nell'indirizzo eraclito.ufficio.lan il nome del computer è eraclito mentre il nome del domin io è ufficio.lan. È possibile indicare un nome di dominio a propria scelta, ma bisogna inserire lo stesso nome su tutte le macchine della medesima rete locale.

Page 20: Linux Ubuntu per Server e Reti.pdf

LinuxJJhuntu p g ^ — ^ e reti

Il partizionamerrta dei dischi A questo punto si devono creare le partizioni sull 'hard disk Nella scher-mata Part iz ionare i dischi sono disponibi l i , a tale r iguardo, quatt ro op-zioni: le pr ime tre consentono di automatizzare, seppur secondo modal i tà dif ferenti , la procedura di part iz ionamento, mentre l 'ult ima opzione lascia piena libertà al l 'utente nella creazione del le partizioni

La prima opzione, Gu ida to - usa l ' i n te ro disco, è la scelta più semplice e

immediata: selezionandola apparirà una nuova schermata in cui occorrerà

indicare il disco che si desidera partizionare.

Dato che, sol i tamente, si d ispone di un solo hard disk, basterà premere

il tasto Invio per selezionare il disco, al tr imenti sarà necessario spostarsi

con i tasti freccia f ino ad evidenziare l 'hard disk su cui si vuole installare

Ubuntu Server. Nella schermata successiva verrà mostrato un riepilogo delle scelte effettuate dal programma di installazione: con il partizionamento guidato sarà creata,

il L i f e !e*p:

Page 21: Linux Ubuntu per Server e Reti.pdf

semplicemente, una partizione di root con filesystem ext3 e quindi una parti-zione di swap. La partizione di root occuperà la prima partizione primaria su disco, mentre la partizione di swap utilizzerà la prima partizione logica.

Le partizioni primarie sono le normali partizioni su hard disk: se ne posso-no creare al massimo quattro su di un singolo disco. Le partizioni logiche, Invece, non hanno questa limitazione e vanno inserite in una partizione "contenitore", la partizione estesa.

Per confermare queste scelte si seleziona il pulsante Sì in basso, altrimenti si sceglie No: in questo secondo caso comparirà la schermata per il par-t izionamento manuale, nella quale si potrà intervenire direttamente sulla struttura delle partizioni impostata dal programma di installazione. Confermando l'organizzazione delle partizioni scelta automaticamente, invece, la procedura di installazione proseguirà con la copia sul disco del sistema di base.

Partizionare con LVM

Scegliendo la seconda opzione di part izionamento, Gu ida to - usare l ' inte-ro disco e impostare LVM, si sfrutterà il Logicai Volume Manager (LVM) per gestire lo spazio su disco. Al posto dei normali volumi fisici (cioè i dischi e le partizioni), quindi, per l'accesso all'hard disk il sistema utilizzerà dei volumi logici, cioè virtuali: il vantaggio più rilevante di questi è che è possibile modif icarne al bisogno le dimensioni, r iducendole oppure au-mentandole, in modo mol to semplice e senza intralci. L'adozione del sistema LVM, inoltre, consente di sostituire un disco rovina-to senza dover interrompere il funzionamento di una macchina. Si tratta di una caratteristica di grande utilità sui server.

Se si è scelta l 'opzione Gu ida to - usare l ' in tero disco e impostare LVM, dunque, comparirà una schermata in cui si dovrà selezionare il disco da partizionare. Fatto questo, per poter configurare effett ivamente il sistema LVM sarà necessario confermare i cambiamenti alla tabella delle partizioni premendo il pulsante Sì.

Page 22: Linux Ubuntu per Server e Reti.pdf

Linux UbLintu per s e r v e r e ret i

Nella schermata successiva si avranno informazioni complete sulle parti-zioni che saranno presenti sul disco. Nel dettagl io, il sistema creerà auto-maticamente una piccola partizione di boot (prima partizione primaria) e una partizione di t ipo LVM (prima partizione logica) che occuperà tut to lo spazio restante sull'hard disk. Al l ' interno di questa partizione LVM verran-no inseriti due volumi logici LVM, che corr ispondono alla partizione di root e a quella di swap.

Se s i continua, ogni modifica a l l e tabe l le del le pa r t i z i on i verrà s c r i t t a sui disco. A l t r iment i sarà possib i le fare u l t e r i o r i modifiche manualmente'. - .-

ATTENZIONE: verranno d i s t r u t t i t u t t i 1 da t i del le pa r t i z i on i che sono -state rimosse e di quel le su cui sono s t a t i c rea t i nuovi f i l e system.

Le seguenti pa r t i z i on i saranno formattate: LVM VG Eraclito, LV root come ext3 LVM VG e rac l i t o , LV suiap_l come swap part iz ione n ' i d i SCSI1 (0,0,0) (sda) con ext3

Scrivere le modifiche sui dischi?

<Indietro> vi:-:" <Si>

Figura 1.8-Il sistema ha creato due volumi logici LVM.

Per confermare la struttura del disco indicata si seleziona il pulsante Sì: le

partizioni verranno così formattate e saranno installati sul disco i pacchetti

di base.

Cifrare il contenuto dell'hard disk

La terza opzione di part izionamento disponibi le, Gu ida to - usare l ' in tero disco e impostare LVM cifrato, come la precedente crea sull'hard disk dei volumi logici LVM ma, in più, cifra i dati in questi contenuti così che non possano essere letti da estranei.

gitalIifeStyle*pro

Page 23: Linux Ubuntu per Server e Reti.pdf

t. Ins ta l laz ione

Si tratta di una valida barriera protett iva per la riservatezza delle infor-mazioni, utile nel caso che il propr io server contenga dati sensibili: se un disco cifrato viene rubato e poi col legato a un altro computer, infatti, il suo contenuto risulterà comunque i l leggibile. Selezionata l 'opzione per impostare un sistema LVM cifrato, basterà se-guire i passaggi per part izionare il disco con il sistema LVM indicati nel paragrafo precedente, Il p a r t i z i o n a m e n t o LVM: si seleziona il disco da part izionare e si confermano le modi f iche alle part iz ioni p remendo il pulsante Sì. A questo punto comparirà una schermata in cui si dovrà inserire una pas-sphrase, una lunga password che servirà a ottenere l'accesso all'hard disk, e quindi al sistema, quando si avvierà la macchina. Per sicurezza si con-siglia di inserire una passphrase lunga almeno 20 caratteri e formata da lettere, numeri e segni di interpunzione.

I I ] Partizionane i d ischi

You need to choose a passphrase to encrypt scsij (0 ,0 ,0) , part iz ione n* 5 (sda).

The overa l l strength of the encryption depends strongly on t h i s passphrase, so you should take care to choose a passphrase that is not easy to guess. I t should not be a word or sentence found in d ic t ionar ies , or a phrase that could be easi ly associated with you.

ft good passphrase w i l l contain a mixture of l e t t e r s , numbers and punctuation. Passphrases are recommended to have a length of 20 or more characters.

There i s no way to recover t h i s passphrase i f you lose i t . To avoid losing data, you should normally wr i te down the passphrase arid keep i t in a safe place separate from th i s computer.

Encryption passphrase:

< I n d i e t r o <Contiriuare>

;TftB> sposta t ra element oazio> seleziona; <lnvlo> a t t i va i bot ton i

Figura 1.9 - Per proteggere un disco cifrato si deve usare una passphrase difficile da individuare.

Page 24: Linux Ubuntu per Server e Reti.pdf

Nella schermata successiva, quindi, va digitata nuovamente la passphrase appena inserita, per conferma. Fatto ciò, si potranno leggere nella scher-mata seguente le informazioni dettagl iate sulle partizioni che saranno create sull'hard disk: non rimane che selezionare il pulsante Sì per salvare le modif iche sul disco. Una volta che l'installazione di Ubuntu Server è terminata, al boot del PC comparirà una riga Enter LUKS passphrase: simile a quella visibile nel l ' immagine seguente (Figura 1.10). Solo d ig i tando la giusta passphra-se si potrà far continuare la procedura di avvio e avere, così, accesso al sistema.

¡Starting up ... •Loading, please wait... ISetting up cryptographic volume sda5_crypt (based on /deu/disk/by-uuid/922b463e fecaf-4d6c-bc0b-6c97d43d6ael) •Enter LUKS passphrase: _

Figura 1.10- All'avvio dei PC bisogna inserire la giusta passphrase.

Partizinnamenta manuale

Un server è una macchina dai compit i specifici che, spesso, richiede con-figurazioni personalizzate per funzionare al meglio. Per tale ragione può essere utile, su di un PC adibi to a uso server, gestire nel det tagl io le par-tizioni presenti sul disco rigido, scegliendo autonomamente dimensioni e filesystem da adottare caso per caso.

L'ultima opzione disponibi le per partizionare il disco, quindi, permette di ottenere il pieno control lo delle partizioni da parte del l 'utente: nella

Page 25: Linux Ubuntu per Server e Reti.pdf

schermata con elencati i metodi di partizionamento, dunque, si selezioni la voce Manuale. Prima di proseguire nell'installazione, però, è necessario conoscere in modo approfondi to i filesystem disponibi l i su Linux e prendere confidenza con le directory di sistema.

I filesystem disponibili

II filesystem è il sistema mediante il quale i file vengono memorizzati e gestiti su un supporto. Anni fa, il filesystem di default su Linux era Ext2: si tratta di un filesystem solido e affidabile ma, purt roppo, privo di un siste-ma di journaling. Di cosa si tratta? Il sistema di journal ing permette di salvare in un apposito file di log lo stato delle operazioni su disco effettuate su di una determi-nata partizione. Nel file di log è indicato se un'operazione è stata portata a termine o meno. Quando una macchina viene riavviata a causa di un crash di siste-ma, quindi, tale file viene consultato e ciò consente di ottenere un filesy-stem sempre in stato consistente, cioè integro. In questo modo viene scongiurata la necessità di effettuare lunghi controlli preliminari sulle partizioni prima di poter accedere nuovamente al sistema. Attualmente Ext2 ha ceduto lo scettro di principale filesystem su Linux ad altri filesystem più moderni , tutt i dotat i di un sistema di journaling: Ext3, Reiserfs, Reiser4, JFS e XFS. Ecco una descrizione succinta delle caratteri-stiche di ciascuno di essi:

• Ext3: si tratta del filesystem scelto come default da Ubuntu Server per i partizionamenti guidati. Le sue doti di spicco sono una grande soli-dità e la presenza di un sistema di journaling di t ipo data + metadata. Questa seconda caratteristica fa sì che, dopo un crash, i dati presenti su disco siano sempre i più recenti. In altri sistemi di journaling, inve-ce, la possibilità di ottenere un filesystem consistente non implica la certezza di ritrovare sull'hard disk gli ultimi aggiornamenti sui file;

• Reiserfs: ha prestazioni ragguardevoli soprattutto quando si ha a che fare con file mol to piccoli. Nel complesso, un filesystem piutto-sto robusto e molto veloce;

Page 26: Linux Ubuntu per Server e Reti.pdf

• Reiser4: filesystem innovativo non ancora incluso nel kernel stan-dard Linux. L'architettura modulare lo rende un filesystem estrema-mente dutt i le; si pensi alla possibilità di supportare operazioni di compressione e crittografia direttamente a livello di filesystem. La sua dote precipua è una grande efficienza nel gestire piccoli file e directory con un gran numero di file al loro interno;

• XFS: prestazioni eccellenti in tutt i i campi tranne che nella cancella-zione dei file. Si tratta di un filesystem mol to solido, che rappresen-ta la scelta ideale quando si devono manipolare file di grandissime dimensioni. Consente di ingrandire e deframmentare una partizio-ne senza che questa debba essere preventivamente smontata;

• JFS: offre buone prestazioni in qualsiasi situazione, grazie al r idotto carico di lavoro sulla CPU anche durante i picchi di utilizzo del di-sco. Gestisce al megl io dischi di grandi dimensioni.

Quale filesystem utilizzare per il proprio server? Probabilmente i migliori fs per un uso generico sono Ext3 e XFS, ma Linux consente di utilizzare filesystem differenti sulle diverse partizioni dell 'hard disk. Per esempio, se in un determinato sistema una partizione deve contenere i dati di un proxy server, che t ipicamente fa uso di un gran numero di file di piccole dimensioni, la scelta ideale è quella di formattare la partizione con Reiserfs. Se, invece, i continui trasferimenti di file in alcune partizioni rischiano di far collassare delle macchine non t roppo performanti si può pensare di formattare tali partizioni con JFS. Infine, su un media center "v iaggiano" spesso file mult imedial i di grandi dimensioni: è proprio la situazione migliore, almeno in ambi to domestico, per sfruttare al massimo le potenzialità del filesystem XFS.

Le directory di sistema

Nei paragrafi precedent i si è visto come la procedura di part iz ionamento gu idato crei su disco due partizioni: quella di root e quella di swap. La partizione di root cont iene la " radice" del l ' intero albero di directory del sistema (è detta anche, quindi , directory radice): si tratta della partizione

26 Dig¡talLifeStyle»pro

Page 27: Linux Ubuntu per Server e Reti.pdf

principale di ogni installazione, tanto da poter essere la sola presente su disco. La partizione di swap, invece, non è altro che uno spazio sull'hard disk che fornisce al sistema della memoria virtuale quando la RAM disponibi le non è più sufficiente. Ma il part izionamento di un disco può essere decisamente più articolato: ogni directory presente sulla directory radice, infatti, può essere spostata su di una partizione separata. L'utilizzo di un più ampio numero di partizioni comporta alcuni indubita-bili vantaggi: innanzitutto, ciò permette di gestire in modo più dutt i le lo spazio su disco. Quindi, semplifica le procedure di backup consentendo di effettuare delle copie dirette di singole partizioni anziché dei file che le compongono. Infine, può costituire un'ott ima barriera contro malfunzio-namenti e attacchi al sistema.

Può capitare, infatti, che l'esecuzione di un comando o un'operazione su disco abbiano come esito imprevisto l 'occupazione di tu t to lo spazio di-sponibile sul supporto: nel caso di utilizzo della sola partizione di root, questo comporterà l ' impossibilità di scrivere sull ' intero disco, con un evi-dente danno per l ' intero sistema. Se si fa uso di una pluralità di partizioni, invece, a risultare piena sarà la sola partizione su cui è avvenuta l 'opera-zione di scrittura.

Nella Tabella 1.2, quindi, vengono elencate le principali directory che è utile spostare su partizioni separate.

Tabella 1.2 - Le d i rec tory di sistema.

Di rectory Uti l izzo Contiene tutt i i fi le personali degl i utenti. Separandola dalla partizione di root è possibile reinstallare una distri-buzione mantenendo i file personali intatti: utile se un ser-ver è stato compromesso e bisogna reinstallarlo dal CD Contiene i programmi installati dal sistema, la documen-tazione ed i file di sviluppo. Creando una partizione se-parata si possono differenziare i file di sistema dalle ap-plicazioni

/ home

/usr

Page 28: Linux Ubuntu per Server e Reti.pdf

Directory Uti l izzo Qui vengono inseriti dei dati di sistema. La directory è usata per i lavori di stampa e per i file di log. Una partizio-ne separata scongiura l ' ipotesi che i file di log " inond ino" tu t to l 'hard disk

Contiene i file temporanei creati dal sistema o dai singoli programmi. Una partizione separata permette di limitare i permessi di esecuzione sui file temporanei, così da scon-giurare exploit di questo t ipo Contiene i file del kernel. Utilizzando una partizione sepa-rata, in caso di filesystem corrotti sulle altre partizioni, si potrà comunque effettuare il boo t potendo contare su di un sistema minimale Questa directory raccoglie i file di configurazione del si-stema. Dedicarle una partizione può essere utile per effet-tuare copie di backup dei file di configurazione in modo pratico e veloce

Dopo questi necessari approfondiment i sui filesystem e sulle directory di sistema, si può tornare al programma di installazione di Ubuntu Server con le idee chiare su come procedere.

Scegliere una per una le partizinni

Una volta scelto il part izionamento manuale, comparirà una schermata simile al l ' immagine seguente (Figura 1.11). Questa rappresenta un'ante-prima delle partizioni presenti sul disco. In questo paragrafo si utilizzerà come esempio una configurazione del-le partizioni tipica per una piccola macchina server: le partizioni presenti sono /boo t , /var, /home, oltre ovviamente alla partizione di root e a quella di swap. Ecco come procedere.

Se l 'hard disk non cont iene una corretta tabel la del le part izioni, nella schermata sarà presente sol tanto una riga con le informazioni sul l 'hard

28 DigiialLife;

Page 29: Linux Ubuntu per Server e Reti.pdf

disk, senza alcuna part iz ione elencata: bisogna allora selezionare con i tasti freccia la riga relativa al disco e premere Invio. Nella schermata successiva viene chiesto se si vuole creare una nuova tabel la della par-tizioni: si deve r ispondere Sì. Si ritornerà così alla schermata di anteprima, in cui sarà comparsa una riga con la scritta SPAZIO LIBERO. Si selezioni tale riga e si prema Invio.

Si inizia con la partizione di swap

Ora si creeranno via via le diverse partizioni sul disco: si può iniziare con la swap, così da poter lasciare comodamente tut to il restante spazio dispo-nibile per le partizioni principali. Nella nuova schermata, quindi, si deve selezionare l 'opzione Crea una nuova part iz ione.

Page 30: Linux Ubuntu per Server e Reti.pdf

I 1 I i 1<TOB> sposta t r a elementi; <Spazio> seleziona; <Invio> a t t i v a i bo t ton i ^ ' . • I I S 1

Figura 1.12 - Le opzioni disponibili quando si seleziona lo spazio libero sull'hard disk.

Fatto questo, bisogna stabilire lo spazio da riservare alla nuova partizione. Lo si può indicare in forma assoluta (5 GB, 1500 MB ecc.) o in forma per-centuale (25%, per esempio, stabilisce che si vuole riservare il 25% dello spazio disponibi le a questa partizione). Per una partizione di swap sono solitamente sufficienti 256 MB di spazio: non è più valida, infatti, la vecchia regola secondo la quale è necessario dedicare una quantità di spazio su disco doppia rispetto alla RAM dispo-nibile sulla macchina. Nel caso si reputi che carichi di lavoro gravosi sul server possano talvolta aumentare in modo rilevante le richieste di me-moria, si può creare una partizione di swap di dimensioni maggiori , per esempio di 1 GB.

Fatto questo, si deve poi indicare il t ipo di partizione da utilizzare, se Primaria o Logica, e la posizione della partizione, se all ' Inizio o alla Fine dello spazio su disco. Nel caso della swap si scelga una partizione primaria posta all'inizio dell 'hard disk: col locando la partizione di swap nei primi settori di un disco, infatti, se ne migl ioreranno le prestazioni.

Page 31: Linux Ubuntu per Server e Reti.pdf

A questo punto comparirà una schermata con le impostazioni per la par-tizione (Figura 1.13).

[! ! ] Partizionare i dischi

Modifica de l la par t iz ione n* 1 d i SCSI! (0,0,0) (sda), Non è stato trovato nessun f i l e system in questa par t iz ione.

Impostazioni de l ia par t iz ione

Opzioni d i mount: E t ichet ta : Blocchi r i s e r v a t i Uso t i p i c o :

relat ime nessuna 5% standard

A t t i va f l ag «avviabi lé»: d i sa t t i va to

Copia i d a t i da un 'a l t ra par t iz ione Cancellare la par t iz ione Preparazione d i questa par t iz ione completata

<Indietro>

a t ra elementi; <Spazie> seleziona; <Invio> a t t i v a i bot ton i

Le opzioni disponibi l i in questa schermata sono numerose e importanti . La prima, Usato come, indica il filesystem impiegato nella partizione sele-zionata. Il Punto di mount , invece, stabilisce in quale directory il sistema deve rendere accessibile il contenuto della partizione. Si ha piena libertà nell 'abbinare una partizione a una qualsiasi directory contenuta nell 'albe-ro che parte da / , cioè dalla partizione radice.

L'opzione successiva, Opz ion i d i mount , consente di indicare se nella partizione corrente non bisogna permettere l'esecuzione di file binari (pa-rametro noexec), se il filesystem deve essere in sola lettura (parametro ro) e molto altro ancora. Tramite l 'opzione seguente, Et ichetta, è quindi possibile attribuire un'etichetta alla partizione. I Blocchi r iservati, invece, indicano la percentuale di spazio su disco che viene riservata per sicurezza all 'utente root: lasciando un numero suffi-

Page 32: Linux Ubuntu per Server e Reti.pdf

den te di blocchi è possibile evitare che singoli utenti nel sistema possano riempire l ' intero hard disk. L'opzione successiva, Uso t ip ico, compare se si è scelto come filesystem Ext3 o Ext2 e consente di modificare alcuni parametri del filesystem, così da ottimizzarlo per un uso specifico. I valori disponibi l i sono standard, news, largef i le e Iargefi le4: news è ideale per partizioni con molt i file di piccole dimensioni mentre largef i le e Iargef i le4 sono adatti a gestire al megl io volumi con pochi file di grandi e grandissime dimensioni. L'ultima opzione, A t t i va f lag «avviabile», deve assumere il valore a t t iva to sulla partizione contenente i file del kernel Linux: se si utilizza una partizio-ne / boo t il valore a t t i va to deve essere presente su questa, altrimenti tale valore va impostato sulla partizione radice. Per creare la partizione di swap, quindi, basta semplicemente assegnare all 'opzione Usato come ¡1 valore area di swap. Fatto questo, si seleziona la voce Preparazione di questa par t iz ione comple ta ta per tornare così alla schermata con l 'anteprima delle partizioni.

Page 33: Linux Ubuntu per Server e Reti.pdf

1. Installazione

Aggiungere le altre partizioni

Ora che la partizione di swap è stata creata, bisogna aggiungere tut te le altre partizioni. Ecco le istruzioni per creare la partizione /boot . I primi passaggi da com-piere ricalcano quelli già visti per la partizione di swap: nella schermata con l'anteprima delle partizioni si seleziona la linea con la dicitura SPAZIO LIBE-RO, si sceglie poi l 'opzione Crea una nuova part iz ione e si arriva alla scher-mata in cui bisogna indicare lo spazio da dedicare alla nuova partizione. La partizione /boo t contiene solo i file del kernel e del boot loader; per tale ragione richiede una ridotta quantità di spazio su disco: 50 MB sono più che sufficienti. Si scelga una partizione Primaria, creata a partire dal-l ' Inizio del l 'hard disk. Nella schermata delle Impostazioni per la partizione si indichi /boo t come valore dell 'opzione Punto di mount e si selezioni la riga con l'opzione At t iva f lag «awiabi le» per darle il valore att ivato. Come filesystem si può scegliere il solido e affidabile Ext3: il valore di Usato come deve dunque essere Ext3. Nel l ' immagine seguente è possibile vedere un riepilogo delle opzioni per la partizione / boo t (Figura 1.15).

^ ^ ^ ^ P a r n T i o n a r ^ ^ d i s c ! ^ ^

Modifica della partizione n 2 di SCSI1 (0,0,0) (sda). Non è stato trovato nessun file system in questa partizione.

Impostazioni della partizione

Usato come: mmmmsa Opzioni di mount: Etichetta: Blocchi riservati Uso tipico:

relatime nessuna 5% standard

Attiva flag «awiabile»: attivato

Copia i dati da un'altra partizione Cancellare la partizione Preparazione di questa partizione completata

<Indietro>

<TAB> sposta tra elementi; <Spazio> seleziona; <Tnvin> attiva i bottoni

Figura 1.15 - Le opzioni per creare la partizione /boot.

Page 34: Linux Ubuntu per Server e Reti.pdf

Non rimane quindi che selezionare la voce Preparazione di questa part i -zione comple ta ta e creare poi le restanti partizioni. La partizione / contiene i principali file di sistema e gli eseguibil i: su di un server diff ici lmente si installeranno ingombrant i ambienti grafici con effetti 3D o giochi dell 'ult ima generazione ma, non di meno, è poco saggio con-cedere uno spazio l imitato alla partizione radice, dato che è sempre pos-sibile che si richieda l'installazione di nuovo software. Si consiglia quindi di dedicare almeno una manciata di GB (5 GB dovrebbero essere più che sufficienti) a questa partizione. Anche le partizione radice sarà Primaria e creata a partire dall ' Inizio del disco. La schermata delle impostazioni per questa partizione avrà / come Punto di mount ed Ext3 come valore del l 'opzione Usato come. La partizione successiva da creare è /var. Le dimensioni di questa variano a seconda dell 'uso che si vuol fare della macchina: molte applicazioni server (come il web server Apache, per esempio) possono memorizzare ingenti quantità di dati all ' interno di questa directory e, in tal caso, lo spazio su disco da dedicare a /var deve essere adeguato. Va ricordato che anche i pacchetti Ubuntu scaricati dalla rete finiscono nella d i rectory/var (precisa-mente, nella cartella /var/cache/apt/archives). Data dunque la variabilità dei dati contenuti in questa directory e viste le dimensioni sempre maggior i degl i hard disk presenti in commercio, per sicurezza è consigliabile dedicare a /var una partizione da alcuni GB. In questo caso si deve scegliere il t ipo di partizione Logica, ricavando lo spazio dall ' Inizio del disco: è necessario utilizzare una partizione logica perché, altrimenti, con la creazione di /var verrebbero occupate tut te e quattro le partizioni primarie disponibil i e non sarebbe più possibile ag-giungere /home o altre partizioni.

Creando una partizione logica, infatti, viene creata anche la relativa partizione estesa: dato che una partizione estesa è, in realtà, un tipo di partizione primaria, se sono state già create su disco quattro partizioni primarie non è più possibile aggiungere alcuna partizione estesa e, quin-di, nemmeno partizioni logiche.

Page 35: Linux Ubuntu per Server e Reti.pdf

Nelle impostazioni per/var, quindi, si sceglierà /var come Punto di mount . Come filesystem si può scegliere il consueto Ext3, anche se è vero che la directory /var, spesso, è caratterizzata dalla presenza di un gran numero di file di piccole dimensioni: se questo è il caso del proprio server si può indicare ReiserFS come valore del l 'opzione Usato come. In alternativa, si può mantenere Ext3 e scegliere news come Uso t ip ico. Non resta che creare l'ultima partizione, /home. Si lasci a questa tu t to lo spazio disponibi le sull'hard disk. Ciò permetterà all 'amministratore di ag-giungere un numero nutrito di utenti al sistema, offrendo a essi la maggior quantità di spazio disponibi le per document i personali e file eseguibil i. Ovviamente, se si ha intenzione di allestire un server "puro" che fornisca semplicemente un servizio agli altri computer della LAN, non ha mol to senso lasciare tu t to questo spazio alla /home, e la strategia nella riparti-zione dello spazio su disco andrebbe debi tamente rivista (per esempio, aumentando lo spazio da assegnare alla partizione /var). Comunque, per dare tu t to lo spazio rimasto sull'hard disk alla /home si inserisce max come valore per le dimensioni della partizione, oppure si prema semplicemente Invio. Fatto questo, si sceglie / h o m e come Punto di mount e si indica come filesystem Ext3.

Un'ultima accortezza può essere quella di ridurre, in questo caso specifi-co, la percentuale dei Blocchi r iservati. Date le ampie dimensioni della partizione /home, infatti, una percentuale abbassata al 2% costituirà co-munque un sufficiente "salvagente" per l 'utente root e, al t empo stesso, lascerà disponibi le una maggiore quantità di spazio per i file personali degl i utenti.

Confermate le impostazioni per /home si tornerà alla schermata con l'antepri-ma delle partizioni, che sarà ora simile all' immagine seguente (Figura 1.16). A questo punto non rimane che selezionare l 'opzione Terminare il par-t i z ionamento e scrivere i cambiament i sul disco. Nella schermata suc-cessiva comparirà l 'elenco delle partizioni che il sistema formatterà: dopo aver controllato che tu t to corrisponda a quanto richiesto, si selezioni il pulsante Sì in basso così da confermare le modif iche al disco. Le partizioni verranno formattate e saranno installati i pacchetti di base del sistema.

I )igita!LifeStyle*pro 3 5

Page 36: Linux Ubuntu per Server e Reti.pdf

Linux Ubuntu per server e reti

[..ti] Partizionare-

Questa è un'anteprima delle partizioni e dei punto di mount attualmente configurati. Selezionare una partizione per modificarne le impostazioni (file system, mountpoint, ecc.), uno spazio libero per creare delle partizioni o un dispositivo per inizializzarne la tabella delle partizioni.

Partizioriamento guidato Aiuto sul partizionamento

SCSIl (0,0,0) (sda) - 12.9 GB ATA VBOX HARDDISK N( 1 primaria 255.0 MB f STOP sutap n* 2 primaria 49.4 MB B f ext3 /boot n° 3 primaria 5.0 GB f ext3 / n* 5 logica 2.0 GB f ext3 /var

Annullare i cambiamenti alle partizioni Terminare il partizionamento e scrivere

<Indietro>

i cambiamenti sul disco

<TAB> sposta tra elementi; <Spazio> seleziona; <Invio> attiva i bottoni

Figura 1.16 - La schermata con tutte le partizioni create.

Se le partizioni ci sono già

Solitamente l 'allestimento di una macchina server avviene su hardware appositamente acquistato: qualche volta, però, capita di dover "riciclare" dei computer e i loro rispettivi hard disk, adibendol i a uso server. In questi casi, nella schermata che elenca le modalità di part izionamento disponibi l i compariranno delle voci ulteriori: Gu idato - Ridimensionare (seguito dalla partizione che è necessario ridimensionare) e Gu ida to - usa-re il più ampio spazio con t iguo disponibi le.

La prima opzione consente di mantenere le partizioni preesistenti, ridi-mensionandone una per far posto all'installazione di Ubuntu Server. Dopo aver scelto Gu idato - Ridimensionare, quindi, si devono confermare le modif iche all 'hard disk selezionando il pulsante Sì nella schermata che appare.

Le nuove dimensioni della partizione da ridimensionare vanno indicate nella schermata visibile nel l ' immagine che segue (Figura 1.17).

3 6 DigitalLifeStyle*pro

Page 37: Linux Ubuntu per Server e Reti.pdf

B<IfìB>_SBgsta.. tra elementi; <Spazio> seleziona; <Invio> attiva i b o t t o n i

Figura 1.17 - La schermata nella quale si ridimensiona una partizione per far spazio a Ubuntu Server.

È possibile inserire direttamente lo spazio in MB o GB che deve occupare la partizione, oppure utilizzare un valore in percentuale o, ancora, scrivere max per lasciare alla partizione lo spazio massimo consentito. La seconda opzione disponibi le, Gu ida to - usare il p iù ampio spazio cont iguo d isponib i le , permette di mantenere le partizioni preesistenti in-tegre installando Ubuntu Server nello spazio che resta sul disco. Utilizzando il part izionamento manuale, infine, nella schermata con l'ante-prima delle partizioni è possibile selezionare una partizione preesistente e poi ridimensionarla o cancellarla tramite le rispettive opzioni presenti nella schermata delle impostazioni.

I dischi in RAID RAID sta per Redundant Array of Independent Disks ed è un sistema che permette di utilizzare per la memorizzazione dei dati due o più hard disk contemporaneamente, soli tamente delle medesime dimensioni.

Page 38: Linux Ubuntu per Server e Reti.pdf

Ciò ha lo scopo di ridurre al minimo gli effetti negativi di possibili guasti ai dischi e di aumentare le prestazioni degli stessi: nel primo caso i dati vengono replicati sui dischi presenti, nel secondo vengono invece ripartiti fra i dispositivi. Linux può implementare via software un sistema RAID con risultati egregi. Le diverse t ipologie di RAID che il sistema operativo mette a disposizione sono elencate nella Tabella 1.3.

Tabella 1 . 3 - 1 t ip i di RAID disponibi l i . Tipo di RAID Util izzo

Ripartisce i dati su più dischi per aumentare le prestazioni in lettura e scrittura rispetto all'utilizzo di un unico hard disk. Questa tecnica viene chia-mata "str iping" Gli stessi dati vengono scritti su più dischi. Se un disco si guasta il sistema continua a funzionare utilizzando gli altri dischi. Questa tecnica è chia-mata "mirroring" Effettua lo striping ma in più dedica un intero di-sco alle informazioni di parità. Queste informazio-ni servono per la ricostruzione dei dati nel caso di errori su un disco Simile al RAID 4 ma memorizza le informazioni di parità in striping su più dischi. Le prestazioni sono perciò migliori di quelle ottenibil i con il RAID 4 Permette semplicemente di riunire più dischi in un unico disco virtuale di grandi dimensioni. Se un solo hard disk si rompe l'intero RAID smette di funzionare

Il sistema di installazione di Ubuntu Server consente di adottare il RAID sui propri dischi in maniera semplice e diretta. Nel paragrafo seguente, dunque, si vedrà come procedere nell'installa-zione del sistema operativo utilizzando due hard disk in RAID 1, /dev/sda

RAIDO

RAID 1

RAID 4

RAID 5

RAID lineare

Page 39: Linux Ubuntu per Server e Reti.pdf

e /dev/sdb: ogni disco conterrà tre partizioni, la partizione radice (/dev/ sdal e /dev/sdb1), /home (/dev/sda2 e /dev/sdb2) e swap (/dev/sda3 e /dev/sdb3).

Installazione in RAID 1

Per attivare il RAID 1 sui due dischi durante l'installazione di Ubuntu Server bisogna prima creare i necessari dispositivi RAID, poi si devono assegnare filesystem e punti di mount ai dispositivi stessi. Nella schermata Part izionare i dischi si scelga come metodo Manuale. Quindi si selezioni il pr imo hard disk dall 'elenco e alla domanda Creare una nuova tabel la del le par t iz ioni vuota? si risponda Sì. A questo punto bisogna creare una per una le partizioni / , /home e swap sincerandosi di selezionare sempre vo lume fisico per il RAID come valore del l 'opzione Usato come. Inoltre, la partizione radice deve avere neces-sariamente il f lag «avviabi le» att ivato (Figura 1.18).

Page 40: Linux Ubuntu per Server e Reti.pdf

Terminata la creazione delle partizioni sul pr imo disco, si effettua la me-desima sequenza di operazioni per il secondo hard disk. Anche qui il f lag «avviabi le» deve essere attivo per la partizione radice. Poi, nella schermata Part izionare i dischi si seleziona la voce Conf igurare il RAID sof tware e alla domanda Scrivere i cambiament i sui disposi t iv i si r isponde Sì. Nella schermata successiva bisogna scegliere tra le opzioni disponibil i Creare un device mul t id isk (MD), poi si indica come t ipo di multldisk RAID1 . Come numero di device attivi si lascia il valore di default 2, mentre il numero di device «spare» (dispositivi di scorta) deve essere 0. Quando si arriva alla schermata visibile nel l ' immagine seguente (Figura 1.19) è necessario accoppiare in modo oppor tuno le partizioni presenti sui due hard disk.

[JJJ Par t iz ionare i d iser t i

Si è sce l to d i creare un array RftIDl con 2 device a t t i v i .

Scegliere quale p a r t i z i o n i sono device a t t i v i . Si devono selezionare esattamente 2 p a r t i z i o n i .

Device a t t i v i per i l mul t id isk RfilDi:

<Indietro> <Continuare>

<TftB> sposta tra elementi; <-sna7Ìn> selezionai <Invio> attiva i bottoni

Figura 1.19-In questa schermata si devono collegare le partizioni nei due dischi.

Sotto la scritta Device at t iv i per il mul t id isk RAID1 si selezionino dunque le partizioni radice sui due dischi, cioè /dev/sda1 e /dev/sdb1. Fatto que-

Page 41: Linux Ubuntu per Server e Reti.pdf

sto si scelga nuovamente l 'opzione Creare un device mul t id isk (MD), si indichi RAID1, 2 e 0 nelle schermate successive e si metta poi la spunta sia su /dev/sda2 sia su /dev/sdb2. Si proceda nel medesimo modo per accoppiare /dev/sda3 con /dev/sdb3. Infine, va selezionata la voce Terminare nella schermata Passi di conf igu-razione di mult id isk. Si tornerà così alla schermata con la lista delle parti-zioni disponibil i . In questo elenco verranno elencati i dispositivi RAID1 0, 1 e 2 corrispondenti alle tre partizioni. A questo punto non rimane che selezionare la riga posta sotto RAID1 di-sposit ivo n° 0, così da poter stabilire il filesystem per la partizione radice e il relativo punto di mount. Quindi si passa alla riga sotto RAID1 disposi t ivo n° 1 per configurare i valori della partizione /home e alla riga sotto RAID1 disposi t ivo n° 2 per impostare la swap. Infine, si va sulla voce Terminare il par t i z ionamento e scrivere i cambia-ment i sul disco per attivare il RAID1 e procedere con l'installazione del sistema operativo.

Combinazione di RAID e LVM

È possibile unire i vantaggi di RAID e LVM, conf igurando un disposit ivo RAID che utilizzi al suo interno dei volumi LVM. La procedura da seguire per il RAID 1 è la seguente. Si inizia creando un'unica partizione primaria sul pr imo disco (/dev/sda). Quindi, si attiva su di essa un vo lume fisico per il RAID e si rende la par-tizione avviabile. Vanno poi effettuate le stesse operazioni sul secondo hard disk (dev/sdb). A questo punto si seleziona la voce Conf igurare il RAID sof tware e si seguono le istruzioni fornite nel paragrafo precedente per abilitare il RAID 1 sui dischi. Si indicano come device attivi /dev/sda1 e /dev/sdb1. Poi si sceglie l 'opzione Terminare e, nella schermata con l 'elenco del-le partizioni, si seleziona la riga sotto RAID1 d ispos i t i vo n° 0 (Figura 1.20). Come valore per l 'opzione Usato come va scelto vo lume f isico per LVM.

l ) i g i i a lL i f eS ly l c «pro ^ ¿ J J f c

Page 42: Linux Ubuntu per Server e Reti.pdf

M ¡ Partizloriare i disc

Questa è un'anteprima de l le p a r t i z i o n i e dei punto d i mount attualmente con f i gu ra t i . Selezionare una par t i z ione per modificarne le impostazioni ( f i l e system, mountpoint, ecc . ) , uno spazio l i be ro per creare de l le p a r t i z i o n i o un d i spos i t i vo per i n i z i a l i z za rne la tabe l l a de l le p a r t i z i o n i .

Configurare i l RftlD software

Poi si deve selezionare la voce Conf igurare il Logicai Volume Manager. Si risponde Sì nella schermata che appare, quindi nella schermata succes-siva si sceglie Creare i g rupp i di vo lume e si assegna un nome a propria scelta (per esempio vg) al gruppo di volume.

Dopo che si è selezionato Configurare il Logicai Volume Manager è pos-sibile che appaia una schermata di errore con la dicitura Iniziale "Error informing the kernel about modifications to partition". Si tratta di un errore irrilevante e per proseguire è sufficiente andare su Ignore.

Fatto questo, si indica / dev /mdO come Device per il nuovo g ruppo di vo lumi e si aggiungono poi i vari volumi logici (le partizioni da utilizzare)

I l . ) ig italLi feSiyle*pr(

Page 43: Linux Ubuntu per Server e Reti.pdf

1. Installazione

selezionando la voce Creare un vo lume logico. Per ogni partizione si inserisce un nome e si stabilisce lo spazio su disco che questa deve oc-cupare. Infine, si seleziona Terminare nella pagina con il r iepi logo della configurazione di LVM. A questo punto si torna alla schermata con l'elenco delle partizioni: qui saranno comparse delle righe relative ai volumi logici appena creati (inizia-no tut te con la dicitura LVM VG). Ora non rimane che selezionare ciascuna riga posta sotto l' indicazione di un volume logico e indicare per ogni vo-lume il filesystem da adottare e il punto di mount.

Per finire, si va sulla voce Terminare il par t i z ionamento e si consente di far scrivere le modif iche sui dischi. L'installazione del sistema operativo, dunque, procederà e verranno installati i pacchetti di base. Dato che Grub non è ancora compatibi le con i sistemi RAID + LVM, però, è necessario utilizzare LILO come boot loader. Nella schermata che appa-rirà al termine dell' installazione del sistema (Figura 1.21), quindi, si dovrà selezionare come Dest inazione del l ' instal lazione di LILO la voce / d e v / mdO: so f tware RAID array.

DigitaiLifeSty!e»pro o

Page 44: Linux Ubuntu per Server e Reti.pdf

Per maggiori informazioni sul boot loader LILO (Linux LOader) un vali-do documento introduttivo è il LILO mini-HOWTO. Lo si può trovare all'indirizzo: http://www.tldp.org/HOWTO/LILO.html La traduzione Italiana di questo testo si trova all'indirizzo: http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/it/html sin-gle/LILO.html.gz

Dati utente e software Una volta configurate le partizioni e installati i pacchetti di base, l'instal-lazione prosegue con una schermata in cui viene richiesto di digitare il nome completo del l 'utente principale del sistema: se lo si desidera, si può inserire sia il proprio nome sia il proprio cognome.

Ubuntu Server, per maggiore sicurezza e per praticità, non consente l'accesso al sistema tramite l'utente root: le operazioni di amministra-zione avvengono dando, in maniera provvisoria, pieni poteri all'utente principale nel sistema. Se lo si reputa necessario è comunque possibile rendere attivo il classico utente root.

Dal nome completo del l 'utente verrà ricavato il nome del l 'account con cui si avrà accesso al sistema. Nella pagina successiva è poi possibile modif i-care il nome dell 'account. Quindi, si deve inserire la password per l 'account e nella schermata che segue essa va digitata nuovamente, per conferma. Nella schermata successiva è possibile indicare un proxy HTTP per ac-cedere a Internet: può essere necessario indicarlo se si utilizza una rete aziendale che non consente di raggiungere direttamente la rete esterna. In tutt i gli altri casi si prema Invio per proseguire nell'installazione.

Page 45: Linux Ubuntu per Server e Reti.pdf

Le applicazioni da installare

Bisogna poi indicare quali applicazioni si desidera installare subito sul server. Ecco la lista delle opzioni disponibil i, selezionabili una per una premendo il tasto Spazio:

• DNS server. Att ivando questa voce si installa sulla macchina il server DNS BIND;

• LAMP server. LAMP è un acronimo per Linux/Apache/MySQL/PHP e indica l'insieme dei programmi utilizzati t ipicamente per gestire un completo web server;

• Mail server. Installa tut to il necessario per attivare un servizio di mail server;

• OpenSSH server. Questo servizio consente di accedere da remoto alla macchina mediante una connessione cifrata;

• PostgreSQL database. Installa i pacchetti per le componenti client e server del database relazionale PostgreSQL;

Page 46: Linux Ubuntu per Server e Reti.pdf

• Print server. Installa un server per la condivislone delle stampanti all ' interno della rete locale;

• Samba File server. Selezionando questa opzione viene installato un file server che permette di condividere file tra sistemi Linux e Windows.

È anche possibile non selezionare alcuna voce. In questo caso sull'hard disk verrà installato il solo software indispensabile per il funzionamento della macchina. Al termine dell ' installazione comparirà sullo schermo l ' immagine seguen-te (Figura 1.23): non rimane che togl iere il CD dal lettore e premere Invio, così da far riavviare il PC e caricare il sistema operativo Ubuntu Server.

Page 47: Linux Ubuntu per Server e Reti.pdf

Gestire il sistema

Come amministrare gli Utenti, gestire il

parca programmi e aggiungere nuove

partizioni.

Al riavvio del PC ci si troverà davanti al prompt di login: qui bisogna inse-rire il nome dell 'utente principale e digitare la relativa password, così da avere accesso al sistema tramite la console di terminale. Fatto questo, si può cominciare a prendere confidenza con alcuni degli elementi più im-portanti del sistema operativo.

Amministrare gli utenti In un sistema appena installato, l'unico utente attivo è quello principale. Si è anticipato come l'utente principale possa acquisire al bisogno le prero-gative e i poteri del superutente root. Per ottenere questo si fa precedere dall'istruzione sudo il comando che si desidera eseguire con i permessi di root, quindi si inserisce la password dell 'utente principale. Ecco un esempio, da digitare direttamente nella console di terminale:

sudo mkdir Immagini

Page 48: Linux Ubuntu per Server e Reti.pdf

D o p o aver scritto questo comando e p remuto il tasto Invio, il sistema farà apparire una riga come la seguente (al posto di aie verrà indicato il nome del propr io utente):

[sudo] p a s s w o r d for ale:

A questo punto bisogna scrivere la password de l l 'u tente pr incipale e pre-mere Invio.

ale@pitagora:~/tmp$ sudo mkdir Immagini [sudo] password for ale: ale@pitagora: ~/tmp$

Figura 2.1 - Con sudo si ottengono i privilegi dell'utente root inserendo la password dell'utente principale.

Per maggiore comodità, il comando sudo memorizza la password inserita per un determinato periodo di tempo (per default 15 minuti). Richiamando più volte sudo in questo arco di tempo, quindi, non verrà richiesto all'utente di digitare nuovamente la password.

Il comando esegui to nel terminale crea la d i rectory (mkdir) Immagin i a par-tire dalla cartella corrente e, per fare questo, ot t iene momentaneamente i poter i del superutente. Una volta che il sistema ha esegui to il comando che segue l ' istruzione sudo, qu ind i , si tornerà ad avere i poter i l imitati del-l 'utente principale.

Talvolta, però, è necessario lanciare una lunga serie di comandi da root e in tal caso il dover premettere ogni volta sudo può costituire un intralcio seccan-te. La soluzione è quella di utilizzare l 'opzione -s di sudo, in questo modo:

sudo -s

I DìgitalLife.Sty]e*pro

Page 49: Linux Ubuntu per Server e Reti.pdf

Verrà richiesto di inserire la password del l 'utente principale. Una volta che sono stati lanciati tutt i i comandi che si desidera eseguire da root, per tornare ai poteri del l 'utente principale basterà scrivere exit o premere contemporaneamente i tasti Ctr l e D.

Ripristinare l'utente root

In molte distribuzioni Linux e nei sistemi Unix classici è attivo l 'utente root: in tal caso, quindi, invece di acquisire i poteri di root con sudo è possibile effettuare direttamente l'accesso al sistema con il superutente. Per ottenere lo stesso comportamento anche in Ubuntu Server è sufficien-te assegnare una password a root lanciando il comando che segue:

sudo p a s s w d root

A questo punto bisogna digitare la password dell 'utente principale, se que-sta non è stata inserita in precedenza, quindi si deve indicare una password per root e digitarla poi una seconda volta per conferma (Figura 2.2).

ate@pitagora:~$ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully ale@pitagora: -$

Figura 2.2 - Per attivare l'utente root bisogna semplicemente dotarlo di una password.

Fatto questo si potrà effettuare il login direttamente da root, oppure, se si è effettuato l'accesso con un altro utente, sarà possibile acquisire i po-teri di root nella sessione corrente lanciando il comando su - . In questo secondo caso, come per il comando sudo -s visto in precedenza, si tor-nerà ad assumere l ' identità del l 'utente precedente richiamando exit o premendo Ct r l+D.

Nel prosieguo di questo volume, comunque, si continuerà ad adottare sudo come metodo per acquisire i poteri del superutente.

Page 50: Linux Ubuntu per Server e Reti.pdf

Aggiungere nuovi utenti

Per aggiungere un nuovo utente nel sistema si usa il comando adduser,

seguito dal nome del l 'account da creare:

sudo adduser utente

Bisogna quindi digitare la password da assegnare all 'utente e inserirla poi di nuovo per conferma. Fatto questo, è necessario aggiungere qualche informazione supplementare sull 'utente. In console comparirà la riga Full Name [ ]: qui si potranno inserire nome e cognome del l 'utente reale cui deve corrispondere l 'account nel sistema. Verrà poi richiesto I' inserimento di altri dati come il numero di stanza (Room Number) del l 'utente, i numeri di te lefono di questo e altro anco-ra. Si può evitare di aggiungere queste informazioni premendo più volte Invio f inché non compare la scritta Is this in fo rmat ion correct? [y/N]. A questo punto si deve premere y sulla tastiera e poi Invio: l 'utente sarà f inalmente creato. Un comando apparentemente elementare come adduser compie, in real-tà, una serie articolata di operazioni nel sistema: conoscerle nel det-tagl io servirà a introdurre alcuni concett i basilari nel l 'amministrazione di un sistema Linux, r imandando poi alle pagine successive i necessari approfondiment i . Una volta lanciato il comando adduser, dunque, v iene assegnato al-l 'u tente prescelto un g ruppo con il nome de l l 'u ten te stesso, qu ind i viene creata una directory Home apposi ta (del t i po /home/u ten te ) . In questa directory, poi , vengono copiat i au tomat icamente i file contenut i in /etc/skel . A questo proposito è necessaria qualche spiegazione aggiuntiva. I gruppi non sono altro che degl i insiemi di utenti a cui ci si può riferire per con-dividere risorse nel sistema: per esempio, è possibile fare in modo che la directory Documenti sia leggibi le solo dal gruppo di utenti doc. Quando si vorrà rendere leggibi le tale directory da un nuovo utente, quindi, baste-rà inserirlo nel gruppo doc.

Page 51: Linux Ubuntu per Server e Reti.pdf

A ogn i u ten te v iene assegnato un numero progressivo di ident i f icazione,

ch iamato UID. Il p r imo u ten te che si a g g i u n g e al sistema t rami te adduser

ot t iene I 'UID 1001. Il numero ident i f icat ivo per i g r u p p i è invece il GID: il

p r imo g r u p p o agg iun to ha GID 1001. Il superu ten te ha UID 0 e GID 0.

Home, invece, è la directory dove vengono inseriti tut t i i file personali di un singolo utente, mentre /etc/skel è la cartella in cui sono raccolti i f i le stan-dard che ogni utente deve avere al l ' interno della propria directory Home.

Cancellare un utente

Per el iminare un utente dal sistema si usa il comando deiuser: sudo d e i u s e r u t e n t e

Questo comando cancella le informazioni sul l 'utente ma, per ragioni d i sicurezza, non el imina la relativa directory /home. Per cancellarla si può impiegare il comando di cancellazione rm ( l 'opzione -r consente di el imi-nare la directory indicata come a rgomento e tu t te le sue sottocartel le):

sudo rm -r /h o m e / u t e n t e

Per cancellare d i re t tamente un utente e la relativa / h o m e si può far uso d e l l ' o p z i o n e - - r e m o v e - h o m e d i deiuser:

sudo d e i u s e r - - r e m o v e - h o m e u t e n t e

ale@pitagora:-$ sudo deiuser --remove-home utente Looking for files to backup/remove ... Removing files ... Removing user 'utente' ... Warning: Removing group 'utente', since no other user is part of it. Done. ale@pitagora:-$

Figura 2.3 - Con il parametro -remove-home di deiuser è possibile eliminare anche la home di un utente.

DigitalLifeStyle*pro Q

Page 52: Linux Ubuntu per Server e Reti.pdf

Disattivare un utente

A volte può essere necessario impedire momentaneamente a un utente l'accesso al sistema. Per ottenere questo è possibile fare uso di diversi strumenti, tra cui il comando usermod. Per bloccare la password di un utente, così da impedirgl i di effettuare il lo-gin sulla macchina, si utilizza l 'opzione -L del comando, in questo modo:

sudo usermod -L utente

Successivamente, quando si vorrà sbloccare la password, si dovrà digitare:

sudo usermod -U utente

Gestire le password

In precedenza si è visto come, mediante il comando passwd, sia possibile attivare l 'utente root. In termini più generali, passwd serve a gestire ogni aspetto dell 'uso delle password. Innanzitutto, con questo comando si può cambiare la password di un utente. Lanciando passwd senza alcun argomento si cambia la password dell 'utente corrente: il sistema richiederà l'inserimento della password attuale, quindi sarà necessario digitare una nuova password e reinserirla per conferma. Richiamando passwd da root (sudo passwd seguito dal nome del l 'utente di cui si vuole modificare la password), invece, sarà possibile digitare diretta-mente una nuova password senza dover indicare quella corrente: un'op-zione comoda, per esempio, quando un utente ha smarrito la propria pas-sword e vuole crearne una nuova.

Page 53: Linux Ubuntu per Server e Reti.pdf

C o n il c o m a n d o passwd è po i poss ib i le s tab i l i re una scadenza pe r la pas-

s w o r d d i un u ten te , supera ta la qua le sarà necessar io camb ia re la password

c o n una nuova . L 'opz ione da usare è -x, segu i ta dal la du ra ta mass ima in

g i o rn i pe r la password e dal n o m e d e l l ' u t e n t e pe r il qua le va impos ta ta

ques ta scadenza:

sudo passwd -x 60 ale

N e l l ' e s e m p i o r i po r t a to l ' u ten te aie dov rà necessa r iamen te camb ia re la

p ropr ia password o g n i d u e mesi .

È poss ib i le , ino l t re , avver t i re l ' u ten te de l la scadenza i m m i n e n t e t r a m i t e

l ' o p z i o n e -w:

sudo passwd -w 3 ale

In q u e s t o e s e m p i o , l ' u ten te aie v iene avver t i to d e l l ' i m m i n e n t e scadenza

de l la p rop r ia password t re g io rn i p r ima de l l ' e f f e t t i vo t e r m i n e de l la stessa.

Per c o n c l u d e r e ques ta b reve carre l lata sul le mi l le funz iona l i tà de l c o m a n -

d o passwd, g raz ie a l l ' opz ione -s è poss ib i le o t t e n e r e un r i e p i l o g o s in te t i co

sul lo s ta to d i un accoun t . C o n passwd -s si m o s t r a n o le i n fo rmaz ion i r iguar-

dan t i l ' u ten te co r ren te , m e n t r e c o n sudo passwd -s utente si v isual izzano

i da t i d i un u t e n t e a p rop r ia scel ta.

L ' ou tpu t de l c o m a n d o sarà s imi le a l l ' e semp io seguen te :

ale P 06/23/2008 0 60 5 -1

Ecco il c o n t e n u t o de i vari c a m p i visual izzat i , p a r t e n d o da sinistra:

• il n o m e d e l l ' u t e n t e d i cui si s tanno m o s t r a n d o le i n fo rmaz ion i (aie);

• è p resen te una p se l ' u t en te p u ò ut i l izzare una password pe r avere

accesso al s is tema, una L se l ' accoun t è b l o c c a t o e NP se n o n è pre-

sen te a lcuna password ;

• la da ta in cui è avvenu ta l 'u l t ima mod i f i ca alla password (06/23/2008

ne l l ' esemp io ) ;

• il n u m e r o m i n i m o d i g i o rn i che d e v o n o passare tra una m o d i f i c a e

l 'al tra de l la password (0, l ' u ten te p u ò camb ia re la password t u t t e le

vo l t e che vuo le) ;

• la du ra ta mass ima de l la password in g io rn i (60);

Page 54: Linux Ubuntu per Server e Reti.pdf

• quanti giorni prima della scadenza della password bisogna inviare all 'utente un messaggio di avvertimento (5);

• dopo quanti giorni dalla scadenza della password si deve disatti-vare l 'account del l 'utente (-1, opzione disabilitata).

I permessi sui file

Nella console si provi a eseguire il comando is -ai. Verranno mostrati tutti i file e tutte le cartelle presenti nella directory corrente, mediante un elenco in cui ogni riga rappresenta un file o una directory (Figura 2.5). Ecco un esempio:

d r w x r - x r - x 2 a l e a l e 4 0 9 6 2 0 0 8 - 0 6 - 2 4 1 1 : 4 9 D o c u m e n t i /

idrwx-

jdrwx |drwxr-xr |drwxr-xr |-rw-r--r Jdrwxr-xr idrwx Idrwxr-xr - rw

Idrwx-

J-rw-r-|ale@pitagora

3 ale ale 4096 2008-•06- 23 16:02 .Skype 2 ale ale 4096 2008- 04 28 09:00 .ssh

•X 3 ale ale 4096 2008--06-•13 18:38 .streamtuner 1 ale ale 0 2008 04 23 08:59 .sudoasadminsuccessful

• X 3 ale ale 4096 2008--06 •02 12:03 .themes 4 ale ale 4096 2008 06 •10 09:59 .thumbnails

•X ;> ale ale 4096 2008 -06- 24 17:02 tmp •X 5 ale ale 4096 2008--04-•24 16:48 .transmission

1 ale ale 619 2008 •06 •07 17:36 .ufrawrc •X 2 ale ale 4096 2008 -04-•30 12:25 .update-manager-core

2 ale ale 4096 2008 04 •28 09:00 .update-notifier •X 2 ale ale 4096 2008--04--26 12:37 Video

1 root root 6366 2008 •06 •24 18:05 .viminfo 1 ale ale 274 2006 •01 •18 23:44 .vimrc

•X 4 ale ale 4096 2008 -06 •13 16:55 .VirtualBox -X 3 ale ale 4096 2008 •05 22 11:46 .vie

2 ale ale 4096 2008 •04 -28 09:42 .w3m •X 2 ale ale 4096 2008 -06 -24 15:12 .wapi

•X 2 ale ale 4096 2006- 11 23 18:01 .wordtrans 1 ale ale 119 2008-•06 •24 15:11 .Xauthority

-X ale ale 4096 2008 -06 •12 19:10 .xine

•X 10 ale ale 4096 2006 •07 •11 12:03 . xntame • • 1 ale ale 9873 2008--06 •24 18:05 .xsession-errors

Figura 2.5 - Con il comando te -al vengono fornite informazioni dettagliate sui file pre-senti nella directory corrente.

In una linea del genere sono presenti diversi campi separati da un ca-rattere vuoto: il pr imo campo (drwxr-xr-x) indica quali siano i permessi sulla directory Documenti , mentre il terzo (ale) e il quarto (ale) mostrano, rispettivamente, l 'utente e il gruppo cui appart iene la directory. I permessi non sono altro che delle regole di accesso per i file e per le di-rectory. Qual è il significato di una sequenza di caratteri apparentemente C a s u a l e C o m e d r w x r - x r - x ?

Page 55: Linux Ubuntu per Server e Reti.pdf

Il pr imo carattere, d, indica che le informazioni si riferiscono a una di-rectory, mentre il resto del campo è costituito da tre gruppi di tre caratteri ciascuno: il pr imo gruppo rappresenta i permessi relativi all 'utente (rwx), il secondo indica i permessi del g ruppo di appartenenza (r-x) e l 'ult imo i permessi per agli altri utenti nel sistema (r-x). Il carattere r sta per leggi-bile, w per scrivibile, x per eseguibile.

Il f lag x in un file indica che questo può essere eseguito dagl i utenti

come un normale comando. Una directory eseguibi le, invece, è una

cartella in cui gl i utenti possono entrare.

Interpretando la sequenza drwxr-xr-x d 'esempio, quindi, la directory Do-cumenti risulta leggibi le, scrivibile ed eseguibile dal l 'utente che la possie-de, leggibi le ed eseguibile dal g ruppo d'appartenenza e infine leggibi le ed eseguibile dagli altri utenti. Per modificare i permessi si usa il comando chmod. La sintassi di questo comando è piuttosto articolata; una delle più comuni modalità di utilizzo è la seguente:

chmod utenti operatore permessi file

I primi tre parametri vanno inseriti senza spazi separatori e rappresentano, in realtà, un'unica indicazione sui permessi da modificare, espressa in no-tazione mnemonica. II parametro utenti può contenere una o più lettere tra u, g, o e a. La lette-ra u indica l 'utente a cui appart iene il file, g gli utenti presenti nel g ruppo del file a parte l 'utente possessore del file, o tutt i gli altri utenti e, infine, a indica l'insieme degl i utenti nel sistema. Il parametro operatore, quindi, può essere + per aggiungere un flag al file, - per togl iere un flag dal file e, quindi, = per indicare esattamente i flag per gli utenti selezionati tramite il parametro utenti. L'ultimo parametro della notazione mnemonica, permessi, può essere com-posto da una o più lettere tra r, w, x, x, s e t. Le lettere r, w e x indicano, rispettivamente, i permessi in lettura, scrittura ed esecuzione. La x, quindi,

Page 56: Linux Ubuntu per Server e Reti.pdf

attiva i permessi di esecuzione solo se ci si riferisce a una directory o se il f i le indicato possiede già dei permessi di esecuzione per altri utenti . La lettera s fa sì che, al l 'esecuzione del f i le, l 'utente corrente assuma i permessi del possessore del fi le o del g r u p p o cui questo appart iene. Infi-ne, t abil i ta il cos iddet to bit sticky: v iene util izzato pr inc ipa lmente sulle directory e impedisce che un utente possa cancellare o rinominare i file al l ' interno della directory stessa, a meno che l 'utente sia il propr ietar io del fi le o della directory oppure sia root.

Il parametro finale file, qu ind i , indica il f i le o la directory dei quali si vogl io-no modi f icare i permessi. Ecco alcuni esempi, di complessità crescente:

chmod a+r Documenti/tesi.pdf

Questo comando agg iunge i permessi di lettura (+r) sul f i le Document i / tes i .pdf a tut t i (a) gli utenti .

L 'esempio seguente, invece, agg iunge i permessi di scrittura (+r) sul file mbox al l 'utente propr ietar io e al g r u p p o (ug):

chmod ug+w mbox

L'ult imo comando, infine, tog l ie i permessi di scrittura (-w) sul file / h o m e / a le /appunt i al g r u p p o (g) e fa in m o d o che gli altri utent i (o) possano solo leggere il f i le (=r):

chmod g-w,o=r /home/ale/appunti

Il comando chmod è di utilizzo complesso. Per ulteriori appro fond iment i si

consiglia di leggere la pagina di manuale (man page) del comando.

Per visualizzare la man page di un comando si deve eseguire in console man comando. Nel caso di chmod, quindi, si dovrà lanciare man chmod. Per scorrere riga per riga le pagine si utilizzano i tasti freccia su e freccia giù, per andare avanti di una pagina si preme Spazio e per tornare indie-tro di una pagina si preme b. Con q si esce dalla man page.

Page 57: Linux Ubuntu per Server e Reti.pdf

Modificare utente e gruppo di un file

Riprendendo l 'output del comando is -ai r iportato nel paragrafo prece-dente, si è visto come nella riga d 'esempio i campi terzo e quarto mostri-no l 'utente proprietario e il g ruppo di un file o di una directory. Per modificare il proprietario il comando da usare è chown, con la sintassi seguente:

chown utente : gruppo file

Per esempio, per fare in modo che il proprietario del file vacanze.jpg di-venti mario si scrive:

chown mario vacanze.jpg

Il comando chown :video vacanze.jpg, invece, imposta il g ruppo v ideo sul medes imo file de l l 'esempio precedente; infine, la riga seguente indica come propr ie tar io del file jazz.mp3 l 'u tente ale e audio come g ruppo :

chown ale:audio jazz.mp3

Modifiche ricorsive

Spesso si ha la necessità di modif icare i permessi o gli utenti proprietari e i gruppi di tutt i i file contenuti in una directory. Per ottenere questo si utilizza l 'opzione -R, presente sia in chmod sia in chown, che consente di effettuare delle modif iche in modo ricorsivo, attraversando cioè tutt i i file e le sottocartelle a partire dalla directory indicata. Ecco un esempio:

chown -R ale:vacanza Francia2006/

Il comando riportato fa sì che la directory francia2007 e tutt i gli elementi contenuti in questa divengano di proprietà del l 'utente ale e appartenga-no al gruppo vacanza.

Page 58: Linux Ubuntu per Server e Reti.pdf

alegpitagora:~/Immagini$ chown -R ale:vacanza Francia2006/ ale@pitagora:-/Immagini$ I s -al Francia2006/ totale 32

drwxr-xr-x 4 ale vacanza 4096 2006-09-20 15:56 drwxr-xr-x 9 ale ale 4096 2008-06-23 22:48 drwxr-xr-x 10 ale vacanza 4096 2006-08-17 21:06 Normandia drwxr-xr-x 6 ale vacanza 4096 2006-08-17 21:06 Parigi ale@pitagora:~/Immagini$ Is -al Francia2006/Normandia/ totale 76

drwxr- xr X 10 ale vacanza 4096 2006 08 17 21 06 drwxr- xr X 4 ale vacanza 4096 2006 09 20 15 56 d rwx r xr X 2 ale vacanza 4096 2006 08 17 21 06 2086-68-07- -1', 36 49 drwxr- xr -X 2 ale vacanza 4096 2006 -08 17 21 06 2806-08 -08 - -23 . 14 .52

d rwx r xr -X 2 ale vacanza 4096 2008 -04 07 08 53 2086 08-89- - 2 : . 52 .36 drwxr- xr -X 2 ale vacanza 4096 2006 -08 17 21 06 2006-88-18-- . 23 .08 d rwx r xr -X 2 ale vacanza 4096 2006 -08 17 21 06 2806-68-13- -18 d rwx r xr -X 2 ale vacanza 4096 2006 -08 17 21 06 2086-88-14- -19 . 17 .51 d rwx r xr -X 2 ale vacanza 4096 2006 -08 17 21 06 2006-08-14 -19 .27 ,52 drwxr xr -X 2 ale vacanza 4096 2006 -08 17 21 06 . cairelen t s aleiapitagora:--/Imfriagini$ |

Come aggiungere un gruppo

Nel l 'u l t imo esempio r ipor tato si è incontrato il g r u p p o vacanza, non pre-sente tra i g rupp i inclusi nel sistema al m o m e n t o dell ' instal lazione. Per agg iungere un nuovo g ruppo al sistema si utilizza il comando addgroup segui to dal nome del g ruppo . Nel l 'esempio che segue viene creato pro-prio il g r u p p o vacanza:

sudo addgroup vacanza

Il comando speculare per el iminare un g r u p p o dal sistema è deigroup (sudo deigroup vacanza, per seguire l 'esempio precedente). Per inserire

un utente al l ' interno di un g r u p p o si usa adduser con la sintassi seguente:

sudo adduser utente gruppo

Per r imuovere un utente da un g ruppo , invece, si utilizza deiuser con la medesima sintassi (sudo deiuser utente gruppo). L'elenco dei g rupp i nei quali è presente un de termina to utente si ot t iene con il comando groups segui to dal nome del l 'u tente. Per ot tenere la lista

Page 59: Linux Ubuntu per Server e Reti.pdf

di tu t t i g rupp i attivi nel sistema, infine, si può leggere il fi le / e t c /g roup con il comando che segue:

cat /etc/group

Si ot terranno in ou tpu t una serie di r ighe, ognuna del le quali mostrerà un diverso g r u p p o presente nel sistema. Ciascuna linea cont iene tre campi separati dal carattere : e il nome del g ruppo appare nel pr imo campo.

ale@pitagora:~$ cat /etc/group root:x:0: daemon:x:1: bin:x: 2 : sys:x:3: adm:x:4:ale tty: x : 5 : disk:x:6: Ip: X : 7 : mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20:ale,violetta fax:x:21: voice:x:22: cdrom:x:24:ale,violetta floppy :x: 25 : ale,violetta tape:x:26: sudo:x:27: audio:x:29:pulse,ale,violetta dip:x:30: ale,violetta

Concatenando più comandi nella console di terminale è possibile otte-nere in output una lista dei gruppi attivi nel sistema, presentata in ordine alfabetico e depurata da ogni informazioni accessoria. Per fare questo si esegua il comando seguente: cat /etc/group / cut -fi -d / eort

Una simile catena di comandi viene chiamata pipe.

Page 60: Linux Ubuntu per Server e Reti.pdf

La gestione dei pacchetti In Ubuntu Server i programmi vengono fornit i al l ' interno di apposit i pacchet t i : ogni pacchetto è costi tui to dal l ' insieme dei file che verran-no effet t ivamente installati sul sistema e da alcuni file di control lo che contengono le istruzioni per installare e disinstallare in modo pul i to il pacchetto stesso.

I pacchetti si relazionano gli uni con gli altri. Per esempio, un web browser necessita di alcune librerie per funzionare (in gergo si dice che il browser "d ipende" da queste librerie): il web browser sarà presente in un pacchet-to e le librerie richieste saranno contenute in altri pacchetti ancora. In questo caso, programma e librerie devono essere perfettamente com-patibil i tra loro: per ottenere questo, i relativi pacchetti vengono prelevati da un repos i tory comune, cioè da un archivio contenente un ampio nu-mero di pacchetti dalla compatibi l i tà reciproca certa. L'insieme dei repository attivi in una macchina, dunque, forma un eco-sistema armonioso in cui ogni singolo elemento si integra con le parti restanti: la versione del kernel è adatta alle librerie di sistema installate, le singole applicazioni alle diverse librerie presenti e così via.

Installare e cercare pacchetti

II comando principale per gestire i pacchetti nel sistema è apt-get. Per installare un nuovo pacchetto, quindi, la sintassi da usare è la seguente: sudo apt-get instali « p a c c h e t t o

Per installare il pacchetto chiamato emacs, per esempio, si userà quindi il c o m a n d o sudo apt-get instali emacs.

Dopo aver premuto Invio per conferma, il pacchetto verrà scaricato da Internet e installato nel sistema, insieme a tutt i i pacchetti da cui d ipende (le "d ipendenze") per il proprio corretto funzionamento. Per ricercare un pacchetto tra tutt i quelli disponibi l i si usa invece il coman-d o apt-cache, COSÌ:

apt-cache search <criterio>

Al posto di «criterio si inserisce il testo che va ricercato tra i nomi dei pacchetti e tra le descrizioni di questi.

Page 61: Linux Ubuntu per Server e Reti.pdf

Per esempio, per cercare tu t te le occorrenze di " w e b server" si lanci:

apt-cache search web server

Ja le@pi tagora:sudo apt-get i n s t a l l apache2 ¡Reading package l i s t s . , . Done ¡Building dependency tree ¡Reading state in format ion. . , Done ¡The fol lowing extra packages w i l l be ins ta l led :

apache2-mpm-worker apache2-utils apache2,2-common l i b a p r l t i b a p r u t i l l (Suggested packages: j apache2-doc The fol lowing NEW packages w i l l be ins ta l led :

apache2 apache2-mpm-worker apache2-utils apache2.2-common l i b a p r l f : l i b a p r u t i l l

0 upgraded, 6 newly ins ta l l ed , 0 to remove and 0 not upgraded. I f ¡Need to get 1355kB of archives. ¡After th i s operation, 4878kB of addi t ional disk space w i l l be used. Do you want to continue [Y/n]? |

L'output scorrerà nella console e l 'elenco dei vari pacchett i che soddisfano il criterio inserito sarà visualizzato senza seguire alcun ordine. Per avere i risul-tati della ricerca in ordine alfabetico, invece, si d igi t i il comando seguente:

apt-cache search web server | sort | less

Il comando appena eseguito è una pipe: il risultato di apt-cache search

diventa l'input di sort (che ordina i dati), quindi l'output di sort diventa

l'input di less (che visualizza i dati in schermate separate).

In questo caso, inoltre, i risultati non scorreranno riga per riga in console,

ma verranno mostrat i una schermata per volta: per passare alla schermata

successiva basterà premere il tasto Spazio.

Page 62: Linux Ubuntu per Server e Reti.pdf

Per ot tenere un elenco dei pacchett i installati nel sistema si usa il coman-d o seguente:

dpkg -1

A g g i u n g e n d o come argomento de l l 'opz ione -1 una qualsiasi stringa se-guita dal carattere *, verranno mostrat i solo i pacchett i installati i cui nomi con tengono la stringa inserita. Qu ind i , per elencare tut t i i pacchett i che hanno nel nome " l ibe" si dovrà scrivere questo in console:

dpkg -1 libe*

Il carattere * della riga dpkg -i libe* è un carattere speciale (meta-carattere) e significa "qualsiasi successione di caratteri, anche vuota". L'argomento libe*, quindi, viene tradotto dal comando dpkg in "i caratteri I, i, b e c seguiti da una qualsiasi successione di caratteri". Una sequenza come libe* è chiamata glob pattern.

Informazioni complete

Una volta che si è indiv iduato un pacchet to con apt-cache search, si ha spesso la necessità di o t tenere informazioni det tag l ia te su di esso. Per fare questo si usa il comando interno show d i apt-cache, così:

apt-cache show «pacchetto?

Nelle r ighe di ou tpu t visualizzate in console da apt-cache show sono pre-senti numerosi campi ; ecco i principali :

• Versión. Indica la release del pacchet to presente nel repository;

• Depends . Cont iene l 'elenco di tu t te le d ipendenze del pacchet to;

• Suggests. Sono i pacchett i suggeri t i : se le d ipendenze consentono di far funzionare il p rogramma, i pacchett i suggeri t i pe rme t tono al programma di funzionare al megl io ;

• Conf l ic ts . I pacchett i in conf l i t to con il pacchet to selezionato. Non è possibi le installare con temporaneamente questo e quel l i ;

• Descr ip t ion . Una descrizione accurata del software presente nel pacchet to.

Page 63: Linux Ubuntu per Server e Reti.pdf

Se nei repository sono presenti più versioni di uno stesso pacchetto, il comando apt-cache show mostrerà informazioni su tutte le release dispo-nibili, in sequenza.

Pacchetti sempre aggiornati

In una macchina server è indispensabile avere sempre le ult ime versioni dei pacchetti rilasciate dalla distribuzione. In questo modo si starà ragio-nevolmente al riparo da bug insidiosi che possano compromettere la si-curezza del server. L'operazione di aggiornamento consta di due passaggi. Prima si scarica da Internet la lista più recente dei pacchetti disponibil i :

sudo a p t - g e t u p d a t e

Fatto questo, per aggiornare tutt i i pacchetti installati all 'ultima release si lancia il comando seguente:

sudo a p t - g e t u p g r a d e

ale@pitagora:-$ sudo apt-get update Hit http://it.archive.ubuntu.com hardy Release.gpg Hit http://security.ubuntu.com hardy-security Release.gpg Hit http://archive.canonical.com hardy Release.gpg Hit http://it.archive.ubuntu.com hardy-updates Release.gpg Hit http://5ecurity.ubuntu.com hardy-security Release Hit http://archive.canonical.com hardy Release Hit http://security.ubuntu.com hardy-security/main Packages Hit http://it.archive.ubuntu.com hardy Release Hit http://archive.canonical.com hardy/partner Packages Hit http://security.ubuntu.com hardy-security/restricted Packages Hit http://security.ubuntu.com hardy-security/main Sources Hit http://security.ubuntu.com hardy-security/restricted Sources Hit http://it.archive.ubuntu.com hardy-updates Release Hit http://security.ubuntu.com hardy-security/universe Packages Hit http://security.ubuntu.com hardy-security/universe Sources Hit http://security.ubuntu.com hardy-security/multiverse Packages Hit http://security.ubuntu.com hardy-security/multiverse Sources Hit http://it.archive.ubuntu.com hardy/main Packages Hit http://it.archive.ubuntu.com hardy/restricted Packages Hit http://it.archive.ubuntu.com hardy/main Sources Hit http://it.archive.ubuntu.com hardy/restricted Sources Hit http://it.archive.ubuntu.com hardy/universe Packages Hit http://it.archive.ubuntu.com hardy/universe Sources

Figura 2.9 - Eseguendo sudo apt-get update si scarica una lista aggiornata dei pacchetti disponibili.

Page 64: Linux Ubuntu per Server e Reti.pdf

La politica di aggiornamento di apt-get upgrade è piuttosto stringente: con questo comando nessun pacchetto sarà disinstallato o aggiunto al si-stema anche se ciò viene richiesto per portare a termine l 'aggiornamento di uno o più pacchetti. Questo comando, dunque, consente di mantenere l'assoluto control lo sul parco software presente in una macchina, ma non assicura che vengano aggiornati tutt i i pacchetti installati. A volte, però, il comple to agg iornamento di un sistema richiede l'in-stallazione di pacchett i aggiunt ivi o l 'el iminazione di altri: in questi casi si deve utilizzare il comando sudo apt-get dist-upgrade che, in caso di confl i t t i tra i pacchett i , aggiornerà quell i considerati più important i a scapito degl i altri.

Eliminare i pacchetti

Per cancellare un pacchet to dal sistema insieme a tut t i i fi le che lo c o m p o n g o n o si usa apt-get segui to dal comando interno remove, in questo modo :

sudo apt-get remove <pacchetto>

L'installazione di un pacchetto comporta spesso la creazione di alcuni file di configurazione sull'hard disk: questi non vengono eliminati dal coman-d o apt-get remove.

Per cancellare sia i file effettivi di un pacchetto sia i file di configurazione, dunque, si deve utilizzare apt-get purge:

sudo apt-get purge <pacchetto>

Quando si installa un pacchetto, il fi le di questo viene memorizzato nella directory /var/cache/apt/archives. Ciò può essere utile per reinstallare rapidamente dei pacchett i che si sono installati in passato: un pacchet-to presente in questa directory, infatti, non verrà scaricato nuovamente dalla rete.

Dopo aver installato molt i nuovi pacchetti e aggiornato più volte la mac-china, però, è inevitabile che la directory /var/cache/apt/archives risulti piena di file deb e che, perciò, finisca per occupare centinaia di MB di spazio su disco.

Page 65: Linux Ubuntu per Server e Reti.pdf

i f i le de i pacchet t i di Ubuntu Server hanno estensione .deb, da to che il

sistema di ges t ione de i pacchet t i d i Ubun tu è lo stesso presente nella

d is t r ibuz ione Debian. Visto il suffisso f inale de i f i le, tali pacchet t i v e n g o -

no chiamat i "pacche t t i d e b " .

È possibile "sfolt ire" /var/cache/apt/archives in due modi: cancellando tutt i i file presenti nella cartella oppure el iminando solo quei file dei pac-chetti che non sono più scaricabili dai repository su Internet (e dei quali, dunque, non risulta più di alcuna utilità avere una copia sull'hard disk). Per eliminare tutt i i file deb da /var/cache/apt/archives va usato il coman-do seguente:

sudo apt-get clean

ale@pitagora:-$ Is /var/cache/apt/archives/ compiz-core I%3a0.7.4-0ubuntu7 i386.deb compiz-gnome l%3a0.7.4-0ubuntu7Ì386.deb compiz-plugins I%3a0.7.4-0ubuntu7 i386.deb compiz iya6.7.4-0ubuntu7ali .deb evolution-common 2.22.2-0ubuntu2 ali.deb evolution-plugins 2.22.2-Oubuntu2 Ì386.deb evolution_2.22.2-Bubuntu2 Ì386.deb googleearth 4.3.7204.836-0medibuntul ali.deb gtwitter 1.0~beta-6ubuntul ali.deb libdecorationO I%3a0,7.4-0ubuntu7 i386.deb libglib2.0-0 2.16.3-lubuntu3 Ì386.deb libglib2.0-data 2.16.3-lubuntu3 ali.deb libldap-2.4-2J.4.9-0ubuntu0.8.04 Ì386.deb libpoppler-glib2 8.6.4-lubuntu2 Ì386.deb libpoppler-qt2 076.4-lubuntu2 Ì386.deb libpoppler2 0.6.4-lubuntu2 Ì386.deb libsoup2.2-8 2.2.105-4 Ì386.deb libssl0.9.8 0.9.8g-4ubuntu3.3 i386.deb linux-heade rs-2.6,24-19-gene rie 2.6.24-19.34 i386.deb linux-headers-2.6.24-19 2.6.24 19.34 ali.deb linux-image-2.6.24-19-generic 2.6.24-19.34 i386.deb linux-source-2.6.242.6.24-19.34 ali.deb linux-ubuntu-modules-2.6.24-19-generic_2.6.24-19.28 i386.deb

Figura 2.10-Se /var/cache/apt/archives è piena, con sudo apt-get clean si cancellano tutti i file dalla directory.

Con sudo apt-get autoclean, invece, verranno cancellati solo i file di cui non è più possibile effettuare il download.

Page 66: Linux Ubuntu per Server e Reti.pdf

Gestire i repository

Nella configurazione di default di Ubuntu Server sono attivi tutt i i reposi-tory necessari per mantenere costantemente aggiornato il proprio server. È possibile, comunque, gestire direttamente i repository abilitati nel siste-ma intervenendo sul file /etc/apt/sources.l ist, un semplice file di testo che va aperto con un editor.

Mol to del lavoro di amministrazione di un server viene svolto all ' interno di un editor di testo: i file di configurazione del sistema o quell i dei program-mi, infatti, non sono altro che file testuali modif icabil i dagli utenti provvisti dei permessi necessari. La presentazione del file /etc/apt/sources.l ist, quindi, offrirà l'occasione giusta per conoscere da vicino uno degl i editor installati per default su Ubuntu Server: nano.

L'editor nano

Per aprire il file /etc/apt/sources.l ist con l 'editor nano è necessario far uso di sudo, dato che un utente normale non avrebbe i permessi per modifica-re il file. Si lanci quindi in console il comando seguente:

sudo nano /etc/apt/sources.list

Comparirà una schermata con in alto una riga informativa contenente il nome del file aperto, in basso un r iepi logo dei comandi disponibi l i nel-l 'editor e, nella sezione principale al centro, il contenuto del file /e tc /apt / sources.list. Il risultato su schermo sarà simile al l ' immagine seguente (Fi-gura 2.11). L'editor nano è mol to semplice da usare: con i tasti freccia ci si sposta al-l ' interno del file aperto, con la combinazione di tasti C t r l+O si salva il file e con C t r l+X si esce dall 'editor. Premendo Ct r l+G, quindi, viene forni to un prospetto dei principali comandi disponibi l i in nano, con le relative combinazioni di tasti.

Page 67: Linux Ubuntu per Server e Reti.pdf

GNU nano 2.0.7 File: /etc/apt/sources.list

2 deb cdrom: [Ubuntu 8.04 Hardy Heron^ - Release i386 (20080423)1/ hardy main r$ # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution.

deb http://it.archive.ubuntu.com/ubuntu/ hardy main restricted deb-src http://it.archive.ubuntu.com/ubuntu/ hardy main restricted

## Major bug fix updates produced after the final release of the ## distribution. deb http://it.archive.ubuntu.com/ubuntu/ hardy-updates main restricted deb-src http://it.archive.ubuntu.com/ubuntu/ hardy-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. deb http://it.archive.ubuntu.com/ubuntu/ hardy universe deb-src http://it.archive.ubuntu.com/ubuntu/ hardy universe

Read 55 lines § Get Help ffi WriteOut 1 13 Read File | Q Prev Page | g Cut Text E l Exit E Justify Q Where Is | E Next Page § 1 UnCut T e x t ®

Cur Pos To Spell

Figura 2.11 - L'editor nano con aperto il file /etc/apt/sources.list.

In questi primi capitoli del volume vengono trattati argomenti più sem-plici di quelli affrontati nelle sezioni successive. Per il momento, quindi, si è scelto di utilizzare un editor di base come nano. Si forniranno poi informazioni dettagliate sul più complesso vi, l'editor standard nelle macchine Unix.

Il file sources.list per i repository

Prendendo come riferimento il file /etc/apt/sources.l ist di default su Ubun-tu Server, le prime righe sono righe di commento: iniziano con il carattere # e consentono di aggiungere informazioni sugli elementi di configurazio-ne presenti nel file.

Page 68: Linux Ubuntu per Server e Reti.pdf

Può stupire che al l ' interno d i un semplice file di configurazione siano

presenti del le righe di commento , come nei sorgenti dei programmi. In

realtà, data l ' importanza dei file di configurazione nell 'amministrazione

di una macchina, capiterà spesso di aprirne uno a distanza anche di anni

dalle ult ime modi f iche apportate: del le chiare righe di commento saran-

no allora fondamental i per potersi orientare.

Le righe effettive di configurazione forniscono i dati sui repository da atti-vare e utilizzano il seguente formato:

deb uri distribuzione componenti

Ogni linea rappresenta uno o più repository. Il pr imo elemento ne indica il t ipo: deb per i repository di pacchetti con i file eseguibil i compilati , deb-src per quelli contenenti i sorgenti dei pacchetti.

La voce uri contiene il percorso iniziale dei repository. Si tratta solitamen-te dell ' indirizzo Internet da cui prelevare i pacchetti, privo della parte che specifica la versione della distribuzione cui si è interessati. L'elemento di-stribuzione, quindi, indica la release della distro installata sulla macchina: hardy, gutsy, dapper e tutt i gli altri nomi attribuiti alle varie versioni di Ubuntu.

A ogni nuova release di Ubuntu viene affibbiato un nomignolo composto da

due parole: un aggett ivo e un nome di animale. In lingua inglese entrambe

le parole cominciano con le stesse iniziali. L'attuale versione 8 . 0 4 LTS ha

come nome in codice H a r d y H e r o n (Airone Audace), la precedente 7 . 1 0

G u t s y G i b b o n (Gibbone Coraggioso)... Un elenco dei nomi delle diverse

versioni si trova alla pagina https://wiki.ubuntu.com/Releases.

Per ogni release di Ubuntu, poi, sono disponibi l i sui server dei reposi-tory alcune cartelle che forniscono element i distribuzione aggiuntivi .

Page 69: Linux Ubuntu per Server e Reti.pdf

La versione 8.04 LTS di Ubuntu ha hardy-updates, contenente aggior-namenti che risolvono bug important i nei pacchett i , e hardy-backpor ts , che presenta versioni più recenti dei pacchett i fornit i con il rilascio della distr ibuzione. L'ultimo parametro, componenti, è formato dal nome del componente fina-le di uno o più repository che si desidera abilitare: per indicare più com-ponenti è necessario che questi abbiano uri e distribuzione in comune. Nella Tabella 2.1 vengono mostrati i principali component i disponibil i .

Tabella 2.1 - Elenco dei component i .

Componen te Signi f icato Pacchetti open source diret tamente supportat i da

main Ubuntu. Gli aggiornament i di sicurezza avvengono in tempi mol to rapidi Pacchetti open source che, a differenza del componen-

universe te main, sono gestiti dalla comunità di utenti. Gli ag-giornamenti di sicurezza sono fornit i dalla comunità Pacchetti non open source. Questo componente e i re-

muitiverse lativi aggiornament i di sicurezza sono gestiti dalla co-munità di utenti Pacchetti non disponibi l i sotto licenza libera ma diret-

restricted tamente supportati , per quanto possibile. Contiene dri-ver per hardware non altrimenti supportato su Linux

partner Pacchetti commerciali

L'insieme di tutt i questi elementi forma quindi una riga in /etc/apt/sour-ces.list come la seguente:

deb http://it.archive.ubuntu.com/ubuntu/ hardy main restricted

Un repository a parte è http:/ /securi ty.ubuntu.com/ubuntu, che contiene i soli aggiornamenti di sicurezza per la distribuzione. Ecco una riga che lo richiama:

deb http://security.ubuntu.com/ubuntu hardy-security main restricted

Page 70: Linux Ubuntu per Server e Reti.pdf

La presenza di più repository per gli upgrade, ognuno dedicato a un diverso t ipo di aggiornamento per i pacchetti, consente di scegliere in modo granulare cosa aggiornare o meno su di una determina macchina: una possibilità fondamentale in un server.

Modifiche ai repository

Ora che la struttura di sources.list è nota, si possono apportare delle mo-difiche alla configurazione di default del file in Ubuntu Server. Per esempio, se non si è interessati alla compilazione dei sorgenti si pos-sono disattivare tutt i i repository di t ipo deb-src: in questo modo la pro-cedura di aggiornamento con sudo apt-get update sarà più rapida. Per ottenere questo basta inserire il carattere # all'inizio di ogni riga deb-src. Quindi, la linea seguente:

deb-src http://it.archive.ubuntu.com/ubuntu/ hardy main restricted

diventa

#deb-src http://it.archive.ubuntu.com/ubuntu/ hardy main restricted

In un server può essere utile avere disponibi le solo il software direttamen-te supportato da Ubuntu: in tal modo si sarà certi che, qualunque applica-zione si scelga di installare sulla propria macchina, in caso di bug accertati questi verranno corretti nel più breve tempo possibile. Per ottenere una configurazione di sources.list di tal fatta, quindi, è sufficiente commentare tut te le righe nel file che facciano riferimento ai component i universe e mult iverse.

Una volta che sono state apportate delle modif iche al file sources.list, bi-sogna poi aggiornare la lista dei pacchetti nei repository con sudo apt-get update.

Se si desidera aggiungere dei repository ma non si vuole "sporcare" il file sources.list principale, infine, è possibile creare nella directory /e tc /apt / sources.list.d dei file separati contenenti le righe necessarie per attivare i repository aggiuntivi.

Page 71: Linux Ubuntu per Server e Reti.pdf

Attenzione! Si controll i scrupolosamente la provenienza e il contenuto

di questi repository per non compromet tere la sicurezza della propria

macchina.

Se il repository non risponde

Durante la procedura di installazione del sistema operat ivo vengono in-seriti in sources.list dei mirrar dei repository di Ubuntu geograf icamente vicini alla macchina: per l'Italia si tratta del mirrar con uri: ht tp : / / i t .a rch ive .ubuntu .com/ubuntu /

Un mirrar è la copia esatta del contenuto di un sito. In questo caso, si

tratta di server ht tp e f tp sparsi in tu t to il mondo che replicano il conte-

nuto degl i archivi di repository Ubuntu.

Una scelta del genere, sol i tamente, permet te di scaricare liste e pacchett i dai repository nei t emp i più rapidi possibi l i ; qualche volta, però, gli indiriz-zi predef in i t i possono risultare i r raggiungibi l i o sempl icemente intasati. In quest i casi si può aprire la pagina w e b che elenca tut t i i mirrar d ispo-nibil i . Per fare questo si può usare il browser testuale w3m installato per defaul t su Ubuntu Server:

w3m https://wiki.ubuntu.com/Mirrors?action=show

Nel l 'e lenco che appare, qu ind i , si individua un secondo mirrar nelle vici-

nanze. Poi si devono cambiare in sources.list tu t te le occorrenze di h t t p : / /

it.archive.ubuntu.com/ubuntu/ inserendo al posto di queste l'uri del mir-

rar alternativo.

Per esempio , una riga come la seguente:

deb http://it.archive.ubuntu.com/ubuntu/ hardy universe

Page 72: Linux Ubuntu per Server e Reti.pdf

può diventare così:

deb ftp://ftp.fu-berlin.de/linux/ubuntu/ h a r d y u n i v e r s e

2. CD Images 1. CD Image Mirrors

3. DVD Images 1. DVD Image Mirrors

Sub-pages

Mirror-Mirrors

The following package archive mirrors are available, for you to mirror from, if you would rather mirror from a downstream mirror than from the master servers at Ubuntu:

(See also the mirror list at launchpad: [WWW] https://launchpad.net/ubuntu/ +archivemirrors )

Australia

• [WWW] http : / / f tp. i inet.net.au/pub/ubuntu/

• [WWW] ht tp : / /mi r ror .optus.net /ubuntu/

I« t i Viewing[SSL] <Mirrors - Ubuntu Wiki>|

Figura 2.12 - Alla pagina https://wiki.ubuntu.com/Mirrors?action=show è disponibile un elenco dei mirror Ubuntu.

Il gestore semigrafico dei pacchetti

È disponibi le per la console una pratica interfaccia semigrafica per il ge-store di pacchetti, chiamata aptitude. La si avvia con il comando sudo

aptitude.

L'aspetto del programma è mostrato nell' immagine seguente (Figura 2.13). I pacchetti sono organizzati in sezioni e sottosezioni: per muoversi tra que-ste si usano i tasti freccia su e freccia giù, mentre per aprire la sezione o la sottosezione corrente si preme Invio. Individuato un pacchetto che si vuole installare si preme + per selezionarlo; per disinstallare un pacchetto si preme -.

Con il tasto u si scaricano dai server remoti le liste aggiornate dei pacchet-ti e con U, invece, si selezionano tutt i i pacchetti di cui sono disponibi l i aggiornamenti .

Page 73: Linux Ubuntu per Server e Reti.pdf

Actions Undo Package Resolver Search C-T: Menu ?: Help q: Quit u: Update g: >-aptitude 6.4.9 || --- Installed Packages

Views Help !I/Remove Pkgs

Not Installed Packages Obsolete and Locally Created Packages Virtual Packages Tasks

Revert options

•These packages are current ly i ns ta l l ed o n your computer.

¡Change the behavior of aptitude

Figura 2.13 - Aptitude è un'interfaccia semigrafica per il gestore di pacchetti.

Quindi, per procedere nelle operazioni di installazione, disinstallazione o aggiornamento si preme g. Apt i tude dispone poi di una serie di menu che consentono l'accesso ad alcune funzionalità avanzate nell 'amministra-zione dei pacchetti: questi menu sono raggiungibi l i con la combinazione di tasti Ctr l+T. Come esempio, ecco la procedura da seguire per installare l 'editor emacs tramite aptitude: con i tasti freccia si entra nella sezione No t Instal led Packages, quindi si preme Invio, si apre la sottosezione edi tors, poi si entra in main. A questo punto si seleziona la riga con la scritta emacs, si preme + e poi g. Il pacchetto principale di emacs con tut te le dipendenze necessarie verrà installato nel sistema.

Come installare singoli pacchetti

Fino a ora si è visto come installare pacchetti contenuti nei repository. Per installare singoli pacchetti, scaricati da Internet o creati dalla compilazio-ne di sorgenti, si usa il comando dpkg seguito dal file deb del pacchetto indicato per esteso e, se necessario, con il percorso completo per rag-giungerlo.

Page 74: Linux Ubuntu per Server e Reti.pdf

Ecco un esempio:

sudo dpkg -i /tmp/unrar_l%3a3.7.8-l_i386.deb

A differenza di apt-get e aptitude, dpkg agisce a un livello più basso e non gestisce la risoluzione delle dipendenze: se il pacchetto indicato richiede delle dipendenze, quindi, sarà necessario procedere manualmente alla loro installazione. Per installare pacchetti svincolati dai repository e, al tempo stesso, risolve-re le dipendenze si può usare il programma gdebi. Dopo averlo aggiunto al s i s tema c o n sudo apt-get instali gdebi-core, p e r ins ta l lare un p a c c h e t -

to si utilizzerà il comando nel modo seguente:

sudo gdebi /tmp/unrar_l%3a3.7.8-l_i386.deb

Alcuni pacchetti d'uso comune

Al di là del particolare utilizzo che si farà della macchina, ci sono dei pac-chetti non installati per default su Ubuntu Server che è mol to comodo avere a propria disposizione. L'utilizzo di un file manager può rendere mol to più rapide alcune opera-zioni di manutenzione, anche in un server: per la console è disponibi le l 'ot t imo Midnight Commander, contenuto nel pacchetto me. Una volta installato il pacchetto, il file manager si lancia con il comando me. Questo gestore di file presenta la classica struttura a due pannelli, uno per la directory d'or igine e l'altro per la directory di destinazione. Le ope-razioni sui file si compiono premendo i tasti funzione: F5 per copiare, F6 per spostare, F8 per cancellare e così via. Un altro pacchetto utile è ianguage-pack-it, che consente di avere la tra-duzione completa in lingua italiana dei messaggi e dell ' interfaccia di molt i dei principali programmi disponibil i .

Inoltre, installando il pacchetto manpages-it anche le pagine di manuale dei comandi saranno in italiano.

Page 75: Linux Ubuntu per Server e Reti.pdf

S. Gestire il sistema

Left File Command Options

Name . kderc . lesshst . mailcap . mcoprc . profile . pulse-cookie . realplayerrc . recently-used .recent-ed.xbel .signature.mail .sitecopyrc .sudo a-cessful .viminfo

MTime

May 21 10:31 Jun 26 19:42 May 13 22:06 May 21 09:14 Apr 15 05:36 Apr 28 09:00 Jun 2 16:18 Jun 27 16:30 Jun 27 17:03 Feb 19 2003 Oct 29 2007 Apr 28 08:59 Jun 27 12:24 Jan 18 2006

.xsession-errors

Riflhtx,

< - / Name

/bin /boot -cdrom /dev /etc /home /initrd /lib

/lost+found /media /mnt / p r o c /root

/sbin /srv

V>1 Size MTime

4696 Jun 16 18:69 " 4696 Jun 26 16:11 *

11 Apr 28 68:34 13966 Jun 27 16:24 12288 Jun 27 16:25 4696 Jun 24 13:23 4696 Apr 22 19:48 4696 Jun 17 68:55

16384 Apr 28 68:34 4696 Jun 27 16:24 4696 Apr 15 07:53

6 Jun 27 16:24 4696 Jun 4 16:55 4696 Jun 26 11:21 4696 Apr 22 19:48

Hint: VFS coolness: tap enter on a tar file to examine its contents.

ale@pitagora:~$ | lHetp 2Menu 3View 4Edit SCopy ORenMov 7Mkdir SDelete gPullDn lOQuit

Figura 2.14 - L'interfaccia del file manager mc.

Le p a r t i z i o n i Nel capitolo iniziale si è visto come impostare le partizioni sul disco rigido, sfruttando al megl io l 'ampio ventagl io di filesystem disponibi l i su Linux. Dopo aver installato Ubuntu Server, però, può essere necessario aggiun-gere ulteriori partizioni oppure modificare alcuni parametri di quelle esi-stenti. Per effettuare cambiamenti nella configurazione delle partizioni si deve intervenire sul file /etc/fstab.

Il file /etc/fstab

Si apra /etc/ fstab con nano, acquisendo i poteri di root:

s u d o n a n o / e t c / f s t a b

La struttura del file /etc/ fstab è elementare: ogni riga rappresenta un di-verso disposit ivo nel sistema; fanno eccezione le linee con all'inizio il ca-rattere #, che costituiscono mere righe di commento.

Page 76: Linux Ubuntu per Server e Reti.pdf

GNU nano 2.0.7 File: /etc/fstab

Z /etc/fstab: static file system information. #

# <file system> <mount point> <type> <options> proc /proc proc defaults # /dev/sdal UUID=45ad37fa -386e-4ff0-be33-d4465e05c096 / # /dev/sda3 UUID=2Oe23alb-0clb-46ba-8cba-20eb80f5c5bf /home # /dev/sda2 UUID=07523736-8e32-4378-bbff-3bcaf4d57890 none

<dump> <pass> 0 0

/dev/scdO

ext3

ext3

swap

relatime,erro$

relatime $

/media/cdromO udf,iso9660 user,noauto,exec,utf8 0

Read 11 lines J Cut Text n Cur Pos UnCut Textfl To Spell

Ecco una linea di esempio di /etc/fstab:

/dev/scdO / m e d i a / c d r o m O u d f , i s o 9 6 6 0 u s e r , n o a u t o , e x e c , u t f 8 0 0

I parametri sono separati gli uni dagli altri per mezzo di spazi vuoti. Il pri-mo parametro (/dev/scdo) indica il f i le di d isposi t ivo cui la riga si riferisce, e in questo caso si tratta del lettore CD/DVD. Per un elenco dei principali file di disposit ivo si veda la Tabella 2.2.

Un file di dispositivo è un file che viene impiegato dal sistema per dia-logare con un dispositivo come una partizione dell'hard disk o un floppy disk. I file di dispositivo possono essere letti e scritti: ciò consente di leggere il contenuto dei dispositivi hardware e di scriverci sopra.

Page 77: Linux Ubuntu per Server e Reti.pdf

Gestire il sistema

Tabella 2.2 - I pr incipal i f i le di d isposi t ivo

File di d isposi t ivo Disposi t ivo hardware

/dev/sda

Il pr imo hard disk presente nel sistema. La ma partizione di /dev/sda è /dev/sda1, la conda è /dev/sda2 e così via

pri-se-

/dev/sdb

Il secondo hard disk presente nel sistema. La prima partizione di /dev /sdb è /dev/sdb1, la se-conda è /dev/sdb2 e così via

/dev/scdO Lettore CD/DVD /dev/fdO Floppy disk

/dev/videoO Videocamere e webcam

In passato i file di dispositivo degli hard disk ATA e di quelli SATA erano differenti: /dev/hdX per i primi e /dev/sdX per i secondi. Nella versione corrente di Ubuntu Server, invece, viene adottata la sola forma /dev/sdX su entrambe le tipologie di dischi.

Il parametro seguente (nell 'esempio /media/cdromo) è il punto di mount per il file di dispositivo indicato: quando si vorrà leggere il contenuto di un CD/DVD, quindi, questo sarà disponibi le nella directory /media/cdromo. Il terzo parametro rappresenta il filesystem utilizzato dal dispositivo. Nella riga di esempio sono presenti due filesystem separati da una virgola, udf e iso966o: verrà richiamato quel lo effett ivamente utilizzato sul supporto inserito nel lettore CD/DVD.

Il parametro successivo precisa le opzioni di mount per il disposit ivo in-dicato. Nel l 'esempio, user consente a un utente normale di effettuare il mount, noauto indica che il disposit ivo non deve essere montato al boot della macchina, exec permette l'esecuzione di file binari nel disposit ivo e utf8, infine, fa in modo che i caratteri Unicode a 16 bit in un CD venga-no convertit i in caratteri UTF-8. Per un elenco esaustivo delle opzioni di mount si può leggere la man page del comando mount.

Page 78: Linux Ubuntu per Server e Reti.pdf

Gli ult imi due parametri sono numerici. Il pr imo di essi indica se di una de-terminata partizione si deve effettuare o meno il backup tramite il program-ma dump (solitamente il parametro ha valore o, cioè backup disabilitato). Il secondo parametro, infine, stabilisce l 'ordine con il quale vengono con-trol late le part izione da fsck: si dov rebbe assegnare per la part izione di root il valore 1, per le altre 2. Inserendo 0 come valore del parametro, invece, la part izione non verrà mai control lata al boo t .

Il comando fsck consente di controllare l'integrità delle partizioni e, nel caso, di recuperare i filesystem danneggiati. Viene invocato dal sistema durante la procedura di avvio della macchina.

Intervenire sulla tabella delle partizioni

Non sempre è possibi le prevedere, al m o m e n t o del l ' instal lazione, il nu-mero di part izioni necessarie per un server. Sovente, qu ind i , si deve in-tervenire sulla tabel la del le part izioni successivamente. Per fare questo si d ig i t i il comando seguente in console:

sudo cfdisk /dev/sda

inserendo al posto di /dev/sda il f i le di d isposi t ivo del l 'hard disk da modi -ficare, se diverso. Compar i rà una schermata simile a l l ' immagine seguente (Figura 2.16).

L'interfaccia del p rogramma cfdisk è di sempl ice utilizzo. Con i tasti f rec-cia su e f reccia g iù si sceglie la part iz ione su cui intervenire, con i tasti f reccia sinistra e des t ra si indica l 'operazione da compiere e p remendo Invio si p rocede con l 'azione prescelta. Ecco le operazioni che si possono effettuare. È possibi le creare una par-t izione (New), renderla avviabile (Bootable) , cancellarla (Delete) oppure indicare il t i po di f i lesystem presente in essa (Type). Infine si può uscire dal p rogramma (Quit) o memorizzare i cambiament i nella tabel la del le partizioni (Write).

Page 79: Linux Ubuntu per Server e Reti.pdf

cfdisk (util- linux-ng 2.13.1)

Disk Drive: /dev/sda Size: 80026361856 bytes, 80.0 GB

Heads: 255 Sectors per Track: 63 Cylinders: 9729

Name Flags Part Type FS Type [Label] Size (MB)

- E m » sda2 sda3

s e e s Primary Primary Pri/Log

IHiUW SCIE Linux swap / Solaris Linux ext3 Free Space

ISbMiMfcfe! 1003.49

50001.48 9014.91

IliftTOBitt^] [ Delete [ Quit ] [ Type

1 [ Help ] [ Units

] [Maximize] [ Print ] ] [ Write ]

Toggle bootable flag of the current partition

Figura 2.16 - L'interfaccia di cfdisk. Da qui si possono manipolare le partizioni sui disco.

I passaggi da compiere per aggiungere una nuova partizione sono dun-que i seguenti:

1. si deve raggiungere la riga con la scritta Free Space e selezionare il pulsante New;

2. poi si sceglie se creare una partizione primaria o logica con i rispet-tivi pulsanti, Primary e Logicai;

3. quindi si indicano le dimensioni della partizione in MB; 4. il t ipo di filesystem di default per la nuova partizione è l inux. Per

indicarne un altro si seleziona il pulsante Type e, nell 'elenco che appare, si digita il numero corr ispondente al filesystem prescelto;

5. infine, si preme il pulsante Wr i t e per salvare le modif iche alla tabel-la del le partizioni.

Creare un filesystem sulla partizione

Una volta aggiunta una nuova partizione, è necessario creare un filesystem su di essa. I comandi da impiegare per l 'operazione variano a seconda del

Page 80: Linux Ubuntu per Server e Reti.pdf

f i lesystem scelto per la part izione. Quest i comand i iniziano con mkfs. e te rminano con il nome del f i lesystem cui si riferiscono: mkfs.ext3, mkfs.

r e i s e r f s , m k f s . x f s e COSÌ v ia .

Non tutti i programmi per creare i filesystem sulle partizioni sono installati per default su Ubuntu Server. Per usare il comando mkfs.xfs è necessario infatti installare il pacchetto xfsprogs] per mkfs.jfs si deve installare jfsu-tils mentre per mkfs.reiseré è richiesto il pacchetto reiser4progs.

Per creare un fi lesystem ext3 si esegua dunque il comando sudo mkfs.

ext3, segui to dal fi le d i d isposi t ivo della part izione. Possono risultare utili alcune opzioni d i mkfs.ext3: -c consente di control lare sulla part izione la presenza di blocchi rovinati pr ima di procedere alla creazione del filesy-stem, mentre l 'opzione -m è seguita dalla percentuale di blocchi che biso-gna riservare sulla part iz ione al l 'utente root.

Ecco dunque il comando per creare un fi lesystem ext3 sulla part izione /dev /sdaó, ver i f icando che non ci siano blocchi rovinati e assegnando il 2% del lo spazio sulla part izione a root:

sudo mkfs.ext3 -c -m 2 /dev/sda6

Identificare le partizioni con l'ULUO

Se nel fi le /e tc / fs tab del propr io sistema si osservano le r ighe r iguardanti le part izioni sull 'hard disk si può notare come, nel pr imo parametro, al po-sto del fi le d i d isposi t ivo venga utilizzata la dicitura UUID= seguita da una lunga sequenza di caratteri. L 'UUID (Universally Unique IDentifier) è un insieme di numeri esadecimali che identif ica in m o d o univoco una part izione su di un suppor to . Si tratta del la forma di notazione predef ini ta in Ubuntu Server e viene utilizzata, dunque , nella procedura iniziale di installazione per indicare in /e tc / fs tab le part izioni sul disco. Una scelta simile permet te al l 'amministratore di si-stema di esser certo che una determinata riga in /e tc / fs tab corr isponda sempre a una specifica part izione: l'ULIID, infatti, è un "march io" che una

B?iyT)¡i'it:ilLifcSiyk»»pr»

Page 81: Linux Ubuntu per Server e Reti.pdf

partizione si porta dietro anche quando cambia il file di disposit ivo me-diante il quale la partizione diventa accessibile al sistema.

L'impiego degli UUID al posto dei file di dispositivo può essere utile in molte occasioni. Se si utilizzano più hard disk, per esempio, grazie agli UUID è possibile collegare i dischi in un ordine differente senza dover metter mano ogni volta al file /etc/fstab per cambiare i rispettivi punti di mount.

Per conoscere l'UUID di una partizione si usa il comando voi_id nel modo seguente (al posto di /dev/sda1 va inserito il file di disposit ivo di cui si vuole ottenere l'UUID):

sudo vol_id -u /dev/sdal

In output si otterrà una riga corr ispondente all'UUID del dispositivo, per

e s e m p i o 2 0e2 3alb-0clb-4 6ba-8cba-2 0eb8 0f5c5bf.

Per visualizzare, in un colpo solo, gli UUID di tut te le partizioni si può usare il comando sudo bikid. Il risultato in console sarà simile al seguente:

/dev/sdal: UUID="45ad37fa-386e-4ff0-be33-d4465e05o096" TYPE="ext3"

/dev/sda2: TYPE="swap" UUID="07523 73 6 -8e32-4 378-bbff-3bcaf4d57890"

/dev/sda3: UUID="20e23alb-Oclb-46ba-8cba-20eb80f5c5bf" TYPE="ext3"

Per inserire un nuovo disposit ivo in /etc/ fstab indicandone l'UUID, quindi, basterà mettere come primo parametro l'UUID invece del file di dispositi-vo attuale. Una riga come quella che segue:

/dev/sda2 none swap sw 0 0

diventerà dunque così:

UUID=07523736-8e32-4378-bbff-3bcaf4d57890 none swap sw 0 0

I volumi LVIVI

Nel pr imo capitolo si è visto come procedere per effettuare un'installazio-ne sfruttando il sistema LVM per il part izionamento del disco.

Page 82: Linux Ubuntu per Server e Reti.pdf

A questo punto è possibi le approfondi re l 'a rgomento. Un sistema LVM è compos to da tre strati ben dist int i :

• Vo lumi fisici. Possono essere interi dischi o singole partizioni. Si creano con il comando pvcreate;

• Grupp i di vo lume. Sono contenitori per i volumi fisici e, a loro volta, vengono ripartiti in volumi logici. Si creano con il comando vgcreate;

• Vo lumi logici . Si tratta di disposit ivi gest ibi l i come normal i partizio-ni. Si creano con il comando ìvcreate.

Per creare un sistema LVM sul propr io server, qu ind i , è richiesta una pro-cedura composi ta: b isogna inizializzare dei vo lumi fisici, poi è necessario racchiuderl i in un g r u p p o di vo lume e, infine, si deve suddiv idere il g r u p p o in diversi vo lumi logici. Quest i ul t imi andranno qu ind i col legat i a dei punt i d i moun t in /e tc / fs tab, come si trattasse di part izioni canoniche. Ecco quindi i passaggi da seguire per utilizzare un sistema LVM, passaggi che sono stati in precedenza nascosti dagl i automat ismi del p rogramma di installazione di Ubuntu Server.

Se nella procedura di installazione non è stata scelta una delle due opzioni per il partizionamento LVM, per gestire i volumi LVM sarà neces-sario installare il pacchetto ivm2.

Innanzitutto, si devono creare con cfdisk le part izioni che andranno a co-stituire i vo lumi fisici LVM sul disco: si creino, per esempio, le part izioni /dev /sda1, /dev /sda2 e /dev/sda3.

Poi bisogna creare i vo lumi fisici mediante i comandi seguent i :

sudo pvcreate /dev/sdal

sudo pvcreate /dev/sda2

sudo pvcreate /dev/sda3

Quind i , si inseriscono le tre part izioni in un nuovo g r u p p o di vo lume, chia-

mato sempl icemente gruppo:

sudo vgcreate gruppo /dev/sdal /dev/sda2 /dev/sda3

Page 83: Linux Ubuntu per Server e Reti.pdf

Per agg iungere una part izione a un g r u p p o già esistente si usa invece il Comando vgextend:

sudo vgextend gruppo /dev/sda5

Ora non r imane che ripartire lo spazio d isponib i le nel g r u p p o di vo lume creando i necessari vo lumi logici. Ecco come procedere:

sudo lvcreate -L 700 -n voli gruppo sudo lvcreate -L 4G -n vol2 gruppo sudo lvcreate -L 3G -n vol3 gruppo

La prima riga di esempio crea nel g r u p p o gruppo un vo lume logico di 700 MB (-L 700) ch iamato voli (-n voli); la seconda crea un vo lume voi2 gran-de 4 GB; la terza linea crea il vo lume voi3 di 3 GB.

A questo punto si devono agg iungere i relativi f i lesystem ai vo lumi logici. Negl i esempi che seguono viene util izzato il f i lesystem Ext3:

sudo mkfs.ext3 /dev/gruppo/voll sudo mkfs.ext3 /dev/gruppo/vol2 sudo mkfs.ext3 /dev/gruppo/vol3

Infine, si inseriscono le linee appropr ia te in /e tc / fs tab, così da legare i vo lumi logici ai punt i di moun t desiderat i :

/dev/gruppo/voll /home ext3 defaults 0 2 /dev/gruppo/vol2 /var ext3 defaults 0 2 /dev/gruppo/vol3 /tmp ext3 defaults 0 2

Per el iminare un vo lume logico si usa invece il comando ivremove, in que-

sto modo :

sudo Ivremove /dev/gruppo/vol3

Cambiare le dimensioni dei volumi LVIVI

Ora che i vo lumi logici sono stati cor re t tamente creati, è possibi le modi f i -carne faci lmente e rap idamente le d imensioni . I comandi per aumentare e ridurre le d imensioni dei vo lumi logici sono, r ispet t ivamente, ìvextend

e lvreduce.

Se si ha la necessità di aumentare le d imensioni d i un vo lume logico (per esempio voli) bisogna control lare, innanzitutto, che nel g r u p p o sia pre-

Page 84: Linux Ubuntu per Server e Reti.pdf

sente dello spazio libero. Per fare questo si usa il comando vgdispiay: sudo v g d i s p l a y

Nel l 'output del comando si deve cercare una riga che inizia con Free PE / Slze: il valore che segue nella linea indica lo spazio vuoto disponibi le. Se non c'è spazio nel gruppo (Free PE / Size 0 / 0) si possono ridurre le dimensioni di uno degl i altri volumi logici. Digi tando il comando sudo ìvdispiay si o t tengono quindi informazioni dettagl iate su tutt i i volumi esistenti (Figura 2.17): le dimensioni di un volume sono contenute nella riga che inizia con LV SIZE (per esempio, LV SIZE 700,00 MB).

Sjale@pitagora:~$ sudo Ivdisplay Ili: — Logical volume - -

LV Name /dev/gruppo/voll VG Name gruppo LV UUID MtrwOB-gwvR-NJIp-WTbl-DpAU-j kQn-70Rkeb LV Write Access read/write LV Status available # open 0 LV Size 700,00 MB Current LE 175 Segments 1 Allocation inherit Read ahead sectors 0 Block device 254:0

--- Logical volume -LV Name /dev/gruppo/vol2 VG Name gruppo LV UUID 00ra21-XIkY-Lufu-3Ip2-X3jK-YJuH-8Fockh LV Write Access read/write LV Status available # open 0 LV Size 4,00 GB Current LE 1024

Figura 2.17 - L'output del comando sudo Ivdisplay mostra informazioni su tutti i volumi' logici creati.

A questo punto, control lando lo spazio disponibi le sul voi2 si può sco-prire che questo volume logico è sovradimensionato (LV Size 4,00 GB nel l 'output di sudo ìvdispiay mostrato in figura) rispetto alle necessità del server. Per ridurne le dimensioni prima si deve ridurre il filesystem nel volume logico:

sudo r e s i z e 2 f s / d e v / g r u p p o / v o l 3 3G

Page 85: Linux Ubuntu per Server e Reti.pdf

quindi si ridimensiona il volume logico stesso:

sudo lvreduce -L 3G /dev/gruppo/vol2

Il comando resize2fs r ichiede che il f i lesystem da ridimensionare sia

smontato. Prima di dare il comando, quindi , bisogna sincerarsi di non

essere al l ' interno del punto di mount del vo lume logico (ed / ) , poi si

deve smontare il vo lume (sudo umount /home, per esempio, se II punto

dì mount del vo lume è /home).

Adesso il volume voi2 è stato ridotto da 4 a 3 GB. Non rimane che aumen-tare lo spazio su voli. Per fare questo, al contrario che nel caso della ridu-zione dello spazio su un volume, prima si ridimensiona il volume logico e poi il filesystem relativo, così:

sudo lvextend -L +1G /dev/gruppo/voll

sudo resize2fs /dev/gruppo/voll

Con questi due comandi il GB di spazio che è stato sottratto al volume voi2 è stato agg iun to (parametro -L +IG d i lvextend) al voli.

Negli esempi riportati si è fatto uso del filesystem Ext3. Se invece si uti-lizza ReiserFS, al posto del comando resize2fs bisogna impiegare resi-ze_reiserf s. Per ridurre un volume se ne indicano le nuove dimensioni nei parametr i d i resize_reiserfs:

sudo resize_reiserfs -s 3G /dev/gruppo/vol2

È anche possibile indicare lo spazio da sottrarre al volume, così:

sudo resize_reiserfs -s -1G /dev/gruppo/vol2

Nel pr imo esempio le nuove dimensioni saranno di 3G (-s 3G), mentre nel secondo si dice a resize_reiserfs di togl iere un GB dal volume (-s -IG). Per aumentare le dimensioni di un volume, quindi, è sufficiente richiamare il comando in questo modo:

sudo resize_reiserfs /dev/gruppo/voll

Page 86: Linux Ubuntu per Server e Reti.pdf

Manutenzione dei dischi RAID

In caso di utilizzo del RAID, il sistema controllerà automaticamente lo stato dei dischi tramite il comando mdadm --monitor lanciato al boot e avvertirà l 'amministratore di eventuali guasti inviando apposite email. Per default queste email vengono spedite all 'utente root sulla macchina locale. Per cambiare il destinatario si apra il file di configurazione / e t d mdadm.conf con sudo nano /etc/mdadm/mdadm.conf e si modif ichi la riga:

M A I L A D D R root

indicando al posto di root l'indirizzo email del destinatario prescelto.

# mdadm.conf # # Please refer to mdadm.conf(5) for information about th i s file. #

# by default, scan a l l partitions (/proc/partitions) for MD superblocks. # alternatively, specify devices to scan, using wildcards if desired. DEVICE partitions

# auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system HOMEHOST <system>

I # instruct the monitoring daemon where to send mail alerts iMAILADDR ale

# definitions of ex is t ing MD arrays

# This file was auto-generated on Wed, 24 Sep 2008 11:09:26 +02OO # by mkconf $Id$

"/etc/mdadm/mdadm.conf" 22L, 625C 15,0-1 Tut

Figura 2.18 - È possibile cambiare il destinatario delle email inviate da mdadm modifi-cando mdadm. conf.

Fatto questo si deve riavviare il demone mdadm con il comando che segue:

sudo / e t c / i n i t . d / m d a d m restart

Page 87: Linux Ubuntu per Server e Reti.pdf

Per consent i re a mdadm l ' invio de l le emai l è richiesta la presenza di un

mail server sulla macchina. Nel Cap i to lo 11 verranno fo rn i te istruzioni per

l ' instal lazione e la conf iguraz ione del mail server Postfix.

L ' a m m i n i s t r a z i o n e d e i d i s c h i R A I D si e f f e t t u a r i c h i a m a n d o d i r e t t a m e n t e il

c o m a n d o mdadm. Per a v e r e i n f o r m a z i o n i s u l l o s t a t o c o r r e n t e d i u n d i s p o s i -

t i v o R A I D si lanc ia il c o m a n d o così :

sudo m d a d m - - q u e r y --detail <raid d e v i c e s

C o m e <raid device> si i n se r i sce il d i s p o s i t i v o R A I D d a c o n t r o l l a r e , p e r

e s e m p i o / d e v / m d 1 (F igu ra 2 .19 ) . U n a l t r o c o m a n d o u t i l e p e r c o n o s c e r e lo

Stato d e l R A I D è cat / p r o c / m d s t a t .

ale@pitagora:-$ sudo mdadm --query --detail /dev/mdl /dev/mdl:

Version : 00.90.03 Creation Time : Wed Sep 24 18:53:49 2008

Raid Level : raidl Array Size : 9767424 (9.31 GiB 10.00 GB)

Used Dev Size : 9767424 (9.31 GiB 10.00 GB) Raid Devices : 2

Total Devices : 1 Preferred Minor : 1

Persistence : Superblock is persistent

Update Time State

Active Devices Working Devices Failed Devices Spare Devices

Wed Sep 24 18:59:53 2008 clean, degraded 1 1 0 0

UUID : 8bl8290c:0ab544df:58d6250f:b8f79aaa (local to host pitagora) Events : 0.8

Number Major Minor RaidDevice State 0 8 18 0 active sync

1 M — 1 9 3 Figura 2.19-Con il com

su un dispositivo RAID. -query -detail si ot

/dev/sdb2

# 1 1 preziose informazioni

' 1 i:'e *

Page 88: Linux Ubuntu per Server e Reti.pdf

Quando uno dei dischi smette di funzionare, un sistema in RAID 1 come quel lo presentato nel capitolo precedente eliminerà l'hard disk rotto dai dispositivi RAID attivi, in modo tale da permettere alla macchina il norma-le svolgimento delle attività grazie al disco o ai dischi rimanenti. Nel momento in cui un disco si rompe, prima di poterlo sostituire si devo-no rimuovere dai dispositivi RAID le partizioni contenute nel disco difetto-so. Il comando da usare è il seguente:

sudo mdadm --remove <raid device> «partizione»

Ecco un paio di esempi:

sudo mdadm --remove /dev/mdO /dev/sdal

sudo mdadm --remove /dev/mdl /dev/sda2

Fatto questo, è possibile spegnere la macchina e sostituire l'hard disk rotto con uno nuovo.

Nel caso di utilizzo di dischi di tipo hot-swap è possibile togliere un hard disk difettoso e sostituirlo con dispositivo nuovo a "caldo", cioè senza dover riavviare la macchina.

Effettuata la sostituzione e riavviato il computer, è quindi necessario crea-re una tabella delle partizioni sul nuovo disco che corrisponda a quella presente negli altri hard disk che compongono il RAID. Un modo rapido per riversare la tabella da un disco attivo nel RAID (/ dev/sda) al disco appena inserito (/dev/sdb) è quel lo utilizzare il comando seguente:

sudo sh -o "sfdisk -d /dev/sda | sfdisk --force /dev/sdb"

Ora non rimane che aggiungere ai dispositivi RAID le partizioni del nuovo disco con:

sudo mdadm --add <raid device> «partizione»

Page 89: Linux Ubuntu per Server e Reti.pdf

Quindi, se sui dischi vengono utilizzate le prime tre partizioni primarie, i co-mandi da lanciare per aggiungere /dev/sdb al RAID saranno i seguenti:

sudo mdadm --add /dev/mdO /dev/sdbl sudo mdadm --add /dev/mdl /dev/sdb2 sudo mdadm --add /dev/md2 /dev/sdb3

A questo punto verrà avviata la sincronizzazione dei dati e il nuovo hard disk farà att ivamente parte del RAID. E anche possibile che compaiano errori su un disco senza che questo smetta del tu t to di funzionare. Per segnalare al sistema il malfunzionamen-to di una partizione si utilizza l 'opzione --faii di mdadm, così:

sudo mdadm --fail /dev/mdO /dev/sdal

Segnalata la partizione guasta, sarà poi possibile rimuoverla dal dispositi-v o RAID c o n mdadm --remove.

Aggiungere un dispositiva RAID

Per creare un nuovo disposit ivo RAID si richiama mdadm con l 'opzione - -create. Ecco un esempio:

sudo mdadm --create /dev/mdl --level 1 --raid-devices=2 /dev/sdb2 missing

In questo riga viene creato il dispositivo RAID / d e v / m d l , che è di t ipo RAID1 (--level l) ed è composto da due dischi (--raid-devices=2). La prima partizione che lo compone è /dev/sdb2 mentre l'altra verrà indicata successivamente (missing). Per aggiungere la seconda partizione del disposit ivo / d e v / m d l basta poi richiamare mdadm con l 'opzione --add:

sudo mdadm --add /dev/mdl /dev/sdc2

La creazione di un filesystem sulle partizioni che compongono il device RAID avviene utilizzando come riferimento il file di disposit ivo di questo:

sudo mkfs.ext3 /dev/mdl

Lo stesso riferimento dovrà essere adottato per aggiungere in /etc/ fstab una riga che consenta di montare al boot II disposit ivo RAID creato.

Page 90: Linux Ubuntu per Server e Reti.pdf

Ecco una semplice riga di esempio:

/dev/mdl /home ext3 defaults 0 2

La procedura è simile nel caso si utilizzino LVM e RAID insieme. Infatti, per creare dei volumi fisici LVM sui device RAID è sufficiente lanciare il coman-do pvcreate seguito dai file di disposit ivo RAID da usare:

sudo pvcreate /dev/mdO /dev/mdl

Fatto questo, la configurazione dei relativi volumi logici LVM avverrà nei modi indicati nel paragrafo I vo lumi LVM di questo stesso capitolo.

Page 91: Linux Ubuntu per Server e Reti.pdf

3 . Gli strumenti dell'amministratore

in questo capitalo si scopriranno i s e g r e t i

della shell Bash e le mille possibilità del-

l'editor v i .

Gli interventi di un amministratore sul sistema non si esauriscono certo nella "grande manutenzione": installare programmi, aggiungere partizio-ni e amministrare gli utenti sono tutte operazioni fondamental i ma che spesso vengono svolte saltuariamente, dal momento che si concentrano dopo le fasi di progettazione e installazione di un server. Una volta che l' impalcatura di una macchina è stata messa a punto, dun-que, l 'amministrazione quotidiana di un server richiede una notevole di-mestichezza con la shell e l'utilizzo di un editor evoluto. In questo capitolo si scopriranno quindi trucchi e segreti della shell standard su Linux, Bash, e si farà la conoscenza del re degl i editor su Unix, vi.

La shell Bash La shell è lo strumento mediante il quale si eseguono programmi e comandi e si dialoga con il sistema. Grazie alle potenzialità della shell è possibile ese-guire in modo rapido le operazioni più ripetitive creando alias, costruendo funzioni e sviluppando programmi veri e propri chiamati script.

Page 92: Linux Ubuntu per Server e Reti.pdf

La shell standard su Linux è Bash: l 'acronimo sta per Bourne again shell e indica indirettamente la compatibi l i tà di questa con la shell standard su Unix, Bourne Shell appunto. Per richiamare Bash non è necessaria alcuna operazione: a meno di non modificare la configurazione di default, questa shell verrà avviata tut te le volte che si effettuerà il login nel sistema con un utente.

Primo contatta

La shell Bash è quindi il pr imo punto di contatto tra l 'utente e il sistema. Per l 'amministratore, inoltre, si tratta di un vero e proprio ambiente pri-vilegiato in cui controllare una macchina, anche a distanza, e impartire comandi su di essa.

ale@pitagora: man bash ale@pitagora:-$ df File system blocchi di 1K Usati Disponit i. Uso% Montato su /dev/sdal 19380676 4474280 13929648 25% / varrun 773168 164 773004 1% /var/run varlock 773168 0 773168 0% /var/lock udev 773168 52 773116 1% /dev devshm 773168 12 773156 1% /dev/shm Irm 773168 39760 733408 6% /lib/modules/2.6.2' eneric/volatile /dev/sda3 48062468 29129300 16491692 64% /home gvfs-fuse-daemon 19380676 4474280 13929648 25% /home/ale/.gvfs alegpitagora: -$ 1

Altre shell disponibili sono ksh (Korn Shell), Tcsh, zsh (Z Shell) e csh (C Shell). Quest'ultima ha come caratteristica precipua l'utilizzo di una sin-tassi derivata dal linguaggio C (da cui il nome). Chi volesse far pratica con shell diverse dalla classica Bash può trovare i pacchetti di tutte que-ste shell alternative nei repository di Ubuntu.

Page 93: Linux Ubuntu per Server e Reti.pdf

Come si è accennato, la shell permette di organizzare delle sequenze di istruzioni in programmi veri e propri. Un compi to basilare per l 'ammini-stratore è quel lo di effettuare copie di riserva delle directory di sistema e dei file degli utenti: ecco dunque le istruzioni per creare un semplice script bash che automatizzi la creazione dei file di backup. Ovviamente, nelle pagine successive si farà la conoscenza di strumenti di backup di certo più efficaci di un elementare script, ma la manciata di righe che seguono servirà a prendere confidenza con alcune funzionalità importanti della shell.

Nel terminale si lanci il comando nano backup. Verrà creato il file di backup nella directory corrente e in questo si andranno a inserire le varie righe che costituiranno lo script:

# ! / b i n / b a s h

# s e m p l i c e script di b a c k u p

G I O R N O = $ ( d a t e +%F)

N O M E = b a c k u p - $ G I O R N O . t a r . g z

D I R S = " / e t c /var"

tar cvfz $NOME $DIRS

• GNU nano 2."é!7 File: backup f?odificato"~1§

#!/bin/bash # semplice script di backup

GI0RN0=$(date +%F) N0ME=backup-$GI0RN0.tar.gz DIRECTORY="/etc /var" tar cvfz $N0ME $DIRECTORY

1

Figura 3.2 - Per creare uno script shell basta aprire un compongono lo script.

editor e inserire le righe che

La prima riga dello script indica quale shell deve essere richiamata, al momento dell 'esecuzione, per interpretare il contenuto dello script. I ca-

Page 94: Linux Ubuntu per Server e Reti.pdf

ratteri ># sono quindi seguiti dal percorso completo della shell, in questo Caso /bin/bash. Nella seconda riga il carattere iniziale è #, a indicare che la parte seguente della riga è un commento e non va dunque interpretata dalla shell: nel-l 'esempio il commento descrive succintamente lo scopo del lo script. La riga successiva mostra, in pochi caratteri, la grande potenza e dutti l i tà della shell. GIORNO è una variabile e a essa viene assegnato (=) il risultato del comando date +%F: un comando circondato dalla sequenza di caratteri $( e ), infatti, viene eseguito dalla shell e al suo posto nella riga che lo richiama è inserito l 'output del comando stesso. Seguendo l 'esempio riportato, il comando date +%F avrà come risultato la data corrente mostrata nel formato "anno-mese-giorno" (2008-7-31, per esempio); quindi, al momento dell 'esecuzione dello script, alla variabile GIORNO sarà assegnato come valore una stringa che rappresenta la data corrente.

Anche nella quarta riga viene assegnato un valore a una variabile. In que-sto caso, è possibile scoprire come sia semplice concatenare delle strin-ghe in uno script: alla variabile NOME, infatti, viene assegnata come valore la stringa formata dalla sequenza di caratteri backup-, dal valore della va-riabile GIORNO e da .tar.gz. Il valore completo della variabile NOME, dun-que, sarà qualcosa come backup-2008-07-31 .tar.gz. Come si può notare, ci si riferisce al valore di una variabile facendo pre-cedere questa dal carattere $; $GIORNO, quindi, rappresenta il valore della variabile GIORNO.

La quinta riga contiene la terza variabile, DIRECTORY, il cui valore non è altro che l'elenco delle directory delle quali si desidera effettuare una copia di riserva. Nel l 'esempio vengono inserite in questa variabile le cartelle di sistema /etc e /var; la stringa risultante va inserita tra una coppia di dopp i apici (carattere ") dato che presenta al suo intemo degl i spazi. L'ultima riga del lo script contiene l 'effett ivo comando da eseguire: tar è il classico programma di archiviazione Unix ed è installato per default su Ubuntu Server. In questo caso, il suo compi to è quel lo di creare un file compresso che abbia come nome il valore della variabile NOME e come contenuto il valore della variabile D I R S .

Page 95: Linux Ubuntu per Server e Reti.pdf

Quind i , quando lo script verrà esegui to sarà creato un fi le chiamato, per esempio, backup-2008-07-31 .tar.gz e questo conterrà in forma compressa le directory /e tc e /var.

La sintassi del comando tar utilizzato nello script di esempio è piuttosto

articolata. La sequenza cvfz indica una serie di quattro parametri. Il

pr imo parametro, c, stabilisce che si vuole creare un archivio, mentre v

indica che si vuole visualizzare in output l 'elenco dei file inseriti nel file

risultante. Poi f dichiara che si intende usare un file per memorizzare l'ar-

chivio e, infine, z stabilisce che l'archivio stesso debba essere compresso

con il sistema di compressione gzip.

Eseguire una script

Conclusa la stesura e l'analisi del lo script d i esempio, non r imane che salvare il f i le e uscire da l l 'ed i tor nano. Ora bisogna rendere eseguibi le lo script con il comando seguente:

chmod +x backup

Poi è consigl iabi le copiare lo script in una directory a scelta del PATH, per esempio in /usr / local /b in:

sudo cp backup /usr/local/bin

Page 96: Linux Ubuntu per Server e Reti.pdf

In questo modo lo script backup sarà richiamabile qualunque sia la directory corrente, proprio come se si trattasse di una comune applicazione.

Il PATH è la lista del le directory fra le quali vengono cercati i comandi da

eseguire. Se un programma o uno script è presente in una directory del

PATH, dunque, sarà possibile eseguir lo inserendone solo il nome, altr imenti

sarà necessario indicarne il percorso comple to . Per conoscere il PATH attual-

mente in uso sì legga la variabile PATH con il comando echo $PATH.

Adesso ci si sposti nella cartella in cui si vuole creare il fi le di backup, per esempio /var/backup: ed /var/backup. Quindi, si lanci lo script d ig i tando semplicemente sudo backup e premendo Invio. L'utilizzo di sudo è neces-sario perché si andranno a utilizzare delle directory di sistema nelle quali, a volte, i file non sono leggibi l i dagli utenti normali. Il risultato a monitor sarà simile a quanto visibile nel l ' immagine seguente (Figura 3.4).

I/var/cache/fontconfig/99e8edOe538f84Oc565b6ed5dad60d56-x86.cache-2 /var/cache/fontconfig/e383d7ea5fbe662a33d9b44caf393297-x86. cache-2 /var/cache/fontconfig/c69fO4ab05004e31a6d5e715764fl6d8-x86.cache-2 /var/cache/fontconfig/d52a8644073d54cl3679302call8O695-x86. cache-2 /var/cache/fontconfig/707971e003b4ae6c8121c3a920e507f5-x86. cache-2 /var/cache/fontconfÌg/945677eb7aeaf62fld50efc3fb3ec7d8-x86. cache-2 /var/cache/fontconfÌg/fe547fea3a41b43a38975d292a2bl9c7-x86. cache-2 /var/cache/fontconfÌg/7ef2298fde41cc6eeb7af42e48b7d293-x86. cache-2 /var/cache/fontconfÌg/4794a0821666d79190d59a36cb4f44b5-x86.cache-2 /var/cache/fontconfÌg/3830d5c3ddfd5cd38a049b759396e72e-x86. cache-2 /var/cache/fontconfig/del56ccd2eddbdcl9d37a45b8b2aac9c-x86. cache-2 /var/cache/fontconfÌg/d82eb4fd963d448e2fcb7d7b793b5df3-x86. cache-2 /Var/cache/fontconfig/el3b20fdb08344e0e664864cc2ede53d-x86. cache-2 /Var/cache/fontconfig/4c599c202bc5c08e2d34565a40eac3b2-x86. cache-2 /var/cache/fontconfÌg/0f34bcd4b6ee430af32735b75db7f02b-x86.cache-2 /var/cache/fontconfig/a755afe4a08bf5b97852ceb740Ob47bc-x86.cache-2 /var/cache/fontconfig/c855463f699352C367813e37f3f70ea7-x86. cache-2 /var/cache/fontconfÌg/6333f38776742dl8e214673cd2c24e34-x86. cache-2 /Var/cache/fontconfig/6eb3985aa4124903f6ff08ba781cd364-x86.cache-2 /var/cache/fontconfig/6d41288fd70b0be22e8c3a91e032eec0-x86.cache-2 /var/cache/fontconfÌg/de9486f0b47a4d768a594cb4198cblc6-x86.cache-2 /var/cache/apt/ /var/cache/apt/pkgcache. bin

Figura 3.4 - L'output dello script di esempio: la sequenza dei file inseriti nell'archivio di backup.

Page 97: Linux Ubuntu per Server e Reti.pdf

Al termine dell 'esecuzione del lo script, nella directory corrente sarà pre-sente il file con la copia di backup delle directory /etc e /var. Quando si vorrà scompattare l'archivio, quindi, basterà entrare nella directory radice con ed / e lanciare il comando tar xvfz seguito dal percorso completo dell 'archivio, come in questo esempio:

tar xvfz /var/backup/backup-2008-07-31.tar.gz

Il costrutta condizionale if

Nella creazione degl i script è possibile avvalersi dei tipici costrutti presenti nei l inguaggi di programmazione. Ecco la struttura del costrutto condizio-nale i f :

if [condizione]

then

istruzioni

fi

Si tratta della struttura più semplice per tale costrutto, in cui, all'avverarsi di una singola condizione, vengono eseguite delle istruzioni. La struttura può essere espansa adot tando le forme elif ("altr imenti, se la condizione seguente è vera...") ed else ("altr imenti esegui l ' istruzione"), così:

if [condizione]

then

istruzioni

elif [condizione2]

then

istruzioni2

else

istruzioni3

fi

Le condizioni presenti nelle righe di if ed elif verranno verificate in suc-cessione e, nel caso risultassero tutte false, verranno eseguite le istruzioni indicate da else. Ecco un esempio del costrutto if:

# ! /bin/bash FILE=$1

if [ -e "$FILE" ] then

echo "Il file $FILE esiste"

Page 98: Linux Ubuntu per Server e Reti.pdf

else echo "Il file $FILE non esiste"

fi

La seconda riga dell 'esempio assegna alla variabile F I L E il contenuto del primo argomento ($1) inserito nella linea di comando: se lo script in cui è presente il costrutto if viene chiamato controlla, per esempio, eseguendo controlla /etc/profiie il primo argomento risulterà essere /etc/profi le. I valori degl i argomenti successivi sono contenuti nelle variabili $2, $3, $4 e così via, mentre la variabile $@ raccoglie l' insieme di tutt i gli argomenti for-niti r ichiamando lo script. Infine, il nome del lo script è contenuto in $0 e la variabile $# indica il numero di argomenti passati sulla linea di comando. La riga successiva del lo script abbina il costrutto if a un operatore condi-zionale, -e, che dà risultato positivo se il file che lo segue nella riga esiste. Lanciando controlla /etc/profiie, quindi, l 'operatore condizionale darà certamente esito true, dato che /etc/prof i le è un file standard su tut te le macchine Linux. Nella Tabella 3.1 vengono elencati i più importanti ope-ratori che è possibile applicare sui file, sui valori numerici e sulle stringhe.

Tabella 3.1 - I pr incipal i opera to r i appl icabi l i a f i le, valor i numerici e st r inghe.

Opera to re Si appl ica su È vero

-e File Se il file esiste

-f File Se si tratta di un file regolare, non di un

-f File disposit ivo 0 di una directory

-d File Se si tratta di una directory -X File Se il file ha i permessi di esecuzione

-eq Numeri Se i due valori confrontati sono uguali -ne Numeri Se i due valori confrontati sono diversi -It Numeri Se il pr imo valore è minore del secondo

-gt Numeri Se il primo valore è maggiore del secondo = = Stringhe Se le due stringhe sono uguali != Stringhe Se le due stringhe sono diverse

-z Stringhe Se la stringa è nulla

Page 99: Linux Ubuntu per Server e Reti.pdf

Se quindi il fi le indicato nel pr imo argomento esiste, il then alla riga succes-siva fa visualizzare in ou tpu t dal comando echo la scritta 11 file $ F I L E esi-

ste, sost i tuendo $FILE con l 'effett ivo file indicato sulla linea di comando. Se il f i le non è presente nel sistema, invece, si salta all'else e in tal caso la stringa che viene mostrata è il file $ F I L E non esiste. In Figura 3.5 lo script viene r ichiamato più vol te uti l izzando fi le di f ferent i .

ale@pitagora:-$ ./prova /etc/profile Il file /etc/profile esiste ale@pitagora:~$ ./prova /etc/profi Il file /etc/profi non esiste ale@pitagora:~$ ./prova /etc/bash.bashrc Il file /etc/bash.bashrc esiste ale@pitagora:~$ ./prova /etc/bash.bashrcc Il file /etc/bash.bashrcc non esiste a l e @ p i t a g o r a : |

Figura 3.5 - Lo script controlla viene eseguito più volte, inserendo come parametro file diversi.

Arrivati a questo punto , ol tre al costrut to if si sono in t rodot t i e lement i fondamenta l i nella programmazione in Bash, quali la gest ione degl i argo-ment i e l 'util izzo degl i operator i .

Se non si inserisce uno script in una directory del PATH, per richiama-re questo dalla cartella in cui è memorizzato basta premettere . / al nome dello script. Per esempio, se lo script controlla è nella directory /home/ale/scripts non si deve far altro che entrare in questa directory (ed /home/ale/scripts) ed eseguire ./controlla. Nella Figura 3.5 lo script viene appunto richiamato dalla directory corrente, nel modo appena indicato.

Page 100: Linux Ubuntu per Server e Reti.pdf

• costrutti di loop

Altri costrutti basilari nella costruzione degl i script sono quelli di loop: for, whiie e untii. Ecco innanzitutto la struttura del ciclo for:

for VARIABILE in LISTA

do

istruzioni

done

V A R I A B I L E è il nome della variabile il cui valore corrisponderà via via a tutt i gli elementi presenti nella L I S T A . Per ogni elemento estratto dalla L I S T A ,

quindi, verranno eseguite le istruzioni che seguono il do e precedono il done. Al termine degl i elementi si uscirà dal ciclo. Indicata la struttura, quello che segue è un esempio di utilizzo del ciclo for:

#!/bin/bash

for I in /home/ale/Documenti/*

do

cp $1 $1.bak

done

Nella seconda riga si indica, all ' interno di un ciclo for, che i nomi di tutt i i file contenuti nella d i rectory /home/a le /Document i devono diventare, uno dopo l'altro, il valore della variabile i . L'istruzione della quarta riga, quindi, crea per ogni valore della variabile un file di riserva con suffisso .bak, mediante il comando di copia cp. Se nella directory ci sono i file tes i l .tex, tesi2.tex e tesi3.tex, dunque, il ciclo creerà i file di backup tesi l .tex.bak, tesi2.tex.bak e tesi3.tex.bak. Il costrutto whi ie ha una struttura mol to semplice:

while [condizione] do

istruzioni done

Si tratta di un per iodo le cui istruzioni vengono eseguite finché la condi-zione indicata è vera. Segue un esempio esplicativo:

#!/bin/bash

NUM=10 while [ $NUM -ne 0 ]

do

Page 101: Linux Ubuntu per Server e Reti.pdf

echo $NUM NUM=$(( $NUM-1 ))

done

Nella seconda riga viene assegnato alla variabi le NUM il valore 10. Il co-strut to whiie inizia dalla riga successiva: le istruzioni racchiuse tra do e done vengono esegui te f inché la variabile NUM ha un valore diverso da 0. La riga 5 cont iene l ' istruzione per mostrare in ou tpu t il valore corrente della variabile NUM, mentre la riga successiva mostra l 'util izzo del le espressioni ar i tmet iche nella shell.

Nella penul t ima riga, infatti, alla variabi le NUM viene assegnato il valore della variabile stessa meno 1. L'operazione ari tmetica va indicata inseren-dola tra i g rupp i di caratteri $ ( ( e ) ). Il risultato in ou tpu t di questo script d 'esempio è visibile ne l l ' immagine seguente (Figura 3.6).

ale@pitagora:-$ ./prova2 10 9 8 7 6 5 4 3 2 1 ale@pitagora:~$

Figura 3.6 - Lo script d'esempio per il costrutto while produce questo output nel terminale.

Per creare un ciclo di loop infinito è possibile usare while inserendo come

condizione true, come nell'esempio seguente: #/bin/bash

while true

do

echo "loop infinito"

done

Per uscire dal loop, quindi, si dovrà premere la combinazione di tasti

Ctrl+C.

Page 102: Linux Ubuntu per Server e Reti.pdf

Il costrutto untii è speculare al per iodo whiie appena trattato: se le istru-zioni presenti in whiie vengono eseguite finché la condizione è vera, le istruzioni del costrutto untii vengono invece eseguite finché la condi-zione risulta falsa. Ecco un esempio simile al precedente, ma scritto per sfruttare il per iodo untii:

# ! / b i n / b a s h

N U M = 1

u n t i i [ $NUM -eq 10000 ]

do

echo $NUM

NUM=$(( $NUM*10 ))

done

In questo caso viene assegnato a NUM il valore 1 e il ciclo untii esegue le istruzioni in esso contenute f ino a quando la variabile non è uguale a 10000. L'operazione aritmetica, in questo esempio, moltipl ica ogni volta NUM per 10.

Il costrutto condizionale Case

L'ultimo costrutto che viene qui presentato è case, che consente di sem-plificare complessi periodi if rendendoli di più facile lettura. Eccone la struttura:

case "$VARIABILE" in

condizionel)

i s t r u z i o n i l

condizione2)

istruzioni2

c o n d i z i o n e 3 )

istruzioni3

esac

Come si può vedere, il costrutto case prende in considerazione una VA-R I A B I L E e presenta una serie di blocchi di istruzioni che corr ispondono ai diversi valori che può assumere la variabile stessa. L'utilizzo ideale di case è nella gestione dei parametri passati da riga di comando o dei valori inseriti direttamente con la tastiera durante l'esecu-zione di uno script.

Page 103: Linux Ubuntu per Server e Reti.pdf

Ecco un esempio:

# ! / b i n / b a s h

echo "Scrivi uno o p p u r e due e p r e m i Invio."

read t e s t o

case "$testo" in

uno)

echo "Hai s c r i t t o uno !"

due)

echo "Hai s c r i t t o due !"

* ) echo "Non h a i scritto né u n o né due..."

esac

La prima riga interessante di questo script è la terza: read è un comando Bash interno che legge l ' input dalla tastiera e memorizza in una stringa, in questo caso testo, i tasti digi tat i f ino alla pressione di Invio. Il costrutto case che segue controlla prima se la variabile testo ha come valore uno, poi se la stessa variabile ha valore due; in questi due casi, quin-di, il comando echo mostra una riga di output che informa l 'utente sul valore inserito. L'ultima condizione, indicata come * ) , viene selezionata se tut te le precedenti condizioni risultano false: anche in questo caso echo visualizza un'apposita riga nel terminale.

Nel l ' immagine seguente (Figura 3.7) si può vedere il risultato di differenti esecuzioni dello script.

ale@pitagora:~$ ,/prova5 Scrivi uno oppure due e premi Invio. uno Hai scritto uno! ale@pitagora:~$ ,/prova5 Scrivi uno oppure due e premi Invio. due Hai scritto due! ale@pitagora: ,/prova5 Scrivi uno oppure due e premi Invio. tre Non hai scritto né uno né due. ale@pitagora:-$ |

Figura 3.7-Lo script per il costrutto condizionale case con le diverse righe di output possibili.

Page 104: Linux Ubuntu per Server e Reti.pdf

Creare alias e funzioni

Le istruzioni che è possibi le utilizzare per costruire script più o meno com-plessi possono essere d ig i ta te d i re t tamente nel terminale. Cer tamente, scrivere ogn i volta intere sequenze di comandi e p rogrammi può risultare snervante: gli alias e le funzioni della shell, qu ind i , si situano a metà strada tra la sempl ice e diretta d ig i taz ione di comandi e la laboriosa creazione di script.

Prima di presentare la sintassi d i alias e funzioni, è necessario stabil ire se si desidera che queste siano utilizzabili da un unico utente o dal l ' in tero sistema.

Se alias e funzioni si inseriscono nel fi le .bashrc o .profi le della H O M E di un utente, infatti, essi saranno disponibi l i solo per quel de terminato uten-te. Se si inseriscono in /e tc /pro f i le o in /etc/bash.bashrc, invece, gli alias e le funzioni che si creeranno pot ranno essere utilizzati da tut t i gli utent i nel sistema.

I file .bashrc e /etc/bash.bashrc vengono letti all'avvio delle shell inte-

rattive non di login, mentre i file .profile e /etc/prof i le vengono letti

quando si apre una shell di login. Quando si effettua il login di un utente

viene richiamata, appunto, una shell di login, mentre quando si lancia un

terminale come iconsole o Gnome Terminal si avvia una shell interattiva

non di login.

Negl i esempi che seguono si è scelto di intervenire sulla conf igurazione di sistema, in m o d o tale da creare alias e funzioni per tut t i gli utenti . Dato che in Ubuntu, quando viene let to il f i le /e tc /pro f i le , v iene comun-que processato anche il contenuto di /etc/bash.bashrc, si andrà a modi f i -care d i re t tamente /etc/bash.bashrc: in questo m o d o , saranno disponibi l i gli stessi alias e le stesse funzioni sia quando si avvierà una shell di login sia quando si lancerà una shell interatt iva non di login. Si apra dunque con l 'edi tor da root il f i le /etc/bash.bashrc mediante il C o m a n d o sudo nano /etc/bash.bashrc.

Page 105: Linux Ubuntu per Server e Reti.pdf

Si può iniziare inserendo, alla fine del file, alcuni alias utili per semplificare la vita all 'amministratore di sistema:

a l i a s v = l e s s

a l i a s ..="cd .."

a l i a s b y e = " s u d o s h u t d o w n -r now"

a l i a s b y e b y e " s u d o s h u t d o w n -h now"

GNU nano 2.0.7 File: /etc/bash.bashrc

# check because c-n-f could've been removed in the meantime if [ -x /usr/lib/command-not-found ]; then

/usr/bin/python /usr/lib/command-not-found -- $1 return $?

else return 127

fi

fi

# alias #alias ls="/bin/ls --color=auto -F" alias U="ls -l -F" alias l="ls -al -F" alias .,="cd .." alias v="less" alias x=exit alias src="cd /usr/src" alias cerca="find . -type f -printO | xargs -0 grep"

1 Guida SI Salva gg Inserisci | Q Pag Prec. E ̂ Taglia Q Posizione j Esci Qy Giustifica^ Cerca f Q Pag Succ. | Q Incolla B Ortografia

Figura 3.8 - Nel file /etc/bash.bashrc è possibile inserire degli alias, cioè delle scorcia-toie per i comandi più usati.

Un alias non è altro che una parola che viene utilizzata per sostituire una stringa, soli tamente un comando usato di frequente o che richieda lunghe digitazioni sulla tastiera. Un alias, per essere "espanso" nella stringa che sostituisce, va digi tato come parola iniziale di un comando durante l'uso interattivo della shell. Creare degl i alias, quindi, significa creare delle scorciatoie. La sintassi di un alias è la seguente:

alias P A R O L A = S T R I N G A

Il pr imo alias presentato non fa altro che sostituire a v la stringa less: se si digiterà nel terminale v documento.txt, quindi, la shell eseguirà il coman-

Page 106: Linux Ubuntu per Server e Reti.pdf

do less documento.txt (less è un visualizzatore di file di testo più evoluto del classico more di Unix). L'alias successivo mostra come sia necessario inserire tra apici dopp i la stringa quando questa contiene degl i spazi. In questo caso, quando si scriverà . . il sistema lancerà il comando ed ...

Gli ul t imi due alias pe rmet tono , r ispet t ivamente, di riavviare e spegne-re la macchina d ig i tando sempl icemente bye e byebye: un bel r isparmio di t e m p o r ispetto ai lunghi comandi sudo shutdown -r now e sudo shu-

t d o w n -h n o w .

Per visualizzare l 'elenco degl i alias attivi basta eseguire nel terminale il comando alias senza alcun argomento. L'output del comando sarà simile a quanto visibile nel l ' immagine seguente (Figura 3.9).

ale@pitagora:alias alias .,='cd alias aptrem='sudo apt-get remove --purge' alias bye='sudo shutdown -r now' alias byebye='sudo shutdown -h now1

alias c='clear' alias cd+='mount /media/cdrom ; ed /media/cdrom' alias cd-='umount /media/cdrom ; eject' alias cdl2='hdparm -E 12 /dev/hdc1

alias cd24='hdparm -E 24 /dev/hdc' alias cerca='find . -type f -printO | xargs -0 grep' alias em='emacàclient -a emacs' alias j='jobs' alias l='ls -al -F' alias ll='ls -l -F' alias ls='ls --color=auto' alias po='popd' alias pu='pushd' alias r='reset' alias src='cd /usr/src' alias ss='ps aux' alias v='less' alias wget mirror='wget -r -l 1 -np -k' alias x='exit'

Figura 3.9 - Con il comando alias si ottiene l'elenco degli alias che è possibile richiamare.

Gli alias sono senz'altro comodi , ma non consentono di gestire gli argo-menti nei comandi. Per esempio, non è possibile creare un alias che possa eseguire il comando is directory | less, permet tendo di cambiare la directory da visualizzare tramite un argomento.

Page 107: Linux Ubuntu per Server e Reti.pdf

Quando è necessario manipolare degl i argomenti si devono creare delle funzioni, che in Bash hanno la seguente sintassi:

function nome {

istruzioni

}

Ecco dunque una funzione di esempio che richiama il comando is di-

rectory | less:

function lless {

ls $1 | less

}

La funzione ha come nome H e s s e contiene il semplice comando is $1 | less. Durante l'esecuzione della funzione i caratteri $1 saranno sostituiti dal pr imo argomento fornito alla funzione stessa. Quindi, se nel terminale si lancia lless /home/aie/immagini, il comando che il sistema eseguirà Sara ls /home/ale/Immagini | less.

Le funzioni, però, non sono semplicemente degl i alias con in più la gestio-ne degl i argomenti. Una funzione, infatti, può svilupparsi per più righe di comandi e contenere gli elementi avanzati di programmazione utilizzabili in uno script, come i costrutti condizionali. È possibile inserire delle funzioni nei file di configurazione della Bash, come /etc/bash.bashrc, seguendo la sintassi precedentemente indicata. In caso di funzioni mol to semplici, però, una sintassi alternativa più pratica è la seguente:

nome () { istruzionel ; istruzione2 ; }

Grazie a tale sintassi è possibile scrivere una funzione utilizzando una sin-gola riga: le istruzioni vanno separate dal carattere ,• e al termine del-l 'ultima istruzione va necessariamente inserito un carattere -, finale. Ecco dunque la funzione d 'esempio in versione " r idot ta" :

lless () { ls $1 I less ; }

Nel l ' immagine seguente (Figura 3.10) viene mostrata la sezione di un file /etc/bash.bashrc d 'esempio dedicata alle funzioni.

Page 108: Linux Ubuntu per Server e Reti.pdf

GNU nano 2.0.7 File: /etc/bash,bashrc

# funzioni aptupO { aptitude search ~U~D$1 | uniq | sort ; } holdi ) { echo "$1 hold" | dpkg --set-selections ; } q u o { C0LUMNS=132 dpkg -I | grep $1 | cut -c -60 | sort doc() { cd /usr/5hare/doc/$l ; }

kernelf ) { make-kpkg clean make-kpkg --revision=9:custom.$1 kernel image make-kpkg modules_image

}

5 Guida ^ Salva Q Inserisci | B P a g P r e c . | ̂ Taglia Q Posizione S Esci B Giustifica (£ Cerca m Pao Succ. E B] Incolla E Ortografie

:: IKiUbP WmSmmmfmiemst

L'editar vi Nelle pagine precedenti, quando è stato necessario richiamare un editor, si è scelto di utilizzare nano. Questo editor ha l ' indubbio pregio di essere mol to semplice da usare, ma possiede un parco di funzionalità limitato: si tratta di un di fet to rilevante, dato che l 'editor per l 'amministratore è uno dei principali strumenti per gestire una macchina. Per i compit i di amministrazione più ripetitivi o di maggiore complessità, quindi, è necessario servirsi di un editor più avanzato come vi. Questo è l 'editor Unix standard e lo si trova installato su qualsiasi macchi-na, qualunque sia il dialetto Unix adottato. Se è necessario effettuare degli interventi su di un sistema Unix o Linux, quindi, si può essere ragionevol-mente certi di trovare sempre un eseguibile di vi a propria disposizione. In realtà, in queste pagine viene utilizzato come riferimento l 'editor vim, una versione potenziata di vi ma in gran parte compatibi le con l'illustre predecessore.

Page 109: Linux Ubuntu per Server e Reti.pdf

; VIM - Vi IMproved (VI Migliorato)

versione 7.1.138 di Bram Moolenaar et al.

Vim è 'open source' e può essere distribuito liberamente

- Aiuta i bambini poveri dell'Uganda! batti help iccf<Invio> per informazioni

batti q<Invio> per uscire batti help<Invio> o <F1> per aiuto online batti help version7<Invio> per informazioni su versione

0,0-1 Tut

Figura 3.11 - Vim è una versione potenziata di vi, il re degli editor su Unix.

In Ubuntu Server viene preinstallato il pacchetto vim-tiny, che fornisce un eseguibile di Vim con funzionalità minimali. La prima operazione da com-piere, quindi, è scegliere un pacchetto contenente una versione di Vim completa. Se sulla propria macchina non si intende utilizzare alcun am-biente grafico, si può installare il pacchetto vim:

sudo a p t - g e t instali v i m

Questo pacchetto fornisce un eseguibile di Vim con tut te le funzionalità estese compilate, ma privo di interfaccia grafica. Anche il pacchetto vim-nox include una versione del l 'edi tor puramente testuale ma, a differenza del precedente, aggiunge il supporto per la creazione di script in numero-si l inguaggi di programmazione, tra cui Perl e Python. In caso di utilizzo del l 'ambiente grafico Gnome, invece, il pacchetto vim-gnome fornisce tut to ciò che serve per utilizzare questo austero editor mediante una gradevole interfaccia grafica.

Scelta la versione di Vim che più si gradisce, è consigliabile installare an-che il pacchetto vim-doc, che contiene una pratica versione in HTML del manuale dell 'editor.

Page 110: Linux Ubuntu per Server e Reti.pdf

• concenti fondamentali di vi

Il programma vi, così come la versione estesa Vim, è un editor modale: il funzionamento dell 'editor e il valore assegnato ai tasti cambiano a se-conda della modalità in cui ci si trova. Ciò può risultare d' impaccio per l'utente alle prime armi ma, una volta presa confidenza con la peculiare interfaccia del programma, sarà facile apprezzarne l 'enorme praticità e la grande velocità nell'esecuzione di operazioni complesse sui testi. La Tabella 3.2 contiene un elenco delle modalità presenti in Vim, con evi-denziati i tasti che permettono di attivarle. Per orientarsi, però, è bene sa-pere che le due modalità più utilizzate sono senza dubbio insert e Normali la prima è la modalità che permette di inserire del testo nel file corrente, mentre la seconda consente di impartire comandi ed è la modalità sele-zionata per default quando si avvia l'editor.

Tabella 3.2 - Le modal i tà di Vim.

Modal i tà Tasto Funzione Consente di eseguire i comandi del-

N o r m a l Esc l'editor: cancellare una riga, modificare una parola ecc. Entrando in questa modalità il testo che

I n s e r t i viene digitato è automaticamente inse-rito nel file corrente La modalità visuale permette di selezio-

V i s u a l V, V nare un'area del testo e di eseguire un comando sull'area selezionata

gh in Modalità Seleziona un'area del testo. Quando si

S e l e c t Normal, Ctrl+G digitano dei caratteri stampabili, l'area

S e l e c t in Modalità selezionata viene cancellata e si entra in Visual Modalità Insert

In questa modalità si può inserire una

C o m m a n d L i n e /, ?, ! riga di testo nella parte in basso della fi-C o m m a n d L i n e /, ?, !

nestra. Viene usata da diversi comandi, che la attivano

E x Q Consente di digitare linee di comandi Ex

Page 111: Linux Ubuntu per Server e Reti.pdf

Ex è un vecchio editor di linea, cioè un editor che opera sulle linee di un file anziché fornire una visione complessiva del testo da modificare. Attualmente ex costituisce, come si è visto, una modalità di vi e dei suoi cloni: entrando in modalità Ex si richiamano Infatti i comandi disponibili nell'editor ex. Lanciando in un terminale il comando ex si avvia vim e si entra direttamente in modalità Ex.

Per aprire un file con Vim basta eseguire in un terminale vi seguito dal nome del file. In Ubuntu, infatti, l 'eseguibile vi non è altro che un collega-mento al programma vim. L'editor dispone di un comodo help in linea, indispensabile almeno nei primi tempi per non perdersi tra comandi, modalità e opzioni avanzate: lo si visualizza a schermo premendo F1 o d ig i tando :heip e bat tendo Invio.

Nei paragrafi che seguono, quindi, si presenteranno i principali comandi per muoversi all ' interno di un file e modif icarne il contenuto.

Page 112: Linux Ubuntu per Server e Reti.pdf

I comandi per spostare il corsore

Per spostarsi tra le righe di un file si utilizzano i tasti h (sinistra), j (giù), k (su), 1 (destra). In alternativa, è possibile impiegare i consueti tasti freccia, ma i tasti h j k i permet tono di muoversi agevolmente all ' interno di un file senza dover spostare le mani dalla parte della tastiera impiegata per la digitazione del testo. Di contro, i tasti freccia consentono di muovere il cursore senza dover abbandonare la modalità insert: sta al singolo uten-te, quindi, individuare i tasti di spostamento più pratici. Per spostarsi da una parola all'altra si premono i tasti w, per andare avanti, e b, per tornare indietro. Se si vuole raggiungere una determinata riga in un file si digita il numero della riga e si preme poi il tasto G (il tasto G, da solo, fa raggiungere l'ultima riga del file o buffer corrente). Per esempio, d ig i tando SG il cursore si sposterà alla riga 5 del file. Molt i comandi di Vim accettano un simile prefisso numerico. Non fanno eccezione gli altri comandi di spostamento visti finora: d ig i tando 4w, per esempio, ci si sposterà in avanti di 4 parole, mentre premendo ì o j il cur-sore si muoverà di 10 righe verso il basso.

Altri tasti di spostamento fondamental i sono o, $ e A. Il pr imo fa andare il cursore all'inizio della riga corrente, il secondo lo fa spostare alla fine della riga e, infine, il terzo tasto muove il cursore fino a raggiungere il pr imo carattere della riga che non sia blank, cioè vuoto.

I comandi per modificare il testo

Un semplice comando per la modifica del testo è x. Premendo questo tasto viene cancellato il carattere sul quale è posizionato il cursore. Un comando di cancellazione più complesso è d (che sta per delete), che va fatto seguire da un comando di movimento: per esempio, dw cancellerà la parola corren-te, d$ cancellerà tutti i caratteri dalla posizione attuale del cursore alla fine della riga e così via. Digitando dd verrà eliminata un'intera riga.

In realtà, il comando x non è altro che una scorciatoia per digi tare il

comando composto di che, per l 'appunto, cancella il carattere posto

sot to il cursore.

Page 113: Linux Ubuntu per Server e Reti.pdf

Jor example, there are many other ways to delete pieces of text. Here are a few often used ones:

x delete character under the cursor (short for "dl") X delete character before the cursor (short for "dh") D delete from cursor to end of line (short for "d$") dw delete from cursor to next start of word db delete from cursor to previous start of word diw delete word under the cursor (excluding white space) daw delete word under the cursor (including white space) dG delete until the end of the file dgg delete until the start of the file

If you use "c" instead of "d" they become change commands. And with "y" you yank the text. And so forth.

|usr 04.txt [Aiuto] [RO] 478,1 95% 1 •

|[Senza nome] 0,0-1

Figura 3.13 - L'help in linea mostra alcuni dei comandi che è possibile "costruire" a partire dal comando d.

Grazie al comando d è possibile costruire comandi articolati apponendo un prefisso numerico. La sequenza di caratteri 3db, per esempio, eliminerà tre parole indietro a partire dal punto in cui è posto il cursore. Una simile combinazione di tasti può far facilmente comprendere tu t to il potenziale nascosto nei comandi di Vim: si tratta di veri e propri "mat ton-cini" che, oppor tunamente combinati , consentono di intervenire sul testo in maniera rapida ed estremamente precisa. Il comando c (change) è simile a d ma, dopo l 'operazione di cancellazione, fa entrare direttamente in modalità insert. Digi tando cw, quindi, verrà eli-minata la parola sotto il cursore e se ne potrà inserire subito un'altra, senza dover cambiare modalità. Per spostare del testo si usa il tasto p (paste): prima si cancella la frazione del testo da spostare con una qualsiasi combinazione del comando d, poi si raggiunge il punto del testo desiderato e infine si preme p per copiare lì il testo appena eliminato. Per le operazioni di copia, invece, è possibile affidarsi a y (yank). Questo comando di copia, come d e c, è seguito da un carattere di movimento e può essere preceduto da un prefisso numerico. Con yy, dunque, si copia

Page 114: Linux Ubuntu per Server e Reti.pdf

in un registro la riga corrente, mentre con yw si copia la parola sotto il cursore e così via. Fatto ciò, basterà raggiungere il punto del file in cui si vuole copiare il testo e schiacciare p.

I registri, in Vim, sono una sorta di "b locco appunt i " . Vengono usati per

registrare e richiamare rapidamente del le sequenze di caratteri. Servono

anche per memorizzare i dat i cancellati dal comando d o salvati dal

comando y.

Per operazioni di copia più complesse ci si può affidare alla modalità v i -sual: si preme v per evidenziare singoli caratteri o v per selezionare intere righe, quindi si usa y per memorizzare le parti evidenziate in un registro e infine si preme p per copiare il testo nel punto desiderato.

Page 115: Linux Ubuntu per Server e Reti.pdf

Intervenire sui file

Per salvare le modi f iche al fi le corrente si utilizza :w. Se il comando è se-gui to dal nome di un file, il testo viene memorizzato nel fi le indicato. Per uscire da l l 'ed i tor si d ig i ta :q, mentre per salvare il file e uscire da l l 'ed i tor si uniscono i due comandi e si scrive :wq.

Con il comando :e segui to dal nome di un fi le si apre nel l 'ed i tor il f i le indicato. Infine, : r f i l e . t x t inserisce il con tenuto di f i le.txt al l ' interno del testo corrente.

Ricerca e sostituzione

Le funzionali tà per la ricerca e la sosti tuzione di str inghe in Vim sono de-cisamente avanzate. Per cercare sempl icemente una stringa nel testo cor-rente si preme il tasto / , si d ig i ta la stringa da ricercare e si preme Invio. Per individuare le occorrenze successive della stringa si preme n, mentre per trovare quel le precedent i si usa N.

Il comando / può effettuare ricerche di parole poste all ' inizio o alla f ine del le r ighe di un documen to : per l imitare le ricerche all ' inizio del le r ighe si inserisce A pr ima della stringa da cercare, mentre per cercare tra le parole finali si preme il tasto $ al termine della stringa. Per esempio, scrivendo / Acasa si cercheranno tu t te le r ighe in cui la parola iniziale sia casa. Per sostituire una stringa con un'altra al l ' interno del l ' in tero documen to si usa il comando :%s, che ha la seguente sintassi:

:%s/cerca/sostituìsci/

Per esempio, per cambiare tu t te le occorrenze della parola Linux in Ubun-tu si deve scrivere : %s/Linux/ut>untu/. Con la sintassi di defaul t , però, il comando sostituisce la stringa indicata solo per la prima occorrenza di ogn i riga. Il comando d 'esempio , cioè, se trova una riga come:

Linus Torvalds è il padre di Linux. Linux è un sistema operativo libero

la cambia in:

Linus Torvalds è il padre di Ubuntu. Linux è un sistema operativo libero

Page 116: Linux Ubuntu per Server e Reti.pdf

Per sostituire tut te le occorrenze in ogni riga bisogna aggiungere al co-mando l 'opzione finale g (che sta per giobai), così:

: % s / c e r c a / s o s t i t u i s c i / g

Nell ' immagine seguente (Figura 3.15) si può osservare un esempio di so-stituzione globale applicata su uno script: il comando che viene eseguito inserisce la stringa mario al posto di ogni occorrenza della stringa aie.

#!/bin/sh

tar cvpf etc.tar /etc tar cvpf local.tar /usr/local tar cvpf home.tar exclude=/home/lost+found -exclude=/home/ale/Download --excl ude=/home/ale/Musica --exclude=/home/ale/Immagini --exclude=/home/ale/Video --ex clude=/home/ale/.VirtualBox /home

:%s/ale/mario/g|

Figura 3.15 - Nell'ultima riga dell'interfaccia di Vim si esegue il comando per sostituire ale con mario.

Ripetere e annullare i comandi

Spesso si ha l'esigenza di ripetere l 'ult imo comando eseguito. In Vim que-sto si ott iene premendo . (punto) sulla tastiera. Dato che il tasto . consente di ripetere esclusivamente quei comandi che effettuano dei cambiamenti sul testo, è possibile spostarsi l iberamente all ' interno di un documento e ripetere una modifica una o più volte. Per esempio, se bisogna eliminare una sequenza di tre parole da un gran numero di righe basta posizionarsi sulla prima riga da modificare, premere d3w e, quindi, spostarsi nelle righe successive e premere semplicemente ..

Page 117: Linux Ubuntu per Server e Reti.pdf

Per annullare l 'ultimo cambiamento effettuato sul testo corrente si preme u (undo). Premendo più volte lo stesso tasto si annulleranno via via i cambia-menti precedenti. Per ripristinare una modifica al testo che è stata annullata con u, invece, si deve premere la combinazione di tasti Ctr l+R (redo).

Una sessione di esempio con Vim

A questo punto si conoscono i comandi principali per effettuare le ope-razioni più important i in Vim. Ecco dunque una sessione di prova in cui si apre un file con l 'editor e lo si modifica richiamando una manciata di comandi.

Il file su cui si vuole intervenire è .bashrc, nella home del l 'utente corrente. Nel terminale si lancia dunque il comando seguente:

v i .bashrc

Aper to il file, la prima operazione che si vuole compiere è attivare l'aiias 11='is -1' commentato nel file di configurazione di default. Per procede-re, innanzitutto si individua la riga interessata con il comando seguente:

/alias 11

Il cursore verrà posizionato sulla riga della prima e unica occorrenza della stringa indicata e, più in particolare, sul pr imo carattere della stringa stes-sa. La riga corrente sarà dunque quella che segue:

#alias ll='ls -1'

Adesso non rimane che premere j per spostare il cursore sul carattere # di commento e poi premere x per eliminare tale carattere, attivando così l'alias. La seconda modifica da compiere è quella di spostare la sezione degli alias in fondo al file. Per fare questo si raggiunge la riga del pr imo coman-do alias e si preme il tasto v. Si entrerà così nella modalità visuale, che consente di selezionare intere righe.

A questo punto si preme j finché non vengono evidenziate tut te le righe degl i alias, quindi si usa x per togl iere le righe dalla posizione corrente. Infine si preme G per raggiungere la fine del documento e si usa il tasto p per spostare lì le righe degl i alias.

. • ' l.ife »

Page 118: Linux Ubuntu per Server e Reti.pdf

Per finire, si preme i per entrare in modalità insert e si aggiungono una man-ciata di alias nel file. Quindi si preme Esc per tornare in modalità Normai. Le modif iche al documento sono concluse. Non rimane che premere :wq per salvare il file e uscire dall 'editor.

$TERM dumb /usr/bin/dircolors en eval "'dircolors -b" alias Is 'Is --color=auto #alias dir='ls --color=auto --format=vertical' #alias vdir='ls --color=auto --format=long'

#alias grep='grep --color=auto' #alias fgrep='fgrep --color=auto' #alias egrep='egrep --color=auto'

fi

# enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if [ /etc/bash_completion

/etc/bash_completion

# some more Is aliases alias 11 Is -I1

#alias la='ls -A' #alias l='ls -CF'

I -- INSERISCI -- 94,1 Fon

Figura 3.16 - Una sessione d'esempio con Vim. In pochi secondi si possono cambiare parti anche estese di un file.

Creare scorciatoie

Se si effettuano spesso laboriosi e complessi interventi sul testo è possi-bile creare delle scorciatoie, simili agli alias della shell, grazie al comando map. Tale comando ha la seguente sintassi:

m a p s c o r c i a t o i a c o m a n d i

La scorciatoia può essere un qualsiasi tasto o sequenza di tasti, mentre i comandi non sono altro che la successione dei tasti che devono essere premuti per compiere una determinata azione. Ecco una riga di map che può risultare utile nella scrittura di script per la shell:

map <F5> Oi#<Esc>

Page 119: Linux Ubuntu per Server e Reti.pdf

In questa riga II comando map abbina alla pressione del tasto F5 la sequenza oi#<Esc>: o fa spostare il cursore sul pr imo carattere della riga attuale, men-tre i passa in modal i tà insert e # inserisce il carattere di cancelletto nella posizione corrente. Infine, <ESC> fa tornare l 'editor in modal i tà Normai. Con questa scorciatoia, qu ind i , p remendo il tasto F5 la riga su cui è posto il cursore verrà commenta ta , da to che il cancel let to in posizione iniziale indica negl i script shell una riga di commen to .

Chiaramente, le r ighe di map d ig i ta te durante l'util izzo interatt ivo di V im saranno richiamabil i nella sola sessione in corso. Per memorizzare del le scorciatoie, qu ind i , b isogna inserire le relative righe di map nel fi le di con-f igurazione .vimrc.

Questo fi le va posto nella home del l 'u tente. Se .vimrc non esiste, lo si crea con il comando vi .vimrc e si inseriscono poi , mediante l 'editor, tu t te le r ighe di map che si desidera.

" Configuriazione personate di vim mmmmm

syntax on set noautoindent set modelines=5

tabstop=2

&term =- "rxvt" || &term "xterm" || &term "screen" set background=light

endif

augroup filetype au BufRead »/postponed/* ft=mail

augroup END

map Q {!}par 72qjh"M} |a <F5> 0i#<Esc>

".vimrc" 17L, 292C scritti 17,1 Tut

Figura 3.17-11 file di configurazione .vimrc dell'editor Vim.

Modificare le opzioni

Nel fi le di conf igurazione .vimrc è possibi le inserire del le righe per modi f i -care i valori d i defaul t di un gran numero di opzioni del l 'edi tor . Il comando

Page 120: Linux Ubuntu per Server e Reti.pdf

per modif icare il valore di un 'opz ione è set, che ha la sintassi seguente:

set opzione=valore

Alcune opzioni possono assumere i soli valori Vero e Falso. In tal caso, il valore viene indicato sempl icemente mediante il nome del l 'opzione: se il valore è Falso va premesso no al nome del l 'opz ione. Per esempio, per att ivare l 'auto indentazione si inserisce la riga:

set autoindent

mentre per disabil i tarla si scrive:

set noautoindent

L'opzione di autoindentazione fa sì che una nuova riga segua l'inden-tazione della linea precedente. Per esempio, se in una riga inseriamo dei caratteri di tabulazione, questi saranno presenti anche nelle righe successive.

Tra le opzioni che può essere utile modi f icare vi sono history, tabstop e ìncsearch. La pr ima, history, permet te di indicare il numero di comandi e pattern di ricerca che l 'edi tor deve memorizzare. Per esempio, con set history=ioo si manterranno in memor ia 100 comandi e pattern. L'opzione tabstop stabilisce il numero di spazi bianchi che devono corri-spondere a un carattere di tabulazione. Con set tabstop=2 un tab corri-sponde a 2 spazi. Infine, incsearch attiva la ricerca incrementale: quando si premerà il tasto / verrà mostrato immedia tamente , carattere d o p o ca-rattere, il punto del testo dove appare la stringa ricercata. Per orientarsi tra la mol t i tud ine di opzioni che Vim met te a disposizione, basta digi tare nel l 'edi tor il comando :options. Compar i rà un documen to con un elenco commenta to del le opzioni presenti, suddivise per argo-mento.

Page 121: Linux Ubuntu per Server e Reti.pdf

• W H set js nojs

nrformats "alpha", "octal" and/or "hex"; number formats recognized for CTRL-A and CTRL-X commands (local to buffer) set nf=octal hex

14 tabs and indenting

tabstop number of spaces a <Tab> in the text stands for (local to buffer) set ts=2

sh i f tw id th number of spaces used for each step of (auto)indent (local to buffer! set sw=8

smarttab a <Tab> in an indent inserts 'shiftwidth1 spaces set nosta sta

sof t tabstop if non-zero, number of spaces to insert for a <Tab> (local to buffer) set sts=0

¿option-window 445,1 54%

1 1 • [Senza nome' 0,0-1 Tutl

: options|

Figura 3.18- li comando :options mostra un elenco commentato delle opzioni disponi-bili in Vim.

Per concludere questi paragrafi dedicati a Vim, la Tabella 3.3 è una sorta di "guida per la sopravvivenza", con i comandi fondamental i per l'utilizzo di questo potente ma complesso editor.

Tabella 3.3 - I comandi per "sopravvivere" in Vim.

Comando Funzione

h , j, k , ì Muove il cursore a sinistra, in basso, in alto e a

h , j, k , ì destra

: W Salva i cambiamenti al documento corrente :q Fa uscire dal l 'editor X Cancella il carattere sotto il cursore

dd Cancella una riga

yy Registra una riga in memoria Copia nel documento i dati salvati in memoria

p dai comandi come x, d d e yy

/ Ricerca una stringa nel documento

Page 122: Linux Ubuntu per Server e Reti.pdf

F • \ \ I —1 I i

4. Log e processi periodici

I«! 11 O isS IE If"- IH sistema di l o g e gii strumenti

di scheduling per amministrare al meglio

una macchina.

Se gli strumenti fondamental i per un amministratore sono la shell e l'edi-tor, la gestione quotidiana di una macchina non può prescindere dalla conoscenza approfondita dei sistemi di log e dei principali software per la gestione dei processi periodici (scheduling). Questo capitolo, dunque, sarà dedicato a sysiog e cron: il pr imo è il gestore di log standard su Linux, mentre il secondo è il sistema di scheduling più adatto a essere usato in macchine accese 24 ore su 24 come i server.

Gestire i lag Un log non è altro che la registrazione su file di una serie di informazio-ni inviate da un componente del sistema o da un programma comune. Queste informazioni sono organizzate in ordine cronologico: un'attenta lettura dei file di log, quindi, consente di avere un quadro complessivo dell 'attività di una macchina e di collocare nel t empo l' insorgere di eventi imprevisti e malfunzionamenti.

Il sistema per la gestione dei log syslogd è contenuto nel pacchetto sysklo-gd, installato per default. I file di log sono raccolti nella directory /var/ log: nella Tabella 4.1 vengono presentati alcuni dei principali file di log.

Page 123: Linux Ubuntu per Server e Reti.pdf

Tabella 4.1 - Alcuni dei principali f i le di log.

auth.log daemon.log

Autorizzazioni. Per il comando sudo, per esempio Comunicazioni relative ai demoni

dmesg

kern.log mail.err, mail.info, mail.log, mail.warn

Contiene i messaggi inviati dal kernel durante la procedura di boot L'insieme dei messaggi provenienti dal kernel

Messaggi relativi alla posta

Xorg.*.log

messages Importante file di log, raccoglie un nutrito nume-ro di tipi di messaggi diversi Informazioni e messaggi di errore inviati dal ser-ver grafico X Window System

La configurazione di syslogd

Per modificare le impostazioni di syslog e stabilire così una politica dei log adatta al proprio sistema si deve intervenire sul file di configurazione /etc/ syslog.conf. In questo file sono presenti righe di commento (sono quelle con il consueto carattere iniziale #) e righe che determinano le regole per i log. Le seconde hanno la seguente struttura:

selettore azione

Il campo selettore è formato dalla coppia di valori facility.level. Faci-ìity indica il t ipo di programma che invia le informazioni di log, mentre ìevei individua la gravità del singolo messaggio inoltrato. L'insieme di faciiity e levei, dunque, definisce in modo granulare le informazioni di log cui ci si vuole riferire.

Le facii ity d isponib i l i SOnO auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, security (corr isponde a auth), syslog, user, uucp e localO-7. Alcune faciiity riguardano le autorizzazioni (auth e authpriv), altre il ker-nel (kern), altre ancora singoli demoni avviati sulla macchina (cron, ftp, ipr, mail, news). La faciiity syslog è relativa ai messaggi dello stesso de-mone syslogd, mentre per i messaggi locali si utilizzano le faciiity da localo a local7.

Page 124: Linux Ubuntu per Server e Reti.pdf

[ /etc/syslog. conf Configuration file for syslogd. #

# For more information see syslog.conf(5) # manpage.

# # First some standard logfiles. Log by facility. #

auth.authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log daemon." -/var/log/daemon.log kern.* -/var/log/kern.log Ipr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log

# # Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files.

mail.info -/var/log/mail.info

"/etc/syslog.conf" 70L, 1614C 1,1 Cim

Figura 4.1-11 file di configurazione letto da syslog è /etc/syslog.conf.

Tramite mark, infine, si generano messaggi di timestamp (delle "marche temporali") a intervalli regolari: ciò può risultare utile per individuare con precisione il momento in cui si manifesta un problema sulla macchina. I valori che p u ò assumere il level sono debug, info, notice, warning, err, crit, aiert, emerg. Il valore che indica la gravità più bassa per un messag-gio è debug (informazioni per ¡1 debugging), mentre emerg (emergenza!) rappresenta la gravità più alta possibile per un log. Per l'indicazione della facility e del level è consentito usare il valore * (in-clude tutti i valori possibili), mentre per il solo level è permesso l'utilizzo anche della parola chiave none (non include alcun valore). Per esempio, mail.* applica un'azione a tutti i livelli della facility mail. Con il selettore news.none, invece, si indica che a nessun livello della facility news deve corrispondere una determinata azione di log. II campo azione, quindi, stabilisce ¡1 destinatario del log. Ecco l'elenco delle azioni possibili:

• File regolare. Il log viene scritto su un file, che va indicato con il percorso completo. Esempio: /var/log/auth.log

Page 125: Linux Ubuntu per Server e Reti.pdf

• Macchina remota. Il log viene inviato al demone syslogd di una macchina remota. Può essere usato un nome di host o un indirizzo IP. Esempio: ©192.168.1.12

• Named pipe. Il messaggio di log viene mandato a una named pipe (pipe persistente). Esempio: |/dev/xconsole

• Lista di utent i . Il messaggio di log viene mostrato a determinati utenti se questi sono attivi sulla macchina. Con * il messaggio viene inviato a tutti gli utenti attivi. Esempio: ale,mario,test

Alcuni esempi per syslag.conf

Ora che si conoscono i possibili valori per i parametri faciiity. levei e azione, si possono riportare alcuni esempi completi di righe da inserire in /etc/syslog.conf. Una riga molto semplice è la seguente:

auth.info /var/log/auth.log

In questa regola si stabilisce che tutt i i messaggi di log per la faciiity auth di level info o superiore devono essere inseriti nel file /var/ log/auth.log. Di default, dunque, l'indicazione di un determino livello implica la selezio-ne di tutt i i livelli di gravità superiore a esso: in /var/ log/auth.log, quindi, saranno raccolti i messaggi di log di t ipo auth.info, auth.notice e così via, f ino a auth. emerg. Per individuare nella regola un singolo level, questo va fatto precedere dal carattere =. Scrivendo auth.=info /var/iog/auth.log, perciò, si riverseran-no nel file di log i soli messaggi della faciiity auth e di livello info. Il carattere ! consente invece di escludere uno o più livelli da un'azione, come nella riga qui di seguito riportata:

mail.*;mail.!=notice /var/log/maìl

In questo esempio tutt i i livelli per la faciiity mail confluiscono in /var/ log/ mail, tranne il livello notice. Nella riga vengono impiegati insieme i carat-teri ! e = per precisare il level da escludere. Indicando invece mail.*,-mail. ¡notice verrebbero selezionati tutt i i level di mail tranne quelli a partire da notice: nel file di log, in questo caso, sa-rebbero dunque memorizzati solo i messaggi con priorità debug e info.

Page 126: Linux Ubuntu per Server e Reti.pdf

Nello stesso esempio si utilizza il carattere ; per indicare su una stessa riga due diversi selettori. I selettori vengono letti in successione: un selettore può quindi escludere quanto stabilito dai selettori precedenti. L'utilizzo canonico del carattere ; è appunto quello di riunire un selettore generico (mail. *) e uno di esclusione (mail. ! =notice), così da ricreare in una singola riga un costrutto del t ipo "tutt i i casi tranne uno o alcuni". Per raggruppare più facility nel medesimo selettore si usa invece ,. Una riga come quella seguente, per esempio, invierà al demone syslogd sulla macchina empedocie i messaggi di log di priorità info provenienti dalle facil i ty mail e news:

mail,news.=info @empedocle

Sulla macchina empedocie, quindi, per poter ricevere messaggi di log dal-l'esterno sarà necessario aprire il file /etc/default/syslogd e cambiare la riga:

S Y S L O G D = " "

in:

S Y S L O G D = " r "

Page 127: Linux Ubuntu per Server e Reti.pdf

Fatto questo, si dovrà riavviare ¡1 demone con il comando seguente:

sudo /etc/init.d/sysklogd restart

Il demone syslogd risponderà alle richieste dall'esterno mediante la porta 514 UDP. Per poter comunicare con i client che inviano messaggi di log, quindi, sarà necessario aprire la porta 514 UDP sul server che fornisce il servizio remoto syslogd. L'argomento sarà trattato nel Capitolo 6 di questo volume.

Ruotare i log con logrotate

I file di log sono di estrema utilità, ma rischiano di occupare un'enorme quantità di spazio su disco. Per tale ragione è consigliabile che vengano "ruotat i" a scadenze regolari, cioè progressivamente cancellati secondo direttive stabilite dall'amministratore di sistema.

g see "man logrotate" for details

# rotate log files weekly weekly

# keep 4 weeks worth of backlogs rotate 4

# create new (empty) log files after rotating old ones create

# uncomment this if you want your log files compressed #compress

# packages drop log rotation information into this directory include /etc/logrotate.d

# no packages own wtmp, or btmp -- we'll rotate them here

/var/log/wtmp { missingok monthly

create 0664 root utmp rotate 1

} "/etc/logrotate.conf" 32L, 599C Cim

Figura 4.3 - La configurazione di logrotate è contenuta nel file /etc/logrotate.conf

Page 128: Linux Ubuntu per Server e Reti.pdf

Fra i pacchetti preinstallati in Ubuntu Server è presente logrotate, un potente strumento per la gestione dei log. Grazie a esso è possibile ruotare, cancellare e inviare per email i file di log. La configurazione del programma è contenuta nel file /etc/logrotate.conf: nell ' immagine nella pagina precedente (Figura 4.3) è possibile vedere parte del contenuto di default di questo file. In aggiunta a quanto presente in logrotate.conf, la directory /etc/logro-tate.d raccoglie i file di configurazione per singoli programmi o servizi: questa directory viene popolata da file creati in automatico durante l'in-stallazione dei pacchetti, ma può essere utilizzata anche dall'amministra-tore per inserire direttive di configurazione senza dover intervenire sul file centrale logrotate.conf. Nella Tabella 4.2 sono elencate le principali direttive riconosciute da lo-grotate.

Tabella 4.2 - Le dirett ive di logrotate. Direttiva Significato

com press 1 vecchi file di log vengono compressi. La direttiva con-

com press traria è nocompress

daily 1 file di log vengono ruotati giornalmente weekly 1 file di log vengono ruotati ogni settimana monthly 1 file di log vengono ruotati ogni mese

notifempty Se il file di log è vuoto non viene ruotato. La direttiva contraria è ifempty (default)

olddir x 1 vecchi file di log vengono spostati nella directory x

rotate x Prima di essere cancellati o inviati per email i file di log

rotate x vengono ruotati x volte

size=x Se le dimensioni del file di log sono maggiori di x il file

size=x viene ruotato

mail x Raggiunto il termine massimo di rotazioni, il file di log viene inviato via email all'indirizzo x

Page 129: Linux Ubuntu per Server e Reti.pdf

Nelle righe d'esempio che seguono viene riportato un file logrotate.conf minimale:

weekly rotate 3 compress

/var/log/dpkg.log { monthly rotate 12 notifempty

}

Le prime tre righe impostano una configurazione generale per tutti i file di log da gestire, mentre le righe successive stabiliscono le direttive da usare per il solo file /var/log/dpkg.log. Come si può vedere, per limitare il valore delle opzioni a un determinato file di log è sufficiente creare un blocco di direttive inserite tra parentesi graffe, dichiarando prima del blocco il nome stesso del file di log. In queste righe di esempio, dunque, per default i log vengono compressi (compress) e ruotati ogni settimana (weekiy). Dopo che stato state effettua-te tre rotazioni (rotate 3), un log viene eliminato. Per il file /var/log/dpkg. log, invece, i log vengono ruotati mensilmente (monthly) e per dodici volte (rotate 12), ma non se risultano vuoti (noifempty).

Processi periodici con cron Nelle pagine precedenti si è visto come logrotate possa essere utilizzato per far ruotare i log dal sistema in modo automatico. Logrotate non avvia alcun demone al boot della macchina: il programma viene semplicemente eseguito ogni giorno da uno script che lo richiama. Questa non è altro che un'operazione di scheduling effettuata tramite cron. Mediante cron, dunque, è possibile eseguire dei comandi secondo scadenze temporali prestabilite: si può decidere di cancellare una deter-minata directory ogni settimana alle 8:00, di controllare se un server è attivo ogni primo mercoledì del mese alle 17:30 e così via. La configurazione diretta di cron è piuttosto articolata e può risultare so-vradimensionata per le operazioni di scheduling più elementari. Nei pa-

Page 130: Linux Ubuntu per Server e Reti.pdf

ragrafi che seguono, quindi, si presenteranno prima gli strumenti per una gestione semplificata degli eventi da eseguire, poi si interverrà diretta-mente sulla configurazione di cron.

Scheduling semplificata

Ubuntu, così come altre diffuse distribuzioni Linux, fornisce delle directory mediante le quali è possibile programmare l'esecuzione via cron di co-mandi secondo scadenze rigide: ogni ora, ogni giorno, ogni settimana e ogni mese. Inserendo un file con i comandi da lanciare nella directory /etc/cron.hourly, quindi, le istruzioni in esso presenti verranno eseguite ogni ora. Per le ese-cuzioni giornaliere si utilizzerà la directory /etc/cron.daily, per quelle setti-manali /etc/cron.weekly e per quelle mensili, infine, /etc/cron.monthly. Se in un terminale si prova a leggere con is il contenuto di /etc/cron.daily (Figura 4.4), per esempio, si vedrà che tra i vari file presenti nella directory è indicato anche logrotate: è proprio grazie a questo file che il program-ma logrotate viene eseguito tutt i i giorni in modo automatico.

ale@pitagora:-$ Is -al /etc/cron.daily/ totale 72 drwxr-xr X 2 root root 4096 2008 09 22 12:43 drwxr-xr X 138 root root 12288 2008 09 22 12:43 -rwxr-xr X 1 root root 311 2007 03 05 07:38 -rwxr-xr X 1 root root 219 2008 04 18 17:58 -rwxr-xr X 1 root root 7441 2008 04 22 17:20 -rwxr-xr X 1 root root 314 2008 04 04 11:56 -rwxr-xr X 1 root root 502 2007 12 12 14:59 -rwxr-xr X 1 root root 71 2008 01 24 20:02

-rwxr-xr X 1 root root 89 2006 06 19 20:21 -rwxr-xr X 1 root root 954 2008 03 12 14:24 man db

-rwxr-xr X 1 root root 183 2008 03 08 19:22

-rwxr-xr X 1 root root 1154 2008 03 07 21:24 -rw-r--r - 1 root root 102 2008 04 08 20:02 .placeholder

-rwxr-xr X 1 root root 3295 2008 04 08 20:02 -rwx r-x r X 1 root root 1309 2007 11 23 10:06 ale@pitagora: i t

Figura 4,4 - Il contenuto della directory /etc/cron.daily.

Per esempio, per far cancellare ogni settimana il contenuto della directory /home/ale/ tmp sfruttando questa modalità di utilizzo semplificata di cron,

Page 131: Linux Ubuntu per Server e Reti.pdf

tut to ciò che bisogna fare è creare con l'editor un file di testo /etc/cron. weekly/localtmp e inserire in esso delle righe come le seguenti:

#!/bin/sh rm -r /home/ale/tmp

Poi si rende eseguibile lo script con il comando chmod +x, così:

sudo chmod +x /etc/cron.weekly/localtmp

Il file crontab principale

Spesso è necessario programmare delle esecuzioni di comandi adottando scadenze temporali più complesse di quelle trattate nel paragrafo prece-dente. In questi casi è necessario modificare o creare un file di crontab: si tratta dei file di configurazione di cron, dotati di una sintassi particolare che ora si andrà a descrivere.

Il file crontab principale è /etc/crontab e in esso è contenuta la confi-gurazione di sistema per cron, mentre la directory /etc/cron.d contiene specifici file di configurazione aggiuntivi installati dai singoli pacchetti. Nell ' immagine seguente (Figura 4.5) è possibile vedere le righe di cui è composto il file /etc/crontab di default su Ubuntu Server.

/etc/crontab: system-wide crontab |# Unlike any other crontab you don't have to run the 'crontab' |# command to install the new version when you edit this file |# and files in /etc/cron,d. These files also have username fields, l# that none of the other crontabs do,

|SHELL=/bin/sh |pftTH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

|# m h dom mon dow user command ll7 * * * * root cd / && run-parts --report /etc/cron.hourly ¡25 6 * * * root test * u bin/ || cd / M , run p report /etc /cron.daily )

|47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc /cron.weekly !

¡52 6 1 * * root test x /usr/sbin/anacron || ( cd / && run-parts --report /etc| /cron.monthly )

"/etc/crontab" 17L, 724C 1,1 Tut

Figura 4.5 - Il file /etc/crontab installato per default su Ubuntu.

Page 132: Linux Ubuntu per Server e Reti.pdf

All'inizio di questo file sono presenti alcune righe di commento, che inizia-no con il carattere #. Quindi compaiono le righe seguenti:

SHELL=/bin/sh PATH=/usr/locai/sbin:/usr/locai/bin:/sbin:/bin:/usr/sbin:/usr/bin

In queste due righe viene dichiarato il valore che le variabili ambientali S H E L L e PATH devono assumere durante l'esecuzione dei comandi indicati nel file di configurazione. Nel caso si assegni un valore alla variabile M A I L -

TO, inoltre, tale valore indicherà l'utente a cui cron deve inviare i messaggi generati dai comandi quando questi vengono eseguiti. Dopo queste righe si elencano i diversi comandi da lanciare a scadenze regolari. La sintassi utilizzata in un file crontab per stabilirne l'esatta ese-cuzione è la seguente:

minuto ora giorno mese giorno_settimana utente comando

Una spiegazione dettagliata dei singoli campi è contenuta nella Tabella 4.3.

Tabella 4.3 - I campi per specificare un comando in crontab. Campo Significato

minuto Indica il minuto in cui eseguire il comando. Può assumere un valore fra 0 e 59

ora Indica l'ora. Può assumere un valore fra 0 e 23

giorno Indica il giorno del mese. Può assumere un valore fra 1 e 31

mese Indica il mese. Può assumere un valore fra 1 e 12 Indica il giorno della settimana. Può assumere un

giorno_settimana valore fra 0 e 7: per indicare la domenica è possi-bile usare il numero 0 o 7

utente Stabilisce quale utente deve eseguire il comando

utente indicato

comando Il comando da lanciare. Può contenere spazi e non va inserito tra virgolette

Nei cinque campi che definiscono l'orario di esecuzione è possibile uti-lizzare il carattere * per indicare tutti i valori possibili. Si può inoltre rap-

Page 133: Linux Ubuntu per Server e Reti.pdf

presentare una sequenza di valori unendo due numeri tramite il trattino -, mentre per indicare un insieme di valori non sequenziali questi vanno separati con il carattere ,. Per esempio, scrivendo 6-7 nel campo giorno si stabilirà che I giorni di esecuzione del comando saranno il sabato e la domenica. Scrivendo in-vece 1,4,5 nel campo mese il lancio del comando avverrà esclusivamente durante i mesi di gennaio, aprile e maggio. Nel caso di valori non sequenziali ma che seguano un intervallo prestabili-to è consentito l'utilizzo di / in aggiunta al carattere - come scorciatoia per l'inserimento dei valori. Ecco un esempio per il campo minuto:

0 - 6 0 / 1 5

Questa indicazione di valori significa "esegui il comando ogni quindici minuti" e corrisponde alla scrittura per esteso:

0 , 1 5 , 3 0 , 4 5 , 6 0

Ora è possibile decifrare facilmente il contenuto delle ultime righe del file /etc/crontab di default. La prima riga che imposta l'esecuzione di un comando è la seguente:

17 * * * * r0ot ed / && run-parts --report /etc/cron. hourly

In questa viene stabilito che al minuto 17 di ogni ora, in qualsiasi giorno, in qualunque mese e qualunque sia giorno della settimana, deve essere lanciato da root il c o m a n d o ed / && run-parts --report /etc/cron.hourly . Si tratta della riga che determina l'esecuzione degli script contenuti nella directory /etc/cron.hourly. Nelle righe successive, quindi, viene indicato a cron di eseguire quanto presente in /etc/cron.daily tutti i giorni alle ore 6:25, mentre alle 6:47 di domenica si legge il contenuto della directory /etc/cron.weekly. Infine, il primo giorno di ogni mese alle 6:52 si lanciano gli script raccolti in /etc/ cron.monthly. Queste quattro righe, dunque, costituiscono l'impalcatura sulla quale si regge la configurazione semplificata di cron utilizzata nel paragrafo pre-cedente.

Page 134: Linux Ubuntu per Server e Reti.pdf

Creare crantab personali

Il file /etc/crontab e i file contenuti nella directory /etc/cron.d possono essere manipolati esclusivamente dall 'utente root. Ai singoli utenti è data però la possibilità di gestire file crontab personali: questi vengono memo-rizzati nella directory /var/spool/cron/crontabs e possono essere creati e modificati tramite il comando crontab -e. Lanciando questo comando verrà aperto, con l'editor di default, il file di crontab dell 'utente attualmente attivo e sarà possibile aggiungere o cam-biare righe di configurazione seguendo la sintassi indicata in precedenza per il file /etc/crontab principale. L'unica differenza tra un file di crontab gestito da root e uno creato da un utente comune è l'assenza nel secondo del campo utente: il nome dell 'utente che deve lanciare i comandi, infatti, in questo caso coincide con il nome del file corrispondente in /var/spool/cron/crontabs (file ale, giovanni, mario e così via). Una volta lanciato il comando crontab -e apparirà una schermata simile a quella dell ' immagine seguente (Figura 4.6).

• i •• u n h « ^ M H m n n M i W - a i ' 1 ' H U W E i i E

# m h doni mon dow command

I

Page 135: Linux Ubuntu per Server e Reti.pdf

A questo punto è possibile assegnare specifici valori a delle variabili d'am-biente e inserire righe per l'esecuzione di comandi, come questa:

30 0 * * * $HOME/bin/dailycron

Nella riga si indica a cron di lanciare il comando $HOME/bin/dailycron tut-ti i giorni, alle ore 00:30. La variabile $HOME viene espansa nel percorso della home dell'utente che ha creato il file crontab corrente. Per memorizzare e rendere attivo il crontab, quindi, è sufficiente salvare il file e uscire dall'editor.

Per cambiare l'editor di default è possibile Impostare opportunamente

le variabili EDITOR o VISUAL in un file .profile personale o in quello di

sistema. Per esempio:

export EDITOR-vi

Oppure, si può scegliere l'editor di default lanciando il comando sudo

update-alternaiives --config editor e selezionando una delle voci

disponibili dall'elenco che appare.

L'amministrazione di un crontab avviene mediante il programma crontab stesso. Per visualizzare il contenuto di un crontab si esegue il comando crontab -ì, mentre crontab <fiie> elimina il file di crontab attuale del-l'utente e lo rimpiazza con il contenuto di <fiie>. Infine, crontab -r elimina un crontab. Quando il comando crontab viene eseguito dal superutente, questo può gestire direttamente i file crontab degli utenti normali tramite l'opzione aggiuntiva -u <utente>. Ecco un esempio che fa visualizzare nel terminale usato da root il crontab dell'utente mario:

crontab -u mario -1

Page 136: Linux Ubuntu per Server e Reti.pdf

5. Il server è in rete

GII strumenti E i file di configurazione

per inserire ii server io una rete locale.

Un computer adibito a server che non sia connesso ad alcuna rete locale è certo una macchina di scarsa utilità. La procedura di installazione di Ubuntu Server riconosce le schede di rete presenti su un PC e consente di configurarle con facilità. A volte, però, le impostazioni di rete al momento dell'installazione differiscono dall'effetti-va struttura di rete in cui deve inserirsi una macchina server e, del resto, gli strumenti semplificati presenti in un sistema di installazione difficilmente possono soddisfare tutte le esigenze. In questo capitolo si vedrà dunque come configurare fin nel minimo detta-glio le schede di rete presenti su un PC, utilizzando prevalentemente tool a linea di comando e intervenendo sui file di configurazione di sistema. Verrà spiegato come inserire la macchina sia all'interno di una rete cablata sia in una WLAN.

Le informazioni di base I dati sulla configurazione delle schede di rete sono contenuti nel file /etc/ network/interfaces. Ora che si conoscono le potenzialità e i comandi di base di Vim, è possibile aprire il file di configurazione con questo editor:

sudo vi /etc/network/interfaces

Page 137: Linux Ubuntu per Server e Reti.pdf

Il contenuto del file rispecchierà le impostazioni indicate durante l'instal-lazione del server. Per esempio, se si utilizza una sola interfaccia di rete e si richiede l'indirizzo IP tramite DHCP il file, dopo una serie di righe di commento introduttive, conterrà le righe seguenti:

# The loopback network interface auto lo iface lo inet loopback

# The primary network interface auto ethO iface ethO inet dhcp

Si tratta di due blocchi di righe, ognuno dei quali è dedicato a una diversa interfaccia di rete. La prima interfaccia è quella di loopback, un'interfaccia fittizia che iden-tifica la macchina locale: serve a poter mettere in comunicazione, in un computer, i programmi che utilizzano il protocollo TCP/IP quando non è disponibile alcuna effettiva connessione di rete. Se si installa un web server sulla propria macchina, per esempio, è proprio grazie all'indirizzo di loopback (127.0.0.1) che è possibile accedere in lo-cale alle pagine web indipendentemente dalla loro disponibilità in rete. L'interfaccia di loopback è fondamentale per il corretto funzionamento di una macchina ed è sconsigliabile eliminarla. La riga auto io stabilisce che io, cioè l'interfaccia di loopback, deve essere attivata automaticamente (auto) all'avvio del sistema. Nella riga successiva, quindi, viene configurata l'interfaccia tramite l'istru-zione iface. Questa ha la seguente sintassi: iface interfaccia tipo modalità interfaccia è il nome dell'interfaccia di rete da configurare. Nell'esempio si tratta di lo. Segue il tipo di indirizzo richiesto dall'interfaccia: inet per IPv4, inet6 per IPvó o ipx. Infine si indica la modalità di configurazione dell'interfaccia, che nella riga dell'esempio è loopback.

Page 138: Linux Ubuntu per Server e Reti.pdf

IPv6 è II successore di IPv4, il Protocollo Internet attualmente in uso. Consente di gestire un numero molto più alto di indirizzi rispetto al pre-decessore. IPX sta per Internetwork Packet Exchange ed è un protocollo di rete, ora in disuso, che veniva utilizzato nelle reti NetWare.

Nella Tabella 5.1 vengono elencate le principali modalità di configurazione che è possibile impiegare quando si utilizza inet come t ipo di indirizzo.

Tabella 5.1 - Le principali modal i tà di configurazione per inet.

I Modal i tà Signif icato loopback Definisce un'interfaccia di loopback

static Definisce una configurazione statica dell'interfac-cia, con gli indirizzi indicati direttamente

manual Il sistema non effettua alcuna configurazione del-

manual l'interfaccia

dhcp Per la configurazione dell'interfaccia viene contat-

dhcp tato un server DHCP

Le righe successive di /etc/network/interfaces configurano l'interfaccia di rete etho, cioè la prima scheda Ethernet sulla macchina. La riga iniziale auto etho attiva automaticamente l'interfaccia della scheda, mentre iface etho inet dhcp configura etho per richiedere l'IP a un server DHCP.

Configurare un indirizzo statico

La presenza di un server DHCP nella propria rete locale semplifica certo la gestione della LAN. L'assegnazione di IP dinamici può risultare però limi-tante. Impiegando indirizzi che possono mutare da una sessione all'altra, infatti, non è possibile né far aprire al firewall determinate porte su speci-fiche macchine, né riferirsi ai PC della rete indicandone direttamente l'IP.

Page 139: Linux Ubuntu per Server e Reti.pdf

In questi casi, le soluzioni che si possono adottare sono diverse. Se il pro-prio server DHCP lo consente, innanzitutto, è possibile fare in modo che questo assegni degli indirizzi statici a singoli MAC Address nella rete. In alternativa, si può far gestire al server DHCP un sottoinsieme degli indirizzi IP e assegnare manualmente il resto degli indirizzi. Una soluzione più radicale, infine, è quella di abbandonare le comodità offerte dai server DHCP e configurare manualmente le interfacce di rete di tutti i PC nella LAN (ma se la rete locale è di ampie dimensioni ciò può risultare poco pratico e inutilmente laborioso).

Nel caso di LAN domestica, il servizio di server DHCP viene fornito soli-

tamente dal router per la connessione ADSL. Per configurare il server

DHCP, quindi, è sufficiente accedere all'interfaccia web di gestione del

proprio router.

A meno di poter configurare il server DHCP in modo tale da abbinare un indirizzo fisso a un MAC Address, quindi, è necessario che a una o più macchine della rete il file /etc/network/interfaces assegni degli IP statici. Ecco come procedere. Prima di tutto si deve scrivere in /etc/network/in-terfaces una riga con la corretta istruzione iface, inserendo l'interfaccia di rete da configurare seguita da inet e dalla modalità statici

iface ethO inet static

Quindi si digitano le righe con le informazioni per configurare la scheda:

address 192.168.0.5 netmask 255.255.255.0 gateway 192.168.0.1

Come address si inserisce l'indirizzo IP che si vuole assegnare alla scheda, mentre la netmask indica l'indirizzo della maschera di rete adottata nella propria LAN. La riga gateway, infine, va inserita se la macchina è collegata a un dispositivo gateway (per esempio un router) e il valore da inserire non è altro che l'indirizzo IP del gateway stesso.

Page 140: Linux Ubuntu per Server e Reti.pdf

Prima di salvare il file e chiudere l'editor con il comando :Wq, se si desi-dera far attivare l'interfaccia di rete all'avvio della macchina è necessario inserire la riga auto etho (cambiando ethO con l'effettiva interfaccia della propria scheda di rete) prima del blocco di righe per la configurazione della scheda. Nell'immagine seguente (Figura 5.1) è possibile osservare il contenuto del file /etc/network/interfaces, completo di tutte le righe per l'attivazione e la configurazione di un indirizzo statico.

auto lo iface lo inet loopback

auto eth0 iface eth0 inet static ¡address 192.168.0.5 netmask 255.255.255.0 S]ateway 192.168.0.1

-

8,1 Tut

Figura 5.1 - Il file /eic/network/ìnterfaces Con le righe per configurare un'interfaccia dotata di IP statico.

Una volta inserite o modificate delle righe in /etc/network/interfaces, quin-di, per aggiornare la configurazione dell'interfaccia di rete nella sessione corrente basta eseguire sudo /etc/init .d/networking restart. Se la macchina cui si sta assegnando un indirizzo IP statico è connessa a Internet, poi, è necessario intervenire sul file /etc/resolv.conf per indicare i server DNS da utilizzare. Ecco un file /etc/resolv.conf di esempio, che indica al sistema di contattare i server DNS agli indirizzi 192.168.1.1 e 192.168.1.2:

Page 141: Linux Ubuntu per Server e Reti.pdf

nameserver 192.168.1.1 nameserver 192.168.1.2

Nel caso di utilizzo di un server DHCP per la configurazione di una scheda, invece, gli indirizzi DNS vengono richiesti direttamente al server DHCP e non è necessario indicarli nel file /etc/resolv.conf.

Assegnazione dei nomi di host

Associare nomi di host a indirizzi IP è di grande utilità in una rete locale, anche nel caso in cui questa sia di piccole dimensioni. Il modo più sempli-ce e diretto per assegnare dei nomi agli indirizzi IP della LAN è intervenire sul file di configurazione /etc/hosts. Ecco come appare il contenuto di un file /etc/hosts di default su Ubuntu Server:

127.0.0.1 localhost 127.0.1.1 pitagora

# The following lines are desirable for IPv6 capable hosts : : 1 ip6 -localhost feOO 0 ip6 -localnet ffOO 0 ip6 -mcastprefix f f 02 1 ip6 -allnodes f f 02 2 ip6 -allrouters f f 02 3 ip6 -allhosts

Ciascuna riga presenta un indirizzo IP e, a seguire, un nome per l'indirizzo e un alias opzionale. La prima riga stabilisce che all'indirizzo 127.0.0.1 (l'interfaccia di loopback) venga assegnato il nome localhost. La seconda riga, invece, è una pecu-liarità delle distribuzioni Debian e Ubuntu e associa all'indirizzo 127.0.1.1 il nome di host della macchina (nell'esempio, il nome è pitagora). Le righe successive del file /etc/hosts di default, invece, riguardano la gestione degli indirizzi IPv6. Se nella rete locale ufficio.lan uno degli host ha come indirizzo IP 192.168.0.5 e ha come nome eraclito, una riga appropriata in /etc/hosts sarebbe la seguente:

192.168.0.5 eraclito. ufficio, lan eraclito

Page 142: Linux Ubuntu per Server e Reti.pdf

In questa riga ¡1 nome di dominio completo è eraclito.ufficio.lan, mentre eraclito è un alias, in questo caso una scorciatoia per indicare rapidamente l'host. Ogni riferimento a eraclito.ufficio.lan oppure a eraclito, quindi, ver-rà tradotto nell'indirizzo IP 192.168.0.5. Nello stesso modo è poi possibile assegnare i nomi agli altri PC presenti nella LAN. Il nome dell'host per la macchina locale è stato indicato durante la procedu-ra di configurazione del sistema operativo. Se si lancia il comando hostname verrà mostrato in output il nome dell'host, per esempio eraclito. Lanciando hostname -f sarà visualizzato invece il FQDN (Fully Qualified Domain Name, cioè il nome di dominio completo), come eraclito.ufficio.lan. Nella configurazione di default di Ubuntu Server il FQDN non è impostato e l'output del comando hostname -f mostra il semplice nome di host. Se il nome di dominio abbinato alla scheda di rete è fisso e la rete locale stessa è sempre attiva, la prassi comune è quella di indicare come FQDN il nome dell'host seguito dal nome di dominio della LAN.

127.0.0.1 localhost 192.168.0.2 pitagora.home.lan Pitagora

# Le altre macchine nella LA[JJ 192.168.0.3 empedocle.home.lan empedocle 192.168.0.4 Parmenide.home,lan Parmenide 192.168.0.5 piatone,home.lan piatone

# The following lines are desirable for IPv6 capable hosts : 1

fe00 ff00 ff02 f f©2 ff02

ip6-localhost ip6-loopback 0 ip6-localnet

0 ip6-mcastprefix 1 ip6-allnodes

2 ip6-allrouters 3 ip6-allhosts

'/etc/hosts" 15L, 414C scritti 4,29 Tut

Figura 5.2 - Un file /etc/hosts completo, con le informazioni su tutte le macchine della LAN.

Il modo più semplice per inserire un FQDN nella configurazione di siste-ma, quindi, è intervenire sul file /etc/hosts. Si elimina la riga che inizia

Page 143: Linux Ubuntu per Server e Reti.pdf

per 127.0.1.1 e se ne inserisce una contenente l'indirizzo IP assegnato all'interfaccia di rete della macchina, il FQDN con il nome di dominio della LAN e il nome dell'host come alias. Nell ' immagine nella pagina precedente (Figura 5.2) viene presentato un file /etc/hosts completo, nel quale il FQDN indicato per la macchina lo-cale 192.168.0.2 è pitagora.ufficio.lan e in cui sono stati inseriti tutti gli indirizzi dei PC connessi in rete. Una volta conclusa la scrittura del file /etc/hosts sulla macchina locale, quindi, non rimane che copiare lo stesso file su tutt i i computer della LAN, in modo tale da consentire la traduzione dei nomi in indirizzi IP in tutte le macchine.

Amministrare la rete con ifconfig

Prima di giungere a una configurazione definitiva della propria LAN, e quindi delle schede di rete presenti sulle macchine locali, è spesso neces-sario sperimentare, apportando cambiamenti talvolta rilevanti alle impo-stazioni di rete. In tal caso è preferibile impartire comandi che intervenga-no direttamente sulla rete, invece di andare a modificare volta per volta file di configurazione di sistema come /etc/network/interfaces. Un importante comando per amministrare la rete è ifconfig. Lanciando il comando senza argomenti vengono mostrate informazioni dettagliate sul-le interfacce di rete attive, mentre se si esegue ifconfig -a l 'output visua-lizzato concerne tutte le interfacce disponibili, che siano attive o meno. Nell ' immagine seguente (Figura 5.3) è possibile vedere un output d'esem-pio del comando ifconfig. Ogni blocco di informazioni riguarda una spe-cifica interfaccia di rete. Il primo blocco in figura indica che l'interfaccia ethO è attiva nel sistema, ha il MAC Address (HWaddr) oo:of :bo :a7:8a:4e e l'indirizzo IP è 192.168.1.4, mentre il broadcast (Bcast) ha come indirizzo 192.168.1.255 e la maschera di rete (Mask) è 255.255.255.0.

L'indirizzo di broadcast consente di inviare pacchetti a tutte le macchine di una sottorete. In una struttura di rete elementare l'indirizzo di broa-dcast viene desunto dall'indirizzo di rete e dalla relativa netmask.

[ DigitaiLifeSiyie*pro

Page 144: Linux Ubuntu per Server e Reti.pdf

lSj?@pitagora:~$ ifconfig ethO Link encap:Ethernet HWaddr 00:0f:bO:a7:8a:4e

inet addr : 192.168.1.4 Bcast : 192.168.1.255 Mask : 255.255.255.0 inet6 addr: fe80::20f:bOff:fea7:8a4e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric: 1 RX packets:2664 errors:0 dropped:© overruns:© frame:0 TX packets:2977 errors:© dropped:© overruns:© carrier:© collisions:© txqueuelen:100© RX bytes:1409139 (1.3 MB) TX bytes:595©90 (581.1 KB) Interrupt:22 Base address:0x5000

ethl Link encap:Ethernet HWaddr 00:13:ce:c6:©5:53 inet6 addr: fe80: :213:ceff:fec6:553/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:150© Metric:1 RX packets:1320 errors:© dropped:© overruns:© frame:0 TX packets:3507 errors:© dropped:© overruns:© carrier:l collisions:© txqueuelen:100© RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:23 Memory:bc007000-bc©07fff

lo Link encap:Local Loopback inet addr:127.0,0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:!

Figura 5.3 - L'output del comando ifconfig mostra informazioni sulle interfacce attive nel sistema.

C o n ifconfig «interfaccia» ( p e r e s e m p i o ifconfig ethi), q u i n d i , v e n g o n o

m o s t r a t e i n f o r m a z i o n i su d i u n a s i n g o l a i n t e r f a c c i a .

Il c o m a n d o ifconfig p u ò e s s e r e u t i l i z z a t o a n c h e p e r m o d i f i c a r e le i m p o s t a -

z i o n i d i u n ' i n t e r f a c c i a d i r e t e . E c c o u n e s e m p i o :

sudo ifconfig ethO 192.168.0.5 netmask 255.255.255.0

C o n q u e s t o c o m a n d o , a l l ' i n t e r f a c c i a e t h O v i e n e a s s e g n a t o l ' i n d i r i z z o

1 9 2 . 1 6 8 . 0 . 5 c o n la c lass i ca m a s c h e r a d i r e t e 2 5 5 . 2 5 5 . 2 5 5 . 0 . È a n c h e p o s -

s i b i l e i n d i c a r e d i r e t t a m e n t e l ' i n d i r i z z o d i b r o a d c a s t t r a m i t e l ' o p z i o n e o m o -

n i m a d i ifconfig:

sudo ifconfig ethl 192.168.1.6 netmask 255.255.255.128 broadcast 192.168.1.127 up

In q u e s t o e s e m p i o , o l t r e a e s s e r e a s s e g n a t o l ' i n d i r i z z o d i b r o a d c a s t

1 9 2 . 1 6 8 . 1 . 1 2 7 , a p p a r e a n c h e l ' o p z i o n e f i n a l e up. Q u e s t a s e r v e a d a t t i v a r e

l ' i n t e r f a c c i a d i r e t e s p e c i f i c a t a . T u t t a v i a , se n e l l a l i n e a d i o p z i o n i d i ifconfig v i e n e a s s e g n a t o a l l ' i n t e r f a c c i a u n i n d i r i z z o IP, c o m e n e g l i u l t i m i e s e m p i

Page 145: Linux Ubuntu per Server e Reti.pdf

p rpsentati, allora l'interfaccia è attivata automaticamente e quindi l'ag-giunta dell 'opzione up non è necessaria.

Se è necessario memorizzare in /etc/network/interfaces l'indirizzo di broadcast di un'interfaccia di rete, tutto quello che bisogna fare è Inseri-re nel file, tra le righe di opzioni successive all'istruzione iface, una riga come la seguente: b r o a d c a s t 1 9 2 . 1 6 8 . 1 . 1 2 7

Con il comando ifconfig «interfaccia» up, dunque, si attiva l'interfaccia Indicata, mentre con ifconfig «interfaccia» down la si disattiva:

sudo ifconfig ethl up sudo ifconfig ethl down

Instradamento dei pacchetti

Un pacchetto, per raggiungere la propria destinazione, effettua un per-corso a volte semplice e lineare, a volte lungo e tortuoso. L'instradamento dei pacchetti viene chiamato routing e le informazioni sul percorso che i diversi pacchetti devono percorrere vengono inserite nelle cosiddette tabelle di routing. Per conoscere nel dettaglio le tabelle di routing di una macchina è pos-sibile usare il comando netstat con le opzioni -nr o -r. Nel primo caso vengono mostrati direttamente gli indirizzi numerici, nel secondo le infor-mazioni vengono indicate risolvendo i nomi.

Nell' immagine seguente (Figura 5.4) è visibile l 'output del comando netstat -nr eseguito su di una macchina con una configurazione di rete basilare. Il primo campo mostrato in ogni riga di percorsi (route) indica la destina-zione (Destination) cui si fa riferimento ed è solitamente un indirizzo di rete. Il secondo campo contiene il Gateway necessario per raggiungere la rete di destinazione, mentre il campo successivo, Genmask, mostra la maschera di rete di Destination. L'ultimo campo presente, infine, è iface e indica l'interfaccia di rete cui devono essere inviati i pacchetti che se-guono il percorso indicato.

Page 146: Linux Ubuntu per Server e Reti.pdf

|ale@pitagora:~$ netstat -nr Kernel IP routing table ¡Destination Gateway Genmask Flags MSS Window irtt Ifa 192.168,1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth' Ì169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth' Ì0.0.0.0 192,168.1,1 0.0.0,0 UG 0 0 0 eth' ;ale@pitagora:-$ |

Nell 'output di esempio sono presenti tre righe di route. Nella prima l'indirizzo di destinazione è 192.168.1.0 e il Gateway è indicato come 0.0.0.0: si tratta dalla rete locale, quindi non è necessario contattare alcun gateway per inoltrare i pacchetti. La seconda riga indica una route con destinazione 169.254.0.0 e, anche qui, Gateway 0.0.0.0. Si tratta semplicemente di un percorso creato dal servizio Avahi, nel caso esso risulti installato sul sistema.

Avahi è un'implementazione libera di Zeroconf, un protocollo che con-

sente dì creare una rete senza richiedere configurazioni da parte degli

utenti o la presenza di servizi come DNS e DHCP.

La terza e ultima riga, infine, presenta l'indirizzo di Gateway 192.168.1.1 e indica come destinazione 0.0.0.0. Questo è il gateway di default, che viene contattato per tutte le destinazioni che non rientrano nelle regole di routing precedenti. Il significato complessivo di queste tre semplici righe è dunque il seguen-te: i pacchetti destinati all'indirizzo di rete 192.168.1.0 sono diretti alla LAN, tutti gli altri devono uscire dalla rete locale e richiedono dunque l'intervento del gateway, raggiungibile all'indirizzo 192.168.1.1. Ovviamente, in reti anche di piccole dimensioni l'insieme delle tabelle di routing risulta inevitabilmente molto più complesso di quello indicato ma, ciononostante, le modalità di lettura dell 'output di netstat rimangono le medesime. Per modificare le tabelle di routing si usa il comando route.

Page 147: Linux Ubuntu per Server e Reti.pdf

Per aggiungere un percorso si fa seguire il comando dal parametro add, come in questo esempio:

sudo route add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.5.1 ethl

Nella riga si indica 192.168.4.0 come destinazione della route. Dato che viene premesso il parametro -net, 192.168.4.0 è un indirizzo di rete; per inserire un indirizzo di host come destinazione, questo va preceduto dal parametro -host. La maschera di rete 255.255.255.0 viene dichiarata dopo netmask, quindi a gw segue l'indirizzo del gateway che va contattato per questo percor-so, 192.168.5.1. L'ultimo parametro indica l'interfaccia di rete da usare, in questo caso e th l . Nell 'esempio seguente, invece, viene stabilito che il gateway di default è 192.168.5.1 :

sudo route add default gw 192.168.5.1

Per eliminare il gateway di default basta quindi eseguire sudo route del default. Infine, per cancellare una determinata route si richiama il parame-tro dei seguito dall'indirizzo di destinazione presente nella route:

sudo route del 192.168.4.0

Rendere permanenti le modifiche

Le modifiche alla configurazione della rete effettuate con i comandi ifcon-fig e route scompaiono allo spegnimento della macchina. Per renderle definitive, quindi, è necessario mettere mano al file di configurazione / etc/n etwo rk/i n te rfa ces. La corrispondenza tra le opzioni disponibili con il comando ifconfig e le ri-ghe che è possibile inserire in /etc/network/interfaces è diretta. Per esem-pio, un comando come ifconfig ethO 192.168.0.5 netmask 255.255.255.0 si traduce nelle seguenti righe di configurazione:

iface ethO inet static address 192.168.0.5 netmask 255.255.255.0

Anche il comando per modificare il gateway di default ha una traduzione diretta nel file di configurazione. Per esempio, un comando come route

Page 148: Linux Ubuntu per Server e Reti.pdf

add default gw 192.168.0.9 diventa, Semplicemente, una riga gateway 192.168.0.9 in /etc/network/interfaces. Per aggiungere dei percorsi di routing, quindi, si inseriscono i comandi route necessari nel blocco di righe di /etc/network/interfaces relativo al-l'interfaccia di rete cui i comandi si riferiscono. Le righe di route si ripor-tano integralmente e vanno precedute dall'opzione up. Una riga come route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.4.2 ethl si inserisce quindi nel blocco dedicato a e th l . Ecco un esempio:

iface ethl inet static address 192.168.4.3 netmask 255.255.255.0 gateway 192.168.4.1 up route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.4.2 ethl

L'opzione up esegue il comando indicato non appena l'interfaccia di rete viene attivata. L'opzione speculare è down, che lancia un determinato co-mando subito prima che l'interfaccia venga disattivata. Per eliminare la route indicata nell'esempio precedente quando viene chiusa l'interfaccia, si aggiunga la riga seguente:

down route del 192.168.5.0

Page 149: Linux Ubuntu per Server e Reti.pdf

Le reti Wi-Fi Le reti senza fili o WLAN forniscono una pratica e dutti le modalità di col-legamento per le macchine, di solito in aggiunta a una rete cablata. Dato che il funzionamento delle WLAN è basato sull'uso delle trasmissioni ra-dio, una rete senza fili diffonde i dati in transito su di essa nell 'ambiente circostante. Per proteggere le informazioni, dunque, è necessario adotta-re un solido protocollo di sicurezza che cripti i dati rendendoli il leggibili agli utenti non autorizzati. Il vecchio protocollo WEP (Wired Equivalent Privacy) ha notevoli falle di sicu-rezze che consentono a uno sconosciuto di ricavare facilmente e velocemen-te la chiave di cifratura utilizzata in una rete. Ottenuta la chiave WEP, l'intruso può avere accesso alla WLAN e agire indisturbato all'interno di essa. Nelle pagine che seguono, quindi, si offriranno le informazioni necessarie per creare una rete Wi-Fi protetta mediante i protocoll i WPA e WPA2 e per connettere a essa le varie macchine.

I protocolli WPA e WPA2 forniscono entrambi una protezione molto più sicu-ra rispetto a quella che può assicurare il protocollo WEP. Rispetto a quest'ul-timo, il WPA dispone di una chiave di cifratura di maggiori dimensioni e che viene modificata per ogni pacchetto trasmesso. Infine, il WPA2 si differenzia dal WPA per l'utilizzo del solidissimo algoritmo di cifratura AES.

L'Access Paint:

L'Access Point (AP) è il dispositivo che consente di collegare a una WLAN dei PC forniti di scheda Wi-Fi o qualsiasi altro dispositivo che permetta di accedere a una rete senza fili. In una rete casalinga è presente solitamente un solo Access Point, mentre in WLAN di maggiori dimensioni sono pre-senti più AP. Bisogna controllare che la banda gestibile dall'Access Point sia sufficiente per il numero di macchine da connettere alla rete: i dispositivi compatibil i con gli standard 802.11 a e 802.11 g forniscono una banda fisica di 54 Mbps, ma quella effettiva è di circa 20 Mbps. Nel caso ciò non fosse suffi-

Page 150: Linux Ubuntu per Server e Reti.pdf

b. il se rver è in re te

dente, è possibile utilizzare AP che utilizzino il nuovo protocollo 802.11n da 248 Mbps fisici e circa 70 Mbps effettivi. Se si possiede un vecchio Access Point 802.11b, comunque, questo può essere proficuamente impiegato per gestire piccole WLAN domestiche: gli 11 Mbps fisici del protocollo (4,5 Mbps reali), infatti, sono general-mente sufficienti per condividere una connessione a Internet ADSL e una stampante e per scambiare documenti di piccole dimensioni. Un AP può essere configurato per funzionare secondo diverse modalità. Nella modalità Access Point il dispositivo fa da tramite tra una rete cablata e i client Wi-Fi: si tratta della modalità di utilizzo più diffusa. Un AP, però, può anche avere la funzione di Bridge. Questa modalità con-sente di collegare due o più Access Point così da mettere in contatto più reti cablate. Infine, in modalità Repeater un AP non fa altro che ripetere il segnale Wi-Fi che riceve, in modo tale da estendere la copertura di una WLAN preesistente. Tipicamente, un Access Point va configurato per mezzo di un'interfaccia web. Nelle pagine di configurazione vanno quindi stabiliti l'ESSID, cioè il nome che identifica la WLAN e la modalità di fun-zionamento dell'AP: se si tratta dell'unico Access Point di cui si dispone, la modalità deve essere quindi Access Point.

Modifica Visualizza Cronologia Segnalibri Strumenti guida

t# - £ C3 # v http7/192.168.1 2/ìndex.a

. ?"... * v - i i i i - ¡ _ ; r <

J E P T R O N I C • ..IL, nbwttc CS4APk/ÌAccg<ì$ f'itir,

K ; : ; Basic Setting

flf ' Advanced ; Setting

'." f Security

MAC Filtering

Security This page allows you setup the wireless security. Turn on WEP or WPA by using Encryption Keys could prevent any unauthorized access to your wireless network.

| WPA pre-shared key : j

•WPA(TKIP) WPA2<AES) VVPA2

Figura 5.6 - L'interfaccia web perla configurazione di un Access Point Conceptronic C54APM.

Page 151: Linux Ubuntu per Server e Reti.pdf

Poi si indica il protocollo di sicurezza che la rete deve adottare. Per reti di piccole e medie dimensioni è possibile scegliere il protocollo WPA PSK (Pre-Shared Key), mentre per WLAN più estese è consigliabile utilizzare WPA o WPA2 con autenticazione tramite server RADIUS.

I protocolli WPA e WPA2 permettono di utilizzare due diverse modalità di

autenticazione, Pre-Shared Key e RADIUS. La prima è basata su di un'unica

passphrase, cioè una lunga sequenza di caratteri con cui si ha accesso alla

WLAN, condivisa da tutte le macchine che si connettono alla rete. RADIUS,

invece, è un protocollo che permette la gestione centralizzata degli acces-

si e richiede l'impiego di un server per effettuare le autenticazioni.

Adottando un'autenticazione PSK ci si deve sincerare che la passphrase prescelta non sia individuabile con facilità. Infatti, è possibile sferrare un attacco basato su dizionario contro una rete protetta tramite WPA PSK: per tale ragione, è consigliabile scegliere una passphrase lunga (possibil-mente di 20 caratteri o più) e formata da una sequenza casuale di lettere, numeri e segni d'interpunzione. Nelle pagine di configurazione dell'Access Point è solitamente possibile anche disattivare il broadcast dell'ESSID: si tratta di una pratica che occul-ta il nome della WLAN e, quindi, nasconde la presenza stessa della rete agli estranei. In realtà, una simile protezione è facilmente aggirabile utiliz-zando strumenti per la rilevazione e lo sniffing di reti Wi-Fi come Kismet. Un'altra pratica protettiva diffusa, anch'essa comunemente disponibile nella configurazione degli AP, è il MAC Address Filtering. Questa consiste nella creazione di una tabella con gli indirizzi MAC di tutte le macchine cui è consentito accedere alla WLAN. Anche in questo caso, però, si tratta di una protezione blanda, dato che è molto semplice modificare il MAC Address di una scheda di rete e, di rimando, impadronirsi di uno degli indirizzi cui l'accesso è permesso.

Page 152: Linux Ubuntu per Server e Reti.pdf

M 'I unii mi ii'lim (ni I f i le Modifica Visualizza Cronologia Segnalibri Strumenti Guida

- *'"" http .•7192.168.1.2/mdex asp

CONCEPTROHIC Coiiceptronic C64APM Access Paint

Advanced i Setting

M A C A d d r e s s F i l t e r i n g

» MAC Address Filtering Table It allows So entry 20 sets addi ess only.

Enable Wireless Access Control

MAC Address Comment:

I http://192.168.1.2/macfilterl.asp

Figura 5.7 - La configurazione del MAC Address Filtering nell'interfaccia dell'AP.

Configurare la scheda Wi-Fi

Una volta stabilite le corrette impostazioni per l'Access Point, è il momen-to di configurare la scheda Wi-Fi sulla macchina server. Come nel caso delle connessioni cablate, anche la configurazione del collegamento tra-mite Wi-Fi va inserita nel file /etc/network/interfaces. Un blocco di righe per collegare il PC alla WLAN può essere il seguente:

iface ethl inet dhcp wpa-ssid wireless wpa-psk 1234567890 wpa-driver wext

La prima riga contiene la consueta istruzione iface, necessaria per stabi-lire la modalità di configurazione dell'interfaccia indicata. In questo caso l'interfaccia e th l viene autoconfigurata per mezzo di un server DHCP. Le righe successive contengono istruzioni specifiche per le reti che adot-tano il protocollo WPA. L'istruzione wpa-ssid è seguita dall'ESSID della rete Wi-Fi cui ci si vuole collegare (wireless, nell'esempio). La passphrase, invece, va inserita dopo l'istruzione wpa-psk.

Page 153: Linux Ubuntu per Server e Reti.pdf

È possibile inserire direttamente i caratteri che costituiscono la passphrase (come nell'esempio) ma, per ragioni di sicurezza, è consigliabile inserire la passphrase in forma cifrata. Per cifrare la passphrase si usa il comando wpa_ passphrase, seguito dall'ESSID della rete e dalla passphrase in chiaro:

wpa_passphrase wireless 12345G7890

Come output si otterranno delle righe come le seguenti:

network={ ssid="wireless" #psk="1234567890" psk=ba7b5adc4 31c50916c8el64f4cf4be2ca3d3el7 02e9de2ce5 0 08f 2462e9bf7b4

}

La passphrase cifrata è contenuta nella seconda riga con psk= ed è una strin-ga esadecimale di 63 caratteri (nell'esempio si tratta di ba7b5adc ecc.). Nell'ultima riga del file /etc/network/interfaces si indica con wpa-driver il driver necessario per gestire il protocollo WPA. Se nel file di configurazio-ne non è presente alcuna riga con l'istruzione wpa-driver, viene utilizzato il driver generico wext, che dovrebbe consentire il corretto funzionamento del WPA su molte schede Wi-Fi. Nella Tabella 5.2 vengono elencati i principali driver disponibili per gesti-re il protocollo WPA. Se il driver wext non dovesse funzionare a dovere, si controlli il chipset presente sulla scheda di rete e si indichi poi il driver adatto tramite l'istruzione wpa-driver.

Tabella 5.2 - I principali driver per gestire il WPA. [ Driver Schede compatibi l i I

wext Driver generico madwifi Schede con chipset Atheros h osta p Schede con chipset Prism

Schede con chipset Intel Centrino ipw2100 ipw e ipw2200. Driver per kernel < 2.6.14; per i

kernel recenti il driver è wext atmel Schede con chipset ATMEL AT76C5XXx

Page 154: Linux Ubuntu per Server e Reti.pdf

Se si è scelto di disattivare il broadcast dell'ESSID, per connettersi a una rete con ESSID nascosto si devono aggiungere al blocco di righe per l'interfaccia di rete Wi-Fi in /etc/network/interfaces le righe seguenti: wpa-ap-scan 1 wpa-scan-ssid 1

Se il proprio Access Point è configurato per usare il protocollo di sicurezza WPA2 PSK, le righe da inserire in /etc/network/interfaces saranno:

iface ethl inet dhcp wpa-ssìd wireless wpa-psk 1234567890 wpa-driver wext wpa-proto RSN wpa-pairwise CCMP wpa-group CCMP wpa-key-mgmt WPA-PSK

Come si vede, rispetto all'esempio precedente si tratta semplicemente di aggiungere le quattro istruzioni finali wpa-proto, wpa-pairwise, wpa-group e wpa-key-mgmt con i valori appropriati per il WPA2.

Gestire l'interfaccia di rete Wi-Fi cnn iwconfig

Il comando iwconfig è il corrispettivo di ifconfig per le reti Wi-Fi e consente di mostrare informazioni su un'interfaccia di rete e modificare i parametri di funzionamento di questa. Eseguendo in un terminale iwconfig senza argomenti, verranno visualizzate informazioni dettagliate su tutte le interfacce wireless presenti nel sistema. Un esempio di output è mostrato nell ' immagine seguente (Figura 5.8). Per ogni interfaccia wireless attiva (nell'esempio è presente solo eth 1 ) ven-gono mostrati lo standard Wi-Fi utilizzato dalla scheda (IEEE 802.11 g), l'ESSID a cui questa è attualmente collegata (wireless-net), la modalità (Mode) di funzionamento della scheda (nell'esempio Managed), più altre informazioni come la frequenza impiegata, il MAC Address dell'Access Point, il Bit Rate e molto altro ancora.

Page 155: Linux Ubuntu per Server e Reti.pdf

a l e @ p i t a g o r a : i w c o n f i g lo no wireless extensions,

ethl IEEE 802.llg ESSID:"wireless-net"

Mode:Managed Frequency:2.462 GHz Access Point: O0:80:5A:47:0B:01 Bit Rate:54 Mb/s Tx-Power=20 dBm 5ensitivity=8/0 Retry limit:7 RTS thr:off Fragment thr:off Power Management:off Link Quality=94/100 Signal level=-25 dBm Noise level=-88 dBm Rx invalid nwid:0 Rx invalid crypt:87 Rx invalid frag:0 Tx excessive retries:© Invalid misc:0 Missed beacon:©

eth0 no wireless extensions,

ale@pitagora:~$ |

Figura 5.8 - L'output del comando iwconfig mostra informazioni su tu t te le interfacce wireless disponibili.

In tutte le configurazioni e negli esempi forniti in questo volume la modali-tà utilizzata è Managed, in quanto è necessaria per il collegamento di una scheda di rete a un Access Point. Le principali altre modalità disponibili sono Ad-Hoc, Master e Monitor. Ecco il loro significato:

• Ad-Hoc. In una configurazione in cui la WLAN è priva di Access Point, due o più schede di rete possono essere connesse diretta-mente tra loro impostando su queste la modalità Ad-Hoc;

• Master. La scheda di rete, in questa modalità, assume le funziona-lità di un Access Point;

• Monitor. Si tratta di una modalità "passiva", mediante la quale la scheda di rete può ascoltare tutto il traffico in transito sulla frequen-za in uso.

Lanciando iwconfig seguito da un'interfaccia di rete (per esempio iwconfig ethi) verranno mostrate informazioni su quest'unica interfaccia. Il coman-do iwconfig dispone anche di una serie di parametri che consentono di modificare le impostazioni di un'interfaccia di rete. Un elenco dei princi-pali parametri viene mostrato nella Tabella 5.3.

Page 156: Linux Ubuntu per Server e Reti.pdf

Tabella 5.3 - I parametr i principali del comando iwconf ig. Parametro Signif icato Esempio i

Cambia la modalità di fun-mode zionamento dell'interfac-

cia iwconfig ethO mode Ad-Hoc

channel Cambia il canale utilizzato iwconfig ethO channel 6

freq Stabilisce la frequenza per le comunicazioni

iwconfig e th l freq 2.422G

rate Imposta il bitrate di funzio-namento della scheda

iwconfig e th l rate 24M

essid Indica l'ESSID dell'Access Point cui ci si connette

iwconfig e th l essid wifi

Per rendere permanenti le modifiche alle impostazioni della scheda Wi-Fi si devono tradurre i parametri di iwconfig in righe del file di configurazione /etc/network/interfaces. Per fare questo, basta aggiungere al nome di un parametro il prefisso wireless-. Per esempio, la riga seguente:

sudo iwconfig ethO channel 6

diventa nel file di configurazione così:

wireless-channel 6

Attenzione. Se si utilizzano i protocoll i WPA e WPA2, le istruzioni con il pre-fisso wireless-, quando hanno istruzioni equivalenti con il prefisso wap-, vanno sostituite con queste ultime. Al posto di wireiess-essid, quindi, nel file /etc/network/interfaces va inserito wpa-ssid.

Conoscere le reti disponibili con iwlist

A volte si ha bisogno di avere informazioni dettagliate sugli Access Point raggiungibil i dall'interfaccia di rete. Questi dati si ottengono mediante il comando iwlist e il parametro scan. La sintassi da usare è iwlist <inter-faccia> scan, per esempio:

iwlist ethl scan

Page 157: Linux Ubuntu per Server e Reti.pdf

in output si otterrà l'elenco completo degli Access Point e delle schede impostate in modalità Ad-Hoc presenti nei paraggi. Per ogni dispositivo rinvenuto vengono indicati MAC Address, ESSID, protocolli compatibili, modalità impostata, sistema di cifratura e altro an-cora. Nell'immagine seguente (Figura 5.9) si mostra l'output di esempio per un Access Point.

48 Mb/s; 54 Mb/s Quality=35/lO0 Signal level=-79 dBm IE: WPA Version 1

Group Cipher : TKIP Pairwise Ciphers (1) : TKIP Authentication Suites (1) : PSK

Extra: Last beacon: 7424ms ago Cell 09 Address: 00:80:5A:47:0B:01

ESSID:"wireless-net" Protocol:IEEE 802.llbg Mode:Master Frequency:2.462 GHz (Channel 11) Encryption key:on Bit Rates: 1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s

9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s

Quality=99/100 Signal level=-21 dBm IE: WPA Version 1

Group Cipher : TKIP Pairwise Ciphers (1) : TKIP Authentication Suites (1) : PSK

Extra: Last beacon: 44ms ago

ale@pitagora:-$

Figura 5.9 - Con iwlist è possibile avere informazioni dettagliate sugli AP e le schede Ad-Hoc nelle vicinanze.

Il comando iwlist dispone di altri parametri utili. Con channel vengono mostrati tutti i canali e le frequenze disponibili. Eseguendo iwlist ethi channel, per esempio, sarà visualizzato un output simile al seguente:

ethl 11 channels in total; available frequencies : Channel 01 2 412 GHz Channel 02 2 417 GHz Channel 03 2 422 GHz Channel 04 2 427 GHz Channel 05 2 432 GHz Channel 06 2 437 GHz Channel 07 2 442 GHz Channel 08 2 447 GHz

Page 158: Linux Ubuntu per Server e Reti.pdf

Channel 09 : 2.452 GHz Channel 10 : 2.457 GHz Channel 11 : 2.4S2 GHz Current Channel=0

Ulteriori parametri interessanti del comando iwlist sono rate, che mo-stra i bitrate supportati dalla scheda di rete, e keys che, invece, elenca le dimensioni supportate per le chiavi di cifratura e visualizza le chiavi attualmente in uso. In questo secondo caso, per ottenere le informazioni è necessario eseguire iwlist da root, così:

sudo iwlist ethl keys

Gli strumenti di controllo Ora che le fondamenta della rete locale sono state poste, è necessario co-noscere alcuni degli strumenti indispensabili per controllare il corretto fun-zionamento della LAN o WLAN. In questa breve sezione del capitolo, quin-di, Si Scopriranno sintassi e Utilizzo dei comandi ping, traceroute e netstat.

Il comanda ping

Un comando semplice ma estremamente utile per individuare problemi in una rete è ping. Tecnicamente, il comando invia un pacchetto ICMP ECHO_REQUEST a un host e attende un pacchetto di risposta da questo. Se l'host risponde significa che è attivo e funzionante.

Attenzione. Un host inattivo senz'altro non risponderà al ping. Ma ciò accadrà anche se un host attivo è posto sotto un firewall che blocca i pacchetti ICMP ECHO_REQUEST.

Lanciando ping seguito dal nome dell 'host o dal suo indirizzo IP vengono inviati pacchetti ICMP ECHO_REQUEST finché non si preme Ctr l+C sulla tastiera. Per poter inviare un numero limitato di pacchetti si deve usare l'opzione -c: il comando ping -c 5 ìocaihost, dunque, effettuerà 5 ping sull'interfaccia di loopback.

Page 159: Linux Ubuntu per Server e Reti.pdf

Ecco un output d'esempio del comando ping 192.168.1.4:

PING 192.168.1.4 (192.168.1.4) 56(84) bytes of data. 64 bytes from 192.168.1.4: icmp_seq=l ttl=64 time=0.038 ms 64 bytes from 192.168.1.4: icmp_seq=2 ttl=64 time=0.039 ms 64 bytes from 192.168.1.4: icmp_seq=3 ttl=64 time=0.042 ms 64 bytes from 192.168.1.4: icmp_seq=4 ttl=64 time=0.043 ms 64 bytes from 192.168.1.4: icmp_seq=5 ttl=64 time=0.042 ms

192.168.1.4 ping statistics 5 packets transmitted, 5 received, 0% packet loss, time 3999ms rtt min/avg/max/mdev = 0.038/0.040/0.043/0.008 ms

Ogni riga di ping mostra l'IP dell'host, il numero di sequenza ICMP (icmp_seq=) e, quindi, il tempo richiesto dal pacchetto per andare e tornare (time=). In una situazione ideale non sono presenti salti tra un numero di sequenza ICMP e quelli nelle righe adiacenti: la serie deve essere infatti icmp_seq=i, icmp_seq=2, icmp_seq=3 e così via. In caso contrario, si sono persi dei pac-chetti e tale rilevazione può costituire l'inizio di un'analisi più approfondita della rete: in una rete in stato ottimale, infatti, il numero di pacchetti persi dovrebbe essere esiguo. Il tempo richiesto dai pacchetti per viaggiare dovrebbe risultare omoge-neo, con minime differenze non significative. Se i valori indicati si disco-stano vistosamente dalla norma, invece, ciò significa che le prestazioni nel segmento di rete in esame hanno subito un decadimento e si può procedere con ulteriori analisi. Per avere un'idea, pur approssimativa, dello stato complessivo della rete è consigliabile lanciare dei comandi ping scegliendo un host via via sempre più distante. Si inizia controllando con ping locaihost che il protocollo TCP/ IP sia perfettamente funzionante, quindi si effettua un ping sull'indirizzo IP della macchina nella LAN, poi si passa al gateway predefinito e così via.

Traceraute per tracciare i pacchetti

Il comando traceroute mostra il percorso effettuato da un pacchetto per arrivare a destinazione. Una volta installato il programma con sudo apt-get instali traceroute, per lanciare traceroute è sufficiente inserire come argomento l'indirizzo IP o l'hostname di destinazione:

traceroute www.ubuntu.com

Page 160: Linux Ubuntu per Server e Reti.pdf

Nell'immagine seguente (Figura 5.10) è possibile seguire parte della stra-da percorsa per giungere a www.ubuntu.com. Ogni riga di output rappre-senta un hop, cioè un salto effettuato dal pacchetto, che passa di gateway in gateway fino ad arrivare a destinazione.

a l e @ p i t a g o r a : t r a c e r o u t e www.ubuntu.com traceroute to www.ubuntu.com (91.189,94.250), 30 hops max, 40 byte packets 1 192.168.1.1(192.168.1.1) 1.127 ms 1.744 ms 2.410 ms 2 netl28-119.mclink.it (195.110.128.119) 47.644 ms 51,902 ms 54,828 ms 3 net84-253-128-001,mclink.it (84.253,128.1) 57.979 ms 64,892 ms 65.486 ms 4 89-97-241-241.ipl9.fastwebnet.it (89.97.241.241) 67.261 ms 69.688 ms 72.1

22 ms 5 81-208-53-197.ip.fastwebnet.it (81.208.53.197) 75.325 ms 78.233 ms 81.635 ms 6 89.96.200.61 (89.96.200.61) 93.937 ms 57.505 ms 57.311 ms 7 89.96.200.61 (89,96.200.61) 60.251 ms 62.603 ms 65.776 ms 8 ge-6-17.car2.Milanl.Level3.net (213.242.65,133) 68.817 ms 71.470 ms 74.40

4 ms 9 * * ae-4-4.ebr2.Frankfurtl.Level3.net (4.69.133.138) 98.885 ms

10 ae-2.ebrl.Dusseldorfl.Level3.net (4.69.132.137) 105.019 ms 105.657 ms 106 .093 ms 11 ae-l-100.ebr2.Dusseldorfl.Level3.net (4.69.132.130) 107.849 ms 110.615 ms 123.621 ms

12 ae-2.ebrl.Amsterdaml.Level3.net (4.69.133.89) 75.773 ms 76.714 ms 73.740 ms 13 ae-l-100.ebr2.Amsterdaml.Level3.net (4.69.133.86) 88.169 ms 88.888 ms 89. 316 ms 14 ae-2.ebr2.Londonl.Level3.net (4.69.132.133) 94.044 ms 108.965 ms 109.498 ms

Figura 5.10 - L'output di traceroute con i diversi gateway attraversati per giungere a destinazione.

Per ciascun hop, quindi, vengono individuati i tempi di percorrenza mo-strando tre differenti rilevazioni. Nell'esempio, il primo gateway che il pac-chetto incontra nel tragitto è il router ADSL (192.168.1.1), che è il default gateway nella LAN. I tempi di percorrenza sono quindi molto brevi. Negli hop successivi si esce dalla LAN e si entra in Internet, con l'inevitabile allungamento dei tempi che questo comporta. Una volta individuate delle anomalie nel funzionamento di una rete con ping, quindi, è proprio grazie a traceroute che è possibile cercare di in-dividuare i gateway che ostacolano il passaggio dei pacchetti, per poi verificarne la corretta configurazione.

Page 161: Linux Ubuntu per Server e Reti.pdf

Informazioni sulla rete con netstat

In precedenza si è visto come visualizzare le tabelle di routing mediante netstat. In realtà, con questo comando è possibile ottenere un elenco delle connessioni in corso, mostrare statistiche di rete e altro ancora. Il comando netstat -nat mostra una lista contenente le porte TCP in ascolto e quelle in cui la connessione è attiva. Nella configurazione di default di Ubuntu Server non ci sono porte in ascolto, quindi l 'output del programma non produce righe informative. Se si installa il server di stam-pa CUPS, invece, netstat -nat produce la seguente riga di output:

top 0 0 127.0.0.1:631 0.0.0.0:* LISTEN

Nella riga in esame il server CUPS risponde ( L I S T E N ) sulla porta 631 di localhost ( 1 2 7 . 0 . O . I : 6 3 I ) . In caso di connessione attiva, al posto di L I S T E N

sarebbe presente la dicitura ESTABL ISHED.

Per visualizzare anche le porte UDP si aggiunge l'opzione -u: il comando precedente diventa quindi netstat -natu. Eliminando l'opzione -n, inve-ce, al posto degli indirizzi numerici verranno mostrati quelli simbolici. Infine, eseguendo netstat -s vengono mostrate delle statistiche di rete ripartite per protocollo: IP, ICMP, TCP e UDP. Ecco uno stralcio delle stati-stiche riguardanti il protocollo IP:

i p :

99202 total packets received 38 with invalid addresses 0 forwarded 0 incoming packets discarded 96796 incoming packets delivered

Le informazioni fornite dal comando possono risultare utili, per esempio, per controllare la quantità di traffico generato su di una specifica macchi-na della rete.

Page 162: Linux Ubuntu per Server e Reti.pdf

E. Configurazione avanzata della rete

C r e a r e le r e g a l e p e r il firewall, a t t i v a r e l'IP

IVIcisquerading e p r o t e g g e r e i servizi.

Nei capitoli che seguono verranno affrontati argomenti via via più com-plessi e anche l'utilizzo della rete locale diverrà sempre più articolato: ai client si forniranno servizi di fondamentale importanza e anche la rete sarà inevitabilmente più estesa ed esposta. Tutto ciò richiede l'adozione di strumenti di gestione e protezione avanzati.

Il firewall Il firewall è uno strumento di importanza centrale per la messa in sicurezza di una rete: si tratta di un dispositivo hardware o di un applicativo software che controlla il traffico in entrata e in un uscita e che consente di eliminare i pacchetti indesiderati mediante l'applicazione di regole. In Linux il componente che gestisce le funzionalità di firewall si chiama Netfilter ed è incluso nel kernel. L'amministratore di sistema può utilizzare il programma iptabies per controllare direttamente Netfilter, oppure può affidarsi a un'interfaccia di gestione semplificata.

Page 163: Linux Ubuntu per Server e Reti.pdf

Firewall semplice con ufw

Su Ubuntu Server viene installato per default ufw (che sta per uncomplica-ted firewall), un'interfaccia per iptables di facile utilizzo. Nella configura-zione preimpostata ufw non è però abilitato e bisogna dunque attivarlo con il comando seguente:

sudo ufw enable

A questo punto il firewall è attivato e sarà caricato nei successivi riavvii della macchina. Ora non rimane che aggiungere al firewall delle regole opportu-ne: per orientarsi tra le opzioni disponibili in ufw si veda la Tabella 6.1.

Tabella 6.1 - Le opzioni interne del programma ufw. Opzione Signif icato enable Attiva il firewall disable Disattiva il firewall

allow Crea una regola per consentire il traffico di determi-nati pacchetti

deny Crea una regola per fermare il traffico di determinati pacchetti

delete Elimina una regola creata in precedenza Imposta il funzionamento di default del firewall. Con

default default allow si apre in partenza tut to il traffico, con default deny si blocca in partenza tutto il traffico

logging if

Con logging on attiva la creazione dei log, con log-ging off disattiva la creazione dei log

status Mostra lo stato del firewall con le regole attive

La prima operazione da compiere è stabilire se si vuole partire da una con-figurazione di base del firewall in cui tut to è aperto o da una in cui tut to è chiuso: nel primo caso si esegue sudo ufw default aiiow, nel secondo sudo ufw default deny. È prassi comune chiudere inizialmente tutte le porte e poi impostare alcune regole per aprire singoli servizi. Determinata l' impostazione iniziale per il firewall, la costruzione delle re-gole è molto facile grazie ai comandi interni allow e deny di ufw.

Page 164: Linux Ubuntu per Server e Reti.pdf

Ecco un esempio che apre la porta 25, per qualsiasi host di origine e di destinazione:

sudo ufw allow 2 5

Tutto qui! E quindi possibile specificare il protocollo (sudo ufw allow 25/tcp) oppure utilizzare una sintassi più articolata per la creazione della regola:

sudo ufw allow proto tcp from 192.168.1.4 to any port 22

Con questo comando si consente il traffico TCP (proto tcp) sulla porta 22 da 192.168.1.4 a qualsiasi altro indirizzo (to any). Per chiudere il traffico su una porta si segue la medesima sintassi inserendo semplicemente deny al posto di allow. È possibile, inoltre, indicare nelle regole un servizio anzi-ché un numero di porta (per esempio, sudo ufw deny smtp). La corrispon-denza tra porte e servizi è indicata nel file /etc/services. Per cancellare una regola del firewall, quindi, basta inserire il comando interno delete tra ufw e la regola stessa. Se la regola da eliminare è al-low 25, dunque, il comando completo da eseguire per cancellarla sarà il seguente:

sudo ufw delete allow 25

Le regole inserite saranno poi correttamente caricate durante i successivi avvii della macchina. L'ordine con cui si creano le regole è importante: tra due regole, infatti, ha la precedenza quella inserita per prima. Per questa ragione si devono creare inizialmente le regole più specifiche e poi quelle generiche. Per esempio, per consentire il traffico sulla porta 25 bloccando però i soli pacchetti provenienti da 192.168.1.4 si devono creare le due regole in questa precisa sequenza:

sudo ufw deny proto tcp from 192.168.1.4 to any port 25 sudo ufw allow 25

Configurazione diretta di iptables

Il programma ufw risulta inevitabilmente insufficiente quando si devono gestire configurazioni per il firewall di una minima complessità. In questi casi è necessario dialogare direttamente con iptabies.

Page 165: Linux Ubuntu per Server e Reti.pdf

Le regole che è possibile creare con questo software sono organizzate in "catene" e le catene stesse vengono inserite all'interno di opportune tabelle, ognuna delle quali è adibita a uno scopo differente. Ecco quali sono le tabelle messe a disposizione da iptables:

• Tabella filter. È la tabella cui ci si riferisce per default quando si aggiungono regole a una catena di iptables. Si occupa di filtra-re i pacchetti nella rete e presenta tre catene: INPUT, OUTPUT e FORWARD. La catena INPUT riguarda i pacchetti che arrivano al sistema locale, mentre le regole in OUTPUT controllano i pacchetti in partenza dal sistema. La catena FORWARD, infine, instrada pac-chetti giunti dall'esterno verso un'altra rete;

• Tabella nat. Questa tabella gestisce la regole per il NAT (Network Address Translation): si tratta della procedura mediante la quale si riscrive l'indirizzo IP di un pacchetto. Il NAT viene utilizzato sovente per tradurre più indirizzi IP di una rete locale in un unico indirizzo IP valido per Internet (tecnica chiamata IP Masquerading);

• Tabella mangle. Questa tabella permette di alterare gli header dei pacchetti. È generalmente poco usata.

Quando un determinato pacchetto trova corrispondenza con una regola di una catena, viene compiuta un'azione prestabilita (target) sul pacchetto stesso. Le azioni possibili per la fondamentale tabella filter sono elencate nella Tabella 6.2.

Tabella 6.2 - Le azioni della tabella filter. Azione Significato

ACCEPT Il pacchetto verrà accettato. DROP Il pacchetto verrà scartato.

REJECT Il pacchetto verrà scartato e sarà inviato un pacchetto di errore IDCMP

QUEUE Fa gestire il pacchetto a un programma estemo RETURN Fa terminare una catena creata dall'utente

LOG Quando il pacchetto è ricevuto vi è una segnalazione nei log

Page 166: Linux Ubuntu per Server e Reti.pdf

ULOG Come l'azione LOG ma più flessibile REDIRECT Manda il pacchetto a un proxy , . , D n n n Inverte gli IP di origine e di destinazione e trasmette M 1 K K U K

nuovamente il pacchetto

Presentate le tre tabelle e i target per la tabella predefinita, è il momento di entrare nel vivo della configurazione del firewall. Si può iniziare richiedendo informazioni dettagliate a iptables. Con il co-mando iptabies -L, quindi, è possibile ottenere una "fotografia" dello stato attuale del firewall: all'inizio le tre catene (chain) INPUT, FORWARD e OUTPUT sono vuote, come è possibile vedere dall'immagine seguente (Figura 6.1).

Per default vengono mostrate informazioni sulla tabella filter, ma utilizzan-do l'opzione - t è possibile indicare una specifica tabella per l'operazione da compiere in iptables. Per visualizzare il contenuto delle catene nella tabella nat, quindi, si richiamerebbe il programma così:

sudo iptables -t nat -L

Page 167: Linux Ubuntu per Server e Reti.pdf

Nel caso fossero presenti, all ' interno delle catene, delle regole preceden-ti, si può procedere alla cancellazione di queste usando il comando inter-no di iptables -F:

sudo iptables -F

Questo comando può essere seguito dal nome della catena da ripulire. Se non si fornisce alcun parametro a -F verranno cancellate le regole di tutte le catene della tabella predefinita. A questo punto è consigliabile adottare come politica iniziale del firewall il blocco preventivo di qualsiasi pacchetto proveniente dall'esterno, per poi decidere caso per caso le singole eccezioni. Si imposta tale politica di sicurezza con i due comandi che seguono:

sudo iptables -P INPUT DROP sudo iptables -P F0RWARD DROP

Il comando interno -p di iptables permette di stabilire il comportamento di default (policy) per una determinata catena. La prima riga fornita elimi-na tutti i pacchetti in entrata (catena INPUT), mentre la seconda ferma tutt i i pacchetti diretti verso un'altra rete (catena FORWARD). Ora bisogna indicare i pacchetti che si vogl iono autorizzare. Lo si fa co-struendo delle regole per iptables che, a determinate condizioni, richiami-no il target ACCEPT su una catena. Ecco alcuni esempi:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A FORWARD -i ethl -p ANY -j ACCEPT sudo iptables -A INPUT -i lo -j ACCEPT

Il comando interno -A di iptables consente di aggiungere una regola alla fine di una catena. La prima riga aggiunge (-A) alla catena INPUT della tabella filter (predefinita) la regola seguente: se arriva un pacchetto con protocollo TCP (-p tcp) sulla porta di destinazione 22 (--dport 22) bisogna farlo passare ( - j ACCEPT) .

La riga successiva fa passare sulla catena FORWARD tutti i pacchetti provenienti dall'interfaccia e th l (-i ethi), qualunque sia il protocollo (-p ANY). La terza riga, infine, permette l'accesso ai pacchetti sull'interfaccia di loopback(-i io).

Page 168: Linux Ubuntu per Server e Reti.pdf

Grazie a queste tre righe, quindi, vengono accettate connessioni dal-l'esterno al server SSH (porta 22) sul computer, si consente ai pacchetti che arrivano dalla seconda scheda Ethernet (ethl) di raggiungere un'altra rete e si permette il traffico interno nella macchina. Nella Tabella 6.3 vengono presentati i principali parametri di iptables utili per costruire regole per il firewall.

Tabella 6.3 - I parametri di iptables per costruire regole. 1 Parametro Significato Esempio

-s Indica l'origine del pacchetto -s 192.168.0.2

Indica la destinazione del pac-- d 127.0.0.1 -a

chetto - d 127.0.0.1

--sport Specifica la porta di origine del pacchetto

--sport 22

--dport Specifica la porta di destinazio-ne del pacchetto

--dport 25

-i Il pacchetto proviene da una determinata interfaccia

-i ethO

-o Il pacchetto viene inviato a una determinata interfaccia

-o pppO

-P Controlla il t ipo di protocollo (TCP, UDP, ICMP)

-p tcp

--icmp-

type Controlla il t ipo di ICMP - icmp- type echo-request

Il protocollo ICMP (Internet Control Message Protocol) consente alle macchine in rete di inviare e ricevere informazioni di vario genere. All'interno di un messaggio ICMP il "tipo" è un valore numerico che specifica il significato del messaggio trasmesso. L'elenco completo dei valori ammessi per il tipo si può leggere su http://www.ietf.org/rfc/ rfc1700.txt.

Page 169: Linux Ubuntu per Server e Reti.pdf

| valori indicati per questi parametri possono essere preceduti dal carattere !. In tal caso il senso dell'espressione viene invertito: per esempio, -i ! etho stabilisce che, per essere vera la regola, l'interfaccia non deve essere ethO. I parametri -se -d accettano come valori singoli indirizzi IP e indirizzi con net-mask, anche nella notazione CIDR. Per esempio, scrivendo 192.168.3.0/255 .255.255.0 o 192.168.3.0/24 si indicheranno tutti gli indirizzi 192.168.3.X. Per rappresentare una sequenza di porte nei parametri --sport e --dport si usa il carattere :. Inserendo in una riga --sport 21:80, dunque, si pren-deranno in considerazione le porte di origine dalla 21 alla 80.

La notazione CIDR (Classless Inter-Domain Routing) consente di indicare in modo sintetico una maschera di rete. Questa viene espressa mediante un semplice numero, che corrisponde al numero di bit rappresentanti la parte di indirizzo che si riferisce alla rete.

Una regola sicuramente utile in un firewall è quella che consente di accet-tare solo quei pacchetti provenienti dall'esterno che rispondono a delle connessioni avviate dalla rete interna. Ecco il comando completo di ipta-bles per ottenere questo:

sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Questa riga richiede una spiegazione aggiuntiva. Tramite l'opzione -m state e il successivo parametro --state viene controllato lo stato della connessione di un pacchetto, che può essere NEW, ESTABLISHED, RELA-TED e INVALID. Un pacchetto è NEW quando genera una nuova connes-sione, ESTABLISHED quando è inserito in una connessione già in atto e RELATED quando avvia una connessione ma è legato a una connessione esistente. Infine, lo stato di un pacchetto è INVALID quando non è risulta-ta possibile la sua identificazione. Nella riga presentata, quindi, viene verificato per la catena INPUT lo stato di ogni singolo pacchetto e, se questo risulta RELATED o ESTABLISHED, viene fatto passare.

Page 170: Linux Ubuntu per Server e Reti.pdf

IP Masquerading

Mediante iptables si può attivare l'IP Masquerading su una rete. In que-sto modo è possibile condividere una connessione Internet, per la quale viene fornito un unico IP pubblico, con le diverse macchine presenti nella LAN: il server su cui è attivo il firewall sarà fisicamente connesso a Internet e costituirà il tramite fra la rete locale e la rete pubblica. La prima operazione da compiere è abilitare sul server il packet forwar-ding: ciò consentirà di far passare i pacchetti da una rete a un'altra. Per ottenere questo va aperto da root con un editor il file /etc/sysctl.conf, quindi va decommentata la riga:

#net.ipv4.ip_forward=l

che diventa, quindi, così:

net.ipv4.ip_forward=l

# Comment the next two lines to disable Spoof protection (reverse-path filter) # Turn on Source Address Verification in all interfaces to # prevent some spoofing attacks net,ipv4,conf.default.rp_filter=l net.ipv4.conf.all.rp_filter=l

# Uncomment the next line to enable TCP/IP SYN cookies

# This disables TCP Window Scaling (http://lkml.org/lkml/2008/2/5/167)

#net.ipv4.t cp_syncookies=l

# Uncomment the next line to enable packet forwarding for IPv4

# Uncomment the next line to enable packet forwarding for IPv6

#net.ipv6.ip_forward=l

# Additional settings - these settings can improve the network # security of the host and prevent against some network attacks

# including spoofing attacks and man in the middle attacks through # redirection. Some network environments, however, require that these -- VISUALE LINEA -- 3 8 49%

Figura 6.2 - Decommentando una riga in /etc/sysctl.conf si abilita il packet forwarding su IPv4.

Page 171: Linux Ubuntu per Server e Reti.pdf

Per attivare il packet forward ing anche per il p ro toco l lo IPvó la riga da decommenta re è #net.ipv6.ip_forward=i. Poi si aggiorna la conf igurazione dei parametr i del kernel nella sessione corrente con il comando sudo syscti -p. Qu ind i , non r imane che att ivare l'IP Masquerading con la seguente riga di iptables:

sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ethl -j MASQUERADE

La tabel la su cui si interviene è quel la di nat (-t nat) e la catena è PO-STROUTING. Att raverso i parametr i successivi si pe rmet te ai pacchett i provenient i dalla rete 192.168.1.0/24 (-s 192.168.1.0/24) e che vanno inviati all ' interfaccia di rete col legata a Internet, e t h l ( - 0 ethi), d i essere "mascherat i " e di assumere l'IP pubb l i co forn i to dal provider Internet. Dato che nel paragrafo precedente si sono bloccati tu t t i i pacchett i nella catena FORWARD (sudo iptables -P FORWARD DROP), nel caso di att ivazione dell ' IP Masquerading è necessario che i pacchett i "mascherat i " possano raggiungere la rete pubbl ica. Per fare ciò si deve intervenire sulla catena FORWARD, come in questa riga di esempio:

sudo iptables -A FORWARD -s 192.168.1.0/24 -o ethl -j ACCEPT

Qui si consente ai pacchett i provenient i dalla LAN (-s 192.168.1.0/24) di arrivare a Internet mediante l ' interfaccia di rete e t h l ( - 0 ethi). Per accet-tare il t raff ico in risposta ai pacchett i inviati verso Internet si può quind i inserire una regola del genere:

sudo iptables -A FORWARD -d 192.168.1.0/24 -m state RELATED,ESTABLISHED -i ethl -j ACCEPT

Mettere in salvo le regale del firewall

Le regole stabilite richiamando iptables mediante la linea di comando sono valide f ino allo spegnimento della macchina. Al successivo riavvio, infatti, si scoprirà con amarezza che le regole costruite con tante fatica... sono sparite! Per memorizzare su disco la conf igurazione del f irewall si usa il comando iptabies-save contenuto nel pacchet to iptables. Una volta create le rego-le necessarie per iptables, si esegue iptabies-save in questo modo :

sudo sh -c "iptabies-save > /etc/iptables.rules"

Page 172: Linux Ubuntu per Server e Reti.pdf

Il file /etc/iptables.rules adesso conterrà tutte le informazioni sulla confi-gurazione attuale del firewall. Tramite il comando iptabies-restore, quin-di, si potrà leggere questo file e ripristinare le regole di iptables memo-rizzate in esso:

sudo iptabies-restore < /etc/iptables.rules

Il modo più semplice per far leggere il file /etc/iptables.rules direttamente all'avvio della macchina è inserire nel file /etc/rc.local una riga che ese-gua iptabies-restore < /etc/iptabies-restore. Tale riga deve precedere l'istruzione ex i t o al termine del file, come nell'immagine seguente (Fi-gura 6.3).

#!/bin/sh -e #

# rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution

# bits. #

# By default this script does nothing,

iptabies-restore /etc/iptables.rules

exit 0

13,0-1 Tut

Figura 6.3 - Il file /etc/rc.local dopo che è stata inserita la riga per ripristinare la configu-razione del firewall.

Questo metodo, però, richiede che in caso di modifiche alle regole del firewall si esegua iptabies-save prima di spegnere la macchina. Per automatizzare la procedura di salvataggio e ripristino delle regole si può quindi richiamare l'esecuzione di iptabies-save e iptabies-restore in /etc/network/interfaces, facendo lanciare il primo comando prima che

Page 173: Linux Ubuntu per Server e Reti.pdf

venga attivata un'interfaccia di rete (opzione pre-up) e il secondo dopo che questa è stata disattivata (opzione post-down). Una volta che si è individuato in /etc/network/interfaces il blocco di righe relative all'interfaccia di rete utilizzata (per esempio ethO), si inseriscano prima della fine del blocco le due righe seguenti:

pre-up iptables-restore < /etc/iptables.rules post-down iptables-save -c > /etc/iptables.rules

Il file /etc/network/interfaces risultante sarà simile a quello visibile in Fi-gura 6.4.

auto lo mmmm • • • H i

iface lo inet loopback

auto ethO iface ethO inet static

address 192.168.1.4 netmask 255.255.255.0 pre-up iptables-restore < /etc/iptables.rules post-down iptables-save -c > /etc/iptables.rules

"/etc/network/interfaces" 9L, 210C scritti 3, ©-i Tut

Figura 6.4 - Il file /etc/network/interfaces con le righe per ripristinare e del firewall.

salvare le regole

Proteggere i servizi In un sistema ben protetto il firewall dovrebbe costituire solo uno degli strumenti adottati per aumentare la sicurezza di una macchina o di un'in-tera rete. Nei paragrafi seguenti, quindi, verranno presentati file e software aggiun-tivi per il controllo degli accessi ai servizi forniti su un server. Si comincerà

Page 174: Linux Ubuntu per Server e Reti.pdf

facendo la conoscenza dei file di sistema /etc/hosts.allow e /etc/hosts, deny e si procederà poi con l'installazi one e la configurazione di xinetd, un demone che ha lo specifico compito di gestire i servizi.

I file hosts.allow e hosts.deny

Se si prova ad aprire i due file /etc/hosts.allow e /etc/hosts.deny si sco-pre che questi contengono una lunga serie di righe di commento: nella configurazione di default risultano quindi essere file vuoti. Aggiungendo apposite righe in questi file, dunque, è possibile stabilire quali indirizzi possano avere accesso ai servizi forniti dalla macchina.

Jte/hosts.deny: list of hosts that are not See the manual pages hosts__

<ample: ALL: some,host,name, .some.domain ALL EXCEPT in.fingerd: other.host.

allowed to access the syste ccess(S) and hosts options(5

.other,domain

If you're going to protect the portmapper use the name "portmap" for the daemon name. Remember that you can only use the keyword "ALL" and IP addresses (NOT host or domain names) for the portmapper, as well as for rpc.mountd (the NFS mount daemon), See portmap(8) and rpc.mountd(8) for further information.

The PARANOID wildcard matches any host whose name does not match its address.

# You may wish to enable this to ensure any programs that don't # validate looked up host names still leave understandable logs. In past # versions of Debian this has been the default, # ALL: PARANOID

Nel file /etc/hosts.allow si elencano gli host cui è concessa la connessione ai servizi, mentre in /etc/hosts.deny si indicano gli host cui essa è negata. Come nel caso della configurazione delle regole per il firewall, è consiglia-bile adottare una politica iniziale restrittiva e chiudere i servizi a tutti. Nel file /etc/hosts.deny si inserisca quindi questa semplice riga:

A L L : A L L

Page 175: Linux Ubuntu per Server e Reti.pdf

Ogni riga di hosts.deny e hosts.allow è composta da una coppia servizio : client. In questo caso l'accesso a tutti i servizi (primo ALL) viene negato a tutti i client che tentano la connessione (secondo ALL). Nel file /etc/hosts.allow, quindi, si stabilisca quali servizi aprire e a quali speci-fici indirizzi. Ecco alcuni esempi di righe di configurazione per hosts.allow:

ALL : 12 7.0.0.1 sshd : 192.168.1.5 leafnode : 192.168.2.* EXCEPT 192.168.2.15

Nella prima riga si aprono tutti i servizi all'indirizzo IP del loopback device, mentre la seconda riga consente l'accesso al server SSH esclusivamente a 192.168.1.5. L'ultimo esempio è leggermente più complesso: è permessa la connessione al news server leafnode a tutti gli indirizzi 192.168.2.x tran-ne (EXCEPT) che al singolo indirizzo IP 192.168.2.15. Non tutti i servizi, ma solo quelli che utilizzano il wrapper TCP, seguono le direttive presenti nei file hosts.allow e hosts.deny.

Il wrapper TCP è il sistema che controlla gli accessi ai servizi mediante i file hosts.allow e hosts.deny. Il wrapper TCP viene richiamato tramite un super-server come inetd o xinetd oppure facendo caricare all'eseguibile del servizio da gestire l'apposita libreria libwrap.

Per scoprire se un servizio legge effettivamente i due file di configurazione si esegua il comando seguente, inserendo a posto di servizio il percorso completo del servizio da controllare (per esempio /usr/sbin/sshd):

ldd servizio | grep libwrap

Se appare una riga di output come

libwrap.so.0 => /lib/libwrap.so.0 (0xb7f5e000)

significa che il servizio carica la libreria del wrapper TCP (libwrap) e quindi consulta i file hosts.allow e hosts.deny.

Page 176: Linux Ubuntu per Server e Reti.pdf

Se questo metodo di verifica fallisce nonostante l'eseguibile richiami effettivamente il wrapper TCP si può utilizzare un comando alternativo come questo:

s t r i n g s s e r v i z i o | g r e p a c c e s s

Se fra le righe di output compare hosts_access il servizio indicato legge i due file per il controllo degli accessi.

ale@pitagora:-$ strings /usr/sbin/sshd | grep access hosts access

userauth hostbased: access allowed by auth rhosts2 It is recommended that your private key files are NOT accessible by others. ale@pitagora:~$ |

Figura 6.6 - Nell'output di strings servizio / grep access appare hosts.access. Il servizio, quindi, legge hosts.allow e hosts.deny.

Il super-server xinetd

Un demone viene comunemente attivato al boot della macchina e risulta così sempre disponibile, anche quando dalla rete non giungono richieste per il relativo servizio. Installando un super-server, invece, è possibile av-viare un demone solo nel momento in cui il servizio che questo fornisce viene effettivamente contattato.

Il super-server x inetd è una versione potenziata del vecchio inetd. Nella release presente nei repository di Ubuntu Server 8.04 xinetd legge anche il file di configurazione di inetd (/etc/inetd.conf): ciò può risultare utile nel caso si stesse migrando una macchina da una vecchia versione di Linux, in cui è stato installato e configurato inetd, a Ubuntu.

Page 177: Linux Ubuntu per Server e Reti.pdf

Si è scritto nel paragrafo precedente che il wrapperTCP viene richiamato anche da un super-server. Nel caso di xinetd, dato che questo fornisce un proprio sistema di controllo degli accessi ai servizi, quando arriverà dalla rete una richiesta per un determinato servizio verrà prima letto e interpre-tato il contenuto dei file /etc/hosts.allow e /etc/hosts.deny e solo succes-sivamente, se al client verrà concesso l'accesso, si consulterà la configura-zione di xinetd relativa alla gestione delle connessioni. Il pacchetto di xinetd non è presente nella dotazione di default di Ubuntu Server. Va quindi installato con il comando seguente:

s u d o a p t - g e t i n s t a l i x i n e t d

Il file di configurazione principale di xinetd è /etc/xinetd.conf, ma ven-gono letti dal super-server anche i file presenti all'interno della directory /etc/xinetd.d: in questa sono raccolti i file di configurazione di default per i singoli demoni. Tali file vengono creati in automatico durante l'installa-zione dei relativi pacchetti.

§ default: off

# description: An RFC 868 time server. This protocol provides a # site-independent, machine readable date and time, The Time service sends back # to the originating source the time in seconds since midnight on January first # 1900,

# This is the tcp version. service time {

disable yes type = INTERNAL id -• time-stream

socket type = stream protocol = tcp user = root wait = no

} # This is the udp version.

service time {

disable yes type = INTERNAL id time-dgram

•time' 28L, 72/>:: l,l Cim

Figura 6.7-11 contenuto del file time, uno dei file di configurazione di default presenti in /etc/xinetd.d.

Page 178: Linux Ubuntu per Server e Reti.pdf

La struttura di xinetd.conf e dei file in /etc/xinetd.d è la medesima. Per configurare un servizio si crea un blocco di righe che inizia con service <servizio> e in cui le righe contenenti le opzioni di configurazione sono racchiuse tra parentesi graffe. Ecco un esempio:

service ftp { server user socket_type wait

= /usr/sbin/proftpd = root = stream = no

log__on_success = HOST PID log_on_failure = HOST RECORD only_from = 192.168.1.0/24

In questo blocco di righe si definiscono i parametri del servizio FTP (ser-vice ftp). Questo servizio viene fornito dal demone proftpd (server = /usr/sbin/proftpd) e l'utente che esegue il processo è root (user = root). Il socket è di t ipo stream (socket^type = stream), dato che si tratta di un servizio TCP, e la riga wait = no indica che il super-server deve continuare a rispondere a nuove richieste una volta che il servizio è stato avviato. Le due righe successive iog_on_success e iog_on_failure, quindi, impo-stano la gestione dei log per il singolo servizio, mentre la riga finale stabi-lisce che l'accesso al server FTP è concesso solo alle macchine della rete 192.168.1.0/24 (only_from = 192.168.1.0/24). Nella Tabella 6.4 vengono elencate le principali opzioni disponibili per la configurazione di xinetd.

Tabella 6.4 - Le opzioni per conf igurare x inetd.

I Opzione Signif icato

s e r v e r L'eseguibile del demone da avviare quando si richiede il servizio

user L'utente che deve avviare il demone Determina se dopo aver avviato il demone bisogna ac-

wait cettare nuove richieste. Se il servizio è multi-threaded il valore è no, se è single-threaded il valore è yes

Page 179: Linux Ubuntu per Server e Reti.pdf

Opzione Signif icato Il t ipo di socket. Può essere stream, dgram, raw o se-

socket_type qpacket. Si sceglie stream per i servizi TCP e dgram per i servizi UDP

Indica l'indirizzo dell interfaccia di rete su cui va reso bind

disponibile il servizio Il numero massimo di server che possono essere attivi

instances

simultaneamente per un servizio Il primo argomento indica il numero massimo di con-nessioni per secondo. Il secondo argomento indica i cps

secondi da attendere prima di ripristinare il servizio quando si supera il numero massimo di connessioni

Gli ultimi ritocchi per xinetd

In un sistema che fornisce servizi ad altre macchine in rete, un'accorta politica di gestione dei log è fondamentale. Il super-server xinetd, quindi, fornisce due parametri di configurazione da utilizzare allo scopo, iog_on_ success e log_on_failure.

Il primo controlla quali informazioni devono comparire nei log quando la connessione a un servizio avviene con successo. I principali valori che è possibile inserire per questo parametro sono PID (mostra nei log il PID del processo del server), HOST (mostra l'indirizzo dei client connessi al server), USERID (mostra l'user id dell 'utente remoto) e DURATION (mostra la durata dell'accesso). Il parametro iog_on_faiiure, invece, gestisce i log per tutte le connessioni fallite. I valori che può assumere questo parametro sono HOST, USERID e ATTEMPT (rivela nei log che è avvenuto un tentativo fallito di connessio-ne). L'ultimo valore è implicito se si indicano gli altri.

Page 180: Linux Ubuntu per Server e Reti.pdf

Stabilito cosa si vuole inserire nei log, si ha la possibilità di determinare dove questi vadano memorizzati. Tramite l'opzione iog_tyPe si può sce-gliere se sfruttare il classico gestore di log sysiog (valore SYSLOG per l'op-zione) o salvare i log direttamente su un file (valore F I L E ) .

Nel caso si indichi come valore SYSLOG, si deve aggiungere la faciIity di syslog desiderata (authpriv, daemon, mail e così via) e opzionalmente il livello del log (alert, err, info ecc.). Se non viene indicato alcun livello si assume per default il livello info. Ecco un esempio:

log_type = SYSLOG auth_priv

Il valore F I L E del parametro iog_type, invece, richiede l'inserimento ag-giuntivo del percorso completo del file che deve contenere i log. La riga seguente presenta un esempio per il valore F I L E :

log_type = FILE /var/log/xinetd.log

Nella configurazione di xinetd è possibile indicare dei valori predefiniti per alcuni parametri: questi saranno validi per tutti i servizi che non spe-cificano ulteriori valori per i medesimi parametri. Per fare ciò si crea un particolare blocco di configurazione che inizia con la riga defauits:

Il blocco defauits si inserisce nel file /etc/xinetd.conf (Figura 6.8). In que-sto modo, il file di configurazione principale conterrà i soli parametri ge-nerici, mentre la configurazione dei singoli servizi sarà demandata ai file posti nella directory /etc/xinetd.d. Per controllare tramite hosts.allow e hosts.deny gli accessi a un servizio gestito da xinetd si fa riferimento al parametro server, inserito nella con-figurazione del servizio.

defaults

cps instances log_on_success log_on_faiIure log_type

= 30 60

= 50

= HOST P I D = HOST = SYSLOG authpriv

Page 181: Linux Ubuntu per Server e Reti.pdf

# Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/

cps = 30 60 instances = 50 log on success a HOST PID log on failure = HOST log type = SYSLQG authpriv

> includedir /etc/xinetd.d

13,0-1 Tut

Figura 6.8 - Il file /etc/xinetd.conf con la sezione defaults per impostare f parametri predefiniti per i servìzi.

Per esempio, se in un fi le di conf igurazione di x inetd il b locco di righe per il service ftp Contiene server = /usr/sbin/proftpd, in Un ipotet ico file hosts.allow, per riferirsi a tale servizio, si utilizzerà proftpd, come nella lìnea seguente:

proftpd: 192.168.1.*

Nel caso non fosse presente alcun parametro server nella conf igurazione

di un servizio, in hosts.al low e hosts.deny ci si riferirà a questo r ichiaman-

do il nome indicato nella riga service della conf igurazione di x inetd rela-

tiva al servizio stesso.

Page 182: Linux Ubuntu per Server e Reti.pdf

r " " :

7. Amministrare da remoto

Gestire a distanza una macchina con un

semplice terminale, via w e b o mediante

u n a c o m p l e t a i n t e r f a c c i a g r a f i c a .

Spesso non si ha accesso diretto a una macchina server. Magari perché il luogo fisico in cui questa si trova dista decine o centinaia di chilometri o magari perché, semplicemente, non è previsto che si abbia accesso al computer. In questi casi l'amministrazione della macchina avviene da remoto, con gli strumenti che si reputano più idonei: uno spartano ma efficiente termina-le, un'interfaccia web o un vero e proprio client grafico. In questo capitolo, dunque, viene presentata una panoramica delle prin-cipali applicazioni disponibili per gestire comodamente un computer a distanza.

Un terminale remoto Gestire una macchina remota mediante un semplice terminale può risul-tare la soluzione ideale in molte circostanze: l'occupazione di banda è irrisoria, gli strumenti da adottare sono di facile configurazione e le opera-zioni di intervento sulla macchina, una volta presa confidenza con i diversi programmi a linea di comando, possono risultare estremamente rapide.

Page 183: Linux Ubuntu per Server e Reti.pdf

Un semplice strumento per l 'amministrazione remota è il classico Tel-net. Purtroppo, si tratta di un sistema client-server scarsamente sicuro: basti pensare al fat to che le password inserite al login passano in chiaro nella rete. Al posto di Telnet è fortemente consigliabile utilizzare SSH ( s e c u r e sheii),

un protocollo con il relativo software che consente il col legamento a una macchina remota mediante connessione criptata.

ale@pitagora:~$ ssh 192.168.1.4 The authenticity of host '192.168.1.4 (192.168.1.4)1 can't be established. RSA key fingerprint is 46:9f:Od:12:b7:a8:73:89:dd:84:5f:8a:cf:40:db:al. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.4' (RSA) to the list of known hosts. [email protected]'s password:

Linux pitagora 2.6.24-19-generic #1 SMP Fri Jul 11 23:41:49 UTC 2008 i686

The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

To access official Ubuntu documentation, please visit:

http://help.ubuntu.com/ Last login: Sat Aug 2 08:56:31 2008 ale@pitagora: |

Figura 7.7 - SSH consente di amministrare una macchina da remoto in piena sicurezza.

Teoria di funzionamento di §5H

Il sistema di autenticazione del protocollo SSH è basato sull'uso della co-siddetta crittografia asimmetrica. Si tratta di una forma di cifratura che adotta una coppia di chiavi per il proprio funzionamento, una chiave pri-vata e una pubblica: la chiave privata è presente sulla sola macchina locale ed è conosciuta esclusivamente dall 'utente che gestisce questa macchina, mentre la chiave pubblica viene consegnata a tutt i coloro con i quali la macchina deve entrare in contatto e può essere diffusa in piena libertà.

Page 184: Linux Ubuntu per Server e Reti.pdf

In un sistema di crittografia asimmetrica è la corrispondenza tra chiave privata e chiave pubblica a permettere la comunicazione tra sistemi e lo scambio di dati cifrati. In termini generali, infatti, un'informazione criptata con una chiave pub-blica può essere decriptata solo da colui che abbia accesso alla rispetti-va chiave privata, mentre un'informazione criptata con una chiave privata può essere decodificata da tutt i coloro che possiedano la relativa chiave pubblica. Quindi, l 'operazione di cifratura tramite chiave pubblica permette di na-scondere un'informazione e rivelarla a un unico destinatario. Cifrare me-diante chiave privata, invece, consente di inviare un'informazione con un "attestato di paternità": infatti, tutt i coloro che hanno accesso alla chiave pubblica di riferimento possono controllare l'effettiva corrispondenza con la chiave privata impiegata durante la procedura di cifratura. La doppia chiave impiegata della crittografia asimmetrica, dunque, è il meccanismo mediante il quale ci si accerta di essersi effettivamente con-nessi a uno specifico server SSH ed è anche il meccanismo grazie al quale ci si può collegare a un server SSH in modo sicuro, senza l ' impiego di password.

SSH sul lato server

SSH è un sistema client-server. Dunque, bisogna installare un'applicazione server sul PC che va amministrato da remoto (la macchina server) e delle applicazioni client su tutti i PC (le macchine client) dai quali si desidera gestire il computer remoto. Innanzitutto, quindi, è necessario allestire opportunamente il PC da am-ministrare. Su questo computer, nel caso non si fosse scelto di includere OpenSSH server durante l'installazione iniziale del sistema operativo, bi-sogna installare manualmente il pacchetto openssh-server con il comando sudo apt-get instali openssh-server.

L'installazione del pacchetto comporterà la creazione della coppia di chia-vi SSH per la macchina server e l'attivazione del demone sshd al boot della macchina. A questo punto il server SSH è in funzione e non rimane che configurare i PC che avranno la funzione di client.

Page 185: Linux Ubuntu per Server e Reti.pdf

ale@pitagora:-$ sudo apt-get install openssh-server Lettura della lista dei pacchetti in corso... Fatto Generazione dell'albero delle dipendenze in corso Lettura delle informazioni di stato... Fatto Pacchetti suggeriti:

molly-guard rssh I seguenti pacchetti NUOVI (NEW) saranno installati:

openssh-server O aggiornati, 1 installati, 0 da rimuovere e 0 non aggiornati. È necessario prendere QB/254kB di archivi. Iff Dopo questa operazione verranno occupati 676kB di spazio su disco. Preconfigurazione dei pacchett i in corso Selezionato i l pacchetto openssh-server, che non lo era. (Lettura del database ... 172938 file e directory attualmente installati.) Spacchetto openssh-server (da .../openssh-server_l%3a4.7pl-8ubuntul.2_i386.deb) f|

Configuro openssh-server (1:4.7pl-8ubuntul.2) ... Creating SSH2 RSA key; this may take some time . . , Creating SSH2 DSA key; this may take some time . . . * Restarting QpenBSD Secure Shell server sshd [ OK ]

;iale@pitagora:~$ §

Con f i gu raz i one dei clienti SSH

Su una d i s t r i b u z i o n e D e b i a n o d e r i v a t e , c o m e U b u n t u , il c l i e n t O p e n S S H

è c o n t e n u t o ne l p a c c h e t t o o p e n s s h - c l i e n t . Su U b u n t u e U b u n t u Server ,

c o m u n q u e , il p a c c h e t t o v i e n e i n s t a l l a t o p e r d e f a u l t .

Tutte le pr inc ipal i d is t r ibuzioni fo rn iscono pacchet t i p recompi la t i de l

c l ient OpenSSH. Nel caso si vogl ia p rocedere alla compi laz ione del

p rog ramma, la pagina w e b da cui part i re per scaricare i sorgent i è h t t p : / /

www.openssh .com/ . Un va l ido c l ient SSH per W i n d o w s è invece Putty

(h t tp : / /www.ch ia rk .g reenend .o rg .uk /~sg ta tham/pu t t y / ) .

Una v o l t a c h e sul PC d a a m m i n i s t r a r e d a r e m o t o è s t a t o i n s t a l l a t o O p e n S -

SH s e r v e r e su u n a m a c c h i n a è p r e s e n t e O p e n S S H c l i e n t , l a n c i a n d o su

q u e s t ' u l t i m a il c o m a n d o ssh s e g u i t o d a l l ' i n d i r i z z o d e l s e r v e r ve r rà avv i a t a

u n a c o n n e s s i o n e SSH c i f ra ta v e r s o q u e s t ' u l t i m o .

Page 186: Linux Ubuntu per Server e Reti.pdf

E c c o u n e s e m p i o :

ssh 192.168 .1.4

La p r i m a v o l t a c h e si e f f e t t u e r à il c o l l e g a m e n t o a u n s e r v e r SSH sarà m o -

s t r a t o in o u t p u t il " f i n g e r p r i n t " d e l s i s t e m a r e m o t o e v e r r à c h i e s t o a l l ' u t e n -

t e d i c o n f e r m a r e l ' a u t e n t i c i t à d e l server . U n f i n g e r p r i n t n o n è a l t r o c h e

la v e r s i o n e r i d o t t a d i una c h i a v e p u b b l i c a e v i e n e u s a t o p e r r e n d e r e p i ù

p r a t i c a la c o m u n i c a z i o n e d i u n a c h i a v e e p e r la ve r i f i ca d i q u e s t a .

Per c o n o s c e r e il f i n g e r p r i n t d i un s e r v e r SSH si d e v e e s e g u i r e il c o m a n -

d o s s h - k e y g e n -if su l la s tessa m a c c h i n a server . Il c o m a n d o va l a n c i a t o

f a c e n d o l o s e g u i r e d a l p e r c o r s o d e l f i l e sul s e r v e r c h e c o n t i e n e la c h i a v e

p u b b l i c a d e l s i s t e m a . Se v i e n e i m p i e g a t o l ' a l g o r i t m o d i c i f r a t u r a RSA (al

m o m e n t o d e l l a p r i m a c o n n e s s i o n e la sc r i t t a c h e a p p a r e è " R S A k e y f i n g e r -

p r i n t is " ) , il c o m a n d o d a e s e g u i r e è:

s s h - k e y g e n -lf / e t c / s s h / s s h _ h o s t _ r s a _ k e y . p u b

N e l c a s o , i n v e c e , d i u t i l i zzo d e l l ' a l g o r i t m o D S A il c o m a n d o d i v e n t a il se-

g u e n t e :

s s h - k e y g e n -lf / e t c / s s h / s s h _ h o s t _ d s a _ k e y . p u b

Per rag ion i d i sicurezza è sconsig l iabi le esegui re il c o m a n d o ssh-key-

gen -lf d a / e m o t o . Un m e t o d o sicuro per conoscere il f i ngerpr in t d i un

sistema è lanciare il c o m a n d o d i re t t amen te da l server. Un altro m e t o d o

cons ig l ia to è que l lo di farsi comunicare il f i ngerp r in t da l l 'ammin is t ra tore

de l server stesso.

D o p o a v e r c o n t r o l l a t o c h e il f i n g e r p r i n t m o s t r a t o d a ssh c o r r i s p o n d a e f -

f e t t i v a m e n t e a q u e l l o a p p a r t e n e n t e al s e r v e r a u t e n t i c o , si d i g i t a yes su l la

t a s t i e r a e si p r e m e I n v i o .

A q u e s t o p u n t o si i nse r i sce la p a s s w o r d d e l l ' u t e n t e i m p o s t a t a su l la m a c -

c h i n a s e r v e r e si o t t i e n e cos ì l ' a c c e s s o al s i s t e m a .

Page 187: Linux Ubuntu per Server e Reti.pdf

ale@pitagora:-$ ssh-keygen -If /etc/ssh/ssh_host_rsa_key.pub 2048 ee:f4:05:16:19:d5:27:cf: 21:24:b6:al : 92: 31:82:81 /etc/ssh/ssh host_rsa_key.p ub ale@pitagora:--$ |

Figura 7.3 - Con ssh-keygen -If si visualizza il fingerprint corrispondente alla chiave pubblica di un sistema.

Il c o m a n d o ssh, p e r d e f a u l t , e f f e t t u a l ' a c c e s s o al la m a c c h i n a r e m o t a t r a -

m i t e l ' u t e n t e a t t i v o al m o m e n t o su l la m a c c h i n a c l i e n t : se a l anc i a re ssh è

l ' u t e n t e m a r i o , si r i c h i e d e r à l ' a c c e s s o sul la m a c c h i n a s e r v e r c o m e m a r i o .

Per f a re il l o g i n r e m o t o c o n u n u t e n t e d i v e r s o si p r e m e t t a a l l ' i n d i r i z z o d e l

s e r v e r il n o m e d e l l ' u t e n t e s e g u i t o d a c o m e n e l l ' e s e m p i o s e g u e n t e :

ssh t e s t @ 1 9 2 . 1 6 8 . 0 . 7

C o n q u e s t o c o m a n d o si a c c e d e t r a m i t e SSH a l l ' a c c o u n t d e l l ' u t e n t e t e s t

su l la m a c c h i n a c o n i n d i r i z z o 1 9 2 . 1 6 8 . 0 . 7 . U n a v o l t a e n t r a t i n e l s i s t e m a , è

p o s s i b i l e e s e g u i r e i p r o g r a m m i n e c e s s a r i p e r a m m i n i s t r a r e la m a c c h i n a

p r o p r i o c o m e se ci si t r o v a s s e d a v a n t i a l la t a s t i e r a d e l c o m p u t e r r e m o t o .

Accesso senza password

S f r u t t a n d o le g r a n d i p o t e n z i a l i t à d i u n s i s t e m a d i a u t e n t i c a z i o n e a d o p p i a

c h i a v e è p o s s i b i l e a v e r e a c c e s s o a u n a m a c c h i n a r e m o t a senza d o v e r i nse -

rire la p a s s w o r d d i u n u t e n t e .

Per q u e s t o b i s o g n a i n n a n z i t u t t o g e n e r a r e su u n PC c l i e n t u n a c o p p i a d i

ch iav i p e r s o n a l i . In u n t e r m i n a l e , q u i n d i , si d i g i t i il c o m a n d o ssh-keygen.

Page 188: Linux Ubuntu per Server e Reti.pdf

Poi si p r e m a I nv io pe r c o n f e r m a r e il pe rco rso d i de fau l t in cui memor i zza re

la ch iave pr iva ta .

SSH può fare uso degli algoritmi di firma RSA e DSA per la creazione

delle chiavi. Per default ssh~keygen genera una coppia di chiavi RSA.

Per creare chiavi che utilizzino l 'algoritmo DSA, invece, bisogna lanciare

il comando ssh-keygen seguito da -t dsa. L'algoritmo DSA è più rapi-

do nel generare una firma SSH ed è maggiormente portabile rispetto a

RSA. In situazioni normali, però, la scelta tra un algori tmo e l'altro non

comporta vantaggi o svantaggi di rilievo.

Fat to q u e s t o , è poss ib i le inser i re una passphrase per p r o t e g g e r e la ch iave

pr ivata: se si ind ica una passphrase, q u i n d i , sarà necessar io d ig i ta r la nuo -

v a m e n t e al m o m e n t o de l la conness ione al server r e m o t o .

Q u e s t o forn isce un 'u l te r io re barr iera p ro te t t i va nel ma laugu ra to caso in cui

un es t raneo si impadron isse de l l ' accoun t con il qua le si accede al server re-

m o t o . D ig i ta ta la passphrase, b isogna po i inserirla d i nuovo per con fe rma.

Page 189: Linux Ubuntu per Server e Reti.pdf

Se si p r e m e I n v i o a l la r i ch ies ta d e l l a p a s s p h r a s e , i n v e c e , si p o t r à p o i e n t r a -

re ne l l a m a c c h i n a s e r v e r senza d o v e r d i g i t a r e nu l l a o l t r e al c o m a n d o ssh.

A q u e s t o p u n t o b i s o g n a c o p i a r e la c h i a v e p u b b l i c a a p p e n a g e n e r a t a su l

s e r v e r r e m o t o , i n s e r e n d o l a ne l la l ista d e l l e ch iav i c o n o s c i u t e d a l l ' u t e n t e

ne l s e r v e r d i cu i v o g l i a m o a s s u m e r e l ' i d e n t i t à . Per f a r e q u e s t o si u t i l i zza

l ' a p p o s i t o c o m a n d o s s h - c o p y - i d c o n la s in tass i s e g u e n t e :

s s h - c o p y - i d -i - / . s s h / i d _ r s a . p u b u t e n t e S s e r v e r

Il f i l e ~ / . s s h / i d _ r s a . p u b c o n t i e n e la c h i a v e p u b b l i c a d e l l ' u t e n t e c o r r e n t e ;

in c a s o d i u t i l i z zo d e l l ' a l g o r i t m o D S A il f i l e è ~ / . s s h / i d _ d s a . p u b . A l p o s t o

d i u t e n t e ® s e r v e r b i s o g n a inse r i re la m a c c h i n a r e m o t a su l la q u a l e si v u o l e

o t t e n e r e l ' a c c e s s o e il n o m e d e l l ' u t e n t e cu i si d e s i d e r a i nv ia re la c h i a v e

p u b b l i c a ( p e r e s e m p i o , m a r i o @ e r a c l i t o . u f f i c i o . l a n ) .

L a n c i a t o il c o m a n d o , v e r r à r i ch i es ta la p a s s w o r d d e l l ' u t e n t e i n d i c a t o sul

s i s t e m a r e m o t o . E f f e t t u a t a q u e s t ' u l t i m a o p e r a z i o n e , q u i n d i , t r a m i t e il c o -

m a n d o ssh si p o t r à a v e r e a c c e s s o al la m a c c h i n a s e r v e r senza d o v e r inse -

r i re a l c u n a p a s s w o r d .

Rendere il server 5SH più sicura

Una v o l t a c h e si s o n o c o p i a t e su l s e r v e r SSH t u t t e le ch iav i p u b b l i c h e d e i

c l i e n t , è p o s s i b i l e m o d i f i c a r e a l c u n e d e l l e i m p o s t a z i o n i d e l s e r v e r SSH p e r

m i g l i o r a r n e la s i cu rezza .

La p r i m a o p z i o n e su cu i è c o n s i g l i a b i l e i n t e r v e n i r e è q u e l l a c h e c o n s e n t e

l ' a c c e s s o al s i s t e m a r e m o t o t r a m i t e le n o r m a l i p a s s w o r d . Q u e s t a m o d a l i t à

d i a u t e n t i c a z i o n e , i n f a t t i , è i n t r i n s e c a m e n t e m e n o s icu ra d i q u e l l a m e d i a n -

t e c h i a v e p u b b l i c a .

Si a p r a c o n l ' e d i t o r d a r o o t il f i l e / e t c / s s h / s s h d _ c o n f i g :

sudo v i /etc/ssh/sshd_config

Si r i ce rch i ne l f i l e la r i ga s e g u e n t e :

# P a s s w o r d A u t h e n t i c a t i o n yes

e la si m o d i f i c h i in:

P a s s w o r d A u t h e n t i c a t i o n n o

Page 190: Linux Ubuntu per Server e Reti.pdf

Per u n a p o l i t i c a p i ù s t r i n g e n t e s u g l i access i si p u ò p o i e l i m i n a r e la p o s s i -

b i l i t à d i e n t r a r e ne l s i s t e m a c o m e u t e n t e r o o t . Per o t t e n e r e q u e s t o la riga

P e r m i t R o o t L o g i n yes d e v e d i v e n t a r e P e r m i t R o o t L o g i n no.

Le o p z i o n i d i s p o n i b i l i p e r c o n f i g u r a r e al m e g l i o il s e r v e r SSH s o n o m o l t e -

p l i c i : p e r u n e l e n c o e s a u s t i v o d i q u e s t e si c o n s i g l i a d i l e g g e r e la m a n p a g e

d i s s h d _ c 0 n f i g (man sshd_config).

# To enable empty passwords, change to yes {$B| RECOMMENDED) PermitEmptyPasswcrrds no

# Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords |as swordAuthentication no

# Kerberos options #KerberosAuthentication no #KerberosGetAFSToken no #KerberosOrLocalPasswd yes #KerberosTicketCleanup yes

# GSSAPI options #GSSAPIAuthentication no #GSSAPICleanupCredentials yes

XllForwarding yes Xl lDisplayOffset 10

5 I M 74%

Figura 7.5 - Modificando alcune opzioni nel file /etc/ssh/sshd_confìg è possibile aumentare la sicurezza di ssh.

Una v o l t a a p p o r t a t e le m o d i f i c h e d e s i d e r a t e al f i l e / e t c / s s h / s s h d _ c o n f i g ,

p e r a g g i o r n a r e la c o n f i g u r a z i o n e d e l d e m o n e sshd a t t i v o è n e c e s s a r i o lan-

c ia re sul s e r v e r il c o m a n d o sudo / e t c / i n i t . d / s s h reload.

L'usa quotidiana di 55H

Se si è s c e l t o d i u t i l i zzare una p a s s p h r a s e , la c o m o d i t à d i n o n d o v e r inser i re

una p a s s w o r d a o g n i c o n n e s s i o n e r e m o t a è c e r t o l im i t a ta d a l d o v e r d i g i t a r e ,

c o m u n q u e , la p a s s p h r a s e s tab i l i t a p r i m a d e l c o l l e g a m e n t o . È p e r ò p o s s i b i l e

fa re in m o d o c h e la p a s s p h r a s e v e n g a richiesta una sola v o l t a , così d a n o n

d o v e r l a d i g i t a r e n u o v a m e n t e a o g n i success iva sess ione d i ssh.

Page 191: Linux Ubuntu per Server e Reti.pdf

Per o t t e n e r e q u e s t o , p r i m a d i a v v i a r e ssh va l a n c i a t o sul c l i e n t il c o m a n d o

s e g u e n t e :

exec s s h - a g e n t /bin/bash

Poi si e s e g u e ssh-add e si d i g i t a la p a s s p h r a s e n e c e s s a r i a p e r s b l o c c a r e

la c h i a v e . F a t t o q u e s t o , ssh n o n r i c h i e d e r à a l l ' u t e n t e a l c u n a p a s s p h r a s e

f i n c h é n o n si c h i u d e r à la c o n s o l e a t t u a l e sul c l i e n t . A l s u c c e s s i v o l o g i n ,

q u i n d i , si d o v r a n n o e s e g u i r e d i n u o v o i c o m a n d i exec s s h - a g e n t /bin/

b a s h e ssh-add p e r m e m o r i z z a r e la p a s s p h r a s e .

alegpitagora: ~$ exec ssli-agent /bin/bash ale@pitagora:~$ ssh-add Enter passphrase for /home/ale/.ssh/id_rsa: Identity added: /home/ale/,ssh/id_rsa (/home/ale/,ssh/id ale@pitagora:-$ |

rsa)

Nella conf iguraz ione di defau l t d i Ubun tu , alla partenza del server graf ico

v iene avviata anche un' istanza di ssh-agent. Per questa rag ione, se si

utilizza un' inter faccia grafica l 'unico c o m a n d o da esegui re nel te rmina le

per far memor izzare la passphrase è ssh-add.

O l t r e a p o t e r a v v i a r e una s e s s i o n e SSH v e r a e p r o p r i a su d i u n s i s t e m a

r e m o t o , il c o m a n d o ssh p e r m e t t e a n c h e d i l anc i a re c o m a n d i d i r e t t i , c o m e

n e l l ' e s e m p i o s e g u e n t e :

ssh s e r v e r . ufficio . lan ps aux

Page 192: Linux Ubuntu per Server e Reti.pdf

E s e g u e n d o q u e s t a riga si lancia il c o m a n d o p s aux sul s i s tema r e m o t o

server .u f f i c io . lan e l ' o u t p u t r i su l tan te v i e n e m o s t r a t o sul t e r m i n a l e de l l a

m a c c h i n a loca le .

T ram i t e l ' o p z i o n e - x d i ssh, p o i , è poss ib i l e e s e g u i r e a p p l i c a z i o n i g r a f i c h e

p resen t i sul server v i sua l i zzando le su l lo s c h e r m o d i un c l i en t c o m e si t ra t -

tasse d i f i nes t re local i . L a n c i a n d o ssh -X server.ufficio.lan gcalctool,

p e r e s e m p i o , sul PC server .u f f i c io . lan ver rà l anc ia to g c a l c t o o l (la ca lco la t r i -

ce d i G n o m e ) , m e n t r e sul PC c l i en t c o m p a r i r à la f ines t ra d e l p r o g r a m m a .

Per p o t e r s f ru t ta re l ' o p z i o n e - x d i ssh è necessar io che ne l f i le / e t c / s s h /

s s h d _ c o n f i g l ' o p z i o n e xiiForwardìng a b b i a va lo re yes.

In f ine, ne l p a c c h e t t o o p e n s s l - c l i e n t è c o n t e n u t o il p r o g r a m m a scp, che

p e r m e t t e d i c o p i a r e f a c i l m e n t e d e i f i le da una m a c c h i n a a l l 'a l t ra . È poss i -

b i le t ras fe r i re f i le t ra d u e c o m p u t e r r e m o t i o t ra il PC loca le e una m a c c h i -

na r e m o t a . La sintassi d i base d e l c o m a n d o è e l e m e n t a r e :

scp userOhostl :filel user@host2 :file2

Sia l ' i nd i caz i one del l'user sia que l l a del l'host s o n o o p z i o n a l i . Ecco un

e s e m p i o p ra t i co :

scp /tmp/documento. txt mario@server. ufficio. lan : doc

C o n q u e s t o c o m a n d o il f i le / t m p / d o c u m e n t o . t x t p r e s e n t e ne l la m a c c h i n a

loca le v i e n e c o p i a t o a l l ' i n t e r n o de l l a d i r e c t o r y d o c nel la h o m e d e l l ' u t e n t e

m a r i o ( / h o m e / m a r i o / d o c ) sul la m a c c h i n a r e m o t a server .u f f i c io . lan .

Il p r o g r a m m a scp utilizza ssh pe r il t r as fe r imen to de i f i le e l 'au tent icaz ione nei

s istemi remot i . Q u i n d i , se si è scel to d i autent icars i t r am i te passphrase si d o -

vrà inserire ques t ' u l t ima (a m e n o che non si sia avv ia to ssh-agent) al m o m e n t o

de l la conness ione con l 'host , a l t r iment i si d ig i te rà la no rma le password .

Amministrazione più comoda con screen

Q u a n d o ci si c o l l e g a a un server t r a m i t e un t e r m i n a l e r e m o t o si ha a d i s p o -

s iz ione u n ' u n i c a c o n s o l e , a l l ' i n t e r n o de l l a q u a l e b i s o g n a e f f e t t u a r e t u t t e

le o p e r a z i o n i d i a m m i n i s t r a z i o n e che la g e s t i o n e d i un server r i ch iede .

S a r e b b e c o m o d o , in q u e s t i casi, ave re a d i s p o s i z i o n e p i ù t e r m i n a l i fra cui

r ipar t i re c o m o d a m e n t e i d ivers i c o m p i t i da svo lge re .

Page 193: Linux Ubuntu per Server e Reti.pdf

Il c o m p a g n o i d e a l e d i ssh è c e r t a m e n t e s c r e e n . Q u e s t o p r o g r a m m a , i n fa t -

t i , c o n s e n t e d i c r e a r e e g e s t i r e a l l ' i n t e r n o d i u n ' u n i c a s e s s i o n e d i t e r m i n a l e

p i ù " f i n e s t r e " , o g n u n a d e l l e q u a l i p u ò c o n t e n e r e u n a she l l o un p r o g r a m -

m a in e s e c u z i o n e . Si p u ò c o n s i d e r a r e s c r e e n , q u i n d i , c o m e u n a so r t a d i

w i n d o w m a n a g e r p e r la c o n s o l e .

Per i ns ta l l a re il p r o g r a m m a su U b u n t u S e r v e r si l anc ia il c o m a n d o sudo

a p t - g e t instali screen. F a t t o q u e s t o , una v o l t a e f f e t t u a t a t r a m i t e ssh la

c o n n e s s i o n e al s e r v e r si avv ia s c r e e n su q u e s t ' u l t i m o e s e g u e n d o s e m p l i -

c e m e n t e il c o m a n d o screen.

N e l t e r m i n a l e c o m p a r i r à una s c h e r m a t a d i b e n v e n u t o (F igura 7.7). A q u e s t o

p u n t o , p r e m e n d o il t a s t o S p a z i o o I n v i o si t o r n e r à al t e r m i n a l e . In a p p a r e n -

za nu l la è c a m b i a t o ne l la c o n s o l e r e m o t a ; in rea l tà sc reen è o ra in f u n z i o n e e

a t t e n d e s o l o c h e v e n g a n o p r e m u t e le o p p o r t u n e c o m b i n a z i o n i d i tas t i .

Screen version 4.00.03 (FAU) 23-Oct-06

Copyright (c) 1993-2002 Juergen Weigert, Michael Schroeder Copyright (c) 1987 Oliver Laumann

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program (see the file COPYING); if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-13O1 USA.

Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza to [email protected]

Le c o m b i n a z i o n i d i t as t i c o m i n c i a n o t u t t e c o n C t r l + A . Per e s e m p i o , p e r

v i sua l i zza re la p a g i n a d i h e l p c h e e l e n c a le c o m b i n a z i o n i d i s p o n i b i l i si p r e -

m e C t r l + A e p o i ?. Per a p r i r e u n n u o v o t e r m i n a l e " v i r t u a l e " , i n v e c e , si

I [Press Space or Return to end.]

Page 194: Linux Ubuntu per Server e Reti.pdf

p r e m e C t r l + A s e g u i t o d a C. U n a l ista d e l l e p r i n c i p a l i c o m b i n a z i o n i d i t as t i

in s c r e e n è m o s t r a t a ne l la T a b e l l a 7 .1 .

Tabella 7.1 - Le combinazioni di tasti di screen più utilizzate. Tasti Funzione

Ctrl+A+D Apre una nuova console di terminale all'interno dì screen

C t r l + A + 0 . . . 9 Passa al la c o n s o l e n u m e r o 0 . . . 9 a l l ' i n t e r n o d i

s c r e e n

Ctrl+A+D Chiude la console corrente

C t r l + A + C t r l + A Passa a l l ' u l t i m a c o n s o l e u t i l i zza ta p r i m a d i q u e l l a

a t t u a l e

Mostra un elenco delle console aperte in screen. Ctr l+A+" Con i tasti cursore ci si sposta tra le console e con

Invio si passa alla console selezionata

C t r l + A + D F u n z i o n e " d e t a c h " . Per s c o l l e g a r s i d a l l a s e s s i o n e

c o r r e n t e d i s c r e e n

Ctrl+A+? Mostra l'help con l'elenco delle combinazioni di tasti riconosciute

La c o m b i n a z i o n e d i t as t i C t r l + A + D p e r m e t t e d i a b b a n d o n a r e la s e s s i o n e

d i s c r e e n in c o r s o senza c h e le c o n s o l e e i p r o g r a m m i avv i a t i in essa v e n -

g a n o e f f e t t i v a m e n t e ch ius i .

U t i l i z z a n d o q u e s t a c o m b i n a z i o n e d i t as t i è q u i n d i p o s s i b i l e s c o l l e g a r s i m o -

m e n t a n e a m e n t e d a l server , p e r p o i r i c o n n e t t e r s i in s e g u i t o r i p r e n d e n d o la

s e s s i o n e d a l p u n t o in cu i q u e s t a e ra s ta ta i n t e r r o t t a . Per r i p r i s t i n a r e la ses-

s i o n e a b b a n d o n a t a il c o m a n d o d a e s e g u i r e n o n è p i ù il s e m p l i c e screen

m a screen -r.

Amministrazione dal web C e r t o , il t e r m i n a l e è u n o s t r u m e n t o p o t e n t e p e r g e s t i r e u n a m a c c h i n a d a

r e m o t o m a è a n c h e d i u s o c o m p l e s s o . A c c e d e r e a un c o m p l e t o a m b i e n t e

g r a f i c o p e r a m m i n i s t r a r e u n server , i n v e c e , p u ò r i su l t a re u n a sce l t a i n a p -

Page 195: Linux Ubuntu per Server e Reti.pdf

Linux Llbuntu per server e reti

p r o p i n a t a p e r l ' e ccess i va o c c u p a z i o n e d i b a n d a e p e r la r i p e t i t i v i t à d e l l e

o p e r a z i o n i d i m a n u t e n z i o n e d a s v o l g e r e .

U n v a l i d o c o m p r o m e s s o è c o s t i t u i t o d a W e b m i n , u n ' i n t e r f a c c i a w e b c h e

c o n s e n t e d i g e s t i r e u n s i s t e m a in m o d o s e m p l i c e e i m m e d i a t o d i r e t t a m e n -

t e d a u n c o m u n e w e b b r o w s e r .

£ile Modifica Visualizza Cronologia Segnalibri Strumenti guida

' & . ••• b 11 p s ://1 oc a ih osti 10000/

ìJ Webmin íá System '¿i Servers «á Networking

A view Module's Logs fà ^System information:

Refresh Modules #Logout

System hostname Operating system Webmin version Time on system System uptime CPU load averages Real memory

Virtual memory

Local disk space

Q u u e b m i n Pitagora Ubuntu Linux 8.04.1 1.420 Tue Aug 12 11:49:53 2008 3 hours, 31 minutes 0.24 (1 min) 0.26 (5 mins) 0.22 (15 mins) 1.47 GB total. 691.97 MB used

956.9! 4 kB UÍ

64.32 GB total, 33.84 GB used

https://locaihost:10000/rlght.cgi?open=system&open=status localhost:10000 ¿3 @ Ü (N) ^

Figura 7.8 - Amministrare un sistema direttamente dal web? È possibile con il programma Webmin.

Installazione e avvia di webmin

W e b m i n n o n è i n c l u s o ne i r e p o s i t o r y d i U b u n t u . E c c o q u i n d i i p a s s a g g i

n e c e s s a r i p e r i ns ta l l a r l o :

1. si a p r a c o n u n w e b b r o w s e r la p a g i n a h t t p : / / w w w . w e b m i n . c o m /

d o w n l o a d . h t m l e si s e g u a il l ink a l l ' u l t i m a v e r s i o n e d e l p a c c h e t t o

d e b d e l p r o g r a m m a . A l m o m e n t o d e l l a s t esu ra d e l p r e s e n t e v o l u -

m e , il l ink p u n t a a w e b m i n _ 1 . 4 2 0 _ a l l . d e b ;

2. si sca r i ch i il f i l e d a l l a r e te , q u i n d i si a p r a u n a c o n s o l e d i t e r m i n a l e

e si e n t r i c o n il c o m a n d o ed ne l l a d i r e c t o r y in cu i il b r o w s e r sa lva i

d o w n l o a d : se la d i r e c t o r y è D o w n l o a d il c o m a n d o d a sc r i ve re sarà

d u n q u e Cd Download;

Page 196: Linux Ubuntu per Server e Reti.pdf

3. ne l l a c o n s o l e si lanc i ¡1 c o m a n d o sudo g d e b i webrain_l. 420 a l l . d e b e

al la d o m a n d a i n s t a l l a r e il p a c c h e t t o software? [S/N] : si r i s p o n -

d a p r e m e n d o il t a s t o S e I n v i o . Ver rà cos ì i n s t a l l a t o il p a c c h e t t o d i

w e b m i n i n s i e m e a t u t t e le d i p e n d e n z e d a e s s o r i c h i e s t e .

ale@pitagora:-$ cd Download/ ale@pitagora:~/Download$ sudo gdebi webmin 1.420_all.deb Reading package lists: Done Reading state information: Done Reading state information: Done Reading state information: Done

A web-based administration interface for Unix systems. Using Webmin you can configure DNS, Samba, NFS, local/remote filesystems and more using your web browser. After installation, enter the URL https://localhost:10000/ into your browser and login as root with your root password.

Installare il pacchetto software? [s/N]:s Selezionato il pacchetto webmin, che non lo era. (Lettura del database ... 173109 file e directory attualmente installati.) Spacchetto webmin (da webmin_l.420_all.deb) ... Configuro webmin (1,420) ... Webmin instali complete. You can now login to https://Pitagora:10000/ as root with your root password, or as any user who can use sudo to run commands as root.

ale@pitagora:-/Download$ |

Figura 7.9 -Alcuni dei passaggi necessari per installare webmin su un PC.

È d ispon ib i le un reposi tory Deb ian non uff iciale da cui è possib i le instal-

lare il pacche t to d i W e b m i n . Per agg iunge re il reposi tory si inserisce nel

f i le /e tc /apt /sources. l i s t la r iga seguente:

deb http://download.webmin.com/download/repository sarge contrib

Poi si salva il f i le e in un te rmina le si lancia sudo apt-get update per

agg io rnare la lista de i pacchet t i . Il pacche t to w e b m i n con tenu to in que-

sto reposi tory è p i enamen te compat ib i l e con Ubuntu .

La p r o c e d u r a d i i n s t a l l a z i o n e avv ia in a u t o m a t i c o il d e m o n e d i W e b m i n ,

c h e sarà p o i l a n c i a t o a o g n i b o o t d e l l a m a c c h i n a .

Page 197: Linux Ubuntu per Server e Reti.pdf

Per far c o m p a r i r e l ' in ter facc ia d i W e b m i n nel c o m p u t e r stesso in cui è

s ta to insta l la to il p r o g r a m m a , si apra con un b rowser l ' ind i r izzo h t t p s : / / l o -

ca lhost : 10000.

Nel la pag ina che a p p a r e b i sogna e f fe t tua re il l og in i nse rendo il n o m e

d e l l ' u t e n t e ammin i s t r a t o re e la relat iva password . Se nel s is tema è a t t i vo

l ' u ten te r o o t si inserisca q u e s t o , a l t r imen t i si p u ò d ig i t a re il n o m e de l -

l ' u ten te p r inc ipa le (que l lo , c ioè , che p u ò acquis i re i p o t e r i d i roo t t r a m i t e

il c o m a n d o sudo) e la relat iva password .

Dato che gli utenti di webmin non coincidono necessariamente con gli

utenti di sistema, è possibile accedere all'interfaccia di Webmin tramite

root senza che questo utente sia attivo nel sistema. Per questo, basta

indicare la password di root in webmin mediante il comando seguente:

sudo /usr/share/webmin/changepass.pl /etc/webmin root password

Al posto del parametro finale password va inserita la password che si

intende utilizzare per root.

La configurazione iniziale

La schermata d i b e n v e n u t o d i W e b m i n fo rn isce a lcune in fo rmaz ion i sul

s is tema sul q u a l e è s ta to insta l la to: il n o m e de l l ' hos t , il s is tema o p e r a t i v o

ut i l izzato, la m e m o r i a d i s p o n i b i l e e così via. A sinistra nel la pag ina , q u i n d i ,

è p resen te un m e n u c o n t e n e n t e le d ive rse sezioni d i W e b m i n cui è possi -

b i le accede re e a l cune s ingo le voc i pe r richiamare le funz iona l i tà d i base.

Se si utilizza come browser Firefox 3 per visualizzare l'interfaccia di

Webmin, al posto della pagina principale del programma apparirà una

s c h e r m a t a d i Connessione sicura fallita.

Per risolvere il problema si fa clic su Oppure è possibile aggiungere

un'eccezione, p o i su Aggiungi eccezione, q u i n d i sul p u l s a n t e Acquisisci

certificato e i n f i n e su Conferma eccezione di sicurezza.

Page 198: Linux Ubuntu per Server e Reti.pdf

La p r i m a o p e r a z i o n e d a c o m p i e r e è m o d i f i c a r e a l c u n e d e l l e i m p o s t a z i o n i

d i d e f a u l t d e l p r o g r a m m a . N e l m e n u a s in is t ra , q u i n d i , si d e v e f a re c l ic

su l la sc r i t ta W e b m i n e t r a le v o c i c h e a p p a i o n o si s e l e z i o n a W e b m i n C o n -

f i g u r a t i o n . A q u e s t o p u n t o , ne l l a p a r t e p r i n c i p a l e d e l l a p a g i n a w e b c o m -

p a r i r à una se r i e d i i c o n e : o g n u n a d i esse r a p p r e s e n t a u n d i v e r s o e l e m e n t o

d e l l a c o n f i g u r a z i o n e d i W e b m i n su cu i è p o s s i b i l e i n t e r v e n i r e .

Eile Modifica Visualizza Cronologia Segnalibri Strumenti guida

- Ê I"» https://localhost: 10000/

Login: ale Module Config Webmin Backup Configuration Files Change Language and

Webmin Actions Log Webmin Configuration Webmin Servers index Webmin Users

S3 System i i Servers ill Networking

-J Cluster SI others 43 Un-uMKl Moduiï»

A View Module's Logs # System Information 3 Refresh Modules & Logout

Webmin Configuration

â " IP Access Control

m Ports and Addresses

A Logging

• Proxy Servers and Downloads

User interface O

Webmin Modules a

Operating System and Environment

Ö Language

index Page Options #

upgrade Webmin Reassign Modules

m 01 J Ü L J L . &

Anonymous Module Access File Locking 1

Mobile Device Options Blocked Hosts and Users

£ Advanced Options

* Debugging Log File

« = £ 3

SSL Encryption ©

Certificate Authority

localhost:10000 & © U (H)

Si f acc ia c l i c s u l l ' i c o n a L a n g u a g e . A p p a r i r à u n a s c h e r m a t a in c u i è p o s -

s i b i l e s t a b i l i r e il l i n g u a g g i o i m p i e g a t o n e l l ' i n t e r f a c c i a d i W e b m i n . Q u i si

s c e l g a I t a l i a n (IT) c o m e v a l o r e d e l l ' o p z i o n e D i s p l a y in l a n g u a g e e si f acc ia

clic sul pulsante Change Language.

C o m e si p o t r à n o t a r e , o r a la s e z i o n e d e l m e n u d i W e b m i n a t t i v a al m o -

m e n t o ha il n o m e t r a d o t t o in i t a l i a n o , C o n f i g u r a z i o n e W e b m i n , e cos ì

le v a r i e i c o n e ne l la p a g i n a . Per f a re in m o d o c h e t u t t a l ' i n t e r f a c c i a d e l

p r o g r a m m a a p p a i a in i t a l i a n o b a s t a f a re c l ic s u l l ' u l t i m a v o c e d e l m e n u ,

L o g o u t , e d e f f e t t u a r e p o i n u o v a m e n t e il l o g i n in W e b m i n .

D o p o q u e s t o i n t e r v e n t o " e s t e t i c o " , è il m o m e n t o d i l i m i t a r e g l i access i al

p r o g r a m m a d a l l ' e s t e r n o . N e l m e n u si e n t r i in W e b m i n e p o i in C o n f i g u r a -

Page 199: Linux Ubuntu per Server e Reti.pdf

Linux Ubuntu per server e reti

zione di Webmin, quindi si selezioni l'icona Controllo degli accessi IP. La s c h e r m a t a c h e a p p a r e sarà s i m i l e a l l ' i m m a g i n e s e g u e n t e (F igu ra 7 .11 ) .

• f « j n i i p s '/loc«lho5i"i

Controllo degli accessi IP

mfigurato in modo da impedire o consentire I': icrni di host (come foo.bar.com) e reti IP {com

indirizzi sicuri, specialmente se accessibile tramite

¡so ad indirizzi IP predefiniti utilizzando questa pagina. 254.3.0 o 10.254.1.0/255.255.255.128). Dovresti limitare

aso contrario, chiunque scopra la Sua password po

# da qualunque indirizzo IP O solo dagli indirizzi elencati O a tutti tranne agli indirizzi elencati

Completato

•ossone avere accesso

È p o s s i b i l e sia c o n c e d e r e l ' a c c e s s o a un n u m e r o l i m i t a t o d i ind i r i zz i IP sia

p e r m e t t e r e l ' a c c e s s o a t u t t i g l i i nd i r i zz i t r a n n e a l c u n i . L ' o p z i o n e P e r m e t t i

l'accesso a Webmin ha tre valori possibili: da qualunque indirizzo IP, solo dagli indirizzi elencati e a tu t t i tranne agli indirizzi elencati. Per p e r m e t t e r e a u n n u m e r o r i s t r e t t o d i ind i r i zz i d i c o n t r o l l a r e il PC t r a m i t e

l'interfaccia web, quindi, bisogna impostare solo dagli indirizzi elencati c o m e v a l o r e d e l l ' o p z i o n e e, p o i , i n d i c a r e ne l r i q u a d r o s o t t o s t a n t e i va r i in-

d i r i zz i IP. S o n o a m m e s s i a n c h e n o m i d i h o s t e ind i r i zz i d i re t i ( 1 9 2 . 1 6 8 . 1 . 0 ,

p e r e s e m p i o ) .

Per a v e r e a c c e s s o a W e b m i n d a l l a m a c c h i n a l o c a l e , si r i c o r d i d i a g g i u n -

g e r e a n c h e 1 2 7 . 0 . 0 . 1 . T e r m i n a t o l ' i n s e r i m e n t o d e g l i i nd i r i zz i si fa c l i c sul

p u l s a n t e S a l v a p e r c o n f e r m a r e le m o d i f i c h e a l le i m p o s t a z i o n i .

O r a si p u ò v e r i f i c a r e la c o r r e t t a c o n f i g u r a z i o n e d i W e b m i n a c c e d e n d o al la

sua i n t e r f a c c i a d a r e m o t o . Bas ta i nse r i re al p o s t o d i 1 2 7 . 0 . 0 . 1 l ' i n d i r i z z o

d e l PC su cu i è i n s t a l l a t o il p r o g r a m m a : p e r e s e m p i o , se l ' i nd i r i z zo IP d a

r a g g i u n g e r e è 1 9 2 . 1 6 8 . 1 . 4 , l 'URL d a d i g i t a r e ne l w e b b r o w s e r sarà h i

t p s : / / 1 9 2 . 1 6 8 . 1 . 4 : 1 0 0 0 0

Page 200: Linux Ubuntu per Server e Reti.pdf

Come gestire il sistema

A q u e s t o p u n t o è p o s s i b i l e esp lo ra re i n u m e r o s i s s i m i e l e m e n t i d i cu i è

c o m p o s t a l ' i n te r facc ia d i W e b m i n . Ne l la Tabe l la 5.1 è m o s t r a t o un e l e n c o

d i t u t t e le sez ion i d i s p o n i b i l i ne l m e n u d e l p r o g r a m m a .

Tabella 7.2 - Le sezioni del menu di Webmin.

Sezione

W e b m i n

Contenuto

U n - u s e d

M o d u l e s

Page 201: Linux Ubuntu per Server e Reti.pdf

Linux übuntu per server e reti

E c c o a l c u n i e s e m p i d ' u t i l i z z o d i W e b m i n . In u n s e r v e r g e s t i t o a d i s t a n z a

p u ò risultare d i g r a n d e u t i l i t à p o t e r c o n t r o l l a r e il c a r i c o su l la m a c c h i n a d e i

s i n g o l i p r o c e s s i in e s e c u z i o n e . Per f a re q u e s t o , d a l l ' i n t e r f a c c i a w e b si e n t r a

ne l la s e z i o n e S i s t e m a e si fa c l i c su l la v o c e P r o c e s s i in e s e c u z i o n e .

N e l l a s c h e r m a t a c h e a p p a r e v e n g o n o e l e n c a t i t u t t i i p r o c e s s i a t t i v i su l la

m a c c h i n a . La riga in a l t o c h e in iz ia c o n la d i c i t u r a V i s u a l i z z a , q u i n d i , c o n -

s e n t e d i s c e g l i e r e il c r i t e r i o d i o r d i n a m e n t o p e r i p r o c e s s i : f a c e n d o c l ic

su C P U v e r r a n n o v i sua l i zza t i i p r o c e s s i s e c o n d o il c a r i c o sul p r o c e s s o r e ,

m e n t r e s e l e z i o n a n d o M e m o r i a i p r i m i p r o c e s s i e l e n c a t i s a r a n n o q u e l l i c h e

o c c u p a n o p i ù R A M .

Se u n p r o c e s s o o c c u p a t r o p p a C P U o u n q u a n t i t a t i v o e c c e s s i v o d i R A M è

p o s s i b i l e e l i m i n a r l o . Basta f a re c l ic sul n u m e r o d e l p r o c e s s o p o s t o s o t t o

il c a m p o I D P r o c e s s o , q u i n d i ne l l a s c h e r m a t a c h e a p p a r e n o n res ta c h e

premere i pulsanti Termina o Kill.

I Eile Modifica Visualizza Cronologìa Segnalibri Strumenti Guida

I ~ <5> » https://localhost: 10000/

I Login: ale j~1 indice modulo

- l l l c ; -

A View Module's Logs & System Information S Refresh Modules @ Disconnettiti

Completato

Informazioni sul Processo ¡J Sistema

Bootup and Shutdown Cambio Password Comandi pianificati Dischi e rete Filesystem Backup Log File Rotation MIME Type Programs PAM Authentication Pianificazione Cron job Processi in esecuzione Registri di sistema Software Packages System Documentation Users and Groups

S3 Rete -il Hardware a cluster

Others i o Un used Modules Search:

Comando ID Processo Proprietario Dimensione

Livello Nice

Gruppo reale

10 (Predefinito) :J j Cambia j

Processo padre CPU

Utente reale

/sbin/init 6.3% 00:01:58

Invia Segnale HUP ; Termina Kill Sospendi h Riprendi | Controlla Processo | ! File e Connessioni j

P u ò e s s e r e n e c e s s a r i o , a v o l t e , c a m b i a r e d a r e m o t o la p a s s w o r d d i u n

u t e n t e . In W e b m i n t a l e o p e r a z i o n e è m o l t o s e m p l i c e : si e n t r a n e l l a se -

z i o n e S i s t e m a , si fa c l i c su C a m b i o P a s s w o r d e , n e l l a s c h e r m a t a c h e a p -

Page 202: Linux Ubuntu per Server e Reti.pdf

p a r e , si s e l e z i o n a d a l l ' e l e n c o l ' u t e n t e p e r il q u a l e si d e s i d e r a m o d i f i c a r e

la p a s s w o r d .

F a t t o c i ò , si d i g i t a la n u o v a p a s s w o r d n e l l o s p a z i o b i a n c o a d e s t r a d i N u o -

v a p a r o l a d ' o r d i n e e si r e i nse r i s ce la p a s s w o r d n e l l o s p a z i o s o t t o s t a n t e .

I n f i ne , si fa c l i c sul p u l s a n t e C a m b i a .

In u n s i s t e m a r e m o t o p u ò r i su l t a re u t i l e i m p e d i r e c h e al b o o t d e l l a m a c c h i -

na v e n g a a v v i a t o u n d e t e r m i n a t o d e m o n e , m a g a r i p e r c h é q u e s t o m a n i f e -

sta m a l f u n z i o n a m e n t i c h e si v o g l i o n o r i s o l v e r e p r i m a d i l a n c i a r e d i n u o v o

il se rv i z i o a l l ' a v v i o .

In W e b m i n si fa c l i c su l la v o c e B o o t u p a n d S h u t d o w n d e l l a c o n s u e t a

s e z i o n e S i s t e m a , q u i n d i si s e l e z i o n a d a l l a l is ta il se rv i z i o d a d i s a t t i v a r e e

si i n d i c a N o c o m e v a l o r e d e l l ' o p z i o n e S t a r t a t b o o t t i m e ? . Per f i n i r e si fa

clic su Salva.

£iie Modifica Visualizza Cronologia Segnalibri Strumenti Suida

4a 4- - è "Ìr httPs://localhost:10000/

Logìn: ale j""j configurazione del 3 Webmin i i modulo

Sistema Bootup and Shutdown

L£ icf- " . " Avvio e Spegnimento

Comandi pianificati

Filesystem Backup Log File Rotation MIME Type Programs

Pianificazione Cron Job Processi in esecuzione Registri di sistema Software Packages

Users and Groups 3 Server ai Rete S3 Hardware & Cluster

A View Module's Logs =§• System Information 5 Refresh Modules @ Disconnettiti https://iocalhost:10000/init/

I • acpi-support

O dlsa-utils • anacron • apmd •japparmor • apport Û atd • avahi-daemon • bluetoot'n • bootclean Q bootlogd • "bootmisc.sh • brltty • checkfs.sh • checkroot.sh • console screen.; • console-setup • cron • cryptdisks n.crvotdisks-earlv

>r levels oi

ilNrr script to check w BUGS: unless we start »really* late, v ithere to command. Check for daemon presence iThis script stores and restores rr |/etc/init.d/anacron: start anacron ^Advanced Power Management (APM) daemon AppArmor rc file. This rc script inserts the apparmor automatic crash report generation Debian init script for the atd deferred e; Zeroconf daemon for configuring your netw Start bluetooth daemons

Starts or stops the bootlogd log program

¡Used to provide acces Check all filesystems. Check to root file system. iPrepare console Set console font and keymap ;cron is a standard UNIX program

refreshable braille terminals.

localhost:10000 £ © Sì (N) V

Figura 7.13 - Webmin consente di gestire anche i servizi avviati al boot della macchina.

I n f i ne , se si d e s i d e r a a b b a n d o n a r e m o m e n t a n e a m e n t e le i c o n e e i p u l -

san t i d e l l ' i n t e r f a c c i a w e b , W e b m i n m e t t e a d i s p o s i z i o n e d e l l ' u t e n t e una

pratica Console dei comandi. E n t r a n d o ne l l a s e z i o n e O t h e r s d e l m e n u e f a c e n d o c l ic su C o n s o l e d e i

c o m a n d i , i n f a t t i , è p o s s i b i l e d i g i t a r e c o m a n d i c o m e se ci si t r o v a s s e d i

Page 203: Linux Ubuntu per Server e Reti.pdf

f r o n t e a u n a c o n s o l e d i t e r m i n a l e r i d o t t a ai m i n i m i t e r m i n i . Il c o m a n d o c h e

si v u o l e l anc i a re va q u i n d i i n s e r i t o n e l l o s p a z i o b i a n c o v i c i n o al p u l s a n t e

E s e g u i il c o m a n d o . D o p o a v e r p r e m u t o I n v i o , l ' o u t p u t d e l c o m a n d o v e r r à

m o s t r a t o in a l t o ne l l a s c h e r m a t a c o r r e n t e .

La C o n s o l e d e i c o m a n d i f o r n i t a d a W e b m i n , p e r ò , n o n c o n s e n t e d i ese -

g u i r e p r o g r a m m i i n t e r a t t i v i ( c o m e p a s s w d , p e r e s e m p i o ) . Se si ha b i s o g n o

d i u n t e r m i n a l e r e m o t o a t u t t i g l i e f f e t t i , q u i n d i , f a c e n d o c l ic su l la v o c e

L o g i n T e l n e t / S S H ne l l a s tessa s e z i o n e O t h e r s v e r r à avv i a t a u n a s e s s i o n e

T e l n e t o SSH c o n la m a c c h i n a r e m o t a .

Quando il server grafico è remoto In a l c u n e s i t u a z i o n i f a re u s o d i u n t e r m i n a l e r e m o t o o d i u n ' i n t e r f a c c i a w e b

p e r l ' a m m i n i s t r a z i o n e d i u n a m a c c h i n a p u ò n o n r i su l t a re a p p r o p r i a t o p e r i

p r o p r i s c o p i . Q u e l l o c h e s e r v e è u n a m b i e n t e g r a f i c o c o m p l e t o cu i a v e r e

a c c e s s o d a r e m o t o in t u t t a c o m o d i t à .

VNC sta per Virtual Ne twork Comput ing ed è un sistema client-server p e r la c o n d i v i s i o n e d e l d e s k t o p : l ' a p p l i c a z i o n e s e r v e r t r a s m e t t e le i m m a g i -

ni d e l l ' a m b i e n t e g r a f i c o e q u e s t e v e n g o n o r i c e v u t e d a i var i c l i e n t c o l l e g a t i

c h e , d i r i m a n d o , i n v i a n o al s e r v e r i n f o r m a z i o n i su i m o v i m e n t i d e l m o u s e e

sul la p r e s s i o n e d e i t as t i .

In q u e s t o m o d o è p o s s i b i l e g e s t i r e u n s e r v e r d a r e m o t o , a v v a n t a g g i a n d o s i

d e l l a fac i l i t à d ' u s o d e l l e m o d e r n e i n t e r f a c c e g r a f i c h e .

Installazione di TightVIMC sul server

V N C , ne l s u o f u n z i o n a m e n t o d i b a s e , r i c h i e d e m o l t a b a n d a p e r f u n z i o n a -

re al m e g l i o . Il p r o t o c o l l o su cu i è b a s a t o V N C c o n s e n t e p e r ò d i r i d u r r e

l ' o c c u p a z i o n e d i b a n d a e f f e t t u a n d o la c o m p r e s s i o n e e l ' o t t i m i z z a z i o n e d e i

d a t i g ra f i c i d a t r as fe r i r e .

T i g h t V N C è u n a v e r s i o n e p o t e n z i a t a d i V N C c h e p e r m e t t e d i a m m i n i s t r a r e

u n a m a c c h i n a r e m o t a a n c h e d i s p o n e n d o d i c o n n e s s i o n i a bassa v e l o c i t à ,

o l t r e t u t t o c o n u n ' o c c u p a z i o n e d i m e m o r i a i r r i sor ia .

Il p a c c h e t t o s e r v e r d i T i g h t V N C va i n s t a l l a t o su l PC c h e si v u o l e c o n t r o l l a r e

d a r e m o t o : su q u e s t o , p e r e s e g u i r e l ' i n s t a l l a z i o n e , si lanc i il c o m a n d o sudo

a p t - g e t instali t i g h t v n c s e r v e r .

Page 204: Linux Ubuntu per Server e Reti.pdf

O r a si è p r o n t i p e r a v v i a r e il s e r v e r g r a f i c o d a c o n d i v i d e r e . In u n t e r m i n a l e ,

q u i n d i , si e s e g u a il c o m a n d o c h e s e g u e :

v n c s e r v e r : 1

Il c o m a n d o a p p e n a i n s e r i t o l anc ia v n c s e r v e r ( che è in rea l tà u n c o l l e g a -

m e n t o s i m b o l i c o a l l ' e s e g u i b i l e tightvncserver) o c c u p a n d o il d i s p l a y n u -

m e r o 1. N o n i n d i c a n d o a l c u n d i s p l a y v e r r à s c e l t o il p r i m o s c h e r m o c h e

r isu l t i d i s p o n i b i l e .

A q u e s t o p u n t o v i e n e r i c h i e s t o l ' i n s e r i m e n t o d i u n a p r i m a p a s s w o r d d i a l -

m e n o c i n q u e c a r a t t e r i , c h e d o v r à p o i e s s e r e d i g i t a t a su l l e m a c c h i n e c l i e n t

p e r p o t e r s i c o n n e t t e r e al s e r v e r V N C .

D o p o a v e r c o n f e r m a t o la p a s s w o r d , sarà c h i e s t o a l l ' u t e n t e se v u o l e i nse r i re

o m e n o u n a p a s s w o r d s e c o n d a r i a d i t i p o v i e w - o n l y : i c l i e n t c h e i n s e r i r a n n o

t a l e p a r o l a d ' a c c e s s o a v r a n n o la p o s s i b i l i t à d i v i sua l i zza re il c o n t e n u t o d e l -

lo s c h e r m o , m a n o n p o t r a n n o usa re t a s t i e r a e m o u s e sul d i s p l a y r e m o t o .

Inser i ta la p a s s w o r d p r i n c i p a l e e , se lo si d e s i d e r a , q u e l l a s e c o n d a r i a , il

s e r v e r g r a f i c o v e r r à a v v i a t o (F igu ra 7 .14 ) . Le p r o s s i m e v o l t e c h e si l ance rà

v n c s e r v e r n o n sarà r i c h i e s t o l ' i n s e r i m e n t o d i n u o v e p a s s w o r d : v e r r a n n o

c o n s i d e r a t e v a l i d e le p a r o l e d ' a c c e s s o i n d i c a t e d u r a n t e il p r i m o a v v i o d e l

server . Se s u c c e s s i v a m e n t e si v o r r à c a m b i a r e le p a s s w o r d , q u i n d i , si d o v r à

usare il p r o g r a m m a v n c p a s s w d .

ale@pitagora:-$ vncserver :1

You will require a password to access your desktops.

Password: Verify:

Would you like to enter a view-only password (y/n)? n

New 'X' desktop is pitagora:l

Creating default startup script /home/ale/.vnc/xstartup Starting applications specified in /home/ale/.vnc/xstartup Log file is /home/ale/.vnc/pitagora:1.log

ale@pitagora:-$ |

Figura 7.14- Dopo aver lanciato vncserver, si inseriscono le password per la connessio-ne dei client.

Page 205: Linux Ubuntu per Server e Reti.pdf

Il client per TightVIMC

Sui PC d a i q u a l i si v u o l e c o n t r o l l a r e il c o m p u t e r r e m o t o si ins ta l l i il p a c -

c h e t t o x t i g h t v n c v i e w e r :

sudo a p t - g e t i n s t a l i x t i g h t v n c v i e w e r

In ques to paragra fo si p resuppone che anche sui c l ient sia presente una

d is t r ibuz ione Ubuntu o Debian. Per altre d ist ro è possib i le scaricare i pac-

chet t i o i sorgent i d i T i g h t V N C d i re t tamen te dal l ' indi r izzo h t t p : / /www.

t i gh t vnc . com/down load .h tm l . Nel la stessa pagina w e b sono d ispon ib i l i

anche gl i eseguib i l i per W i n d o w s de l cl ient e de l server T igh tVNC.

Per e f f e t t u a r e il c o l l e g a m e n t o al s e r v e r V N C r e m o t o , q u i n d i , la s in tass i d e l

c o m a n d o d a l anc i a re è la s e g u e n t e :

v n c v i e w e r i n d i r i z z o : d i s p l a y

Per e s e m p i o , p e r c o n n e t t e r s i al d i s p l a y 1 d e l l a m a c c h i n a 1 9 2 . 1 6 8 . 1 . 4 si

d e v e e s e g u i r e v n c v i e w e r 192.168.1.4:1. L a n c i a t o il c o m a n d o , v i e n e ri-

c h i e s t a la p a s s w o r d c h e è s ta ta inse r i ta d u r a n t e la c o n f i g u r a z i o n e d e l ser-

ve r : si p u ò d i g i t a r e la p a s s w o r d p r i n c i p a l e o q u e l l a p e r l ' u t i l i zzo v i e w - o n l y

d e l d e s k t o p r e m o t o .

F a t t o q u e s t o , a p p a r i r à u n a f i n e s t r a s i m i l e a q u e l l a v i s i b i l e n e l l ' i m m a g i n e

s e g u e n t e (F igu ra 7 .15 ) . A q u e s t o p u n t o lo s c h e r m o c o n d i v i s o da l l a m a c -

c h i n a r e m o t a sarà a c c e s s i b i l e d a l c l i e n t .

U n a c a r a t t e r i s t i c a d a v v e r o c o m o d a d e l f u n z i o n a m e n t o d i V N C è c h e ,

q u a n d o v i e n e c h i u s o u n c l i e n t , il d i s p l a y c o n d i v i s o e le a p p l i c a z i o n i a v v i a t e

su d i e s s o n o n v e n g o n o e l i m i n a t i , m a risulteranno d i s p o n i b i l i al s u c c e s s i v o

a c c e s s o d i u n c l i e n t .

P r e m e n d o il t a s t o F8 ne l la f i nes t ra c rea ta d a v n c v i e w e r si ha accesso a un ut i -

le m e n u i n t e r n o . Le voc i d i q u e s t o m e n u c o n s e n t o n o d i v isual izzare il d i s p l a y

r e m o t o a p i e n o s c h e r m o (voce Fu l l s c reen ) , d i usc i re d a l c l i en t ( Q u i t v i e w e r )

e d i c o p i a r e il c o n t e n u t o de l l a c l i p b o a r d l oca le ne l la c l i p b o a r d r e m o t a e v i ce -

versa (Clipboard: locai -> remote e Clipboard: remote -> locai).

Page 206: Linux Ubuntu per Server e Reti.pdf

I < 5 Applicazioni Risorse Sistema É

f W t W Mrtrliftti'iilMi-itMIl

file ModtHca Ssualizn Jern le@pitagora:~i fre

t o t a l Mem: 1546340 - /+ buffers/cache: Swap: 979956 ale@pitagora:~$ df F i l e system /dev/sdal

ivarlock

devshm Irm ene r i c / vo l a t i l e /dev/sda3 igvfs-fuse-daemon ale@pitagora:

1282936 263404 623332 923008

0 979956

IK Usati Disponib 4432312 13971616 :

168 773000 0 773168

44 773124 28 773140

39760 733408

i « I [GIMP] I • TightVNC: ale's X des.

Figura 7.15-11 display del server VNC visualizzato all'interno di una finestra del PC client.

C o m e si p u ò n o t a r e , l ' a m b i e n t e g r a f i c o v i s i b i l e è d e c i s a m e n t e s p a r t a n o : il

s e r v e r V N C , i n fa t t i , p e r r i s p a r m i a r e b a n d a avv ia p e r d e f a u l t u n ' i n t e r f a c c i a

g r a f i c a m i n i m a l e , c o m p o s t a d a u n a f i n e s t r a d i t e r m i n a l e e d a u n s e m p l i c e

w i n d o w m a n a g e r . È p e r ò p o s s i b i l e m o d i f i c a r e q u e s t e i m p o s t a z i o n i i n te r -

v e n e n d o su u n f i l e d i c o n f i g u r a z i o n e d e l PC server .

Configurare il server VI\IC

Il f i l e su l l a m a c c h i n a s e r v e r c h e g e s t i s c e l ' a v v i o d e l l ' a m b i e n t e g r a f i c o è

. v n c / x s t a r t u p e d è p o s t o n e l l a d i r e c t o r y h o m e d e l l ' u t e n t e c h e ha l a n c i a -

t o v n c s e r v e r . E c c o le r i g h e d i c u i il f i l e è c o m p o s t o , n e l l a c o n f i g u r a z i o n e

d i d e f a u l t :

# ! / b i n / s h

x r d b $ H O M E / . X r e s o u r c e s

x s e t r o o t -solid g r e y

x - t e r m i n a l - e m u l a t o r - g e o m e t r y 8 0 x 2 4 + 1 0 + 1 0 -ls -title "$VNCDESKTOP

Desktop" Se

x - w i n d o w - m a n a g e r &

C o n q u e s t e r i g h e , q u a n d o il s e r v e r V N C v i e n e l a n c i a t o si s t a b i l i s c e u n

c o l o r e p e r l o s f o n d o d e l l o s c h e r m o ( r iga xsetroot), si a p r e u n a f i n e s t r a d i

t e r m i n a l e ( r iga x - t e r m i n a i - e m u i a t o r ) e i n f i n e si avv ia il w i n d o w m a n a g e r

Page 207: Linux Ubuntu per Server e Reti.pdf

di de fau l t nel s is tema (riga x-window-manager). M o d i f i c a n d o l 'u l t ima r iga,

q u i n d i , è poss ib i le ind icare il p r o p r i o w i n d o w m a n a g e r p re fe r i to .

Il file /usr/bin/x-window-manager indica sui sistemi Debian e derivati il

window manager di default. Questo file non è altro che un col legamento

simbolico a /etc/alternatives/x-window-manager e viene creato quando

si installa un window manager nel sistema. Per modificare il w indow

manager dì default si lancia il comando seguente:

sudo update-alternatives --config x-window-manager

Un va l i do c o m p r o m e s s o tra o c c u p a z i o n e d i b a n d a e prat ic i tà d ' u s o p u ò

essere il w i n d o w m a n a g e r fiuxbox. Lo si instal la sulla macch ina server c o n il

c o m a n d o sudo apt-get instali fiuxbox, po i n o n resta che camb ia re la r iga

f ina le d i . vnc /xs ta r tup in startfluxbox & o mod i f i ca re il w i n d o w m a n a g e r d i

de fau l t m e d i a n t e il c o m a n d o update-aiternatìves.

Page 208: Linux Ubuntu per Server e Reti.pdf

Al t r i w i n d o w m a n a g e r ada t t i pe r un ' ammin i s t r az i one remo ta sono iceWM

( insta l labi le t r a m i t e il p a c c h e t t o i cewm) e windowMaker ( pacche t t o wmaker ) .

En t ramb i f o r n i s c o n o un ' in te r facc ia graf ica s e m p l i c e e d i fac i le ut i l izzo. Per

avviare ques t i d u e w i n d o w m a n a g e r q u a n d o si lancia il server V N C , g l i

esegu ib i l i che b i sogna r ich iamare ne l l ' u l t ima r iga d i . vnc /xs ta r tup sono ,

r i spe t t i vamen te , icewm e wmaker.

Cannessiane cifrata al server VIMC

Nel no rma le uti l izzo di V N C le un iche in formaz ion i che v e n g o n o ci f rate sono

le password scambia te nel le comun icaz ion i iniziali t ra c l ient e server. Il resto

de i da t i che t rans i tano tra le macch ine v iagg ia in chiaro. È p e r ò poss ib i le

nascondere le in formaz ion i c reando un tunne l c i f rato t ram i te SSH.

Per q u e s t o è necessar io che sulla macch ina da ammin is t ra re via V N C sia

a t t i vo un server SSH. Sodd is fa t ta ques ta p remessa , il c o m a n d o pe r lancia-

re vncv iewer su un PC c l ien t d i ven ta :

vncviewer -via 192.168.1.4 localhost: 1

d o v e al p o s t o d i 192 .168 .1 .4 si inser isce l ' ind i r izzo IP de l server V N C a cui

ci si d e v e c o n n e t t e r e e al p o s t o d i 1 si m e t t e il n u m e r o de l d i sp lay che si

des ide ra visual izzare in r e m o t o . Esegu i to il c o m a n d o , verrà p r ima r ichiesta

la password o la passphrase pe r conne t te rs i al server SSH, q u i n d i la paro la

d 'accesso pe r accede re al d isp lay r e m o t o de l server V N C .

Utilizzando il parametro -via di vncviewer si inserisce come indirizzo finale

localhost. Questo perché, quando si attiva un tunnel cifrato, il server SSH

a cui ci si connette viene considerato il PC locale. Ciò spiega la sintassi di

vncviewer adottata in questo caso, apparentemente incongrua.

Page 209: Linux Ubuntu per Server e Reti.pdf

8. Condividere in rete

Come condividere una S t a m p a n t e e delle

directory sull'hard disk, anche con mac-

chine Windows

In una re te loca le è poss ib i l e e c o n s i g l i a b i l e c o n d i v i d e r e risorse: che si

t ra t t i d i una s t a m p a n t e o d i una ser ie d i ca r te l l e su d i sco , ave re accesso

da p i ù m a c c h i n e a un s i n g o l o d i s p o s i t i v o p e r m e t t e d i o t t im i zza re i cos t i

d e l l ' h a r d w a r e e d i ges t i re in m o d o o c u l a t o le a t t i v i tà d i re te e g l i spazi f is ici

d i s p o n i b i l i .

I p r o t a g o n i s t i d i q u e s t o c a p i t o l o sa ranno d u n q u e il server d i s t a m p a CUPS,

il f i l e sys tem d i s t r i b u i t o NFS e S a m b a , un s o f t w a r e che c o n s e n t e la c o n d i -

v i s i one d i r isorse c o n m a c c h i n e W i n d o w s .

II server di stampa CUPS ( a c r o n i m o d i C o m m o n Un ix P r in t i ng Sys tem) è n o t o p e r essere or-

ma i il s i s tema d i s t a m p a d i d e f a u l t su l le p i ù d i f f use d i s t r i b u z i o n i L inux. In

rea l tà , CUPS è a n c h e un p o t e n t e p r i n t server che p e r m e t t e d i c o n d i v i d e r e

una o p iù s t a m p a n t i t ra i d i ve rs i c o m p u t e r conness i in re te.

Per instal lare il server d i s tampa su U b u n t u va lanciato il c o m a n d o seguen te :

sudo apt-get instali cupsys

Page 210: Linux Ubuntu per Server e Reti.pdf

L ' i ns ta l l az i one d e l p a c c h e t t o c u p s y s c o m p o r t e r à l ' a t t i v a z i o n e i m m e d i a t a

d e l d e m o n e d i s t a m p a cupsd, c h e r i s p o n d e r à su l la p o r t a 6 3 1 . La c o n f i g u -

r a z i o n e in iz ia le d e l s e r v e r d i s t a m p a a v v i e n e m o d i f i c a n d o il f i l e / e t c / c u p s /

c u p s d . c o n f , m e n t r e l ' a m m i n i s t r a z i o n e d e l s e r v e r s t e s s o si e f f e t t u a c o n t a t -

t a n d o l ' i n t e r f a c c i a w e b d i cupsd, r i c h i a m a b i l e a p p u n t o c o l l e g a n d o s i a l la

p o r t a 6 3 1 d e l l a m a c c h i n a server .

N e l l a c o n f i g u r a z i o n e d i d e f a u l t il se rve r d i s t a m p a a c c e t t a c o n n e s s i o n i

e s c l u s i v a m e n t e da l l a m a c c h i n a loca le . Per m o d i f i c a r e q u e s t a i m p o s t a z i o n e

si ap ra c o n un e d i t o r il f i l e / e t c / c u p s / c u p s d . c o n f . Q u i n d i si c a m b i la r iga :

L i s t e n localhost: 631

i n d i c a n d o l ' i n d i r i z z o d i r e t e su c u i d e v e a s c o l t a r e il s e r v e r d i s t a m p a , p e r

e s e m p i o :

L i s t e n 1 9 2 . 1 6 8 . 1 . 4 : 6 3 1

Per a s c o l t a r e su t u t t e le i n t e r f a c c e d i r e t e la r i ga d a inse r i re è i n v e c e :

L i s t e n *:631

!ogLevel warning • ¡IsystemGroup Ipadmin • # Only listen for connections from the local machine. K •Bisten localhost:631 • ' Listen /var/run/cups/cups.sock • # Disable printer sharing and shared printers.

Browsing Off DefaultAuthType Basic «Location />

# Restrict access to the server... Order allow,deny

</Location> «Location /admin>

# Restrict access to the admin pages.,. Order allow,deny

the admin pages.,.

</Location> «Location /admin/conf>

AuthType Default Require user @SYSTEH # Restrict access to the conf igurat ion files... Order allow,deny

the conf igurat ion files...

</Location> «Policy defaults

4,1 Cim

Figura 8.1 - Nella configurazione di default il demone cupsd ascolta solo sull'interfaccia di rete locale.

Page 211: Linux Ubuntu per Server e Reti.pdf

B isogna p o i i n d i v i d u a r e il s e g u e n t e b l o c c o d i r i ghe :

«Location />

# Restrict access to the server... Order allow,deny

</Location>

e a g g i u n g e r e d e l l e r i g h e Allow che i n d i c h i n o g l i indir izzi d e i c l i en t che

p o s s o n o c o n n e t t e r s i al server d i s t a m p a . Per e s e m p i o , p e r c o n s e n t i r e la

c o n n e s s i o n e al c l i en t 1 9 2 . 1 6 8 . 1 . 5 il p r e c e d e n t e b l o c c o d i r i g h e d e v e d i -

v e n t a r e così:

«Location />

# Restrict access to the server...

Order allow,deny

Allow 192.168.1.5

</Location>

Per p e r m e t t e r e il c o l l e g a m e n t o al se r ve r d i s t a m p a a l l ' i n t e ra re te

1 9 2 . 1 6 8 . 1 . 0 , la r iga Allow d a ut i l i zzare d i v e n t a Allow 192.168.1.*. D o p o

aver e f f e t t u a t o le necessa r i e m o d i f i c h e al f i le c u p s d . c o n f , p e r a g g i o r n a r e

la c o n f i g u r a z i o n e d e l se rve r cupsd è n e c e s s a r i o r iavv ia re il d e m o n e :

sudo /etc/init.d/cupsys restart

A q u e s t o p u n t o si p u ò p a s s a r e a l la c o n f i g u r a z i o n e d e l l a s t a m p a n t e

d i r e t e .

Configurare la stampante di rete

Per a g g i u n g e r e una s t a m p a n t e al p r i n t server bas ta r i ch iamare l ' i n te r facc ia

w e b d i CLIPS. Se si i n t e n d e c o m p i e r e q u e s t a o p e r a z i o n e d i r e t t a m e n t e

da l la m a c c h i n a server, b i s o g n a apr i re in un qua ls ias i w e b b r o w s e r l ' ind i r iz -

zo l o c a l h o s t : 6 3 1 . A l t r i m e n t i , se si v u o l e c o n f i g u r a r e una n u o v a s t a m p a n t e

da una m a c c h i n a c l ien t , si d e v e inser i re in un b r o w s e r l anc ia to sul c l i en t

l ' i nd i r i zzo IP d e l server sulla re te , a g g i u n g e n d o p o i :631 c o m e r i f e r i m e n t o

alla p o r t a da usare.

Per p o t e r a g g i u n g e r e una s t a m p a n t e da r e m o t o è necessar io m o d i f i c a r e il

f i le / e t c / c u p s / c u p s d . c o n f de l l a m a c c h i n a su cu i è a t t i vo il server : ne l la con -

f i g u r a z i o n e d i d e f a u l t , in fa t t i , le o p e r a z i o n i d i a m m i n i s t r a z i o n e d e l server

p o s s o n o essere e f f e t t u a t e s o l o da l s i s tema loca le .

Page 212: Linux Ubuntu per Server e Reti.pdf

N e l f i l e b i s o g n a i n d i v i d u a r e il b l o c c o d i righe s e g u e n t e :

«Location /admin>

# R e s t r i c t a c c e s s to the a d m i n p a g e s . . .

O r d e r a l l o w , d e n y

< / L o c a t i o n >

e a g g i u n g e r e una r iga A l l o w c o n g l i indi r izz i IP d e i c l i en t cu i è p e r m e s s o

a m m i n i s t r a r e il server, c o m e si è v i s t o p e r il b l o c c o «Location / > (F igura 8.2).

A n c h e in q u e s t o caso , e f f e t t u a t a t a l e m o d i f i c a b i s o g n a fa r r i l e g g e r e la c o n f i -

g u r a z i o n e al p r i n t se rver c o n il c o m a n d o sudo /etc/init.d/cupsys restart.

^Location /> # Restrict access to the server... Order allow,deny Allow 192,168,1.*

</Location> «Location /admin>

# Restrict access to the admin pages... Order allow,deny Allow 192.168.1.*

</Location> «Location /admin/conf>

AuthType Default Require user @SYSTEM # Restrict access to the configuration files... Order allow,deny

</Location> «Policy default>

«Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Ge t-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>

Require user 0OWNER ©SYSTEM Order deny,allow

9,1 29%

Figura 8.2 -1 due biacchi <Location /> e <Location /admin> con le modifiche per accet-tare connessioni dall'esterno.

R a g g i u n t o d a l o c a l e o d a r e m o t o l ' i nd i r i z zo d e l p r i n t server , a p p a r i r à ne l la

f i n e s t r a d e l w e b b r o w s e r la s c h e r m a t a d i b e n v e n u t o d i C U P S ( F i g u r a 8.3) .

Per c o n f i g u r a r e u n a n u o v a s t a m p a n t e b i s o g n a f a r e c l ic sul p u l s a n t e A g -

g i u n g i s t a m p a n t e , p o i ne l l a s c h e r m a t a c h e a p p a r e si i nse r i sce n e g l i a p p o -

si t i spaz i il n o m e d e l l a s t a m p a n t e ( N a m e ) , si i n d i c a il l u o g o in cu i il d i s p o s i -

t i v o si t r o v a ( L o c a t i o n ) e si f o r n i s c e u n a d e s c r i z i o n e es tesa d e l l a s t a m p a n t e

s tessa ( D e s c r i p t i o n ) . Per e s e m p i o , p e r c o n f i g u r a r e u n a S a m s u n g M L - 1 6 1 0

Page 213: Linux Ubuntu per Server e Reti.pdf

si p u ò i nse r i r e S a m s u n g c o m e N a m e , U f f i c i o c o m e L o c a t i o n e S t a m p a n t e

laser S a m s u n g M L - 1 6 1 0 c o m e D e s c r i p t i o n .

I £ile Modifica Visualizza Cronologia Segnalibri Strumenti Guida

t v - • t » ! e http://localhost:631/ .::::::• ìec; Common UNiX Pr in t ing System 1.3.7

^ principale IM.TiHU'iAJi.UM.lJI B E B 1 «»MW.ÌH.U UM.MfrHH.HI Mii I.U.H.U»

Benvenuto!

Ques te pag ine web t i consen tono d i c o n t r o l l a r e le s t a m p a n t i e le ope raz ion i di s t a m p a nonché esegu i re operaz ion i di a m m i n i s t r a z i o n e del s i s tema. Fai cl ic su ognuna delle schede in a l to o su i pu l san t i seguen t i per e f f e t t u a r e un 'operaz ione .

4 T O 4EEilMfi3811>

Se ti viene richiesto un nome utente o dell'utente "root".

Informazioni su CUPS

a password, inserisci il nome utente e la password di accesso o il nome utente e la password

CU PS fo rn i sce un s o t t o s l s t e m a di s t a m p a po r tab i l e per i s i s t em i ope ra t i v i basat i su UNIX . Sv i luppato e ges t i to da A p p l e I n c . per p r o m u o v e r e una so luz ione di s t a m p a s tandard . CUPS è il s i s t ema di s t a m p a s t a n d a r d u t i l i zza to su MacOS® X e sul la maggior pa r t e delle d i s t r i buz ion i Linux®.

CUPS ut i l izza l ' I n t e r n e t P r i n t i n g P r o t o c o l ( " I P P " ) c o m e base per la gest ione delle operaz ion i di s t a m p a e delle code e agg iunge la nav igaz ione delle s t a m p a n t i di r e t e e opz ion i di s t a m p a basa te su PostScr ipt Pr in ter Descr ip t ion ("PPD") per s u p p o r t a r e t u t t e le necess i tà di s t a m p a .

H r i u o r H i c t a m n a o a c c i c t o n 7 a I Completato © 3 (N> 3 j

Figura 8.3 - La schermata di benvenuto del server CUPS. Da questa pagina è possibile aggiungere una stampante.

D o p o a v e r f a t t o c l ic su C o n t i n u a , si d e v e s p e c i f i c a r e il t i p o d i d i s p o s i t i v o

u t i l i zza to s e l e z i o n a n d o una d e l l e v o c i d i s p o n i b i l i p e r l ' o p z i o n e D i s p o s i t i v o .

Per e s e m p i o , se la s t a m p a n t e S a m s u n g M L - 1 6 1 0 è c o l l e g a t a al la p o r t a USB

de l l a m a c c h i n a se rve r si s e l e z i o n e r à , ne l m e n u re la t i vo a l l ' o p z i o n e D i s p o s i t i -

v o , la v o c e S a m s u n g M L - 1 6 1 0 U S B # 1 e si fa rà c l ic sul p u l s a n t e C o n t i n u a .

Poi si s c e g l i e il d r i v e r p e r la s t a m p a n t e (il s i s t e m a s e l e z i o n e r à a u t o m a t i c a -

m e n t e q u e l l o p i ù a p p r o p r i a t o t r a q u e l l i d i s p o n i b i l i ) e si fa c l i c su A g g i u n g i

stampante.

Per avere a d isposiz ione i pr incipal i dr iver per s tampant i su Ubuntu

Server si consigl ia di installare i seguent i pacchet t i med ian te sudo apt-

get instali: cupsys-dr iver -gutenpr in t , f ooma t i c -db -gu tenp r i n t , f ooma-

t ic -db-hp i js e f oomat i c -db -eng ine .

Page 214: Linux Ubuntu per Server e Reti.pdf

A q u e s t o p u n t o la c o n f i g u r a z i o n e d e l d i s p o s i t i v o è t e r m i n a t a e p e r a g g i o r -

nare le p r e f e r e n z e d e l p r i n t server ver rà r i ch ies to d i inser i re il n o m e d e l -

l ' u t e n t e p r i n c i p a l e e la re lat iva p a s s w o r d . Ne l la s c h e r m a t a successiva sarà

p o i poss ib i l e i m p o s t a r e a lcun i p a r a m e t r i d i s t a m p a : p e r lasciare i va lo r i d i

default si faccia clic su Imposta opzioni stampante.

La stampante dal lato client

A g g i u n g e r e una s t a m p a n t e d i re te su un c l i en t è u n ' o p e r a z i o n e che si p u ò

e f f e t t u a r e t r a m i t e g l i s t r u m e n t i f o rn i t i d a l l ' a m b i e n t e g ra f i co p r e s e n t e sul la

m a c c h i n a o p p u r e m e d i a n t e l ' i n te r facc ia w e b d e l se rve r CUPS ins ta l la to sul

c l i en t s tesso.

Per ut i l izzare q u e s t a s e c o n d a in te r facc ia si p u n t a il w e b b r o w s e r a l l ' i nd i r i z -

zo l o c a l h o s t : 6 3 1 , q u i n d i ne l la s c h e r m a t a d i b e n v e n u t o d e l server CUPS sul

c l i en t si fa cl ic su A g g i u n g i s t a m p a n t e . Poi si i nse r i scono le i n f o r m a z i o n i

d i base sul la s t a m p a n t e d i re te , c o m e n e l l ' e s e m p i o v is ib i le n e l l ' i m m a g i n e

s e g u e n t e (F igura 8.4).

Modifica Visualizza Cronologia Segnalibri Strumenti Guida

| ' «è Sj1ttp://localhost:631/admin?OP=add-printer

^Agg iung i s t a m p a n t e l É M f f i B A m m i n i s t r a z i o n e ffigSii s r a E l i s s a

Add New Printer

Name: LANPnnter (May contain any printable characters except "/". "#" , and space)

Location: Rete

(Human-readable location such as "Lab Ï " ) Description: Stampante d i rete|

(Human-readable description such as "HP Laserjet with Duplexer")

Common UNIX Printing System, CUPS, e il logo CUPS s< Software Products, Tutt i i diritt i sono riservati.

o marchi registrati da Easy S o f t w a r e P roduc ts . CUPS è un copyright 1997-2006 dì Easy

Figura 8.4 - Valori di esempio di Name, Location e Description per una stampante di rete.

Fat to q u e s t o , ne l la s c h e r m a t a success iva si sceg l i e I n t e r n e t P r i n t i n g Pro -

tocol (ipp) come Disposit ivo.

Page 215: Linux Ubuntu per Server e Reti.pdf

Si fa cl ic su C o n t i n u a e si ind ica c o m e URI de l d i spos i t i vo una r iga così c o m p o s t a :

ìpp://<IPserver>/ipp/printers/<nome>

A l p o s t o d i <ipserver> si inserisce l ' ind i r izzo IP de l la macch ina server cui

è connessa f i s i camen te la s t a m p a n t e m e n t r e al p o s t o d i <nome> si d ig i ta il

n o m e de l la s t a m p a n t e r emo ta . Per e s e m p i o , se l ' ind i r izzo è 192 .168 .1 .4 e

la s t a m p a n t e si ch iama M L - 1 6 1 0 la r iga da inser i re sarà ques ta :

ipp://192.168.1.4/ipp/printers/ML-1610

Per conoscere il nome della stampante remota basta entrare nella pagi-

na di benvenuto di CUPS sulla macchina server (localhost:631) e, nella

schermata che appare, fare clic sul pulsante Stampant i in alto. Apparirà

un elenco di tutte le stampanti attive nel sistema.

D o p o aver i nd i ca to TURI de l la s t a m p a n t e d i re te si sceg l ie G e n e r i c c o m e

M a r c a e si fa cl ic su C o n t i n u a , q u i n d i si ind ica il M o d e l l o de l la s t a m p a n t e

Generic PostScript Printer (en). A d e s s o n o n r imane che fare cl ic su A g g i u n g i s t a m p a n t e e inser ire sul

c l ien t il n o m e d e l l ' u t e n t e p r i nc ipa le e la relat iva password . Nel la scherma-

ta successiva, in f ine, basta fare cl ic su I m p o s t a o p z i o n i s t a m p a n t e .

Per configurare una macchina client è anche possibile indicare in un file

l'indirizzo del print server da utilizzare. Si crei il file /etc/cups/cl ient.conf

e si inserisca la linea seguente (192.168.1.4 va sostituito con l 'effettivo

indirizzo del server di stampa):

ServerName 192.168.1.4

La stampante predefinita sul server diventerà così la stampante prede-

finita sul client.

Page 216: Linux Ubuntu per Server e Reti.pdf

Linux Ubuntu per se rve r e ret i

Modifica Visualizza Cronologia Segnalibri Strumenti Guida

' è Ir? | 6 http://localhost.631/admin

'Aggiungi stampante A m m i n i s t r a z i o n e » «iì ' -i

Modello/Driver per LANPrinter

j j

umentaz ione/Aiuto

Modello: Generic PCL 6/PCL XL Printer Foomatic/ljadith (eni Generic PCL 6/PCL XL Printer Foomatic/lj5groy (en) Generic PCL 6/PCL XL Printer Foomatic/ljet4 (en) Generic PCL 6/PCL XL Printer Foomatic/ljet4d (en) Generic PCL 6/PCL XL Printer Foomatic/pxlmono (recommended) (en) Generic PDF file generator (en) _ Generic PostScript Printer (en> Generic PostScript Printer Foomatic/Postscript (recommended) (en) Generic text-only printer (en) Generic ZjStream Printer Foornatie/too2zjs (recommended) (en)

O fornisci un file PPD: Sfoglia

Se il c l ien t uti l izza c o m e s is tema o p e r a t i v o una ve rs ione d i M i c roso f t W i n -

d o w s , pe r p o t e r s t ampa re t r a m i t e il p r i n t server CUPS è necessar io ag-

g i u n g e r e una s t a m p a n t e , ind icare che si v u o l e fare uso d i una s t a m p a n t e

d i re te e q u i n d i fo rn i re al s is tema il s e g u e n t e URI (di n u o v o , <iPserver> è

l ' ind i r izzo IP de l p r in t server e <nome> è il n o m e de l la s tampan te ) :

http ://<IPserver>: 63l/printers/<nome>

Inf ine, si sceg l ie da l l ' e l enco un quals iasi d r i ve r d i s t a m p a PostScr ipt : i n o m i

de i d r i ve r PostScr ip t h a n n o tu t t i c o m e paro la f ina le PS.

Filesystem di rete IXIF5 NFS è un f i le sys tem d i rete d u t t i l e e s e m p l i c e da con f igu ra re . Instal lare

un server NFS su una macch ina è p r o b a b i l m e n t e il m o d o m i g l i o r e pe r

c o n d i v i d e r e f i le e d i rec to ry tra p iù c o m p u t e r Linux: si pens i alla poss ib i l i tà

di ammin is t ra re le d i rec to ry / h o m e d i p iù PC su d i un un ico server o d i

avere accesso a un arch iv io m u l t i m e d i a l e cen t ra le da una m o l t i t u d i n e d i

macch ine , senza un inut i le sp reco d i spaz io sui d isch i .

Page 217: Linux Ubuntu per Server e Reti.pdf

Configurazione di IVF5 sul server

Per i ns ta l l a re il s e r v e r N F S su l la m a c c h i n a c h e d e v e " e s p o r t a r e " le d i -

r e c t o r y si l anc ia il c o m a n d o s e g u e n t e :

sudo a p t - g e t instali n f s - k e r n e l - s e r v e r

La c o n f i g u r a z i o n e d e l s e r v e r a v v i e n e p e r m e z z o d i un u n i c o f i l e d i c o n -

f i g u r a z i o n e , / e t c / e x p o r t s . Per a g g i u n g e r e u n a d i r e c t o r y d a e s p o r t a r e si

i nse r i sce una r i ga ne l f i l e , c o m e in q u e s t o e s e m p i o :

/ u s r / l o c a l / s h a r e / v i d e o p i t a g o r a ( r w , a s y n c )

A l l ' i n i z i o d e l l a r i ga v i e n e s p e c i f i c a t o il f i l e s y s t e m c h e si i n t e n d e c o n d i v i d e -

re, / u s r / l o c a l / s h a r e / v i d e o . Per d e f a u l t t u t t e le s o t t o d i r e c t o r y a p a r t i r e d a l

f i l e s y s t e m v e r r a n n o e s p o r t a t e . D o p o u n o s p a z i o v u o t o , q u i n d i , si i n d i c a n o

i c l i e n t c h e a v r a n n o a c c e s s o al f i l e s y s t e m (qu i pitagora), c o n le r e l a t i v e

o p z i o n i d i c o n d i v i s i o n e p o s t e t r a p a r e n t e s i t o n d e (rw, async).

N e l l a r i ga d i e s e m p i o v i e n e e s p o r t a t a la d i r e c t o r y / u s r / l o c a l / s h a r e / v i d e o e

si c o n s e n t e a l la m a c c h i n a p i t a g o r a d i a c c e d e r e a essa in l e t t u r a e sc r i t t u ra

(rw) e in m o d o a s i n c r o n o (async).

N e l l a T a b e l l a 8 .1 s o n o e l e n c a t e le p r i n c i p a l i o p z i o n i d i c o n d i v i s i o n e r i ch ia -

m a b i l i in / e t c / e x p o r t s .

Tabella 8.1 - Le opzioni di condivisione in /e tc /expor ts .

Opzione Signif icato rw Il f i l e s y s t e m è e s p o r t a t o in l e t t u r a e s c r i t t u r a

ro Il f i l e s y s t e m è e s p o r t a t o in so la l e t t u r a . È il c o m p o r t a -

m e n t o d i d e f a u l t

sync Le s c r i t t u r e su l f i l e s y s t e m a v v e n g o n o in m o d o s i n c r o n o .

D e f a u l t

async

Le sc r i t t u re sul f i l e s y s t e m a v v e n g o n o in m o d o a s i n c r o n o .

Più v e l o c e de l l a m o d a l i t à s i nc rona m a m e n o s icura (in

caso d i c rash a l cun i d a t i p o s s o n o essere pe rs i o co r ro t t i )

r o o t _ s q u a s h

Gl i access i t r a m i t e l ' u t e n t e 0 ( roo t ) e il g r u p p o r e l a t i v o

v e n g o n o t r a d o t t i in access i t r a m i t e a c c o u n t e g r u p p o

a n o n i m o . D e f a u l t

• : LifeSi . *: f

Page 218: Linux Ubuntu per Server e Reti.pdf

Opzione Signif icato Gl i accessi t r a m i t e l ' u t e n t e e g r u p p o 0 v e n g o n o t r a t t a t i

no_root_squash c o m e ta l i . A t t e n z i o n e ! In q u e s t o m o d o l ' u t e n t e r o o t sul

c l i en t p o t r à ave re accesso ai f i le d i r o o t sul server

anonuid=x, I n d i c a n o e s p l i c i t a m e n t e l'UlD e il G I D d e l l ' a c c o u n t a n o -

anongid=x n i m o P e r d e f a u l t q u e s t i ha U I D e G I D 6 5 5 3 4

I m p e d i s c e l ' accesso a una s o t t o d i r e c t o r y c o n t e n u t a ne l noaccess

f i l e sys tem e s p o r t a t o

Ecco q u i n d i a l t re r i g h e d i e s e m p i o :

/home *.home.lan(rw,no_root_squash)

/media/musica piatone(rw,async) pitagora(ro)

/var/cache/apt/archives *(rw)

Nel la p r i m a si e s p o r t a / h o m e a t u t t e le m a c c h i n e de l l a re te home.ian, c o n

p e r m e s s i in scr i t tu ra e la poss ib i l i t à d i a c c e d e r e ai f i le c o n l ' u t e n t e roo t .

La s e c o n d a r iga c o n d i v i d e la d i r e c t o r y / m e d i a / m u s i c a m a c o n o p z i o n i d i f -

f e ren t i a s e c o n d a d e l c l i en t che si c o n n e t t e al server NFS: piatone o t t i e n e

i p e r m e s s i in scr i t tu ra e l ' a t t i vaz ione de l l a m o d a l i t à as inc rona , m e n t r e il

c l i en t pitagora si d e v e a c c o n t e n t a r e d e i sol i p e r m e s s i in le t tu ra .

L 'u l t ima r iga e s p o r t a a t u t t e le m a c c h i n e (*) la d i r e c t o r y c o n t e n e n t e i pac -

che t t i d e b scar icat i da l la re te , / v a r / c a c h e / a p t / a r c h i v e s , f o r n e n d o i p e r m e s -

si in scr i t tu ra ai c l i en t che si c o l l e g a n o .

D o p o o g n i m o d i f i c a al f i le / e t c / e x p o r t s , p e r a g g i o r n a r e la c o n f i g u r a z i o n e

d e l server NFS è necessar io e s e g u i r e il c o m a n d o sudo exportfs -a.

NFS sul client

Per a c c e d e r e d a un c l i en t a un f i l esys tem c o n d i v i s o c o n NFS è necessa r io

c h e sul c l i en t D e b i a n o U b u n t u sia p r e s e n t e il p a c c h e t t o n f s - c o m m o n : in

caso c o n t r a r i o va ins ta l la to c o n sudo apt-get instali nfs-common.

Fa t to q u e s t o , si p u ò m o n t a r e il f i l e sys tem e s p o r t a t o m e d i a n t e il c o n s u e t o

c o m a n d o m o u n t .

Ecco un e s e m p i o :

sudo mount Parmenide :/media/musica /mnt/nfs/musica

Page 219: Linux Ubuntu per Server e Reti.pdf

C o n q u e s t o c o m a n d o si m o n t a in / m n t / n f s / m u s i c a la d i r e c t o r y / m e d i a /

m u s i c a e s p o r t a t a da l l a m a c c h i n a Parmenide. Per e f f e t t u a r e c o r r e t t a m e n t e

il m o u n t la d i r e c t o r y / m n t / n f s / m u s i c a d e v e es i s t e re sul c l i e n t .

Per o t t e n e r e sul c l i e n t i n f o r m a z i o n i re la t i ve ai f i l e s y s t e m c o n d i v i s i d a un d e -

t e r m i n a t a m a c c h i n a si usa il p r o g r a m m a showmount, c o n t e n u t o ne l p a c c h e t t o

n f s - c o m m o n . L a n c i a n d o il c o m a n d o showmount -e indirizzo si avrà in o u -

t p u t u n e l e n c o d e l l e d i r e c t o r y e s p o r t a t e d a l PC indirizzo. U n e s e m p i o d i

u t i l i zzo d e l p r o g r a m m a è v i s ib i l e n e l l ' i m m a g i n e s e g u e n t e (F igu ra 8.6).

ale@pitagora:~$ showmount -e 192.168.1,4 Export list for 192.168.1.4: /home/ale/Video 192.168.1.5 ale@pitagora:-$ |

Figura 8.6 - C o n showmount si ottengono informazioni sui filesystem esportati da una macchina in rete.

O v v i a m e n t e , d o v e r e s e g u i r e il c o m a n d o m o u n t o g n i v o l t a c h e si avv ia u n

c l i e n t p e r a v e r e a c c e s s o a l l e d i r e c t o r y e s p o r t a t e è s c o m o d o . E p e r ò p o s -

s i b i l e i nse r i r e d i r e t t a m e n t e in / e t c / f s t a b d e l l e ri g h e p e r i m p o r t a r e i f i l esy -

s t e m N F S a l l ' a v v i o d e l l a m a c c h i n a .

E c c o u n a riga p e r / e t c / f s t a b c h e c o r r i s p o n d e al c o m a n d o m o u n t d i e s e m -

p i o r i p o r t a t o in p r e c e d e n z a :

Parmenide :/media/musica / m n t / n f s / m u s i c a nfs rw,bg,intr 0 0

A l l ' i n t e r n o d i q u e s t a riga, in p i ù , s o n o s t a t e a g g i u n t e d e l l e o p z i o n i n o n

richiamate ne l p r e c e d e n t e c o m a n d o mount. N e l l a T a b e l l a 8 .2 , q u i n d i , v e n -

ute *

Page 220: Linux Ubuntu per Server e Reti.pdf

g o n o p r e s e n t a t e le p r i nc ipa l i o p z i o n i d i s p o n i b i l i p e r e f f e t t u a r e su un c l i en t

il m o u n t d i un f i l esys tem NFS. Per r i ch iamare ta l i o p z i o n i d i r e t t a m e n t e da

mount le si fa p r e c e d e r e da -o, così:

sudo mount -o rw,bg,intr Parmenide :/media/musica /mnt/nfs/musica

Tabella 8.2 - Le opzioni per montare un fi lesystem NFS Opzione Signif icato

rw Il f i l e sys tem è m o n t a t o in le t tu ra e scr i t tu ra

r o Il f i l e sys tem è m o n t a t o in so la le t tu ra

i n t r

A t t i v a n d o q u e s t a o p z i o n e g l i u t e n t i p o s s o n o f e r m a r e

u n ' o p e r a z i o n e sul f i l e sys tem NFS. Ut i le q u a n d o q u e -

s t ' u l t i m o r isul ta b l o c c a t o

Se il s i s tema n o n r iesce a e f f e t t u a r e il m o u n t d e l f i lesy-

bg s t e m NFS l ' o p e r a z i o n e passa in b a c k g r o u n d e v e n g o -

n o m o n t a t i g l i a l t r i f i l e sys tem

P e r m e t t e d i i nd i ca re la g r a n d e z z a d e l b u f f e r d i l e t tu ra , IT S 1 2ü 6

espressa in b y t e

WSÌ ZG=X P e r m e t t e d i i nd i ca re la g r a n d e z z a d e l b u f f e r d i sc r i t tu -

ra, espressa in b y t e

Condividere con Samba In una rete e t e r o g e n e a , d o v e macch ine W i n d o w s p o s s o n o p e r e s e m p i o en-

t rare in c o n t a t t o e scambiare da t i con server Deb ian , la cond iv i s ione de i da t i

p u ò risultare p rob lema t i ca , d a t e le v is tose d i f fe renze t ra un sistema o p e r a t i v o

e l 'a l tro. Insta l lando Samba su un server Linux tal i p rob lemi . . . d i d i a l o g o pos-

sono spar i re o ridursi d ras t i camente : Samba è, infatt i , u n ' i m p l e m e n t a z i o n e

l ibera de l p r o t o c o l l o d i rete SMB/CIFS ut i l izzato da Mic roso f t W i n d o w s e p u ò

essere usato pe r cond i v i de re f ac i lmen te de l le carte l le present i su un server

Linux con macch ine W i n d o w s (e na tu ra lmen te anche Linux).

Installazione di Samba sul server

Per ins ta l lare S a m b a sul la m a c c h i n a server è su f f i c i en te ins ta l lare t r a m i t e

apt-get il p a c c h e t t o o m o n i m o :

sudo apt-get instali samba

Page 221: Linux Ubuntu per Server e Reti.pdf

Q u i n d i , si c r e a n o g l i u t e n t i S a m b a c h e d e v o n o a v e r e a c c e s s o a l le r i so rse

c o n d i v i s e . Il c o m a n d o d a u s a r e è s m b p a s s w d e va l a n c i a t o c o n la s in tass i

s e g u e n t e :

sudo s m b p a s s w d -a u t e n t e

A l p o s t o d i u t e n t e b i s o g n a i nse r i r e il n o m e d e l l ' u t e n t e d a a g g i u n g e r e a

S a m b a . A t t e n z i o n e : d e v e e s i s t e r e u n u t e n t e c o r r i s p o n d e n t e ne l f i l e d e l l e

p a s s w o r d d i s i s t e m a ( / e t c / p a s s w d ) , a l t r i m e n t i la c r e a z i o n e d e l l ' u t e n t e s a m -

b a fa l l i rà . D o p o a v e r e s e g u i t o il c o m a n d o s m b p a s s w d è n e c e s s a r i o d i g i t a r e

una p a s s w o r d p e r il n u o v o u t e n t e s a m b a e inser i r la p o i u n a s e c o n d a v o l t a

p e r c o n f e r m a .

ale@pitagora:-$ sudo smbpasswd -a ale New SMB password: Retype new SMB password: Added user ale. ale@pitagora:-$ |

Figura 8.7 - Per creare un utente samba si usa il comando smbpassword -a seguito dal nome dell'utente da aggiungere.

Per c a n c e l l a r e u n u t e n t e s a m b a si lanc ia s m b p a s s w d s e g u i t o d a l l ' o p z i o n e

- x , c o m e n e l l ' e s e m p i o c h e s e g u e :

sudo s m b p a s s w d -x ale

C o n l ' o p z i o n e -d d i smbpasswd, i n v e c e , si d i s a t t i v a m o m e n t a n e a m e n t e un

u t e n t e in m o d o t a l e d a i m p e d i r e a q u e s t o d i c o l l e g a r s i al s e r v e r S a m -

b a . Per r i p r i s t i n a r e l ' a u t e n t i c a z i o n e d e l l ' u t e n t e sul server , q u i n d i , si u t i l izza

Page 222: Linux Ubuntu per Server e Reti.pdf

l ' o p z i o n e -e. N e i d u e e s e m p i s e g u e n t i v i e n e p r i m a d i s a t t i v a t o e p o i r ia t t i -

v a t o l ' u t e n t e a n t o n i o :

sudo smbpasswd -d antonio

sudo smbpasswd -e antonio

A q u e s t o p u n t o , è poss ib i l e i n t e r ven i r e sul f i le d i c o n f i g u r a z i o n e d i S a m b a ,

/ e t c / s a m b a / s m b . c o n f . D o p o aver a p e r t o da r o o t il f i le c o n l ' e d i t o r (sudo vi

/etc/samba/smb. conf ) , p e r c o n d i v i d e r e una d i r e c t o r y si p o s s o n o a g g i u n g e -

re al t e r m i n e d e l f i le d e l l e righe s imi l i a q u e s t e :

[documenti]

path = /home/ale/Documenti

valid users = ale , antonio

read only = no

La p r i m a r iga s tab i l i sce il n o m e de l l a r isorsa cond i v i sa , che in q u e s t o caso

è documenti. Tale r isorsa c o r r i s p o n d e alla d i r e c t o r y / h o m e / a l e / D o c u m e n t i

p r e s e n t e ne l la m a c c h i n a su cu i è a t t i v o il se rver S a m b a : la r iga che inizia

c o n path d e t e r m i n a q u e s t a c o r r i s p o n d e n z a .

Ne l la r iga success iva, m e d i a n t e il p a r a m e t r o valid users v e n g o n o e l en -

cat i g l i u t e n t i che p o s s o n o a c c e d e r e alla r isorsa cond i v i sa i n s e r e n d o la

p r o p r i a p a s s w o r d . L 'u l t ima r iga, i n f ine , i nd ica che sul la d i r e c t o r y e s p o r t a t a

è c o n s e n t i t o sia l e g g e r e sia scr ivere.

Sicurezza per le risorse condivise

La g e s t i o n e d e l l e p o l i t i c h e d i s icurezza in S a m b a è un a r g o m e n t o c o m -

p lesso e la sua t r a t t a z i o n e esaust iva a n d r e b b e n e c e s s a r i a m e n t e o l t r e g l i

s c o p i d i q u e s t o v o l u m e e g l i spaz i d i s p o n i b i l i su d i esso. Ecco, d u n q u e ,

a l cune s e m p l i c i i n f o r m a z i o n i d i b a s e s u l l ' a r g o m e n t o .

N e l l e r i g h e d i s m b . c o n f r i p o r t a t e in p r e c e d e n z a si è i n t e r v e n u t i su l l ' u l t ima

sez ione d e l f i le d i c o n f i g u r a z i o n e , d e d i c a t a a l le r isorse c o n d i v i s e . La p r i m a

p a r t e d e l f i le è i nvece o c c u p a t a da l la sez ione [Global], che r a c c o g l i e le

i m p o s t a z i o n i g l o b a l i d e l server S a m b a .

Si and rà d u n q u e a i n te r ven i re su q u e s t a sez ione p e r l im i ta re l 'accesso al

server a l le so le m a c c h i n e c o n n e s s e alla re te loca le .

Page 223: Linux Ubuntu per Server e Reti.pdf

g ===== Global Settings = = = = = = = = = = = =

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of workgroup = WORKGROUP

# server string is the equivalent of the NT Description field server string = %h server (Samba, Ubuntu)

# Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable its WINS Server ; wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both ; wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS, dns proxy = no

20,1 6%

Figura 8.8 - Nella prima parte del file smb.coni sono contenute le impostazioni globali.

N e l l a p a r t e in i z ia le d i s m b . c o n f si c e r c h i la r i ga s e g u e n t e :

i n t e r f a c e s = 127.0.0.0/8 ethO

Q u e s t a r iga va d e c o m m e n t a t a t o g l i e n d o il p r i m o c a r a t t e r e q u i n d i si

d e v e i nse r i r e al p o s t o d i e t h o l ' i n t e r f a c c i a c h e i d e n t i f i c a la r e t e l o c a l e .

P o c o p i ù s o t t o b i s o g n a p o i d e c o m m e n t a r e la r i ga c h e s e g u e :

b i n d interfaces o n l y = true

U n m e t o d o p i ù s t r i n g e n t e p e r l i m i t a r e le c o n n e s s i o n i al s e r v e r S a m b a è

q u e l l o d i i n d i c a r e u n a l ista d i ind i r i zz i cu i è c o n s e n t i t o l ' a c c e s s o . Per f a re

q u e s t o va a g g i u n t a u n ' a p p o s i t a r i ga h o s t s a l l o w a l l ' i n t e r n o d e l l a s e z i o n e

[ G l o b a l ] d i s m b . c o n f :

h o s t s allow = 1 9 2 . 1 6 8 . 1 . , 192.168.2.10

C o n q u e s t a r i ga d i e s e m p i o il p e r m e s s o d i c o l l e g a r s i al s e r v e r è a c c o r d a t o

a l le m a c c h i n e ne l la r e t e 1 9 2 . 1 6 8 . 1 . 0 e a l l ' i n d i r i z z o 1 9 2 . 1 6 8 . 2 . 1 0 .

Page 224: Linux Ubuntu per Server e Reti.pdf

In a l c u n i casi p u ò esse re c o m o d o o n e c e s s a r i o f o r n i r e u n a c c e s s o a l le r isor-

se c o n d i v i s e senza d o v e r r i c h i e d e r e a l c u n a p a s s w o r d . Per q u e s t o b i s o g n a

m o d i f i c a r e la p o l i t i c a d i s icurezza d e l s e r v e r t r a m i t e il p a r a m e t r o security:

p e r d e f a u l t il v a l o r e d i t a l e p a r a m e t r o è user e i n d i c a , a p p u n t o , l ' u t i l i z zo

d i una d i v e r s a p a s s w o r d p e r o g n i u t e n t e cu i è c o n s e n t i t o l ' a c c e s s o a l l e

d i r e c t o r y c o n d i v i s e . A s s e g n a n d o il v a l o r e share al p a r a m e t r o , i n v e c e , sarà

p o s s i b i l e e s p o r t a r e le risorse senza l ' u s o d i u n a p a s s w o r d .

N e l l a s e z i o n e [Global] si c e r c h i d u n q u e la r i ga :

; s e c u r i t y = u s e r

e la si m o d i f i c h i cos i :

s e c u r i t y = share

!####### Authentication #######

I# "security = user" is always a good idea. This will require a Unix account # in this server for every user accessing the server. See # /usr/share/doc/samba-doc/htmldocs/Samba3-H0WT0/ServerType.html

_# in the samba-doc package for details.

Per o t t e n e r e u n a c c e s s o senza p a s s w o r d si d e v e c o n s e n t i r e c h e la c o n n e s -

s i o n e al s e r v e r p o s s a a v v e n i r e m e d i a n t e u n a c c o u n t a n o n i m o (gues t ) .

Page 225: Linux Ubuntu per Server e Reti.pdf

Per default l 'utente guest è nobody, ma questo può essere modif icato

intervenendo sul parametro guest account nella sezione [Global] di

smb.conf. Per esempio, per utilizzare come guest l 'utente ale si inserisca

questa riga:

guest account = ale

N o n r imane q u i n d i che inser ire guest ok = yes ne l le r i ghe d i s m b . c o n f

d e d i c a t e alla risorsa da c o n d i v i d e r e , così da p e r m e t t e r e l 'accesso a essa

senza password .

Ecco un b l o c c o d i righe d i e s e m p i o :

[video] path = /usr/local/share/video guest ok = yes read only = yes

In q u e s t e r ighe v iene assegna to il n o m e video alla r isorsa, si dà accesso

alla d i rec to ry /usr/iocai/share/video e si c o n s e n t e la conness ione senza

password a un u t e n t e a n o n i m o . Inf ine, si ind ica che la risorsa d e v e essere

a sola le t tura.

Termina ta la con f i gu raz ione de l server, è cons ig l i ab i l e ver i f icare che q u e -

sto funz ion i c o r r e t t a m e n t e . In una conso le si instal l i il p a c c h e t t o smbciient

C o n sudo apt-get instali smbclient e SI lanci il c o m a n d o s e g u e n t e , inse-

r e n d o c o m e <indirizzo> l ' ind i r izzo IP de l server Samba e c o m e <utente>

il n o m e d e l l ' u t e n t e che d e v e e f fe t tua re la conness ione :

smbclient -L / / « i n d i r i z z o -U <utente>

Una vo l ta d i g i t a ta la password d e l l ' u t e n t e samba inser i to , in o u t p u t si o t -

ter rà una ser ie d i i n fo rmaz ion i sul le d ive rse risorse cond iv i se da l server

(Figura 8.10).

Se t u t t o c o r r i s p o n d e a q u a n t o v o l u t o e le r isorse ind ica te nel f i le s m b . c o n f

r isu l tano a t t i ve , la con f i gu raz i one de l server è t e rm ina ta e ci si p u ò d e d i -

care ai c l ien t da conne t t e re .

Page 226: Linux Ubuntu per Server e Reti.pdf

ale@pitagora:-$ smbclient -L //192.168.1.4 -U ale SPassword: Domain=[PITAGORA] 0S= [Unix] Server=[Samba 3.0.28a]

Sharename Type Comment

IPC$ IPC IPC Service (pitagora server (Samba, Ubuntu)) documenti Disk print$ Disk Printer Drivers PDF Printer PDF ML-1610 Printer Samsung ML-1610

Domain=[PITAGORA] 0S= [Unix] Server=[Samba 3.0.28a]

Server Comment

Workgroup Master

WORKGROUP PITAGORA ale@pitagora:-$ |

Figura 8.70 - Con smbclient -L si ottengono informazioni sulle risorse condivise da un server Samba.

Un altro c o m a n d o ut i le per veri f icare la conf iguraz ione d i un server

Samba è testparm, con tenu to nel pacche t to s a m b a - c o m m o n . Ques to

c o m a n d o , esegu i to senza alcun paramet ro agg iun t i vo , verif ica la corret-

tezza de l f i le smb.conf . Se l ' ou tpu t non rivela errori , qu ind i , il f i le d i con-

f iguraz ione sarà cor re t tamente car icato dal d e m o n e samba sul server.

Callegarsi al server Samba

Se il c l i e n t è u n a m a c c h i n a L i n u x il m o d o p i ù i m m e d i a t o p e r a c c e d e r e

al s e r v e r S a m b a o a d e l l e c a r t e l l e W i n d o w s c o n d i v i s e è q u e l l o d i u s a r e

s m b c l i e n t .

D o p o a v e r i n s t a l l a t o il p a c c h e t t o o m o n i m o p e r c o l l e g a r s i al s e r v e r si

d e v e e s e g u i r e il p r o g r a m m a in q u e s t o m o d o :

smbclient / / < i n d i r i z z o > / < r i s o r s a > -U <utente>

Page 227: Linux Ubuntu per Server e Reti.pdf

Per e s e m p i o , p e r c o l l e g a r s i al s e r v e r 1 9 2 . 1 6 8 . 1 . 4 c o m e u t e n t e aie a c c e -

d e n d o al la r isorsa d o c u m e n t i si d i g i t a :

s m b c l i e n t / / 1 9 2 . 1 6 8 . 1 . 4 / d o c u m e n t i -U ale

A q u e s t o p u n t o ve r rà c h i e s t o d i i nse r i re la p a s s w o r d p e r l ' u t e n t e . Q u i n d i si

avrà a c c e s s o a una s e m p l i c e i n t e r f a c c i a d i d i a l o g o c o n il server , d e l t u t t o

s i m i l e a q u e l l a d i u n c l i e n t FTP a c a r a t t e r i .

I p r i n c i p a l i c o m a n d i i n t e r n i d e l l ' i n t e r f a c c i a s o n o i c a n o n i c i ed ( p e r c a m b i a r e

d i r e c t o r y ) , dir ( pe r m o s t r a r e il c o n t e n u t o d e l l a d i r e c t o r y c o r r e n t e ) , get ( p e r

sca r i ca re u n f i l e d a l se rve r ) e put ( p e r c a r i c a r e u n f i l e ne l se rver ) . Si p u ò

o t t e n e r e u n e l e n c o d e i c o m a n d i i n t e r n i d i s m b c l i e n t s c r i v e n d o heip.

K l e @ p i t a g o r a : s m b c l i e n t //192.168.1.4/documenti -U ale •Password: Domain=[PITAGORA] 0S=[Unix] Server=[Samba 3.0,28a] smb: \> ed fag smb: \fag\> dir

D 0 Tue Jun 17 16:31:13 2008 D 0 Fri Aug 1 15:51:26 2008

ubuntu D 0 Mon Jun 2 13:36:04 2008 ubuntu stampa D 0 Mon Aug 11 11:21:58 2008

46936 blocks of size 1048576. 15188 blocks available smb: \fag\> ed ubuntu smb: \fag\ubuntu\> dir

D 0 Mon Jun 2 13:36:04 2008 D 0 Tue Jun 17 16:31:13 2008

,. libro.doc 854016 Mon Jun 2 13:38:20 2008 libro.odt 153089 Mon Jun 2 13:37:58 2008

>; Figure D 0 Mon Jun 2 13:28:55 2008

46936 blocks of size 1048576. 15188 blocks available • smb: \fag\ubuntu\> |

1

Figura 8.11 - L'interfaccia di smbclient è simile a quella dei client FTP a caratteri.

Per o p e r a z i o n i p i ù a r t i c o l a t e su l l e r i so rse o , s e m p l i c e m e n t e , p e r u n acces -

so p i ù c o m o d o a esse è c o n s i g l i a b i l e i ns ta l l a re sul c l i e n t il p a c c h e t t o s m b f s

e m o n t a r e la r isorsa r e m o t a su l la m a c c h i n a l o c a l e c o m e se si t r a t t a s s e d i

u n n o r m a l e d i s c o .

Il c o m a n d o d a u t i l i zza re è il c o n s u e t o m o u n t , c o n la s e g u e n t e s in tass i :

sudo mount -t smbfs -o username=<utente> //<indirizzo>/<risorsa> <directory>

Page 228: Linux Ubuntu per Server e Reti.pdf

Al p o s t o d i <directory> si d e v e inser i re la d i rec to ry , es i s ten te ne l s i s tema,

a l l ' i n t e r n o de l l a q u a l e la risorsa r e m o t a d e v e essere resa d i s p o n i b i l e sul

c l i en t . L ' e s e m p i o a d o t t a t o p e r s m b c l i e n t d i v e n t a q u i n d i p e r m o u n t così :

sudo mount -t smbfs -o username=ale //192.168.1.4/documenti /mnt/samba

D o p o aver e s e g u i t o q u e s t o c o m a n d o , il c o n t e n u t o de l l a risorsa documenti

sarà access ib i le in /mnt/samba. Per m o n t a r e una d i r e c t o r y r e m o t a in au-

t o m a t i c o a l l ' avv io è poss ib i l e i n t e r ven i r e sul f i le / e t c / f s t a b . Ecco q u i n d i

l ' e s e m p i o f in q u i riportato t r a d o t t o in u n ' a p p o s i t a r iga p e r / e t c / f s t a b :

//192.168.1.4/documenti /mnt/samba smbfs username=ale,password=x 0 0

C o m e si p u ò n o t a r e , si è a g g i u n t a u n ' u l t e r i o r e o p z i o n e password (il ca ra t te -

re x va c a m b i a t o c o n l ' e f fe t t i va p a s s w o r d ut i l izzata) p e r avere accesso alla

r isorsa d a l l ' a v v i o d e l c l i en t senza c h e l ' u t e n t e d e b b a d i g i t a r e nu l la .

N e l caso si c o n s e n t a la c o n n e s s i o n e senza p a s s w o r d t r a m i t e l ' u t e n t e g u e s t ,

la riga p e r / e t c / f s t a b d i v e n t a così:

//192.168.1.4/documenti /mnt/samba smbfs guest 0 0

Per o t t e n e r e l 'accesso al server S a m b a da una m a c c h i n a W i n d o w s b i s o g n a

assicurarsi che il w o r k g r o u p i m p o s t a t o ne l la c o n f i g u r a z i o n e d i W i n d o w s

c o r r i s p o n d a a q u e l l o p r e s e n t e ne l f i le / e t c / s a m b a / s m b . c o n f d e l server. Per

m o d i f i c a r e q u e s t ' u l t i m o bas ta en t r a re in s m b . c o n f e c a m b i a r e il va lo re as-

s e g n a t o a l l ' o p z i o n e w o r k g r o u p nel la riga s e g u e n t e :

workgroup = WORKGROUP

Fat to q u e s t o , le r isorse e s p o r t a t e da l server S a m b a sa ranno v is ib i l i da l

c l i en t W i n d o w s c o m e n o r m a l i d i sch i cond iv i s i .

At tenzione. Se sulle macchine client si utilizza Windows Vista è neces-

sario che sul server sia installata una versione 3.x di Samba, presente

comunque nei repository di Ubuntu Server 8.04.

Page 229: Linux Ubuntu per Server e Reti.pdf

9. Il backup

Eli strumenti per effettuare CDpiB di riser-

va di directory e di intere partizioni

Ef fe t tua re c o p i e d i b a c k u p d i d i r e c t o r y o in te r i d i sch i n o n è un m e r o scru-

p o l o m a una necess i tà , sia c h e si g e s t i s c a n o n u m e r o s e m a c c h i n e inser i te

in un ' a r t i co l a ta L A N sia c h e si a m m i n i s t r i n o un p a i o d i PC in a m b i t o d o -

m e s t i c o . In fa t t i , senza d e i sani e f r e q u e n t i b a c k u p nul la si p o t r à c o n t r o la

ro t tu ra d i un h a r d d isk o la cance l l az i one a c c i d e n t a l e d i f i le i m p o r t a n t i . In

q u e s t i casi, l ' un ica d i fesa p o s s i b i l e è una r a g i o n e v o l e p r e v e n z i o n e .

N e l l e p a g i n e che s e g u o n o , q u i n d i , v e r r a n n o p resen ta t i a l cun i d i f fus i s t ru-

m e n t i d i b a c k u p . Si c o m i n c e r à da i p r o g r a m m i p i ù s e m p l i c i e si g i u n g e r à ,

alla f i ne , a ut i l izzare s i s temi c l i en t - se rve r a d a t t i sia a d a m b i t i az ienda l i sia a

ret i d i m e d i e d i m e n s i o n i .

Copiare intere partizioni Una e l e m e n t a r e m a spesso e f f i cace s t ra teg ia d i b a c k u p cons i s te ne l crea-

re d e i f i le i m m a g i n e d e l l e pa r t i z i on i p resen t i su l l ' ha rd d isk , in m o d o ta l e

che , in caso d i p r o b l e m i , sia poss ib i l e ripristinare il c o r r e t t o f u n z i o n a m e n t o

d i una m a c c h i n a s e m p l i c e m e n t e ritrasferendo su d i s c o le i m m a g i n i d e l l e

pa r t i z ion i .

Page 230: Linux Ubuntu per Server e Reti.pdf

Un s im i le m e t o d o d i c o n s e r v a z i o n e d e i da t i è l ' i dea le p e r s p o r a d i c h e o p e -

raz ion i d i c o p i a , m a n o n c o n s e n t e la c reaz ione d i b a c k u p i n c r e m e n t a l i . Può

r isu l tare u t i le , t u t t av i a , su s is temi d o m e s t i c i in cu i i d a t i r i levant i v e n g a n o

a g g i o r n a t i d i r a d o , m e n t r e in a m b i e n t i d i m a g g i o r i d i m e n s i o n i la c reaz ione

d i f i le i m m a g i n e p u ò cos t i t u i re u n o s t r u m e n t o e f f i c i e n t e p e r la c l o n a z i o n e

d i s i s temi s imi l i t ra lo ro .

Il backup incrementale permet te di memorizzare solo i cambiament i

avvenuti nei fi le d o p o l 'u l t imo backup effet tuato. La creazione del le

copie di riserva dei dati , una volta ef fet tuato il backup comple to iniziale,

è dunque più rapida rispetto a un backup totale dei file.

P a r t i m a g e è u n ' a p p l i c a z i o n e che , p e r m e z z o d i una g r a d e v o l e e s e m p l i -

ce in te r facc ia , p e r m e t t e d i c reare e ripristinare f i le i m m a g i n e d i pa r t i z i on i

f o r m a t t a t e c o n un n u m e r o n u t r i t o d i f i l esys tem. Ino l t re , d a t o che d u r a n t e

la g e n e r a z i o n e d e i f i le i m m a g i n e i se t to r i v u o t i p r e s e n t i in una p a r t i z i o n e

n o n v e n g o n o c o p i a t i , la ve l oc i t à nel la c o p i a d e i d a t i che si r a g g i u n g e c o n

P a r t i m a g e è p i ù a l ta d i que l l a o t t e n i b i l e c o n c o m a n d i c o m e dd.

La c o m p a t i b i l i t à d e l p r o g r a m m a c o n i f i l e s y s t e m E x t 2 / 3 , Re iser3 , XFS,

JFS e FAT I 6 / 3 2 è e c c e l l e n t e , m e n t r e la g e s t i o n e d i f i l e i m m a g i n e d i par -

t i z i on i HFS (il f i l e s y s t e m d i M a c OS) è in s t a d i o d i b e t a , c i o è a n c o r a n o n

o t t i m a l e ; a n c h e l 'u t i l i zzo d i p a r t i z i o n i N T F S c o n P a r t i m a g e è c o n s i d e r a t o

s p e r i m e n t a l e .

Pur essendo la compat ib i l i tà di Partimage con il f i lesystem NTFS limita-

ta, le probabi l i tà di riuscire a creare un file immagine di una partizione

NTFS aumentano se questa risulta poco frammentata. Prima di avviare

Partimage, quindi , è consigl iabi le deframmentare la part izione NTFS che

si intende copiare.

Page 231: Linux Ubuntu per Server e Reti.pdf

a. Il backup

Una distribuzione per Partimage

È poss ib i l e instal la re e ut i l izzare P a r t i m a g e a l l ' i n t e r n o d i U b u n t u Server

m a è c o n s i g l i a b i l e avva lers i u n ' a p p o s i t a d i s t r i b u z i o n e Live, c h i a m a t a sy-

stemRescueCD, p e r avv iare il p r o g r a m m a . In q u e s t o m o d o si è cer t i che

t u t t e le pa r t i z i on i d i s p o n i b i l i r i su l t i no c o r r e t t a m e n t e s m o n t a t e .

La d i s t r o S y s t e m R e s c u e C D si scar ica da l l ' i nd i r i zzo :

h t t p : / / w w w . s y s r e s c c d . o r g / M a i n Page

Una vo l t a mas te r i zza ta su C D l ' i m m a g i n e ISO p i ù recen te de l l a d i s t r i buz io -

ne , c h e al m o m e n t o de l l a s tesura d e l l i b ro è s y s t e m r e s c u e c d - x 8 6 - 1 . 0 . 4 . i s o ,

si inser isce il C D e si e f f e t t u a il b o o t de l l a m a c c h i n a da q u e s t o s u p p o r t o .

Elle Modifica i/isualizza Cronologia Segnalibri Strumenti Guida

W " $ ¡¡..s <,<&> http://www.sysresccd.org/Main_Page .. I-jiicE

(SÉMI

System Éèxcue C . HOMEPAGE .FORUMS . NEWS

» Home « Screenshots » download « HowTo . FAQ • ChangeLog-x86 • ChangeLog-ppc » ChangeLog-sparc . System tools « Package-iist-x86 « Package-list-sparc « Kernel » Seta-x86

Main Page English page | Page en f rançais | Pégina en espanol

Welcome to SystemRescueCd Description: SystemRescueCd is a Linux system on a boo tab le CD-ROM for repair ing your system and recover ing your da ta a f te r a crash. It aims to prov ide an easy way to car ry out admin tasks on your compu te r , such as c rea t ing and edi t ing the par t i t ions of the hard disk. It conta ins a lot of system utilities (par ted, par t image, fs tools, . . . ) and basic tools (editors, midnight commander , network tools). It is very easy to use: just boot the CDROM. The kernel suppor ts most of the impo r tan t fi le systems (ext2/ext3, reiserfs, reiser4. xfs, j fs, v fa t , nt fs, iso9660), as well as network filesystems (samba and nfs).

Quick start Guide (edit)

If th is is the f i rs t t ime you use SystemRescueCd, please read the Quick start guide (english)

Recent news about this project [edit]

You can f ind more detai ls about the recent changes made in SystemRescueCd in the news sec t i ons of this websi te . Below are the recent news t ha t give you more details about the

Figura 9.1 - La home page della distribuzione Live SystemRescueCD.

Sul lo s c h e r m o d e l PC appa r i r à una s c h e r m a t a s imi le a l l ' i m m a g i n e s e g u e n -

t e (F igura 9.2). A q u e s t o p u n t o bas ta p r e m e r e il t a s t o I n v i o p e r far avv iare

il s i s tema o p e r a t i v o . Q u a n d o appa r i r à la r iga < < L o a d k e y m a p ( E n t e r f o r

d e f a u l t ) : si d i g i t i 21 e si p r e m a I n v i o p e r se lez ionare la tas t ie ra i ta l iana o

si p r e m a s e m p l i c e m e n t e I n v i o p e r acce t t a re la tas t ie ra d i d e f a u l t , che è

que l l a amer i cana .

Page 232: Linux Ubuntu per Server e Reti.pdf

Linux Uburitu per server e reti

_ ) ! S _ _ _ _ / S , ¡

i _ S _ / ! ! S i « _ ) / S / \ / ! i ! ! / _ S ! /

; ; : _ < / s \ ( ¡ I _ I ¡ i ¡ ( _ ¡ _í !_s_¡ s_s / s !s , _ ! s is s

Linux kernel-2.6.25 (with Reiser4 and btrfs filesystems support) Both 32bits (IA32) and 64bits (AMD64/EM64T) are supported GParted graphical partitioning tool (partition magic clone) File systems tools (ext3, reiser, ntfs, ...) and LUM2 Disk tools (parted, sfdisk, partimage, testdisk, photorec) Ntfs-3g (ntfs full read-write support) and ntpass (reset windows passwords) Network tools (samba, nfs, ssh, lftp, tcpdump, ...) . Network booting via PXE (press F6 for help)

H * X.Org / Xvesa graphical environments with JUM and Firefox H * Hardware autodetection and Midnight Commander

H > Press F5 for help if you have boot problems with SystemRescueCd <==

I WJelcome to SystemRescueCd for x86 (i486+amd64) - version 1.0.4 HF2,F3,F4,F5,F6,F7 for boot options and more help. •Enter to boot. •boot:

Figura 9.2 - La schermata che appare quando si fa il boot da SystemRescueCD.

D o p o q u a l c h e s e c o n d o appa r i r à il p r o m p t d e i c o m a n d i . O r a è p o s s i b i l e

m o n t a r e il d i s p o s i t i v o sul q u a l e si i n t e n d o n o c reare i f i le i m m a g i n e d e l l e

pa r t i z ion i .

Per non avvert ire t r o p p o i v incol i de l l ' in ter facc ia forn i ta da

SystemRescueCD, può risultare comodo creare inizialmente le immagin i

del le partizioni su di un disco r ig ido esterno. Poi, quando si avrà acces-

so alla distr ibuzione installata sul PC, si trasferiranno i fi le immagine

sull 'effett ivo suppor to di memorizzazione (per esempio, un DVD-ROM)

util izzando le applicazioni che si preferiscono.

Se, p e r e s e m p i o , si fa uso d i un h a r d d isk USB, si c o l l e g a il d i s c o e s t e r n o

al PC e si crea la d i r e c t o r y in cu i ver rà e f f e t t u a t o il m o u n t (mkdir /mnt/disk,

a d e s e m p i o ) .

Fa t to q u e s t o , si m o n t a la p a r t i z i o n e d e l d i s c o in cu i si v o g l i o n o c o p i a r e i

f i le i m m a g i n e : se q u e s t a p a r t i z i o n e è / d e v / s d b 1 , d u n q u e , il c o m a n d o da

lanc iare sarà mount /dev/sdbl /mnt/disk.

Page 233: Linux Ubuntu per Server e Reti.pdf

N e l caso n o n si c o n o s c a il f i le d i d i s p o s i t i v o d e l l a p a r t i z i o n e da m o n t a r e , si

p u ò e s e g u i r e dmesg ne l la c o n s o l e d i S y s t e m R e s c u e C D n o n a p p e n a si co l -

lega l ' ha rd d isk al PC. Tra le u l t i m e righe d i o u t p u t res t i t u i te d a l c o m a n d o

sa ranno p resen t i l i nee s imi l i a l le s e g u e n t i :

[ 6633.221040] sd 4:0:0:0: [sdb] 39070080 512-byte hardware sectors

(20004 MB)

[ 6633.222010] sd 4:0:0:0: [sdb] Write Protect is off

[ 6633.222018] sd 4:0:0:0: [sdb] Mode Sense: 08 00 00 00

[ 6633.222023] sd 4:0:0:0: [sdb] Assuming drive cache: write through

[ 6633.222030] sdb: sdbl

Q u e s t e righe i n d i c a n o c h e è s ta to i n d i v i d u a t o un n u o v o d i s p o s i t i v o ne l

s i s tema ( l ' ha rd d isk e s t e r n o a p p e n a c o l l e g a t o ) e che a esso è s ta to asse-

g n a t o il f i le d i d i s p o s i t i v o / d e v / s d b . N e l l ' u l t i m a r iga v e n g o n o p o i e l e n c a t e

t u t t e le pa r t i z i on i p resen t i sul d i sco : in q u e s t o caso l ' un ica p a r t i z i o n e d i -

s p o n i b i l e è / d e v / s d b 1 .

Creare il file immagine di una partizione

E f f e t t u a t o il m o u n t de l l a p a r t i z i o n e su cu i c o p i a r e i f i le i m m a g i n e , n o n

resta che avv ia re P a r t i m a g e l a n c i a n d o ne l la c o n s o l e d i S y s t e m R e s c u e C D il

c o m a n d o partimage. A p p a r i r à la s c h e r m a t a v is ib i le in F igura 9.3.

* Partition to save/restore ramio ramll ramlZ raml3 raml4 raml5 -sswrnmrnrnm^mm

* Image file to create/use

-j Partit ion Image 0.6.?

-unknoun--unknown--unknoun--unknoun--unknoun--unknown-

16.00 MiB 16.00 MiB 16.00 MiB 16.00 MiB 16.00 MiB 16.00 MiB

Action to be done: (*) Save partition into a new image file ( ) Restore partition from an image file ( ) Restore an I1BR from the imagefile1

[ 1 Connect to server IP/name of the server: SSLAlog in disabled at compile time

<Mext (F5>>

<About>

<Exit (F6)>

Port:

Figura 9.3 - L'interfaccia che appare eseguendo il comando partimage.

Page 234: Linux Ubuntu per Server e Reti.pdf

Uti l izzare l ' i n te r facc ia d i P a r t i m a g e è s e m p l i c e . C o n il t as to Tab si passa da

un e l e m e n t o de l l ' i n t e r f acc ia al success ivo , c o n S p a z i o si se lez iona u n ' o p -

z i one e c o n i tas t i f recc ia su e g i ù ci si spos ta a l l ' i n t e r n o d i un e l e n c o .

Come Act ion è indicata per default Save part i t ion into a new image file. Per creare un f i le i m m a g i n e , q u i n d i , basta se lez ionare d a l l ' e l e n c o in a l t o la

p a r t i z i o n e d i cu i si d e s i d e r a e f f e t t u a r e la c o p i a , p r e m e r e Tab e d i g i t a r e il

p e r c o r s o c o m p l e t o d e l f i le i m m a g i n e da g e n e r a r e . Per e s e m p i o , se si v u o -

le c reare il f i le u b u n t u - 1 4 0 8 0 8 . i m g nel p u n t o d i m o u n t / m n t / d i s k si scr ive

/ m n t / d i s k / u b u n t u - 1 4 0 8 0 8 . i m g e si b a t t e I nv io .

Fa t to q u e s t o si p r e m e F5 p e r p r o s e g u i r e . Ne l la s c h e r m a t a success iva si

p u ò sceg l i e re il l i ve l lo d i c o m p r e s s i o n e d e l f i le i m m a g i n e : le o p z i o n i d i -

sponibili sono None, Gzip e Bzip2. C o n N o n e il f i le ver rà c r e a t o c o n es t r ema r a p i d i t à m a n o n sarà c o m p r e s s o

e, q u i n d i , r isu l terà d i g r a n d i d i m e n s i o n i . G z i p è i n vece la sce l ta d i d e f a u l t

e p resen ta un a c c e t t a b i l e c o m p r o m e s s o t ra ve l oc i t à d i c reaz ione d e l f i le e

d i m e n s i o n i f ina l i d i q u e s t o . B z i p 2 , in f ine , g e n e r e r à un f i le da l l e d i m e n s i o n i

m i n i m e m a i m p i e g a n d o m o l t o t e m p o . Ne l la g r a n p a r t e d e i casi è cons i -

g l i a b i l e sceg l i e re G z i p .

Un'a l t ra o p z i o n e i n te ressan te è If f i n i s h e d success fu l l y : , che c o n s e n t e d i

s tab i l i re l ' az ione da i n t r a p r e n d e r e q u a n d o la c reaz ione d e l f i le i m m a g i n e

t e r m i n a c o n successo. Va lor i d e g n i d i n o t a d e l l ' o p z i o n e s o n o H a l t e Re-

b o o t , p e r s p e g n e r e e r iavv iare la m a c c h i n a a o p e r a z i o n e conc lusa .

Ne l la m e d e s i m a s c h e r m a t a , in f ine , è poss ib i l e i nd i ca re se si d e s i d e r a sud -

d i v i d e r e l ' i m m a g i n e de l l a p a r t i z i o n e in p i ù f i le e in che m o d o b i s o g n a

farlo. La scelta prestabilita per l'opzione Image split mode è Into files w h o s e s ize is:, s e g u i t a da l v a l o r e n u m e r i c o 2 0 3 7 M iB . Per d e f a u l t , q u i n d i ,

i f i le i m m a g i n e v e n g o n o r ipar t i t i in s i ngo l i f i le da l l a d i m e n s i o n e mass ima

d i 2 GB .

I n d i c a n d o A u t o m a t i c s p l i t c o m e va lo re d e l l ' o p z i o n e , i nvece , il f i le i m m a -

g i n e sarà s u d d i v i s o in p i ù f i le so lo ne l caso in cu i f in isse lo spaz io d i s p o -

n ib i l e sul d i s p o s i t i v o . In una s im i le even tua l i t à , ver rà ch i es to d i inser i re il

p e r c o r s o d i un n u o v o f i le i m m a g i n e d o v e r iversare la p a r t e res tan te de l l a

p a r t i z i o n e da c o p i a r e .

Page 235: Linux Ubuntu per Server e Reti.pdf

Mettendo la spunta su Wait after each volume change, infine, il pro-g r a m m a d a r à m o d o a l l ' u t e n t e d i c a m b i a r e il s u p p o r t o d i m e m o r i z z a z i o n e

in c a s o d i n e c e s s i t à .

Se si i n tende creare de i f i le immag ine da memor izzare po i su C D - R O M

si lasci Into files whose size is: come valore di Image split mode e si ind ichi c o m e valore numer i co 650 o 700 MiB, a seconda del la capienza

de i dischi imp iegat i . Nel caso d i uti l izzo d i D V D - R O M il valore da inserire

è 4400 MiB.

: Macchina Dispositivi Aiuto

sàve partition io image lile

Compression level ( ) Hone (very fast + very big file) (*) Gzip i.gz: medium speed + small image file) ( ) BzipZ (.bzZ: very slow • very small image file)

Options [XI Check partition beforesaving [XI Enter description C ] Overwrite without prompt

Image split mode ( ) Automatic split (when no space left)| (*) Into files whose size is: [ 1 Wait after each volume change

If finished successfully:

<Cont inue (F5)> <Exit (F6)> <t1ain window (F?)>

initializing the operation. [» to cancel, CtrlS to pause, CtrlQ to résumé]

Sce l t i i v a l o r i d e s i d e r a t i p e r le o p z i o n i , si p r e m a F5 . Se lo si d e s i d e r a , q u i n -

d i , si p u ò i nse r i r e una d e s c r i z i o n e c h e s p e c i f i c h i il c o n t e n u t o d e l l a p a r t i z i o -

n e d a c o p i a r e . F a t t o q u e s t o , si s e l e z i o n i il p u l s a n t e O K p r e m e n d o I n v i o .

Life i

Page 236: Linux Ubuntu per Server e Reti.pdf

Linux Ubuntu per server e reti

A q u e s t o p u n t o c o m p a r i r à una f ines t ra i n f o r m a t i v a sul la p a r t i z i o n e che si

i n t e n d e c o p i a r e . O r a n o n r i m a n e c h e p r e m e r e anco ra I n v i o e a t t e n d e r e

che il f i le i m m a g i n e v e n g a g e n e r a t o . Si p r o c e d a p o i ne l m e d e s i m o m o d o

p e r t u t t e le a l t re pa r t i z ion i da c o p i a r e .

Ripristinare un file immagine su discu

La p r o c e d u r a necessar ia p e r r ip r i s t ina re l ' i m m a g i n e d i una p a r t i z i o n e è

s im i le a q u e l l a segu i t a p e r c reare il f i le i m m a g i n e . Ecco un s u c c i n t o r iep i -

l o g o d e i d ivers i passagg i :

1. si avvia partimage da l la c o n s o l e d i S y s t e m R e s c u e C D e nel la scher-

m a t a che a p p a r e si se lez iona , in a l to , la p a r t i z i o n e da r ip r i s t inare ;

2. si p r e m e il t as to Tab e si d i g i t a il pe r co r so d e l f i le i m m a g i n e . D a t o che

Pa r t image a g g i u n g e a u t o m a t i c a m e n t e l ' es tens ione .000 al p r i m o f i le

i m m a g i n e g e n e r a t o , il n o m e de l f i le da r ipr is t inare d e v e c o n t e n e r e i

cara t te r i .000 f inal i . Per e s e m p i o , se il f i le i m m a g i n e c rea to è d e b i a n .

i m g , il n o m e d e l f i le da r ipr is t inare d i v e n t a d e b i a n . i m g . 0 0 0 ;

restore partition from image file

Opt ions [ ] Simulation of the restoration (nothing is written) t 1 Erase free blocks with zero values

If finished successfully: — a a r IHL » l ' I M »

<Continue (F5)> <Exit (F6)> <Main window (F?)>

{initializing the operation t» to cancel, CtrlS to pause, CtrlQ to resume]

Figura 9.5 - La schermata di Partimage con le opzioni per il ripristino di una partizione.

3. si preme Tab e si sceglie Restore par t i t ion f rom an image fi le come A c t i o n . Si p r e m e F5 p e r p r o s e g u i r e . Ne l la s c h e r m a t a success iva si

i n d i c a n o le o p z i o n i d i r i p r i s t i no v o l u t e : p e r s imu la re l ' o p e r a z i o n e

senza scr ivere nu l la sul la p a r t i z i o n e d i d e s t i n a z i o n e va s p u n t a t a l ' o p -

z i one S i m u l a t i o n o f t h e r e s t o r a t i o n . Poi si p r e m e anco ra F5 ;

Page 237: Linux Ubuntu per Server e Reti.pdf

4. appa r i r à una f ines t ra c o n t e n e n t e i n f o r m a z i o n i d e t t a g l i a t e sul la par-

t i z i o n e d a ripristinare. A q u e s t o p u n t o si p r e m e I n v i o d u e v o l t e e si

a t t e n d e che l ' o p e r a z i o n e d i r i p r i s t i no a b b i a t e r m i n e . Sarà p o i poss i -

b i le r ip r i s t inare a l t re pa r t i z i on i s e g u e n d o i m e d e s i m i passagg i .

Il backup di file e directory Per una se lez ione g r a n u l a r e d e l l e i n f o r m a z i o n i da c o p i a r e e ripristinare, è

necessar io avva lers i d i p r o g r a m m i che c o n s e n t a n o d i e f f e t t u a r e il b a c k u p

d i r e t t o d i f i le e d i rec to ry . N e l caso d e l ripristino d i una s e m p l i c e car te l la o

d i un g r u p p o d i f i le , in fa t t i , a p p l i c a z i o n i c o m e P a r t i m a g e c o s t r i n g o n o al re-

c u p e r o d e l l ' i n t e r a p a r t i z i o n e c o n t e n e n t e i f i l e d e s i d e r a t i , c o n un n o t e v o l e

s p r e c o d i t e m p o e spesso c o n r isu l ta t i n o n v o l u t i .

In q u e s t a sez ione d e l c a p i t o l o v e r r a n n o d u n q u e p resen ta t i d u e p o t e n t i

s t r u m e n t i p e r il b a c k u p m i r a t o d e i da t i , tar e rsync, f o r n e n d o p e r essi la

c o n s u e t a ser ie d i e s e m p i d ' u s o .

Archiviare con tar

Un p r o g r a m m a semp l i ce e p o t e n t e che consen te d i archiviare il c o n t e n u t o d i

in tere d i rec to ry in un un ico f i le o su d i un nastro è tar. Si è già i ncon t ra to q u e -

sto c o m a n d o nel le p a g i n e d e d i c a t e alla stesura d e g l i scr ipt e, a q u e s t o p u n -

to , è g i u n t o il m o m e n t o d i a p p r o f o n d i r n e la sintassi e conosce rne le opz ion i

d ispon ib i l i . Nel la Tabel la 9.1 v e n g o n o e lenca te le opz ion i pr inc ipa l i d i tar,

que l l e c ioè che se lez ionano la moda l i t à d i f u n z i o n a m e n t o de l p r o g r a m m a .

Tabella 9.1 - Le opzioni principali di tar.

Opzione Funzione

-c o - - c rea te Crea un n u o v o a rch i v io

-x o - e x t r a c t Estrae i f i l e c o n t e n u t i ne l l ' a r ch i v i o

- t o - l i s t M o s t r a in o u t p u t c iò che c o n t i e n e l ' a rch iv io

-r o - a p p e n d A g g i u n g e d e i f i le a un a rch i v io es i s ten te

-u o - u p d a t e A g g i u n g e d e i f i le so lo se q u e s t i s o n o n u o v i o p iù re-

cen t i d e l l e c o p i e m e m o r i z z a t e n e g l i a rch iv i

- d o — c o m p a r e C o n f r o n t a i d a t i m e m o r i z z a t i ne l l ' a r ch i v i o c o n q u e l l i

p r e s e n t i a t t u a l m e n t e ne l s i s tema

Page 238: Linux Ubuntu per Server e Reti.pdf

-A o - c a t e n a t e

- d e l e t e El imina de i f i le da l l 'a rch iv io . N o n funz iona pe r g l i ar-

chiv i su nast ro

A g g i u n g e il c o n t e n u t o d i u n o o p iù archiv i es is tent i

a l l 'a rch iv io i nd i ca to

Al la serie d i opz ion i i nd ica te va a g g i u n t o un a m p i o v e n t a g l i o d i o p z i o n i

ausi l iar ie. Le p iù i m p o r t a n t i sono -f, pe r ind icare il f i le o ¡1 d i spos i t i vo

c o r r i s p o n d e n t e a l l 'a rch iv io da usare, -z pe r ges t i re archiv i compress i con

gz ip , -j pe r ut i l izzare archiv i bz ip2 e, in f ine, -v pe r a u m e n t a r e il l ive l lo d i

ve rbos i tà d e l l ' o u t p u t . A l t re o p z i o n i d ' u s o c o m u n e ve r ranno p resen ta te nel

corso de i paragra f i seguen t i .

Le operazioni di base con tar

Il p r o g r a m m a tar va lanc ia to f o r n e n d o sulla l inea d i c o m a n d o u n ' o p z i o n e

p r inc ipa le , segu i ta da al t re o p z i o n i nel caso q u e s t e fossero richieste. Ecco

un e s e m p i o :

tar cjf home_ale.tar.bz2 /home/ale

C o n q u e s t o c o m a n d o v iene c rea to (opz ione c) l 'a rch iv io su f i le ( f ) h o m e _

ale. tar .bz2. A l suo in te rno si cop ia l ' i n te ro c o n t e n u t o d i / h o m e / a l e , so t t o -

d i rec to ry c o m p r e s e , c o m p r i m e n d o i da t i m e d i a n t e bz ip2 (j). C o m e si p u ò

no ta re , l 'u t i l izzo de l cara t te re - che p r e c e d e le s i ngo le opz ion i è faco l ta t i -

vo : lo stesso c o m a n d o a v r e b b e p o t u t o essere scr i t to tar -cjf, tar -c -j

-f o p p u r e , ancora , tar --create --bzip2 --file.

Un archivio tar compresso ha l ' indubbio vantaggio di occupare meno

spazio sul supporto rispetto al medesimo archivio non compresso. In

caso di difett i ed errori anche lievi su di un supporto, però, un archivio

compresso rischia di risultare totalmente i l leggibile. Un semplice archivio

tar, invece, nella medesima situazione consentirebbe il recupero parziale

dei contenuti, solitamente fino al blocco danneggiato.

Page 239: Linux Ubuntu per Server e Reti.pdf

C o n ¡1 s e m p l i c e c o m a n d o a p p e n a i n s e r i t o , q u i n d i , si è e f f e t t u a t o il b a c k u p

c o m p l e t o d e l l a h o m e d i r e c t o r y d e l l ' u t e n t e a le . N e l l ' i m m a g i n e c h e s e g u e

(F igu ra 9 .6) è p o s s i b i l e v e d e r e l ' o u t p u t d e l c o m a n d o , c o n u n p i c c o l o c a m -

b i a m e n t o : in q u e s t o c a s o è s ta ta a g g i u n t a a t a r l ' o p z i o n e v p e r a u m e n t a r e

la v e r b o s i t à d e l p r o g r a m m a .

ale@pitagora:~$ tar cjfv homeale.tar,bz2 /home/ale tar: Rimuovo il '/' iniziale dai nomi dei membri /home/ale/ /home/ale/.gconf/ /home/ale/.gconf/desktop/ /home/ale/.gconf/desktop/gnome/ /home/ale/.gconf/desktop/gnome/accessibility/ /home/ale/, gconf/desktop/gnome/accessibility/keyboard/ /home/ale/.gconf/desktop/gnome/accessibility/keyboard/%gconf. xml /home/ale/.gconf/desktop/gnome/accessibility/%gconf. xml /home/ale/.gconf/desktop/gnome/%gconf.xml /home/ale/.gconf/desktop/gnome/applications/ /home/ale/.gconf/desktop/gnome/applications/windowmanager/ /home/ale/.gconf/desktop/gnome/applications/window manager/%gconf.xml /home/ale/.gconf/desktop/gnome/applications/%gconf.xml /home/ale/,gconf/desktop/gnome/applications/browser/ /home/ale/.gconf/desktop/gnome/applications/browser/%gconf.xml /home/ale/.gconf/desktop/gnome/applications/at/ /home/ale/.gconf/desktop/gnome/applications/at/visual/ /home/ale/.gconf/desktop/gnome/applications/at/visual/%gconf.xml /home/ale/. gconf/desktop/gnome/applications/at/%gconf.xml /home/ale/.gconf/desktop/gnome/background/ /home/ale/.gconf/desktop/gnome/background/%gconf.xml /home/ale/.gconf/desktop/gnome/interface/

Figura 9.6 - L'output del comando tar cjfv. Durante la creazione dell'archivio vengono mostrati a mano a mano i file inseriti.

È c o n s i g l i a b i l e v e r i f i c a r e c h e l ' a r c h i v i o a p p e n a c r e a t o sia la c o p i a e s a t t a d i

q u a n t o p r e s e n t e ne l s i s t e m a , c o n f r o n t a n d o i d a t i d e l p r i m o c o n l ' e f f e t t i v o

c o n t e n u t o d e l f i l e s y s t e m . Per q u e s t a o p e r a z i o n e si e n t r a ne l l a d i r e c t o r y

r a d i c e c o n ed / e si u t i l i zza l ' o p z i o n e - -compare (-d) i n s e r e n d o il p e r c o r s o

c o m p l e t o d e l l ' a r c h i v i o , c o m e n e l l ' e s e m p i o s e g u e n t e :

tar dvf / t m p / h o m e _ a l e . t a r . b z 2

R i p o s t o l ' a r c h i v i o su d i u n s u p p o r t o s i c u r o , q u a n d o si v o r r à c o n t r o l l a r n e il

c o n t e n u t o si m o n t e r à il d i s p o s i t i v o d e l s u p p o r t o , si e n t r e r à ne l l a d i r e c t o r y

d i q u e s t o e si l ance rà tar c o n l ' o p z i o n e --list (-t):

tar tjf h o m e _ a l e . t a r . b z 2

Page 240: Linux Ubuntu per Server e Reti.pdf

Nel t e r m i n a l e in cui si è e s e g u i t o il c o m a n d o ve r ranno e lencat i t u t t i i f i le e

le d i rec to ry p resent i ne l l 'a rch iv io ind ica to .

Inf ine, pe r r ipr is t inare il c o n t e n u t o de l l ' a rch iv io sul d i sco si en t ra nel la

d i rec to ry rad ice e si e s e g u e tar xjf s e g u i t o da l pe rco rso c o m p l e t o d i

home_a le . ta r .bz2 , c o m e n e l l ' e s e m p i o s e g u e n t e :

tar xjf /media/cdrom/home_ale.tar.bz2

Per esser cert i che i pe rmess i nei f i le r ipr is t inat i c o r r i s p o n d a n o a que l -

li c o n t e n u t i ne l l 'a rch iv io , alla l inea d i c o m a n d o va a g g i u n t a l ' o p z i o n e - -

same-permissions (-p):

tar xjpf /media/cdrom/home_ale.tar.bz2

Ques ta o p z i o n e è imp l i c i ta q u a n d o si estrae un arch iv io da roo t .

Per c o n c l u d e r e ques ta carrel lata sul le ope raz ion i d i base in tar, u n ' o p z i o -

ne ut i le q u a n d o si d e v o n o creare c o p i e d i b a c k u p d i d i rec to ry v o l u m i n o s e

è --exclude, che p e r m e t t e d i esc ludere f i le e in tere d i rec to ry da l l ' a rch iv io

che si v u o l e genera re . Ecco un e s e m p i o :

tar cjf home_ale.tar.bz2 --exclude *.jpg --exclude /home/ale/Musica /home/ale

In ques ta r iga v e n g o n o esclusi da l l ' a rch iv io i f i le che t e r m i n a n o con il suf-

f isso . j pg e l ' in tera d i r e c t o r y / h o m e / a l e / M u s i c a .

Se gl i e l e m e n t i da esc ludere sono m o l t i è cons ig l i ab i l e inserir l i a l l ' I n te rno

d i un f i le d i tes to , un e l e m e n t o pe r c iascuna riga, e r ich iamare po i tar con

l ' opz ione --exclude-from (-x) segu i ta da l pe rco rso de l f i le:

tar cjf home_ale.tar.bz2 -X /tmp/esclusi.txt /home/ale

Richiamando le opzioni -d e -x di tar è stato necessario entrare nella

directory radice prima di poter lanciare il comando. Questo perché, per

default, quando crea un archivio, tar elimina il carattere iniziale / dai

nomi dei file. Per mantenere il percorso completo nei nomi dei file si

deve usare l 'opzione - -absolute-names (-p) nella creazione e nell'estra-

zione degl i archivi.

Page 241: Linux Ubuntu per Server e Reti.pdf

/home/a le/V ideo mmm

/home/ale/Download /home/a le/doc/mus ica /home/a le/Immagin i

1

" e s c l u s i . t x t " 5L, 76C 5 ,0 -1 Tut

Figura 9.7 - Gli elementi da escludere da un archivio possono venire elencati in un apposito file di testo.

Tar e i backup incrementali

Il p r o g r a m m a ta r p e r m e t t e d i c rea re d i a rch iv i i n c r e m e n t a l i . La g e s t i o n e

d i q u e s t i è a f f i da ta a l l ' o p z i o n e --listed-incrementai (-g) e a l l ' u t i l i zzo d i

un f i l e d i s n a p s h o t : si t r a t t a d i un s e m p l i c e f i l e d i l o g c h e f o r n i s c e a ta r

i n f o r m a z i o n i su l l o s t a t o d e i f i l e e d e l l e d i r e c t o r y p r e s e n t i in un a rch i v i o .

A v e n d o a d i s p o s i z i o n e una " i s t a n t a n e a " d e l c o n t e n u t o p iù r e c e n t e d i un

arch iv io , q u i n d i , il p r o g r a m m a p u ò creare il success ivo f i le i n c r e m e n t a l e

i n d i v i d u a n d o i f i le n u o v i e q u e l l i m o d i f i c a t i d a l l ' u l t i m a vo l ta .

Q u a n d o si crea un a rch i v io i n c r e m e n t a l e b i s o g n a g e n e r a r e a n c h e il re la t i -

v o f i le d i s n a p s h o t . Ecco un e s e m p i o p e r il b a c k u p de l l a d i r e c t o r y / e t c :

tar cf etc-150808.tar -g /tmp/etc.inc /etc

C o n q u e s t o c o m a n d o v i e n e c r e a t o l ' a rch iv io in iz ia le e t c - 1 5 0 8 0 8 . t a r , che è

un a rch iv io d i t i p o c o m p l e t o , m e n t r e le i n f o r m a z i o n i p e r i f u tu r i f i le incre-

m e n t a l i s o n o m e m o r i z z a t e n e l l o s n a p s h o t / t m p / e t c . i n c .

Q u a n d o si vo r rà a g g i o r n a r e il b a c k u p de l l a d i r e c t o r y / e t c b i s o g n e r à sem-

p r e fa re r i f e r i m e n t o al f i le d i s n a p s h o t i n d i c a t o in p r e c e d e n z a , così d a

p e r m e t t e r e a tar d i g e n e r a r e d e g l i arch iv i i nc remen ta l i :

tar cf etc-210808.tar -g /tmp/etc.inc /etc

Page 242: Linux Ubuntu per Server e Reti.pdf

M e d i a n t e ques t i d u e c o m a n d i , d u n q u e , si è p r ima c rea to un arch iv io c o m -

p l e t o (e tc -150808. ta r ) e po i un arch iv io i nc remen ta le (e tc -210808. tar ) . Per

estrarre il c o n t e n u t o d e g l i archivi e r ipr is t inare così le vers ion i p iù agg io r -

nate de i f i le in / e t c , b i sogna segu i re il pe rco rso d i c reaz ione d e g l i archivi

r i c h i a m a n d o il f i le d i snapsho t re la t ivo:

tar xf etc-150808.tar -g /tmp/etc.inc tar xf etc-210808.tar -g /tmp/etc.inc

Nei nomi degli archivi incrementali usati come esempio la data è stata

inserita manualmente, per maggiore chiarezza. Per indicare la data in

modo automatico basta impiegare il comando date, come si è visto in

precedenza:

tar cf etc-$(date +%d%m%y).tar -g /tmp/etc.inc /etc

Per conoscere la sintassi di date si legga la man page del comando (man

date).

Archivi multivolume

È poss ib i le creare con tar archivi m u l t i v o l u m e , archiv i c ioè che v e n g o n o

suddiv ìs i e memor i zza t i su p iù suppo r t i . C iò p u ò r isul tare ut i le nel caso in

cui, pe r il b a c k u p de i p rop r i da t i , si ut i l izz ino nastr i , uni tà Z ip o semp l i c i

f l o p p y d isk e un s i ngo lo s u p p o r t o n o n risult i su f f i c ien te pe r c o n t e n e r e

l ' in tero arch iv io ta r che si i n t e n d e creare.

L 'opz ione necessaria pe r ges t i re g l i archivi m u l t i v o l u m e è --muiti-voiume

(-M): u t i l i zzando ques ta o p z i o n e , nel m o m e n t o in cui lo spazio d i s p o n i b i l e

su un s u p p o r t o si esaur isce il p r o g r a m m a a t t e n d e che l ' u ten te inserisca

un n u o v o s u p p o r t o e così fa pe r i successivi , f i nché l ' in tero arch iv io non è

s ta to c o p i a t o .

N e l l ' i m m a g i n e s e g u e n t e (Figura 9.8) è p resen te un c o m a n d o d ' e s e m p i o

pe r la c reaz ione d i un arch iv io m u l t i v o l u m e . A l l e o p z i o n i --create e --mul-

ti-volume si a g g i u n g e l 'ut i l izzo de l f i le d i d i spos i t i vo / dev /s tO c o m e a rgo-

m e n t o d i --file. Ne l la r iga d ' e s e m p i o r ipor ta ta , d u n q u e , la car te l la / r o o t

v iene archiv iata su un 'un i tà a nast ro (il f i le d i d i spos i t i vo /dev /s tO, a p p u n t o )

u t i l i zzando un arch iv io m u l t i v o l u m e .

Page 243: Linux Ubuntu per Server e Reti.pdf

root@pitagora:-# tar --create --multi-volurne --file=/dev/stO /root|

Figura 9.8 - Una riga d'esempio per la creazione di un archivio multivolume su nastro.

Può accadere che tar non riconosca cor re t tamente l 'avvenuto raggiungi -

men to del la f ine di un nastro. Tramite l 'opzione -L, qu ind i , si può indicare

la lunghezza massima che deve avere un s ingolo segmen to d i un archivio

mul t ivo lume, espressa in KB. Q u a n d o un segmen to ha ragg iunto tali

d imensioni , il p rog ramma chiederà al l 'utente d i inserire un nuovo nastro.

O g n i s e g m e n t o d i u n a r c h i v i o m u l t i v o l u m e p u ò e s s e r e g e s t i t o c o m e se si

t r a t t a s s e d i u n a r c h i v i o a sé s t a n t e , senza r i c h i e d e r e l ' u t i l i zzo d e l l ' o p z i o n e

- - muiti-voiume in f ase d i e s t r a z i o n e . Q u e s t o a m e n o c h e sul s e g m e n t o

n o n sia p r e s e n t e u n f i l e il c u i c o n t e n u t o è s t a t o s u d d i v i s o su p i ù s u p p o r t i ;

in ta l c a s o , sarà n e c e s s a r i o e s t r a r r e i s e g m e n t i d e l l ' i n t e r o a r c h i v i o in cu i è

p r e s e n t e t a l e f i l e r i c h i a m a n d o l ' o p z i o n e --muiti-voiume.

Copie sincronizzate con rsync

G r a z i e al p r o g r a m m a rsync, c h e v i e n e i n s t a l l a t o p e r d e f a u l t su U b u n t u

Server , è p o s s i b i l e e f f e t t u a r e c o p i e d i i n t e r e d i r e c t o r y t r a s f e r e n d o s o l o i

d a t i c h e s o n o c a m b i a t i d i v o l t a in v o l t a .

C i ò p u ò risultare m o l t o c o m o d o p e r i b a c k u p d i m a c c h i n e in r e t e o p p u r e

p e r c r e a r e d e l l e c o p i e d i r i serva d i c a r t e l l e d i a m p i e d i m e n s i o n i ( d i r e c t o r y

d i f i l e m u l t i m e d i a l i , p e r e s e m p i o ) in m o d o r a p i d o e d e f f i c i e n t e .

N e l p r i m o e s e m p i o d i u t i l i z zo d i rsync si c o p i a il c o n t e n u t o d e l l a d i r e c t o r y

/ h o m e / a l e su / m e d i a / d i s k / b a c k u p , il f i l e d i d i s p o s i t i v o d i u n h a r d d i s k

e s t e r n o :

sudo rsync -av /home/ale/ /media/disk/backup/

Page 244: Linux Ubuntu per Server e Reti.pdf

N e l l a r i ga r i p o r t a t a si fa u s o d e l l ' o p z i o n e -a d i rsync p e r i m p o s t a r e la

m o d a l i t à a r c h i v i o : q u e s t a p e r m e t t e d i e f f e t t u a r e u n a c o p i a f e d e l e d e l l a

d i r e c t o r y i n d i c a t a e d i t u t t e le s o t t o d i r e c t o r y p r e s e n t i in essa, p r e s e r v a n d o

le d a t e o r i g i n a r i e d e i f i l e , cos ì c o m e i p e r m e s s i , i g r u p p i e i p r o p r i e t a r i .

L ' o p z i o n e -v, q u i n d i , i n c r e m e n t a il l i ve l l o d i v e r b o s i t à d e l l ' o u t p u t .

N e l l ' i m m a g i n e s e g u e n t e ( F i g u r a 9 .9 ) è p o s s i b i l e v e d e r e ne l t e r m i n a l e il

r i s u l t a t o d e l c o m a n d o a p p e n a i m p a r t i t o .

ale@pitagora:-$ sudo rsync -av /home/ale/ /media/disk/backup/ building file list ... rsync: readlink "/home/ale/.gvfs" failed: Permission deni ed (13) done . / .ICEauthority .Xauthority .bashhistory .bashjlogout .bashrc . dmrc .esdauth . fbrc .festival history .festivalrc .fonts.conf .gksu.lock .glivrc .gnubiffrc •grip

,grip-cdda2wav .grip-flac .grip-lame .grip-oggenc

Figura 9.9 - L'output del comando rsync per copiare l'intero contenuto di /home/ale su un disco esterno, t: 1

Le v o l t e s u c c e s s i v e in cu i si l a n c e r à lo s t e s s o c o m a n d o rsync il c o n t e n u t o

d e l l e d i r e c t o r y d i o r i g i n e ( n e l l ' e s e m p i o / h o m e / a l e ) e d i d e s t i n a z i o n e ( / m e -

d i a / d i s k / b a c k u p ) v e r r à " s i n c r o n i z z a t o " , c o p i a n d o su l la s e c o n d a d i r e c t o r y

s o l o i f i l e m o d i f i c a t i o a g g i u n t i d a l l ' u l t i m a e s e c u z i o n e d e l c o m a n d o .

N e l s e c o n d o e s e m p i o si e f f e t t u a la c o p i a d i u n a c a r t e l l a l o c a l e su u n

s i s t e m a r e m o t o . La s in tass i d a u t i l i z z a r e in r s y n c p e r la c o p i a in r e t e è

Page 245: Linux Ubuntu per Server e Reti.pdf

d e l t u t t o s lm i l e a q u e l l a a d o t t a t a in p r e c e d e n z a , c o n l ' ovv ia d i f f e r e n z a d i

d o v e r i n d i c a r e il n o m e d e l l ' h o s t e , se n e c e s s a r i o , il n o m e d e l l ' u t e n t e cu i

inv ia re i d a t i .

Il m e t o d o p i ù s e m p l i c e p e r t ras fe r i re f i le in r e m o t o c o n rsync è q u e l l o d i

s f ru t ta re SSH: nel la m a c c h i n a che v i e n e c o n t a t t a t a , q u i n d i , d e v e essere

a t t i v o e o p p o r t u n a m e n t e c o n f i g u r a t o un serve r SSH.

Ne l la r iga s e g u e n t e la d i r e c t o r y / h o m e / m a r i o v i e n e c o p i a t a ne l la car te l la

. / c o p i a d e l l ' u t e n t e m a n o sul c o m p u t e r b a c k u p . u f f i c i o . l a n :

sudo rsync -avz -e ssh --delete /home/mario/ mar io@backup. ufficio.

lan:./copia

C o m e si p u ò v e d e r e , l ' i n s i eme d i o p z i o n i inser i te sul la l inea d i c o m a n d o è

un p o c o p i ù a r t i co l a t o r i s p e t t o a l l ' e s e m p i o p r e c e d e n t e .

I n n a n z i t u t t o è stata a g g i u n t a l ' o p z i o n e -z al g r u p p o -av: q u e s t a fa sì che i

d a t i v e n g a n o c o m p r e s s i d u r a n t e i t r a s f e r i m e n t i e c i ò c o n s e n t e d i r e n d e r e i

b a c k u p in re te p iù rap id i . L ' o p z i o n e -e, q u i n d i , è segu i t a da l la shel l r e m o t a

(ssh) da ut i l izzare p e r il c o l l e g a m e n t o c o n la m a c c h i n a d i d e s t i n a z i o n e ,

m e n t r e --delete fa cance l l a re da l la d i r e c t o r y d i d e s t i n a z i o n e i f i le n o n p iù

p r e s e n t i ne l la d i r e c t o r y d i o r i g i n e .

Bacula, un server per il backup Bacuia è un c o m p l e t o e a r t i c o l a t o s i s tema c l i en t - se rve r p e r la g e s t i o n e d e i

b a c k u p . Sì t r a t t a d ì u n ' a p p l i c a z i o n e i n d u b b i a m e n t e c o m p l e s s a , la cu i c o n -

f i g u r a z i o n e p u ò var ia re in m o d o n o t e v o l e a s e c o n d a d e l l e i m p o s t a z i o n i

d e l l ' a m b i e n t e d i re te e d e l l e p r o p r i e necess i tà .

In q u e s t e p a g i n e , d u n q u e , ver rà p r o p o s t a una c o n f i g u r a z i o n e d i base d i

Bacu la a d a t t a p e r un s i s tema d i b a c k u p m i n i m a l e .

Installazione di Bacula

La s t ru t t u ra m o d u l a r e d i Bacu la c o n s e n t e d i a d a t t a r e il s i s tema a l le p i ù

svar ia te c o n f i g u r a z i o n i . Ne l l a Tabe l la 9 .2 v e n g o n o e l e n c a t e le c o m p o n e n t i

c h e c o s t i t u i s c o n o l ' i m p a l c a t u r a d e l l ' a p p l i c a z i o n e .

Page 246: Linux Ubuntu per Server e Reti.pdf

Linux Ubuntu per server e reti

Tabella 9.2 - Le componenti di Bacula.

D i r e c t o r

D a e m o n

D e m o n e c h e a m m i n i s t r a e c o o r d i n a le o p e r a z i o n i p r in -

c ipa l i d e l s i s tema d i b a c k u p

S t o r a g e

D a e m o n

C o m p o n e n t e c h e si o c c u p a d i ges t i r e i d i spos i t i v i in

cu i v e n g o n o m e m o r i z z a t i i b a c k u p . D e v e essere avv ia-

t o sul c o m p u t e r su cu i s o n o p r e s e n t i ta l i d i spos i t i v i

Fi le D a e m o n D e m o n e c h e va avv ia to su o g n i m a c c h i n a d i cu i si de-

s idera e f f e t t u a r e il b a c k u p

C o n s o l e L ' in ter facc ia m e d i a n t e la q u a l e si d i a l o g a c o n il D i r e c t o r

D a e m o n e si g e s t i s c o n o le o p e r a z i o n i in Bacula

C a t a l o g Il d a t a b a s e nel q u a l e v e n g o n o inser i t i i d a t i re la t iv i ai

b a c k u p

Ne l la p r o c e d u r a d i i ns ta l laz ione c h e s e g u e , p e r m a g g i o r e ch iarezza, si p r e -

s u p p o n e che i t r e d e m o n i necessar i al f u n z i o n a m e n t o d i Bacu la s iano t u t t i

a t t i v i sul la m e d e s i m a m a c c h i n a . La g e s t i o n e d e l l e o p e r a z i o n i d i b a c k u p

(D i rec to r D a e m o n ) , que l l a d e i d i spos i t i v i d i m e m o r i z z a z i o n e p resce l t i (Sto-

rage D a e m o n ) e q u e l l a d e i d a t i d i cu i si v u o l e e f f e t t u a r e il b a c k u p (File

D a e m o n ) , d u n q u e , neg l i e s e m p i r i po r t a t i a v v e n g o n o su d i un u n i c o PC.

Per usare Bacu la è necessar io ins ta l lare un s i s tema d i d a t a b a s e a scel ta

t ra M y S Q L , SQL i t e e P o s t g r e S Q L . Per l ' i ns ta l laz ione d i e s e m p i o si è sce l t o

M y S Q L , q u i n d i p r i m a d i insta l lare Bacula b i s o g n a e f f e t t u a r e l ' i ns ta l laz ione

d e l d a t a b a s e sce l to ( i ns ta l l ando M y S Q L p r i m a d i Bacu la si consen t i r à a

q u e s t ' u l t i m o d i g e n e r a r e t u t t i i f i le d i c o n f i g u r a z i o n e d i de fau l t ) :

sudo apt-get instali mysql-server

D u r a n t e l ' i ns ta l laz ione d e l p a c c h e t t o ver rà r i ch ies to l ' i n s e r i m e n t o d i una

p a s s w o r d p e r l ' u t e n t e a m m i n i s t r a t o r e d e l d a t a b a s e , r o o t (F igura 9.10) .

Una vo l ta d i g i t a t a la p a s s w o r d d u e v o l t e p e r s icurezza, la p r o c e d u r a d ' i n -

s ta l laz ione d i M y S Q L t e r m i n e r à .

A q u e s t o p u n t o si p o s s o n o ins ta l lare i necessar i p a c c h e t t i d i Bacula c o n il

c o m a n d o sudo apt-get instali bacula. Il g e s t o r e d i p a c c h e t t i farà a p p a r i -

re una s c h e r m a t a in cu i ver rà r i ch ies to d i inser i re l ' h o s t n a m e d o v e risiede il

d a t a b a s e M y S Q L : d a t o che in q u e s t a c o n f i g u r a z i o n e d i e s e m p i o si ut i l izza

Page 247: Linux Ubuntu per Server e Reti.pdf

9. Il backup

una sola m a c c h i n a , è su f f i c i en te p r e m e r e I n v i o p e r se lez ionare l oca lhos t ,

c i o è la m a c c h i n a loca le .

onfigurazione del pacchetto

Coni igurazione in corso di mysql--seruer-5 . G | Sebbene non sia obbligatoria, si raccomanda d'impostare una password per l'utente d'amministrazione «root» di MySQL.

Se questo campo è lasciata vuoto, la password non uiene cambiata.

Nuova password per l'utente «root» di MySQL:

Nel la s c h e r m a t a success iva b i s o g n a i nd i ca re q u a l e u t e n t e a m m i n i s t r a il

se rver M y S Q L . P r e m e n d o I n v i o ver rà c o n f e r m a t a la scel ta d i d e f a u l t , r oo t .

Fa t to q u e s t o , si d e v e d i g i t a r e e p o i c o n f e r m a r e la p a s s w o r d inser i ta d u r a n -

t e la c o n f i g u r a z i o n e d i M y S Q L server (F igura 9.11) .

Figura 9.11 - In questa schermata della configurazione di Bacula si inserisce la password per amministrare MySQL.

Page 248: Linux Ubuntu per Server e Reti.pdf

In f ine, si c o n f e r m a c o n I n v i o II n o m e d e l l ' u t e n t e p r o p r i e t a r i o d e l d a t a b a s e

usa to da Bacula (bacula) e si inser isce una p a s s w o r d p e r t a l e u t e n t e , d i -

g i t a n d o l a una s e c o n d a vo l t a p e r c o n f e r m a . A q u e s t o p u n t o l ' i ns ta l laz ione

d i Bacula è t e r m i n a t a e si p u ò p r o c e d e r e alla c o n f i g u r a z i o n e d i q u e s t o

s is tema d i b a c k u p .

La configurazione passo per passo

La s t ru t tu ra a r t i co la ta d i Bacu la richiede c h e c iascuna c o m p o n e n t e d e l

s i s tema v e n g a o p p o r t u n a m e n t e c o n f i g u r a t a . I f i le d i c o n f i g u r a z i o n e d e l l e

d i ve rse c o m p o n e n t i s o n o t u t t i racco l t i nel la d i r e c t o r y / e t c / b a c u l a .

Si c o m i n c i a i n d i c a n d o il d i s p o s i t i v o d i b a c k u p che si i n t e n d e ut i l izzare

i n t e r v e n e n d o nel f i le d i c o n f i g u r a z i o n e de l l a c o m p o n e n t e S t o r a g e , / e t c /

b a c u l a / b a c u l a - s d . c o n f . Ne l f i le d i d e f a u l t f o r n i t o da l la d i s t r i b u z i o n e s o n o

p resen t i , c o m m e n t a t e , d e l l e r i g h e d i c o n f i g u r a z i o n e p e r un n u t r i t o n u m e -

ro d i d i spos i t i v i d i b a c k u p .

Per e s e m p i o , ecco le r ighe necessar ie pe r uti l izzare un 'un i tà a nastro DDS-4:

Device {

Name = "Tape Drive"

Device Type = tape

Media Type = DDS-4

Archive Device = /dev/stO

AutomaticMount = yes;

AlwaysOpen = Yes;

ReraovableMedia = yes;

RandomAccess = no;

}

C o m e si p u ò v e d e r e , le i n f o r m a z i o n i p e r la c o n f i g u r a z i o n e v e n g o n o for -

n i te in g r u p p i d i righe racch iuse t ra pa ren tes i g r a f f e e p r e c e d u t e d a una

paro la ch iave (che in q u e s t o caso è Device).

N e l l e r i g h e r i p o r t a t e v i e n e i n n a n z i t u t t o a s s e g n a t o un n o m e u n i v o c o (Name)

al d i s p o s i t i v o d i b a c k u p , Tape Dr i ve . La r iga Media Type i nd ica p o i il t i p o

d i s u p p o r t o a d o t t a t o , m e n t r e Archive Device c o n t i e n e il f i le d i d i s p o s i t i v o

re la t i vo a l l ' un i tà d i b a c k u p p resce l ta .

Le r i g h e q u i i n d i c a t e s o n o g ià p resen t i ne l f i le d i c o n f i g u r a z i o n e / e t c / b a c u -

l a / b a c u l a - s d . c o n f : p e r a t t i va r le è su f f i c i en te e l i m i n a r e il ca ra t t e re d i c o m -

m e n t o in iz ia le ('#') da c iascuna d i esse.

» ¡ . • ! i - , i L ì f e s m . : « p r .

Page 249: Linux Ubuntu per Server e Reti.pdf

L'unità a nastro DDS-4 consente la memorizzazione di 20 GB di dat i su

un singolo nastro. Il sistema DDS (Digital Data Storage), nelle sue varie

incarnazioni dal DDS-1 al DAT-160, fa uso di nastri digital i DAT. Il forma-

to più recente, DAT-160 permet te di salvare 80 GB di informazioni per

suppor to (160 GB con compressione).

Ne l la c o n f i g u r a z i o n e d i d e f a u l t d i Bacu la s o n o p resen t i d e l l e r i g h e pe r

e f f e t t u a r e c o p i e d i b a c k u p d e l C a t a l o g s tesso. Per c o m p l e t a r e la c o n f i g u -

raz ione d i q u e s t o " j o b " ( lavoro) d i b a c k u p p r e d e f i n i t o , p e r ò , è necessar io

m o d i f i c a r e una riga d e l f i le / e t c / b a c u l a / b a c u l a - s d . c o n f : si t r a t t a de l l a r iga

Archive Device = che Segue Name = FileStorage e Media Type = File (nel

f i le b a c u l a - s d . c o n f d i d e f a u l t su U b u n t u Server è la riga 49). In F igura 9 .12

q u e s t a r iga v i e n e ev i denz i a ta .

Page 250: Linux Ubuntu per Server e Reti.pdf

In q u e s t a r iga va a g g i u n t o il p e r c o r s o d o v e si d e s i d e r a che i b a c k u p su f i le

v e n g a n o m e m o r i z z a t i . Per e s e m p i o , pe r ut i l izzare a t a l e s c o p o la d i r e c t o r y

/ m n t / b a c k u p la r iga d e v e d i v e n t a r e così:

Archive Device = /mnt/backup

Ef fe t tua ta q u e s t a m o d i f i c a , è poss ib i l e salvare il f i le / e t c / b a c u l a / b a c u l a -

sd .con f . Poi si d e v o n o a g g i u n g e r e d e l l e a p p o s i t e is t ruz ion i in / e t c / b a c u l a /

bacu la -d i r . con f , il f i le d i c o n f i g u r a z i o n e d e l D i r e c t o r D a e m o n .

In q u e s t o f i le b i s o g n a a g g i u n g e r e d e i b l o c c h i d i r i g h e p e r d e f i n i r e u n o

S t o r a g e (il d i s p o s i t i v o d i m e m o r i z z a z i o n e da ado t t a re ) , un F i leSet (le d i -

rec to ry d i cu i si i n t e n d e e f f e t t u a r e il b a c k u p ) e una S c h e d u l e (la p ian i f i ca -

z i one d e l backup ) .

Si c o m i n c i a da l la sez ione S t o r a g e . Ecco d e l l e r i g h e a d a t t e al d i s p o s i t i v o

d ' e s e m p i o T a p e D r i v e c r e a t o in p r e c e d e n z a in b a c u l a - s d . c o n f :

Storage {

Name = TapeDrive

Address = eraclito.ufficio, lan

SDPort = 9103

Password = "Cv70F6pflt6pBopT4vQ0nigDrR0v3LT3Cgkiyj"

Device = "Tape Drive"

Media Type = DDS-4

}

La r iga d i Address c o n t i e n e l ' i nd i r i zzo F Q D N o l ' IP de l l a m a c c h i n a in cu i

è p r e s e n t e il d i s p o s i t i v o d i m e m o r i z z a z i o n e , m e n t r e la Password i nd i ca ta

d e v e c o r r i s p o n d e r e al la p a s s w o r d p r e s e n t e ne l f i le b a c u l a - s d . c o n f , nel la

sez ione D i r e c t o r (F igura 9.13) . La r iga Device, q u i n d i , r i po r t a il v a l o r e de l l a

r iga Name ne l f i le b a c u l a - s d . c o n f p e r il d i s p o s i t i v o p resce l t o . Il Media Type,

infi ne, d e v e c o r r i s p o n d e al Media Type i n d i c a t o s e m p r e in b a c u l a - s d . c o n f .

A q u e s t o p u n t o si p o s s o n o a g g i u n g e r e le i n f o r m a z i o n i sui d a t i da inser i re

nel b a c k u p . B i sogna c reare una sez ione F i leSet s im i le al la s e g u e n t e :

FileSet {

Name = "BackupFiles"

Include {

Options {

signature = MD5

compression = GZIP

}

Page 251: Linux Ubuntu per Server e Reti.pdf

File = /home

} }

# on the "Archive Device" directive in the Device # resource. If you change the Name and/or the # "Media Type" in the Device resource, please ensure # that dird.conf has corresponding changes. #

Storage { # definition of myself Name = pitagora-sd SDPort = 9103 # Director's port WorkingDirectory = "/var/lib/bacula" Pid Directory = "/var/run/bacula" Maximum Concurrent Jobs = 20 SDAddress = 127.0.0.1

}

# List Directors who are permitted to contact Storage daemon # Director {

Name = pitagora-dir Password = "Cv70F6pflt6pBopT4vQOnigDrR0v3LT3Cgki

-- VISUALE LINEA -- 27,1 2%

Figura 9.13 - La password ih bacula-dir.conf deve corrispondere a quella nella sezione Director di bacula-sd.conf.

A q u e s t o F i l eSe t v i e n e a s s e g n a t o il n o m e B a c k u p F i l e s e v e n g o n o a t t i -

v a t e le o p z i o n i p e r c r e a r e u n a f i r m a M D 5 p e r o g n i f i l e d i cu i si e f f e t t u a il

b a c k u p ( r iga s i g n a t u r e = MD5) e p e r c o m p r i m e r e i f i l e m e d i a n t e G Z I P ( r iga

c o m p r e s s ion=GZIp).

La r i ga c h e in iz ia c o n File = i n d i c a c h e si v u o l e c r e a r e una c o p i a d i b a c k u p

d e l l a d i r e c t o r y / h o m e e d i t u t t e le s o t t o d i r e c t o r y a p a r t i r e d a essa. Per g e -

s t i re il b a c k u p d i p i ù c a r t e l l e si a g g i u n g o n o u l t e r i o r i r i g h e File, in q u e s t o

m o d o :

File = / u s r / l o c a l

File = /etc

File = /root

A q u e s t o p u n t o si s t a b i l i s c e q u a n d o e f f e t t u a r e il b a c k u p d e l l e d i r e c t o r y

i n d i c a t e .

Page 252: Linux Ubuntu per Server e Reti.pdf

Linux Uburitu per server e reti

Ecco q u i n d i u n ' i p o t e t i c a sez ione S c h e d u l e d a inser i re in bacu la -d i r . con f :

Schedule { Name = "BackupDaily" Run = Full daily at 08:00

La c o n s u e t a riga Name i nd ica il n o m e da d a r e a q u e s t a Schedu le . Ne l la riga

Run, q u i n d i , si c o n f i g u r a l ' e s e c u z i o n e d i un b a c k u p c o m p l e t o (Full) d e i d a t i

t u t t i i g i o r n i (daily) a l le o r e 8 : 0 0 A M (at os:oo) . I t i p i d i b a c k u p p o s s o n o

essere Full, Differential e incrementai m e n t r e a l t re r i g h e Run c o n d i f f e -

rent i i nd i caz ion i t e m p o r a l i p o s s o n o essere le s e g u e n t i :

Run = Incremental mon-fri at 20:05

Run = Differential on 1 at 05:01

La p r i m a r iga d ' e s e m p i o e f f e t t u a un b a c k u p i n c r e m e n t a l e da l l uned ì al

v e n e r d ì a l le 2 0 : 0 5 , m e n t r e la s e c o n d a crea un b a c k u p d i f f e renz ia le o g n i

p r i m o d e l m e s e a l le 5 :01 . Per ave re un e l e n c o esaus t i vo d e i va lo r i che è

poss ib i l e inser i re ne l le r i g h e Run si v e d a la G u i d a d i Bacula a l l ' i nd i r i zzo :

h t t p : / / w w w . b a c u l a . o r g / e n / d e v - m a n u a l / B a c u l a Users G u i d e . h t m l

File Modifica Visualizza Cronologia Sfignalibri Strumenti Guida

' : http://www.bacula.org/en/dev-manual/What is Bacila htmi*SECT;ON0Ò43000000000ui.

Interactions Between the Bacula Services BUE:

The following block diagram shows the typical interactions between the Bacula Services for a backup job. Each block represents in general a separate process (normally a daemon). In general, the Director oversees the f low of information. It also maintains the Catalog.

rU> Aiutata» • D«U

I Next| Up| Previousj Comenis| Index|

N e x t ^ T h e Cwiwnt fflifttft Of Up : Bacula User's Guide P r e v i o u s : List of Tables Con t e n t s I n d e x

Completato Figura 9.14 - La Guida di Bacula online è una preziosissima fonte di informazioni sull'uso del programma.

Page 253: Linux Ubuntu per Server e Reti.pdf

Un backup differenziale memorizza tut t i i f i le modif icat i da l l 'u l t imo

backup comple to . A differenza del backup incrementale, qu ind i , per

ripristinare la versione più recente dei dat i sarà sufficiente avere accesso

al l 'u l t imo backup comp le to e al l 'u l t imo backup differenziale ef fet tuato.

A d e s s o n o n r i m a n e c h e r a c c o g l i e r e le i n f o r m a z i o n i d i S t o r a g e , F i leSet e

S c h e d u l e in un u n i c o J o b c r e a n d o la s e z i o n e re la t iva nel f i le bacu la -d i r .

c o n f . Ecco la :

Job {

Name = "LocalBackup"

JobDefs = "DefaultJob"

Enabled = yes

Level = Full

FileSet = "BackupFiles"

Schedule = "BackupDaily"

Storage = TapeDrive

Write Bootstrap = "/var/lib/bacula/LocalBackup.bsr"

}

Le r i g h e c h e in i z iano c o n FileSet, schedule e Storage d e v o n o a v e r e c o m e

a r g o m e n t i i va lo r i inser i t i ne l l e righe Name d e l l e r i spe t t i ve sez ion i d e l f i le

b a c u l a - d i r . c o n f . Il n o m e d e l J o b , n e l l ' e s e m p i o LocalBackup, s o l i t a m e n t e

c o r r i s p o n d e o r i m a n d a al n o m e de l l a m a c c h i n a d i cu i si v u o l e e f f e t t u a r e

il b a c k u p .

La riga write Bootstrap, i n v e c e , i nd i ca il f i l e ne l q u a l e si d e s i d e r a scr i-

v e r e le i n f o r m a z i o n i d i b o o t s t r a p p e r il J o b c o r r e n t e : un f i le d i b o o t s t r a p

c o n s e n t e d i r i p r i s t i na re un s i s tema senza c h e sia necessar ia la p resenza d i

un C a t a l o g . A t t i v a r e un f i le d i b o o t s t r a p p e r un J o b , q u i n d i , è a l t a m e n t e

r a c c o m a n d a b i l e .

D o p o ave r i nse r i t o q u e s t e u l t i m e righe la c o n f i g u r a z i o n e è t e r m i n a t a . E

d u n q u e p o s s i b i l e sa lvare le m o d i f i c h e al f i l e b a c u l a - d i r . c o n f e c h i u d e r e

l ' e d i t o r u t i l i zza to . O r a n o n r i m a n e che fa r l e g g e r e la c o n f i g u r a z i o n e a g -

g i o r n a t a ai d a e m o n d i Bacu la , t r a m i t e i c o m a n d i s e g u e n t i :

sudo /etc/init.d/bacula-sd restart

sudo /etc/init.d/bacula-director restart

Page 254: Linux Ubuntu per Server e Reti.pdf

La console e le label

Pr ima d i p o t e r e f f e t t u a r e le o p e r a z i o n i d i b a c k u p è n e c e s s a r i o a s s e g n a r e

u n a l a b e l ( e t i c h e t t a ) ai nas t r i c h e si i n t e n d e i m p i e g a r e a l l o s c o p o . Per f a re

q u e s t o si d e v e r i c h i a m a r e la c o n s o l e d i B a c u l a e s e g u e n d o in u n t e r m i n a l e

il c o m a n d o b c o n s o i e . Il r i s u l t a t o su s c h e r m o sarà s i m i l e a q u a n t o v i s i b i l e

n e l l ' i m m a g i n e s e g u e n t e ( F i g u r a 9 .15 ) .

ale@pitagora:~$ bconsoie Connecting to Director localhost:9101 1000 OK: pitagora-dir Version: 2.2.8 (26 January 2008) Enter a period to cancel a command.

I

Figura 9.15 - La console di Bacula. Da qui si gestiscono le operazioni di backup.

Per po te r lanciare bconsoie da un utente c o m u n e è necessario che que-

sto appar tenga al g r u p p o bacula: si o t t i ene ques to med ian te il c o m a n d o

sudo adduser utente bacula, inserendo al pos to d i utente il n o m e

ef fe t t ivo de l l ' u ten te da agg iunge re al g r u p p o .

Per a s s e g n a r e u n a l a b e l al n a s t r o a t t u a l m e n t e p r e s e n t e n e l l ' u n i t à , q u i n d i ,

ne l l a c o n s o l e d i Bacu la b i s o g n a d i g i t a r e label e p r e m e r e I n v i o .

I n c o n s o l e v e r r a n n o e l e n c a t e le r i so rse p e r l o S t o r a g e d e f i n i t e ne l la c o n f i -

g u r a z i o n e : si s e l e z i o n i d a l l a l ista T a p e D r i v e , d i g i t a n d o il n u m e r o c o r r i s p o n -

Page 255: Linux Ubuntu per Server e Reti.pdf

d e n t e (2). Poi si i n d i c h i u n n o m e a p r o p r i a sce l t a p e r il V o l u m e c o r r e n t e

(il n a s t r o , ne l c a s o a t t u a l e ) , p e r e s e m p i o b a k 0 2 0 9 0 8 . I n f i ne , si s e l e z i o n i il

P o o l d i d e f a u l t , 1. In F i g u r a 9 . 1 6 è p o s s i b i l e o s s e r v a r e l ' o u t p u t in c o n s o l e

p e r q u e s t i va r i p a s s a g g i .

ale@pitagora:-$ bconsole Connecting to Director localhost:9101 1000 OK: pitagora-dir Version: 2.2.8 (26 January 2008) Enter a period to cancel a command. •label Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" The defined Storage resources are:

1: File 2: TapeDrive

Select Storage resource (1-2): 2 Enter new Volume name: bak02O908 Defined Pools:

1: Default 2: Scratch

Select the Pool (1-2): l|

Figura 9.16-1 passaggi da compiere nella console di Bacula per assegnare una label a un nastro.

Un poo l non è al t ro che un ins ieme d i Vo lumi , nastri o f i le che siano.

Ut i l izzando più poo l è possib i le sudd iv idere e organizzare i suppor t i uti-

lizzati a seconda del t i p o d i backup che sì i n tende memorizzare su d i essi.

A ogn i poo l possono essere at t r ibu i t i parametr i d i f ferent i : quest i saranno

assegnati au toma t i camen te ai vari Vo lumi appar tenen t i al poo l .

L'operazione di backup

T e r m i n a t a la c o n f i g u r a z i o n e d i B a c u l a , è g i u n t o il m o m e n t o d ì e f f e t t u a r e

la p r i m a s e m p l i c e o p e r a z i o n e d i b a c k u p . Si lanc i il p r o g r a m m a b c o n s o l e ,

q u e s t a v o l t a a c q u i s e n d o i p o t e r i d i r o o t :

sudo b c o n s o l e

Page 256: Linux Ubuntu per Server e Reti.pdf

N e l l a c o n s o l e d i Bacu la si e s e g u a a d e s s o il c o m a n d o i n t e r n o run. Ve r rà

m o s t r a t o u n e l e n c o d e i J o b d i b a c k u p c h e è p o s s i b i l e avv ia re , c o m e in

q u e s t e r i g h e d i o u t p u t d ' e s e m p i o :

A Job name m u s t be specified.

The defined Job r e s o u r c e s are :

1: C l i e n t i

2 : B a c k u p C a t a l o g

3: R e s t o r e F i l e s

4 : L o c a l B a c k u p

Select J o b r e s o u r c e (1-4):

Si s e l e z i o n i d u n q u e il n u m e r o r e l a t i v o al J o b c r e a t o in p r e c e d e n z a , 4 .

D o p o a v e r p r e m u t o I n v i o su l la t a s t i e r a a p p a r i r a n n o in c o n s o l e d e l l e r i g h e

i n f o r m a t i v e sul J o b i n d i c a t o : F i l eSe t , P o o l , S t o r a g e e cos ì v ia . D i g i t a n d o

" y e s " e p r e m e n d o I n v i o , q u i n d i , il J o b v e r r à a t t i v a t o .

A q u e s t o p u n t o è p o s s ì b i l e e s e g u i r e il c o m a n d o i n t e r n o m e s s a g e s p e r a v e -

re i n f o r m a z i o n i in t e m p o rea le s u l l ' o p e r a z i o n e in c o r s o , o p p u r e si p u ò lan -

c ia re status p e r v i sua l i zza re u n p r o s p e t t o d e i J o b a t t i v i al m o m e n t o e d i

q u e l l i c h e v e r r a n n o avv ia t i n e l l e p r o s s i m e 2 4 o r e (F igu ra 9 .17 ) .

•status Status available for:

1: Director 2: Storage 3: Client 4: All

Select daemon type for status (1-4): 1 pitagora-dir Version: 2.2.8 (26 January 2008) i486-pc-linux-gnu debian lenny/sid Daemon started 02-set 08 17:36, 5 Jobs run since started. Heap: heap=397,312 smbytes=38,210 max_bytes=42,720 bufs=220 max bufs=242

Scheduled Jobs: Level Type Pri Scheduled Name Volume

Incremental Backup 10 02-set-08 23:05 Clienti •unknown* Full Backup 11 02-set-08 23:10 BackupCatalog •unknown* Full Backup 10 03-set-08 08:00 LocalBackup •unknown*

Running Jobs: No Jobs running.

Figura 9.17- L'output del comando interno status nella console di Bacula.

Page 257: Linux Ubuntu per Server e Reti.pdf

Ripristina del backup

Per ripristinare i da t i d i un b a c k u p si avvia la c o n s o l e d i Bacula c o n sudo

bconsoie e si lancia il c o m a n d o i n t e r n o restore. Verrà m o s t r a t o in c o n -

so le un n u t r i t o n u m e r o d i o p z i o n i t ra cu i sceg l ie re . Tra q u e s t e , que l l a d i

m a g g i o r e ut i l i tà e d i p i ù i m m e d i a t o u t i l i zzo è p r o b a b i l m e n t e la n u m e r o 5,

Select the most recent backup for a client, che consente di ripristinare il b a c k u p p iù r e c e n t e d i una d e t e r m i n a t a m a c c h i n a c l ien t .

Se si sceg l i e q u e s t a o p z i o n e , d o p o aver i n d i c a t o il c l i en t d i cu i si d e s i d e r a

e f f e t t u a r e il r i p r i s t i no si se lez iona il F i leSet cu i si è in teressat i , q u i n d i si

s p e c i f i c a n o u n o o p iù J o b d i b a c k u p .

Fa t to q u e s t o , si en t ra ne l la m o d a l i t à p e r la se lez ione d e i f i le : in q u e s t a

m o d a l i t à si ut i l izza il c o m a n d o m a r k p e r i nd i ca re a Bacula d i r ip r i s t inare un

d e t e r m i n a t o f i le o d i r e c t o r y (con mark * si se lez iona l ' i n te ro c o n t e n u t o d e l

b a c k u p ) , m e n t r e unmark c o n s e n t e d i d e s e l e z i o n a r e d e i f i le . Per t e r m i n a r e

si d i g i t a done. Per e s e m p i o , i c o m a n d i s e g u e n t i s e l e z i o n e r a n n o d a l b a c k u p

c o r r e n t e le d i r e c t o r y / h o m e / a l e / D o c u m e n t i e / h o m e / t e s t / a r c h i v i o :

mark /home/ale/Documenti

mark /home/test/archivio

done

Q u i n d i ver rà i n d i c a t o il V o l u m e da inser i re p e r e f f e t t u a r e il ripristino d e l

b a c k u p e sa ranno f o r n i t e i n f o r m a z i o n i d e t t a g l i a t e s u l l ' o p e r a z i o n e .

N o n rimane p o i che r i s p o n d e r e " y e s " alla d o m a n d a OK to run?, così da

p r o c e d e r e ne l r ip r i s t ino . R i s p o n d e n d o " m o d " , i nvece , sarà poss ib i l e m o -

d i f i ca re a lcun i p a r a m e t r i c o m e la d i r e c t o r y in cu i d o v r a n n o essere m e m o -

rizzati i f i le r ip r is t ina t i .

Page 258: Linux Ubuntu per Server e Reti.pdf

ID. Costruire un Media Center

• a un elementare S e r v e r a u d i o al più com-

pleto Media Center multimediale

G i u n t i a q u e s t o p u n t o la re te loca le è c o n f i g u r a t a e p r o t e t t a a d o v e r e , si

h a n n o a d i s p o s i z i o n e i p r i nc i pa l i s t r u m e n t i p e r la c o n d i v i s i o n e d e l l e r isorse

e t u t t o è p r o n t o p e r m e t t e r e in p ra t i ca le c o n o s c e n z e acqu i s i t e .

In q u e s t o c a p i t o l o , d u n q u e , si a l lest i rà un s is tema m u l t i m e d i a l e p r o n t o p e r

t r o n e g g i a r e ne l sa l o t t o d i casa: l ' h a r d w a r e sarà c o s t i t u i t o d a un n o r m a l e

PC d o m e s t i c o , c o n la re la t iva in f ras t ru t tu ra d i re te , m e n t r e il s o f t w a r e ne-

cessar io ver rà f o r n i t o d i r e t t a m e n t e da l la d i s t r i b u z i o n e L inux.

Gl i e s e m p i d i M e d i a C e n t e r f o rn i t i ne l l e p a g i n e che s e g u o n o sa ranno via

via p iù c o m p l e s s i . Si in iz ierà c o n il p i ù s e m p l i c e d e i M e d i a C e n t e r mus ica l i

e si ar r iverà p o i a cos t ru i re un c o m p l e t o s i s tema m u l t i m e d i a l e , ricco d i f un -

z iona l i tà e d u t t i l e c o m e so lo p u ò esser lo un d i s p o s i t i v o c o s t r u i t o , pezzo

d o p o pezzo , s e c o n d o le e s i g e n z e d i ch i lo ut i l izza.

Server musicale Si c o m i n c i a c o n un s e m p l i c e server mus ica le : l ' a rch iv io mus i ca le sarà c o n -

t e n u t o in un c a p i e n t e h a r d d isk su d i un server cen t ra l e e d o v r à essere

access ib i l e da t u t t e le m a c c h i n e c o n n e s s e in re te , sia che ut i l i zz ino L inux

sia che a d o t t i n o W i n d o w s c o m e s is tema o p e r a t i v o .

Page 259: Linux Ubuntu per Server e Reti.pdf

Per q u e s t o c o m p i t o ver rà ins ta l l a to S a m b a sul server L inux: p u r e s s e n d o

d i s p o n i b i l i d e i c l i en t NFS p e r W i n d o w s , la p resenza d i un s o f t w a r e c o m -

p a t i b i l e c o n i p r o t o c o l l i d i re te M i c r o s o f t r e n d e r à la f ru i z i one d e i c o n t e n u t i

mus ica l i p i ù s e m p l i c e su t u t t e le m a c c h i n e .

Il più semplice dei IVIedia Center

Nel la c o n f i g u r a z i o n e q u i p r o p o s t a , sul server A v i e n e ins ta l l a to S a m b a ,

m e n t r e il c l i en t B ha accesso al la d i r e c t o r y cond i v i sa da l la m a c c h i n a A .

Il se rver p o s s i e d e nel la L A N l ' i nd i r i zzo IP 1 9 2 . 1 6 8 . 0 . 2 , m e n t r e il c l i en t ha

192 .168 .0 .3 .

Per c o m o d i t à , nel la c o n n e s s i o n e al mus i c server si o f f re l ' accesso ai f i le

mus ica l i senza r i c h i e d e r e l ' i n s e r i m e n t o d i n o m e u t e n t e e p a s s w o r d . D o p o

aver i ns ta l l a to S a m b a sul la m a c c h i n a A , q u i n d i , ne l f i le / e t c / s a m b a / s m b .

c o n f si inser isce a l l ' i n t e r n o de l l a sez ione [Global] la r iga:

security = share

e poi , per sicurezza, si l imita la connessione alla sola rete locale con questa riga:

hosts allow = 192.168.0.

A q u e s t o p u n t o si a g g i u n g o n o al c o n t e n u t o d e l f i le / e t c / s a m b a / s m b . c o n f

d e l l e r i g h e s imi l i a l le s e g u e n t i :

[musica]

path = /usr/local/share/musica

comment = Musica condivisa

guest ok = yes

read only = no

Il va lo re d i path va c a m b i a t o c o n la d i r e c t o r y che c o n t i e n e i f i le a u d i o sul

p r o p r i o server mus ica le .

O l t r e al c o n t r o l l o d e l t r a f f i co in en t ra ta m e d i a n t e s m b . c o n f , è p o s s i b i l e

a g g i u n g e r e un u l t e r i o re l i ve l lo d i p r o t e z i o n e g raz ie al f i rewa l l . Le p o r t e

da ap r i re p e r S a m b a s o n o le 137 , 138 U D P e le 139, 4 4 5 TCP. Ecco d e l l e

r i g h e d i e s e m p i o p e r iptabies che a c c e t t a n o c o n n e s s i o n i al server S a m b a

e s c l u s i v a m e n t e da l la re te loca le 1 9 2 . 1 6 8 . 0 . 0 / 2 4 :

sudo iptabies -p udp -s 192.168.0.0/24 --dport 137 -j ACCEPT

sudo iptabies -p udp -s 192.168.0.0/24 --dport 138 -j ACCEPT

Page 260: Linux Ubuntu per Server e Reti.pdf

sudo iptables -m state --state NEW -m tcp -p tcp -s 192.168.0.0/24

--dport 139 -j A C C E P T

sudo iptables -m state --state N E W -m tcp -p tcp -s 192.168.0.0/24

--dport 445 -j A C C E P T

P r o t e t t o a d o v e r e ¡1 server , b i s o g n a o r a s t a b i l i r e se si v u o l e c h e la m a c c h i -

na A a b b i a il r u o l o d i M e d i a C e n t e r o se si p r e f e r i s c e c h e q u e s t o v e n g a as-

s u n t o d a l c l i e n t B: ne l p r i m o c a s o sarà il s i s t e m a L inux ne l s a l o t t o d i casa a

d i f f o n d e r e la m u s i c a a t u t t i i PC c o n n e s s i in r e t e , m e n t r e n e l s e c o n d o c a s o

il d i s p o s i t i v o si l i m i t e r à a ricevere la m u s i c a e n o n r i c h i e d e r à la p r e s e n z a d i

a l c u n h a r d d i s k i n t e r n o p e r f u n z i o n a r e .

Se si d e s i d e r a u n M e d i a C e n t e r " d i f f u s o r e " , q u i n d i , su l la s tessa m a c c h i -

na A o c c o r r e i ns ta l l a re , o l t r e al s e r v e r S a m b a , a n c h e le a p p l i c a z i o n i Li-

n u x p r e f e r i t e p e r la f r u i z i o n e m u s i c a l e . Q u e s t e l e g g e r a n n o d i r e t t a m e n t e

il c o n t e n u t o d e l l a d i r e c t o r y / u s r / l o c a l / s h a r e / m u s i c a (o s im i la re ) , m e n t r e il

c l i e n t B, p e r a v e r e a c c e s s o a l l ' a r c h i v i o m u s i c a l e d e l M e d i a C e n t e r d a l l a

d i r e c t o r y / m n t / s a m b a , d o v r à a g g i u n g e r e n e l f i l e / e t c / f s t a b u n a r i ga c o m e

la s e g u e n t e :

/ / 1 9 2 . 1 6 8 . 0 . 2 / m u s i c a / m n t / s a m b a smbfs g u e s t 0 0

# /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> proc /proc proc defaults # /dev/sdal UUID 45ad37fa-386e-4ff0-be33-d4465e05c096 / s= remount-ro 0 1 # /dev/sda3 UUID 20e23alb-0clb-46ba-8cba-20eb8Of5c5bf /home

0 2

# /dev/sda2 UUID=07523736-8e32-4378-bbff-3bcaf4d57890 none

0 0

/dev/scd0 /media/cdromO udf,iso9660 user noauto exec,

# server musicale //192.168.0.2/musica /mnt/samba smbfs guest 0 0

<dump> <pass> 0 0

ext3 relatime,erro

ext3 relatime

swap sw

12,0-1 Tut

Figura 10.1 - Sulla macchina client il file /etc/fstab sarà simile a questo.

Page 261: Linux Ubuntu per Server e Reti.pdf

Ne l caso d i un M e d i a C e n t e r " r i c e v e n t e " , invece, è su f f i c ien te inserire la

riga d i / e t c / f s t a b a p p e n a riportata sulla macch ina B e q u i n d i far p u n t a r e un

quals ias i p layer a u d i o ai f i le mus ica l i c o n t e n u t i nel la d i r ec to r y / m n t / s a m b a .

Per ragioni didatt iche, in questa sezione si è scelto di adottare per la

creazione di un server musicale del le applicazioni t rat tate nel corso del

volume. Un eccellente sistema alternativo è MPD (Music Player Daemon):

si tratta di un player audio di t ipo server-client che, abbinato a un softwa-

re per lo streaming musicale come icecast, consente di costruire una vera

e propria stazione radio domestica via rete! Per maggior i informazioni:

h t tp : / /www.musicpd.org e http: / /www.icecast.org.

Il Media Center completa A v e r e ne l p r o p r i o s a l o t t o un d i s p o s i t i v o c h e c o n s e n t a d i asco l ta re la m u -

sica m e m o r i z z a t a su un ha rd d isk d i g r a n d i d i m e n s i o n i è c e r t o c o m o d o .

A n c o r a p i ù c o m o d o , p e r ò , è p o t e r c o n t a r e su una m a c c h i n a m u l t i m e d i a l e

c h e racch iuda in p o c h i c e n t i m e t r i d i spaz io le f unz iona l i t à d i TV, v i d e o r e g i -

s t ra to re , l e t t o re D V D , w e b b r o w s e r e m o l t o a l t ro .

T u t t o q u e s t o è reso poss ib i l e da un a r t i c o l a t o e d u t t i l e s o f t w a r e PVR (Per-

sona l V i d e o Recorder ) p e r L inux c h i a m a t o My thTV. N e l l e p a g i n e che se-

g u o n o , q u i n d i , si f o r n i r a n n o le is t ruz ion i p e r ins ta l lare e c o n f i g u r a r e q u e s t a

a p p l i c a z i o n e .

Il M e d i a C e n t e r r i su l tan te sarà inser i to a l l ' i n t e r n o d i una L A N , così da per -

m e t t e r e l 'accesso ai c o n t e n u t i v i d e o in esso m e m o r i z z a t i da t u t t e le m a c -

ch ine c o n n e s s e in re te .

M y t h T V è un s o f t w a r e c o m p l e s s o e r icco d i f unz iona l i t à e, o v v i a m e n t e , in

q u e s t e p o c h e p a g i n e n o n è poss ib i l e f o r n i r e i n f o r m a z i o n i esaus t i ve sul la

sua c o n f i g u r a z i o n e e i suo i m o l t e p l i c i ut i l izzi . N e i pa rag ra f i a segu i re si p re -

s u p p o n e q u i n d i che l ' h a r d w a r e d e l M e d i a C e n t e r (TV tuner , s c h e d a gra f i ca

c o n usci ta T V - O u t ecc.) sia g ià s ta to c o r r e t t a m e n t e c o n f i g u r a t o .

Page 262: Linux Ubuntu per Server e Reti.pdf

Per maggior i informazioni si r imanda alla sezione Documentat ion nel sito

di MythTV:

ht tp : / /www.mythtv .org/

e alla pagina wiki del proget to :

h t tp : / /www.mythtv .org/wik i / index.php/Main Page

Installazione di MythTV

M y t h T V è c o s t i t u i t o da un vas to i n s i e m e d i p r o g r a m m i p r i nc i pa l i e p l u g i n

d i c o n t o r n o . Per s e m p l i f i c a r n e l ' i ns ta l laz ione e la c o n f i g u r a z i o n e , la d is t r i -

b u z i o n e U b u n t u f o r n i s c e un g r u p p o d i p a c c h e t t i M y t h b u n t u : i ns ta l l ando

q u e s t i sarà poss ib i l e sceg l i e re c o n fac i l i tà le c o m p o n e n t i d i M y t h T V c h e

si v o g l i o n o ave re sul p r o p r i o M e d i a C e n t e r e ver rà f o r n i t o , i no l t re , un a m -

b i e n t e g r a f i c o l e g g e r o e g r a d e v o l e in cui avv ia re l ' i n te r facc ia d i My thTV.

Mythbuntu, oltre a essere un insieme di pacchett i , è anche una vera e

propria distr ibuzione: basata su Ubuntu, come lascia intuire il nome,

consente di installare su un PC un sistema operat ivo comple to con tu t to

il necessario per il funzionamento di MythTV. L'home page di questa

interessante distro è h t tp : / /www.mythbuntu .org .

Sulla m a c c h i n a che d e v e essere a d i b i t a a M e d i a Cen te r , q u i n d i , si lanci il

c o m a n d o s e g u e n t e :

sudo apt-get instali mythbuntu-desktop

V e r r a n n o così scar icat i e insta l la t i i p a c c h e t t i c h e c o m p o n g o n o M y t h b u n t u ,

p i ù t u t t o il s o f t w a r e necessa r io p e r la c o n f i g u r a z i o n e in iz ia le d i My thTV.

D u r a n t e la p r o c e d u r a d i ins ta l laz ione d e i p a c c h e t t i , i no l t re , si p u ò ind ica re

al s i s tema il m o d e l l o d e l t e l e c o m a n d o a inf rarossi da usare, se ce n ' è u n o

d i s p o n i b i l e (F igura 10.2). È p o i poss ib i l e c o n f i g u r a r e a n c h e un e v e n t u a l e

t r a s m e t t i t o r e IR.

Page 263: Linux Ubuntu per Server e Reti.pdf

Figura 10.2 - In questa schermata si indica il telecomando da usare per controllare a distanza il Media Center.

T e r m i n a t o q u e s t o p r i m o p a s s a g g i o , si p u ò ora a c c e d e r e a l l ' a m b i e n t e g ra -

f i c o f o r n i t o da M y t h b u n t u . Per fa re q u e s t o si d e v e lanc iare G D M , il l o g i n

m a n a g e r g ra f i co , c o n il c o m a n d o s e g u e n t e :

sudo /etc/init.d/gdm start

A l success ivo r e b o o t de l l a m a c c h i n a , G D M sarà richiamato a u t o m a t i c a -

m e n t e a l l ' avv io . Ne l la s c h e r m a t a che a p p a r e , q u i n d i , si inser isce il n o m e

d e l l ' u t e n t e p r i n c i p a l e e la re la t iva p a s s w o r d e si a t t e n d e il c a r i c a m e n t o d e l

d e s k t o p e n v i r o n m e n t d i M y t h b u n t u , c h i a m a t o X fce .

L ' aspe t to c o m p l e s s i v o de l l ' i n t e r f acc i a g ra f i ca a d i s p o s i z i o n e d e l l ' u t e n t e è

v is ib i le n e l l ' i m m a g i n e c h e s e g u e (F igura 10.3).

Un ' i ns ta l l az ione d i M y t h T V p u ò s v o l g e r e la f u n z i o n e d i B a c k e n d , d i Fron-

t e n d o ave re e n t r a m b i i ruo l i . Il B a c k e n d si o c c u p a d i e f f e t t u a r e le reg i -

s t raz ion i da l la TV, m e n t r e il F r o n t e n d f o r n i s c e l ' i n te r facc ia p e r v isual izzare i

canal i te lev is iv i , g u a r d a r e e i m p o s t a r e le reg is t raz ion i e così v ia.

Page 264: Linux Ubuntu per Server e Reti.pdf

ID. Costruire un Media center

I Eile Modifica Visualizza Cronologia Segnalibri Strumenti

" SI é ì <B hleffAisr/share/mythbunturtiomeflndexhtml

isitati- OSegnalibri smart*- ®>Getbng Started ~ 'LatestHeadlines-

Related Projects

!ubuntu

j x u b u n t u

Mythbuntu is an community su setting up a standotene Myth TV Based PVR si

a standalone system a for integrali«! Unlike similar prefects. Mythbuntu kee(

•on tor Ubuntu fix

1 existing MythTV » ties with Ubuntu

ion! is given back to Ubuntu. This architecture allows is from a standard desfctop to a Mythbuntu machine he development cycle ot Mythbuntu closely follows that ing every six monlhs with Ubunlu releases

XFCE4 desktop. All unnecessary sti

I''IMP] -, I Mythbuntu Mczillj Firofo.

Figura 10.3 - L'interfaccia grafica di Mythbuntu. Veloce, bella e facile da usare.

In q u e s t o s t a d i o in iz ia le de l l ' i n s ta l l az i one d i M y t h T V è p r e s e n t e ne l s iste-

m a il so lo F r o n t e n d . Se il M e d i a C e n t e r è un s e m p l i c e d i s p o s i t i v o c o n n e s -

so alla T V che d e v e essere c o l l e g a t o in re te a un PC p r o v v i s t o d i TV Tuner,

l ' i ns ta l laz ione p u ò d i rs i t e r m i n a t a . Se i nvece il M e d i a C e n t e r è p rovv i s t o

d i s c h e d a TV e d e v e avere il r u o l o d i se rve r m u l t i m e d i a l e p e r a l t re m a c -

ch ine , a l lo ra b i s o g n a a g g i u n g e r e t u t t o il necessar io p e r la f unz iona l i t à d i

B a c k e n d .

Per fa re q u e s t o i n n a n z i t u t t o si d e v e ins ta l la re il d a t a b a s e re laz iona le M y -

SQL, necessar io p e r il f u n z i o n a m e n t o d e l B a c k e n d .

Per ins ta l lare il d a t a b a s e , q u i n d i , si p u ò ap r i re una c o n s o l e d i t e r m i n a l e

d i r e t t a m e n t e n e l l ' a m b i e n t e g r a f i c o d i M y t h b u n t u : si fa c l ic sul p u l s a n t e

A p p l i c a t i o n s in a l t o , q u i n d i ne l m e n u c h e a p p a r e si en t ra ne l s o t t o m e n u

A c c e s s o r i e s e si se lez iona c o n un cl ic d e l m o u s e la v o c e T e r m i n a l e .

Nel la f ines t ra d e l t e r m i n a l e si e s e g u a d u n q u e il c o m a n d o sudo apt-get

instali mysqi-server-5.o e si p r e m a I n v i o al la r ich iesta d i i n s e r i m e n t o

de l l a p a s s w o r d p e r l ' u t e n t e r o o t d i M y S Q L . Se in o u t p u t v i e n e res t i t u i t o

un e r ro re si e s e g u a d i n u o v o il c o m a n d o p r e c e d e n t e .

Page 265: Linux Ubuntu per Server e Reti.pdf

Poi b i s o g n a ap r i re il C e n t r o d i c o n t r o l l o M y t h b u n t u : si en t ra in A p p l i c a -

tions, quindi si va nel sottomenu System e si fa clic su Centro di control-l o M y t h b u n t u . D o p o aver d i g i t a t o la p a s s w o r d d e l p r o p r i o u t e n t e , ne l la

f ines t ra che a p p a r e si en t ra ne l la sez ione S y s t e m Ro les (F igura 10.4) e si

m e t t e la s p u n t a s u l l ' o p z i o n e B a c k e n d p r i m a r i o , q u i n d i si fa c l ic sul pu l san -

t e A p p l i c a in basso . V e r r a n n o così insta l la t i e c o n f i g u r a t i i p a c c h e t t i p e r la

f unz iona l i t à d i B a c k e n d d i My thTV.

- n X Mythbuntu Control Centre - n X

IQ]System Roles System Roles

Although a Mythbuntu machine is intended to be used as an appliance, active roles may be added, removed, or modified at any time.

Backend Role

A machine containing a backend role will schedule and record television shows. Also, a backend role is needed on a network somewhere for a frontend role to connect to

Nessun backend • Backend primario

O Backend secondario

F r o n t e n d Role

A machine containing a frontend role will connect to a master backend to obtain recorded content

Nessun frontend * Frontend

Desktop Role

If you later decide that you would like to use this machine as a desktop, you can convert a machine from an applicance into a standalone machine that also has Mythbuntu configured

0 Ubuntu Desktop • Xubuntu Deskop 0 Kubuntu Desktop

Diskless S e r v e r A system role that will allow you to operate additional Frontend clients without installing Mythbuntu on them.

• Diskless Server • Add DHCP server

A q u e s t o p u n t o il M e d i a C e n t e r è c o r r e t t a m e n t e ins ta l la to , m a c o n s e n t e

e s c l u s i v a m e n t e d i g u a r d a r e e reg is t ra re p r o g r a m m i TV.

Per a g g i u n g e r e u l te r io r i m o d u l i bas ta en t r a re ne l la sez ione A p p l i c a t i o n s

& P l u g i n s d e l C e n t r o d i c o n t r o l l o M y t h b u n t u e m e t t e r e la s p u n t a sui p l u -

g i n ( m o d u l i a g g i u n t i v i ) che si d e s i d e r a insta l lare. F a c e n d o c l ic s u l l ' o p z i o -

ne E n a b l e / D i s a b l e A l i P l u g i n s si s e l e z i o n e r a n n o in un c o l p o so lo t u t t i i

m o d u l i . N o n r i m a n e p o i che p r e m e r e A p p l i c a p e r insta l lare i p a c c h e t t i

a g g i u n t i v i r ich iest i .

¡1^1 MythTV Configuration

^ Applications & Plugins

30* Proprietary Drivers

^ Infrared Devices

System Services

^ A r t w o r k & Login Behavior

F j MythTV Themes

¡^Propr ie ta ry Codecs

Advanced Mangement

Page 266: Linux Ubuntu per Server e Reti.pdf

ID. Costruire un Media center

Nel la Tabe l la 10.1 v e n g o n o e lenca t i i p r i nc ipa l i p l u g i n d i s p o n i b i l i p e r

My thTV. Tra q u e s t i si cons ig l i a d i insta l lare a l m e n o M y t h V i d e o e M y t h M u -

sic, così d a o t t e n e r e un M e d i a C e n t e r c h e c o n s e n t a la f r u i z i one d i t u t t i i

c o n t e n u t i a u d i o e v i d e o poss ib i l i .

Tabella 10.1 - I principali plugin di MythTV. Nome Funzionalità

M y t h A r c h i v e C o n s e n t e d i master izzare su D V D le registrazioni dal la TV

M y t h B r o w s e r Un s e m p l i c e W e b b r o w s e r

C o n s e n t e d i avv ia re d e i g i o c h i d i r e t t a m e n t e da l l ' i n te r -

M y t h G a m e facc ia d i My thTV. C o m p a t i b i l e c o n e m u l a t o r i e g i o c h i

H H I H H H H H H E H H h H H H H M y t h M u s i c Un c o m p l e t o l e t t o re m u s i c a l e

M y t h V i d e o Player v i d e o c o n g e s t i o n e d e i c a t a l o g h i

M y t h W e b P e r m e t t e d i c o n t r o l l a r e M y t h T V da r e m o t o t r a m i t e

un ' i n te r f acc ia w e b

Scel t i i p l u g i n c h e si p r e f e r i s c o n o , si p u ò ora c h i u d e r e la f ines t ra d e l C e n -

t r o d i c o n t r o l l o M y t h b u n t u e passare alla c o n f i g u r a z i o n e d e l B a c k e n d : ne l

m e n u A p p l i c a t i o n s d e l l ' a m b i e n t e g ra f i co b i s o g n a d u n q u e en t ra re in Sy-

stem e selezionare la voce MythTV Backend Setup. Nel la s c h e r m a t a che a p p a r e si d e v e q u i n d i i m p o s t a r e il r i cev i t o re TV, sce-

g l i e re il t i p o d i G u i d a TV p re fe r i t a e d e f f e t t u a r e la scans ione d e i cana l i

d i s p o n i b i l i . Si t r a t t a d i o p e r a z i o n i che , a s e c o n d a d e l T V t u n e r a d o t t a t o ,

p o s s o n o r isu l tare p i u t t o s t o c o m p l e s s e : p e r u n ' i n t r o d u z i o n e alla c o n f i g u r a -

z i o n e d e l B a c k e n d si v e d a la p a g i n a :

h t t p : / / w w w . m y t h t v . o r g / w i k i / i n d e x . p h p / M y t h t v - s e t u p

T e r m i n a t o q u e s t o p a s s a g g i o de l l a c o n f i g u r a z i o n e d i My thTV, si p u ò av-

v ia re l ' i n te r facc ia d e l F r o n t e n d e n t r a n d o in A p p l i c a t i o n s , M u l t i m e d i a e

facendo clic su MythTV Frontend. Dal la s c h e r m a t a che a p p a r e (F igura 10.5) si p u ò q u i n d i g u a r d a r e la TV,

e f f e t t u a r e e v isual izzare reg is t raz ion i così c o m e a c c e d e r e a l le f unz iona l i t à

f o r n i t e d a i var i p l u g i n ins ta l la t i .

Page 267: Linux Ubuntu per Server e Reti.pdf

IVlythTV entra in rete

D o p o q u e s t e s o m m a r i e i n f o r m a z i o n i su l l ' i ns ta l l az ione d i My thTV, è il m o -

m e n t o d i far d i a l o g a r e il M e d i a C e n t e r a p p e n a c r e a t o c o n le a l t re m a c c h i -

ne c o n n e s s e in re te .

N e g l i e s e m p i c h e s e g u o n o la m a c c h i n a su cu i è ins ta l la to il B a c k e n d d i

M y t h T V ha c o m e ind i r izzo IP 192 .168 .1 .4 , m e n t r e il c l i en t su cu i è a t t i v o il

F r o n t e n d p o s s i e d e l ' ind i r i zzo 192 .168 .1 .5 .

Se sul B a c k e n d s o n o a t t i v i d e i p l u g i n , p e r p o t e r l i ut i l izzare da l c l i en t re-

m o t o è necessar io insta l lar l i a n c h e su q u e s t o t r a m i t e il C e n t r o d i c o n t r o l l o

M y t h b u n t u .

Il B a c k e n d , ne l la c o n f i g u r a z i o n e d i d e f a u l t , r i s p o n d e a l l ' i nd i r i zzo IP

127 .0 .0 .1 , q u i n d i p u ò essere c o n t a t t a t o so lo da un F r o n t e n d a t t i v o sul la

m a c c h i n a loca le . Per m o d i f i c a r e l ' i nd i r i zzo cu i risponde il B a c k e n d , sul la

m a c c h i n a in cu i q u e s t o è ins ta l la to si d e v e lanc ia re il M y t h T V B a c k e n d

S e t u p e d en t ra re ne l la sez ione 1. G e n e r a l .

Nel la s c h e r m a t a che a p p a r e , q u i n d i , b i s o g n a m o d i f i c a r e i va lo r i d e l l e o p -

z ion i Loca i B a c k e n d e M a s t e r B a c k e n d , i n d i c a n d o p e r e n t r a m b e l ' i nd i r i zzo

Page 268: Linux Ubuntu per Server e Reti.pdf

IP d e l l a m a c c h i n a B a c k e n d su l la r e te l o c a l e . N e l l ' e s e m p i o è 1 9 2 . 1 6 8 . 1 . 4 .

N e l l a s tessa s c h e r m a t a si i n d i c a il P IN d i s i cu rezza p e r le c o n n e s s i o n i re-

m o t e : i n s e r e n d o 0 0 0 0 c o m e S e c u r i t y P I N si c o n s e n t i r à l ' a c c e s s o a t u t t i .

Host Address Backend Setup

Locai Backend (pitagora) IP address: 192.168.1.4

Port: 6543 Status Port: 6544

Security Pin (Required): 0000

Master Backend IP address: 192.168.1.4

Enter the IP address of this machine. Use an externally accessible address (ie, not 127.0.0.1) if you are going to be running a frontend on a different machine than this one.

Cancel Next >

Figura 10.6 - In questa schermata si configura l'indirizzo IP del Backend.

F a t t o q u e s t o , è n e c e s s a r i o c h e il s e r v e r M y S Q L sul la m a c c h i n a B a c k e n d

a c c e t t i c o n n e s s i o n i d a l l a r e t e l oca le . Per q u e s t o si a p r a c o n u n e d i t o r il f i l e

/ e t c / m y s q l / m y . c n f e si m o d i f i c h i la r i ga :

b i n d - a d d r e s s = 1 2 7 . 0 . 0 . 1

i n d i c a n d o al p o s t o d i 1 2 7 . 0 . 0 . 1 l ' i n d i r i z z o IP d e l B a c k e n d su l la L A N . Se-

g u e n d o l ' e s e m p i o r i p o r t a t o la r i ga d i v e n t a q u i n d i così :

b i n d - a d d r e s s = 192.168.1.4

I n f i ne si d e v e r i avv ia re il s e r v e r M y S Q L c o n il c o m a n d o :

sudo / e t c / i n i t . d / m y s q l r e s t a r t

A q u e s t o p u n t o , p e r c o l l e g a r e al B a c k e n d M y t h T V , s i t u a t o su l la m a c c h i n a

1 9 2 . 1 6 8 . 1 . 4 , il F r o n t e n d p r e s e n t e sul c l i e n t 1 9 2 . 1 6 8 . 1 . 5 , è s u f f i c i e n t e lan-

Page 269: Linux Ubuntu per Server e Reti.pdf

d a r e in q u e s t ' u l t i m o l ' a p p l i c a z i o n e M y t h T V F r o n t e n d : il c l i en t i n d i v i d u e r à

a u t o m a t i c a m e n t e il B a c k e n d d i s p o n i b i l e in re te e si c o l l e g h e r à a esso.

Condividere le cartelle di MythTV con IXIFS

S e g u e n d o le is t ruz ion i ne l p a r a g r a f o p r e c e d e n t e si è c o n n e s s o un Bac-

k e n d d i M y t h T V c o n un F r o n t e n d r e m o t o . Su q u e s t ' u l t i m o è ora poss ib i l e

g u a r d a r e la TV e d e f f e t t u a r e reg is t raz ion i s f r u t t a n d o la s c h e d a TV p r e s e n t e

sul la m a c c h i n a B a c k e n d .

Se si u t i l i zzano d e i p l u g i n c o m e M y t h V i d e o e M y t h M u s i c , p e r ò , g l i ar-

ch iv i v i d e o e a u d i o p resen t i sul B a c k e n d n o n r i su l t e ranno access ib i l i da l

F r o n t e n d . Per r i m e d i a r e è necessa r io c o n d i v i d e r e t r a m i t e NFS le d i r e c t o r y

c o n t e n e n t i g l i arch iv i , in m o d o ta l e che il c l i en t possa l e g g e r l e .

Sulla m a c c h i n a in cu i è p r e s e n t e il B a c k e n d , q u i n d i , va ins ta l la to il se rver

NFS c o n il c o m a n d o sudo apt-get instali nfs-kernel-server. Poi SÌ d e v e

creare un a p p o s i t o f i le / e t c / e x p o r t s che p e r m e t t a al c l i en t d i ave re acces-

so a l le d i r e c t o r y c o n g l i arch iv i m u l t i m e d i a l i . Per c o m o d i t à si e s p o r t a l ' in -

te ra car te l la / v a r / l i b / m y t h t v , che è la d i r e c t o r y d i d e f a u l t ne l la q u a l e s o n o

racco l t e le var ie s o t t o d i r e c t o r y c o n t e n e n t i i f i le mus ica l i , le i m m a g i n i e i

v i d e o ges t i t i da i d i ve rs i p l u g i n . Ecco un f i le / e t c / e x p o r t s d i e s e m p i o :

/var/lib/mythtv 192.168.1.5(rw)

In q u e s t a riga v i e n e c o n c e s s o alla m a c c h i n a c o n ind i r i zzo IP 1 9 2 . 1 6 8 . 1 . 5

l 'accesso in l e t tu ra e scr i t tu ra a / v a r / l i b / m y t h t v . D o p o aver m o d i f i c a t o il f i le

va a g g i o r n a t a la c o n f i g u r a z i o n e d e l server NFS c o n sudo exportfs -a.

Sulla m a c c h i n a c l i en t , q u i n d i , n o n resta che m o n t a r e la d i r e c t o r y r e m o t a .

Il p e r c o r s o d i q u e s t a d i r e c t o r y d e v e essere il m e d e s i m o sul F r o n t e n d re-

m o t o e sul B a c k e n d :

sudo mount -t nfs 192.168.1.4 :/var/lib/mythtv /var/lib/mythtv

In f ine, su l lo s tesso c l i en t , una vo l t a ve r i f i ca to che le ca r te l l e c o n i c o n t e n u t i

a u d i o e v i d e o s iano ora e f f e t t i v a m e n t e access ib i l i d a i rispettivi p l u g i n , p u ò

essere c rea ta u n ' a p p o s i t a riga in / e t c / f s t a b p e r m o n t a r e in a u t o m a t i c o la

d i r e c t o r y NFS:

192.168.1.4 :/var/lib/mythtv /var/lib/mythtv nfs rw 0 0

Page 270: Linux Ubuntu per Server e Reti.pdf

11. I server

Come installare e configurare mail server,

FTP server, web server e server DINI5.

N e l C a p i t o l o 8 si s o n o f o r n i t e le is t ruz ion i p e r c o n d i v i d e r e d e l l e d i r e c t o r y

t ra p iù m a c c h i n e c o n n e s s e in re te u t i l i z zando i p r o t o c o l l o N F S e S M B /

CIFS. In e n t r a m b i i casi, a ta l e s c o p o , sul la m a c c h i n a c h e e s p o r t a i d a t i

s o n o s ta te ins ta l la te d e l l e a p p l i c a z i o n i server.

In q u e s t o c a p i t o l o si p r e s e n t e r a n n o e ins ta l l e ranno al t r i s o f t w a r e d i t i p o

server d ' u s o c o m u n e . Si c o m i n c e r à c o n il ma i l se rver Post f ix , p o i si passerà

al server FTP v s f t p d e q u i n d i si ins ta l lerà A p a c h e c o m e w e b server e B I N D

c o m e server D N S .

Tu t t e q u e s t e a p p l i c a z i o n i s o n o du t t i l i , p o t e n t i m a a n c h e n o t e v o l m e n t e

c o m p l e s s e . N e l l e p a g i n e c h e s e g u o n o , q u i n d i , si f o r n i r a n n o le so le infor-

m a z i o n i d i base p e r una co r re t t a ins ta l laz ione e p e r una c o n f i g u r a z i o n e

m i n i m a l e .

Il mail server Postfix Post f ix è un M T A (Mai l Transfer A g e n t ) : si t r a t t a c i o è d i u n ' a p p l i c a z i o n e

c h e ha il c o m p i t o d i t ras fe r i re i m e s s a g g i d i p o s t a e l e t t r o n i c a fra le m a c c h i -

ne. L ' ins ta l laz ione d i un M T A (o ma i l server) p e r m e t t e d i sm is ta re la p o s t a

che g l i u t e n t i si i nv iano , in m o d o a u t o m a t i c o o m e n o , a l l ' i n t e r n o de l la

m a c c h i n a loca le , m a c o n s e n t e a n c h e d i g e s t i r e a u t o n o m a m e n t e le e m a i l

in usc i ta e in en t ra ta da l la re te .

Page 271: Linux Ubuntu per Server e Reti.pdf

Nella catena di programmi che gestiscono la posta elettronica, un cl ient

di posta come Evolution o Mozilla Thunderb i rd ha il ruolo di Mail User

Agen t (MUA). L'applicazione che si occupa di consegnare le email ai

destinatari è chiamata invece Mail Delivery Agen t (MDA). Un noto e

diffuso M D A è procmail. Infine, un MUA può scaricare la posta da un

account remoto contat tando un server POP3 o IMAP.

Post f ix f o r n i s c e una r a g i o n e v o l e c o n f i g u r a z i o n e d i d e f a u l t , i no l t r e r iesce a

sma l t i r e car ich i a n c h e m o l t o e leva t i d i t r a f f i co e m a i l e i m p l e m e n t a avan-

za te p o l i t i c h e d i s icurezza. Ecco d u n q u e le is t ruz ion i p e r ins ta l lare q u e s t o

ma i l se rver e p e r a d a t t a r n e la c o n f i g u r a z i o n e al le p r o p r i e es igenze .

Installazione e configurazione iniziale

E s e g u e n d o il c o m a n d o sudo apt-get instali postfix verrà scar icato il pac-

c h e t t o p r i nc ipa le de l mai l server e sarà avviata una p r o c e d u r a d i c o n f i g u -

raz ione semp l i f i ca ta . Q u e s t a c o n s e n t e d i s tab i l i re in m o d o fac i le e ve l oce

de l l e impos taz i on i a d a t t e pe r a l cune t i p i c h e m o d a l i t à d i ut i l izzo d i un MTA.

Ne l la s c h e r m a t a che a p p a r e d o p o aver l anc ia to il c o m a n d o p e r l ' ins ta l la-

z i one d i Post f ix , d u n q u e , v e n g o n o p r e s e n t a t e le o p z i o n i d i s p o n i b i l i p e r la

c o n f i g u r a z i o n e , c o n una d e t t a g l i a t a s p i e g a z i o n e d e l lo ro s i gn i f i ca to . Pre-

m e n d o O K sarà p o i poss ib i l e sceg l i e re una d i q u e s t e o p z i o n i a l l ' i n t e r n o d i

un e l e n c o (F igura 11.1).

Se si v u o l e insta l lare Post f ix p e r il so lo s m i s t a m e n t o de l l a pos ta sul la m a c -

ch ina loca le (per e s e m p i o p e r r i cevere i m e s s a g g i inv ia t i da l d e m o n e m d a -

d m , v e d i C a p i t o l o 2, p a r a g r a f o " M a n u t e n z i o n e d e i d isch i R A I D " ) si sce lga

d a l l ' e l e n c o la v o c e S o l o l oca le .

Per c o n f i g u r a r e un M T A c o n n e s s o a I n t e r n e t si i nd i ch i i nvece S i t o i n t e r -

n e t , m e n t r e se si i n t e n d e ut i l izzare un ma i l server e s t e r n o , p e r e s e m p i o

q u e l l o d e l p r o p r i o p rov ide r , p e r l ' i nv io d e l l e e m a i l si se lez ion i la v o c e S i t o

in ternet con smarthost.

Page 272: Linux Ubuntu per Server e Reti.pdf

gurazioiie del pacche

Profilo generale di configurazione: Postf ix Configuration

Sito internet con smarthost Sistema satellite Solo locale

<0k> <Annulla>

Figura 11.1 -Le scelte possibili per una configurazione semplificata di postfix.

A s e c o n d a d e l l a sce l t a e f f e t t u a t a , c o m p a r i r a n n o d e l l e u l t e r i o r i s c h e r m a t e

d i c o n f i g u r a z i o n e . S c e g l i e n d o S i t o i n t e r n e t , p e r e s e m p i o , a p p a r i r à u n a

s c h e r m a t a in cu i si d o v r à i n d i c a r e u n m a i l n a m e , c i o è il n o m e d i d o m i n i o

c h e il m a i l s e r v e r d e v e a g g i u n g e r e ai m e s s a g g i p r i v i d i i n d i c a z i o n e d i d o -

m i n i o . Q u i si i nse r i sce s o l i t a m e n t e il F Q D N d e l l a m a c c h i n a ( p e r e s e m p i o ,

p i t a g o r a . h o m e . lan).

A q u e s t o p u n t o v e r r à c r e a t a una c o n f i g u r a z i o n e m i n i m a l e d i Pos t f i x e sarà

a v v i a t o il d e m o n e r e l a t i v o . L a n c i a n d o il c o m a n d o sudo dpkg-reconfigu-

re postfix, q u i n d i , c o m p a r i r à d i n u o v o la s c h e r m a t a p e r la c o n f i g u r a z i o n e

s e m p l i f i c a t a d e l m a i l se rver , m a in essa sarà p o s s i b i l e i m p o s t a r e u n n u m e -

ro m a g g i o r e d i p a r a m e t r i .

S c e g l i e n d o c o m e o p z i o n e S i t o i n t e r n e t , q u i n d i , s u p e r a t a la s c h e r m a t a re-

la t iva a l la sce l t a d e l m a i l n a m e sarà p o s s i b i l e i n d i c a r e i s e g u e n t i e l e m e n t i

d i c o n f i g u r a z i o n e :

• Destinatario della posta diretta a root e postmaster. Si indica l ' u t e n t e cu i v a n n o i n v i a t e le e m a i l d e s t i n a t e ag l i a c c o u n t d i a m m i n i -

s t r a z i o n e ;

Page 273: Linux Ubuntu per Server e Reti.pdf

• Destinazioni per cui accettare la posta. Le email per i domini ag-g i u n t i v i i n d i c a t i v e r r a n n o c o n s i d e r a t e l oca l i ;

• Forzare gli aggiornament i sincroni della coda di posta. Con i mo-d e r n i f i l e s y s t e m si lasc ia la r i s p o s t a d i d e f a u l t , N o ;

• L o c a i N e t w o r k s . Le re t i p e r le q u a l i il m a i l s e r v e r d e v e a c c e t t a r e d i

s m i s t a r e la p o s t a . V e n g o n o a c c e t t a t e p e r d e f a u l t s o l o le e m a i l d a

l o c a l h o s t . Per i nse r i r e a n c h e la r e t e 1 9 2 . 1 6 8 . 1 . 0 / 2 4 , p e r e s e m p i o , si

a g g i u n g a al la r i ga , 192.168.1.0/24;

• Limite di dimensione delle mailbox. Indica la dimensione massima p o s s i b i l e p e r le case l l e d i p o s t a . Il v a l o r e d i d e f a u l t è 0 ( i l l im i t a to ) .

Se n o n ci s o n o e v i d e n t i m o t i v i c o n t r a r i , si lasci t a l e v a l o r e ;

• Carattere per le estensioni degl i indirizzi locali e Protocol l i inter-n e t d a u s a r e . Si m a n t e n g a n o i v a l o r i p r e d e f i n i t i .

Configurazione diretta di Postfix

N e l caso in cu i la c o n f i g u r a z i o n e s e m p l i f i c a t a n o n r isu l tasse s u f f i c i e n t e , è

p o s s i b i l e i n t e r v e n i r e d i r e t t a m e n t e sui f i l e d i c o n f i g u r a z i o n e d e l ma i l server .

Il f i l e d i c o n f i g u r a z i o n e p r i n c i p a l e è / e t c / p o s t f i x / m a i n . c f . Q u i si p o s s o n o

i m p o s t a r e i v a l o r i p e r i p a r a m e t r i d e s i d e r a t i i n s e r e n d o d e l l e righe c o n la

s e g u e n t e s in tass i :

p a r a m e t r o = v a l o r e

E c c o u n e s e m p i o , c h e i m p o s t a p e r le e m a i l in usc i ta il re lay h o s t ( s m a r t

hos t ) m a i l . p r o v i d e r . i t :

r e l a y h o s t = [mail.provider.it]

L'aver i n s e r i t o il n o m e d e l l ' h o s t t r a p a r e n t e s i q u a d r e i n d i c a al m a i l s e r v e r

d i n o n e f f e t t u a r e a l c u n M X l o o k u p .

I p a r a m e t r i d i c o n f i g u r a z i o n e r i c h i a m a b i l i ne l f i l e m a i n . c f s o n o d i v e r s e c e n -

t i n a i a : ne l la T a b e l l a 11 .1 n e v e n g o n o i n d i c a t i a l c u n i t ra i p r i n c i p a l i , m e n t r e

u n e l e n c o c o m p l e t o d e i p a r a m e t r i è c o n t e n u t o ne l l a p a g i n a d i m a n u a l e d i

p o s t c o n f p o s t a ne l l a s e z i o n e 5 d i m a n (man 5 postconf).

Page 274: Linux Ubuntu per Server e Reti.pdf

Tabella 11.1 - Alcuni parametri fondamentali nella configurazione di Postfix. | Parametro Valore

m y d e s t i n a t i o n D o m i n i c h e il m a i l s e r v e r c o n s i d e r a l oca l i

m y d o m a i n I n d i c a il d o m i n i o d e l s e r v e r

m y h o s t n a m e I n d i c a il n o m e d e l s e r v e r

m y n e t w o r k s Le re t i c u i è c o n s e n t i t o u t i l i zza re il s e r v e r c o m e re lay

p e r l ' i n o l t r o d e l l a p o s t a

m y o r i g i n I n d i c a il d o m i n i o c h e v i e n e a g g i u n t o a l le e m a i l l oca l i

r e l a y h o s t Il m a i l s e r v e r cu i d e v o n o e s s e r e i nv ia t i i m e s s a g g i d i

p o s t a n o n l oca l i

Per m o d i f i c a r e u n p a r a m e t r o ne l f i l e m a i n . c f è a n c h e p o s s i b i l e u t i l i zza re il

c o m a n d o p o s t c o n f c o n l ' o p z i o n e -e. Per e s e m p i o , p e r i m p o s t a r e c o m e re-

lay h o s t m a i l . p r o v i d e r . i t si p u ò l anc i a re in c o n s o l e il s e g u e n t e c o m a n d o :

sudo p o s t c o n f -e "relayhost = [mail.provider.it]"

Un'a l t ra o p z i o n e u t i le d i p o s t c o n f è -n, c h e m o s t r a in o u t p u t l ' e l e n c o d e i pa ra -

m e t r i d i Post f ix c h e h a n n o va lo r i d i f f e ren t i d a que l l i d i d e f a u l t (F igura 11.2).

ale@pitagora:-$ postconf -n alias database = hash:/etc/aliases alias maps = hash:/etc/aliases appenddot mydomain = no biff = no configdirectory = /etc/postfix inet interfaces = all inetprotocols = all mailboxsizelimit = 0 mydestination = pitagora.home.Ian, pitagora, localhost.localdomain, localhost myhostname = pitagora mynetworks = 127.0.0.0/8 [: :ffff: 127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme directory = no recipientdelimiter = + relayhost = smtp tlssessioncache database = btree:${data_directory}/smtp_scache smtpd banner = $myhostname ESMTP $mail name (Ubuntu) smtpdjtlscertfile = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpdtlskey file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd tls session cache database = btree:${datadirectory}/smtpd scache smtpdusetls = yes ale@pitagora:-$

Figura 11.2-11 comando postconf-n mostra tutti i parametri con dei valori non di default.

Page 275: Linux Ubuntu per Server e Reti.pdf

L i n u x Utiuntu per server e reti

E s e g u e n d o p o s t c o n f -d, i n v e c e , v e n g o n o v i sua l i zza t i in o u t p u t i v a l o r i d i

d e f a u l t d i t u t t i i p a r a m e t r i , m e n t r e se al la s tessa o p z i o n e v i e n e a g g i u n t o

un p a r a m e t r o il p r o g r a m m a m o s t r a il v a l o r e d i d e f a u l t d e l s o l o p a r a m e t r o

i n s e r i t o .

L a n c i a n d o p o s t c o n f senza a r g o m e n t i , i n f i n e , in c o n s o l e a p p a r e la l ista d i

t u t t i i p a r a m e t r i d i c o n f i g u r a z i o n e c o n i rispettivi v a l o r i .

FTP server cari vsftpd Ta lvo l t a si ha b i s o g n o d i u n o s t r u m e n t o s e m p l i c e d a c o n f i g u r a r e e d a g e -

st i re c h e c o n s e n t a d i f o r n i r e l ' a c c e s s o in r e t e a d e i f i l e p r e s e n t i su una

m a c c h i n a . Il s e r v e r FTP v s f t p d p u ò esse re il g i u s t o c a n d i d a t o p e r c o m p i t i

s im i l i : g r a z i e a q u e s t a a p p l i c a z i o n e , i n f a t t i , f o r n i r e u n se rv i z io d i FTP " a n o -

n i m o " è d a v v e r o s e m p l i c e .

Installazione del server

U n s e r v e r FTP c o n f i g u r a t o p e r c o n s e n t i r e l ' a c c e s s o a n o n i m o p e r m e t t e

d i c o n d i v i d e r e f i l e c o n u t e n t i p r i v i d i u n o s p e c i f i c o a c c o u n t su l s e r v e r

s t e s s o . Si t r a t t a , q u i n d i , d i u n m o d o e f f i c a c e p e r d i s t r i b u i r e d e i f i l e p u b -

b l i c a m e n t e .

Per i ns ta l l a re v s f t p d e r e n d e r e s u b i t o o p e r a t i v o il s e r v e r b a s t a l anc i a re il

c o m a n d o s e g u e n t e :

sudo a p t - g e t instali v s f t p d

Una v o l t a s c a r i c a t o il p a c c h e t t o d a l l a r e te , q u e s t o v e r r à i n s t a l l a t o , sarà

c r e a t o l ' u t e n t e f t p ne l s i s t e m a , c o n la re la t i va d i r e c t o r y / h o m e / f t p , e v e r r à

a v v i a t o il d e m o n e vsftpd.

Se t u t t o c i ò c h e si v u o l e è u n s e m p l i c e se rv i z i o d i FTP a n o n i m o la c o n f i g u -

r a z i o n e d e l s e r v e r è t e r m i n a t a . Bas te rà q u i n d i i nse r i re i f i l e d a d i s t r i b u i r e

a l l ' i n t e r n o d i / h o m e / f t p e t a l e d i r e c t o r y sarà a c c e s s i b i l e a t u t t e le m a c c h i -

n e cu i è c o n c e s s a la c o n n e s s i o n e al s e r v e r FTP.

Page 276: Linux Ubuntu per Server e Reti.pdf

ale@pitagora:~$ sudo apt-get instali vsftpd Lettura della lista dei pacchetti in corso,.. Fatto Generazione dell'albero delle dipendenze in corso Lettura delle informazioni di stato... Fatto I seguenti pacchetti NUOVI (NEW) saranno installati:

vsftpd 0 aggiornati, 1 installati, 0 da rimuovere e 0 non aggiornati. È necessario prendere 0B/96,8kB di archivi. Dopo questa operazione verranno occupati 401kB di spazio su disco. Selezionato il pacchetto vsftpd, che non lo era, (Lettura del database ... 179780 file e directory attualmente installati.) Spacchetto vsftpd (da .../vsftpd_2.0.6-lubuntul_i386.deb) ... Configuro vsftpd (2.0.6-lubuntul) ... Aggiunta dell'utente di sistema «ftp» (UID 114) ... Aggiunta del nuovo utente «ftp» (UID 114) con gruppo «nogroup» ... La home directory "/home/ftp" non è stata creata.

* Starting FTP server: vsftpd [ OK ]

a l e @ p i t a g o r a : |

Figura 11.3 - Installando il pacchetto vsftpd verrà attivato automaticamente un servizio FTP anonimo.

Configurazione del server

N e l l a c o n f i g u r a z i o n e p r e i m p o s t a t a d i v s f t p d è a b i l i t a t o l ' a c c e s s o a n o n i m o

al s e r v e r FTP, m a n o n è c o n s e n t i t o a g l i u t e n t i a n o n i m i d i i nv i a re d e i f i l e al

server . I n o l t r e , n o n è p e r m e s s a la c o n n e s s i o n e ag l i u t e n t i n o r m a l i .

Per m o d i f i c a r e la c o n f i g u r a z i o n e d i v s f t p d si d e v e e n t r a r e ne l f i l e / e t c / v s f -

t p d . c o n f e c a m b i a r e i p a r a m e t r i d e s i d e r a t i . N e l l a T a b e l l a 1 1 . 2 s o n o i n d i c a -

t i i p a r a m e t r i p r i n c i p a l i , c o n i r i s p e t t i v i v a l o r i d i d e f a u l t .

Tabella 1 1 . 2 - 1 parametr i principali di vsf tpd.conf . Parametro Valore

a n o n y m o u s _

e n a b l e C o n s e n t e l ' a c c e s s o a g l i u t e n t i a n o n i m i . D e f a u l t YES

w r i t e _ e n a b l e C o n s e n t e l 'accesso in scr i t tura sul server FTP. De fau l t N O

a n o n _ u p l o a d _

e n a b l e

P e r m e t t e a g l i u t e n t i a n o n i m i d i f a re u p l o a d sul s e r v e r

FTP ( d e v e e s s e r e a t t i v o a n c h e il p a r a m e t r o w r i t e _ e n a -

b le ) . D e f a u l t N O

Page 277: Linux Ubuntu per Server e Reti.pdf

Parametro

a n o n _ m k d i r _

w r i t e e n a b l e

Valore P e r m e t t e ag l i u t e n t i a n o n i m i d i c rea re d i r e c t o r y ( d e v e

esse re a t t i v o a n c h e il p a r a m e t r o w r i t e _ e n a b l e ) . D e -

f a u l t N O

a n o n _ r o o t I nd i ca la d i r e c t o r y d i p a r t e n z a p e r g l i access i a n o n i m i .

Per d e f a u l t il p a r a m e t r o n o n i n d i c a a l c u n a d i r e c t o r y

l o c a l _ e n a b l e P e r m e t t e l ' a ccesso FTP ag l i u t e n t i loca l i . D e f a u l t N O

l i s ten

A v v i a al b o o t un d e m o n e v s f t p d (YES), a l t r i m e n t i il ser-

ve r FTP v i e n e a v v i a t o d a u n s u p e r s e r v e r c o m e x i n e t d

( N O ) . D e f a u l t su U b u n t u YES

x f e r l o g _ e n a b l e G e n e r a m e s s a g g i d i l o g p e r le o p e r a z i o n i d i u p l o a d e

d o w n l o a d . D e f a u l t su U b u n t u YES

Ecco , p e r e s e m p i o , le r i g h e d i c o n f i g u r a z i o n e p e r c o n s e n t i r e la sc r i t t u ra

ag l i u t e n t i a n o n i m i e i n d i c a r e c o m e d i r e c t o r y d i p a r t e n z a / m n t / f t p :

w r i t e _ e n a b l e = Y E S

a n o n _ u p 1 o a d _ e n a b 1 e = Y E S

anon_root = /mnt/ftp

Se si i n t e n d e f o r n i r e a c c e s s o a n c h e ag l i u t e n t i n o r m a l i p u ò esse re u t i l e

i n d i c a r e q u a l i f ra q u e s t i p o s s o n o c o l l e g a r s i al server , e s c l u d e n d o cos ì t u t t i

g l i a l t r i u t e n t i d a l se rv iz io . Le r i g h e n e c e s s a r i e p e r o t t e n e r e q u e s t o s o n o

le s e g u e n t i :

local_enable=YES

u s e r l i s t _ e n a b l e = Y E S

userlist_deny=NO

Il s i g n i f i c a t o d e l p r i m o p a r a m e t r o è s p i e g a t o ne l la Tabe l l a 11 .2 , m e n t r e le

d u e r i g h e success i ve r i c h i e d o n o q u a l c h e i n f o r m a z i o n e a g g i u n t i v a .

La r i ga useriist_enabie=YES fa ca r i ca re al se r ve r la l ista d i u t e n t i c o n t e n u t a

ne l f i l e i n d i c a t o d a l p a r a m e t r o useriist_fiie, c h e p e r d e f a u l t è / e t c / v s f t p d .

u s e r j i s t . La r iga useriist_deny=No, q u i n d i , i n d i c a c h e t a l e f i l e d e v e essere

i n t e r p r e t a t o c o m e e l e n c o d e g l i u t e n t i cu i è c o n c e s s o l ' accesso al se rve r

FTP: se si f o s s e i n s e r i t o YES c o m e v a l o r e d e l p a r a m e t r o useriist_deny,

i n v e c e , il f i l e s a r e b b e s t a t o i n t e r p r e t a t o c o m e e l e n c o d e g l i u t e n t i cu i è

v i e t a t o l ' accesso .

Page 278: Linux Ubuntu per Server e Reti.pdf

Inser i te q u e s t e t re righe in / e t c / v s f t p d . c o n f , n o n rimane p o i che scr ivere in

/ e t c / v s f t p d . u s e r _ l i s t g l i u t e n t i c h e p o s s o n o co l l ega rs i al server FTP.

Per a g g i o r n a r e la c o n f i g u r a z i o n e d e l server d o p o aver a p p o r t a t o d e l l e

m o d i f i c h e al f i le d i c o n f i g u r a z i o n e , q u i n d i , b i s o g n a lanc iare il c o m a n d o

sudo /etc/init.d/vsftpd reload.

Il d e m o n e v s f t p d s e g u e le impos taz ion i inser i te nei f i le / e t c / hos t s .a l l ow e /

e tc /hos ts .deny , d u n q u e pe r ges t i re g l i accessi è poss ib i le in te rven i re su q u e -

sti d u e f i le. Per e s e m p i o , p e r consen t i re a l l ' ind i r izzo IP 192.168 .1 .5 il co l l ega -

m e n t o al server FTP si p u ò inserire la riga s e g u e n t e in /e t c /hos ts .a l l ow :

vsftpd: 192.168.1.5

Il web server Apache A p a c h e è u n o d e i w e b server p i ù d i f fus i su In te rne t . Si t r a t t a d i una p ia t -

t a f o r m a f less ib i le e d i g r a n d e p o t e n z a che p u ò essere ut i l izzata p ro f i cua -

m e n t e a n c h e p e r f o r n i r e p a g i n e w e b a l l ' i n t e r n o d i una L A N o c o m e p ra t i -

c o a m b i e n t e d i s v i l u p p o p e r la c reaz ione d i a p p l i c a z i o n i w e b , se inser i to

p e r e s e m p i o a l l ' i n t e r n o d i un c o m p l e t o s i s tema LAMP.

C o n f i g u r a r e s e c o n d o le p r o p r i e necess i tà un w e b server c o m p l e s s o c o m e

A p a c h e p u ò essere u n ' o p e r a z i o n e l abo r i osa m a , a l m e n o p e r u n ' i m p o s t a -

z i o n e e l e m e n t a r e , la c o n f i g u r a z i o n e d i d e f a u l t in U b u n t u Server p u ò c o n -

s iderars i un v a l i d o p u n t o d i pa r tenza .

Installazione di Apache

Per ins ta l lare A p a c h e , i m o d u l i p r i nc ipa l i e a lcun i p r o g r a m m i accessor i

bas ta lanc iare il c o m a n d o sudo apt-get instali apache2.

Apache è un web server modulare. È composto da una sezione "core"

centrale e da un insieme di modul i aggiunt iv i che forniscono funzionalità

supplementar i . Ci sono modul i per gestire modal i tà dif ferenti di autenti-

cazione, per aggiungere il suppor to a SSL e TLS e così via. Per un indice

comple to dei modul i si veda:

h t tp : / /h t tpd.apache.Org/docs/2 .0 /mod/

Page 279: Linux Ubuntu per Server e Reti.pdf

Può cap i t a re che n e l l ' o u t p u t d e l c o m a n d o c o m p a i a un e r ro re d e l g e n e r e :

apache2 : Could not reliably determine the server' s fully qualified

domain name, using 127.0.1.1 for ServerName

C i ò s ign i f i ca c h e al server n o n risulta a s s e g n a t o un F Q D N . Per r i so lvere

il p r o b l e m a si p u ò i n te r ven i re sul f i l e / e t c / h o s t s , c o m e s p i e g a t o ne l pa -

rag ra fo A s s e g n a z i o n e d e i n o m i d i h o s t d e l C a p i t o l o 5. O p p u r e si p u ò

apr i re c o n un e d i t o r da r o o t il f i l e / e t c / a p a c h e 2 / c o n f . d / f q d n e inser i re la

r iga s e g u e n t e :

ServerName localhost

A q u e s t o p u n t o , se si p r o v a a d a c c e d e r e a l l ' i nd i r i zzo h t t p : / / 1 2 7 . 0 . 0 . 1 c o n

un qua ls ias i w e b b r o w s e r d o v r e b b e a p p a r i r e una p a g i n a s im i le a que l l a

v is ib i le n e l l ' i m m a g i n e s e g u e n t e (F igura 11.4). Bene ! Il w e b server è a t t i v o

e p e r f e t t a m e n t e f u n z i o n a n t e .

I File Modifica Visualizza Cronologia Segnalibri st iumenti Suida

- C , Í • http u m 0 ri l i

I t wo rks !

Configurazione del web server

I f i l e d i c o n f i g u r a z i o n e d i A p a c h e s o n o c o n t e n u t i ne l la d i r e c t o r y / e t c / a p a c h e 2 .

Page 280: Linux Ubuntu per Server e Reti.pdf

N e l l a Tabe l l a 11 .3 v e n g o n o e l e n c a t i i p r i n c i p a l i f i le e le d i r e c t o r y c h e

t r o v a n o in / e t c / a p a c h e 2 .

Tabella 11 .3 -1 file e le directory in /etc/apache2. | Elemento Utilizzo I

a p a c h e 2 . c o n f Il f i l e d i c o n f i g u r a z i o n e p r i n c i p a l e . C o n t i e n e le i m p o -

s taz ion i g e n e r a l i p e r il se r ve r w e b

p o r t s . c o n f F i le d i c o n f i g u r a z i o n e in cu i si i m p o s t a la p o r t a d i

a s c o l t o d e l se rve r w e b

s i t e s - a v a i l a b l e / La d i r e c t o r y c o n t i e n e i f i l e c o n le c o n f i g u r a z i o n i s p e c i -

f i c h e d e i s i n g o l i h o s t v i r t ua l i (siti) d i s p o n i b i l i

N e l l a d i r e c t o r y s o n o i n d i c a t i g l i h o s t v i r t ua l i a t t i v i sul

s i t e s - e n a b l e d / server . Q u e s t i f a n n o r i f e r i m e n t o ag l i h o s t v i r t ua l i p r e -

sen t i ne l l a d i r e c t o r y s i t e s - a v a i l a b l e

m o d s - a v a i l a b l e / La d i r e c t o r y c o n t i e n e i f i l e p e r ca r i ca re e c o n f i g u r a r e i

m o d u l i d i s p o n i b i l i

m o d s - e n a b l e d / Ne l la d i r e c t o r y s o n o ind ica t i i m o d u l i at t iv i sul server. Fan-

n o riferimento a q u a n t o d i s p o n i b i l e in m o d s - a v a i l a b l e

c o n f . d / I f i le in q u e s t a d i r e c t o r y v e n g o n o le t t i d a a p a c h e 2 . c o n f .

c o n f . d / C o n t e n g o n o d i r e t t i v e a g g i u n t i v e p e r la c o n f i g u r a z i o n e

S e g u e n d o q u e s t a s t r u t t u r a a d o t t a t a p e r o r g a n i z z a r e la c o n f i g u r a z i o n e d i

A p a c h e , o g n i s i t o c h e si i n t e n d e g e s t i r e r i c h i e d e l ' i n s e r i m e n t o d i un f i l e

a p p o s i t o ne l la d i r e c t o r y s i t es -ava i l ab le . C i a s c u n o d i q u e s t i f i l e , q u i n d i ,

r a p p r e s e n t a un d i v e r s o h o s t v i r t u a l e .

U n o s tesso se rve r w e b p u ò g e s t i r e p i ù si t i e c i ò è p o s s i b i l e g r a z i e a l l ' u t i l i z -

zo d e g l i h o s t v i r tua l i : la sce l ta d i q u a l e s i t o d e v e r i s p o n d e r e a una spec i f i ca

richiesta v i e n e d e t e r m i n a t a d a l n o m e d e l s i t o c o n t a t t a t o o d a l l ' i n d i r i z z o IP

d i d e s t i n a z i o n e . In q u e s t o m o d o , una s i n g o l a m a c c h i n a p u ò fa r f u n z i o n a r e

a n c h e d e c i n e e d e c i n e d i s i t i w e b .

N e l l a c o n f i g u r a z i o n e d i d e f a u l t è a t t i v o un u n i c o h o s t v i r t u a l e , la cu i c o n -

f i g u r a z i o n e è c o n t e n u t a ne l f i l e / e t c / a p a c h e 2 / s i t e s - a v a i l a b l e / d e f a u l t . Le

righe in iz ia l i d i q u e s t o f i l e s o n o v is ib i l i in F i g u r a 11 .5 .

Page 281: Linux Ubuntu per Server e Reti.pdf

JameVirtualHost * <VirtualHost *>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/ «Directory />

Options FollowSymLinks AllowOverride None

</Directory> «Directory /var/www/>

Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ «Directory "/usr/lib/cgi-bin">

AllowOverride None Options +ExecCGI -Multiviews +SymLinksIfOwnerMatch Order allow,deny Allow from all

</Directory>

1.1 Cim 1

Figura 11.5 - La sezione iniziale del file che definisce l'host virtuale di default.

La p r i m a r i ga è N a m e v i r t u a i H o s t * . La d i r e t t i v a N a m e v i r t u a i H o s t p e r m e t t e

d i i n d i c a r e l ' i n d i r i z z o IP su cu i il w e b s e r v e r sarà in a s c o l t o p e r le r i c h i e s t e

d i c o n n e s s i o n e a g l i h o s t v i r t ua l i . In q u e s t a r i ga , q u i n d i , si s t a b i l i s c e c h e il

s e r v e r p o t r à r i c e v e r e r i c h i e s t e su qua l s i as i i n d i r i z z o (*).

La s e c o n d a r i ga c o n t i e n e la d i r e t t i v a < v i r t u a i H o s t > , c h e d e f i n i s c e la c o n f i -

g u r a z i o n e d i u n h o s t v i r t u a l e . Q u e s t a d i r e t t i v a p u ò a p p l i c a r s i a u n o s p e c i -

f i c o i n d i r i z z o IP o a u n n o m e c o m p l e t o d i d o m i n i o o p p u r e , c o m e in q u e s t o

c a s o , p u ò r i fe r i rs i a t u t t i g l i i nd i r i zz i (*). La c o n f i g u r a z i o n e d e l l ' h o s t v i r t u a l e

va p o i ch iusa c o n la d i r e t t i v a < / v i r t u a i H o s t > .

La r iga s e r v e r A d m i n w e b m a s t e r @ i o c a i h o s t , q u i n d i , c o n t i e n e l ' i n d i r i z z o e m a i l

c o m u n i c a t o ai c l i e n t d a l w e b s e r v e r in c a s o d i e r r o r i . La r iga D o c u m e n t R o o t

/var/www/, i n v e c e , s t a b i l i s c e c h e la d i r e c t o r y cu i d a r à a c c e s s o l ' h o s t v i r t u a -

le è / v a r / w w w / su l la m a c c h i n a server .

Q u a n d o c o n il b r o w s e r si a p r e l ' i n d i r i z z o 1 2 7 . 0 . 0 . 1 , d u n q u e , v e r r à a p e r t o

il f i l e i n d e x . h t m l c o n t e n u t o in / v a r / w w w / , p e r c h é q u e s t a è la d i r e c t o r y cu i

p u n t a la d i r e t t i v a D o c u m e n t R o o t d e l l ' h o s t v i r t u a l e d i d e f a u l t .

Page 282: Linux Ubuntu per Server e Reti.pdf

I n f i ne , le r i g h e r a c c h i u s e t ra le d i r e t t i v e < D i r e c t o r y > e < / D i r e c t o r y > c o n -

t e n g o n o o p z i o n i c h e si a p p l i c a n o a l le s o l e d i r e c t o r y i n d i c a t e , s o t t o d i -

r e c t o r y i nc l use .

Q u e s t e , d u n q u e , s o n o le p a r t i p i ù rilevanti d e l f i l e / e t c / a p a c h e 2 / s i t e s - a v a i -

l a b l e / d e f a u l t , a l m e n o p e r u n a r i c o g n i z i o n e in i z ia le d e l l e o p z i o n i d i c o n f i -

g u r a z i o n e d i s p o n i b i l i in A p a c h e .

Modificare la configurazione

A q u e s t o p u n t o è p o s s i b i l e u t i l i zza re il f i l e d e l v i r t u a l h o s t d i d e f a u l t c o m e

c a n o v a c c i o p e r la c o n f i g u r a z i o n e d e l p r o p r i o s i t o .

N e l f i l e / e t c / a p a c h e 2 / s i t e s - a v a i l a b l e / d e f a u l t , q u i n d i , si m o d i f i c h i la riga

c o n la d i r e t t i v a D o c u m e n t R o o t i n s e r e n d o c o m e v a l o r e la d i r e c t o r y in cu i

s o n o c o n t e n u t i i f i l e d e l p r o p r i o s i t o w e b . E c c o u n e s e m p i o :

D o c u m e n t R o o t / u s r / l o c a l / s h a r e / w e b /

NameVirtualHost * <VirtualHost *>

ServerAdmin webmaster@localhost

DocumentRoot /usr/local/share/web/ «Directory />

Options FollowSymLinks AllowOverride None

</Directory> «Directory /usr/local/share/web/>

Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ «Directory "/usr/lib/cgi-bin">

AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all

«/Directory» Cim "default" 43L, 1009C scritti 4,1-2 Cim

Figura 1 1.6 - Cambiando poche righe nel file default è possibile creare una configura-zione per il proprio sito.

Page 283: Linux Ubuntu per Server e Reti.pdf

Q u i n d i , b i s o g n a c a m b i a r e la r iga «Directory /var/www/> i n s e r e n d o al p o -

s to d i / v a r / w w w / la d i r e c t o r y i nd i ca ta da DocumentRoot. In q u e s t o m o d o il

b l o c c o d i righe d i c o n f i g u r a z i o n e p e r / v a r / w w w / ver rà a t t r i b u i t o al la n u o v a

d i rec to ry .

In f ine, d a t o che s o n o s ta te m o d i f i c a t e d e l l e i m p o s t a z i o n i , b i s o g n a far ri-

l e g g e r e al server la c o n f i g u r a z i o n e m e d i a n t e il c o m a n d o sudo /etc/init.

d/apache2 reload.

Aggiungere un sito

La c o n f i g u r a z i o n e p rede f i n i t a d i A p a c h e su U b u n t u c o n s e n t e d i a g g i u n g e r e

u l ter ior i siti al w e b server in m o d o d a v v e r o semp l i ce . A n c h e in q u e s t o caso,

il p u n t o d i par tenza sarà il f i le d e f a u l t in / e t c / apache2 / s i t es -ava i l ab l e .

Si crei un n u o v o f i le , c h i a m a t o p e r e s e m p i o s i to , e si c o p i al suo i n t e r n o il

c o n t e n u t o d e l f i le d e f a u l t :

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-

available/sito

A d e s s o b i s o g n a m o d i f i c a r e il n u o v o f i le i n t e r v e n e n d o sul le p r i nc ipa l i d i re t -

t i ve d i c o n f i g u r a z i o n e .

I nnanz i t u t t o , va e l i m i n a t a la r iga in iz ia le c o n la d i re t t i va NamevirtuaiHost:

q u e s t a , in fa t t i , v i e n e le t ta da l f i le d e f a u l t e n o n b i s o g n a inser i r la n u o v a -

m e n t e . A l l ' i n t e r n o d e l b l o c c o <virtuaiHost> si d e v e p o i a g g i u n g e r e una

riga serverName c o n t e n e n t e il n o m e d i hos t c o m p l e t o p e r il s i to . Una r iga

d i e s e m p i o è la s e g u e n t e :

ServerName sito.internet.it

La r iga serverName c o n s e n t e d i i n d i v i d u a r e il virtuaiHost che d e v e r i spon-

d e r e a una r ich ies ta e f f e t t u a t a al server w e b da un c l ien t . Se n o n v i e n e

t r o v a t o a lcun hos t v i r t ua le che c o r r i s p o n d a al n o m e d i hos t r i ch ies to , v i e n e

i n t e r p e l l a t o l ' hos t v i r t ua le d i d e f a u l t , nel la cu i c o n f i g u r a z i o n e la d i r e t t i va

ServerName è assente .

N e l b l o c c o <virtuaiHost> va p o i m o d i f i c a t a la r iga c o n la d i re t t i va Docu-

mentRoot in m o d o ta l e che q u e s t a i nd i ch i la d i r e c t o r y rad ice p e r il n u o v o

s i to. Poi si c a m b i a la r iga «Directory /var/www/> i n s e r e n d o a n c h e q u i la

d i r e c t o r y rad i ce d e s i d e r a t a .

Page 284: Linux Ubuntu per Server e Reti.pdf

F a t t o q u e s t o , si p o s s o n o m o d i f i c a r e a l t r e p a r t i r i p r e s e d a l f i l e d e f a u l t , p e r

e s e m p i o e l i m i n a n d o le r i g h e r e l a t i v e a l la d i r e c t o r y / u s r / s h a r e / d o c , c h e c o -

s t i t u i s c o n o u n i n u t i l e d u p l i c a t o , o p p u r e c a m b i a n d o le d i r e t t i v e E r r o r L o g e

c u s t o m L o g in m o d o t a l e d a c r e a r e f i l e d i l o g d i v e r s i p e r i va r i s i t i .

E f f e t t u a t e t u t t e le m o d i f i c h e c h e si r e p u t a n o n e c e s s a r i e , q u i n d i , si sa lva

il f i l e s i t o e lo si a t t i va ne l l a c o n f i g u r a z i o n e d i A p a c h e c o n il c o m a n d o

s e g u e n t e :

sudo a 2 e n s i t e sito

Il c o m a n d o s p e c u l a r e , d a l l a m e d e s i m a s in tass i , p e r d i s a b i l i t a r e u n s i t o è

a2dissite. Per d i s a t t i v a r e l ' h o s t v i r t u a l e c o n f i g u r a t o ne l f i l e s i t o , q u i n d i , va

l a n c i a t o sudo a 2 d i s s i t e sito.

D o p o l ' e s e c u z i o n e d e i c o m a n d i a 2 e n s i t e e a 2 d i s s i t e è i n f i n e n e c e s -

s a r i o f a r r i l e g g e r e a d A p a c h e la c o n f i g u r a z i o n e c o n s u d o /etc/init. d / a p a c h e 2 r e l o a d .

ale@pitagora:~$ sudo a2ensite sito Site sito installed; run /etc/init.d/apache2 reload to enable. ale@pitagora:~$ sudo /etc/init.d/apache2 reload * Reloading web server config apache2 [ OK ]

ale@pitagora:-$ |

Figura 11.7- Dopo aver attivato un sito si fa rileggere la configurazione al server web.

A q u e s t o p u n t o A p a c h e g e s t i s c e p i ù si t i c h e rispondono a u n m e d e s i m o

IP, m a p e r f a re in m o d o c h e ta l i s i t i s i a n o r a g g i u n g i b i l i b i s o g n a i n t e r v e n i r e

Page 285: Linux Ubuntu per Server e Reti.pdf

sul la c o n f i g u r a z i o n e d e l server D N S e a g g i u n g e r e a p p o s i t i r e c o r d D N S d i

t i p o C N A M E .

Per e f f e t t u a r e d e l l e p r o v e v e l o c i c o n g l i h o s t v i r t ua l i c o n f i g u r a t i , p e r ò ,

è s u f f i c i e n t e a g g i u n g e r e ne l f i le / e t c / h o s t s d e l l a m a c c h i n a se rve r d e l l e

righe a g g i u n t i v e . Q u e s t e d e v o n o c o n t e n e r e l ' i nd i r i zzo IP d e l w e b serve r

e i n o m i d i h o s t a cu i r i s p o n d o n o g l i h o s t v i r t ua l i in cu i è p r e s e n t e la d i -

re t t i va ServerName.

Host: virtuali IP-based

La p r o c e d u r a d i c o n f i g u r a z i o n e p resen ta ta in q u e s t i pa rag ra f i m o s t r a

c o m e c reare d e g l i hos t v i r tua l i d i t i p o n a m e - b a s e d (un so lo ind i r i zzo IP, sit i

i den t i f i ca t i da l n o m e d e l l ' h o s t r i ch ies to da l c l ien t ) .

Per ut i l izzare hos t v i r tua l i IP -based ( indir izzi IP d i f f e ren t i p e r sit i d i f f e ren t i ) ,

i nvece , si d e v e c o l l e g a r e o g n i s i n g o l o hos t v i r t ua le a un d i v e r s o ind i r i zzo

IP: si p u ò o t t e n e r e q u e s t o a d o t t a n d o p iù c o n n e s s i o n i d i re te o p p u r e c o n -

f i g u r a n d o d e l l e i n te r f acce d i re te v i r tua l i .

Q u e s t a s e c o n d a o p z i o n e è m o l t o c o m o d a . Per s f ru t tar la bas ta richiamare

ifconfig in q u e s t o m o d o :

sudo ifconfig ethO : 0 192.168.1.100 netmask 255.255.255.0

Il c o m a n d o crea l ' i n te r facc ia v i r t ua le e t h 0 : 0 , le assegna l ' i nd i r i zzo

1 9 2 . 1 6 8 . 1 . 1 0 0 e d i ch ia ra una n e t m a s k 2 5 5 . 2 5 5 . 2 5 5 . 0 . È q u i n d i poss ib i l e

a t t i va re c o n lo s tesso p r o c e d i m e n t o le i n te r f acce e t h 0 : 1 , e t h 0 : 2 e così v ia.

Per c o n f i g u r a r e le i n te r f acce d i re te v i r tua l i a l l ' avv io de l l a m a c c h i n a è suf f i -

c i e n t e a g g i u n g e r e in / e t c / n e t w o r k / i n t e r f a c e s d e i b l o c c h i c o n t e n e n t i righe

inizial i c o m e la s e g u e n t e :

iface ethO: 0 inet static

C r e a t e le i n te r f acce v i r tua l i , d u n q u e , p e r c o n f i g u r a r e A p a c h e si s e g u o -

n o le is t ruz ion i f o r n i t e in p r e c e d e n z a p e r g l i hos t v i r tua l i n a m e - b a s e d . In

q u e s t o caso, p e r ò , n o n si d e v e inser i re a lcuna d i re t t i va NamevirtuaiHost

e ne l le righe <virtuaiHost> va inser i to l ' i nd i r i zzo IP de l l ' i n t e r f acc i a d i re te

v i r tua le a b b i n a t a a l l ' hos t v i r t ua le c o r r e n t e .

Page 286: Linux Ubuntu per Server e Reti.pdf

Ecco q u i n d i un s e m p l i c e b l o c c o <virtuaiHost> d i e s e m p i o :

cVirtualHost 192.168.1.100> ServerAdmin webmaster@localhost DocumentRoot /usr/local/share/sito2 ServerName www.secondosito.com </VirtualHost>

Il server DIM5 BIIX1D N e l C a p i t o l o 5 si è v i s to c o m e t r a d u r r e i n o m i d i hos t in indi r izz i IP inseren-

d o o p p o r t u n e r i g h e d i c o n f i g u r a z i o n e ne l f i le / e t c / h o s t s . Q u e s t o m e t o d o

p u ò essere f u n z i o n a l e in ret i d i p i c co l i s s ime d i m e n s i o n i , m a g a r i cos t i t u i t e

da d u e o t r e m a c c h i n e , m a è c e r t o i ne f f i c i en te e p o c o p r a t i c o in L A N an-

che p o c o p i ù g r a n d i .

In q u e s t o caso è necessar io far ges t i r e la r i so luz ione d e i n o m i d i hos t a un

server D N S ins ta l la to su un c o m p u t e r de l l a L A N : le var ie m a c c h i n e nel la

re te l oca le c o n t a t t e r a n n o q u i n d i il se rver D N S o g n i vo l t a c h e d o v r a n n o

r i so lvere un n o m e . Un be l passo avan t i rispetto al d o v e r rep l i ca re e m o d i -

f i care il f i l e / e t c / h o s t s su t u t t i i PC de l l a re te .

N e i pa rag ra f i che s e g u o n o , q u i n d i , si f o r n i r a n n o le is t ruz ion i p e r insta l lare

il se rve r D N S B I N D e u t i l i zzarne a l cune f unz iona l i t à d i base .

Installazione e configurazione iniziale

Per ins ta l lare B I N D va l anc ia to in c o n s o l e il c o m a n d o sudo apt-get in-

stali bind9. A l t e r m i n e de l l ' i ns ta l l az ione , q u e l l o che si o t t e r r à sarà un

D N S server d i c a c h i n g a t t i v o nel s i s tema e f o r n i t o d i una c o n f i g u r a z i o n e

quas i c o m p l e t a .

Pr ima d i c o n t i n u a r e , è necessar ia q u a l c h e p rec i saz ione in iz ia le sui t i p i d i

server D N S che è poss ib i l e i m p l e m e n t a r e :

• S e r v e r d i c a c h i n g . Il D N S server ins ta l la to c o n t a t t a un a l t ro D N S

server p e r la r i so luz ione d e i n o m i e m e m o r i z z a le r i spos te ne l la ca-

che , così da o f f r i r l e ai c l i en t p e r le success ive r i ch ies te ;

• S e r v e r a u t o r i t a t i v o p r i m a r i o . Il D N S server i ns ta l l a to r iso lve d i r e t -

t a m e n t e i n o m i ricercando le i n f o r m a z i o n i su d e i f i le d i c o n f i g u r a z i o -

ne local i . È c h i a m a t o a n c h e server m a s t e r ;

Page 287: Linux Ubuntu per Server e Reti.pdf

• Server au to r i t a t i vo secondar io . Il DNS server ricava le informa-z ion i r i ch ies te da un server a u t o r i t a t i v o p r i m a r i o . È c h i a m a t o a n c h e

server s lave.

Ne l la c o n f i g u r a z i o n e d i d e f a u l t d i B I N D , q u i n d i , il se rver D N S n o n fa a l t ro

che ricevere d a t i da una f o n t e es te rna e ha il s e m p l i c e s c o p o d i m i g l i o r a r e

l ' e f f i c ienza d i una re te loca le , a u m e n t a n d o la ve l oc i t à d i r i so luz ione d e i

n o m i e r i d u c e n d o il t r a f f i co D N S nel la L A N .

Per r e n d e r e o p e r a t i v a la c o n f i g u r a z i o n e d i un se rve r D N S d i c a c h i n g , q u i n -

d i , è su f f i c i en te inser i re ne l f i le / e t c / b i n d / n a m e d . c o n f . o p t i o n s g l i ind i r izz i

IP d e i server D N S da c o n t a t t a r e , t i p i c a m e n t e q u e l l i d e l p r o p r i o p rov ide r .

D o p o aver a p e r t o il f i le c o n un e d i t o r da roo t , si ce rch i il b l o c c o d i r i g h e

s e g u e n t e e si t o l g a n o t u t t i i ca ra t te r i / / inizial i d i c o m m e n t o :

// forwarders {

/ / 0 . 0 . 0 . 0 ;

/ / } I

Q u i n d i , si i nser i scano al p o s t o d i o .o .o .o , - g l i ind i r izz i IP d e s i d e r a t i . Ecco

un e s e m p i o d i c iò che si d e v e o t t e n e r e :

forwarders {

195.110.128.1;

212.48.4.11;

} :

Fat to q u e s t o , si r iavvi i il se rver D N S c o n il c o m a n d o sudo /etc/init.d/

bind9 restart.

N o n r i m a n e p o i che m o d i f i c a r e il f i le / e t c / r e s o l v . c o n f de l l a m a c c h i n a ser-

ve r in m o d o ta l e che su q u e s t a v e n g a c o n t a t t a t o il se rver D N S loca le p e r

r i so lvere i n o m i . La r iga nameserver d e v e d i v e n t a r e così :

nameserver 127.0.0.1

N e l caso s iano p resen t i p i ù r i g h e che spec i f i cano g l i indi r izz i d e i server

D N S da usare, è necessar io c h e il se rver loca le v e n g a i n d i c a t o p e r p r i m o .

Inser i re in / e t c / r e s o l v . c o n f sia il p r o p r i o server D N S sia que l l i d e l p rov ide r ,

q u i n d i , c o n s e n t e d i risolvere i n o m i d i hos t a n c h e q u a n d o il se rver nel la

re te loca le risulta i r r a g g i u n g i b i l e (F igura 11.8).

Page 288: Linux Ubuntu per Server e Reti.pdf

nameserver 127.0.0.1 nameserver 195.110.128.1 Jameserver 212.48.4.11

"/etc/resolv.conf" 3L, 69C scritti 3,1 Tut

Figura 11.8 - Il file /etc/resolv.conf con il server DNS locale e quelli forniti dal provider.

N e g l i a l t r i c o m p u t e r d e l l a L A N , I n f i ne , il p r i m o n a m e s e r v e r i n d i c a t o ne l

f i l e / e t c / r e s o l v . c o n f d e v e p u n t a r e a l l ' i n d i r i z z o IP d e l l a m a c c h i n a in cu i è

i n s t a l l a t o B I N D .

La cache d i B IND non v iene memor izzata su disco ma è mantenu ta in

RAM. In caso d i eccessiva occupaz ione d i memor ia sul server è possib i le

l imitare le d imens ion i del la cache inserendo in named.con f .op t ions l 'op-

z ione max-cache-size. Per cancel lare le in formazioni con tenu te nella

cache, invece, si lancia il c o m a n d o sudo rade -s 127.0.0.1 flush.

Configurare un server DIM5 primaria

L 'u t i l i zzo d i B I N D c o m e s e r v e r d i c a c h i n g , a n c h e se f o r n i s c e u n se rv i z io

u t i l e in una L A N , è s o l o u n s e m p l i c e a s s a g g i o d e l l e p o t e n z i a l i t à d i u n

s e r v e r D N S .

E c c o q u i n d i le i s t r uz i on i p e r c r e a r e u n s e r v e r a u t o r i t a t i v o p r i m a r i o : q u e l l o

c h e si o t t e r r à sarà u n a m a c c h i n a c h e r i s o l v e i n o m i d i h o s t p e r la r e t e l oca -

Page 289: Linux Ubuntu per Server e Reti.pdf

le, d e m a n d a n d o a un server D N S e s t e r n o la t r a d u z i o n e d e l n o m i es te rn i

ve rso la L A N .

Per a t t i va re un server p r i m a r i o è necessar io d e f i n i r e ne l server una zona

D N S loca le . Una zona n o n è a l t ro che una p a r t e d e l l o spaz io d e i n o m i

D N S : la p r i m a o p e r a z i o n e da c o m p i e r e , d u n q u e , è c reare una zona cor r i -

s p o n d e n t e ag l i indi r izz i de l l a p r o p r i a L A N .

N e g l i e s e m p i che s e g u o n o v i e n e u t i l i zza to il n o m e d i d o m i n i o u f f i c io . lan .

Q u a n d o q u e s t o a p p a r e ne l l e r i g h e r i p o r t a t e , d u n q u e , b i s o g n a inser i re al

suo p o s t o il n o m e d i d o m i n i o de l l a p r o p r i a re te . Le m a c c h i n e che c o m -

p o n g o n o la re te s o n o q u i n d i m a r c o (192 .168 .1 .10 ) , ca r io (192 .168 .1 .20 ) ,

g i a n n i ( 192 .168 .1 .30 ) e ns (192 .168 .1 .40 ) . Su q u e s t ' u l t i m a è ins ta l l a to il

server D N S .

Si ap ra d u n q u e il f i le / e t c / b i n d / n a m e d . c o n f . l o c a l e si a g g i u n g a n o le r i g h e

s e g u e n t i :

zone "ufficio, lan" {

type master;

file "/etc/bind/db. ufficio. lan" ;

} ;

Fa t to q u e s t o , va c o n f i g u r a t a p e r la re te loca le una zona inversa: q u e s t a

c o n s e n t e d i r i so lvere un ind i r i zzo IP ne l re la t i vo n o m e d i hos t . S e m p r e ne l

f i le n a m e d . c o n f . l o c a l si i nser i scano q u e s t e r i ghe :

zone "1.168.192.in-addr.arpa" {

type master;

file "/etc/bind/db.192";

};

L ' i nd i caz ione 1 . 1 6 8 . 1 9 2 nel la p r i m a riga n o n è a l t ro c h e la scr i t tu ra inversa

d e i p r i m i t re n u m e r i che c o m p o n g o n o l ' i nd i r i zzo de l l a L A N . Ne l la terza

r iga, i nvece , 192 è il p r i m o n u m e r o de l l ' i nd i r i zzo .

A q u e s t o p u n t o , d o p o aver sa lva to il f i le n a m e d . c o n f . l o c a l è g i u n t o il m o -

m e n t o d i c reare d e i r e c o r d , c i oè le voc i d e l d a t a b a s e d e l D N S , sia p e r la

zona d i r e t t a sia p e r que l l a inversa.

Per la zona d i r e t t a si p u ò usare c o m e m o d e l l o il f i le / e t c / b i n d / d b . l o c a i , il

cu i c o n t e n u t o è v is ib i le in F igura 11.9.

Page 290: Linux Ubuntu per Server e Reti.pdf

D

; BIND data file for local loopback interface

$TTL 604800

@ IN 50A localhost. root.localhost. ( 2 ; Serial

604800 ; Refresh 86400 ; Retry

2419200 ; Expire 604800 ) ; Negative Cache TTL

@ IN NS localhost. @ IN A 127.0.0.1 @ IN AAAA : : 1

•/etc/bind/db. local" 14L, 270C 1,1 Tut

Figura 11.9 - Si usa /etc/bind/db. locai come modello per creare il file della zona.

Si c re i q u i n d i d b . u f f i c i o . l a n a p a r t i r e d a q u e s t o f i l e :

sudo cp / e t c / b i n d / d b . locai / e t c / b i n d / d b .ufficio. lan

N e l f i l e d b . u f f i c i o . l a n la p r i m a riga d a m o d i f i c a r e è la s e g u e n t e :

@ IN S O A l o c a l h o s t . r o o t . l o c a l h o s t . (

A l p o s t o d i l o c a l h o s t . b i s o g n a inse r i re il n o m e d i d o m i n i o c o m p l e t o d e l

s e r v e r D N S m a n t e n e n d o il p u n t o f i n a l e . A l p o s t o d i r o o t . l o c a l h o s t . , in -

v e c e , si i n d i c a l ' i nd i r i z zo e m a i l d e l l ' a m m i n i s t r a t o r e sul server c o n s e r v a n d o

la n o t a z i o n e p r e s e n t e ne l f i l e d b . l o c a i . Per e s e m p i o , se si usa n s . u f f i c i o . l a n

c o m e F Q D N e a d m i n @ u f f i c i o . l a n c o m e e m a i l la r i ga d i v e n t a così :

@ IN SOA ns.ufficio.lan. admin.ufficio. l a n . (

Q u e s t a p r i m a r iga m o d i f i c a t a è l ' i n i z io d e l r e c o r d S O A p e r la z o n a c h e si

sta c o n f i g u r a n d o : q u e s t o t i p o d i r e c o r d ha la f u n z i o n e d i d e f i n i r e u n a z o n a

e si e s t e n d e p e r p i ù righe ne l f i l e , f i n o al c a r a t t e r e d i p a r e n t e s i t o n d a d i

c h i u s u r a .

Page 291: Linux Ubuntu per Server e Reti.pdf

La riga success i va ne l f i l e c o n t i e n e il v a l o r e d e l serial. O g n i v o l t a c h e si e f -

f e t t u a n o d e i c a m b i a n t i ne l f i l e d b . u f f i c i o . l a n q u e s t o v a l o r e va a u m e n t a t o .

Una p r a t i c a d i f f u s a è q u e l l a d i i n d i c a r e c o m e n u m e r o se r i a le la d a t a in

cu i le m o d i f i c h e s o n o s t a t e a p p o r t a t e , a g g i u n g e n d o d u e c i f re f i na l i p e r

s e g n a l a r e i c a m b i a m e n t i e f f e t t u a t i in u n o s t e s s o g i o r n o . E c c o u n a r i ga d i

e s e m p i o :

2008092800 ; Serial

Le r i g h e s e g u e n t i d e l r e c o r d S O A si p o s s o n o lasc ia re i m m u t a t e . Q u i n d i si

d e v e m o d i f i c a r e la r i ga success i va :

@ IN NS l o c a l h o s t .

Q u e s t a c o n t i e n e u n r e c o r d d i t i p o NS, c h e i n d i c a i s e r v e r p r i m a r i e s e c o n -

d a r i p e r u n a d e t e r m i n a t a z o n a . Il c a r a t t e r e p r e s e n t e a n c h e ne l l a r i ga

in iz ia le d e l r e c o r d S O A , è u n a s c o r c i a t o i a usa ta p e r r a p p r e s e n t a r e la z o n a

a t t u a l e , m e n t r e l o c a l h o s t . è il n o m e d i h o s t d e l s e r v e r D N S cu i la r i ga si

riferisce.

Se il s e r v e r D N S ne l la L A N è n s . u f f i c i o . l a n , q u i n d i , q u e s t a r iga d e v e d i v e n -

t a r e così :

@ IN N S ns . ufficio. lan.

F i n o r a si s o n o i n c o n t r a t i i r e c o r d S O A e N S . N e l l a T a b e l l a 11 .4 , q u i n d i ,

v i e n e p r e s e n t a t o u n e l e n c o d e i t i p i d i r e c o r d D N S p i ù i m p o r t a n t i .

Tabella 11.4 - I principali t ip i di record DNS.

I Tipo Descrizione j S O A Sta p e r S ta r t o f A u t h o r i t y e d e f i n i s c e u n a z o n a

N S Sta p e r N a m e S e r v e r e i n d i c a d e i n a m e s e r v e r a u t o r i t a t i v i

• • H I F o r n i s c e la c o r r i s p o n d e n z a t r a u n n o m e e u n i n d i r i z z o

PTR Sta p e r Po inTeR e f o r n i s c e la c o r r i s p o n d e n z a t r a u n i n d i -

PTR r izzo e u n n o m e

M X Sta p e r M a i l e X c h a n g e r e i n d i c a a q u a l i h o s t d e v o n o esse-

re i n v i a t e le e m a i l

C N A M E F o r n i s c e a u n h o s t u n n o m e s u p p l e m e n t a r e

OEE Life *

Page 292: Linux Ubuntu per Server e Reti.pdf

A q u e s t o p u n t o si a g g i u n g o n o ne l f i l e le r i g h e c h e c o n s e n t o n o d i t r a d u r r e

g l i i nd i r i zz i IP in n o m i d i h o s t a l l ' i n t e r n o d e l l a r e t e l oca le . Si i nse r i sce i n n a n -

z i t u t t o u n r e c o r d A c o n le i n f o r m a z i o n i su l s e r v e r D N S :

ns IN A 192.168.1.40

Q u i n d i , si a g g i u n g o n o le r i g h e r e l a t i v e a g l i a l t r i c o m p u t e r ne l l a L A N , c o m e

in q u e s t e r i g h e d i e s e m p i o :

m a r c o IN A 192.168.1.10

cario IN A 192.168.1.20

g i a n n i IN A 192.168.1.30

F a t t o q u e s t o , s o n o s ta t i c r e a t i t u t t i i r e c o r d p e r la z o n a d i r e t t a : il f i l e

d b . u f f i c i o . i a n r i s u l t a n t e è v i s i b i l e n e l l ' i m m a g i n e c h e s e g u e ( F i g u r a 11 .10 ) .

• f BIND data file for local loopback interface

• $TTL 604800 IN SOA ns .u f f i c i o . I an . admin.ufficio.lan. ( 2008092800 ; Serial

604800 ; Refresh 86400 ; Retry

2419200 ; Expire 604800 ) ; Negative Cache TTL

g IN NS ns.uf f i c io . Ian . ns IN A 192.168.1. 40 inarco IN A 192.168.1. 10 cario IN A 192.168.1. 20 gianni IN A 192.168.1. 30

"/etc/bind/db.ufficio,lan1 ' 16 linee --6%-- 1,1 Tut

Figura 11.10-11 file /etc/bind/db.ufficio.lan dopo le modifiche.

Poi si passa a c o n f i g u r a r e il f i l e p e r la z o n a i nve rsa . A n c h e in q u e s t o c a s o

si u t i l i zza u n f i l e c o m e m o d e l l o , d b . 1 2 7 :

sudo cp / e t c / b i n d / d b . 1 2 7 / e t c / b i n d / d b . 1 9 2

Page 293: Linux Ubuntu per Server e Reti.pdf

La s t r u t t u r a d i q u e s t o f i l e è s i m i l e a q u e l l a d e l f i l e p e r la z o n a d i r e t t a .

B i s o g n a q u i n d i m o d i f i c a r e la p r i m a r iga d e l r e c o r d S O A ne l m o d o v i s t o

in p r e c e d e n z a , i n c r e m e n t a n d o a n c h e q u i il s e r i a l a o g n i m o d i f i c a . Poi si

a g g i u n g e u n r e c o r d N S c o n il n o m e d i h o s t d e l s e r v e r D N S .

I n f i ne , si i nse r i sce u n r e c o r d PTR p e r o g n i n o m e d i h o s t p r e s e n t e ne l l a r e t e

l o c a l e , in q u e s t o m o d o :

10 IN PTR marco.ufficio, lan.

20 IN PTR cario.ufficio, l a n .

30 IN PTR g i a n n i . ufficio, l a n .

4 0 IN PTR ns .ufficio, lan.

11 c o n t e n u t o d e l f i l e al t e r m i n e d e l l e m o d i f i c h e sarà s i m i l e a l l ' i m m a g i n e se-

g u e n t e ( F i g u r a 11 .11) . La c o n f i g u r a z i o n e d e l s e r v e r D N S p r i m a r i o è t e r m i -

n a t a e n o n res ta c h e r i avv i a re B I N D c o n sudo / e t c / i n i t ,d/bind9 restart.

• ; BIND reverse data file for local loopback interface

I$TTL 604800 IN SOA ns.uff icio.lan. admin.ufficio.lan. ( 2008092800 ; Serial

604800 ; Refresh 86400 ; Retry

2419200 ; Expire 604800 ) ; Negative Cache TTL

@ IN NS ns. ufficio, lan. 10 IN PTR marco.ufficio.lan. 20 IN PTR cario.ufficio.lan. 30 IN PTR gianni.ufficio.lan. 40 IN PTR ns.ufficio.lan.

("/etc/bind/db. 192" 16L, 376C scritti 1,1 Tut

Figura 11.11 - Il file /etc/bind/db. 192 con la configurazione della zona inversa.

Page 294: Linux Ubuntu per Server e Reti.pdf

12. Ottimizzare il sistema

La procedura per compi la re facilmente il

kernel e le applicazioni.

Ar r i va t i a q u e s t o p u n t o , q u e l l o che si è o t t e n u t o è una m a c c h i n a p e r f e t -

t a m e n t e f u n z i o n a n t e e c o n t u t t o il s o f t w a r e necessar io p e r e r o g a r e servizi

ne l la re te o p e r d i v e n t a r e un c o m p l e t o d i s p o s i t i v o m u l t i m e d i a l e .

A v o l t e , p e r ò , l ' h a r d w a r e d i cu i si d i s p o n e n o n è s f ru t t a to al m e g l i o da l

s i s tema o p e r a t i v o o da i p r o g r a m m i che si u t i l i zzano p iù c o m u n e m e n t e .

In q u e s t o b r e v e e u l t i m o c a p i t o l o , q u i n d i , si v e d r à c o m e o t t im i zza re il si-

s t e m a c o m p i l a n d o il ke rne l e le a p p l i c a z i o n i , in m o d o ta l e da o t t e n e r e la

m i g l i o r e ade renza p o s s i b i l e t ra h a r d w a r e p o s s e d u t o e s o f t w a r e ut i l i zzato.

Compilazione del kernel Il kerne l f o rn i t o con U b u n t u Server d o v r e b b e consent i re prestaz ion i sodd i -

sfacent i nel la m a g g i o r pa r te de l l e s i tuazioni e de l l e con f igu raz ion i a d o t t a t e .

La p r i n c i p a l e r a g i o n e p e r cu i è c o n s i g l i a b i l e c o m p i l a r e un ke rne l p e r s o -

na l i zza to è la ricerca d i una m i g l i o r e c o m p a t i b i l i t à h a r d w a r e : n o n è d e t t o ,

in fa t t i , che un d i s p o s i t i v o v e n g a r i c o n o s c i u t o c o r r e t t a m e n t e da l ke rne l d i

d e f a u l t e c iò p u ò c o m p o r t a r e m a l f u n z i o n a m e n t i , p res taz ion i m e d i o c r i o

l ' imposs ib i l i t à d i usare il d i s p o s i t i v o s tesso. A l t r e v o l t e un e l e m e n t o ri-

l e v a n t e d e l PC, c o m e p e r e s e m p i o la CPU, v i e n e riconosciuto m a n o n è

s f r u t t a t o al m a s s i m o d e l l e po tenz ia l i t à .

Page 295: Linux Ubuntu per Server e Reti.pdf

Per c o m p i l a r e un p r o p r i o kerne l è necessar io sceg l ie re qua le ve rs ione de i

sorgen t i de l kerne l Linux ut i l izzare: le scel te p r inc ipa l i sono il kerne l uf f ic ia-

le, c h i a m a t o anche kerne l vaniiia, e il kerne l U b u n t u .

Sceg l i endo il p r i m o si ha la poss ib i l i tà d i scar icare s e m p r e l 'u l t ima release

s tab i le de l kerne l d i spon ib i l e , m e n t r e il s e c o n d o è esp ressamen te pensa-

t o pe r in tegrars i ne l s is tema U b u n t u e fo rn isce spesso pa tch e d r i ve r p iù

a g g i o r n a t i rispetto al co r r i spe t t i vo kerne l vani l la .

Kernel ufficiale e kernel Ubuntu

Per p o t e r c o m p i l a r e il kerne l si insta l l ino i nnanz i tu t to a lcuni pacche t t i c o n

il c o m a n d o seguen te :

sudo apt-get instali build-essential fakeroot kernel-package bin86 libncurses5-dev

Q u i n d i , se si des ide ra a d o t t a r e il kerne l uf f ic ia le, si scarichi l ' u l t ima vers io-

ne s tab i le de l kerne l da h t t p : / / w w w . k e r n e l . o r g / (Figura 12.1). Per e s e m p i o ,

al m o m e n t o de l la stesura d i q u e s t o l ibro l ' u l t ima release d i s p o n i b i l e è la

2 .6 .26.5 e pe r e f fe t tua re il d o w n l o a d de l f i le c o r r i s p o n d e n t e basta lanciare

in conso le q u e s t o c o m a n d o :

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.5.tar.bz2

f i le Modifies ^isualizza Cronologia Sfignalibri Strumenti Guide

V - & •£•• <"> http://www.kemel.orq/ - C - 4

The Linux Kernel Archives

Welcome to the Linux Kernel Archives. This is the p r imary si te for the Linux kernel source, but it has much more than jus t Linux

Protocol Location HTTP ;ht tp: / /www. kernel .org/pub/ FTP ftR.;//ftpA.keijieLQ.rg/pub/

RSYNC rsync: / / rsync.kernel .org/pub/

The latest stable version of the Linux kernel is: 2.6.26.5 2008-09-08 17:43 UTC F V VI Q Chanqeloq The latest prepatch for the stable Linux kernel tree is: 2.6.27-rc7 2008-09-21 22:48 UTC B V VI C Channeled The latest snapshot for the stable Linux kernel tree is: 2.6.27-rc7-ait5 2008-09-26 12:01 UTC fi V £ The latest 2.4 version of the Linux kernel is: 2.4.36.7 2008-09-07 10:22 UTC £ V £ Chanqelon The latest prepatch for the 2.4 Linux kernel tree is: 2.4.37-rcl 2008-09-07 16:41 UTC fi V Q Chanqeloq The latest 2.2 version of the Linux kernel is: 2.2.26 2004-02-25 00:28 UTC £ V Chanqeloq The latest prepatch for the 2.2 Linux kernel tree is: 2.2.27-rc2 2005-01-12 23:55 UTC fi V V] Chanqeloq The latest -mm patch to the stable Linux kernels is: 2.6.27-rc5-mmI 2008-09-05 05:03 UTC fi V Chanqeloq

Figura 12.1 - Da www.kernel.org è possìbile scaricare il kernel Linux ufficiale.

Page 296: Linux Ubuntu per Server e Reti.pdf

Poi si cop ia il f i le scar icato in /usr /s rc e lo si s c o m p a t t a con :

tar xvfj linux-2.6.26.5.tar.bz2

Per poter scrivere nella directory /usr/src è necessario che l 'utente attivo

sia presente nel gruppo src. Per inserire nel gruppo l 'utente ale, per

esempio, si esegue il comando sudo adduser ale src.

Nel caso si prefer isca invece ut i l izzare il ke rne l f o r n i t o da U b u n t u , si d e v e

instal lare il p a c c h e t t o l inux-source con :

sudo apt-get instali linux-source

Poi si ent ra nel la d i rec to ry /usr /s rc e si s c o m p a t t a l 'a rch iv io de l kerne l con

il c o m a n d o :

tar xvfj linux-source-2.6.24.tar.bz2

Canfigurazione e compilazione del kernel

A d e s s o si p u ò passare alla con f i gu raz i one de l kerne l : si en t ra nel la d i -

rec tory in cui sono stat i s c o m p a t t a t i i so rgen t i de l kerne l ( l inux-2.6 .26.5

pe r il kerne l vani l la, l i nux-source-2 .6 .24 pe r q u e l l o Ubun tu ) e si lancia il

C o m a n d o make menuconfig.

A p p a r i r à l ' in ter facc ia pe r la con f i gu raz ione de l kerne l (Figura 12.2). Q u i è

poss ib i l e at t ivare o d isab i l i ta re de l l e par t i de l kerne l o p p u r e de i m o d u l i

(c ioè e l e m e n t i de l kerne l es tern i al kerne l stesso), a p rop r ia scel ta. Per

or ientars i si p u ò sf rut tare il s is tema d i he lp i n te rno : basta ev idenz ia re una

voce nel m e n u e q u i n d i se lez ionare il pu l san te H e l p in basso, così da o t -

t e n e r e una pag ina esp l ica t iva sulla v o c e co r ren te .

Termina ta la con f i gu raz ione , si p r e m a Ex i t pe r uscire da l l ' i n te r facc ia e si

sce lga d i salvare le n u o v e impos taz ion i pe r il kerne l . Si t o rne rà così al

p r o m p t de l la conso le . A q u e s t o p u n t o b i sogna e l im inare dal la d i rec to ry

de l ke rne l i f i le gene ra t i da l l e even tua l i comp i l az i on i p r e c e d e n t i :

make-kpkg --rootcmd fakeroot clean

Page 297: Linux Ubuntu per Server e Reti.pdf

Linux Kernel V2.6.24.3 Configuration

Linux Kernel Configuration Arrow keys navigate the menu. <Enter> selects submenus - - -> . Highlighted l e t t e r s are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to e x i t , <?> for Help, </> for Search. Legend: [ * ] b u i l t - i n [ ] excluded <M> module < >

[ * ] nable loadable module support - - -> [ * ] nable the block layer - - ->

rocessor type and features - - -> ower management options - - -> us options (PCI e t c . ) - - -> xecutable f i l e formats / Emulations

N tworking - - -> device Drivers - - ->

irrrrware Drivers - - ->

< Exit > < Help >

Figura 12.2 - L'interfaccia per la configurazione del kernel.

Poi si p u ò e f f e t t u a r e la c o m p i l a z i o n e v e r a e p r o p r i a c o n il c o m a n d o se-

g u e n t e :

m a k e - k p k g --rootcmd fakeroot --initrd k e r n e l _ i m a g e m o d u l e s _ i m a g e

Una v o l t a c h e la c o m p i l a z i o n e è t e r m i n a t a , si t r o v e r à ne l la d i r e c t o r y / u s r /

src il p a c c h e t t o c o n il n u o v o k e r n e l . Per i ns ta l l a r l o , q u i n d i , n o n res te rà c h e

usare il c o m a n d o sudo dpkg -i k e r n e l - i m a g e . d e b , i n s e r e n d o al p o s t o d i

k e r n e l - i m a g e . d e b il n o m e e f f e t t i v o d e l p a c c h e t t o d e l p r o p r i o k e r n e l .

Importare una configurazione del kernel

La p r o c e d u r a f i n q u i i n d i c a t a p r e s u p p o n e c h e si v o g l i a n o s c e g l i e r e d a

z e r o t u t t e le o p z i o n i n e c e s s a r i e p e r il f u n z i o n a m e n t o d e l p r o p r i o k e r n e l .

E p o s s i b i l e , p e r ò , u t i l i zza re c o m e p u n t o d i p a r t e n z a la c o n f i g u r a z i o n e d e l

k e r n e l U b u n t u d i d e f a u l t .

Per f a r e q u e s t o si d e v e c o p i a r e il f i l e / b o o t / c o n f i g d e l k e r n e l U b u n t u

ne l l a d i r e c t o r y d e l k e r n e l d a c o m p i l a r e , r i n o m i n a n d o il f i l e . c o n f i g . Per

e s e m p i o , se la v e r s i o n e d e l k e r n e l U b u n t u u t i l i z z a t a è 2 . 6 . 2 4 - 1 9 - s e r v e r e

Page 298: Linux Ubuntu per Server e Reti.pdf

la d i r e c t o r y d e l k e r n e l d a c o m p i l a r e è / u s r / s r c / l i n u x - 2 . ó . 2 6 . 5 , il c o m a n d o

d a l a n c i a r e sarà :

sudo cp /boot/config-2 .6.24-19-server / u s r / s r c / l i n u x - 2 . 6 . 26 . 5/. config

Poi si p o t r à richiamare m a k e menuconfig e d e f f e t t u a r e d e l l e m o d i f i c h e a l le

i m p o s t a z i o n i d e l k e r n e l a p a r t i r e da l l a c o n f i g u r a z i o n e d i U b u n t u .

N e l c a s o d i u t i l i z zo d i u n a v e r s i o n e d e l k e r n e l p i ù a g g i o r n a t a r i s p e t t o a

q u e l l a d i s t r i b u i t a c o n U b u n t u Server , i n o l t r e , l a n c i a n d o il c o m a n d o make

oidconfig sarà p o s s i b i l e c r e a r e una c o n f i g u r a z i o n e a g g i o r n a t a p e r il k e r n e l

r i s p o n d e n d o a s e m p l i c i d o m a n d e r e l a t i v e a l l e o p z i o n i a g g i u n t e d a u n a

re l ease a l l ' a l t ra (F igu ra 12.3) .

Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [Y/n/?] y Local version - append to kernel release (LOCALVERSION) [] Automatically append version information to the version string (LOCALVERSIONAUT 0) [N/y/?] n Support for paging of anonymous memory (swap) (SWAP) [Y/n/?] y System V IPC (SYSVIPC) [Y/n/?] y POSIX Message Queues (POSIXMQUEUE) [Y/n/?] y BSD Process Accounting (BSD PROCESSACCT) [Y/n/?] y

BSD Process Accounting version 3 file format (BSDPR0CESSACCTV3) [Y/n/?] y Export task/process statistics through netlink (EXPERIMENTAL) (TASKSTATS) [Y/n/?

1 y Enable per-task delay accounting (EXPERIMENTAL) (TASK_DELAY_ACCT) [N/y/?] n Enable extended accounting over taskstats (EXPERIMENTAL) (TASK XACCT) [Y/n/?]

y Enable per-task storage I/O accounting (EXPERIMENTAL) (TASK_I0_ACC0UNTING) [

Y/n/?] y Auditing support (AUDIT) [Y/n/?] y

Enable system-call auditing support (AUDITSYSCALL) [Y/n/?] y Kernel ,config support (IKCONFIG) [N/m/y/?] n Kernel log buffer size (16 => 64KB, 17 => 128KB) (LOG BUFSHIFT) [17] 17 Control Group support (CGROUPS) [Y/n/?] y

Example debug cgroup subsystem (CGROUP DEBUG) [N/y/?] n Namespace cgroup subsystem (CGROUPNS) [Y/n/?] y Device controller for cgroups (CGROUPDEVICE) [N/y/?] (NEW) |

Figura 12.3 - Con make oidconfig si importa una vecchia configurazione del kernel e la si aggiorna.

Compilare i programmi O l t r e al k e r n e l , in a l c u n e c i r c o s t a n z e p u ò risultare u t i l e c o m p i l a r e c o m u -

ni p r o g r a m m i o l i b re r i e . A n c h e in q u e s t o c a s o , c i ò c h e si r i ce rca s o n o

le m i g l i o r i p r e s t a z i o n i p o s s i b i l i : d i f f i c i l m e n t e si o t t e r r a n n o m i g l i o r a m e n t i

Page 299: Linux Ubuntu per Server e Reti.pdf

sba lo rd i t i v i ma , s o p r a t t u t t o nel caso d i i n t e r ven t i su s o f t w a r e e s e g u i t i c o n

f r e q u e n z a , a n c h e m i n i m i i n c r e m e n t i nel la v e l o c i t à d i e s e c u z i o n e p o t r a n n o

r isu l tare v a n t a g g i o s i .

Compilazione automatica con apt-build

U b u n t u f o r n i s c e un c o m o d o s t r u m e n t o p e r a u t o m a t i z z a r e la c o m p i l a z i o n e

o t t im i zza ta d e i so rgen t i , c h i a m a t o apt-build. Per ins ta l la r lo si d e v e lancia-

re sudo apt-get instali apt-build.

D u r a n t e la p r o c e d u r a d i ins ta l laz ione v i ene ch ies to d i s tabi l i re il l ive l lo d i

o t t im izzaz ione pe r i pacche t t i : si cons ig l ia d i lasciare il l ivel lo I n t e r m e d i o .

Q u i n d i si d e v e r i s p o n d e r e Sì alla d o m a n d a s e g u e n t e , in m o d o ta le che ven -

ga a t t i va to un repos i to ry loca le con i pacche t t i c o m p i l a t i t r a m i t e a p t - b u i l d .

In f ine, si i nd ica l ' a rch i te t tu ra d e l p r o p r i o PC t ra q u e l l e p resen t i in un e len -

co (F igura 12.4) e si r i t o rna al p r o m p t de l l a c o n s o l e .

A q u e s t o p u n t o b i s o g n a s incerars i che ne l f i le / e t c / a p t / s o u r c e s . l i s t le

r i g h e re la t i ve ai r e p o s i t o r y d e i s o r g e n t i n o n s i ano c o m m e n t a t e . T u t t e le

Page 300: Linux Ubuntu per Server e Reti.pdf

r i ghe deb-src c o n ¡1 ca ra t t e re # in iz ia le, q u i n d i , v a n n o d e c o m m e n t a t e .

Una r iga c o m e :

# deb-src http://it.archive.ubuntu.com/ubuntu/ hardy main restricted

d e v e d i ven ta re così:

deb-src http://it.archive.ubuntu.com/ubuntu/ hardy main restricted

Fat to q u e s t o , va a g g i o r n a t o l ' e lenco de i pacche t t i nei repos i to ry con sudo

apt-get update. O ra si p o s s o n o c o m p i l a r e e o t t im izzare t u t t i i pacche t t i

des ide ra t i . Per e s e m p i o , pe r scaricare, c o m p i l a r e e instal lare apache2 si

lanci il c o m a n d o s e g u e n t e :

sudo apt-build instali apache2

In f ine, nel caso si d e c i d a d i c o m p i l a r e un p a c c h e t t o già insta l la to nel si-

s tema, va a g g i u n t a al c o m a n d o i n t e rno instali d i apt-build l ' opz i one

--reinstall.