Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
FAG * >ro
MILANO 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.
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"
tel.024885241 -uiujuj.fag.it
ujujuj.digital-lifestyle.it € 25,00
9 788882 3374
9 * i f • r *
J C
W
Alessandro Di Nicola
EDIZIONI
FAG
MILANO
Linux Ubuntu per server e reti
A u t o r e : Alessandro Di Nicola
Collana:
* ro .
Life
Publisher: Fabrizio Comolli
P r o g e t t o grafico: escom - Milano
ISBN: 978-88-8233-744-5
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.
Sommario
INTRODUZIONE 7
1. INSTALLAZIONE 11
Il CD di installazione 11
Avvio dal CD 13
Installare Ubuntu Server 15
Il partizionamento 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
9. IL BACKUP 231
Copiare intere partizioni 231
Il backup di file e directory 239
Bacula, un server per il backup 247
Il CD di installazione
La prima operazione da compiere, d u n q u e , è prelevare l'immagine ISO.
Utilizzando un qualsiasi sistema operativo si apre con un w e b browser la
pagina:
http://www.ubuntu.com/getubuntu
e si fa clic sulla linguetta D o w n l o a d U b u n t u . Nella schermata che appare,
quindi, si mette la spunta sull'opzione U b u n t u 8.04 LTS Server Edition.
Poi, p o c o più sotto, si indica il t i p o di c o m p u t e r sul quale va effettuata
l'installazione: se si tratta di un PC con CPU a 32 bit selezionare l'opzione
S t a n d a r d personal c o m p u t e r , mentre se si è in possesso di un c o m p u t e r
con processore a 64 bit scegliere 6 4 b i t A M D a n d Intel c o m p u t e r s .
I File Modifica Visualizza Cronologia Segnalibri Strumenti Guida
I - tr a? > http://www.ubuntu.com/getubuntu/download
3ubuntu
Online training
for the desktop
: Ayailatne at the
Get Ubuntu Ubuntu shop te**- w
Figura 1.1 - La pagina web da cui scaricare l'immagine ISO di Ubuntu Server 8.04 LTS.
Language
Arabic Hindi Portugués
BejiapycKaq Hrvatski Romana
6"b/irapcKH Magyarul Pycckwfi
Bengali Bahasa Indonesia Sámegillii
Bosanski Slovenoina
Català B*fS 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ías®)
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
Svizzera
altro
<Indietro>
Nel caso in cui non fosse raggiungibile alcun server DHCP, bisogna confi-
gurare manualmente la rete. Ecco come fare. D o p o che è apparsa la scritta
C o n f i g u r a z i o n e a u t o m a t i c a della rete fallita si deve premere Invio. Poi,
nella schermata successiva si conferma l'opzione di default, C o n f i g u r a la
rete m a n u a l m e n t e , p r e m e n d o nuovamente Invio.
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.
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).
Nel caso non sia raggiungibile alcun server DHCP, in un'ulteriore scher-
mata ci viene richiesto di inserire anche il n o m e del d o m i n i o , cioè la par-
te dell'indirizzo che segue il n o m e del singolo computer: per esempio,
nell'indirizzo eraclito.ufficio.lan il n o m e del c o m p u t e r è eraclito mentre il
nome del d o m i n i o è ufficio.lan. È possibile indicare un nome di d o m i n i o
a propria scelta, ma bisogna inserire lo stesso n o m e su tutte le macchine
della medesima rete locale.
LinuxJJhuntu p g ^ — ^
e reti
il L i f e !e*p:
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.
gitalIifeStyle*pro
t. I n s t a l l a z i o n e
I I ] Partizionane i d i s c h i
Encryption passphrase:
Figura 1.9 - Per proteggere un disco cifrato si deve usare una passphrase difficile da
individuare.
Nella schermata successiva, quindi, va digitata nuovamente la passphrase
appena inserita, per conferma. Fatto ciò, si potranno leggere nella scher-
mata seguente le informazioni dettagliate sulle partizioni che saranno
create sull'hard disk: non rimane che selezionare il pulsante Sì per salvare
le modifiche sul disco.
Una volta che l'installazione di Ubuntu Server è terminata, al b o o t del
PC comparirà una riga Enter LUKS passphrase: simile a quella visibile
nell'immagine seguente (Figura 1.10). Solo d i g i t a n d o la giusta passphra-
se si potrà far continuare la procedura di avvio e avere, così, accesso al
sistema.
¡Starting up ...
•Loading, please w a i t . . .
ISetting up cryptographic volume sda5_crypt (based on /deu/disk/by-uuid/922b463e
fecaf-4d6c-bc0b-6c97d43d6ael)
•Enter LUKS passphrase: _
Partizinnamenta manuale
Un server è una macchina dai compiti specifici che, spesso, richiede con-
figurazioni personalizzate per funzionare al meglio. Per tale ragione p u ò
essere utile, su di un PC adibito a uso server, gestire nel d e t t a g l i o le par-
tizioni presenti sul disco rigido, scegliendo a u t o n o m a m e n t e dimensioni e
filesystem da adottare caso per caso.
L'ultima opzione disponibile per partizionare il disco, quindi, p e r m e t t e
di ottenere il pieno controllo delle partizioni da parte dell'utente: nella
schermata con elencati i m e t o d i di partizionamento, d u n q u e , si selezioni
la voce Manuale.
Prima di proseguire nell'installazione, però, è necessario conoscere in
m o d o a p p r o f o n d i t o i filesystem disponibili su Linux e prendere confidenza
con le directory di sistema.
I filesystem disponibili
Le directory di sistema
26 Dig¡talLifeStyle»pro
principale di o g n i installazione, t a n t o da p o t e r 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 q u a n d o la RAM disponibile non
è più sufficiente.
Ma il partizionamento di un disco può essere decisamente più articolato:
ogni directory presente sulla directory radice, infatti, p u ò essere spostata
su di una partizione separata.
L'utilizzo di un più ampio numero di partizioni c o m p o r t a alcuni indubita-
bili vantaggi: innanzitutto, ciò p e r m e t t e di gestire in m o d o più duttile lo
spazio su disco. Quindi, semplifica le procedure di backup consentendo
di effettuare delle copie dirette di singole partizioni anziché dei file che le
c o m p o n g o n o . Infine, p u ò costituire un'ottima barriera contro malfunzio-
namenti e attacchi al sistema.
Può capitare, infatti, che l'esecuzione di un c o m a n d o o un'operazione su
disco abbiano c o m e esito imprevisto l'occupazione di t u t t o 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, v e n g o n o elencate le principali directory che è
utile spostare su partizioni separate.
28 DigiialLife;
disk, senza alcuna partizione elencata: bisogna allora selezionare c o n
i tasti freccia la riga relativa al disco e p r e m e r e Invio. Nella schermata
successiva viene chiesto se si v u o l e creare una nuova tabella della par-
tizioni: si d e v e rispondere 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.
Ora si creeranno via via le diverse partizioni sul disco: si p u ò iniziare con la
swap, così da poter lasciare c o m o d a m e n t e t u t t o il restante spazio dispo-
nibile per le partizioni principali.
Nella nuova schermata, quindi, si deve selezionare l'opzione Crea una
nuova p a r t i z i o n e .
II 1i
1<TOB> sposta t r a elementi; <Spazio> seleziona; <Invio> a t t i v a i b o t t o n i
^ ' . • IIS 1
Figura 1.12 - Le opzioni disponibili quando si seleziona lo spazio libero sull'hard disk.
Impostazioni d e l i a p a r t i z i o n e
Copia i d a t i da u n ' a l t r a p a r t i z i o n e
Cancellare la p a r t i z i o n e
Preparazione d i questa p a r t i z i o n e completata
<Indietro>
^^^^ParnTionar^^disc!^^
Modifica della partizione n 2 di SCSI1 (0,0,0) (sda). Non è stato
trovato nessun file system in questa partizione.
mmmmsa
Usato come:
<Indietro>
I )igita!LifeStyle*pro 35
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
<Indietro>
36 DigitalLifeStyle*pro
B<IfìB>_SBgsta.. tra elementi; <Spazio> seleziona; <Invio> attiva i bottoni
Figura 1.17 - La schermata nella quale si ridimensiona una partizione per far spazio
a Ubuntu Server.
I dischi in RAID
RAID sta per Redundant Array of Independent Disks e d è un sistema che
p e r m e t t e di utilizzare per la memorizzazione d e i dati d u e o più hard disk
contemporaneamente, solitamente delle medesime dimensioni.
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 tipologie di RAID che il sistema operativo mette a disposizione
sono elencate nella Tabella 1.3.
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 d e v o n o assegnare
filesystem e punti di m o u n t ai dispositivi stessi.
Nella schermata Partizionare i dischi si scelga come m e t o d o Manuale.
Quindi si selezioni il primo hard disk dall'elenco e alla d o m a n d a Creare
una nuova t a b e l l a delle p a r t i z i o n i v u o t a ? si risponda Sì.
A questo punto bisogna creare una per una le partizioni / , / h o m e e swap
sincerandosi di selezionare sempre v o l u m e fisico p e r il RAID come valore
dell'opzione Usato come. Inoltre, la partizione radice deve avere neces-
sariamente il flag «avviabile» attivato (Figura 1.18).
Terminata la creazione delle partizioni sul primo disco, si effettua la me-
desima sequenza di operazioni per il secondo hard disk. Anche qui il flag
«avviabile» deve essere attivo per la partizione radice.
Poi, nella schermata Partizionare i dischi si seleziona la voce C o n f i g u r a r e
il RAID s o f t w a r e e alla d o m a n d a Scrivere i c a m b i a m e n t i sui dispositivi
si risponde Sì.
Nella schermata successiva bisogna scegliere tra le opzioni disponibili
Creare un device m u l t i d i s k (MD), poi si indica c o m e t i p o di multldisk
RAID1. C o m e numero di device attivi si lascia il valore di default 2, mentre
il numero di device «spare» (dispositivi di scorta) deve essere 0.
Q u a n d o si arriva alla schermata visibile nell'immagine seguente (Figura
1.19) è necessario accoppiare in m o d o o p p o r t u n o le partizioni presenti
sui due hard disk.
[JJJ P a r t i z i o n a r e i d i s e r t i
<Indietro> <Continuare>
Figura 1.19-In questa schermata si devono collegare le partizioni nei due dischi.
l)igiialLifeSlylc«pro ^¿JJfc
M ¡ Partizloriare i disc
I l.)igitalLifeSiyle*pr(
1. Installazione
DigitaiLifeSty!e»pro o
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
Bisogna poi indicare quali applicazioni si desidera installare subito sul server.
Ecco la lista delle opzioni disponibili, selezionabili una per una premendo
il tasto Spazio:
• DNS server. Attivando 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 tipicamente per gestire
un completo web server;
• Mail server. Installa tutto 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;
• 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.
partizioni.
[sudo] p a s s w o r d f o r ale:
Figura 2.1 - Con sudo si ottengono i privilegi dell'utente root inserendo la password
dell'utente principale.
sudo -s
I DìgitalLife.Sty]e*pro
Verrà richiesto di inserire la password dell'utente principale. Una volta che
sono stati lanciati tutti i comandi che si desidera eseguire da root, per
tornare ai poteri dell'utente principale basterà scrivere exit o premere
c o n t e m p o r a n e a m e n t e i tasti Ctrl e D.
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 c o m p o r t a m e n t o anche in Ubuntu Server è sufficien-
te assegnare una password a root lanciando il c o m a n d o che segue:
Figura 2.2 - Per attivare l'utente root bisogna semplicemente dotarlo di una password.
Cancellare un utente
sudo rm -r /home/utente
DigitalLifeStyle*pro Q
Disattivare un utente
sudo u s e r m o d -L u t e n t e
Gestire le password
sudo p a s s w d -x 60 ale
sudo p a s s w d -w 3 ale
ale P 0 6 / 2 3 / 2 0 0 8 0 60 5 -1
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:
idrwx- 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
jdrwx 4
ale ale 4096 2008 06 •10 09:59 .thumbnails
|drwxr-xr •X ;>
ale ale 4096 2008 -06- 24 17:02 tmp
|drwxr-xr •X 5
ale ale 4096 2008--04-•24 16:48 .transmission
|-rw-r--r 1
ale ale 619 2008 •06 •07 17:36 .ufrawrc
Jdrwxr-xr •X 2
ale ale 4096 2008 -04-•30 12:25 .update-manager-core
idrwx 2
ale ale 4096 2008 04 •28 09:00 .update-notifier
Idrwxr-xr •X 2
ale ale 4096 2008--04--26 12:37 Video
- rw 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
Idrwx- ale
2 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
J-rw-r- • • 1 ale ale 9873 2008--06 •24 18:05 .xsession-errors
|ale@pitagora
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 primo c a m p o (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 g r u p p o cui appartiene 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
Casuale C o m e drwxr-xr-x?
Il primo carattere, d, indica che le informazioni si riferiscono a una di-
rectory, mentre il resto del c a m p o è costituito da tre g r u p p i di tre caratteri
ciascuno: il primo g r u p p o rappresenta i permessi relativi all'utente (rwx),
il secondo indica i permessi del g r u p p o di appartenenza (r-x) e l'ultimo i
permessi per agli altri utenti nel sistema (r-x). Il carattere r sta per leggi-
bile, w per scrivibile, x per eseguibile.
c h m o d u t e n t i o p e r a t o r e p e r m e s s i file
c h o w n u t e n t e : g r u p p o file
Modifiche ricorsive
c h o w n -R a l e : v a c a n z a Francia2006/
cat /etc/group
J a l e @ p i t a g o r a : s u d o apt-get i n s t a l l apache2
¡Reading package l i s t s . , . Done
¡Building dependency tree
¡Reading state i n f o r m a t i o n . . , Done
¡The following extra packages w i l l be i n s t a l l e d :
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 following NEW packages w i l l be i n s t a l l e d :
apache2 apache2-mpm-worker apache2-utils apache2.2-common l i b a p r l f:
libaprutill
0 upgraded, 6 newly i n s t a l l e d , 0 to remove and 0 not upgraded. If
¡Need to get 1355kB of archives.
¡After t h i s operation, 4878kB of a d d i t i o n a l 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 pacchetti che soddisfano il
criterio inserito sarà visualizzato senza seguire alcun ordine. Per avere i risul-
tati della ricerca in ordine alfabetico, invece, si digiti il c o m a n d o seguente:
d p k g -1
d p k g -1 libe*
Informazioni complete
Figura 2.9 - Eseguendo sudo apt-get update si scarica una lista aggiornata dei pacchetti
disponibili.
La politica di a g g i o r n a m e n t o di apt-get upgrade è piuttosto stringente:
con questo c o m a n d o 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, d u n q u e , consente di mantenere
l'assoluto controllo sul parco software presente in una macchina, ma non
assicura che vengano aggiornati tutti i pacchetti installati.
A volte, però, il c o m p l e t o a g g i o r n a m e n t o di un sistema richiede l'in-
stallazione di pacchetti aggiuntivi o l'eliminazione di altri: in questi casi
si deve utilizzare il c o m a n d o sudo apt-get dist-upgrade che, in caso d i
conflitti tra i pacchetti, aggiornerà quelli considerati più i m p o r t a n t i a
scapito degli altri.
Eliminare i pacchetti
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
Con sudo apt-get autoclean, invece, verranno cancellati solo i file di cui
non è più possibile effettuare il download.
Gestire i repository
L'editor nano
Per aprire il file /etc/apt/sources.list con l'editor nano è necessario far uso
di sudo, d a t o che un utente normale non avrebbe i permessi per modifica-
re il file. Si lanci quindi in console il c o m a n d o seguente:
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.
## 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
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.
Per o g n i release di Ubuntu, poi, sono disponibili sui server dei reposi-
tory alcune cartelle che forniscono elementi distribuzione aggiuntivi.
La versione 8.04 LTS di Ubuntu ha h a r d y - u p d a t e s , c o n t e n e n t e aggior-
namenti che risolvono b u g i m p o r t a n t i nei pacchetti, e h a r d y - b a c k p o r t s ,
che presenta versioni più recenti dei pacchetti forniti con il rilascio della
distribuzione.
L'ultimo parametro, componenti, è f o r m a t o dal nome del c o m p o n e n t e 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 v e n g o n o mostrati i principali c o m p o n e n t i disponibili.
Modifiche ai repository
diventa
w3m https://wiki.ubuntu.com/Mirrors?action=show
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:
Australia
• [WWW] http://ftp.iinet.net.au/pub/ubuntu/
• [WWW] h t t p : / / m i r r o r . o p t u s . n e t / u b u n t u /
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 c o m a n d o dpkg seguito dal file d e b del pacchetto
indicato per esteso e, se necessario, con il percorso c o m p l e t o per rag-
giungerlo.
Ecco un esempio:
.xsession-errors
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
Le partizioni
Nel capitolo iniziale si è visto c o m e impostare le partizioni sul disco rigido,
sfruttando al meglio l'ampio ventaglio di filesystem disponibili su Linux.
D o p o aver installato Ubuntu Server, però, p u ò essere necessario aggiun-
gere ulteriori partizioni o p p u r e 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
Read 11 lines J
Cut Text n Cur Pos
UnCut Textfl To Spell
I parametri sono separati gli uni dagli altri per mezzo di spazi vuoti. Il pri-
mo parametro (/dev/scdo) indica il file di d i s p o s i t i v o cui la riga si riferisce,
e in questo caso si tratta del lettore C D / D V D . Per un elenco dei principali
file di dispositivo 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.
Gestire il s i s t e m a
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.
sudo c f d i s k / d e v / s d a
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.
B?iyT)¡i'it:ilLifcSiyk»»pr»
partizione si porta dietro anche q u a n d o cambia il file di dispositivo 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.
sudo v o l _ i d -u /dev/sdal
diventerà d u n q u e così:
I volumi LVIVI
sudo p v c r e a t e /dev/sdal
sudo p v c r e a t e /dev/sda2
sudo p v c r e a t e /dev/sda3
sudo v g c r e a t e g r u p p o / d e v / s d a l / d e v / s d a 2 /dev/sda3
Per a g g i u n g e r e una partizione a un g r u p p o già esistente si usa invece il
Comando vgextend:
sudo v g e x t e n d g r u p p o /dev/sda5
sudo l v c r e a t e -L 700 -n v o l i g r u p p o
sudo l v c r e a t e -L 4G -n v o l 2 g r u p p o
sudo l v c r e a t e -L 3G -n v o l 3 g r u p p o
sudo m k f s . e x t 3 /dev/gruppo/voll
sudo m k f s . e x t 3 /dev/gruppo/vol2
sudo m k f s . e x t 3 /dev/gruppo/vol3
/ d e v / g r u p p o / v o l l /home ext3 d e f a u l t s 0 2
/ d e v / g r u p p o / v o l 2 / v a r ext3 d e f a u l t s 0 2
/ d e v / g r u p p o / v o l 3 / t m p ext3 d e f a u l t s 0 2
sudo I v r e m o v e /dev/gruppo/vol3
Figura 2.17 - L'output del comando sudo Ivdisplay mostra informazioni su tutti i volumi'
logici creati.
s u d o l v r e d u c e -L 3G /dev/gruppo/vol2
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ì:
s u d o l v e x t e n d -L + 1 G / d e v / g r u p p o / v o l l
sudo resize2fs /dev/gruppo/voll
Nel primo esempio le nuove dimensioni saranno di 3G (-s 3G), mentre nel
secondo si dice a resize_reiserfs di togliere un GB dal volume (-s -IG).
Per aumentare le dimensioni di un volume, quindi, è sufficiente richiamare
il c o m a n d o in questo m o d o :
MAILADDR root
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about t h i s file.
#
# definitions of e x i s t i n g MD arrays
Figura 2.18 - È possibile cambiare il destinatario delle email inviate da mdadm modifi-
cando mdadm. conf.
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 m d a d m . 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 l a n c i a il c o m a n d o c o s ì :
1
Figura 2.19-Con il com
1 M9 3 -query -detail— si ot # 1 1 preziose informazioni
su un dispositivo RAID.
' 1 i:'e *
Q u a n d o uno dei dischi smette di funzionare, un sistema in RAID 1 come
quello presentato nel capitolo precedente eliminerà l'hard disk rotto dai
dispositivi RAID attivi, in m o d o tale da permettere alla macchina il norma-
le svolgimento delle attività grazie al disco o ai dischi rimanenti.
Nel m o m e n t o 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 c o m a n d o da usare è il seguente:
Ora non rimane che aggiungere ai dispositivi RAID le partizioni del nuovo
disco con:
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-
d o pvcreate seguito dai file di dispositivo RAID da usare:
Fatto questo, la configurazione dei relativi volumi logici LVM avverrà nei
m o d i indicati nel paragrafo I v o l u m i LVM di questo stesso capitolo.
3 . Gli strumenti
dell'amministratore
l'editor v i .
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 m o d o rapido le operazioni più ripetitive creando alias, costruendo
funzioni e sviluppando programmi veri e propri chiamati script.
La shell standard su Linux è Bash: l'acronimo sta per Bourne again shell
e indica indirettamente la compatibilità di questa con la shell standard su
Unix, B o u r n e Shell appunto. Per richiamare Bash non è necessaria alcuna
operazione: a meno di non modificare la configurazione di default, questa
shell verrà avviata tutte le volte che si effettuerà il login nel sistema con
un utente.
Primo contatta
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.
C o m e si è accennato, la shell p e r m e t t e di organizzare delle sequenze di
istruzioni in programmi veri e propri. Un c o m p i t o basilare per l'ammini-
stratore è quello di effettuare copie di riserva delle directory di sistema e
dei file degli utenti: ecco d u n q u e 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 c o m a n d o 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:
#!/bin/bash
# semplice script di backup
G I O R N O = $ ( d a t e +%F)
NOME=backup-$GIORNO.tar.gz
D I R S = " / e t c /var"
tar cvfz $NOME $DIRS
#!/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 editor e inserire le righe che
compongono lo script.
La prima riga dello script indica quale shell deve essere richiamata, al
m o m e n t o dell'esecuzione, per interpretare il contenuto dello script. I ca-
ratteri ># sono quindi seguiti dal percorso c o m p l e t o della shell, in questo
Caso /bin/bash.
Nella seconda riga il carattere iniziale è #, a indicare che la parte seguente
della riga è un c o m m e n t o e non va d u n q u e interpretata dalla shell: nel-
l'esempio il c o m m e n t o descrive succintamente lo scopo dello script.
La riga successiva mostra, in pochi caratteri, la grande potenza e duttilità
della shell. GIORNO è una variabile e a essa viene assegnato (=) il risultato
del c o m a n d o date +%F: un c o m a n d o circondato dalla sequenza di caratteri
$( e ), infatti, viene eseguito dalla shell e al suo posto nella riga che lo
richiama è inserito l'output del c o m a n d o stesso.
Seguendo l'esempio riportato, il c o m a n d o date +%F avrà come risultato la
data corrente mostrata nel f o r m a t o " a n n o - m e s e - g i o r n o " (2008-7-31, per
esempio); quindi, al m o m e n t o dell'esecuzione dello script, alla variabile
GIORNO sarà assegnato c o m e 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 c o m p l e t o della variabile NOME, dun-
que, sarà qualcosa come backup-2008-07-31 .tar.gz.
C o m e 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. Nell'esempio v e n g o n o inserite in questa variabile le cartelle di
sistema /etc e /var; la stringa risultante va inserita tra una coppia di d o p p i
apici (carattere ") d a t o che presenta al suo i n t e m o degli spazi.
L'ultima riga dello script contiene l'effettivo c o m a n d o da eseguire: tar è
il classico programma di archiviazione Unix ed è installato per default su
Ubuntu Server. In questo caso, il suo c o m p i t o è quello di creare un file
compresso che abbia come n o m e il valore della variabile NOME e come
contenuto il valore della variabile DIRS.
Q u i n d i , q u a n d o lo script verrà e s e g u i t o sarà creato un file chiamato, p e r
e s e m p i o , b a c k u p - 2 0 0 8 - 0 7 - 3 1 .tar.gz e q u e s t o conterrà in f o r m a compressa
le directory / e t c e /var.
sudo c p b a c k u p /usr/local/bin
In questo m o d o lo script backup sarà richiamabile qualunque sia la directory
corrente, proprio come se si trattasse di una comune applicazione.
Adesso ci si sposti nella cartella in cui si vuole creare il file di backup, per
esempio /var/backup: ed /var/backup. Quindi, si lanci lo script d i g i t a n d o
semplicemente sudo backup e p r e m e n d o Invio. L'utilizzo di sudo è neces-
sario perché si andranno a utilizzare delle directory di sistema nelle quali,
a volte, i file non sono leggibili dagli utenti normali. Il risultato a monitor
sarà simile a quanto visibile nell'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.
Al termine dell'esecuzione dello script, nella directory corrente sarà pre-
sente il file con la copia di backup delle directory / e t c e /var. Q u a n d o si
vorrà scompattare l'archivio, quindi, basterà entrare nella directory radice
con ed / e lanciare il c o m a n d o tar xvfz seguito dal percorso c o m p l e t o
dell'archivio, come in questo esempio:
Il costrutta condizionale if
Nella creazione degli script è possibile avvalersi dei tipici costrutti presenti
nei linguaggi di programmazione. Ecco la struttura del costrutto condizio-
nale i f :
if [ c o n d i z i o n e ]
then
istruzioni
fi
Si tratta della struttura più semplice per tale costrutto, in cui, all'avverarsi
di una singola condizione, v e n g o n o eseguite delle istruzioni. La struttura
p u ò essere espansa a d o t t a n d o le f o r m e elif ("altrimenti, se la condizione
seguente è vera...") e d else ("altrimenti esegui l'istruzione"), così:
if [ c o n d i z i o n e ]
then
istruzioni
elif [condizione2]
then
istruzioni2
else
istruzioni3
fi
# ! /bin/bash
FILE=$1
if [ -e " $ F I L E " ]
then
e c h o "Il file $ F I L E esiste"
else
e c h o "Il file $ F I L E n o n e s i s t e "
fi
Figura 3.5 - Lo script controlla viene eseguito più volte, inserendo come parametro file
diversi.
Arrivati a q u e s t o p u n t o , oltre al c o s t r u t t o if si s o n o i n t r o d o t t i e l e m e n t i
f o n d a m e n t a l i nella p r o g r a m m a z i o n e in Bash, quali la g e s t i o n e d e g l i argo-
m e n t i e l'utilizzo d e g l i o p e r a t o r 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.
• costrutti di loop
Altri costrutti basilari nella costruzione degli script sono quelli di loop: for,
whiie e untii. Ecco innanzitutto la struttura d e l ciclo for:
for V A R I A B I L E i n L I S T A
do
istruzioni
done
VARIABILE è il nome della variabile il cui valore corrisponderà via via a tutti
gli elementi presenti nella LISTA. Per ogni elemento estratto dalla LISTA,
#!/bin/bash
for I i n / h o m e / a l e / D o c u m e n t i / *
do
cp $1 $ 1 . b a k
done
Nella seconda riga si indica, all'interno di un ciclo for, che i nomi di tutti i
file contenuti nella 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 d e v o n o diventare, uno
d o p o 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 c o m a n d o di copia cp. Se nella
directory ci sono i file t e s i l .tex, tesi2.tex e tesi3.tex, d u n q u e , il ciclo creerà
i file di backup t e s i l .tex.bak, tesi2.tex.bak e tesi3.tex.bak.
Il costrutto whiie ha una struttura m o l t o semplice:
while [condizione]
do
istruzioni
done
#!/bin/bash
NUM=10
while [ $NUM - n e 0 ]
do
echo $NUM
NUM=$(( $NUM-1 ))
done
Nella seconda riga viene assegnato alla variabile NUM il valore 10. Il co-
strutto whiie inizia dalla riga successiva: le istruzioni racchiuse tra do e
done v e n g o n o eseguite finché la variabile NUM ha un valore diverso da 0. La
riga 5 c o n t i e n e l'istruzione per mostrare in o u t p u t il valore corrente della
variabile NUM, m e n t r e la riga successiva mostra l'utilizzo delle espressioni
a r i t m e t i c h e nella shell.
Nella p e n u l t i m a riga, infatti, alla variabile NUM viene assegnato il valore
della variabile stessa m e n o 1. L'operazione aritmetica va indicata inseren-
dola tra i g r u p p i di caratteri $ ( ( e ) ). Il risultato in o u t p u t di q u e s t o script
d ' e s e m p i o è visibile n e l l ' i m m a g i n e s e g u e n t e (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.
Il costrutto untii è speculare al p e r i o d o whiie appena trattato: se le istru-
zioni presenti in whiie v e n g o n o eseguite finché la condizione è vera, le
istruzioni d e l costrutto untii v e n g o n o invece eseguite finché la condi-
zione risulta falsa. Ecco un esempio simile al precedente, ma scritto per
sfruttare il p e r i o d o untii:
#!/bin/bash
NUM=1
untii [ $NUM -eq 10000 ]
do
echo $NUM
N U M = $ ( ( $ N U M * 1 0 ))
done
case "$VARIABILE" i n
condizionel)
istruzionil
condizione2)
istruzioni2
condizione3)
istruzioni3
esac
#!/bin/bash
echo "Scrivi uno oppure due e premi Invio."
read testo
case "$testo" in
uno)
echo " H a i s c r i t t o u n o !"
due)
e c h o " H a i s c r i t t o d u e !"
*)
echo "Non hai scritto né uno né due..."
esac
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.
Creare alias e funzioni
alias v=less
a l i a s . . = " c d .."
a l i a s b y e = " s u d o s h u t d o w n -r n o w "
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"
fi
# alias
#alias ls="/bin/ls --color=auto -F"
alias U = " l s -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"
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, solitamente un c o m a n d o usato di frequente o che richieda lunghe
digitazioni sulla tastiera.
Un alias, per essere "espanso" nella stringa che sostituisce, va digitato
come parola iniziale di un c o m a n d o durante l'uso interattivo della shell.
Creare degli alias, quindi, significa creare delle scorciatoie. La sintassi di
un alias è la seguente:
alias PAROLA=STRINGA
ale@pitagora:alias
alias .,='cd
alias aptrem='sudo apt-get remove --purge'
alias bye='sudo shutdown -r now'
alias byebye='sudo shutdown -h now 1
alias c='clear'
alias cd+='mount /media/cdrom ; ed /media/cdrom'
alias cd-='umount /media/cdrom ; eject'
alias cdl2='hdparm -E 12 /dev/hdc 1
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.
function nome {
istruzioni
}
function lless {
ls $1 | l e s s
}
nome () { i s t r u z i o n e l ; 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
d u n q u e la funzione d ' e s e m p i o in versione " r i d o t t a " :
lless () { ls $1 I less ; }
# funzioni
a p t u p O { 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
}
:: IKiUbP
WmSmmmfmiemst
L'editar vi
Nelle pagine precedenti, q u a n d o è stato necessario richiamare un editor,
si è scelto di utilizzare nano. Questo editor ha l'indubbio pregio di essere
m o l t o semplice da usare, ma possiede un parco di funzionalità limitato: si
tratta di un difetto rilevante, dato che l'editor per l'amministratore è uno
dei principali strumenti per gestire una macchina.
Per i compiti di amministrazione più ripetitivi o di maggiore complessità,
quindi, è necessario servirsi di un editor più avanzato c o m e 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 compatibile con l'illustre
predecessore.
; VIM - Vi IMproved (VI Migliorato)
versione 7.1.138
di Bram Moolenaar et al.
Vim è 'open source' e può essere distribuito liberamente
0,0-1 Tut
Figura 3.11 - Vim è una versione potenziata di vi, il re degli editor su Unix.
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 c o m o d o help in linea, indispensabile almeno nei
primi t e m p i per non perdersi tra comandi, modalità e opzioni avanzate: lo
si visualizza a schermo p r e m e n d o F1 o d i g i t a n d o :heip e b a t t e n d o Invio.
If you use "c" instead of "d" they become change commands. And with "y" you
yank the text. And so forth.
Figura 3.13 - L'help in linea mostra alcuni dei comandi che è possibile "costruire"
a partire dal comando d.
Ricerca e sostituzione
:%s/cerca/sostituìsci/
la cambia in:
:%s/cerca/sostituisci/g
#!/bin/sh
:%s/ale/mario/g|
Figura 3.15 - Nell'ultima riga dell'interfaccia di Vim si esegue il comando per sostituire
ale con mario.
vi .bashrc
/alias 11
Il cursore verrà posizionato sulla riga della prima e unica occorrenza della
stringa indicata e, più in particolare, sul primo carattere della stringa stes-
sa. La riga corrente sarà d u n q u e quella che segue:
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 f o n d o al file. Per fare questo si raggiunge la riga del primo coman-
d o alias e si preme il tasto v. Si entrerà così nella modalità visuale, che
consente di selezionare intere righe.
A questo p u n t o si preme j finché non v e n g o n o evidenziate tutte le righe
degli alias, quindi si usa x per togliere le righe dalla posizione corrente.
Infine si preme G per raggiungere la fine del d o c u m e n t o e si usa il tasto p
per spostare lì le righe degli alias.
. • ' l.ife »
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 modifiche al d o c u m e n t o sono concluse. N o n rimane che premere :wq
per salvare il file e uscire dall'editor.
Figura 3.16 - Una sessione d'esempio con Vim. In pochi secondi si possono cambiare
parti anche estese di un file.
Creare scorciatoie
mmmmm
" Configuriazione personate di vim
syntax on
set noautoindent
set modelines=5
tabstop=2
augroup filetype
au BufRead »/postponed/* ft=mail
augroup END
Modificare le opzioni
set autoindent
set noautoindent
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 fondamentali per l'utilizzo
di questo p o t e n t e ma complesso editor.
una macchina.
Gestire i lag
Un log non è altro che la registrazione su file di una serie di informazio-
ni inviate da un c o m p o n e n t e 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 e m p o l'insorgere di eventi
imprevisti e malfunzionamenti.
Il sistema per la gestione dei log syslogd è contenuto nel pacchetto sysklo-
g d , installato per default. I file di log sono raccolti nella directory /var/log:
nella Tabella 4.1 v e n g o n o presentati alcuni dei principali file di log.
Tabella 4.1 - Alcuni d e i principali file di l o g .
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
#
# 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
auth.info /var/log/auth.log
In questa regola si stabilisce che tutti 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 tutti i livelli di gravità superiore a esso: in /var/log/auth.log, quindi,
saranno raccolti i messaggi di log di tipo auth.info, auth.notice e così via,
f i n o 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 d i 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
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:
SYSLOGD=""
in:
SYSLOGD="r"
Fatto questo, si dovrà riavviare ¡1 demone con il comando seguente:
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).
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 tutti i giorni in m o d o automatico.
Per esempio, per far cancellare ogni settimana il contenuto della directory
/ h o m e / a l e / t m p sfruttando questa modalità di utilizzo semplificata di cron,
tutto 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
|SHELL=/bin/sh
|pftTH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
SHELL=/bin/sh
PATH=/usr/locai/sbin:/usr/locai/bin:/sbin:/bin:/usr/sbin:/usr/bin
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:
Una spiegazione dettagliata dei singoli campi è contenuta nella Tabella 4.3.
0-60/15
0,15,30,45,60
• i •• u n h « ^ M H m n n M i W - a i ' 1 ' H U W E i i E
30 0 * * * $HOME/bin/dailycron
crontab -u mario -1
5. Il server è in rete
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
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:
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.
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.
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.
address 192.168.0.5
netmask 255.255.255.0
gateway 192.168.0.1
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
127.0.0.1 localhost
127.0.1.1 pitagora
127.0.0.1 localhost
192.168.0.2 pitagora.home.lan Pitagora
Figura 5.2 - Un file /etc/hosts completo, con le informazioni su tutte le macchine della LAN.
[ DigitaiLifeSiyie*pro
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
Figura 5.3- L'output del comando ifconfig mostra informazioni sulle interfacce attive nel
sistema.
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 interfaccia.
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 l e i m p o s t a -
1 9 2 . 1 6 8 . 0 . 5 c o n la c l a s s i c a 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 -
n i m a d i ifconfig:
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 , s e n e l l a l i n e a d i o p z i o n i d i ifconfig
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 d o p o 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 t h l . Nell'esempio seguente, invece, viene stabilito che il
gateway di default è 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:
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:
. ?"... * v - i i i i - ¡ _ ; r <
J
Modifica Visualizza Cronologia Segnalibri Strumenti guida
t# - £ C3 # v http7/192.168.1 2/ìndex.a
EPTRONIC
• ..IL, nbwttc CS4APk/ÌAccg<ì$ f'itir,
Security
K ; : ; Basic Setting 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.
flf ' Advanced
; Setting
Figura 5.6 - L'interfaccia web perla configurazione di un Access Point Conceptronic C54APM.
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.
CONCEPTROHIC
Coiiceptronic C64APM Access Paint
M A C A d d r e s s Filtering
Advanced
i Setting
I http://192.168.1.2/macfilterl.asp
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.
ale@pitagora:~$ |
wireless-channel 6
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.
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ì:
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.
Lanciando ping seguito dal nome dell'host o dal suo indirizzo IP vengono
inviati pacchetti ICMP ECHO_REQUEST finché non si preme C t r 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.
Ecco un output d'esempio del comando ping 192.168.1.4:
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 t e m p o 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.
traceroute www.ubuntu.com
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 1 9 2 . 1 6 8 . 1 . 1 ( 1 9 2 . 1 6 8 . 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.
Nella riga in esame il server CUPS risponde (LISTEN) sulla porta 631 di
localhost (127.0.O.I:63I). In caso di connessione attiva, al posto di LISTEN
ip:
99202 total packets received
38 with invalid addresses
0 forwarded
0 incoming packets discarded
96796 incoming packets delivered
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.
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:
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.
Tutto qui! E quindi possibile specificare il protocollo (sudo ufw allow 25/tcp)
oppure utilizzare una sintassi più articolata per la creazione della regola:
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 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:
#net.ipv4.ip_forward=l
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
#!/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
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:
mmmm • • • H i
auto lo
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
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à
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.
Jte/hosts.deny: list of hosts that are not allowed to access the syste
See the manual pages hosts__ ccess(S) and hosts options(5
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
ALL : ALL
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.
significa che il servizio carica la libreria del wrapper TCP (libwrap) e quindi
consulta i file hosts.allow e hosts.deny.
Se questo m e t o d o di verifica fallisce nonostante l'eseguibile richiami
effettivamente il wrapper TCP si p u ò utilizzare un comando alternativo
come questo:
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
§ 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.
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 = /usr/sbin/proftpd
user = root
socket_type = stream
wait = no
log__on_success = HOST PID
log_on_failure = HOST RECORD
only_from = 192.168.1.0/24
defaults
cps = 3 0 60
instances = 50
log_on_success = HOST PID
log_on_faiIure = HOST
log_type = SYSLOG authpriv
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.
proftpd: 192.168.1.*
7. Amministrare da remoto
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.
Un semplice strumento per l'amministrazione remota è il classico Tel-
net. Purtroppo, si tratta d i un sistema client-server scarsamente sicuro:
basti pensare al fatto 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),
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.
Figura 7.7 - SSH consente di amministrare una macchina da remoto in piena sicurezza.
;iale@pitagora:~$ §
C o n f i g u r a z i o n e d e i clienti S S H
Su u n a 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 n e 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 p r i n c i p a l i d i s t r i b u z i o n i f o r n i s c o n o p a c c h e t t i p r e c o m p i l a t i del
c l i e n t O p e n S S H . Nel caso si v o g l i a p r o c e d e r e alla c o m p i l a z i o n e del
U n a v o l t a c h e sul P C 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 s s h 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 v e r r à a v v i a t a
una c o n n e s s i o n e SSH cifrata v e r s o q u e s t ' u l t i m o .
Ecco un e s e m p i o :
s s h 1 9 2 . 1 6 8 .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 S S H 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 di c o n f e r m a r e l'autenticità d e l server. Un f i n g e r p r i n t n o n è altro che
la v e r s i o n e r i d o t t a d i u n a 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 v e r i f i c a 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 u n s e r v e r S S H si d e v e e s e g u i r e il c o m a n -
d o ssh-keygen -if s u l l a s t e s s a m a c c h i n a s e r v e r . Il c o m a n d o v a lanciato
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 R S A (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 s c 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 i s " ) , il c o m a n d o d a e s e g u i r e è:
N e l c a s o , i n v e c e , d i u t i l i z z o 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 s e -
guente:
g e n -lf d a / e m o t o . Un m e t o d o sicuro p e r c o n o s c e r e il f i n g e r p r i n t d i un
sistema è lanciare il c o m a n d o d i r e t t a m e n t e d a l server. Un altro m e t o d o
c o n s i g l i a t o è q u e l l o di farsi c o m u n i c a r e il f i n g e r p r i n t d a l l ' a m m i n i s t r a t o r e
d e 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 ef-
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 y e s s u l l a
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 n s e r i s c e 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 s u l l a m a c -
c h i n a s e r v e r e si o t t i e n e c o s ì l ' a c c e s s o al s i s t e m a .
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 s s h , 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 a l l a 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 s u l l a m a c c h i n a c l i e n t : s e a l a n c i a r e s s h è
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 s u l l a m a c c h i n a s e r v e r c o m e m a r i o .
P e r f a r e 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
ssh test@192.168.0.7
Accesso s e n z a 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 sistema d i a u t e n t i c a z i o n e a d o p p i a
chiave è possibile avere accesso a u n a m a c c h i n a r e m o t a senza d o v e r inse-
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
c h i a v 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.
Poi si p r e m a I n v i o p e r c o n f e r m a r e il p e r c o r s o d i d e f a u l t in cui m e m o r i z z a r e
la c h i a v e p r i v a t a .
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 c o m a n d o ssh-keygen seguito da -t dsa. L'algoritmo DSA è più rapi-
do nel generare una firma SSH ed è m a g g i o r m e n t e portabile rispetto a
RSA. In situazioni normali, però, la scelta tra un algoritmo e l'altro non
comporta vantaggi o svantaggi di rilievo.
F a t t o q u e s t o , è p o s s i b i l e i n s e r i r e u n a p a s s p h r a s e p e r p r o t e g g e r e la c h i a v e
p r i v a t a : se si i n d i c a u n a p a s s p h r a s e , q u i n d i , sarà n e c e s s a r i o d i g i t a r l a n u o -
v a m e n t e al m o m e n t o d e l l a c o n n e s s i o n e al s e r v e r r e m o t o .
Q u e s t o f o r n i s c e u n ' u l t e r i o r e barriera p r o t e t t i v a nel m a l a u g u r a t o caso in cui
un e s t r a n e o si i m p a d r o n i s s e d e l l ' a c c o u n t c o n il q u a l e si a c c e d e al server re-
m o t o . D i g i t a t a la p a s s p h r a s e , b i s o g n a p o i inserirla d i n u o v o p e r c o n f e r m a .
S e si p r e m e I n v i o a l l a r i c h i e s t a 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 -
r e n e l l a m a c c h i n a s e r v e r s e n z a d o v e r d i g i t a r e n u l l a o l t r e al c o m a n d o s s h .
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 s u l
s e r v e r r e m o t o , i n s e r e n d o l a n e l l a lista d e l l e c h i a v i c o n o s c i u t e dall'utente
n e l s e r v e r d i c u 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 à . P e r f a r e q u e s t o si u t i l i z z a
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 i n t a s s i s e g u e n t e :
ssh-copy-id -i - / . s s h / i d _ r s a . p u b utenteSserver
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 corrente;
in c a s o d i u t i l i z z o 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 i n s e r i r e la m a c c h i n a r e m o t a s u l l a 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 c u i si d e s i d e r a i n v i a r e la c h i a v e
pubblica (peresempio, mario@eraclito.ufficio.lan).
L a n c i a t o il c o m a n d o , v e r r à r i c h i e s t a 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 s u l
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 s s h si p o t r à a v e r e a c c e s s o a l l a m a c c h i n a s e r v e r s e n z a d o v e r i n s e -
rire a l c u n a p a s s w o r d .
U n a v o l t a c h e si s o n o c o p i a t e s u l s e r v e r S S H t u t t e le c h i a v i p u b b l i c h e d e i
client, è 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 server SSH p e r
m i g l i o r a r n e la s i c u r e z z a .
La p r i m a o p z i o n e s u c u 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 à
di a u t e n t i c a z i o n e , infatti, è i n t r i n s e c a m e n t e m e n o sicura d i q u e l l a m e d i a n -
te chiave pubblica.
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 c e r c h i n e l f i l e la r i g a s e g u e n t e :
#PasswordAuthentication yes
e la si m o d i f i c h i i n :
PasswordAuthentication no
P e r 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 a c c e s s 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 n e l s i s t e m a c o m e u t e n t e r o o t . P e r o t t e n e r e q u e s t o la riga
PermitRootLogin yes d e v e diventare PermitRootLogin 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 S S H 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).
# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
XllForwarding yes
XllDisplayOffset 10
5IM 74%
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 file / 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 s s h d a t t i v o è n e c e s s a r i o l a n -
c i a r e s u l s e r v e r il c o m a n d o s u d o / e t c / i n i t . d / s s h reload.
Se si è s c e l t o d i u t i l i z z a r e u n a 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 i n s e r i r e
una password a o g n i connessione remota è certo limitata dal d o v e r digitare,
c o m u n q u e , la p a s s p h r a s e s t a b 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
seguente:
P o i si e s e g u e s s h - a d d 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 sbloccare
la c h i a v e . F a t t o q u e s t o , s s h 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 passphrase
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 s u l c l i e n t . A l s u c c e s s i v o login,
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 e x e c ssh-agent /bin/
b a s h e s s h - a d d 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 .
O l t r e a p o t e r a v v i a r e u n a s e s s i o n e S S H v e r a e p r o p r i a su d i u n sistema
r e m o t o , il c o m a n d o s s h p e r m e t t e a n c h e d i l a n c i a r e c o m a n d i d i r e t t i , c o m e
nell'esempio seguente:
s s h s e r v e r . ufficio . l a n p s aux
Eseguendo questa riga si lancia il c o m a n d o p s aux sul s i s t e m a remoto
s e r v e r . u f f i c i o . l a n e l ' o u t p u t r i s u l t a n t e v i e n e m o s t r a t o sul t e r m i n a l e della
macchina locale.
T r a m i t e l ' o p z i o n e - x d i ssh, p o i , è p o s s i b 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 r e s e n t i sul s e r v e r v i s u a l i z z a n d o l e s u l l o s c h e r m o d i u n c l i e n t c o m e si t r a t -
t a s s e d i f i n e s t r e l o c a l i . L a n c i a n d o s s h -X server.ufficio.lan gcalctool,
p e r e s e m p i o , sul PC s e r v e r . u f f i c i o . l a n v e r r à l a n c i a t o g c a l c t o o l (la c a l c o l a t r i -
c e d i G n o m e ) , m e n t r e sul PC c l i e n t c o m p a r i r à la f i n e s t r a d e l p r o g r a m m a .
Per p o t e r s f r u t t a r e l ' o p z i o n e - x d i ssh è n e c e s s a r i o c h e n e l f i l e / e t c / s s h /
sshd_config l'opzione xiiForwardìng abbia valore yes.
I n f i n e , n e 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, c h e
p e r m e t t e d i copiare f a c i l m e n t e d e i file d a una macchina all'altra. È possi-
b i l e t r a s f e r i r e f i l e t r a d u e c o m p u t e r r e m o t i o t r a il PC l o c a l e e u n a m a c c h i -
na r e m o t a . La sintassi d i b a s e d e l c o m a n d o è e l e m e n t a r e :
scp / t m p / d o c u m e n t o . t x t m a r i o @ s e r v e r . ufficio. l a n : d o c
C o n q u e s t o c o m a n d o il f i l e / t m p / d o c u m e n t o . t x t p r e s e n t e n e l l a m a c c h i n a
locale v i e n e c o p i a t o a l l ' i n t e r n o della d i r e c t o r y d o c nella 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 ) sulla m a c c h i n a r e m o t a s e r v e r . u f f i c i o . l a n .
Il p r o g r a m m a s c p utilizza ssh p e r il t r a s f e r i m e n t o d e i file e l ' a u t e n t i c a z i o n e n e i
sistemi r e m o t i . Q u i n d i , se si è s c e l t o d i a u t e n t i c a r s i t r a m i t e p a s s p h r a s e si d o -
vrà inserire q u e s t ' u l t i m a (a m e n o c h e n o n si sia a v v i a t o ssh-agent) al m o m e n t o
d e l l a c o n n e s s i o n e c o n l'host, a l t r i m e n t i si d i g i t e r à la n o r m a l e p a s s w o r d .
Q u a n d o ci si c o l l e g a a u n s e r v e r t r a m i t e u n t e r m i n a l e r e m o t o si h a a d i s p o -
sizione un'unica console, all'interno della q u a l e bisogna effettuare 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 c h e la g e s t i o n e d i u n s e r v e r richiede.
S a r e b b e c o m o d o , in q u e s t i casi, a v e r e 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 c u i
ripartire c o m o d a m e n t e i diversi c o m p i t i d a svolgere.
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 f a t -
ti, c o n s e n t e di creare e gestire all'interno di u n ' u n i c a sessione di t e r m i n a l e
più " f i n e s t r e " , o g n u n a d e l l e quali p u ò c o n t e n e r e una shell 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 s o 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 n s t a l l a r e il p r o g r a m m a s u U b u n t u S e r v e r si l a n c i a il c o m a n d o sudo
apt-get instali screen. Fatto q u e s t o , una volta effettuata 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 a v v i a 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 sempli-
c e m e n t e il c o m a n d o s c r e e n .
N e l t e r m i n a l e c o m p a r i r à u n a s c h e r m a t a d i b e n v e n u t o ( F i g u r a 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 n u l l a è c a m b i a t o n e l l a c o n s o l e r e m o t a ; in r e a l t à s c r e e n è o r a 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 t a s t i .
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.
Le c o m b i n a z i o n i d i t a s 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 . P e r e s e m p i o , per
v i s u a l i z z a r e 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
p r e m e C t r l + A s e g u i t o d a C . U n a lista 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 a s t i
in s c r e e n è m o s t r a t a n e l l a T a b e l l a 7 . 1 .
La c o m b i n a z i o n e d i t a s 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 s e n z a c h e le c o n s o l e e i p r o g r a m m i a v v i a t i i n e s s a v e n -
g a n o e f f e t t i v a m e n t e chiusi.
m e n t a n e a m e n t e d a l s e r v e r , 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 c u i q u e s t a e r a s t a t a i n t e r r o t t a . P e r r i p r i s t i n a r e la s e s -
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 s c r e e n
m a s c r e e n -r.
p r o p i n a t a p e r l ' e c c e s s i v a 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 à delle
operazioni di manutenzione da svolgere.
Un valido c o m p r o m e s s o è costituito d a W e b m i n , un'interfaccia 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 -
te da un c o m u n e w e b browser.
ìJ Webmin
íá System
'¿i Servers
Q u u e b m i n
«á Networking System hostname Pitagora
Operating system Ubuntu Linux 8.04.1
Webmin version 1.420
Time on system Tue Aug 12 11:49:53 2008
System uptime 3 hours, 31 minutes
CPU load averages 0.24 (1 min) 0.26 (5 mins) 0.22 (15 mins)
Real memory 1.47 GB total. 691.97 MB used
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 http://www.webmin.com/
d o w n l o a d . h t m l e si s e g u a il l i n k 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 della stesura d e l presente volu-
m e , il l i n k p u n t a a w e b m i n _ 1 . 4 2 0 _ a l l . d e b ;
2. si s c a r i c h i il f i l e d a l l a r e t e , 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 e d n e l l a d i r e c t o r y i n c u i il b r o w s e r s a l v a i
d o w n l o a d : s e 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 s c r i v e r e s a r à
d u n q u e Cd Download;
3. n e l l a c o n s o l e si l a n c i ¡1 c o m a n d o s u d o g d e b i webrain_l. 420 all.debe
alla 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 s o f t w a r e ? [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 . V e r r à c o s ì 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
ale@pitagora:-/Download$ |
Figura 7.9 -Alcuni dei passaggi necessari per installare webmin su un PC.
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 a v v i a in a u t o m a t i c o il d e m o n e d i Webmin,
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 .
Per f a r c o m p a r i r e l ' i n t e r f a c c i a d i W e b m i n n e l c o m p u t e r stesso in c u i è
s t a t o i n s t a l l a t o il p r o g r a m m a , si a p r a c o n u n b r o w s e r l ' i n d i r i z z o h t t p s : / / l o -
calhost: 10000.
N e l l a p a g i n a c h e a p p a r e b i s o g n a e f f e t t u a r e il l o g i n i n s e r e n d o il n o m e
d e l l ' u t e n t e a m m i n i s t r a t o r e e la relativa p a s s w o r d . Se n e l s i s t e m a è a t t i v o
l ' u t e n t e r o o t si inserisca q u e s t o , a l t r i m e n t i si p u ò d i g i t a r e il n o m e d e l -
l'utente principale (quello, cioè, che p u ò acquisire i poteri di root tramite
il c o m a n d o sudo) e la relativa p a s s w o r d .
La configurazione iniziale
La s c h e r m a t a d i b e n v e n u t o d i W e b m i n f o r n i s c e a l c u n e i n f o r m a z i o n i sul
s i s t e m a sul q u a l e è s t a t o i n s t a l l a t o : il n o m e d e l l ' h o s t , il s i s t e m a o p e r a t i v o
u t i l i z z a t o , la m e m o r i a d i s p o n i b i l e e così via. A sinistra nella p a g i n a , q u i n d i ,
è p r e s e n t e u n m e n u c o n t e n e n t e le d i v e r s e s e z i o n i d i W e b m i n c u i è p o s s i -
b i l e a c c e d e r e e a l c u n e s i n g o l e v o c i p e r richiamare le f u n z i o n a l i t à d i b a s e .
m
Change Language and
a Ö
Webmin Users
S3 System
i i Servers
O
ill Networking User interface Webmin Modules Operating System and Language
Environment
-J Cluster
SI others
43 Un-uMKl Moduiï» index Page Options
#
upgrade Webmin Reassign Modules
£
Advanced Options
*
Debugging Log File
«=£3
SSL Encryption
©
Certificate Authority
Si f a c c i a 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 i n l a n g u a g e e si f a c c i a
clic sul pulsante C h a n g e L a n g u a g e .
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 h a 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 c o s ì
le v a r i e i c o n e n e l l a p a g i n a . P e r f a r e 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 del
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 r e c l i c s u l l ' u l t i m a v o c e d e l menu,
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 a c c e s s 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 -
Linux U b u n t u per s e r v e r e r e t i
• f « j n i i p s '/loc«lho5i"i
# da qualunque indirizzo IP O solo dagli indirizzi elencati O a tutti tranne agli indirizzi elencati
Completato
P e r 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 aggiun-
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 n d i r i z z i si f a 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 l e 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 a l l a
s u a i n t e r f a c c i a d a r e m o t o . B a s t a i n s e r i r e al p o s t o d i 1 2 7 . 0 . 0 . 1 l'indirizzo
d e l P C s u c u 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 , s e l ' i n d i r i z z o IP d a
r a g g i u n g e r e è 1 9 2 . 1 6 8 . 1 . 4 , l ' U R L d a d i g i t a r e n e l w e b b r o w s e r sarà h i
tps://192.168.1.4:10000
Come gestire il sistema
A questo punto è possibile esplorare i numerosissimi elementi di cui è
c o m p o s t a l ' i n t e r f a c c i a d i W e b m i n . N e l l a T a b e l l a 5.1 è m o s t r a t o u n e l e n c o
d i t u t t e le s e z i o n i d i s p o n i b i l i n e l m e n u d e l p r o g r a m m a .
Webmin
Un-used
Modules
Linux ü b u n t u per s e r v e r 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
può 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 s u l l a 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 . P e r f a r e 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
n e l l a s e z i o n e S i s t e m a e si f a c l i c s u l l a v o c e P r o c e s s i i n 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 processi attivi sulla
m a c c h i n a . La riga in a l t o c h e i n i z i a 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 clic
s u C P U v e r r a n n o v i s u a l i z z a 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 processore,
mentre selezionando M e m o r i a i primi processi elencati saranno quelli che
occupano più RAM.
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 . B a s t a f a r e c l i c sul n u m e r o d e l p r o c e s s o p o s t o sotto
il c a m p o I D P r o c e s s o , q u i n d i n e l l a s c h e r m a t a c h e a p p a r e n o n r e s t a c h e
p r e m e r e i pulsanti T e r m i n a o Kill.
S3 Rete
-il Hardware
a cluster
Others
i o Un used Modules
Search:
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 s e -
z i o n e S i s t e m a , si f a c l i c s u 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 -
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 modificare
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 n s e r i s c e 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 n e , si f a 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 s u l t a r e 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 un 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 -
s t a 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 s e r v i z i o a l l ' a v v i o .
Figura 7.13 - Webmin consente di gestire anche i servizi avviati al boot della macchina.
I n f i n e , s e 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 -
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 v a r 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 s u i m o v i m e n t i d e l m o u s e e
sulla p r e s s i o n e d e i tasti.
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
della facilità d ' u s o d e l l e m o d e r n e interfacce grafiche.
vncserver :1
Il c o m a n d o a p p e n a i n s e r i t o l a n c i a v n c s e r v e r ( c h e è in r e a 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 t i g h t v n c s e r v e r ) 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 che
risulti 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 al-
m e n o c i n q u e caratteri, che d o v r à p o i essere d i g i t a t a sulle m a c c h i n e client
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 , s a r à c h i e s t o a l l ' u t e n t e s e v u o l e i n s e r i r e
o m e n o una password secondaria di t i p o view-only: i client che inseriranno
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 s u a l i z z a r e il c o n t e n u t o d e l -
l o s c h e r m o , m a n o n p o t r a n n o u s a r e 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 .
I n s e r i t a la p a s s w o r d p r i n c i p a l e e , s e l o 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 i g u r a 7 . 1 4 ) . L e p r o s s i m e v o l t e c h e si l a n c e 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 : verranno
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
s e r v e r . S e 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 à
u s a r e il p r o g r a m m a v n c p a s s w d .
ale@pitagora:-$ vncserver :1
Password:
Verify:
ale@pitagora:-$ |
Figura 7.14- Dopo aver lanciato vncserver, si inseriscono le password per la connessio-
ne dei client.
Il client per TightVIMC
Sui P C 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 i n s t a l l i il p a c -
chetto xtightvncviewer:
P e r 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 i n t a s s i d e l
c o m a n d o d a l a n c i a r e è la s e g u e n t e :
vncviewer indirizzo:display
P e r 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
deve eseguire vncviewer 1 9 2 . 1 6 8 . 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 t a t a i n s e r i t a 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 s e r -
v e 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 z z o v i e w - o n l y
accesso d i u n client.
P r e m e n d o il t a s t o F 8 n e l l a f i n e s t r a c r e a t a d a v n c v i e w e r si h a a c c e s s o a u n u t i -
le m e n u i n t e r n o . Le v o c 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 i s u a l i z z a r e 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 Fullscreen), d i uscire d a l client ( 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 d e l l a c l i p b o a r d l o c a l e n e l l a c l i p b o a r d r e m o t a e v i c e -
versa (Clipboard: locai -> remote e Clipboard: remote -> locai).
I < 5 Applicazioni Risorse Sistema É
f W t W Mrtrliftti'iilMi-itMIl
file ModtHca Ssualizn Jern
le@pitagora:~i fre
total
Mem: 1546340 1282936 263404
- / + buffers/cache: 623332 923008
Swap: 979956 0 979956
ale@pitagora:~$ df
F i l e system IK Usati Disponib
/dev/sdal 4432312 13971616 :
168 773000
ivarlock 0 773168
44 773124
devshm 28 773140
Irm 39760 733408
eneric/volatile
/dev/sda3
igvfs-fuse-daemon
ale@pitagora:
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
v e n e n d o su u n file d i c o n f i g u r a z i o n e d e l PC server.
Il f i l e s u 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 è
t o v n c s e r v e r . E c c o l e 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
di default:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP
D e s k t o p " Se
x-window-manager &
C o n queste righe, 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 i g a x s e t r o o t ) , 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 i g a 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 a v v i a il w i n d o w manager
d i d e f a u l t nel s i s t e m a (riga x - w i n d o w - m a n a g e r ) . M o d i f i c a n d o l ' u l t i m a r i g a ,
q u i n d i , è p o s s i b i l e i n d i c a r e il p r o p r i o w i n d o w m a n a g e r p r e f e r i t o .
Un v a l i d o 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 p r a t i c 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 installa sulla m a c c h i n a s e r v e r c o n il
c o m a n d o sudo a p t - g e t i n s t a l i fiuxbox, p o i n o n resta c h e c a m b i a r e la riga
f i n a l e d i . v n c / x s t a r t u p in startfluxbox & o m o d i f i c a r e il w i n d o w m a n a g e r d i
d e f a u l t m e d i a n t e il c o m a n d o u p d a t e - a i t e r n a t ì v e s .
A l t r i w i n d o w m a n a g e r a d a t t i p e r u n ' a m m i n i s t r a z i o n e r e m o t a s o n o iceWM
( i n s t a l l a b i l e t r a m i t e il p a c c h e t t o i c e w m ) e w i n d o w M a k e r ( p a c c h e t t o w m a k e r ) .
E n t r a m b i f o r n i s c o n o u n ' i n t e r f a c c i a g r a f i c a s e m p l i c e e d i f a c i l e utilizzo. Per
a v v i a r e q u e s 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 s e r v e r V N C , g l i
e s e g u i b i l i c h e b i s o g n a r i c h i a m a r e n e l l ' u l t i m a riga d i . v n c / x s t a r t u p s o n o ,
r i s p e t t i v a m e n t e , icewm e wmaker.
N e l n o r m a l e utilizzo d i V N C le u n i c h e i n f o r m a z i o n i c h e v e n g o n o cifrate s o n o
le p a s s w o r d s c a m b i a t e n e l l e c o m u n i c a z i o n i iniziali t r a c l i e n t e server. Il resto
d e i d a t i c h e t r a n s i t a n o t r a le m a c c h i n e v i a g g i a in chiaro. È p e r ò p o s s i b i l e
n a s c o n d e r e le i n f o r m a z i o n i c r e a n d o u n t u n n e l c i f r a t o t r a m i t e SSH.
Per q u e s t o è n e c e s s a r i o c h e sulla m a c c h i n a d a a m m i n i s t r a r e v i a V N C sia
a t t i v o u n s e r v e r SSH. S o d d i s f a t t a q u e s t a p r e m e s s a , il c o m a n d o p e r lancia-
re v n c v i e w e r su u n PC c l i e n t d i v e n t a :
vncviewer -via 192.168.1.4 localhost: 1
d o v e al p o s t o d i 1 9 2 . 1 6 8 . 1 . 4 si inserisce l ' i n d i r i z z o IP d e l s e r v e r V N C a c u i
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 d e l d i s p l a y c h e si
d e s i d e r a visualizzare in r e m o t o . E s e g u i t o il c o m a n d o , verrà p r i m a richiesta
la p a s s w o r d o la p a s s p h r a s e p e r c o n n e t t e r s i al s e r v e r SSH, q u i n d i la p a r o l a
d ' a c c e s s o p e r a c c e d e r e al d i s p l a y r e m o t o d e l s e r v e r V N C .
chine Windows
In u n a r e t e l o c a l e è p o s s i b 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: c h e si
t r a t t i d i u n a s t a m p a n t e o d i u n a s e r i e d i c a r t e l l e su d i s c o , a v e r e a c c e s s o
da p i ù m a c c h i n e a un singolo dispositivo p e r m e t t e d i ottimizzare i costi
d e l l ' h a r d w a r e e d i g e s t i r e in m o d o o c u l a t o le a t t i v i t à d i r e t e e g l i s p a z i fisici
disponibili.
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 s a r a n n o d u n q u e il s e r v e r d i s t a m p a C U P S ,
il f i l e s y s t e m d i s t r i b u i t o N F S e S a m b a , u n s o f t w a r e c h e c o n s e n t e la c o n d i -
visione d i risorse 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 Unix Printing System) è n o t o p e r essere or-
m a i il s i s t e m a d i s t a m p a d i d e f a u l t s u l l e p i ù d i f f u s e d i s t r i b u z i o n i L i n u x . In
realtà, CUPS è anche un p o t e n t e print server che p e r m e t t e d i c o n d i v i d e r e
u n a o p i ù s t a m p a n t i t r a i d i v e r s i c o m p u t e r c o n n e s s i in r e t e .
Per installare il server d i s t a m p a su U b u n t u va l a n c i a t o il c o m a n d o s e g u e n t e :
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 s u 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 , per
esempio:
Listen 192.168.1.4:631
Per a s c o l t a r e s u 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 g a d a i n s e r i r e è i n v e c e :
Listen *: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
</Location>
«Location /admin/conf>
AuthType Default
Require user @SYSTEH
# Restrict access to the configuration files...
Order allow,deny
</Location>
«Policy defaults
4,1 Cim
Figura 8.1 - Nella configurazione di default il demone cupsd ascolta solo sull'interfaccia
di rete locale.
B i s o g n a 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 g h e :
«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 A l l o w c h e i n d i c h i n o g l i indirizzi d e i c l i e n t c h e
p o s s o n o c o n n e t t e r s i al s e r v e r 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 e n 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>
A q u e s t o p u n t o si p u ò p a s s a r e a l l a c o n f i g u r a z i o n e d e l l a stampante
di rete.
Per a g g i u n g e r e u n a s t a m p a n t e al p r i n t s e r v e r b a s t a r i c h i a m a r e l ' i n t e r f a c c i a
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 direttamente
d a l l a m a c c h i n a server, b i s o g n a a p r i r e in u n q u a l s i a s i w e b b r o w s e r l ' i n d i r i z -
z o 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 u n a n u o v a s t a m p a n t e
d a u n a m a c c h i n a c l i e n t , si d e v e i n s e r i r e in u n b r o w s e r l a n c i a t o sul c l i e n t
l ' i n d i r i z z o IP d e l s e r v e r sulla r e t e , a g g i u n g e n d o p o i : 6 3 1 c o m e r i f e r i m e n t o
alla p o r t a d a u s a r e .
Per p o t e r a g g i u n g e r e u n a s t a m p a n t e d a r e m o t o è n e c e s s a r i o m o d i f i c a r e il
f i l e / e t c / c u p s / c u p s d . c o n f d e l l a m a c c h i n a su c u i è a t t i v o il s e r v e r : 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 , i n f a 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 s e r v e r
p o s s o n o essere e f f e t t u a t e solo d a l sistema locale.
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 seguente:
«Location /admin>
# R e s t r i c t a c c e s s to the a d m i n pages...
Order allow,deny
</Location>
e a g g i u n g e r e u n a r i g a A l l o w c o n g l i i n d i r i z z i IP d e i c l i e n t c u i è permesso
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 « L o c a t i o n / > ( F i g u r a 8.2).
A n c h e in q u e s t o c a s o , 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 f a 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 s e r v e r c o n il c o m a n d o s u d o / e t c / i n i t . d / c u p s y s 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.
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 e s t e s a d e l l a s t a m p a n t e
stessa ( 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
si p u ò i n s e 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 Description.
tv- • t» !e http://localhost:631/
.::::::• ìec;
C o m m o n UNiX P r i n t i n g S y s t e m 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!
Q u e s t e p a g i n e w e b t i c o n s e n t o n o 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 o p e r a z i o n i di s t a m p a n o n c h é e s e g u i r e o p e r a z i o n i di
a m m i n i s t r a z i o n e del s i s t e m a . Fai clic su o g n u n a delle s c h e d e in a l t o o s u i p u l s a n t i s e g u e n t i p e r e f f e t t u a r e u n ' o p e r a z i o n e .
4 T O 4EEilMfi3811 >
Se ti viene richiesto un nome utente o a password, inserisci il nome utente e la password di accesso o il nome utente e la password
dell'utente "root".
Informazioni su CUPS
CU PS f o r n i s c e un s o t t o s l s t e m a di s t a m p a p o r t a b i l e p e r i s i s t e m i o p e r a t i v i b a s a t i su UNIX . S v i l u p p a t o e
g e s t i t o da A p p l e I n c . p e r p r o m u o v e r e u n a s o l u z i o n e di s t a m p a s t a n d a r d . CUPS è il s i s t e m a di s t a m p a
s t a n d a r d u t i l i z z a t o su MacOS® X e sulla m a g g i o r p a r t e delle d i s t r i b u z i o n i Linux®.
H r i u o r Hi 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 i c 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
utilizzato s e l e z i o n a n d o una d e l l e voci disponibili per 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 alla p o r t a U S B
d e l l a m a c c h i n a s e r v e r si s e l e z i o n e r à , n e l m e n u r e l a t i v o 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 f a r à clic sul p u l s a n t e C o n t i n u a .
P o i 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 f a c l i c s u A g g i u n g i
stampante.
get instali: c u p s y s - d r i v e r - g u t e n p r i n t , f o o m a t i c - d b - g u t e n p r i n t , f o o m a -
tic-db-hpijs e foomatic-db-engine.
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 -
n a r e le p r e f e r e n z e d e l p r i n t s e r v e r v e r r à r i c h i e s t o d i i n s e r i r e 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 r e l a t i v a p a s s w o r d . N e l l a s c h e r m a t a s u c c e s s i v a sarà
p o i p o s s i b i l e i m p o s t a r e a l c u n i p a r a m e t r i d i s t a m p a : p e r lasciare i v a l o r i d i
default si faccia clic su Imposta opzioni stampante.
| ' «è Sj 1 ttp://localhost:631/admin?OP=add-printer
^Aggiungi stampante
lÉMffiB Amministrazione ffigSii sra Elissa
Name: L A N P n n t e r
(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< o marchi registrati da Easy S o f t w a r e P r o d u c t s . CUPS è un copyright 1997-2006 dì Easy
Software Products, Tutti i diritti sono riservati.
Figura 8.4 - Valori di esempio di Name, Location e Description per una stampante di rete.
F a t t o q u e s t o , n e l l a s c h e r m a t a s u c c e s s i v a si s c e g l i e I n t e r n e t P r i n t i n g P r o -
t o c o l (ipp) come Dispositivo.
Si fa clic su C o n t i n u a e si i n d i c a c o m e URI d e l d i s p o s i t i v o una riga così
composta:
ìpp://<IPserver>/ipp/printers/<nome>
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 S t a m p a n t i in alto. Apparirà
un elenco di tutte le stampanti attive nel sistema.
D o p o a v e r i n d i c a t o TURI d e l l a s t a m p a n t e d i r e t e si s c e g l i e G e n e r i c c o m e
M a r c a e si fa clic su C o n t i n u a , q u i n d i si i n d i c a il M o d e l l o d e l l a s t a m p a n t e
Generic PostScript Printer (en).
A d e s s o n o n r i m a n e c h e f a r e clic su A g g i u n g i s t a m p a n t e e inserire sul
c l i e n t 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 relativa p a s s w o r d . N e l l a s c h e r m a -
t a successiva, i n f i n e , b a s t a f a r e clic su I m p o s t a o p z i o n i s t a m p a n t e .
'Aggiungi stampante
Amministrazione »«iì'-i umentaz ione/Aiuto
Se il c l i e n t utilizza c o m e s i s t e m a o p e r a t i v o u n a v e r s i o n e d i M i c r o s o f t W i n -
d o w s , p e r p o t e r s t a m p a r e t r a m i t e il p r i n t s e r v e r CUPS è n e c e s s a r i o a g -
g i u n g e r e u n a s t a m p a n t e , i n d i c a r e c h e si v u o l e f a r e u s o d i u n a s t a m p a n t e
d i r e t e e q u i n d i f o r n i r e al s i s t e m a il s e g u e n t e URI (di n u o v o , < i P s e r v e r > è
l ' i n d i r i z z o IP d e l p r i n t s e r v e r e < n o m e > è il n o m e d e l l a s t a m p a n t e ) :
Infine, si s c e g l i e d a l l ' e l e n c o u n q u a l s i a s i d r i v e r d i s t a m p a P o s t S c r i p t : i n o m i
d e i d r i v e r P o s t S c r i p t h a n n o t u t t i c o m e p a r o l a f i n a l e PS.
P e r i n s t a l l a r e il s e r v e r N F S s u l l a m a c c h i n a c h e d e v e "esportare" le d i -
r e c t o r y si l a n c i a il c o m a n d o seguente:
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 u n u n i c o f i l e d i c o n -
figurazione, /etc/exports. P e r 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
inserisce u n a riga n e l file, c o m e in q u e s t o e s e m p i o :
/usr/local/share/video pitagora(rw,async)
A l l ' i n i z i o d e l l a r i g a 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 . P e r d e f a u l t t u t t e l e 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 ( q u i p i t a g o r a ) , c o n l e 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 g a 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 l a 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 e s s a i n l e t t u r a e s c r i t t u r a
(rw) e i n 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 c h i a -
m a b i l i in / e t c / e x p o r t s .
Il f i l e s y s t e m è e s p o r t a t o i n s o l a l e t t u r a . È il c o m p o r t a -
ro
mento di default
Le s c r i t t u r e 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 s i n c r o n o .
sync
Default
Le s c r i t t u r e s u 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 a s i n c r o n o .
async Più v e l o c e d e l l a m o d a l i t à s i n c r o n a m a m e n o s i c u r a (in
caso d i crash alcuni dati p o s s o n o essere persi o corrotti)
G l i a c c e s s i t r a m i t e l ' u t e n t e 0 ( r o o t ) e il g r u p p o relativo
root_squash v e n g o n o t r a d o t t i in accessi t r a m i t e a c c o u n t e g r u p p o
anonimo. Default
:
• LifeSi . *: f
Opzione Significato
Gli 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 t a 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 e n t p o t r à a v e r e a c c e s s o ai f i l e d i r o o t sul s e r v e r
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
filesystem esportato
N e l l a 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 d e l l a r e t e h o m e . i a n , c o n
p e r m e s s i in s c r i t t u r a e la p o s s i b i l i t à d i a c c e d e r e ai f i l e c o n l ' u t e n t e r o o t .
La s e c o n d a r i g a 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 r e n t i a s e c o n d a d e l c l i e n t c h e si c o n n e t t e al s e r v e r N F S : p i a t o n e o t t i e n e
i p e r m e s s i in s c r i t t u r a e l ' a t t i v a z i o n e d e l l a m o d a l i t à a s i n c r o n a , m e n t r e il
c l i e n t p i t a g o r a si d e v e a c c o n t e n t a r e d e i soli p e r m e s s i in l e t t u r a .
L ' u l t i m a r i g a 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 p a c -
chetti d e b scaricati dalla rete, / 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 s c r i t t u r a ai c l i e n t c h e 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 l e / 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 s e r v e r N F S è n e c e s s a r i o e s e g u i r e il c o m a n d o s u d o e x p o r t f s -a.
Per a c c e d e r e d a u n c l i e n t a u n f i l e s y s t e m c o n d i v i s o c o n N F S è n e c e s s a r i o
c h e sul c l i e n 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
c a s o c o n t r a r i o va i n s t a l l a t o c o n s u d o a p t - g e t i n s t a l i nfs-common.
F a t t o q u e s t o , si p u ò m o n t a r e il f i l e s y s t e m 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
comando mount.
Ecco un e s e m p i o :
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 a v v i a u n
client p e r avere accesso alle 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 ò pos-
s i b i l e i n s e 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 e s y -
stem NFS all'avvio della macchina.
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 :
ute *
g o n o p r e s e n t a t e le p r i n c i p a 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 u n c l i e n t
il m o u n t d i u n f i l e s y s t e m N F S . P e r r i c h i a m a r e t a l i o p z i o n i d i r e t t a m e n t e d a
m o u n t le si fa p r e c e d e r e d a -o, così:
s u d o m o u n t -o r w , b g , i n t r P a r m e n i d e : / m e d i a / m u s i c a /mnt/nfs/musica
Per i n s t a l l a r e S a m b a sulla m a c c h i n a s e r v e r è s u f f i c i e n t e i n s t a l l a r e t r a m i t e
a p t - g e t il p a c c h e t t o o m o n i m o :
sudo smbpasswd -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 n s e 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 esistere un u t e n t e c o r r i s p o n d e n t e nel file 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 f a 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
u n a 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 i n s e r i r l a p o i u n a s e c o n d a v o l t a
per conferma.
Figura 8.7 - Per creare un utente samba si usa il comando smbpassword -a seguito dal
nome dell'utente da aggiungere.
P e r c a n c e l l a r e u n u t e n t e s a m b a si l a n c i a 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
sudo smbpasswd -x a l e
C o n l ' o p z i o n e -d d i s m b p a s s w d , 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 Sam-
b a . P e r 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 s u l s e r v e r , q u i n d i , si u t i l i z z a
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 i a t t i -
vato l'utente antonio:
s u d o s m b p a s s w d -d a n t o n i o
s u d o s m b p a s s w d -e a n t o n i o
A q u e s t o p u n t o , è p o s s i b i l e i n t e r v e n i r e sul file 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 a v e r a p e r t o d a r o o t il f i l e c o n l ' e d i t o r (sudo v i
/ e t c / s a m b a / s m b . c o n f ) , p e r c o n d i v i d e r e u n a 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 l e d e l l e righe s i m i 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 i g a s t a b i l i s c e il n o m e d e l l a risorsa c o n d i v i s a , c h e in q u e s t o c a s o
è d o c u m e n t i . Tale risorsa 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 n e l l a m a c c h i n a su c u i è a t t i v o il s e r v e r S a m b a : la r i g a c h e inizia
con path determina questa corrispondenza.
N e l l a r i g a s u c c e s s i v a , m e d i a n t e il p a r a m e t r o v a l i d u s e r s v e n g o n o e l e n -
c a t i g l i u t e n t i c h e p o s s o n o a c c e d e r e alla risorsa c o n d i v i s a 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 i m a r i g a , i n f i n e , i n d i c a c h e sulla 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 s c r i v e r e .
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 i c u r e z z a in S a m b a è u n a r g o m e n t o c o m -
p l e s s o e la sua t r a t t a z i o n e e s a u s t i v a 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 s p a z i d i s p o n i b i l i su d i e s s o . E c c o , d u n q u e ,
alcune semplici informazioni di base sull'argomento.
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 s u l l ' u l t i m a
s e z i o n e d e l f i l e 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 l e r i s o r s e 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 l e è i n v e c e o c c u p a t a d a l l a s e z i o n e [Global], c h e r a c c o g l i e le
impostazioni globali d e l server Samba.
Si a n d r à d u n q u e a i n t e r v e n i r e su q u e s t a s e z i o n e p e r l i m i t a r e l ' a c c e s s o al
s e r v e r a l l e s o l e m a c c h i n e c o n n e s s e alla r e t e l o c a l e .
g ===== Global Settings = = = = = = = = = = = =
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
# 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 i n i z i a l e d i s m b . c o n f si c e r c h i la r i g a s e g u e n t e :
Q u e s t a riga va d e c o m m e n t a t a togliendo 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 n s e 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 g a c h e s e g u e :
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 lista d i i n d i r i z z i c u i è c o n s e n t i t o l ' a c c e s s o . P e r f a r e
[Global] di smb.conf:
C o n q u e s t a r i g a 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
; security = user
e la si m o d i f i c h i c o s i :
security = share
I
!####### Authentication #######
# "security = user" is always a good idea. This will require a Unix account
P e r o t t e n e r e u n a c c e s s o s e n z a 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 ( g u e s t ) .
Per default l'utente guest è nobody, ma questo può essere modificato
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
[video]
path = /usr/local/share/video
g u e s t ok = y e s
read only = yes
In q u e s t e r i g h e v i e n e a s s e g n a t o il n o m e v i d e o alla risorsa, si d à a c c e s s o
alla d i r e c t o r y / u s r / i o c a i / s h a r e / v i d e o e si c o n s e n t e la c o n n e s s i o n e senza
p a s s w o r d a un u t e n t e a n o n i m o . Infine, si i n d i c a c h e la risorsa d e v e essere
a sola l e t t u r a .
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 e l server, è 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 q u e -
s t o f u n z i o n i c o r r e t t a m e n t e . In u n a c o n s o l e si installi il p a c c h e t t o s m b c i i e n t
C o n sudo a p t - g e t i n s t a l i s m b c l i e n t 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 < i n d i r i z z o > l ' i n d i r i z z o IP d e l s e r v e r S a m b a e c o m e < u t e n t e >
il n o m e d e l l ' u t e n t e c h e d e v e e f f e t t u a r e la c o n n e s s i o n e :
s m b c l i e n t -L / / « i n d i r i z z o -U < u t e n t e >
Una v o l t a d i g i t a t a la p a s s w o r d d e l l ' u t e n t e s a m b a i n s e r i t o , in o u t p u t si o t -
t e r r à u n a serie d i i n f o r m a z i o n i sulle d i v e r s e risorse condivise dal 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 risorse i n d i c a t e nel file s m b . c o n f
r i s u l t a n o a t t i v e , 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 e ci si p u ò d e d i -
care ai c l i e n t d a c o n n e t t e r e .
ale@pitagora:-$ smbclient -L //192.168.1.4 -U ale
SPassword:
Domain=[PITAGORA] 0S= [Unix] Server=[Samba 3.0.28a]
Server Comment
Workgroup Master
WORKGROUP PITAGORA
ale@pitagora:-$ |
S e 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
smbclient.
Dopo a v e r i n s t a l l a t o il p a c c h e t t o omonimo 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 i n q u e s t o modo:
A q u e s t o p u n t o v e r r à c h i e s t o d i i n s e r i r e 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
a v r à a c c e s s o a u n a 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 s e r v e r , 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 .
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
Per o p e r a z i o n i p i ù a r t i c o l a t e s u l l e r i s o r s e o , s e m p l i c e m e n t e , p e r u n a c c e s -
s o p i ù c o m o d o a e s s e è c o n s i g l i a b i l e i n s t a l l a r e 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 i s o r s a r e m o t a s u l l a m a c c h i n a l o c a l e c o m e s e si t r a t t a s s e d i
un normale disco.
Il c o m a n d o d a u t i l i z z a r e è 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 i n t a s s i :
D o p o a v e r 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 d e l l a risorsa d o c u m e n t i
sarà a c c e s s i b i l e in / m n t / s a m b a . Per m o n t a r e u n a d i r e c t o r y r e m o t a in a u -
t o m a t i c o a l l ' a v v i o è p o s s i b i l e i n t e r v e n i r e sul f i l e / e t c / f s t a b . E c c o q u i n d i
l ' e s e m p i o fin q u i riportato t r a d o t t o in u n ' a p p o s i t a r i g a p e r / e t c / f s t a b :
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 p a s s w o r d (il c a r a t t e -
re x va c a m b i a t o c o n l ' e f f e t t i v a p a s s w o r d u t i l i z z a t a ) p e r a v e r e a c c e s s o alla
risorsa d a l l ' a v v i o d e l c l i e n t s e n z a c h e l ' u t e n t e d e b b a d i g i t a r e n u l l a .
N e l c a s o si c o n s e n t a la c o n n e s s i o n e s e n z a 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ì:
Per o t t e n e r e l ' a c c e s s o al s e r v e r S a m b a d a u n a m a c c h i n a W i n d o w s b i s o g n a
a s s i c u r a r s i c h e il w o r k g r o u p i m p o s t a t o n e l l a 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 n e l f i l e / e t c / s a m b a / s m b . c o n f d e l s e r v e r . Per
m o d i f i c a r e q u e s t ' u l t i m o b a s t a e n t r a r e in s m b . c o n f e c a m b i a r e il v a l o r e 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 n e l l a riga s e g u e n t e :
workgroup = WORKGROUP
F a t t o q u e s t o , le r i s o r s e e s p o r t a t e d a l s e r v e r S a m b a s a r a n n o v i s i b i l i d a l
client W i n d o w s c o m e normali dischi condivisi.
Main Page
System
Éèxcue C English page | Page e n f r a n ç a i s | Pégina e n e s p a n o l
Welcome to SystemRescueCd
. HOMEPAGE
.FORUMS
Description: SystemRescueCd is a Linux s y s t e m o n a b o o t a b l e CD-ROM f o r r e p a i r i n g y o u r
. NEWS
s y s t e m a n d r e c o v e r i n g y o u r d a t a a f t e r a crash. It aims t o p r o v i d e a n easy way t o c a r r y o u t
(SÉMI a d m i n tasks o n y o u r c o m p u t e r , such as c r e a t i n g a n d e d i t i n g t h e p a r t i t i o n s of t h e hard disk. It
» Home c o n t a i n s a l o t o f system utilities ( p a r t e d , p a r t i m a g e , f s t o o l s , . . . ) a n d basic tools (editors,
« Screenshots m i d n i g h t c o m m a n d e r , n e t w o r k tools). It is very easy t o use: just b o o t t h e CDROM. The k e r n e l
» download
s u p p o r t s most of t h e i m p o r t a n t file s y s t e m s (ext2/ext3, reiserfs, reiser4. xfs, jfs, v f a t , ntfs,
« HowTo
iso9660), as well as network filesystems (samba a n d nfs).
. FAQ
• ChangeLog-x86
• ChangeLog-ppc Quick start Guide (edit)
» ChangeLog-sparc
. System tools If this is t h e f i r s t t i m e y o u use SystemRescueCd, please r e a d t h e Quick start guide (english)
« Package-iist-x86
« Package-list-sparc Recent news about this project [edit]
« Kernel
» Seta-x86 You can f i n d m o r e d e t a i l s a b o u t t h e r e c e n t changes m a d e in SystemRescueCd in t h e news
s e c t i o n s o f this w e b s i t e . Below a r e t h e r e c e n t news t h a t give you m o r e details about the
i _ S _ / ! !
Si «_) / S/ \ / ! i ! ! / _ S ! /
; ; : _ < / s \ ( ¡ I _ I ¡ i ¡ ( _ ¡
_í !_s_¡ s_s /s !s ,_!s is s
_) ! S__
__/ S , ¡
H > Press F5 for help if you have boot problems with SystemRescueCd <==
I
W J e l c o m e to SystemRescueCd for x86 (i486+amd64) - version 1.0.4
H F 2 , F 3 , F 4 , F 5 , F 6 , F 7 for boot options and more h e l p .
• E n t e r to b o o t .
•boot:
D o p o q u a l c h e s e c o n d o a p p a 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 r e a r e i f i l e i m m a g i n e d e l l e
partizioni.
Se, p e r e s e m p i o , si fa u s o d i u n h a r d d i s k U S B , 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 c r e a la d i r e c t o r y in c u i v e r r à e f f e t t u a t o il m o u n t (mkdir / m n t / d i s k ,
ad esempio).
F a t t o 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 c u i si v o g l i o n o c o p i a r e i
f i l e 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 d a
l a n c i a r e sarà m o u n t / d e v / s d b l /mnt/disk.
N e l c a s o n o n si c o n o s c a il f i l e 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 d a m o n t a r e , si
p u ò e s e g u i r e d m e s g n e l l a 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 c o l -
l e g a l ' h a r d d i s k al PC. Tra l e u l t i m e righe d i o u t p u t r e s t i t u i t e d a l c o m a n d o
saranno presenti linee simili alle s e g u e n t i :
E f f e t t u a t o il m o u n t d e l l a p a r t i z i o n e su c u i c o p i a r e i f i l e i m m a g i n e , n o n
resta c h e a v v i a r e P a r t i m a g e l a n c i a n d o n e l l a 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 p a r t i m a g e . A p p a r i r à la s c h e r m a t a v i s i b i l e in F i g u r a 9 . 3 .
U n ' a l t r a o p z i o n e i n t e r e s s a n t e è If f i n i s h e d s u c c e s s f u l l y : , c h e c o n s e n t e d i
s t a b i l i r e l ' a z i o n e d a i n t r a p r e n d e r e q u a n d o la c r e a z i o n e d e l f i l e i m m a g i n e
t e r m i n a c o n s u c c e s s o . V a l o r 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 i a v v i a r e la m a c c h i n a a o p e r a z i o n e c o n c l u s a .
N e l l a m e d e s i m a s c h e r m a t a , i n f i n e , è p o s s i b i l e i n d i c a r e se si d e s i d e r a s u d -
d i v i d e r e l ' i m m a g i n e d e l l a p a r t i z i o n e in p i ù f i l e e in c h e m o d o bisogna
farlo. La scelta prestabilita per l'opzione Image split mode è Into files
w h o s e s i z e is:, s e g u i t a d a l v a l o r e n u m e r i c o 2 0 3 7 M i B . Per d e f a u l t , q u i n d i ,
i f i l e i m m a g i n e v e n g o n o r i p a r t i t i in s i n g o l i f i l e d a l l a d i m e n s i o n e m a s s i m a
di 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 v a l o r e d e l l ' o p z i o n e , i n v e c e , il f i l e i m m a -
g i n e sarà s u d d i v i s o in p i ù f i l e s o l o n e l c a s o in c u i f i n i s s e l o s p a z i o d i s p o -
n i b i l e sul d i s p o s i t i v o . In u n a s i m i l e e v e n t u a l i t à , v e r r à c h i e s t o d i i n s e r i r e il
p e r c o r s o d i u n n u o v o f i l e i m m a g i n e d o v e r i v e r s a r e la p a r t e r e s t a n t e d e l l a
partizione da copiare.
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 t e n d e creare d e i file i m m a g i n e d a m e m o r i z z a r e p o i su C D - R O M
si lasci Into files whose size is: come valore di Image split mode e si
i n d i c h i c o m e valore n u m e r i c o 6 5 0 o 7 0 0 M i B , a s e c o n d a della capienza
d e i dischi i m p i e g a t i . Nel caso d i utilizzo d i D V D - R O M il valore da inserire
è 4400 MiB.
Compression level
( ) Hone (very fast + very big file)
(*) Gzip i.gz: medium speed + small image file)
( ) BzipZ (.bzZ: very slow • very small image file)
S c e 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 F 5 . Se l o si d e s i d e r a , q u i n -
d i , si p u ò i n s e r i r e u n a 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 Invio.
Life
i
Linux U b u n t u per s e r v e r e reti
A q u e s t o p u n t o c o m p a r i r à u n a f i n e s t r a i n f o r m a t i v a sulla p a r t i z i o n e c h e si
intende copiare. O r a n o n rimane che premere ancora Invio e attendere
c h e il f i l e 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 n e 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 r e p a r t i z i o n i d a c o p i a r e .
La p r o c e d u r a n e c e s s a r i a p e r r i p r i s t i n a r e l ' i m m a g i n e d i u n a p a r t i z i o n e è
s i m i l e a q u e l l a s e g u i t a p e r c r e a r e il f i l e i m m a g i n e . E c c o u n s u c c i n t o r i e p i -
l o g o d e i diversi passaggi:
1. si a v v i a p a r t i m a g e d a l l a c o n s o l e d i S y s t e m R e s c u e C D e n e l l a s c h e r -
m a t a c h e a p p a r e si s e l e z i o n a , in a l t o , la p a r t i z i o n e d a r i p r i s t i n a r e ;
2. si p r e m e il t a s t o T a b e si d i g i t a il p e r c o r s o d e l f i l e i m m a g i n e . D a t o c h e
P a r t i m a g e a g g i u n g e a u t o m a t i c a m e n t e l ' e s t e n s i o n e . 0 0 0 al p r i m o file
i m m a g i n e g e n e r a t o , il n o m e d e l f i l e d a r i p r i s t i n a r e d e v e c o n t e n e r e i
c a r a t t e r i . 0 0 0 finali. Per e s e m p i o , se il f i l e i m m a g i n e c r e a t o è d e b i a n .
i m g , il n o m e d e l f i l e d a r i p r i s t i n a r e d i v e n t a d e b i a n . i m g . 0 0 0 ;
Opt ions
[ ] Simulation of the restoration (nothing is w r i t t e n )
t 1 Erase free blocks with zero values
If finished successfully:
IHL
— a a r
»l'IM»
Figura 9.5 - La schermata di Partimage con le opzioni per il ripristino di una partizione.
In q u e s t a s e z i o n e 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 r e s e n t a 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 d a t i , t a r e r s y n c , f o r n e n d o p e r essi la
c o n s u e t a serie d i e s e m p i d ' u s o .
Un p r o g r a m m a s e m p l i c e e p o t e n t e c h e c o n s e n t e d i archiviare il c o n t e n u t o d i
i n t e r e d i r e c t o r y in u n u n i c o file o su d i u n n a s t r o è tar. Si è g i à i n c o n t r a t o q u e -
s t o c o m a n d o n e l l e p a g i n e d e d i c a t e alla stesura d e g l i s c r i p t e , a q u e s t o p u n -
t o , è 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 c o n o s c e r n e le o p z i o n i
d i s p o n i b i l i . N e l l a Tabella 9 . 1 v e n g o n o e l e n c a t e le o p z i o n i p r i n c i p a l i d i t a r ,
q u e l l e c i o è c h e s e l e z i o n a n o la m o d a l i t à d i f u n z i o n a m e n t o d e l p r o g r a m m a .
-t o - l i s t M o s t r a in o u t p u t c i ò c h e c o n t i e n e l ' a r c h i v i o
A l l a serie d i o p z i o n i i n d i c a t e va a g g i u n t o u n a m p i o v e n t a g l i o d i o p z i o n i
ausiliarie. Le p i ù i m p o r t a n t i s o n o -f, p e r i n d i c a r e il f i l e o ¡1 d i s p o s i t i v o
c o r r i s p o n d e n t e a l l ' a r c h i v i o d a usare, -z p e r g e s t i r e archivi c o m p r e s s i c o n
g z i p , -j p e r utilizzare archivi b z i p 2 e , i n f i n e , -v p e r a u m e n t a r e il l i v e l l o d i
verbosità d e l l ' o u t p u t . Altre opzioni d'uso c o m u n e verranno presentate nel
corso d e i paragrafi seguenti.
Le o p e r a z i o n i di base con t a r
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 ( o p z i o n e c) l ' a r c h i v i o su f i l e ( f ) h o m e _
a l e . t a r . b z 2 . A l s u o i n t e r n o si c o p i a l ' i n t e r o c o n t e n u t o d i / h o m e / a l e , s o t t o -
d i r e c t o r y c o m p r e s e , c o m p r i m e n d o i d a t i m e d i a n t e b z i p 2 (j). C o m e si p u ò
n o t a r e , l ' u t i l i z z o d e l c a r a t t e r e - c h e p r e c e d e le s i n g o l e o p z i o n i è f a c o l t a t i -
v o : lo stesso c o m a n d o a v r e b b e p o t u t o essere s c r i t t o t a r -cjf, t a r -c -j
-f o p p u r e , a n c o r a , t a r - - c r e a t e --bzip2 --file.
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 presente nel sistema, c o n f r o n t a n d o i dati d e l p r i m o c o n l'effettivo
c o n t e n u t o d e l f i l e s y s t e m . P e r q u e s t a o p e r a z i o n e si e n t r a n e l l a directory
r a d i c e c o n e d / e si u t i l i z z a l ' o p z i o n e - - c o m p a r e (-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 dell'archivio, c o m e nell'esempio seguente:
R i p o s t o l ' a r c h i v i o s u 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 à n e l l a d i r e c t o r y
d i q u e s t o e si l a n c e r à t a r c o n l ' o p z i o n e - - l i s t (-t):
t a r xjf /media/cdrom/home_ale.tar.bz2
tar x j p f /media/cdrom/home_ale.tar.bz2
Q u e s t a o p z i o n e è i m p l i c i t a q u a n d o si e s t r a e un a r c h i v i o d a r o o t .
Per c o n c l u d e r e q u e s t a carrellata sulle o p e r a z i o n i d i b a s e in tar, u n ' o p z i o -
n e u t i l e q u a n d o si d e v o n o c r e a r e c o p i e d i b a c k u p d i d i r e c t o r y v o l u m i n o s e
è --exclude, c h e p e r m e t t e d i e s c l u d e r e f i l e e i n t e r e d i r e c t o r y d a l l ' a r c h i v i o
c h e si v u o l e g e n e r a r e . Ecco un e s e m p i o :
Il p r o g r a m m a t a r p e r m e t t e d i c r e a r e d i a r c h i v 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 d a t a a l l ' o p z i o n e - - l i s t e d - i n c r e m e n t a i (-g) e a l l ' u t i l i z z o d i
u n f i l e d i s n a p s h o t : si t r a t t a d i u n 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 t a r
i n f o r m a z i o n i sullo stato d e i file e d e l l e d i r e c t o r y p r e s e n t i in u n archivio.
A v e n d o a disposizione una "istantanea" d e l contenuto più recente di un
a r c h i v i o , q u i n d i , il p r o g r a m m a p u ò c r e a r e il s u c c e s s i v o f i l e 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 file 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 volta.
Q u a n d o si c r e a u n a r c h i v i o 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 r e l a t i -
v o f i l e d i s n a p s h o t . E c c o u n e s e m p i o p e r il b a c k u p d e l l a d i r e c t o r y / e t c :
t a r cf e t c - 1 5 0 8 0 8 . t a r -g / t m p / e t c . i n c / e t c
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'archivio iniziale e t c - 1 5 0 8 0 8 . t a r , c h e è
u n a r c h i v i o 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 t u r i f i l e i n c r e -
mentali sono memorizzate nello snapshot /tmp/etc.inc.
Q u a n d o si v o r r à a g g i o r n a r e il b a c k u p d e l l a d i r e c t o r y / e t c b i s o g n e r à s e m -
p r e f a r e r i f e r i m e n t o al f i l e 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 archivi incrementali:
t a r cf e t c - 2 1 0 8 0 8 . t a r -g /tmp/etc.inc / e t c
M e d i a n t e q u e s t i d u e c o m a n d i , d u n q u e , si è p r i m a c r e a t o u n a r c h i v i o c o m -
p l e t o ( e t c - 1 5 0 8 0 8 . t a r ) e p o i u n a r c h i v i o i n c r e m e n t a l e ( e t c - 2 1 0 8 0 8 . t a r ) . Per
e s t r a r r e il c o n t e n u t o d e g l i archivi e r i p r i s t i n a r e così le v e r s i o n i p i ù a g g i o r -
n a t e d e i f i l e in / e t c , b i s o g n a s e g u i r e il p e r c o r s o d i c r e a z i o n e d e g l i archivi
r i c h i a m a n d o il file d i s n a p s h o t r e l a t i v o :
tar xf e t c - 1 5 0 8 0 8 . t a r -g / t m p / e t c . i n c
tar xf e t c - 2 1 0 8 0 8 . t a r -g / t m p / e t c . i n c
Nei nomi degli archivi incrementali usati come esempio la data è stata
inserita manualmente, per maggiore chiarezza. Per indicare la data in
m o d o automatico basta impiegare il c o m a n d o d a t e , come si è visto in
precedenza:
tar cf e t c - $ ( d a t e + % d % m % y ) . t a r -g / t m p / e t c . i n c / e t c
Per conoscere la sintassi di d a t e si legga la man page del comando (man
date).
Archivi multivolume
È p o s s i b i l e c r e a r e c o n t a r archivi m u l t i v o l u m e , archivi c i o è c h e v e n g o n o
s u d d i v ì s i e m e m o r i z z a t i su p i ù s u p p o r t i . C i ò p u ò risultare u t i l e n e l c a s o in
cui, p e r il b a c k u p d e i p r o p r i d a t i , si u t i l i z z i n o nastri, u n i t à Z i p o s e m p l i c i
f l o p p y d i s k e u n s i n g o l o s u p p o r t o n o n risulti s u f f i c i e n t e p e r c o n t e n e r e
l ' i n t e r o a r c h i v i o t a r c h e si i n t e n d e c r e a r e .
L ' o p z i o n e necessaria p e r g e s t i r e g l i archivi m u l t i v o l u m e è - - m u i t i - v o i u m e
(-M): u t i l i z z a n d o q u e s t a o p z i o n e , n e l m o m e n t o in c u i lo s p a z i o d i s p o n i b i l e
su u n s u p p o r t o si e s a u r i s c e il p r o g r a m m a a t t e n d e c h e l ' u t e n t e inserisca
un n u o v o s u p p o r t o e così fa p e r i successivi, f i n c h é l ' i n t e r o a r c h i v i o n o n è
stato copiato.
N e l l ' i m m a g i n e s e g u e n t e (Figura 9.8) è p r e s e n t e u n c o m a n d o d ' e s e m p i o
p e r la c r e a z i o n e d i u n a r c h i v i o 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-
t i - v o l u m e si a g g i u n g e l'utilizzo d e l f i l e d i d i s p o s i t i v o / d e v / s t O c o m e a r g o -
m e n t o d i --file. N e l l a riga d ' e s e m p i o r i p o r t a t a , d u n q u e , la c a r t e l l a / r o o t
v i e n e a r c h i v i a t a su u n ' u n i t à a n a s t r o (il file d i d i s p o s i t i v o / d e v / s t O , a p p u n t o )
utilizzando un archivio m u l t i v o l u m e .
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.
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 s e si
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 installato 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 intere 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 .
/home/ale 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 disk
esterno:
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 c u i si l a n c e r à l o s t e s s o c o m a n d o r s y n c il c o n t e n u t o
delle directory di origine (nell'esempio /home/ale) e di destinazione (/me-
d i a / d i s k / b a c k u p ) verrà " s i n c r o n i z z a t o " , c o p i a n d o sulla s e c o n d a directory
s i s t e m a r e m o t o . La s i n t a s s i d a u t i l i z z a r e i n r s y n c p e r la c o p i a i n r e t e è
d e l t u t t o slmile 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'ovvia differenza 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 , s e 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 c u i
inviare i dati.
Il m e t o d o p i ù s e m p l i c e p e r t r a s f e r i r e f i l e in r e m o t o c o n rsync è q u e l l o d i
sfruttare SSH: nella m a c c h i n a c h e 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 u n s e r v e r SSH.
N e l l a r i g a 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 n e l l a c a r t e l l a
. / 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 :
s u d o r s y n c - a v z -e s s h - - d e l e t e / h o m e / m a r i o / m a r i o @ b a c k u p . ufficio.
lan:./copia
C o m e si p u ò v e d e r e , l ' i n s i e m e d i o p z i o n i i n s e r i t e sulla l i n e a d i c o m a n d o è
un p o c o p i ù articolato rispetto 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 è s t a t a 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 f a sì c h e i
dati vengano compressi durante i trasferimenti e ciò consente di rendere i
b a c k u p i n r e t e p i ù r a p i d i . L ' o p z i o n e -e, q u i n d i , è s e g u i t a d a l l a s h e l l r e m o t a
(ssh) d a u t i l i z z a r e 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 - - d e l e t e fa c a n c e l l a r e d a l l a 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 l e n o n p i ù
presenti nella directory d i origine.
Installazione di Bacula
La s t r u t t u r a m o d u l a r e d i B a c u l a c o n s e n t e d i a d a t t a r e il s i s t e m a a l l e p i ù
s v a r i a t e c o n f i g u r a z i o n i . N e l l a T a b e l l a 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
che costituiscono l'impalcatura dell'applicazione.
Linux U b u n t u per s e r v e r e reti
Director 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 i n -
Daemon cipali del sistema di b a c k u p
C o m p o n e n t e c h e si o c c u p a d i g e s t i r e i d i s p o s i t i v i in
Storage
cui 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 avvia-
Daemon
t o sul c o m p u t e r su c u i s o n o p r e s e n t i t a l i d i s p o s i t i v i
D e m o n e c h e va a v v i a t o su o g n i m a c c h i n a d i c u i si de-
File D a e m o n
s i d e r a e f f e t t u a r e il b a c k u p
L ' i n t e r f a c c i a 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
Console
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 B a c u l a
Il d a t a b a s e n e l q u a l e v e n g o n o i n s e r i t i i d a t i r e l a t i v i ai
Catalog
backup
N e l l a p r o c e d u r a d i i n s t a l l a z i o n e c h e s e g u e , p e r m a g g i o r e c h i a r e z z a , si p r e -
s u p p o n e c h e i t r e d e m o n i n e c e s s a r i al f u n z i o n a m e n t o d i B a c u l a s i a n o t u t t i
a t t i v i sulla 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
(Director D a e m o n ) , q u e l l a d e i d i s p o s i t i v i di m e m o r i z z a z i o n e prescelti (Sto-
r a g e D a e m o n ) e q u e l l a d e i d a t i d i c u 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 , n e g l i e s e m p i r i p o r t a t i a v v e n g o n o su d i u n u n i c o PC.
Per u s a r e B a c u l a è n e c e s s a r i o i n s t a l l a r e u n s i s t e m a d i d a t a b a s e a s c e l t a
t r a M y S Q L , S Q L i t e e P o s t g r e S Q L . Per l ' i n s t a l l a z i o n e d i e s e m p i o si è s c e l t o
M y S Q L , q u i n d i p r i m a di installare Bacula b i s o g n a effettuare l'installazione
d e l d a t a b a s e s c e l t o ( i n s t a l l a n d o M y S Q L p r i m a d i B a c u l a si c o n s e n t i r à a
q u e s t ' u l t i m o di g e n e r a r e tutti i file di c o n f i g u r a z i o n e di default):
sudo apt-get instali mysql-server
D u r a n t e l'installazione d e l p a c c h e t t o verrà richiesto l ' i n s e r i m e n t o di una
p a s s w o r d per 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 (Figura 9.10).
U n a v o l t a 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 i c u r e z z a , la p r o c e d u r a d ' i n -
stallazione di M y S Q L terminerà.
A q u e s t o p u n t o si p o s s o n o i n s t a l l a r e i n e c e s s a r i p a c c h e t t i d i B a c u l a c o n il
c o m a n d o s u d o a p t - g e t i n s t a l i b a c u l a . Il g e s t o r e d i p a c c h e t t i f a r à a p p a r i -
re u n a s c h e r m a t a in c u i v e r r à r i c h i e s t o d i i n s e r i r e 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 c h e 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 utilizza
9 . Il b a c k u p
N e l l a s c h e r m a t a s u c c e s s i v a b i s o g n a i n d i c a r e q u a l e u t e n t e a m m i n i s t r a il
s e r v e r M y S Q L . P r e m e n d o I n v i o v e r r à c o n f e r m a t a la s c e l t a d i d e f a u l t , r o o t .
F a t t o 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 i n s e r i t a 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 s e r v e r ( F i g u r a 9 . 1 1 ) .
La s t r u t t u r a a r t i c o l a t a d i B a c u l a richiede c h e ciascuna c o m p o n e n t e d e l
sistema v e n g a o p p o r t u n a m e n t e configurata. I file d i c o n f i g u r a z i o n e delle
diverse c o m p o n e n t i s o n o t u t t i raccolti nella 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 c h e si i n t e n d e utilizzare
i n t e r v e n e n d o nel file d i c o n f i g u r a z i o n e della c o m p o n e n t e Storage, / e t c /
bacula/bacula-sd.conf. N e l file d i d e f a u l t f o r n i t o dalla d i s t r i b u z i o n e s o n o
presenti, c o m m e n t a t e , delle righe di configurazione p e r un nutrito nume-
ro d i d i s p o s i t i v i d i b a c k u p .
Device {
N a m e = "Tape D r i v e "
Device Type = tape
Media Type = DDS-4
Archive Device = /dev/stO
AutomaticMount = yes;
AlwaysOpen = Yes;
ReraovableMedia = y e s ;
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 f o r -
n i t e in g r u p p i d i righe r a c c h i u s e t r a p a r e n t e s i g r a f f e e p r e c e d u t e d a u n a
p a r o l a c h i a v e (che in q u e s t o c a s o è 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 u n 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 , T a p e D r i v e . La r i g a M e d i a T y p e i n d i c a 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 A r c h i v e D e v i c e c o n t i e n e il f i l e d i d i s p o s i t i v o
relativo all'unità di b a c k u p prescelta.
Le r i g h e q u i i n d i c a t e s o n o g i à p r e s e n t i n e l f i l e 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 v a r l e è s u f f i c i e n t e e l i m i n a r e il c a r a t t e r e d i c o m -
m e n t o i n i z i a l e ('#') d a c i a s c u n a d i e s s e .
»¡.•!i-,iLìfesm.:«pr.
L'unità a nastro DDS-4 consente la memorizzazione di 20 GB di dati su
un singolo nastro. Il sistema DDS (Digital Data Storage), nelle sue varie
incarnazioni dal DDS-1 al DAT-160, fa uso di nastri digitali DAT. Il f o r m a -
t o più recente, DAT-160 p e r m e t t e di salvare 80 GB di informazioni per
s u p p o r t o (160 GB con compressione).
E f f e t t u a t a q u e s t a m o d i f i c a , è p o s s i b i l e s a l v a r e il f i l e / e t c / b a c u l a / b a c u l a -
s d . c o n 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 i s t r u z i o n i in / e t c / b a c u l a /
b a c u l a - d i r . 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 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 l e 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 uno
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 d a a d o t t a r e ) , u n F i l e S e t (le d i -
r e c t o r y d i c u 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 u n a S c h e d u l e (la p i a n i f i c a -
zione del backup).
Si c o m i n c i a d a l l a s e z i o n e S t o r a g e . E c c o 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
A d d r e s s = eraclito.ufficio, l a n
S D P o r t = 9103
Password = "Cv70F6pflt6pBopT4vQ0nigDrR0v3LT3Cgkiyj"
D e v i c e = "Tape D r i v e "
Media Type = DDS-4
}
La r i g a d i A d d r e s s c o n t i e n e l ' i n d i r i z z o F Q D N o l'IP d e l l a m a c c h i n a in c u 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 P a s s w o r d i n d i c a t a
d e v e c o r r i s p o n d e r e alla p a s s w o r d p r e s e n t e n e l f i l e b a c u l a - s d . c o n f , n e l l a
s e z i o n e D i r e c t o r ( F i g u r a 9 . 1 3 ) . La r i g a D e v i c e , q u i n d i , r i p o r t a il v a l o r e d e l l a
r i g a N a m e n e l f i l e 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 r e s c e l t o . Il M e d i a Type,
infi n e , d e v e c o r r i s p o n d e al M e d i a T y p e 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 d a i n s e r i r e
nel b a c k u p . B i s o g n a c r e a r e u n a s e z i o n e F i l e S e t s i m i l e alla s e g u e n t e :
FileSet {
Name = "BackupFiles"
Include {
Options {
signature = MD5
compression = GZIP
}
File = /home
}
}
A q u e s t o F i l e S e t v i e n e a s s e g n a t o il n o m e BackupFiles e v e n g o n o atti-
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 c u i si e f f e t t u a il
c o m p r e s s ion=GZIp).
La r i g a c h e i n i z i a c o n F i l e = i n d i c a c h e si v u o l e c r e a r e u n a 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 e s s a . P e r g e -
s t i r e 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 F i l e , in q u e s t o
modo:
File = /usr/local
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 directory
indicate.
Linux Uburitu per s e r v e r e reti
E c c o q u i n d i u n ' i p o t e t i c a s e z i o n e S c h e d u l e d a i n s e r i r e in b a c u l a - d i r . c o n f :
Schedule {
Name = "BackupDaily"
R u n = F u l l d a i l y at 0 8 : 0 0
La c o n s u e t a riga N a m e i n d i c a il n o m e d a d a r e a q u e s t a S c h e d u l e . N e l l a 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 u n 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) alle o r e 8 : 0 0 A M (at o s : o o ) . 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 altre righe Run c o n diffe-
r e n t i i n d i c a z i o n i t e m p o r a l i p o s s o n o e s s e r e le s e g u e n t i :
La p r i m a r i g a d ' e s e m p i o e f f e t t u a u n b a c k u p i n c r e m e n t a l e d a l l u n e d ì al
v e n e r d ì a l l e 2 0 : 0 5 , m e n t r e la s e c o n d a crea u n b a c k u p d i f f e r e n z i a l e o g n i
p r i m o d e l m e s e a l l e 5 : 0 1 . Per a v e r e u n e l e n c o e s a u s t i v o d e i v a l o r i c h e è
p o s s i b i l e i n s e r i r e n e l l e r i g h e R u n si v e d a la G u i d a d i B a c u l a a l l ' i n d i r i z z o :
http://www.bacula.org/en/dev-manual/Bacula Users Guide.html
I
Next| Up| Previousj Comenis| Index|
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 l e S e t e
S c h e d u l e in u n u n i c o J o b c r e a n d o la s e z i o n e r e l a t i v a n e l f i l e b a c u l a - d i r .
conf. Eccola:
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 i n i z i a n o c o n F i l e S e t , s c h e d u l e e S t o r a g e 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 valori inseriti nelle righe Name d e l l e rispettive sezioni d e l file
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 L o c a l B a c k u p , 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 d e l l a m a c c h i n a d i c u 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 w r i t e B o o t s t r a p , i n v e c e , i n d i c a il f i l e n e l q u a l e si d e s i d e r a scri-
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 : u n f i l e 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 n a r e u n s i s t e m a s e n z a c h e sia n e c e s s a r i a la p r e s e n z a d i
un C a t a l o g . A t t i v a r e un file di 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
raccomandabile.
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
sto a p p a r t e n g a al g r u p p o bacula: si o t t i e n e q u e s t o m e d i a n t e il c o m a n d o
sudo adduser utente bacula, i n s e r e n d o al p o s t o d i utente il n o m e
e f f e t t i v o d e l l ' u t e n t e d a a g g i u n g e r e al g r u p p o .
P e r 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 ,
nella c o n s o l e d i Bacula b i s o g n a d i g i t a r e label e p r e m e r e Invio.
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 risorse p e r l o S t o r a g e d e f i n i t e nella 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 lista 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 -
d e n t e (2). P o i si i n d i c h i u n n o m e a p r o p r i a s c e l t a p e r il V o l u m e corrente
(il n a s t r o , n e 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 n e , 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 i n c o n s o l e
per q u e s t i vari 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.
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 l a n c i il p r o g r a m m a bconsole,
sudo bconsole
N e l l a c o n s o l e d i B a c u l a 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 r u n . V e r r à
m o s t r a t o un elenco dei J o b di b a c k u p che è possibile avviare, c o m e in
queste righe di o u t p u t d ' e s e m p i o :
A J o b n a m e m u s t b e specified.
T h e defined J o b r e s o u r c e s a r e :
1: C l i e n t i
2 : BackupCatalog
3: R e s t o r e F i l e s
4 : LocalBackup
S e l e c t 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 s u l l a 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 e S e t , P o o l , S t o r a g e e c o s ì v i a . Digitando
" 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 r e a l e 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 ò l a n -
c i a r e s t a t u s p e r v i s u a l i z z a r e 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
quelli che v e r r a n n o avviati nelle prossime 24 ore (Figura 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
Running Jobs:
No Jobs running.
Figura 9.17- L'output del comando interno status nella console di Bacula.
Ripristina del backup
Per ripristinare i d a t i d i u n b a c k u p si avvia la c o n s o l e d i B a c u l a c o n s u d o
b c o n s o i e e si lancia il c o m a n d o i n t e r n o r e s t o r e . V e r r à m o s t r a t o in c o n -
s o l e u n n u t r i t o n u m e r o d i o p z i o n i t r a c u i s c e g l i e r e . Tra q u e s t e , q u e l l a d i
m a g g i o r e u t i l i t à e d i p i ù i m m e d i a t o u t i l i z z o è p r o b a b i l m e n t e la n u m e r o 5 ,
Select t h e most recent backup f o r a client, che consente di ripristinare il
b a c k u p più recente di una d e t e r m i n a t a macchina client.
Se si s c e g l i e q u e s t a o p z i o n e , d o p o a v e r i n d i c a t o il c l i e n t d i c u 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 n o si s e l e z i o n a il F i l e S e t c u i si è i n t e r e s s a t i , q u i n d i si
specificano u n o o più J o b di backup.
F a t t o q u e s t o , si e n t r a n e l l a m o d a l i t à p e r la s e l e z i o n e d e i f i l e : in q u e s t a
m o d a l i t à si utilizza il c o m a n d o m a r k p e r i n d i c a r e a B a c u l a d i r i p r i s t i n a r e u n
d e t e r m i n a t o f i l e o d i r e c t o r y ( c o n m a r k * si s e l e z i o n a l ' i n t e r o 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 file. Per t e r m i n a r e
si d i g i t a d o n e . 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 v e r r à i n d i c a t o il V o l u m e d a i n s e r i r e p e r e f f e t t u a r e il ripristino del
backup e saranno fornite informazioni dettagliate sull'operazione.
Non rimane p o i c h e r i s p o n d e r e " y e s " alla d o m a n d a OK t o r u n ? , così d a
p r o c e d e r e n e l r i p r i s t i n o . R i s p o n d e n d o " m o d " , i n v e c e , sarà p o s s i b i l e m o -
d i f i c a r e a l c u n 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 c u i d o v r a n n o e s s e r e m e m o -
rizzati i f i l e r i p r i s t i n a t i .
ID. Costruire un Media
Center
• a u n e l e m e n t a r e S e r v e r a u d i o al più com-
G i u n t i a q u e s t o p u n t o la r e t e l o c a l e è 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 n c i p a 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 i s o r s e
e t u t t o è p r o n t o p e r m e t t e r e in p r a t i c a le c o n o s c e n z e a c q u 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 l e s t i r à u n s i s t e m a 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 n e l s a 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 u n n o r m a l e
PC d o m e s t i c o , c o n la r e l a t i v a i n f r a s t r u t t u r a d i r e t e , m e n t r e il s o f t w a r e n e -
cessario verrà f o r n i t o d i r e t t a m e n t e dalla d i s t r i b u z i o n e Linux.
Gli e s e m p i d i M e d i a C e n t e r forniti nelle p a g i n e c h e s e g u o n o saranno via
via p i ù c o m p l e s s i . Si i n i z i e r à 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 m u s i c a l i
e si a r r i v e r à p o i a c o s t r u i r e u n c o m p l e t o s i s t e m a m u l t i m e d i a l e , ricco d i f u n -
zionalità e duttile c o m e solo p u ò esserlo un dispositivo costruito, pezzo
d o p o p e z z o , s e c o n d o le e s i g e n z e d i c h i l o utilizza.
Server musicale
Si c o m i n c i a c o n u n s e m p l i c e s e r v e r m u s i c a l e : l ' a r c h i v i o m u s i c a l e sarà c o n -
t e n u t o in u n c a p i e n t e h a r d d i s k su d i u n s e r v e r c e n t r a l e e d o v r à e s s e r e
a c c e s s i b i l e d a t u t t e le m a c c h i n e c o n n e s s e in r e t e , sia c h e u t i l i z z i n o L i n u x
sia c h e a d o t t i n o W i n d o w s c o m e s i s t e m a o p e r a t i v o .
Per q u e s t o c o m p i t o v e r r à i n s t a l l a t o S a m b a s u l s e r v e r L i n u x : 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 e n t N F S p e r W i n d o w s , la p r e s e n z a d i u n 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 r e t e M i c r o s o f t r e n d e r à la f r u i z i o n e d e i c o n t e n u t i
m u s i c a 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 .
security = share
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 l e / 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 i m i l i alle s e g u e n t i :
[musica]
path = /usr/local/share/musica
comment = Musica condivisa
guest ok = yes
read only = no
Il v a l o r e d i p a t h v a c a m b i a t o c o n la d i r e c t o r y c h e c o n t i e n e i f i l e a u d i o s u l
p r o p r i o server musicale.
O l t r e al c o n t r o l l o d e l t r a f f i c o in e n t r a t a 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 u n u l t e r i o r e l i v e l l o d i p r o t e z i o n e g r a z i e al f i r e w a l l . Le p o r t e
d a a p r i r e p e r S a m b a s o n o le 1 3 7 , 1 3 8 U D P e le 1 3 9 , 4 4 5 TCP. E c c o d e l l e
r i g h e d i e s e m p i o p e r i p t a b i e s c h e a c c e t t a n o c o n n e s s i o n i al s e r v e r S a m b a
esclusivamente dalla rete locale 192.168.0.0/24:
s u d o i p t a b i e s -p u d p -s 1 9 2 . 1 6 8 . 0 . 0 / 2 4 - - d p o r t 137 -j A C C E P T
s u d o i p t a b i e s -p u d p -s 1 9 2 . 1 6 8 . 0 . 0 / 2 4 - - d p o r t 138 -j A C C E P T
s u d o i p t a b l e s -m s t a t e - - s t a t e N E W - m t c p -p t c p -s 192.168.0.0/24
- - d p o r t 1 3 9 -j A C C E P T
s u d o i p t a b l e s - m s t a t e - - s t a t e N E W - m t c p -p t c p -s 192.168.0.0/24
- - d p o r t 4 4 5 -j A C C E P T
P r o t e t t o a d o v e r e ¡1 s e r v e r , 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 s e 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 a s -
s u n t o d a l c l i e n t B: n e l p r i m o c a s o s a r à il s i s t e m a L i n u x n e l s a l o t t o d i c a s a 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 P C 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
alcun hard disk interno per funzionare.
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 , s u l l a s t e s s a m a c c h i -
n a A o c c o r r e i n s t a l l a r e , 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 direttamente
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 i m i l a r e ) , 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 dalla
directory / m n t / s a m b a , d o v r à a g g i u n g e r e nel file / e t c / f s t a b una riga c o m e
la s e g u e n t e :
# /dev/sda2
UUID=07523736-8e32-4378-bbff-3bcaf4d57890 none swap sw
0 0
/dev/scd0 /media/cdromO udf,iso9660 user noauto exec,
# server musicale
//192.168.0.2/musica /mnt/samba smbfs guest 0 0
12,0-1 Tut
Figura 10.1 - Sulla macchina client il file /etc/fstab sarà simile a questo.
N e l c a s o d i u n M e d i a C e n t e r " r i c e v e n t e " , i n v e c e , è s u f f i c i e n t e inserire la
riga d i / e t c / f s t a b a p p e n a riportata sulla m a c c h i n a B e q u i n d i f a r p u n t a r e u n
q u a l s i a s i p l a y e r a u d i o ai f i l e m u s i c a l i c o n t e n u t i nella d i r e c t o r y / m n t / s a m b a .
Installazione di MythTV
Sulla m a c c h i n a c h e d e v e e s s e r e a d i b i t a a M e d i a C e n t e r , q u i n d i , si lanci il
c o m a n d o seguente:
V e r r a n n o così s c a r i c a t i e i n s t a l l a 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 n e c e s s a r i o p e r la c o n f i g u r a z i o n e i n i z i a l e d i M y t h T V .
D u r a n t e 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 d e i p a c c h e t t i , i n o l t r e , si p u ò i n d i c a r e
al s i s t e m a il m o d e l l o d e l t e l e c o m a n d o a i n f r a r o s s i d a u s a r e , se c e n ' è u n o
d i s p o n i b i l e ( F i g u r a 10.2). È p o i p o s s i b i l e c o n f i g u r a r e a n c h e u n e v e n t u a l e
t r a s m e t t i t o r e IR.
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 ò o r a a c c e d e r e a l l ' a m b i e n t e g r a -
f i c o f o r n i t o d a M y t h b u n t u . Per f a r e q u e s t o si d e v e l a n c i a r e G D M , il l o g i n
m a n a g e r g r a f i c o , c o n il c o m a n d o s e g u e n t e :
U n ' i n s t a l l a z i o n e 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 F r o n -
t e n d o a v e r e e n t r a m b i i r u o 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 r e g i -
s t r a z i o n i d a l l a 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 t e r f a c c i a p e r v i s u a l i z z a r e i
c a n a l i t e l e v i s i v i , g u a r d a r e e i m p o s t a r e le r e g i s t r a z i o n i e così via.
ID. Costruire u n Media center
Related Projects
In q u e s t o s t a d i o i n i z i a l e d e l l ' i n s t a l l a z i o n e d i M y t h T V è p r e s e n t e n e l siste-
m a il s o l o F r o n t e n d . Se il M e d i a C e n t e r è u n 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 c h e d e v e e s s e r e c o l l e g a t o in r e t e a u n PC p r o v v i s t o d i T V T u n e r ,
l ' i n s t a l l a z i o n e p u ò d i r s i t e r m i n a t a . Se i n v e c e il M e d i a C e n t e r è p r o v v i s t o
d i s c h e d a T V e d e v e a v e r e il r u o l o d i s e r v e r m u l t i m e d i a l e p e r a l t r e m a c -
c h i n e , a l l o r a b i s o g n a a g g i u n g e r e t u t t o il n e c e s s a r i o p e r la f u n z i o n a l i t à d i
Backend.
Per f a r e q u e s t o i n n a n z i t u t t o si d e v e i n s t a l l a r e il d a t a b a s e r e l a z i o n a l e M y -
S Q L , n e c e s s a r i o 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 i n s t a l l a r e il d a t a b a s e , q u i n d i , si p u ò a p r i r e u n a 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 i c 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 n e l m e n u c h e a p p a r e si e n t r a n e l s o t t o m e n u
A c c e s s o r i e s e si s e l e z i o n a c o n u n clic d e l m o u s e la v o c e T e r m i n a l e .
N e l l a f i n e s t r a 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 s u d o apt-get
instali m y s q i - s e r v e r - 5 . o e si p r e m a I n v i o alla r i c h i e s t a d i inserimento
d e 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 r e s t i t u i t o
u n e r r o r e 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 .
Poi b i s o g n a a p r i r 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 : si e n t r a 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 a v e r 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 , n e l l a
f i n e s t r a c h e a p p a r e si e n t r a n e l l a s e z i o n e S y s t e m R o l e s ( F i g u r a 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 clic sul p u l s a n -
t e A p p l i c a in b a s s o . V e r r a n n o così i n s t a l l a 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
funzionalità di Backend di MythTV.
I Q ] S y s t e m Roles S y s t e m Roles
B a c k e n d Role
^ Applications & Plugins 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
30* Proprietary Drivers Nessun backend • Backend primario
O Backend secondario
^ Infrared Devices
F r o n t e n d Role
A machine containing a frontend role will connect to a master backend to obtain
System Services recorded content
Diskless S e r v e r
Advanced Mangement 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 i n s t a l l a t o , 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 r e g i s t r a r e p r o g r a m m i TV.
Per a g g i u n g e r e u l t e r i o r i m o d u l i b a s t a e n t r a r e n e l l a s e z i o n e 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 ) c h e si d e s i d e r a i n s t a l l a r e . F a c e n d o c l i c s u l l ' o p z i o -
n e 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 u n c o l p o s o l o 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 installare i p a c c h e t t i
a g g i u n t i v i richiesti.
ID. Costruire un M e d i a c e n t e r
S c e l 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 ò o r a c h i u d e r e la f i n e s t r a 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 p a s s a r 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 : n e 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 r a f i c o b i s o g n a d u n q u e e n t r a r e in Sy-
stem e selezionare la voce MythTV Backend Setup.
N e l l a s c h e r m a t a c h e 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 c e v i t o r e TV, sce-
g l i e r e il t i p o d i G u i d a T V p r e f e r i t a e d e f f e t t u a r e la s c a n s i o n e d e i c a n a 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 c h e , 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 i s u l t a r e 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 :
http://www.mythtv.org/wiki/index.php/Mythtv-setup
T e r m i n a t o q u e s t o p a s s a g g i o d e l l a c o n f i g u r a z i o n e d i M y t h T V , si p u ò a v -
v i a r e l ' i n t e r f a c c i a 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.
D a l l a s c h e r m a t a c h e a p p a r e ( F i g u r a 1 0 . 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 visualizzare registrazioni così c o m e a c c e d e r e alle funzionalità
f o r n i t e dai vari p l u g i n installati.
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 s u l l ' i n s t a l l a z i o n e d i M y t h T V , è il m o -
m e n t o d i f a r 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 r e m a c c h i -
n e c o n n e s s e in r e t e .
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 c u i è i n s t a l l a t o il B a c k e n d d i
M y t h T V ha c o m e i n d i r i z z o IP 1 9 2 . 1 6 8 . 1 . 4 , m e n t r e il c l i e n t su c u i è a t t i v o il
F r o n t e n d possiede l'indirizzo 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 u t i l i z z a r e d a l c l i e n t re-
m o t o è n e c e s s a r i o i n s t a l l a r 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
Mythbuntu.
Il Backend, nella configurazione di default, risponde all'indirizzo IP
1 2 7 . 0 . 0 . 1 , q u i n d i p u ò e s s e r e c o n t a t t a t o s o l o d a u n F r o n t e n d a t t i v o sulla
m a c c h i n a locale. Per m o d i f i c a r e l'indirizzo c u i risponde il B a c k e n d , sulla
m a c c h i n a in c u i q u e s t o è i n s t a l l a t o si d e v e l a n c i a r e il M y t h T V Backend
S e t u p e d entrare nella sezione 1. G e n e r a l .
Nella schermata c h e appare, quindi, bisogna modificare i valori delle o p -
zioni Locai 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 per e n t r a m b e l'indirizzo
IP d e l l a m a c c h i n a B a c k e n d s u l l a r e t e 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 t e s s a s c h e r m a t a si i n d i c a il P I N d i s i c u r e z z a p e r le c o n n e s s i o n i r e -
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 .
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.
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 s u l l a m a c c h i n a Backend
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 o c a l e . P e r 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 g a :
bind-address = 127.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 s u l l a L A N . S e -
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 g a d i v e n t a q u i n d i c o s ì :
bind-address = 192.168.1.4
I n f i n e si d e v e r i a v v i a r e il s e r v e r M y S Q L c o n il c o m a n d o :
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 s u l l a 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 s u l 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 l a n -
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 e n 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 r e t e e si c o l l e g h e r à a e s s o .
S e g u e n d o le i s t r u z i o n i n e 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 u n B a c -
k e n d d i M y t h T V c o n u n 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 è o r a p o s s i b i l e
g u a r d a r e la T V e d e f f e t t u a r e r e g i s t r a z i o n i s f r u t t a n d o la s c h e d a T V p r e s e n t e
sulla m a c c h i n a B a c k e n d .
Se si u t i l i z z a n o 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-
c h i v i v i d e o e a u d i o p r e s e n t i sul B a c k e n d n o n r i s u l t e r a n n o a c c e s s i b i l i d a l
F r o n t e n d . P e r r i m e d i a r e è n e c e s s a r i o c o n d i v i d e r e t r a m i t e N F S le d i r e c t o r y
c o n t e n e n t i g l i a r c h i v i , in m o d o t a l e c h e il c l i e n t p o s s a l e g g e r l e .
Sulla m a c c h i n a in c u i è p r e s e n t e il B a c k e n d , q u i n d i , v a i n s t a l l a t o il s e r v e r
N F S c o n il c o m a n d o s u d o a p t - g e t i n s t a l i n f s - k e r n e l - s e r v e r . P o i SÌ d e v e
c r e a r e u n a p p o s i t o f i l e / e t c / e x p o r t s c h e p e r m e t t a al c l i e n t d i 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 c o n g l i a r c h i v i m u l t i m e d i a l i . P e r c o m o d i t à si e s p o r t a l ' i n -
t e r a c a r t e l l a / v a r / l i b / m y t h t v , c h e è la d i r e c t o r y d i d e f a u l t n e l l a q u a l e s o n o
r a c c o l t e le v a r i e 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 l e m u s i c a l i , le i m m a g i n i e i
v i d e o gestiti d a i diversi p l u g i n . Ecco un file / 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 i n d i r i z z o IP 1 9 2 . 1 6 8 . 1 . 5
l ' a c c e s s o in l e t t u r a e s c r i t t u r a a / v a r / l i b / m y t h t v . D o p o a v e r m o d i f i c a t o il f i l e
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 s e r v e r N F S c o n s u d o e x p o r t f s -a.
Sulla m a c c h i n a c l i e n t , q u i n d i , n o n resta c h e 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 e s s e r e il m e d e s i m o s u l F r o n t e n d re-
m o t o e sul B a c k e n d :
s u d o m o u n t -t n f s 1 9 2 . 1 6 8 . 1 . 4 : / v a r / l i b / m y t h t v /var/lib/mythtv
I n f i n e , s u l l o s t e s s o c l i e n t , u n a v o l t a v e r i f i c a t o c h e le c a r t e 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 i a n o o r a e f f e t t i v a m e n t e a c c e s s i b i l i d a i rispettivi p l u g i n , p u ò
e s s e r e c r e a t a 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
directory NFS:
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 i s t r u z i o n 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
tra p i ù m a c c h i n e c o n n e s s e in rete utilizzando i p r o t o c o l l o N F S e S M B /
C I F S . In e n t r a m b i i casi, a t a l e s c o p o , sulla 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 t a t e i n s t a l l a t e 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 i n s t a l l e r a n n o altri s o f t w a r e d i t i p o
s e r v e r d ' u s o c o m u n e . Si c o m i n c e r à c o n il m a i l s e r v e r P o s t f i x , p o i si p a s s e r à
al s e r v e r FTP v s f t p d e q u i n d i si i n s t a l l e r à A p a c h e c o m e w e b s e r v e r e B I N D
c o m e server DNS.
Tutte queste applicazioni sono duttili, potenti ma anche notevolmente
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 l e s o l e i n f o r -
mazioni d i base p e r una corretta installazione e p e r una configurazione
minimale.
E s e g u e n d o il c o m a n d o s u d o a p t - g e t i n s t a l i postfix v e r r à s c a r i c a t o il p a c -
c h e t t o p r i n c i p a l e d e l m a i l s e r v e r e sarà a v v i a t a u n a 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 s e m p l i f i c a t a . Q u e s t a c o n s e n t e d i s t a b i l i r e in m o d o f a c i l e e v e l o c e
d e l l e i m p o s t a z i o n i a d a t t e p e r a l c u n e t i p i c h e m o d a l i t à d i utilizzo d i u n M T A .
N e l l a s c h e r m a t a c h e a p p a r e d o p o a v e r l a n c i a t o il c o m a n d o p e r l ' i n s t a l l a -
z i o n e d i P o s t f i x , 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 u n a 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 l o r o s i g n i f i c a t o . Pre-
m e n d o O K sarà p o i p o s s i b i l e s c e g l i e r e u n a 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
u n e l e n c o ( F i g u r a 11.1).
Se si v u o l e i n s t a l l a r e P o s t f i x p e r il s o l o s m i s t a m e n t o d e l l a p o s t a sulla m a c -
china locale (per e s e m p i o p e r ricevere i m e s s a g g i inviati dal 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 i s c h i R A I D " ) si s c e l g a
d a l l ' e l e n c o la v o c e S o l o l o c a l e .
Per c o n f i g u r a r e u n M T A c o n n e s s o a I n t e r n e t si i n d i c h i i n v e c e 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 u t i l i z z a r e u n m a i l s e r v e r 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 r o v i d e r , p e r l ' i n v i o d e l l e e m a i l si s e l e z i o n i la v o c e S i t o
i n t e r n e t con smarthost.
gurazioiie del pacche
Postfix Configuration
Profilo generale di configurazione:
<0k> <Annulla>
Figura 11.1 -Le scelte possibili per una configurazione semplificata di postfix.
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 n s e r i s c e 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 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-
r e 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 s e r v e r , m a in e s s a s a r à 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 r e -
N e l c a s o in c u 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 i s u l t a s s e 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 file d i c o n f i g u r a z i o n e d e l mail 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
parametro = valore
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 l e e m a i l in u s c i t a il r e l a y h o s t ( s m a r t
host) mail.provider.it:
relayhost = [mail.provider.it]
L ' a v e r 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
di n o n effettuare alcun M X lookup.
myhostname I n d i c a il n o m e d e l s e r v e r
Le r e t i c u i è c o n s e n t i t o u t i l i z z a r e il s e r v e r c o m e relay
mynetworks
per l'inoltro della posta
myorigin 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 l e e m a i l l o c a l i
Il m a i l s e r v e r c u i d e v o n o e s s e r e i n v i a t i i m e s s a g g i di
relayhost
p o s t a n o n locali
P e r m o d i f i c a r e u n p a r a m e t r o n e 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 z z a r e 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. P e r e s e m p i o , p e r i m p o s t a r e c o m e r e -
lay h o s t m a i l . p r o v i d e r . i t si p u ò l a n c i a r e in c o n s o l e il s e g u e n t e comando:
m e t r i d i P o s t f i x c h e h a n n o v a l o r i d i f f e r e n t i d a q u e l l i d i d e f a u l t ( F i g u r a 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 t l s s e s s i o n c a c h e database = btree:${data_directory}/smtp_scache
smtpd banner = $myhostname ESMTP $mail name (Ubuntu)
smtpdjtlscertfile = /etc/ssl/certs/ssl-cert-snakeoil.pem
s m t p d t l s k e y file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd tls session cache database = btree:${datadirectory}/smtpd scache
s m t p d u s e t l s = yes
ale@pitagora:-$
Figura 11.2-11 comando postconf-n mostra tutti i parametri con dei valori non di default.
L i n u x U t i u n t u per server e reti
Per i n s t a l l a r e 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 a n c i a r e il
comando seguente:
U n a 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 t e , 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 n e l s i s t e m a , c o n la r e l a t i v a 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 v s f t p d .
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 s e r v i z i o d i F T P a n o n i m o la c o n f i g u -
razione d e l server è t e r m i n a t a . Basterà q u i n d i inserire i file 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 l e m a c c h i -
n e c u 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.
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.
ale@pitagora:|
P e r 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 n e l f i l e / e t c / v s f -
I n d i c a 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 a c c e s s i a n o n i m i .
anon_root
P e r 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
local_enable P e r m e t t e l ' a c c e s s o FTP a g l i u t e n t i l o c a l i . D e f a u l t NO
A v v i a al b o o t u n 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-
listen ver 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 Y E S
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
xferlog_enable
d o w n l o a d . D e f a u l t su U b u n t u Y E S
E c c o , 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 s c r i t t u r a
agli utenti anonimi e indicare c o m e directory di partenza / m n t / f t p :
write_enable=YES
anon_up1oad_enab1e=YES
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 a g l i u t e n t i n o r m a l i p u ò e s s e r e u t i l e
i n d i c a r e q u a l i f r a q u e s t i p o s s o n o c o l l e g a r s i al s e r v e r , e s c l u d e n d o c o s ì t u t t i
gli altri u t e n t i d a l servizio. 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
userlist_enable=YES
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 n e l l a T a b e l l a 1 1 . 2 , m e n t r e le
d u e righe successive r i c h i e d o n o qualche informazione aggiuntiva.
La r i g a u s e r i i s t _ e n a b i e = Y E S fa c a r i c a r e al s e r v e r la lista d i u t e n t i c o n t e n u t a
n e 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 i g a u s e r i i s t _ d e n y = N o , 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 e s s e r e
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 c u i è c o n c e s s o l ' a c c e s s o al s e r v e 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 c u i è
vietato l'accesso.
I n s e r i t e q u e s t e t r e righe in / e t c / v s f t p d . c o n f , n o n rimane p o i c h e s c r i v e r e i n
/ 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 c o l l e g a r s i al s e r v e r 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 s e r v e r d o p o a v e r a p p o r t a t o delle
m o d i f i c h e al f i l e 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 l a n c i a r e 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 i m p o s t a z i o n i i n s e r i t e n e i file / e t c / h o s t s . a l l o w e /
e t c / h o s t s . d e n y , d u n q u e p e r g e s t i r e g l i accessi è p o s s i b i l e i n t e r v e n i r e su q u e -
sti d u e file. Per e s e m p i o , p e r c o n s e n t i r e a l l ' i n d i r i z z o IP 1 9 2 . 1 6 8 . 1 . 5 il c o l l e g a -
m e n t o al s e r v e r FTP si p u ò inserire la riga s e g u e n t e in / e t c / h o s t s . a l l o w :
vsftpd: 192.168.1.5
Installazione di Apache
Per i n s t a l l a r e A p a c h e , i m o d u l i p r i n c i p a l i e a l c u n i p r o g r a m m i accessori
b a s t a l a n c i a r e il c o m a n d o s u d o a p t - g e t i n s t a l i apache2.
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 n d i r i z z o h t t p : / / 1 2 7 . 0 . 0 . 1 c o n
un qualsiasi w e b browser d o v r e b b e apparire una p a g i n a simile a quella
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 11.4). B e n e ! Il w e b s e r v e r è a t t i v o
e perfettamente funzionante.
- C , Í • http u m 0 ri l i
I t works!
File d i c o n f i g u r a z i o n e in c u i si i m p o s t a la p o r t a di
ports.conf
ascolto del server w e b
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 -
sites-available/
f i c h e d e i s i n g o l i h o s t v i r t u a 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 u a l i a t t i v i sul
sites-enabled/ server. Q u e s t i f a n n o r i f e r i m e n t o agli h o s t virtuali p r e -
senti nella directory sites-available
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 c a r i c a r e e c o n f i g u r a r e i
mods-available/
moduli disponibili
I f i l e in q u e s t a d i r e c t o r y v e n g o n o l e t t i d a a p a c h e 2 . c o n f .
conf.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 u n f i l e
a p p o s i t o nella d i r e c t o r y sites-available. C i a s c u n o di q u e s t i file, quindi,
rappresenta un diverso host virtuale.
U n o s t e s s o s e r v e r w e b p u ò g e s t i r e p i ù siti 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 -
z o d e g l i h o s t v i r t u a l i : la s c e l t a 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 u n a s p e c i f i c a
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 , u n a s i n g o l a m a c c h i n a p u ò f a 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 siti 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 u n u n i c o h o s t v i r t u a l e , la c u i c o n -
figurazione è c o n t e n u t a nel file / 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 i n i z i a l i d i q u e s t o f i l e s o n o v i s i b i l i in F i g u r a 1 1 . 5 .
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>
Figura 11.5 - La sezione iniziale del file che definisce l'host virtuale di default.
La p r i m a r i g a è 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 permette
d i i n d i c a r e l ' i n d i r i z z o IP s u c u i il w e b s e r v e r s a r à i n 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 u a l i . In q u e s t a r i g a , 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 s u q u a l s i a s i i n d i r i z z o (*).
La s e c o n d a r i g a 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 -
gurazione di un host virtuale. Questa direttiva p u ò applicarsi a uno speci-
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 f e r i r s i a t u t t i g l i i n d i r i z z 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
v a p o i c h i u s a c o n la d i r e t t i v a </virtuaiHost>.
La r i g a 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 i g a DocumentRoot
/ v a r / w w w / , 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 c u 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 / s u l l a m a c c h i n a s e r v e r .
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 c u 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 .
Infine, le r i g h e racchiuse tra 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 -
tengono o p z i o n i c h e si a p p l i c a n o alle sole d i r e c t o r y indicate, sottodi-
rectory incluse.
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 iniziale d e l l e o p z i o n i d i confi-
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 z z a r e 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 .
DocumentRoot /usr/local/share/web/
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>
Figura 1 1.6 - Cambiando poche righe nel file default è possibile creare una configura-
zione per il proprio sito.
Q u i n d i , b i s o g n a c a m b i a r e la r i g a « D i r e c t o r y / v a r / w w w / > i n s e r e n d o al p o -
s t o d i / v a r / w w w / la d i r e c t o r y i n d i c a t a d a D o c u m e n t R o o t . 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 / v e r r à a t t r i b u i t o alla n u o v a
directory.
I n f i n e , d a t o c h e s o n o s t a t e 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 f a r ri-
l e g g e r e al s e r v e r 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 s u d o /etc/init.
d/apache2 reload.
Aggiungere un sito
La c o n f i g u r a z i o n e p r e d e 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 t e r i o r i siti al w e b s e r v e r in m o d o d a v v e r o s e m p l i c e . A n c h e in q u e s t o c a s o ,
il p u n t o d i p a r t e n z a sarà il f i l e d e f a u l t in / e t c / a p a c h e 2 / s i t e s - a v a i l a b l e .
Si c r e i u n n u o v o f i l e , c h i a m a t o p e r e s e m p i o s i t o , e si c o p i al s u o i n t e r n o il
c o n t e n u t o d e l file default:
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 l e i n t e r v e n e n d o s u l l e p r i n c i p a l i d i r e t -
tive di configurazione.
I n n a n z i t u t t o , va e l i m i n a t a la r i g a i n i z i a l e c o n 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 :
q u e s t a , i n f a t t i , v i e n e l e t t a d a l f i l e d e f a u l t e n o n b i s o g n a inserirla 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 < v i r t u a i H o s t > si d e v e p o i a g g i u n g e r e u n a
riga s e r v e r N a m e c o n t e n e n t e il n o m e d i h o s t c o m p l e t o p e r il s i t o . U n a r i g a
d i e s e m p i o è la s e g u e n t e :
ServerName sito.internet.it
La r i g a s e r v e r N a m e c o n s e n t e d i i n d i v i d u a r e il v i r t u a i H o s t c h e d e v e r i s p o n -
d e r e a u n a r i c h i e s t a e f f e t t u a t a al s e r v e r w e b d a u n c l i e n t . Se n o n v i e n e
t r o v a t o a l c u n h o s t v i r t u a l e c h e c o r r i s p o n d a al n o m e d i h o s t r i c h i e s t o , v i e n e
i n t e r p e l l a t o l ' h o s t v i r t u a l e d i d e f a u l t , n e l l a c u i c o n f i g u r a z i o n e la d i r e t t i v a
ServerName è assente.
N e l b l o c c o < v i r t u a i H o s t > va p o i m o d i f i c a t a la r i g a 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 in m o d o t a l e c h e q u e s t a i n d i c h i la d i r e c t o r y r a d i c e p e r il n u o v o
s i t o . P o i si c a m b i a la r i g a « D i r e c t o r y / v a r / w w w / > i n s e r e n d o a n c h e q u i la
directory radice desiderata.
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 l a 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 v a r i siti.
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 s a l v a
il f i l e s i t o e l o si a t t i v a n e 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 comando
seguente:
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 i n t a s s i , p e r d i s a b i l i t a r e u n s i t o è
a 2 d i s s i t e . 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 nel file sito, q u i n d i , va
lanciato sudo a2dissite sito.
d/apache2 reload.
Figura 11.7- Dopo aver attivato un sito si fa rileggere la configurazione al server web.
C r e a t e le i n t e r f a c c e v i r t u a 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 i s t r u z i o n 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 h o s t v i r t u a l i n a m e - b a s e d . In
q u e s t o c a s o , p e r ò , n o n si d e v e i n s e r i r e a l c u n a d i r e t t i v a N a m e v i r t u a i H o s t
e n e l l e righe < v i r t u a i H o s t > va i n s e r i t o l ' i n d i r i z z o IP d e l l ' i n t e r f a c c i a d i r e t e
virtuale abbinata all'host virtuale corrente.
Ecco q u i n d i un semplice 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>
N e i p a r a g r a f i 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 i s t r u z i o n i p e r i n s t a l l a r e
il s e r v e r D N S B I N D e u t i l i z z a r n e a l c u n e f u n z i o n a l i t à d i b a s e .
Per i n s t a l l a r e B I N D va l a n c i a t o in c o n s o l e il c o m a n d o s u d o a p t - g e t in-
stali b i n d 9 . A l t e r m i n e d e l l ' i n s t a l l a z i o n e , q u e l l o c h e si o t t e r r à sarà u n
D N S server di caching attivo nel sistema e fornito d i una configurazione
quasi completa.
Prima d i c o n t i n u a r e , è necessaria q u a l c h e precisazione iniziale sui t i p i d i
server D N S c h e è possibile 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 s e r v e r i n s t a l l a t o c o n t a t t a u n a l t r o D N S
s e r v e r p e r la r i s o l u z i o n e d e i n o m i e m e m o r i z z a le r i s p o s t e n e l l a c a -
c h e , c o s ì d a o f f r i r l e ai c l i e n t p e r le s u c c e s s i v e r i c h i e s t e ;
• 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 s e r v e r i n s t a l l a t o r i s o l v e d i r e t -
tamente i nomi ricercando le i n f o r m a z i o n i su d e i f i l e d i c o n f i g u r a z i o -
ne locali. È c h i a m a t o a n c h e server m a s t e r ;
• S e r v e r a u t o r i t a t i v o s e c o n d a r i o . Il DNS server ricava le informa-
zioni richieste da un server autoritativo primario. È c h i a m a t o anche
server slave.
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 d i B I N D , q u i n d i , il s e r v e r D N S n o n fa a l t r o
che ricevere d a t i d a u n a f o n t e e s t e r n a 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 i e n z a d i u n a r e t e l o c a l e , a u m e n t a n d o la v e l o c i t à d i r i s o l u z i o n e d e i
n o m i e r i d u c e n d o il t r a f f i c o D N S n e l l a 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 u n s e r v e r D N S d i c a c h i n g , q u i n -
di, è sufficiente inserire nel file / e t c / b i n d / n a m e d . c o n f . o p t i o n s gli indirizzi
IP d e i s e r v e r D N S d a 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 r o v i d e r .
D o p o a v e r a p e r t o il f i l e c o n u n e d i t o r d a r o o t , si c e r c h 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 c a r a t t e r i / / iniziali d i c o m m e n t o :
// f o r w a r d e r s {
/ / 0 . 0 . 0 . 0 ;
/ / } I
Q u i n d i , si i n s e r i s c a n o al p o s t o d i o . o . o . o , - g l i i n d i r i z z i IP d e s i d e r a t i . E c c o
u n e s e m p i o d i c i ò c h e si d e v e o t t e n e r e :
forwarders {
195.110.128.1;
212.48.4.11;
}:
F a t t o q u e s t o , si riavvii il s e r v e r D N S c o n il c o m a n d o s u d o /etc/init.d/
bind9 restart.
N o n r i m a n e p o i c h e m o d i f i c a r e il f i l e / e t c / r e s o l v . c o n f d e l l a m a c c h i n a ser-
v e r in m o d o t a l e c h e su q u e s t a v e n g a c o n t a t t a t o il s e r v e r D N S l o c a l e p e r
r i s o l v e r e i n o m i . La r i g a n a m e s e r v e r d e v e d i v e n t a r e così:
nameserver 127.0.0.1
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 n e , il p r i m o n a m e s e r v e r i n d i c a t o n e 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 i n c u i è
installato BIND.
La cache d i B I N D n o n v i e n e m e m o r i z z a t a su d i s c o m a è m a n t e n u t a in
R A M . In caso d i eccessiva o c c u p a z i o n e d i m e m o r i a sul server è p o s s i b i l e
limitare le d i m e n s i o n i della cache i n s e r e n d o in n a m e d . c o n f . o p t i o n s l ' o p -
z i o n e max-cache-size. Per cancellare le i n f o r m a z i o n i c o n t e n u t e nella
c a c h e , invece, si lancia il c o m a n d o s u d o rade - s 127.0.0.1 flush.
u t i l e in u n a 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
server D N S .
E c c o q u i n d i le istruzioni p e r creare u n server 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 à s a r à 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 o c a -
le, d e m a n d a n d o a u n s e r v e r 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 e s t e r n i
v e r s o la L A N .
Per a t t i v a r e u n s e r v e r p r i m a r i o è n e c e s s a r i o d e f i n i r e n e l s e r v e r u n a z o n a
D N S locale. Una zona n o n è altro che una parte d e l l o spazio d e i nomi
D N S : 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 , d u n q u e , è c r e a r e u n a z o n a c o r r i -
s p o n d e n t e agli indirizzi della p r o p r i a L A N .
N e g l i e s e m p i c h e s e g u o n o v i e n e u t i l i z z a t o il n o m e d i d o m i n i o u f f i c i o . l a n .
Q u a n d o q u e s t o a p p a r e n e 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 i n s e r i r e al
s u o p o s t o il n o m e d i d o m i n i o d e l l a p r o p r i a r e t e . Le m a c c h i n e c h e c o m -
p o n g o n o la r e t e s o n o q u i n d i m a r c o ( 1 9 2 . 1 6 8 . 1 . 1 0 ) , c a r i o ( 1 9 2 . 1 6 8 . 1 . 2 0 ) ,
g i a n n i ( 1 9 2 . 1 6 8 . 1 . 3 0 ) e ns ( 1 9 2 . 1 6 8 . 1 . 4 0 ) . Su q u e s t ' u l t i m a è i n s t a l l a t o il
server D N S .
Si a p r a d u n q u e il f i l e / 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
seguenti:
z o n e "ufficio, lan" {
type master;
file " / e t c / b i n d / d b . ufficio. lan" ;
};
F a t t o q u e s t o , va c o n f i g u r a t a p e r la r e t e l o c a l e u n a z o n a i n v e r s a : q u e s t a
c o n s e n t e d i r i s o l v e r e u n i n d i r i z z o IP n e l r e l a t i v o n o m e d i h o s t . S e m p r e n e l
f i l e n a m e d . c o n f . l o c a l si i n s e r i s c a n o q u e s t e r i g h e :
zone "1.168.192.in-addr.arpa" {
type master;
file " / e t c / b i n d / d b . 1 9 2 " ;
};
L ' i n d i c a z i o n e 1 . 1 6 8 . 1 9 2 n e l l a p r i m a riga n o n è a l t r o c h e la s c r i t t u r a i n v e r s a
dei p r i m i tre n u m e r i che c o m p o n g o n o l'indirizzo della L A N . Nella terza
r i g a , i n v e c e , 1 9 2 è il p r i m o n u m e r o d e l l ' i n d i r i z z o .
A q u e s t o p u n t o , d o p o a v e r s a l v a t o il f i l e 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 r e a r e d e i r e c o r d , c i o è le v o c i d e l d a t a b a s e d e l D N S , sia p e r la
z o n a d i r e t t a sia p e r q u e l l a i n v e r s a .
Per la z o n a d i r e t t a si p u ò u s a r e c o m e m o d e l l o il f i l e / e t c / b i n d / d b . l o c a i , il
c u i c o n t e n u t o è v i s i b i l e in F i g u r a 1 1 . 9 .
D
$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
Figura 11.9 - Si usa /etc/bind/db. locai come modello per creare il file della zona.
Si c r e 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 :
s u d o c p / e t c / b i n d / d b . l o c a i / e t c / b i n d / d b .ufficio. l a n
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 :
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 i n s e r i r e 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 . , i n -
v e c e , si i n d i c a l ' i n d i r i z z o e m a i l d e l l ' a m m i n i s t r a t o r e sul s e r v e r 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 n e l f i l e d b . l o c a i . P e r e s e m p i o , s e si u s a 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 g a d i v e n t a c o s ì :
Q u e s t a p r i m a r i g a m o d i f i c a t a è l ' i n i z i o d e l r e c o r d S O A p e r la z o n a c h e si
s t a 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 h a 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 n e 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
chiusura.
La riga s u c c e s s i v a n e l f i l e c o n t i e n e il v a l o r e d e l s e r i a l . 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 nel file 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 .
U n a 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 s e r i a l e la d a t a in
c u 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 r e f i n a l i per
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 g a d i
esempio:
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 l a s c i a r e 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 g a s u c c e s s i v a :
@ IN NS localhost.
Se il s e r v e r D N S n e l l a 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 i g a d e v e d i v e n -
t a r e così:
@ IN NS n s . ufficio. l a n .
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 1 1 . 4 , q u i n d i ,
viene presentato un elenco dei tipi di record D N S più importanti.
NS 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
••HI 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
S t a p e r P o i n T e R 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
rizzo e un n o m e
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-
MX
r e i n v i a t e le e m a i l
CNAME Fornisce a un host un n o m e supplementare
OEE Life *
A q u e s t o p u n t o si a g g i u n g o n o n e 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 n d i r i z z 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 o c a l e . Si i n s e r i s c e 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 s u 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 n e 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 :
marco IN A 192.168.1.10
cario IN A 192.168.1.20
gianni IN A 192.168.1.30
F a t t o q u e s t o , s o n o s t a 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 risultante è visibile n e l l ' i m m a g i n e che s e g u e (Figura 11.10).
• $TTL 604800
IN SOA n s . u f f i c i o . I a n . admin.ufficio.lan. (
2008092800 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
g IN NS n s . u f f i c i o . I a n .
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
P o i si p a s s a 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 n v e r s a . A n c h e in q u e s t o c a s o
si u t i l i z z a u n f i l e c o m e m o d e l l o , d b . 1 2 7 :
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 s a r à 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 i g u r a 1 1 . 1 1 ) . 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 -
nata e n o n resta c h e riavviare B I N D c o n sudo /etc/init ,d/bind9 restart.
I$TTL 604800
IN SOA ns.uff icio.lan. admin.ufficio.lan. (
2008092800 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
Figura 11.11 - Il file /etc/bind/db. 192 con la configurazione della zona inversa.
12. Ottimizzare il sistema
kernel e le applicazioni.
A r r i v a t i a q u e s t o p u n t o , q u e l l o c h e si è o t t e n u t o è u n a 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 n e c e s s a r i o p e r e r o g a r e servizi
nella rete o p e r d i v e n t a r e u n 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 c u i si d i s p o n e n o n è s f r u t t a t o al m e g l i o d a l
s i s t e m a o p e r a t i v o o d a i p r o g r a m m i c h e si u t i l i z z a n o 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 i m i z z a r e il si-
s t e m a c o m p i l a n d o il k e r n e l e l e a p p l i c a z i o n i , in m o d o t a l e d a o t t e n e r e la
m i g l i o r e aderenza possibile tra h a r d w a r e p o s s e d u t o e software utilizzato.
Per p o t e r c o m p i l a r e il k e r n e l si i n s t a l l i n o i n n a n z i t u t t o a l c u n i p a c c h e t t i c o n
il c o m a n d o s e g u e n t e :
sudo a p t - g e t i n s t a l i b u i l d - e s s e n t i a l f a k e r o o t k e r n e l - p a c k a g e bin86
libncurses5-dev
Q u i n d i , se si d e s i d e r a a d o t t a r e il k e r n e l u f f i c i a l e , si scarichi l ' u l t i m a v e r s i o -
n e s t a b i l e d e l k e r n e l d a 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 d e l l a stesura d i q u e s t o l i b r o l ' u l t i m a release d i s p o n i b i l e è la
2 . 6 . 2 6 . 5 e p e r e f f e t t u a r e il d o w n l o a d d e l f i l e c o r r i s p o n d e n t e b a s t a l a n c i a r e
in c o n s o l e 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
Protocol Location
HTTP ;http://www. k e r n e l . o r g / p u b /
FTP ftR.;//ftp A .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
Per poter scrivere nella directory /usr/src è necessario che l'utente attivo
sia presente nel g r u p p o src. Per inserire nel g r u p p o l'utente ale, per
esempio, si esegue il c o m a n d o sudo adduser ale src.
N e l c a s o si p r e f e r i s c a i n v e c e utilizzare il k e r n e l f o r n i t o d a U b u n t u , si d e v e
installare il p a c c h e t t o l i n u x - s o u r c e c o n :
P o i 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 s e -
guente:
U n a 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 à n e l l a 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 . P e r i n s t a l l a r l o , q u i n d i , n o n r e s t e r à c h e
u s a r e il c o m a n d o s u d o 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 .
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 l e 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 kernel.
E p o s s i b i l e , p e r ò , u t i l i z z a r e 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
kernel Ubuntu di default.
P e r 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 kernel Ubuntu
n e 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 . P e r
e s e m p i o , s e 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
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 lanciare sarà:
s u d o c p /boot/config-2 . 6 . 2 4 - 1 9 - s e r v e r / u s r / s r c / l i n u x - 2 . 6 . 2 6 . 5 / . config
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 utile c o m p i l a r e comu-
ni p r o g r a m m i o librerie. A n c h e in q u e s t o c a s o , c i ò c h e si r i c e r c a sono
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 miglioramenti
s b a l o r d i t i v i m a , s o p r a t t u t t o n e l c a s o d i i n t e r v e n 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 nella 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
risultare v a n t a g g i o s i .
U b u n t u f o r n i s c e u n 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 i m i z z a t a d e i s o r g e n t i , c h i a m a t o a p t - b u i l d . P e r i n s t a l l a r l o si d e v e l a n c i a -
re s u d o a p t - g e t i n s t a l i apt-build.
D u r a n t e 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 v i e n e c h i e s t o d i s t a b i l i r e il l i v e l l o d i
o t t i m i z z a z i o n e p e r i p a c c h e t t i : si c o n s i g l i a d i lasciare il livello 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 t a l e c h e v e n -
ga attivato un repository locale c o n i pacchetti compilati tramite apt-build.
I n f i n e , si i n d i c a l ' a r c h i t e t t u r a d e l p r o p r i o P C t r a q u e l l e p r e s e n t i in u n e l e n -
c o ( F i g u r a 12.4) e si r i t o r n a al p r o m p t d e 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 i n c e r a r s i c h e n e l f i l e / e t c / a p t / s o u r c e s . l i s t le
r i g h e r e l a t i v e 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 a n o c o m m e n t a t e . T u t t e le
r i g h e d e b - s r c c o n ¡1 c a r a t t e r e # i n i z i a l e , q u i n d i , v a n n o decommentate.
U n a riga c o m e :
d e v e d i v e n t a r e così:
sudo a p t - b u i l d i n s t a l i apache2