LINUX DEBIAN ETCH I servizi di rete
LINUX DEBIAN ETCH I servizi di rete
LINUX DEBIAN ETCH I servizi di rete
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Dott.Ing.Ivan Ferrazzi<br />
<strong>LINUX</strong> <strong>DEBIAN</strong> <strong>ETCH</strong><br />
I <strong>servizi</strong> <strong>di</strong> <strong>rete</strong><br />
1/17
Dott.Ing.Ivan Ferrazzi<br />
Copyright ©2008 Dott.Ing. Ivan Ferrazzi<br />
Permission is granted to copy, <strong>di</strong>stribute and/or mo<strong>di</strong>fy this<br />
document under the terms of the GNU Free Documentation<br />
License, Version 1.2 or any later version published by the<br />
Free Software Foundation; with no Invariant Sections, no<br />
Front-Cover Texts, and no Back-Cover Texts.<br />
2/17
Dott.Ing.Ivan Ferrazzi<br />
Introduzione<br />
IL LOGSYSTEM DI <strong>LINUX</strong><br />
Il sistema operativo Linux, come tutti i sistemi operativi, è molto<br />
complesso e <strong>di</strong>fficile da gestire. Ogni processo può generare dei<br />
messaggi informativi, <strong>di</strong> errore o <strong>di</strong> controllo, che permettono l'analisi<br />
dello stato <strong>di</strong> funzionamento dei singoli processi. Cercare <strong>di</strong> raccogliere<br />
manualmente i singoli messaggi inviati da <strong>di</strong>versi processi <strong>di</strong>venterebbe<br />
un'impresa molto ardua ai limiti dell'impossibile. Per questo motivo Linux<br />
utilizza un “logsystem”. Un sistema che permette <strong>di</strong> “<strong>di</strong>rottare” tutti i<br />
segnali generati dai vari processi e classificati per priorità all'interno <strong>di</strong><br />
file <strong>di</strong>versi. Tutti questi file vengono, <strong>di</strong> norma, generati e aggiornati<br />
all'interno della cartella /var/log. Questo permette ad un<br />
amministratore <strong>di</strong> <strong>rete</strong> la verifica dell'intero sistema concentrandosi<br />
solamente sul contenuto <strong>di</strong> una cartella.<br />
Il processo che si occupa <strong>di</strong> raccogliere i vari messaggi e <strong>di</strong> or<strong>di</strong>narli per<br />
priorità si chiama syslogd e viene configurato con il file<br />
/etc/syslog.conf.<br />
Il file <strong>di</strong> configurazione /etc/syslog.conf<br />
Questo file <strong>di</strong> configurazione può contenere delle righe che iniziano con il<br />
# che identificano righe <strong>di</strong> commento e non vengono prese in<br />
3/17
Dott.Ing.Ivan Ferrazzi<br />
considerazione durante l'elaborazione del file <strong>di</strong> configurazione. Tutte le<br />
altre righe hanno il seguente formato<br />
processo <strong>di</strong> provenienza.priorità azione<br />
I processi <strong>di</strong> provenienza e le priorità<br />
All'interno <strong>di</strong> un'unica riga è possibile definire azioni per più processi <strong>di</strong><br />
provenienza o priorità. In caso <strong>di</strong> più processi <strong>di</strong> priorità questi verrebbero<br />
scritti in sequenza separati da una virgola (,), mentre più priorità<br />
verrebbero scritte sempre in sequenza, ma seperate da un punto e<br />
virgola (;). Sia per i processi che per le priorità e possibile utilizzare anche<br />
l'asterisco (*) che identifica rispettivamente tutti i processi, oppure tutte<br />
le priorità.<br />
Qui <strong>di</strong> seguito verranno elencati tutti i processi <strong>di</strong> provenienza<br />
riconosciuti da syslogd:<br />
kern Messaggi <strong>di</strong> sistema <strong>di</strong>rettamente dal kernel<br />
auth Messaggi dal sistema <strong>di</strong> sicurezza (login,...)<br />
authpriv Messaggi riservati del sistema interno <strong>di</strong> sicurezza<br />
mail Messaggi del sistema delle mail<br />
news Messaggi del sistema delle news<br />
uucp Messaggi del sistem uucp<br />
lpr Messaggi del sistema <strong>di</strong> stampa<br />
cron Messaggi del sistema cron per le operazioni pianificate<br />
syslog Messaggi dello stesso syslog<br />
daemon Messaggi degli altri processi in esecuzione<br />
user Messaggi da normali programmi applicativi<br />
local0-local7 Liberamente utilizzabili<br />
Priorità in or<strong>di</strong>ne decrescente<br />
emerg L'ultimo messaggio prima <strong>di</strong> un crash <strong>di</strong> sistema<br />
alert Messaggio allarmante che necessita imme<strong>di</strong>ato controllo<br />
crit Messaggio relativa a situazione critica andata a buon fine<br />
err Messaggio <strong>di</strong> errore <strong>di</strong> ogni tipo<br />
warn Messaggio <strong>di</strong> allerta <strong>di</strong> ogni tipo<br />
notice Messaggi <strong>di</strong> segnalazione <strong>di</strong> situazioni anormali<br />
info Messaggi <strong>di</strong> protocollo <strong>di</strong> normale amministrazione<br />
debug Messaggi <strong>di</strong> debug in caso <strong>di</strong> ricerca <strong>di</strong> errori in programmi<br />
none Non necessariamente un messaggio<br />
syslog utilizza come criterio <strong>di</strong> registrazione la priorità definita nel file <strong>di</strong><br />
configurazione, oppure un messaggio con priorità più alta. Nel caso si<br />
volessero registrare messaggi che appartengono solo alla classe <strong>di</strong><br />
priorità definita bisognerebbe inserire un = davanti alla stessa priorità,<br />
es.<br />
4/17
Dott.Ing.Ivan Ferrazzi<br />
Le azioni<br />
news.=crit /var/log/news/news.crit<br />
Le azioni identificano dove verranno mandati, oppure scritti, i messaggi<br />
raccolti. Le azioni possono essere definite in varie maniere:<br />
(a)Scrivere il messaggio all'interno <strong>di</strong> un file.<br />
Per far scrivere il messaggio all'interno <strong>di</strong> un file basta inserire<br />
come azione il nome, con percorso assoluto (quin<strong>di</strong> iniziando con /),<br />
del file da utilizzare come destinazione. Normalmente viene<br />
eseguita una sincronizzazione del filesystem dopo ogni operazione<br />
<strong>di</strong> scrittura del processo syslog. La sincronizzazione necessita <strong>di</strong><br />
molto tempo. Per questo motivo possiamo iniziare il percorso<br />
assoluto del file con un “-” per evitare la sincronizzazione, es.<br />
*.auth -/var/log/auth.log<br />
(b)Invio del messaggio ad un processo syslog presente<br />
all'interno <strong>di</strong> un altro PC.<br />
Per motivi <strong>di</strong> sicurezza può essere importante non tenere i file log<br />
all'interno dello stesso PC che mette a <strong>di</strong>sposizione un tipo <strong>di</strong><br />
<strong>servizi</strong>o in internet o all'interno della <strong>rete</strong> locale. E' quin<strong>di</strong> possibile<br />
inviare il messaggio ad un altro processo syslog presente su un<br />
altro PC. In questo caso bisogna inserire una @ (chiocciola) seguita<br />
dal hostname del PC, oppure il relativo in<strong>di</strong>rizzo IP. Il processo<br />
syslogd del PC che deve ricevere i messaggi deve essere fatto<br />
partire con il parametro -r (remote). Es.<br />
*.auth @logserver<br />
(c)Invio del messaggio sul terminale <strong>di</strong> un utente online.<br />
Nel caso in cui venisse inserito il nome <strong>di</strong> login <strong>di</strong> un utente, o una<br />
lista <strong>di</strong> nomi <strong>di</strong> login separati da una virgola, il messaggio verrebbe<br />
visualizzato <strong>di</strong>rettamente sul terminale del o degli utenti online nel<br />
momento dell'invio del messaggio. Es.<br />
*.auth root,alberto<br />
(d)Invio del messaggio su tutti i terminali degli utenti online.<br />
In questo caso inseriamo un asterisco (*) come identificatore <strong>di</strong><br />
azione. Es.<br />
*.auth *<br />
5/17
Dott.Ing.Ivan Ferrazzi<br />
NFS<br />
Network File System<br />
In una <strong>rete</strong> informatica <strong>di</strong>venta in<strong>di</strong>spensabile la con<strong>di</strong>visione <strong>di</strong> risorse<br />
tra le macchine collegate. Il File System più conosciuto nel mondo Unix è<br />
NFS, originariamente sviluppato dalla Sun per Solaris. NFS è il Network<br />
File System che permette <strong>di</strong> con<strong>di</strong>videre risorse tra sistemi Unix e Mac OS<br />
X.<br />
Installazione <strong>di</strong> NFS.<br />
Far <strong>di</strong>ventare la nostra macchina un server o client NFS è molto semplice.<br />
Il sistema base è già presente all'interno del kernel. Quello che bisogna<br />
quin<strong>di</strong> fare è installare i componenti che sfruttano il sistema base.<br />
Per installare i componenti necessari ad un clienti NFS <strong>di</strong>gitiamo<br />
apt-get install nfs-common portmap<br />
per un server NFS invece<br />
apt-get install nfs-kernel-server nfs-common portmap<br />
6/17
Dott.Ing.Ivan Ferrazzi<br />
Configurazione base lato server.<br />
Il sistema NFS si basa sul file <strong>di</strong> configurazione /etc/exports. Per<br />
rendere effettivo ogni cambiamento all'interno <strong>di</strong> questo file è<br />
in<strong>di</strong>spensabile l'utilizzo del seguente comando<br />
exportfs -a<br />
Il file /etc/exports ha la seguente struttura:<br />
cartella con<strong>di</strong>visa utenti(opzioni) utenti(opzioni) ecc.<br />
Come cartella con<strong>di</strong>visa viene inserito il percorso assoluto alla cartella<br />
che si vuole con<strong>di</strong>videre all'interno della <strong>rete</strong>. All'interno della stessa riga<br />
inseriamo poi l'in<strong>di</strong>rizzo IP, l'in<strong>di</strong>rizzo <strong>di</strong> <strong>rete</strong>, oppure il dominio dei<br />
computer che devono avere accesso alla cartella con, tra parentesi, le<br />
opzioni per gestire i permessi <strong>di</strong> con<strong>di</strong>visione.<br />
Esempio:<br />
/me<strong>di</strong>a/share 192.168.0.12(rw) www.miodominio.it(ro)<br />
/me<strong>di</strong>a/docs 192.168.0.0/24(ro)<br />
In questo caso vengono con<strong>di</strong>vise le cartelle /me<strong>di</strong>a/share e<br />
/me<strong>di</strong>a/docs. La cartella /me<strong>di</strong>a/share è accessibile dal computer con<br />
in<strong>di</strong>rizzo IP 192.168.0.12 in lettura e scrittura; dal dominio<br />
www.miodominio.it, invece, in sola lettura. Alla cartella /me<strong>di</strong>a/docs ha<br />
accesso tutta la <strong>rete</strong> 192.168.0.0 in sola lettura.<br />
NFS utilizza un sistema chiamato squashing che evita <strong>di</strong> utilizzare le ID<br />
degli utenti che si collegano al sistema all'interno del computer server.<br />
Questo per evitare che un utente root in collegamento (ID=0) venga<br />
riconosciuto come root del sistema stesso. Gli utenti che effettuano il<br />
collegamento vengono identificati sul computer server come utente<br />
nobody, se questo esiste, come ID negativa, se questo non dovesse<br />
essere presente all'interno del sistema.<br />
Per questo motivo <strong>di</strong>venta in<strong>di</strong>spensabile settare in maniera corretta<br />
l'utente e il gruppo proprietario delle cartelle con<strong>di</strong>vise. Nel caso in cui<br />
venisse utilizzato nobody come utente bisognerà mo<strong>di</strong>ficare le<br />
appartenenze come segue<br />
chown nobody /me<strong>di</strong>a/share<br />
chown nobody /me<strong>di</strong>a/docs<br />
Si ricorda comunque la scarsa sicurezza <strong>di</strong> NFS e si consiglia quin<strong>di</strong> <strong>di</strong><br />
utilizzare NIS solamente per con<strong>di</strong>visioni all'interno <strong>di</strong> una <strong>rete</strong> sicura.<br />
Configurazione base lato client.<br />
Il collegamento ad una risorsa con<strong>di</strong>visa via NFS si può fare manualmente<br />
7/17
Dott.Ing.Ivan Ferrazzi<br />
da root <strong>di</strong>rettamente da riga <strong>di</strong> comando<br />
mount -t nfs IP_server:/me<strong>di</strong>a/share /mnt<br />
dove IP_server è l'in<strong>di</strong>rizzo IP del server NFS, oppure automaticamente<br />
inserendo il collegamento all'interno del file /etc/fstab<br />
IP_server:/me<strong>di</strong>a/share /mnt/share nfs defaults 0 0<br />
IP_server:/me<strong>di</strong>a/dosc /mnt/docs nfs defaults 0 0<br />
Per le possibili opzioni si faccia riferimento a man mount, oppure, man<br />
exports.<br />
8/17
Dott.Ing.Ivan Ferrazzi<br />
SAMBA<br />
Samba è la soluzione ideale per con<strong>di</strong>videre risorse all'interno <strong>di</strong> una <strong>rete</strong><br />
composta da client/server Linux e Microsoft. Samba, infatti, è in grado <strong>di</strong><br />
comunicare con il protocollo SMB (Server Message Block), utilizzato<br />
come protocollo <strong>di</strong> comunicazione dai sistema Microsoft.<br />
Installazione <strong>di</strong> Samba.<br />
L'installazione <strong>di</strong> samba è molto semplice. Basta <strong>di</strong>gitare<br />
apt-get install samba<br />
per avere un completo sistema Samba funzionante. Per poter utilizzare<br />
con<strong>di</strong>visioni samba, o da server Windows, su Linux utilizziamo il comando<br />
smbclient e smbmount.<br />
apt-get install smbclient<br />
Configurazione base <strong>di</strong> Samba.<br />
Samba utilizza il file <strong>di</strong> configurazione /etc/samba/smb.conf per gestire il<br />
comportamento delle con<strong>di</strong>visioni. Un possibile file <strong>di</strong> configurazione ha la<br />
seguente struttura:<br />
9/17
Dott.Ing.Ivan Ferrazzi<br />
[global]<br />
workgroup = WORKGROUP<br />
netbios name = <strong>DEBIAN</strong><br />
security = share<br />
guest account = nobody<br />
server string = Linux Samba Server<br />
comment = File con<strong>di</strong>visi<br />
[public]<br />
comment = Materiale pubblico<br />
path = /public<br />
guest ok = Yes<br />
read only = Yes<br />
All'interno delle parentesi quadre identifichiamo i blocchi che verranno<br />
configurati in<strong>di</strong>vidualmente. Uno dei blocchi standard presente all'interno<br />
<strong>di</strong> questo file <strong>di</strong> configurazione è il blocco global. Questo viene utilizzato<br />
per configurare il comportamento base del server Samba. Il blocco<br />
seguente [public] invece identifica un blocco per la con<strong>di</strong>visione <strong>di</strong><br />
risorse.<br />
Il blocco global contiene la configurazione standard come il nome del<br />
gruppo <strong>di</strong> lavoro (workgroup), il nome netbios da utilizzare per il<br />
riconoscimento da client Windows (netbios name), il nome descrittivo<br />
(server string) e il commento da visualizzare (comment).<br />
La <strong>di</strong>rettiva security impostata su share permette <strong>di</strong> con<strong>di</strong>videre le<br />
risorse senza l'utilizzo <strong>di</strong> autenticazione da parte del client che si<br />
connette. Infatti, viene detto al sistema Samba <strong>di</strong> gestire ogni utente<br />
remoto con i <strong>di</strong>ritti dell'utente nobody presente sul sistema (guest<br />
account).<br />
Nel blocco public definiamo il commento da utilizzare per la cartella<br />
con<strong>di</strong>visa (comment), il percorso assoluto della cartella con<strong>di</strong>visa (path),<br />
l'utilizzo <strong>di</strong> un utente guest, quin<strong>di</strong> senza autenticazione, (guest ok =<br />
Yes) e il <strong>di</strong>ritto <strong>di</strong> sola lettura (read only = Yes). La con<strong>di</strong>visione verrà<br />
identificata dal nome messo tra parentesi quadre (nel nostro caso<br />
public).<br />
Ad ogni mo<strong>di</strong>fica <strong>di</strong> questo file è in<strong>di</strong>spensabile il riavvio del <strong>servizi</strong>o<br />
come segue<br />
/etc/init.d/samba restart<br />
E' possibile creare delle con<strong>di</strong>visioni con autenticazione nome<br />
utente/password mo<strong>di</strong>ficando leggermente il blocco global come segue:<br />
[global]<br />
workgroup = WORKGROUP<br />
netbios name = <strong>DEBIAN</strong><br />
security = share<br />
guest account = nobody<br />
server string = Linux Samba Server<br />
comment = File con<strong>di</strong>visi<br />
encrypt passwords = Yes<br />
[public]<br />
comment = Materiale pubblico<br />
10/17
Dott.Ing.Ivan Ferrazzi<br />
path = /public<br />
guest ok = Yes<br />
read only = Yes<br />
In questo file <strong>di</strong> configurazione abbiamo abilitato la <strong>di</strong>rettiva user per<br />
quanto riguarda il controllo degli accessi (security = user) e in più<br />
abbiamo attivato la possibilità <strong>di</strong> utilizzare password criptate (encrypt<br />
passwords = Yes).<br />
L'utilizzo <strong>di</strong> autenticazione rendono in<strong>di</strong>spensabile una gestione separate<br />
dei nomi utente e delle password. Il sistema per le autenticazioni Linux e<br />
Windows non sono compatibili. Bisogna quin<strong>di</strong> rendere i due sistemi<br />
compatibili. Questo si ottiene facendo gestire il tutto da Samba. Per dare<br />
ad un utente la possibilità <strong>di</strong> accedere ad una con<strong>di</strong>visione Samba non<br />
basta l'utilizzo <strong>di</strong> un utente <strong>di</strong> sistema. Dobbiamo ora, come prima cosa,<br />
creare l'utente e “formattare” la sua password in maniera compatibile ai<br />
sistemi Windows.<br />
Questo si ottiene con il comando<br />
smbpasswd -a utente<br />
Con il parametro -a <strong>di</strong>ciamo al comando <strong>di</strong> verificare che l'utente sia<br />
presente come utente <strong>di</strong> sistema. Il comando eseguito crea il file<br />
/etc/samba/smbpasswd che contiene i dati necessari al riconoscimento<br />
dell'utente.<br />
L'utilizzo <strong>di</strong> nome utente e password per la con<strong>di</strong>visione permette<br />
l'utilizzo del blocco [homes]. Anche questo, come global, è un blocco<br />
predefinito, e permette l'utilizzo della home <strong>di</strong>rectory dell'utente stesso.<br />
In questo caso possiamo aggiungere ancora la <strong>di</strong>rettiva browseable = No<br />
che permette <strong>di</strong> <strong>di</strong>sabilitare la visualizzazione della cartella /home. Il file<br />
<strong>di</strong> configurazione verrà mo<strong>di</strong>ficato come segue:<br />
[global]<br />
workgroup = WORKGROUP<br />
netbios name = <strong>DEBIAN</strong><br />
security = share<br />
guest account = nobody<br />
server string = Linux Samba Server<br />
comment = File con<strong>di</strong>visi<br />
encrypt passwords = Yes<br />
[public]<br />
comment = Materiale pubblico<br />
path = /public<br />
guest ok = Yes<br />
read only = Yes<br />
[homes]<br />
comment = Cartella home<br />
read only = No<br />
create mask = 0750<br />
browseable = No<br />
Da ora in poi gli utenti presenti all'interno del sistema e create con il<br />
11/17
Dott.Ing.Ivan Ferrazzi<br />
comando smbpasswd avranno la possibilità <strong>di</strong> gestire il contenuto della<br />
propria cartella home.<br />
Configurazione <strong>di</strong> Samba lato client.<br />
Samba può essere utilizzato su PC Linux per accedere alle risorse<br />
con<strong>di</strong>vise da server Windows. Da root possiamo <strong>di</strong>gitare<br />
mount -t smbfs //ip_server/cartella /mnt<br />
dove ip_server è l'in<strong>di</strong>rizzo ip del server (o il nome host del server<br />
riconosciuto all'interno della <strong>rete</strong>) e cartella il nome della cartella<br />
con<strong>di</strong>visa. Oppure possiamo utilizzare<br />
smbmount //ip_server/cartella /mnt<br />
In automatico possiamo effettuare l'inserimento del collegamento<br />
all'interno del file /etc/fstab come segue:<br />
//ip_server/cartella /mnt smbfs defaults,username=user,password=psswd 0 0<br />
Le opzioni username e password permettono <strong>di</strong> definire all'interno <strong>di</strong><br />
questo file il nome utente e la parola chiave da utilizzare per l'accesso<br />
alla con<strong>di</strong>visione. Il file /etc/fstab è un file che ogni utente può leggere.<br />
Per questo motivo non è consigliabile mettere il nome utente e la<br />
password all'interno <strong>di</strong> questo file. Possiamo però utilizzare l'opzione<br />
credentials=nome file che ci permette <strong>di</strong> mettere il nome utente e la<br />
password su un file esterno non leggibile da altri utenti. Il file identificato<br />
da credentials ha il seguente formato:<br />
username=utente<br />
password=parola chiave<br />
12/17
Dott.Ing.Ivan Ferrazzi<br />
Server FTP<br />
Il <strong>servizi</strong>o FTP permette <strong>di</strong> effettuare l'upload o il download <strong>di</strong> file che si<br />
trovano su un computer remoto configurato come FTP-Server. Vedremo<br />
ora come creare un FTP-Server utilizzando il programma pure-ftpd.<br />
Installazione <strong>di</strong> pure-ftpd.<br />
Per installare il server pure-ftpd <strong>di</strong>gitiamo il seguente comando come<br />
root<br />
apt-get install pure-ftpd-common pure-ftpd<br />
Dopo l'installazione troveremo la cartella /etc/pure-ftpd che sarà la<br />
cartella all'interno della quale pure-ftpd cercherà le impostazioni <strong>di</strong><br />
configurazione per il <strong>servizi</strong>o. Il demone che viene fatto partire è il<br />
/usr/sbin/pure-ftpd-wrapper, demone che viene fatto partire dei<br />
tcpwrapper all'interno del file <strong>di</strong> configurazione /etc/inetd.conf.<br />
Configurazione <strong>di</strong> pure-ftpd.<br />
pure-ftpd utilizza la gestione degli utenti virtuali. Questo significa che<br />
tutti gli utente creati per la gestione del <strong>servizi</strong>o ftp non saranno utenti<br />
riconosciuti a livello <strong>di</strong> sistema, ma solamente all'interno del <strong>servizi</strong>o ftp.<br />
13/17
Dott.Ing.Ivan Ferrazzi<br />
Tutti gli utenti virtuali utilizzeranno un utente e un gruppo creati apposta<br />
all'interno del sistema Linux. Come prima cosa dovremmo quin<strong>di</strong> creare il<br />
gruppo e l'utente come segue:<br />
groupadd ftpgroup<br />
useradd -g ftpgroup -d /dev/null -s /etc ftpuser<br />
Creiamo quin<strong>di</strong> il gruppo ftpgroup e <strong>di</strong> seguito l'utente ftpuser come<br />
utente del gruppo ftpgroup e senza home <strong>di</strong>rectory (-d /dev/null).<br />
Ora possiamo creare il primo utente virtuale che verrà poi utilizzato per<br />
gli effettivi collegamenti tramite client FTP:<br />
pure-pw useradd test1 -u ftpuser -d /home/ftpusers/test1<br />
Con questo comando creiamo l'utente virtuale test1 che verrà gestito<br />
dal sistema con i <strong>di</strong>ritti <strong>di</strong> ftpuser e avrà come home <strong>di</strong>rectory la cartella<br />
/home/ftpusers/test1. Nel caso in cui il demone pure-ftpd-wrapper<br />
fosse fatto partire con il parametro -j il sistema creerebbe la home<br />
<strong>di</strong>rectory automaticamente. Altrimenti dovremmo creare le cartelle<br />
manualmente.<br />
Creando le cartelle manualmente dobbiamo naturalmente fare attenzione<br />
all'utente proprietario della relativa cartella (ftpuser).<br />
Gli utenti creati verranno inseriti all'interno del file /etc/pureftpd/pureftpd.passwd.<br />
Questo file non viene però letto <strong>di</strong>rettamente<br />
dal demone in esecuzione. Per questo motivo <strong>di</strong>venta in<strong>di</strong>spensabile<br />
eseguire il comando<br />
pure-pw mkdb<br />
che creerà il file /etc/pure-ftpd/pureftpd.pdb, un file binario che verrà<br />
letto <strong>di</strong>rettamente dal demone in questione. E' importantissimo, quin<strong>di</strong>,<br />
ricordarsi <strong>di</strong> eseguire questo comando ogni volta si vada a mo<strong>di</strong>ficare il<br />
file pureftpd.passwd.<br />
Per mo<strong>di</strong>ficare la password <strong>di</strong> un utente già esistente basta <strong>di</strong>gitare<br />
pure-pw passwd test1<br />
oppure<br />
pure-pw userdel test1<br />
per eliminare l'utente dal <strong>servizi</strong>o.<br />
Anche dopo queste operazioni va eseguito il pure-pw mkdb.<br />
L'ultimo passaggio che dobbiamo ricordarci <strong>di</strong> fare è <strong>di</strong> attivare la relativa<br />
gestione dei permessi. All'interno della cartella /etc/pure-ftpd/conf<br />
14/17
Dott.Ing.Ivan Ferrazzi<br />
troviamo una serie <strong>di</strong> file <strong>di</strong> configurazione che possono essere utilizzati<br />
per definire il sistema <strong>di</strong> verifica dei permessi da utilizzare. Nel nostro<br />
caso il sistema da utilizzare è PureDB, ossia la banca dati creata con<br />
pure-pw. I sistemi utilizzati per la verifica dei permessi pure-ftpd lo va a<br />
cercare all'interno della cartella /etc/pure-ftpd/auth. pure-ftpd prende<br />
quin<strong>di</strong> i file in sequenza (alfabeticamente parlando) presenti all'interno <strong>di</strong><br />
questa cartella per verificare se l'utente ha accesso o meno.<br />
Per attivare il PureDB basta creare un link simbolico all'interno della<br />
cartella auth come segue:<br />
cd /etc/pure-ftpd/auth<br />
ln -s ../conf/PureDB 50pure<br />
Facciamo ripartire il demone con<br />
/etc/init.d/pure-ftpd restart<br />
Da ora in poi sarà possibile utilizzare un client ftp come FileZilla (o simili)<br />
per effettuare l'upload o il download dei file.<br />
15/17
Dott.Ing.Ivan Ferrazzi<br />
Server <strong>di</strong> posta<br />
Il server <strong>di</strong> posta elettronica si <strong>di</strong>vide in <strong>servizi</strong>o <strong>di</strong> invio e <strong>di</strong> ricezione<br />
della posta. Il protocollo utilizzato per l'invio della posta elettronica è<br />
SMTP, mentre uno dei protocolli utilizzati per la ricezione è il protocollo<br />
POP3. Come server SMTP installeremo il programma sendmail, come<br />
POP3 server popa3d.<br />
Installazione <strong>di</strong> sendmail.<br />
Per installare il server sendmail <strong>di</strong>gitiamo il seguente comando come<br />
root<br />
apt-get install sendmail<br />
La cartella utilizzata da sendmail come deposito dei file <strong>di</strong> configurazione<br />
è la cartella /etc/mail/.<br />
Configurazione <strong>di</strong> sendmail.<br />
Il file <strong>di</strong> configurazione base <strong>di</strong> sendmail è /etc/mail/sendmail.cf che<br />
permette <strong>di</strong> configurare il sistema base <strong>di</strong> sendmail. Questo file è molto<br />
complesso e non è mia intenzione spiegare tutte le opzioni possibili.<br />
Cercheremo <strong>di</strong> concentrarci solamente sulle opzioni più importanti.<br />
16/17
Dott.Ing.Ivan Ferrazzi<br />
DS<br />
Nel caso in cui il nostro server SMTP non sia collegato <strong>di</strong>rettamente ad un<br />
sistema DNS e non sia quin<strong>di</strong> in grado <strong>di</strong> risolvere le email <strong>di</strong> destinazione<br />
<strong>di</strong>venta necessario l'utilizzo <strong>di</strong> un server SMTP primario. Al nostro server<br />
SMTP possiamo quin<strong>di</strong> in<strong>di</strong>care il server da utilizzare per l'invio delle<br />
email. In questo caso inseriamo l'in<strong>di</strong>rizzo IP del server da utilizzare come<br />
segue<br />
DS192.168.0.1<br />
Dove 192.168.0.1 è il server SMTP primario che viene utilizzato per<br />
l'invio della posta elettronica.<br />
Per quanto riguarda le altre impostazioni il server dovrebbe funzionare in<br />
maniera corretta anche con le impostazioni standard.<br />
Utilizzare /etc/aliases.<br />
In alcuni casi può essere interessanti rein<strong>di</strong>rizzare email con precise<br />
destinazioni ad un'altra email presente all'interno del sistema. In questo<br />
caso possiamo utilizzare il file /etc/aliases come segue:<br />
webmaster: root<br />
info: root<br />
root: user<br />
Le email inviate a webmaster@miodominio.it e info@miodominio.it<br />
verranno in<strong>di</strong>rizzate a root, che a sua volta verranno in<strong>di</strong>rizzate a<br />
user@dominio.it.<br />
Dopo aver mo<strong>di</strong>ficato il file /etc/aliases è in<strong>di</strong>spensabile eseguire il<br />
comando<br />
newaliases<br />
Installazione <strong>di</strong> popa3d.<br />
Per installare il server popa3d <strong>di</strong>gitiamo il seguente comando come root<br />
apt-get install popa3d<br />
Il sistema <strong>di</strong> POP3 non deve essere configurato perché utilizza gli utenti<br />
registrati all'interno del sistema Linux come utenti <strong>di</strong> posta elettronica.<br />
17/17