Sei sulla pagina 1di 460

Linux HOWTO − Networking − Sommario

Linux HOWTO − Networking − Sommario

Table of Contents
Linux HOWTO...................................................................................................................................................1
Sommario.................................................................................................................................................1
The Linux Networking HOWTO .....................................................................................................1
NFS HOWTO....................................................................................................................................2
The Linux NIS(YP)/NYS/NIS+ HOWTO........................................................................................3
The Linux PPP HOWTO...................................................................................................................4
DNS HOWTO...................................................................................................................................5
Linux IPCHAINS HOWTO..............................................................................................................6
Linux IPX−HOWTO.........................................................................................................................8
The Linux Intranet Server HOWTO.................................................................................................9
ISP−Hookup−HOWTO.....................................................................................................................9

Linux HOWTO.................................................................................................................................................11
Sommario...............................................................................................................................................11
The Linux Networking HOWTO ...................................................................................................11
NFS HOWTO..................................................................................................................................12
The Linux NIS(YP)/NYS/NIS+ HOWTO......................................................................................13
The Linux PPP HOWTO.................................................................................................................14
DNS HOWTO.................................................................................................................................16
Linux IPCHAINS HOWTO............................................................................................................17
Linux IPX−HOWTO.......................................................................................................................18
The Linux Intranet Server HOWTO...............................................................................................20
ISP−Hookup−HOWTO...................................................................................................................20
Linux HOWTO − Networking...............................................................................................................21

Introduzione......................................................................................................................................................22
Linux HOWTO − Networking...............................................................................................................22

Linux..................................................................................................................................................................23
Cos'è Linux?..........................................................................................................................................23
Che cosa rende Linux diverso?..............................................................................................................23
Linux HOWTO − Networking...............................................................................................................24

Protocolli di rete................................................................................................................................................25
TCP/IP...................................................................................................................................................25
TCP/IP versione 6..................................................................................................................................25
IPX/SPX.................................................................................................................................................25
Suite di protocolli AppleTalk................................................................................................................26
WAN Networking: X.25, Frame−relay, ecc..........................................................................................26
ISDN......................................................................................................................................................27
PPP, SLIP, PLIP....................................................................................................................................27
Radioamatori..........................................................................................................................................27
ATM.......................................................................................................................................................27
Linux HOWTO − Networking...............................................................................................................28

Hardware di rete supportato...........................................................................................................................29


Linux HOWTO − Networking...............................................................................................................29

i
Linux HOWTO − Networking − Sommario

Table of Contents
Condivisione di file e stampanti.......................................................................................................................30
Ambiente Apple.....................................................................................................................................30
Ambiente Windows...............................................................................................................................30
Ambiente Novell....................................................................................................................................30
Ambiente UNIX.....................................................................................................................................31
Linux HOWTO − Networking...............................................................................................................31

Internet/intranet................................................................................................................................................32
E−Mail...................................................................................................................................................32
Server E−Mail.................................................................................................................................32
Accesso remoto alla posta...............................................................................................................32
Mail User Agent..............................................................................................................................33
Software per mailing list.................................................................................................................33
Fetchmail.........................................................................................................................................33
Server Web.............................................................................................................................................33
Browser Web.........................................................................................................................................34
Server e client FTP.................................................................................................................................34
Servizio news.........................................................................................................................................34
Domain Name System...........................................................................................................................35
DHCP, bootp..........................................................................................................................................35
NIS.........................................................................................................................................................35
Autenticazione.......................................................................................................................................36
Linux HOWTO − Networking...............................................................................................................36

Esecuzione remota di applicazioni..................................................................................................................37


Telnet.....................................................................................................................................................37
Comandi remoti.....................................................................................................................................37
X−Window.............................................................................................................................................37
VNC.......................................................................................................................................................38
Linux HOWTO − Networking...............................................................................................................38

Interconnessioni di rete....................................................................................................................................39
Router.....................................................................................................................................................39
Bridge.....................................................................................................................................................39
Mascheramento−IP................................................................................................................................39
Accounting IP........................................................................................................................................40
Aliasing IP.............................................................................................................................................40
Controllo del traffico..............................................................................................................................40
Firewall..................................................................................................................................................40
Re−invio su porta (port forwarding)......................................................................................................41
Bilanciamento del carico........................................................................................................................41
EQL........................................................................................................................................................41
Proxy Server...........................................................................................................................................42
Composizione su richiesta.....................................................................................................................42
Tunnelling, IP mobile e reti private virtuali...........................................................................................42
Linux HOWTO − Networking...............................................................................................................43

ii
Linux HOWTO − Networking − Sommario

Table of Contents
Gestione della rete (Network Management)...................................................................................................44
Applicazioni di gestione della rete.........................................................................................................44
SNMP.....................................................................................................................................................44
Linux HOWTO − Networking...............................................................................................................44

Reti aziendali con Linux...................................................................................................................................45


Alta disponibilità....................................................................................................................................45
RAID......................................................................................................................................................45
Networking con ridondanza...................................................................................................................46
Linux HOWTO − Networking...............................................................................................................46

Fonti di informazione.......................................................................................................................................47
Linux HOWTO − Networking...............................................................................................................47

Cronologia.........................................................................................................................................................48
Linux HOWTO − Networking...............................................................................................................48
Abstract:..........................................................................................................................................49
Linux HOWTO − Networking...............................................................................................................49

Ringraziamenti e disclaimer............................................................................................................................49

Introduzione......................................................................................................................................................50
Note legali..............................................................................................................................................50
Disclaimer..............................................................................................................................................50
Feedback................................................................................................................................................50
Altri argomenti.......................................................................................................................................50
Dediche..................................................................................................................................................51
Linux HOWTO − Networking...............................................................................................................51

LEGGIMI .........................................................................................................................................................52
Linux HOWTO − Networking...............................................................................................................52

Configurare un server NFS.............................................................................................................................53


Prerequisiti.............................................................................................................................................53
Il primo passo.........................................................................................................................................53
Il portmapper.........................................................................................................................................53
Mountd e nfsd .......................................................................................................................................54
Linux HOWTO − Networking...............................................................................................................56

Configurazione di un client NFS ....................................................................................................................57


Opzioni del comando mount..................................................................................................................57
Ottimizzare NFS ...................................................................................................................................58
Linux HOWTO − Networking...............................................................................................................59

NFS su linee lente .............................................................................................................................................60


Linux HOWTO − Networking...............................................................................................................61

iii
Linux HOWTO − Networking − Sommario

Table of Contents
Sicurezza e NFS................................................................................................................................................62
Sicurezza del client................................................................................................................................62
Sicurezza del server: nfsd......................................................................................................................63
Sicurezza del server: il portmapper........................................................................................................63
NFS e firewall .......................................................................................................................................65
Riassunto...............................................................................................................................................65
Linux HOWTO − Networking...............................................................................................................66

Elenco di verifica di mount..............................................................................................................................67


Linux HOWTO − Networking...............................................................................................................69

FAQ....................................................................................................................................................................70
Linux HOWTO − Networking...............................................................................................................73

Esportare filesystem..........................................................................................................................................74
IRIX, HP−UX, Digital−UNIX, Ultrix, SunOS 4 (Solaris 1), AIX........................................................74
Solaris 2.................................................................................................................................................74
Linux HOWTO − Networking...............................................................................................................75

NFS in Linux 2.2 .............................................................................................................................................76


Il client...................................................................................................................................................77
Il server..................................................................................................................................................78
Linux HOWTO − Networking...............................................................................................................78

Server NFS su un floppy...................................................................................................................................79


Introduzione...........................................................................................................................................79
Aspettative.............................................................................................................................................79
Requisiti.................................................................................................................................................80
Installazione del server..........................................................................................................................80
Boot del server NFS temporaneo....................................................................................................80
Montaggio del floppy e del cdrom..................................................................................................80
Installazione della rete sul server temporaneo................................................................................81
Installazione della condivisione NFS..............................................................................................82
Esecuzione del server NFS....................................................................................................................82
Completato, iniziate l'installazione.................................................................................................82
Risoluzione dei problemi.......................................................................................................................82
Non ancora disponibile....................................................................................................................82
Operazioni da effettuare.........................................................................................................................83
Disco DOS.......................................................................................................................................83
Comandi rpc....................................................................................................................................83
Linux HOWTO − Networking...............................................................................................................83
Abstract:..........................................................................................................................................84
Linux HOWTO − Networking...............................................................................................................84

PC−NFS.............................................................................................................................................................84

iv
Linux HOWTO − Networking − Sommario

Table of Contents
Introduzione......................................................................................................................................................85
Nuove versioni di questo documento.....................................................................................................85
Liberatoria..............................................................................................................................................85
Commenti e correzioni...........................................................................................................................85
Ringraziamenti.......................................................................................................................................86
Linux HOWTO − Networking...............................................................................................................86

Glossario e informazioni generali....................................................................................................................87


Glossario dei termini..............................................................................................................................87
Alcune informazioni generali................................................................................................................88
Linux HOWTO − Networking...............................................................................................................89

NIS, NYS o NIS+?.............................................................................................................................................90


libc 4/5 con il NIS tradizionale o NYS?................................................................................................90
glibc 2 e NIS/NIS+................................................................................................................................90
NIS o NIS+ ?..........................................................................................................................................90
Linux HOWTO − Networking...............................................................................................................91

Come funziona...................................................................................................................................................92
Come funziona NIS................................................................................................................................92
Come funziona NIS+.............................................................................................................................92
Linux HOWTO − Networking...............................................................................................................93

Il Portmapper RPC..........................................................................................................................................94
Linux HOWTO − Networking...............................................................................................................94

Cos'è necessario fare per mettere su un NIS?................................................................................................95


Determinare se si è server, slave o client...............................................................................................95
Il software..............................................................................................................................................95
Il demone ypbind...................................................................................................................................96
Impostare un client NIS usando il NIS tradizionale..............................................................................98
Impostare un client NIS usando NYS....................................................................................................98
Impostare un client NIS usando glibc 2.x..............................................................................................99
Il File nsswitch.conf nsswitch.conf file.................................................................................................99
Le password shadow con NIS..............................................................................................................100
Linux.............................................................................................................................................100
Solaris............................................................................................................................................101
PAM PAM!shadow passwords.....................................................................................................101
Linux HOWTO − Networking.............................................................................................................101

Cosa serve per mettere su NIS+?...................................................................................................................102


Il software NIS+...................................................................................................................................102
Impostare un client NIS+.....................................................................................................................102
NIS+, keylogin, login e PAM..............................................................................................................103
Il file nsswitch.conf..............................................................................................................................103
Linux HOWTO − Networking.............................................................................................................105

v
Linux HOWTO − Networking − Sommario

Table of Contents
Impostare un server NIS ...............................................................................................................................106
Il programma server ypserv.................................................................................................................106
Il programma server yps......................................................................................................................108
Il programma rpc.ypxfrd......................................................................................................................108
Il programma rpc.yppasswdd...............................................................................................................109
Linux HOWTO − Networking.............................................................................................................109

Verificare l'installazione di NIS/NYS............................................................................................................110


Linux HOWTO − Networking.............................................................................................................111

Problemi comuni con NIS e soluzioni............................................................................................................112


Linux HOWTO − Networking.............................................................................................................112
Abstract:........................................................................................................................................113
Linux HOWTO − Networking.............................................................................................................113

Filza di Assilli Quotidiani (aka Frequently Asked Questions)....................................................................114

Introduzione....................................................................................................................................................115
Client e server......................................................................................................................................115
Differenze tra le distribuzioni di Linux...............................................................................................116
Programmi di configurazione del PPP specifici delle distribuzioni....................................................117
Linux HOWTO − Networking.............................................................................................................117

Numeri IP........................................................................................................................................................118
Linux HOWTO − Networking.............................................................................................................119

Scopi di questo documento.............................................................................................................................121


Configurazione di un client PPP..........................................................................................................121
Collegare due LAN o una LAN a Internet usando PPP.......................................................................121
Configurazione di un server PPP.........................................................................................................121
L'uso di PPP su una connessione diretta null modem..........................................................................121
Questo documento al momento non tratta...........................................................................................122
Linux HOWTO − Networking.............................................................................................................123

Versioni del software trattate........................................................................................................................124


Linux HOWTO − Networking.............................................................................................................124

Altri documenti utili/importanti....................................................................................................................125


Utili mailing list su Linux....................................................................................................................126
Linux HOWTO − Networking.............................................................................................................127

Panoramica di quello che va fatto per usare come client il PPP................................................................128


Trovare/installare il software...............................................................................................................128
Compilare il supporto per il PPP nel kernel........................................................................................128
Informazioni da chiedere al proprio ISP..............................................................................................129
Configurare il proprio modem e la porta seriale..................................................................................129
Configurare la risoluzione da nome a indirizzo (DNS).......................................................................129
PPP e Privilegi di root..........................................................................................................................130

vi
Linux HOWTO − Networking − Sommario

Table of Contents
Panoramica di quello che va fatto per usare come client il PPP
Verificare i file del PPP della propria distribuzione e impostare le opzioni del PPP..........................130
Se il proprio server PPP usa PAP (Password Authentication Protocol)..............................................130
Connettersi a mano a un server PPP....................................................................................................131
Automatizzare la propria connessione PPP.........................................................................................131
Chiudere la connessione......................................................................................................................131
Se ci sono problemi..............................................................................................................................131
Dopo che la connessione è stabilita.....................................................................................................132
Problemi con i servizi IP standard su una connessione PPP a numero IP dinamico...........................132
Linux HOWTO − Networking.............................................................................................................132

Configurare il proprio kernel di Linux........................................................................................................133


Installare i sorgenti del kernel di Linux...............................................................................................133
Riconoscere il proprio hardware..........................................................................................................134
Compilazione del kernel − il kernel di Linux 1.2.13...........................................................................134
Compilazione del kernel − i kernel di Linux 1.3.x e 2.0.x..................................................................134
Nota su PPP−2.2 e /proc/net/dev.........................................................................................................135
Considerazioni generali sulla configurazione del kernel per il PPP....................................................136
Linux HOWTO − Networking.............................................................................................................136

Quali informazioni si debbono conoscere sul server PPP ..........................................................................137


Linux HOWTO − Networking.............................................................................................................138

Configurare il proprio modem e la porta seriale ........................................................................................139


Una nota sulle porte seriali e le loro velocità.......................................................................................140
Nomi delle porte seriali........................................................................................................................141
Configurare il proprio modem.............................................................................................................141
Note sul controllo del flusso seriale.....................................................................................................142
Verificare il proprio modem per la connessione..................................................................................143
Linux HOWTO − Networking.............................................................................................................145

Configurare la risoluzione da nome a indirizzo (DNS) ..............................................................................146


Il file /etc/resolv.conf...........................................................................................................................147
Il file /etc/host.conf..............................................................................................................................147
Linux HOWTO − Networking.............................................................................................................148

L'uso di PPP e i privilegi di root...................................................................................................................149


Linux HOWTO − Networking.............................................................................................................150

Impostare i file di connessione PPP..............................................................................................................151


Il file di opzioni tipo options.tpl..........................................................................................................152
Quali opzioni dovrei usare? (No PAP/CHAP).....................................................................................157
Linux HOWTO − Networking.............................................................................................................158

Se il proprio server usa PAP (Password Authentication Protocol) ...........................................................159


Usare MSCHAP...................................................................................................................................159
Il file secrets di PAP/CHAP.................................................................................................................160
Il file secrets di PAP............................................................................................................................161

vii
Linux HOWTO − Networking − Sommario

Table of Contents
Se il proprio server usa PAP (Password Authentication Protocol)
Il file secrets di CHAP.........................................................................................................................161
Gestione di connessioni multiple autentificate con PAP.....................................................................162
Linux HOWTO − Networking.............................................................................................................162

Instaurare manualmente una connessione PPP ..........................................................................................163


Linux HOWTO − Networking.............................................................................................................166

Automatizzare la propria connessione e creazione degli script.................................................................167


Script di connessione per l'autentificazione con Nome utente/Password............................................167
Lo script ppp−on..................................................................................................................................167
Modificare gli script forniti per l'avvio del PPP..................................................................................169
Lo script ppp−on...........................................................................................................................169
Lo script ppp−on−dialer................................................................................................................170
Il significato di uno script di conversazione (chat)..............................................................................170
L'avvio di PPP dal lato server.......................................................................................................172
Uno script di conversazione per le connessioni autentificate con PAP/CHAP...................................172
Le opzioni "debug" e "file file_opzioni" di pppd................................................................................173
Linux HOWTO − Networking.............................................................................................................173

Verificare i propri script di connessione.......................................................................................................174


Linux HOWTO − Networking.............................................................................................................176

Chiudere la connessione PPP ........................................................................................................................177


Linux HOWTO − Networking.............................................................................................................177

Risoluzione dei problemi ...............................................................................................................................178


Ho compilato il supporto per il PPP nel kernel, ma.............................................................................178
Si è fatto il boot con il kernel giusto?............................................................................................178
Si è compilato il supporto per il ppp come modulo?.....................................................................178
Si sta usando la versione corretta di PPP per il proprio kernel?....................................................178
Si sta eseguendo pppd come root?................................................................................................179
Il mio modem si connette ma il ppp non parte mai..............................................................................179
Il log di sistema dice ``serial line is not 8 bit clean''............................................................................179
Non ci si è loggati correttamente nel server..................................................................................180
Non si è avviato il PPP nel server.................................................................................................180
Il processo PPP remoto è lento a partire........................................................................................180
Instradamento predefinito non impostato (Default route not set)........................................................181
Altri problemi......................................................................................................................................181
Linux HOWTO − Networking.............................................................................................................182

Ottenere aiuto quando ormai non si sa più cosa provare............................................................................183


Linux HOWTO − Networking.............................................................................................................183

Problemi comuni una volta che il collegamento funziona...........................................................................184


Non riesco a vedere niente oltre al server PPP al quale mi connetto...................................................184
Posso spedire email, ma non posso riceverla.......................................................................................185
Perché la gente non può fare finger, WWW, gopher, talk nella mia macchina?.................................185

viii
Linux HOWTO − Networking − Sommario

Table of Contents
Problemi comuni una volta che il collegamento funziona
Linux HOWTO − Networking.............................................................................................................185

Usare i servizi Internet con numeri IP dinamici .........................................................................................186


Configurazione dell'email....................................................................................................................187
Configurare un name server locale......................................................................................................188
Linux HOWTO − Networking.............................................................................................................188

Connettere assieme due reti usando PPP.....................................................................................................189


Impostare i numeri IP...........................................................................................................................189
Impostare l'instradamento....................................................................................................................190
Sicurezza di rete...................................................................................................................................190
Linux HOWTO − Networking.............................................................................................................191

Dopo che la connessione è attiva: lo script /etc/ppp/ip−up.........................................................................192


Instradamenti speciali..........................................................................................................................192
Gestione delle code di posta................................................................................................................192
Un esempio di script /etc/ppp/ip−up....................................................................................................193
Gestione delle email.............................................................................................................................194
Linux HOWTO − Networking.............................................................................................................195

Usare /etc/ppp/ip−down..................................................................................................................................196
Linux HOWTO − Networking.............................................................................................................196

Problematiche di instradamento su una LAN..............................................................................................197


Note sulla sicurezza.............................................................................................................................198
Linux HOWTO − Networking.............................................................................................................198

Configurare un server PPP ...........................................................................................................................199


Compilazione del kernel......................................................................................................................199
Panoramica del sistema server.............................................................................................................199
Procurarsi il software che serve...........................................................................................................200
Configurare un accesso standard (accesso shell).................................................................................200
Impostare i file delle opzioni di PPP...................................................................................................200
Impostare pppd per permettere agli utenti di eseguirlo (con successo)...............................................201
Impostare un alias globale per pppd....................................................................................................202
Linux HOWTO − Networking.............................................................................................................202
Abstract:........................................................................................................................................203
Linux HOWTO − Networking.............................................................................................................204

Usare PPP su una una connessione null modem (seriale diretta)..............................................................204

Preambolo........................................................................................................................................................205
Note legali............................................................................................................................................205
Crediti e richieste di aiuto....................................................................................................................205
Dediche................................................................................................................................................205
Linux HOWTO − Networking.............................................................................................................206

ix
Linux HOWTO − Networking − Sommario

Table of Contents
Introduzione ...................................................................................................................................................207
Linux HOWTO − Networking.............................................................................................................208

Un name server caching only ........................................................................................................................209


Far partire named.................................................................................................................................212
Migliorarlo ancora...............................................................................................................................213
Congratulazioni....................................................................................................................................213
Linux HOWTO − Networking.............................................................................................................214

Un semplice dominio......................................................................................................................................215
Ma prima un po' di teoria.....................................................................................................................215
Il nostro dominio..................................................................................................................................218
La zona inversa (reverse zone)............................................................................................................224
Qualche parola di avvertimento...........................................................................................................226
Perché non funziona il lookup inverso (reverse lookup).....................................................................226
La zona inversa non è delegata......................................................................................................226
Vi hanno dato una sottorete classless............................................................................................227
Linux HOWTO − Networking.............................................................................................................228

Esempio di un vero dominio..........................................................................................................................229


/etc/named.conf (o /var/named/named.conf).......................................................................................229
/var/named/root.hints...........................................................................................................................230
/var/named/zone/127.0.0......................................................................................................................230
/var/named/zone/land−5.com...............................................................................................................231
/var/named/zone/206.6.177..................................................................................................................232
Linux HOWTO − Networking.............................................................................................................234

Manutenzione .................................................................................................................................................235
Linux HOWTO − Networking.............................................................................................................236

Convertire dalla versione 4 alla versione 8..................................................................................................237


Linux HOWTO − Networking.............................................................................................................238

Domande e risposte ........................................................................................................................................239


Linux HOWTO − Networking.............................................................................................................242
Abstract:........................................................................................................................................243
Linux HOWTO − Networking.............................................................................................................244

Come diventare un grande amministratore DNS .......................................................................................244

Introduzione ...................................................................................................................................................245
Cos'è?...................................................................................................................................................245
Perché?................................................................................................................................................245
Come?..................................................................................................................................................245
Dove? ..................................................................................................................................................246
Linux HOWTO − Networking.............................................................................................................246

x
Linux HOWTO − Networking − Sommario

Table of Contents
Fondamenti di packet filtering......................................................................................................................247
Cos'è?...................................................................................................................................................247
Perché?.................................................................................................................................................247
Come? .................................................................................................................................................248
Un kernel con il filtraggio dei pacchetti........................................................................................248
ipchains..........................................................................................................................................248
Rendere permanenti le regole.......................................................................................................249
Linux HOWTO − Networking.............................................................................................................250

Instradamento, masquerading, portforwarding, ipautofw.........................................................................251


Le tre linee guida di Rusty al masquerading........................................................................................251
Promozione gratuita: WatchGuard......................................................................................................251
Configurazioni comuni di firewall.......................................................................................................251
Rete privata: proxy tradizionale....................................................................................................252
Rete privata: proxy trasparente......................................................................................................253
Rete privata: masquerading...........................................................................................................254
Rete pubblica.................................................................................................................................255
Servizi interni limitati...................................................................................................................256
Ulteriori informazioni sul masquerading.............................................................................................256
Linux HOWTO − Networking.............................................................................................................256

IP Firewall Chains .........................................................................................................................................257


Come passano i pacchetti attraverso i filtri..........................................................................................257
Usare ipchains...............................................................................................................................258
Operazioni su una sola regola.......................................................................................................259
Specificare il filtraggio..................................................................................................................260
Effetti collaterali del filtraggio......................................................................................................264
Operazioni sul masquerading........................................................................................................271
Controllare un pacchetto...............................................................................................................272
Più regole in una volta sola e controllare cosa succede................................................................272
Un utile esempio..................................................................................................................................273
Usare ipchains−save .....................................................................................................................275
Usare ipchains−restore..................................................................................................................275
Linux HOWTO − Networking.............................................................................................................276

Miscellanea......................................................................................................................................................277
Come organizzare le proprie regole firewall ......................................................................................277
Cosa non filtrare...................................................................................................................................277
Pacchetti ICMP.............................................................................................................................277
Connessioni TCP al DNS (nameserver)........................................................................................277
Incubi da FTP ...............................................................................................................................278
Filtrare i Ping della Morte....................................................................................................................278
Filtrare Teardrop e Bonk......................................................................................................................278
Filtrare i Fragment Bomb....................................................................................................................278
Cambiare le regole firewall..................................................................................................................279
Come proteggersi dall'IP spoofing?....................................................................................................279
Progetti avanzati...................................................................................................................................280
SPF: Stateful Packet Filtering.......................................................................................................280

xi
Linux HOWTO − Networking − Sommario

Table of Contents
Miscellanea
L'ftp−data hack di Michael Hasenstein.........................................................................................281
Estensioni future..................................................................................................................................281
Linux HOWTO − Networking.............................................................................................................281

Problemi comuni.............................................................................................................................................282
ipchains −L si pianta!...........................................................................................................................282
Masquerading/Forwarding non funziona!............................................................................................282
−j REDIR non funziona!......................................................................................................................282
Non funzionano i caratteri jolly nelle interfacce!................................................................................282
TOS non funziona!...............................................................................................................................282
Non funzionano ipautofw e ipportfw!..................................................................................................283
xosview si è rotto!................................................................................................................................283
Segmentation Fault con `−j REDIRECT'!...........................................................................................283
Non riesco ad impostare i timeout del masquerading!........................................................................283
Voglio dei firewall IPX!......................................................................................................................283
Linux HOWTO − Networking.............................................................................................................284

Un esempio più serio.......................................................................................................................................285


La situazione........................................................................................................................................285
Scopi....................................................................................................................................................285
Prima del filtraggio dei pacchetti.........................................................................................................286
Filtraggio dei pacchetti per i pacchetti di passaggio............................................................................287
Impostare i salti dalla catena forward............................................................................................287
Definire la catena icmp−acc..........................................................................................................288
Da Good (interno) a DMZ (server)...............................................................................................288
Da Bad (esterno) a DMZ (server)..................................................................................................288
Da Good (interno) a Bad (esterno)................................................................................................289
Da DMZ a Good (interno).............................................................................................................289
Da DMZ a Bad (esterno)...............................................................................................................290
Da Bad (esterno) a Good (interno)................................................................................................290
Filtraggio dei pacchetti per la macchina Linux stessa...................................................................290
Per finire...............................................................................................................................................291
Linux HOWTO − Networking.............................................................................................................292

Appendice: differenze tra ipchains e ipfwadm............................................................................................293


Tabella di riferimento rapido...............................................................................................................293
Esempi di traduzione di comandi ipfwadm.........................................................................................295
Linux HOWTO − Networking.............................................................................................................295

Appendice: usare lo script ipfwadm−wrapper............................................................................................296


Linux HOWTO − Networking.............................................................................................................296
Abstract:........................................................................................................................................297
Linux HOWTO − Networking.............................................................................................................297

Appendice: ringraziamenti............................................................................................................................297

xii
Linux HOWTO − Networking − Sommario

Table of Contents
Introduzione a questo documento.................................................................................................................298
Modifiche dalla versione precedente...................................................................................................298
Introduzione.........................................................................................................................................298
Linux HOWTO − Networking.............................................................................................................299

Avvertenza.......................................................................................................................................................300
Linux HOWTO − Networking.............................................................................................................300

Documentazione..............................................................................................................................................301
Nuove versioni di questo documento...................................................................................................301
Risorse internazionali....................................................................................................................301
Risorse italiane..............................................................................................................................301
Feedback..............................................................................................................................................301
Mailing list...........................................................................................................................................302
Linux HOWTO − Networking.............................................................................................................302

Alcuni dei termini utilizzati in questo documento .....................................................................................303


Linux HOWTO − Networking.............................................................................................................306

Breve discussione sulla topologia di rete IPX...............................................................................................307


Linux HOWTO − Networking.............................................................................................................308

I file correlati a IPX nel filesystem /proc......................................................................................................309


Linux HOWTO − Networking.............................................................................................................309

I tool IPX di Greg Page .................................................................................................................................310


I tool IPX in maggior dettaglio............................................................................................................310
Linux HOWTO − Networking.............................................................................................................311

Configurazione della macchina Linux come router IPX.............................................................................312


È necessario configurare una rete interna?..........................................................................................313
Linux HOWTO − Networking.............................................................................................................314

Configurazione della propria macchina Linux come client NCP...............................................................315


Come ottenere ncpfs............................................................................................................................315
Compilazione di ncpfs per il kernel 1.2.13..........................................................................................315
Come compilare ncpfs per i kernel 1.3.71++/2.0.*.............................................................................317
Configurazione e utilizzo di ncpfs.......................................................................................................317
Linux HOWTO − Networking.............................................................................................................320

Configurazione della macchina Linux come server NCP...........................................................................321


Il pacchetto mars_nwe.........................................................................................................................321
Capacità di mars_nwe...................................................................................................................321
Come ottenere mars_nwe..............................................................................................................321
Come compilare il pacchetto mars_nwe.......................................................................................321
Il pacchetto lwared...............................................................................................................................328
Capacità di lwared.........................................................................................................................328
Come ottenere lwared....................................................................................................................328

xiii
Linux HOWTO − Networking − Sommario

Table of Contents
Configurazione della macchina Linux come server NCP
Compilazione di lwared.................................................................................................................328
Configurazione e utilizzo di lwared..............................................................................................330
Linux HOWTO − Networking.............................................................................................................332

Configurazione della macchina Linux come client di stampa Novell .......................................................333


Linux HOWTO − Networking.............................................................................................................333

Configurazione di una macchina Linux come print server Novell.............................................................334


Prerequisiti...........................................................................................................................................334
Configurazione.....................................................................................................................................334
Linux HOWTO − Networking.............................................................................................................335

Panoramica sui comandi utente e di amministrazione di ncpfs.................................................................336


Comandi utente....................................................................................................................................336
Strumenti per la gestione.....................................................................................................................337
Linux HOWTO − Networking.............................................................................................................338

Configurazione di PPP per reti con supporto IPX......................................................................................339


Configurazione di un server IPX/PPP..................................................................................................339
Primi passi.....................................................................................................................................339
Progettazione.................................................................................................................................340
Configurazione di pppd per il server.............................................................................................340
Verifica della configurazione del server.......................................................................................341
Configurazione di un client IPX/PPP..................................................................................................341
Configurazione di pppd per il client..............................................................................................341
Verifica del client IPX/PPP...........................................................................................................341
Linux HOWTO − Networking.............................................................................................................342

Il tunnel IPX su IP..........................................................................................................................................343


Come ottenere ipxtunnel......................................................................................................................343
Compilare ipxtunnel............................................................................................................................343
Configurazione di ipxtunnel................................................................................................................343
Verifica e utilizzo di ipxtunnel............................................................................................................344
Linux HOWTO − Networking.............................................................................................................344

Supporto commerciale IPX per Linux..........................................................................................................345


Network Desktop di Caldera................................................................................................................345
Linux HOWTO − Networking.............................................................................................................345

Alcune domande frequenti (FAQ).................................................................................................................346


Linux HOWTO − Networking.............................................................................................................349

Copyright.........................................................................................................................................................350
Linux HOWTO − Networking.............................................................................................................351
Abstract:........................................................................................................................................352
Linux HOWTO − Networking.............................................................................................................352

xiv
Linux HOWTO − Networking − Sommario

Table of Contents
Varie e ringraziamenti....................................................................................................................................353

Introduzione ...................................................................................................................................................354
Cosa serve............................................................................................................................................354
Nuove versioni di questo documento...................................................................................................355
Critiche e commenti.............................................................................................................................355
Linux HOWTO − Networking.............................................................................................................355

Installazione del server HTTP.......................................................................................................................356


Preparativi per il prelievo del software................................................................................................356
Il sistema operativo.......................................................................................................................356
Tipo di processo (ServerType)......................................................................................................356
Porta abbinata (Port)......................................................................................................................357
Identificativo utente del server (User)...........................................................................................357
Identificativo di gruppo del server (Group)..................................................................................357
Indirizzo di posta elettronica dell'amministratore del server (ServerAdmin)...............................357
Cartella di ubicazione del server (ServerRoot).............................................................................357
Ubicazione dei file HTML (DocumentRoot)................................................................................357
Compilazione di HTTPd......................................................................................................................358
Linux HOWTO − Networking.............................................................................................................358

Test del funzionamento di HTTPd................................................................................................................359


Linux HOWTO − Networking.............................................................................................................359

Collegamento al server Linux........................................................................................................................361


Configurazione del server Linux.........................................................................................................361
Configurazione del server Netware ....................................................................................................361
Configurazione dei client Netware .....................................................................................................362
Windows 3.x.................................................................................................................................362
Windows 95..................................................................................................................................363
Configurazione dei client MS Windows.............................................................................................364
Windows for Workgroups ............................................................................................................365
Windows 95..................................................................................................................................365
Windows NT ................................................................................................................................366
Configurazione di TCP/IP sul Macintosh ...........................................................................................367
MacTCP........................................................................................................................................367
Linux HOWTO − Networking.............................................................................................................367

Impostazione dell'intranet..............................................................................................................................368
NCPFS ................................................................................................................................................368
Installazione...................................................................................................................................368
Montare NCPFS............................................................................................................................369
SMBFS................................................................................................................................................370
Installazione...................................................................................................................................370
Montare SMBFS............................................................................................................................370
NFS .....................................................................................................................................................371
Linux HOWTO − Networking.............................................................................................................371

xv
Linux HOWTO − Networking − Sommario

Table of Contents
Accesso al sito Web ........................................................................................................................................372
Accesso ai filesystem montati..............................................................................................................372
Collegamento a Internet.......................................................................................................................372
Altri utilizzi..........................................................................................................................................373
Linux HOWTO − Networking.............................................................................................................375

Altre cose da fare............................................................................................................................................376


Linux HOWTO − Networking.............................................................................................................376

Riconoscimenti e note legali...........................................................................................................................377


Ringraziamenti.....................................................................................................................................377
Copyright.............................................................................................................................................377
Abstract:........................................................................................................................................378
Linux HOWTO − Networking.............................................................................................................378

Introduzione....................................................................................................................................................379
Copyright.............................................................................................................................................379
Disconoscimento..................................................................................................................................379
Traduzioni............................................................................................................................................380
Nuove versioni di questo documento...................................................................................................380
Commenti.............................................................................................................................................380
Linux HOWTO − Networking.............................................................................................................381

Come mi collego al resto del mondo?............................................................................................................382


La configurazione basilare...................................................................................................................382
Linux HOWTO − Networking.............................................................................................................385

Come faccio a navigare?.................................................................................................................................386


Linux HOWTO − Networking.............................................................................................................386

Come faccio a inviare e ricevere posta elettronica?.....................................................................................387


Linux HOWTO − Networking.............................................................................................................389

News.................................................................................................................................................................390
Come faccio a configurare un news−reader online?............................................................................390
Come faccio a configurare un news−reader offline?...........................................................................390
Come faccio a configurare C News?...................................................................................................390
Come faccio a configurare Leafnode?.................................................................................................393
Linux HOWTO − Networking.............................................................................................................395

Come faccio ad automatizzare la procedura di connessione?....................................................................396


Linux HOWTO − Networking.............................................................................................................398

Parole finali......................................................................................................................................................399
Altre cose che dovrei sapere?..............................................................................................................399
Linux HOWTO − Networking.............................................................................................................399

xvi
Linux HOWTO − Networking − Sommario

Table of Contents
Informazioni specifiche su alcuni Internet Provider...................................................................................400
Dove posso imparare di più?................................................................................................................400
Ringraziamenti.....................................................................................................................................401
Linux HOWTO − Networking.............................................................................................................402

Informazioni sul documento ........................................................................................................................403

xvii
Linux HOWTO
Networking

Autori vari

Tutti i documenti sono protetti da Copyright dei rispettivi autori. Vedere le indicazioni di ciascun HOWTO
per maggiori informazioni. Ove non diversamente specificato si applica la GNU General Public Licence.

Sommario
The Linux Networking HOWTO
• Introduzione
• Linux
♦ Cos'è Linux?
♦ Che cosa rende Linux diverso?
• Protocolli di rete
♦ TCP/IP
♦ TCP/IP versione 6
♦ IPX/SPX
♦ Suite di protocolli AppleTalk
♦ WAN Networking: X.25, Frame−relay, ecc...
♦ ISDN
♦ PPP, SLIP, PLIP
♦ Radioamatori
♦ ATM
• Hardware di rete supportato
• Condivisione di file e stampanti
♦ Ambiente Apple
♦ Ambiente Windows
♦ Ambiente Novell
♦ Ambiente UNIX
• Internet/intranet
♦ E−Mail
◊ Server E−Mail
◊ Accesso remoto alla posta
◊ Mail User Agent
◊ Software per mailing list
◊ Fetchmail
♦ Server Web
♦ Browser Web
♦ Server e client FTP
♦ Servizio news
♦ Domain Name System
♦ DHCP, bootp
♦ NIS
♦ Autenticazione
• Esecuzione remota di applicazioni
♦ Telnet
♦ Comandi remoti
♦ X−Window
♦ VNC
• Interconnessioni di rete
♦ Router
♦ Bridge

Linux HOWTO 1
Linux HOWTO − Networking − Sommario
♦ Mascheramento−IP
♦ Accounting IP
♦ Aliasing IP
♦ Controllo del traffico
♦ Firewall
♦ Re−invio su porta (port forwarding)
♦ Bilanciamento del carico
♦ EQL
♦ Proxy Server
♦ Composizione su richiesta
♦ Tunnelling, IP mobile e reti private virtuali
• Gestione della rete (Network Management)
♦ Applicazioni di gestione della rete
♦ SNMP
• Reti aziendali con Linux
♦ Alta disponibilità
♦ RAID
♦ Networking con ridondanza
• Fonti di informazione
• Cronologia
• Ringraziamenti e disclaimer

NFS HOWTO
• Introduzione
♦ Note legali
♦ Disclaimer
♦ Feedback
♦ Altri argomenti
♦ Dediche
• LEGGIMI
• Configurare un server NFS
♦ Prerequisiti
♦ Il primo passo
♦ Il portmapper
♦ Mountd e nfsd
• Configurazione di un client NFS
♦ Opzioni del comando mount
♦ Ottimizzare NFS
• NFS su linee lente
• Sicurezza e NFS
♦ Sicurezza del client
♦ Sicurezza del server: nfsd
♦ Sicurezza del server: il portmapper
♦ NFS e firewall
♦ Riassunto
• Elenco di verifica di mount
• FAQ
• Esportare filesystem
♦ IRIX, HP−UX, Digital−UNIX, Ultrix, SunOS 4 (Solaris 1), AIX
♦ Solaris 2
• NFS in Linux 2.2
♦ Il client
♦ Il server
• Server NFS su un floppy
♦ Introduzione
♦ Aspettative
♦ Requisiti
♦ Installazione del server
◊ Boot del server NFS temporaneo

NFS HOWTO 2
Linux HOWTO − Networking − Sommario
◊ Montaggio del floppy e del cdrom
◊ Installazione della rete sul server temporaneo
◊ Installazione della condivisione NFS
♦ Esecuzione del server NFS
◊ Completato, iniziate l'installazione
♦ Risoluzione dei problemi
◊ Non ancora disponibile
♦ Operazioni da effettuare
◊ Disco DOS
◊ Comandi rpc
• PC−NFS

The Linux NIS(YP)/NYS/NIS+ HOWTO


• Introduzione
♦ Nuove versioni di questo documento
♦ Liberatoria
♦ Commenti e correzioni
♦ Ringraziamenti
• Glossario e informazioni generali
♦ Glossario dei termini
♦ Alcune informazioni generali
• NIS, NYS o NIS+?
♦ libc 4/5 con il NIS tradizionale o NYS?
♦ glibc 2 e NIS/NIS+
♦ NIS o NIS+ ?
• Come funziona
♦ Come funziona NIS
♦ Come funziona NIS+
• Il Portmapper RPC
• Cos'è necessario fare per mettere su un NIS?
♦ Determinare se si è server, slave o client
♦ Il software
♦ Il demone ypbind
♦ Impostare un client NIS usando il NIS tradizionale
♦ Impostare un client NIS usando NYS
♦ Impostare un client NIS usando glibc 2.x
♦ Il File nsswitch.conf nsswitch.conf
♦ Le password shadow con NIS
◊ Linux
◊ Solaris
◊ PAM
• Cosa serve per mettere su NIS+?
♦ Il software NIS+
♦ Impostare un client NIS+
♦ NIS+, keylogin, login e PAM
♦ Il file nsswitch.conf
• Impostare un server NIS
♦ Il programma server ypserv
♦ Il programma server yps
♦ Il programma rpc.ypxfrd
♦ Il programma rpc.yppasswdd
• Verificare l'installazione di NIS/NYS
• Problemi comuni con NIS e soluzioni
• Filza di Assilli Quotidiani (aka Frequently Asked Questions)

The Linux NIS(YP)/NYS/NIS+ HOWTO 3


Linux HOWTO − Networking − Sommario

The Linux PPP HOWTO


• Introduzione
♦ Client e server
♦ Differenze tra le distribuzioni di Linux
♦ Programmi di configurazione del PPP specifici delle distribuzioni
• Numeri IP
• Scopi di questo documento
♦ Configurazione di un client PPP
♦ Collegare due LAN o una LAN a Internet usando PPP
♦ Configurazione di un server PPP
♦ L'uso di PPP su una connessione diretta null modem
♦ Questo documento al momento non tratta...
• Versioni del software trattate
• Altri documenti utili/importanti
♦ Utili mailing list su Linux
• Panoramica di quello che va fatto per usare come client il PPP
♦ Trovare/installare il software
♦ Compilare il supporto per il PPP nel kernel
♦ Informazioni da chiedere al proprio ISP
♦ Configurare il proprio modem e la porta seriale
♦ Configurare la risoluzione da nome a indirizzo (DNS)
♦ PPP e Privilegi di root
♦ Verificare i file del PPP della propria distribuzione e impostare le opzioni del PPP
♦ Se il proprio server PPP usa PAP (Password Authentication Protocol)
♦ Connettersi a mano a un server PPP
♦ Automatizzare la propria connessione PPP
♦ Chiudere la connessione
♦ Se ci sono problemi
♦ Dopo che la connessione è stabilita
♦ Problemi con i servizi IP standard su una connessione PPP a numero IP dinamico
• Configurare il proprio kernel di Linux
♦ Installare i sorgenti del kernel di Linux
♦ Riconoscere il proprio hardware
♦ Compilazione del kernel − il kernel di Linux 1.2.13
♦ Compilazione del kernel − i kernel di Linux 1.3.x e 2.0.x
♦ Nota su PPP−2.2 e /proc/net/dev
♦ Considerazioni generali sulla configurazione del kernel per il PPP
• Quali informazioni si debbono conoscere sul server PPP
• Configurare il proprio modem e la porta seriale
♦ Una nota sulle porte seriali e le loro velocità
♦ Nomi delle porte seriali
♦ Configurare il proprio modem
♦ Note sul controllo del flusso seriale
♦ Verificare il proprio modem per la connessione
• Configurare la risoluzione da nome a indirizzo (DNS)
♦ Il file /etc/resolv.conf
♦ Il file /etc/host.conf
• L'uso di PPP e i privilegi di root
• Impostare i file di connessione PPP
♦ Il file di opzioni tipo options.tpl
♦ Quali opzioni dovrei usare? (No PAP/CHAP)
• Se il proprio server usa PAP (Password Authentication Protocol)
♦ Usare MSCHAP
♦ Il file secrets di PAP/CHAP
♦ Il file secrets di PAP
♦ Il file secrets di CHAP
♦ Gestione di connessioni multiple autentificate con PAP
• Instaurare manualmente una connessione PPP
• Automatizzare la propria connessione e creazione degli script
♦ Script di connessione per l'autentificazione con Nome utente/Password

The Linux PPP HOWTO 4


Linux HOWTO − Networking − Sommario
♦ Lo script ppp−on
♦ Modificare gli script forniti per l'avvio del PPP
◊ Lo script ppp−on
◊ Lo script ppp−on−dialer
♦ Il significato di uno script di conversazione (chat)...
◊ L'avvio di PPP dal lato server
♦ Uno script di conversazione per le connessioni autentificate con PAP/CHAP
♦ Le opzioni "debug" e "file file_opzioni" di pppd
• Verificare i propri script di connessione
• Chiudere la connessione PPP
• Risoluzione dei problemi
♦ Ho compilato il supporto per il PPP nel kernel, ma...
◊ Si è fatto il boot con il kernel giusto?
◊ Si è compilato il supporto per il ppp come modulo?
◊ Si sta usando la versione corretta di PPP per il proprio kernel?
◊ Si sta eseguendo pppd come root?
♦ Il mio modem si connette ma il ppp non parte mai
♦ Il log di sistema dice ``serial line is not 8 bit clean''
◊ Non ci si è loggati correttamente nel server
◊ Non si è avviato il PPP nel server
◊ Il processo PPP remoto è lento a partire
♦ Instradamento predefinito non impostato (Default route not set)
♦ Altri problemi
• Ottenere aiuto quando ormai non si sa più cosa provare
• Problemi comuni una volta che il collegamento funziona
♦ Non riesco a vedere niente oltre al server PPP al quale mi connetto
♦ Posso spedire email, ma non posso riceverla
♦ Perché la gente non può fare finger, WWW, gopher, talk nella mia macchina?
• Usare i servizi Internet con numeri IP dinamici
♦ Configurazione dell'email
♦ Configurare un name server locale
• Connettere assieme due reti usando PPP
♦ Impostare i numeri IP
♦ Impostare l'instradamento
♦ Sicurezza di rete
• Dopo che la connessione è attiva: lo script /etc/ppp/ip−up
♦ Instradamenti speciali
♦ Gestione delle code di posta
♦ Un esempio di script /etc/ppp/ip−up
♦ Gestione delle email
• Usare /etc/ppp/ip−down
• Problematiche di instradamento su una LAN
♦ Note sulla sicurezza
• Configurare un server PPP
♦ Compilazione del kernel
♦ Panoramica del sistema server
♦ Procurarsi il software che serve
♦ Configurare un accesso standard (accesso shell)
♦ Impostare i file delle opzioni di PPP
♦ Impostare pppd per permettere agli utenti di eseguirlo (con successo)
♦ Impostare un alias globale per pppd
• Usare PPP su una una connessione null modem (seriale diretta)

DNS HOWTO
• Preambolo
♦ Note legali
♦ Crediti e richieste di aiuto
♦ Dediche
• Introduzione

DNS HOWTO 5
Linux HOWTO − Networking − Sommario
• Un name server caching only
♦ Far partire named
♦ Migliorarlo ancora
♦ Congratulazioni
• Un semplice dominio
♦ Ma prima un po' di teoria
♦ Il nostro dominio
♦ La zona inversa (reverse zone)
♦ Qualche parola di avvertimento
♦ Perché non funziona il lookup inverso (reverse lookup)
◊ La zona inversa non è delegata
◊ Vi hanno dato una sottorete classless
• Esempio di un vero dominio
♦ /etc/named.conf (o /var/named/named.conf)
♦ /var/named/root.hints
♦ /var/named/zone/127.0.0
♦ /var/named/zone/land−5.com
♦ /var/named/zone/206.6.177
• Manutenzione
• Convertire dalla versione 4 alla versione 8
• Domande e risposte
• Come diventare un grande amministratore DNS

Linux IPCHAINS HOWTO


• Introduzione
♦ Cos'è?
♦ Perché?
♦ Come?
♦ Dove?
• Fondamenti di packet filtering
♦ Cos'è?
♦ Perché?
♦ Come?
◊ Un kernel con il filtraggio dei pacchetti
◊ ipchains
◊ Rendere permanenti le regole
• Instradamento, masquerading, portforwarding, ipautofw...
♦ Le tre linee guida di Rusty al masquerading
♦ Promozione gratuita: WatchGuard
♦ Configurazioni comuni di firewall
◊ Rete privata: proxy tradizionale
◊ Rete privata: proxy trasparente
◊ Rete privata: masquerading
◊ Rete pubblica
◊ Servizi interni limitati
♦ Ulteriori informazioni sul masquerading
• IP Firewall Chains
♦ Come passano i pacchetti attraverso i filtri
◊ Usare ipchains
◊ Operazioni su una sola regola
◊ Specificare il filtraggio
⋅ Specificare gli indirizzi di provenienza e destinazione
⋅ Specificare una negazione
⋅ Specificare un protocollo
⋅ Specificare porte UDP e TCP
• Specificare tipo e codice ICMP
⋅ Specificare un'interfaccia
⋅ Specificare solo pacchetti TCP SYN
⋅ Gestire i frammenti

Linux IPCHAINS HOWTO 6


Linux HOWTO − Networking − Sommario
◊ Effetti collaterali del filtraggio
⋅ Specificare un obiettivo
⋅ Registrazione dei pacchetti
⋅ Manipolare il `Type of Service'
⋅ Marcare un pacchetto
⋅ Operazioni su un'intera catena
⋅ Creare una nuova catena
⋅ Cancellare una catena
⋅ Svuotare una catena
⋅ Elencare le regole in una catena
⋅ Azzerare i contatori
⋅ Impostare la tattica
◊ Operazioni sul masquerading
◊ Controllare un pacchetto
◊ Più regole in una volta sola e controllare cosa succede
♦ Un utile esempio
◊ Usare ipchains−save
◊ Usare ipchains−restore
• Miscellanea
♦ Come organizzare le proprie regole firewall
♦ Cosa non filtrare
◊ Pacchetti ICMP
◊ Connessioni TCP al DNS (nameserver)
◊ Incubi da FTP
♦ Filtrare i Ping della Morte
♦ Filtrare Teardrop e Bonk
♦ Filtrare i Fragment Bomb
♦ Cambiare le regole firewall
♦ Come proteggersi dall'IP spoofing?
♦ Progetti avanzati
◊ SPF: Stateful Packet Filtering
◊ L'ftp−data hack di Michael Hasenstein
♦ Estensioni future
• Problemi comuni
♦ ipchains −L si pianta!
♦ Masquerading/Forwarding non funziona!
♦ −j REDIR non funziona!
♦ Non funzionano i caratteri jolly nelle interfacce!
♦ TOS non funziona!
♦ Non funzionano ipautofw e ipportfw!
♦ xosview si è rotto!
♦ Segmentation Fault con `−j REDIRECT'!
♦ Non riesco ad impostare i timeout del masquerading!
♦ Voglio dei firewall IPX!
• Un esempio più serio
♦ La situazione
♦ Scopi
♦ Prima del filtraggio dei pacchetti
♦ Filtraggio dei pacchetti per i pacchetti di passaggio
◊ Impostare i salti dalla catena forward
◊ Definire la catena icmp−acc
◊ Da Good (interno) a DMZ (server)
◊ Da Bad (esterno) a DMZ (server)
◊ Da Good (interno) a Bad (esterno)
◊ Da DMZ a Good (interno)
◊ Da DMZ a Bad (esterno)
◊ Da Bad (esterno) a Good (interno)
◊ Filtraggio dei pacchetti per la macchina Linux stessa
⋅ Interfaccia di Bad (esterno)
⋅ Interfaccia di DMZ
⋅ Interfaccia di Good (interno)

Linux IPCHAINS HOWTO 7


Linux HOWTO − Networking − Sommario
♦ Per finire
• Appendice: differenze tra ipchains e ipfwadm
♦ Tabella di riferimento rapido
♦ Esempi di traduzione di comandi ipfwadm
• Appendice: usare lo script ipfwadm−wrapper
• Appendice: ringraziamenti

Linux IPX−HOWTO
• Introduzione a questo documento
♦ Modifiche dalla versione precedente
♦ Introduzione
• Avvertenza
• Documentazione
♦ Nuove versioni di questo documento
◊ Risorse internazionali
◊ Risorse italiane
♦ Feedback
♦ Mailing list
• Alcuni dei termini utilizzati in questo documento
• Breve discussione sulla topologia di rete IPX
• I file correlati a IPX nel filesystem /proc
• I tool IPX di Greg Page
♦ I tool IPX in maggior dettaglio
• Configurazione della macchina Linux come router IPX
♦ È necessario configurare una rete interna?
• Configurazione della propria macchina Linux come client NCP
♦ Come ottenere ncpfs
♦ Compilazione di ncpfs per il kernel 1.2.13
♦ Come compilare ncpfs per i kernel 1.3.71++/2.0.*
♦ Configurazione e utilizzo di ncpfs
• Configurazione della macchina Linux come server NCP
♦ Il pacchetto mars_nwe
◊ Capacità di mars_nwe
◊ Come ottenere mars_nwe
◊ Come compilare il pacchetto mars_nwe
♦ Il pacchetto lwared
◊ Capacità di lwared
◊ Come ottenere lwared
◊ Compilazione di lwared
◊ Configurazione e utilizzo di lwared
• Configurazione della macchina Linux come client di stampa Novell
• Configurazione di una macchina Linux come print server Novell
♦ Prerequisiti
♦ Configurazione
• Panoramica sui comandi utente e di amministrazione di ncpfs
♦ Comandi utente
♦ Strumenti per la gestione
• Configurazione di PPP per reti con supporto IPX
♦ Configurazione di un server IPX/PPP
◊ Primi passi
◊ Progettazione
◊ Configurazione di pppd per il server
◊ Verifica della configurazione del server
♦ Configurazione di un client IPX/PPP
◊ Configurazione di pppd per il client
◊ Verifica del client IPX/PPP
• Il tunnel IPX su IP
♦ Come ottenere ipxtunnel
♦ Compilare ipxtunnel

Linux IPX−HOWTO 8
Linux HOWTO − Networking − Sommario
♦ Configurazione di ipxtunnel
♦ Verifica e utilizzo di ipxtunnel
• Supporto commerciale IPX per Linux
♦ Network Desktop di Caldera
• Alcune domande frequenti (FAQ)
• Copyright
• Varie e ringraziamenti

The Linux Intranet Server HOWTO


• Introduzione
♦ Cosa serve
♦ Nuove versioni di questo documento
♦ Critiche e commenti
• Installazione del server HTTP
♦ Preparativi per il prelievo del software
◊ Il sistema operativo
◊ Tipo di processo (ServerType)
◊ Porta abbinata (Port)
◊ Identificativo utente del server (User)
◊ Identificativo di gruppo del server (Group)
◊ Indirizzo di posta elettronica dell'amministratore del server (ServerAdmin)
◊ Cartella di ubicazione del server (ServerRoot)
◊ Ubicazione dei file HTML (DocumentRoot)
♦ Compilazione di HTTPd
• Test del funzionamento di HTTPd
• Collegamento al server Linux
♦ Configurazione del server Linux
♦ Configurazione del server Netware
♦ Configurazione dei client Netware
◊ Windows 3.x
◊ Windows 95
♦ Configurazione dei client MS Windows
◊ Windows for Workgroups
◊ Windows 95
◊ Windows NT
♦ Configurazione di TCP/IP sul Macintosh
◊ MacTCP
• Impostazione dell'intranet
♦ NCPFS
◊ Installazione
◊ Montare NCPFS
♦ SMBFS
◊ Installazione
◊ Montare SMBFS
♦ NFS
• Accesso al sito Web
♦ Accesso ai filesystem montati
♦ Collegamento a Internet
♦ Altri utilizzi
• Altre cose da fare
• Riconoscimenti e note legali
♦ Ringraziamenti
♦ Copyright

ISP−Hookup−HOWTO
• Introduzione

♦ Copyright

The Linux Intranet Server HOWTO 9


Linux HOWTO − Networking − Sommario
♦ Disconoscimento
♦ Traduzioni
♦ Nuove versioni di questo documento
♦ Commenti
• Come mi collego al resto del mondo?
♦ La configurazione basilare
• Come faccio a navigare?
• Come faccio a inviare e ricevere posta elettronica?
• News
♦ Come faccio a configurare un news−reader online?
♦ Come faccio a configurare un news−reader offline?
♦ Come faccio a configurare C News?
♦ Come faccio a configurare Leafnode?
• Come faccio ad automatizzare la procedura di connessione?
• Parole finali
♦ Altre cose che dovrei sapere?
• Informazioni specifiche su alcuni Internet Provider
♦ Dove posso imparare di più?
♦ Ringraziamenti

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

The Linux Intranet Server HOWTO 10


GTK+/GNOME
sviluppo applicazioni
Linux HOWTO
Linux HOWTO: Installazione e configurazione

Networking
Risorse
Autori vari
Feedback

Tutti i documenti sono protetti da Copyright dei rispettivi


autori. Vedere le indicazioni di ciascun HOWTO per maggiori
informazioni. Ove non diversamente specificato si applica la
GNU General Public Licence.

Sommario
The Linux Networking HOWTO
• Introduzione
• Linux
♦ Cos'è Linux?
♦ Che cosa rende Linux diverso?
• Protocolli di rete
♦ TCP/IP
♦ TCP/IP versione 6
♦ IPX/SPX
♦ Suite di protocolli AppleTalk
♦ WAN Networking: X.25, Frame−relay, ecc...
♦ ISDN
♦ PPP, SLIP, PLIP
♦ Radioamatori
♦ ATM
• Hardware di rete supportato
• Condivisione di file e stampanti
♦ Ambiente Apple
♦ Ambiente Windows
♦ Ambiente Novell
♦ Ambiente UNIX
• Internet/intranet
♦ E−Mail
◊ Server E−Mail
◊ Accesso remoto alla posta
◊ Mail User Agent
◊ Software per mailing list
◊ Fetchmail
♦ Server Web
♦ Browser Web
♦ Server e client FTP
♦ Servizio news
♦ Domain Name System
♦ DHCP, bootp
♦ NIS
♦ Autenticazione
• Esecuzione remota di applicazioni
♦ Telnet
♦ Comandi remoti
♦ X−Window

Linux HOWTO 11
Linux HOWTO − Networking − Sommario

♦ VNC
• Interconnessioni di rete
♦ Router
♦ Bridge
♦ Mascheramento−IP
♦ Accounting IP
♦ Aliasing IP
♦ Controllo del traffico
♦ Firewall
♦ Re−invio su porta (port forwarding)
♦ Bilanciamento del carico
♦ EQL
♦ Proxy Server
♦ Composizione su richiesta
♦ Tunnelling, IP mobile e reti private virtuali
• Gestione della rete (Network Management)
♦ Applicazioni di gestione della rete
♦ SNMP
• Reti aziendali con Linux
♦ Alta disponibilità
♦ RAID
♦ Networking con ridondanza
• Fonti di informazione
• Cronologia
• Ringraziamenti e disclaimer

NFS HOWTO
• Introduzione
♦ Note legali
♦ Disclaimer
♦ Feedback
♦ Altri argomenti
♦ Dediche
• LEGGIMI
• Configurare un server NFS
♦ Prerequisiti
♦ Il primo passo
♦ Il portmapper
♦ Mountd e nfsd
• Configurazione di un client NFS
♦ Opzioni del comando mount
♦ Ottimizzare NFS
• NFS su linee lente
• Sicurezza e NFS
♦ Sicurezza del client
♦ Sicurezza del server: nfsd
♦ Sicurezza del server: il portmapper
♦ NFS e firewall
♦ Riassunto
• Elenco di verifica di mount
• FAQ
• Esportare filesystem
♦ IRIX, HP−UX, Digital−UNIX, Ultrix, SunOS 4
(Solaris 1), AIX
♦ Solaris 2
• NFS in Linux 2.2
♦ Il client
♦ Il server
• Server NFS su un floppy

NFS HOWTO 12
Linux HOWTO − Networking − Sommario

♦ Introduzione
♦ Aspettative
♦ Requisiti
♦ Installazione del server
◊ Boot del server NFS temporaneo
◊ Montaggio del floppy e del cdrom
◊ Installazione della rete sul server
temporaneo
◊ Installazione della condivisione NFS
♦ Esecuzione del server NFS
◊ Completato, iniziate l'installazione
♦ Risoluzione dei problemi
◊ Non ancora disponibile
♦ Operazioni da effettuare
◊ Disco DOS
◊ Comandi rpc
• PC−NFS

The Linux NIS(YP)/NYS/NIS+ HOWTO


• Introduzione
♦ Nuove versioni di questo documento
♦ Liberatoria
♦ Commenti e correzioni
♦ Ringraziamenti
• Glossario e informazioni generali
♦ Glossario dei termini
♦ Alcune informazioni generali
• NIS, NYS o NIS+?
♦ libc 4/5 con il NIS tradizionale o NYS?
♦ glibc 2 e NIS/NIS+
♦ NIS o NIS+ ?
• Come funziona
♦ Come funziona NIS
♦ Come funziona NIS+
• Il Portmapper RPC
• Cos'è necessario fare per mettere su un NIS?
♦ Determinare se si è server, slave o client
♦ Il software
♦ Il demone ypbind
♦ Impostare un client NIS usando il NIS tradizionale
♦ Impostare un client NIS usando NYS
♦ Impostare un client NIS usando glibc 2.x
♦ Il File nsswitch.conf nsswitch.conf
♦ Le password shadow con NIS
◊ Linux
◊ Solaris
◊ PAM
• Cosa serve per mettere su NIS+?
♦ Il software NIS+
♦ Impostare un client NIS+
♦ NIS+, keylogin, login e PAM
♦ Il file nsswitch.conf
• Impostare un server NIS
♦ Il programma server ypserv
♦ Il programma server yps
♦ Il programma rpc.ypxfrd
♦ Il programma rpc.yppasswdd
• Verificare l'installazione di NIS/NYS
• Problemi comuni con NIS e soluzioni

The Linux NIS(YP)/NYS/NIS+ HOWTO 13


Linux HOWTO − Networking − Sommario

• Filza di Assilli Quotidiani (aka Frequently Asked


Questions)

The Linux PPP HOWTO


• Introduzione
♦ Client e server
♦ Differenze tra le distribuzioni di Linux
♦ Programmi di configurazione del PPP specifici
delle distribuzioni
• Numeri IP
• Scopi di questo documento
♦ Configurazione di un client PPP
♦ Collegare due LAN o una LAN a Internet usando
PPP
♦ Configurazione di un server PPP
♦ L'uso di PPP su una connessione diretta null
modem
♦ Questo documento al momento non tratta...
• Versioni del software trattate
• Altri documenti utili/importanti
♦ Utili mailing list su Linux
• Panoramica di quello che va fatto per usare come client il
PPP
♦ Trovare/installare il software
♦ Compilare il supporto per il PPP nel kernel
♦ Informazioni da chiedere al proprio ISP
♦ Configurare il proprio modem e la porta seriale
♦ Configurare la risoluzione da nome a indirizzo
(DNS)
♦ PPP e Privilegi di root
♦ Verificare i file del PPP della propria distribuzione
e impostare le opzioni del PPP
♦ Se il proprio server PPP usa PAP (Password
Authentication Protocol)
♦ Connettersi a mano a un server PPP
♦ Automatizzare la propria connessione PPP
♦ Chiudere la connessione
♦ Se ci sono problemi
♦ Dopo che la connessione è stabilita
♦ Problemi con i servizi IP standard su una
connessione PPP a numero IP dinamico
• Configurare il proprio kernel di Linux
♦ Installare i sorgenti del kernel di Linux
♦ Riconoscere il proprio hardware
♦ Compilazione del kernel − il kernel di Linux 1.2.13
♦ Compilazione del kernel − i kernel di Linux 1.3.x e
2.0.x
♦ Nota su PPP−2.2 e /proc/net/dev
♦ Considerazioni generali sulla configurazione del
kernel per il PPP
• Quali informazioni si debbono conoscere sul server PPP
• Configurare il proprio modem e la porta seriale
♦ Una nota sulle porte seriali e le loro velocità
♦ Nomi delle porte seriali
♦ Configurare il proprio modem
♦ Note sul controllo del flusso seriale
♦ Verificare il proprio modem per la connessione
• Configurare la risoluzione da nome a indirizzo (DNS)
♦ Il file /etc/resolv.conf

The Linux PPP HOWTO 14


Linux HOWTO − Networking − Sommario

♦ Il file /etc/host.conf
• L'uso di PPP e i privilegi di root
• Impostare i file di connessione PPP
♦ Il file di opzioni tipo options.tpl
♦ Quali opzioni dovrei usare? (No PAP/CHAP)
• Se il proprio server usa PAP (Password Authentication
Protocol)
♦ Usare MSCHAP
♦ Il file secrets di PAP/CHAP
♦ Il file secrets di PAP
♦ Il file secrets di CHAP
♦ Gestione di connessioni multiple autentificate con
PAP
• Instaurare manualmente una connessione PPP
• Automatizzare la propria connessione e creazione degli
script
♦ Script di connessione per l'autentificazione con
Nome utente/Password
♦ Lo script ppp−on
♦ Modificare gli script forniti per l'avvio del PPP
◊ Lo script ppp−on
◊ Lo script ppp−on−dialer
♦ Il significato di uno script di conversazione
(chat)...
◊ L'avvio di PPP dal lato server
♦ Uno script di conversazione per le connessioni
autentificate con PAP/CHAP
♦ Le opzioni "debug" e "file file_opzioni" di
pppd
• Verificare i propri script di connessione
• Chiudere la connessione PPP
• Risoluzione dei problemi
♦ Ho compilato il supporto per il PPP nel kernel,
ma...
◊ Si è fatto il boot con il kernel giusto?
◊ Si è compilato il supporto per il ppp
come modulo?
◊ Si sta usando la versione corretta di
PPP per il proprio kernel?
◊ Si sta eseguendo pppd come root?
♦ Il mio modem si connette ma il ppp non parte mai
♦ Il log di sistema dice ``serial line is not 8
bit clean''
◊ Non ci si è loggati correttamente nel
server
◊ Non si è avviato il PPP nel server
◊ Il processo PPP remoto è lento a partire
♦ Instradamento predefinito non impostato
(Default route not set)
♦ Altri problemi
• Ottenere aiuto quando ormai non si sa più cosa provare
• Problemi comuni una volta che il collegamento funziona
♦ Non riesco a vedere niente oltre al server PPP al
quale mi connetto
♦ Posso spedire email, ma non posso riceverla
♦ Perché la gente non può fare finger, WWW,
gopher, talk nella mia macchina?
• Usare i servizi Internet con numeri IP dinamici
♦ Configurazione dell'email
♦ Configurare un name server locale

The Linux PPP HOWTO 15


Linux HOWTO − Networking − Sommario

• Connettere assieme due reti usando PPP


♦ Impostare i numeri IP
♦ Impostare l'instradamento
♦ Sicurezza di rete
• Dopo che la connessione è attiva: lo script
/etc/ppp/ip−up
♦ Instradamenti speciali
♦ Gestione delle code di posta
♦ Un esempio di script /etc/ppp/ip−up
♦ Gestione delle email
• Usare /etc/ppp/ip−down
• Problematiche di instradamento su una LAN
♦ Note sulla sicurezza
• Configurare un server PPP
♦ Compilazione del kernel
♦ Panoramica del sistema server
♦ Procurarsi il software che serve
♦ Configurare un accesso standard (accesso shell)
♦ Impostare i file delle opzioni di PPP
♦ Impostare pppd per permettere agli utenti di
eseguirlo (con successo)
♦ Impostare un alias globale per pppd
• Usare PPP su una una connessione null modem (seriale
diretta)

DNS HOWTO
• Preambolo
♦ Note legali
♦ Crediti e richieste di aiuto
♦ Dediche
• Introduzione
• Un name server caching only
♦ Far partire named
♦ Migliorarlo ancora
♦ Congratulazioni
• Un semplice dominio
♦ Ma prima un po' di teoria
♦ Il nostro dominio
♦ La zona inversa (reverse zone)
♦ Qualche parola di avvertimento
♦ Perché non funziona il lookup inverso (reverse
lookup)
◊ La zona inversa non è delegata
◊ Vi hanno dato una sottorete classless
• Esempio di un vero dominio
♦ /etc/named.conf (o /var/named/named.conf)
♦ /var/named/root.hints
♦ /var/named/zone/127.0.0
♦ /var/named/zone/land−5.com
♦ /var/named/zone/206.6.177
• Manutenzione
• Convertire dalla versione 4 alla versione 8
• Domande e risposte
• Come diventare un grande amministratore DNS

DNS HOWTO 16
Linux HOWTO − Networking − Sommario

Linux IPCHAINS HOWTO


• Introduzione
♦ Cos'è?
♦ Perché?
♦ Come?
♦ Dove?
• Fondamenti di packet filtering
♦ Cos'è?
♦ Perché?
♦ Come?
◊ Un kernel con il filtraggio dei pacchetti
◊ ipchains
◊ Rendere permanenti le regole
• Instradamento, masquerading, portforwarding, ipautofw...
♦ Le tre linee guida di Rusty al masquerading
♦ Promozione gratuita: WatchGuard
♦ Configurazioni comuni di firewall
◊ Rete privata: proxy tradizionale
◊ Rete privata: proxy trasparente
◊ Rete privata: masquerading
◊ Rete pubblica
◊ Servizi interni limitati
♦ Ulteriori informazioni sul masquerading
• IP Firewall Chains
♦ Come passano i pacchetti attraverso i filtri
◊ Usare ipchains
◊ Operazioni su una sola regola
◊ Specificare il filtraggio
⋅ Specificare gli indirizzi di
provenienza e destinazione
⋅ Specificare una negazione
⋅ Specificare un protocollo
⋅ Specificare porte UDP e TCP
• Specificare tipo e
codice ICMP
⋅ Specificare un'interfaccia
⋅ Specificare solo pacchetti TCP
SYN
⋅ Gestire i frammenti
◊ Effetti collaterali del filtraggio
⋅ Specificare un obiettivo
⋅ Registrazione dei pacchetti
⋅ Manipolare il `Type of Service'
⋅ Marcare un pacchetto
⋅ Operazioni su un'intera catena
⋅ Creare una nuova catena
⋅ Cancellare una catena
⋅ Svuotare una catena
⋅ Elencare le regole in una
catena
⋅ Azzerare i contatori
⋅ Impostare la tattica
◊ Operazioni sul masquerading
◊ Controllare un pacchetto
◊ Più regole in una volta sola e controllare
cosa succede
♦ Un utile esempio
◊ Usare ipchains−save
◊ Usare ipchains−restore

Linux IPCHAINS HOWTO 17


Linux HOWTO − Networking − Sommario

• Miscellanea
♦ Come organizzare le proprie regole firewall
♦ Cosa non filtrare
◊ Pacchetti ICMP
◊ Connessioni TCP al DNS (nameserver)
◊ Incubi da FTP
♦ Filtrare i Ping della Morte
♦ Filtrare Teardrop e Bonk
♦ Filtrare i Fragment Bomb
♦ Cambiare le regole firewall
♦ Come proteggersi dall'IP spoofing?
♦ Progetti avanzati
◊ SPF: Stateful Packet Filtering
◊ L'ftp−data hack di Michael Hasenstein
♦ Estensioni future
• Problemi comuni
♦ ipchains −L si pianta!
♦ Masquerading/Forwarding non funziona!
♦ −j REDIR non funziona!
♦ Non funzionano i caratteri jolly nelle interfacce!
♦ TOS non funziona!
♦ Non funzionano ipautofw e ipportfw!
♦ xosview si è rotto!
♦ Segmentation Fault con `−j REDIRECT'!
♦ Non riesco ad impostare i timeout del
masquerading!
♦ Voglio dei firewall IPX!
• Un esempio più serio
♦ La situazione
♦ Scopi
♦ Prima del filtraggio dei pacchetti
♦ Filtraggio dei pacchetti per i pacchetti di
passaggio
◊ Impostare i salti dalla catena forward
◊ Definire la catena icmp−acc
◊ Da Good (interno) a DMZ (server)
◊ Da Bad (esterno) a DMZ (server)
◊ Da Good (interno) a Bad (esterno)
◊ Da DMZ a Good (interno)
◊ Da DMZ a Bad (esterno)
◊ Da Bad (esterno) a Good (interno)
◊ Filtraggio dei pacchetti per la macchina
Linux stessa
⋅ Interfaccia di Bad (esterno)
⋅ Interfaccia di DMZ
⋅ Interfaccia di Good (interno)
♦ Per finire
• Appendice: differenze tra ipchains e ipfwadm
♦ Tabella di riferimento rapido
♦ Esempi di traduzione di comandi ipfwadm
• Appendice: usare lo script ipfwadm−wrapper
• Appendice: ringraziamenti

Linux IPX−HOWTO
• Introduzione a questo documento
♦ Modifiche dalla versione precedente
♦ Introduzione
• Avvertenza
• Documentazione

Linux IPX−HOWTO 18
Linux HOWTO − Networking − Sommario

♦ Nuove versioni di questo documento


◊ Risorse internazionali
◊ Risorse italiane
♦ Feedback
♦ Mailing list
• Alcuni dei termini utilizzati in questo documento
• Breve discussione sulla topologia di rete IPX
• I file correlati a IPX nel filesystem /proc
• I tool IPX di Greg Page
♦ I tool IPX in maggior dettaglio
• Configurazione della macchina Linux come router IPX
♦ È necessario configurare una rete interna?
• Configurazione della propria macchina Linux come client
NCP
♦ Come ottenere ncpfs
♦ Compilazione di ncpfs per il kernel 1.2.13
♦ Come compilare ncpfs per i kernel 1.3.71++/2.0.*
♦ Configurazione e utilizzo di ncpfs
• Configurazione della macchina Linux come server NCP
♦ Il pacchetto mars_nwe
◊ Capacità di mars_nwe
◊ Come ottenere mars_nwe
◊ Come compilare il pacchetto mars_nwe
♦ Il pacchetto lwared
◊ Capacità di lwared
◊ Come ottenere lwared
◊ Compilazione di lwared
◊ Configurazione e utilizzo di lwared
• Configurazione della macchina Linux come client di
stampa Novell
• Configurazione di una macchina Linux come print server
Novell
♦ Prerequisiti
♦ Configurazione
• Panoramica sui comandi utente e di amministrazione di
ncpfs
♦ Comandi utente
♦ Strumenti per la gestione
• Configurazione di PPP per reti con supporto IPX
♦ Configurazione di un server IPX/PPP
◊ Primi passi
◊ Progettazione
◊ Configurazione di pppd per il server
◊ Verifica della configurazione del server
♦ Configurazione di un client IPX/PPP
◊ Configurazione di pppd per il client
◊ Verifica del client IPX/PPP
• Il tunnel IPX su IP
♦ Come ottenere ipxtunnel
♦ Compilare ipxtunnel
♦ Configurazione di ipxtunnel
♦ Verifica e utilizzo di ipxtunnel
• Supporto commerciale IPX per Linux
♦ Network Desktop di Caldera
• Alcune domande frequenti (FAQ)
• Copyright
• Varie e ringraziamenti

Linux IPX−HOWTO 19
Linux HOWTO − Networking − Sommario

The Linux Intranet Server HOWTO


• Introduzione
♦ Cosa serve
♦ Nuove versioni di questo documento
♦ Critiche e commenti
• Installazione del server HTTP
♦ Preparativi per il prelievo del software
◊ Il sistema operativo
◊ Tipo di processo (ServerType)
◊ Porta abbinata (Port)
◊ Identificativo utente del server (User)
◊ Identificativo di gruppo del server
(Group)
◊ Indirizzo di posta elettronica
dell'amministratore del server
(ServerAdmin)
◊ Cartella di ubicazione del server
(ServerRoot)
◊ Ubicazione dei file HTML
(DocumentRoot)
♦ Compilazione di HTTPd
• Test del funzionamento di HTTPd
• Collegamento al server Linux
♦ Configurazione del server Linux
♦ Configurazione del server Netware
♦ Configurazione dei client Netware
◊ Windows 3.x
◊ Windows 95
♦ Configurazione dei client MS Windows
◊ Windows for Workgroups
◊ Windows 95
◊ Windows NT
♦ Configurazione di TCP/IP sul Macintosh
◊ MacTCP
• Impostazione dell'intranet
♦ NCPFS
◊ Installazione
◊ Montare NCPFS
♦ SMBFS
◊ Installazione
◊ Montare SMBFS
♦ NFS
• Accesso al sito Web
♦ Accesso ai filesystem montati
♦ Collegamento a Internet
♦ Altri utilizzi
• Altre cose da fare
• Riconoscimenti e note legali
♦ Ringraziamenti
♦ Copyright

ISP−Hookup−HOWTO
• Introduzione

♦ Copyright
♦ Disconoscimento
♦ Traduzioni

The Linux Intranet Server HOWTO 20


Linux HOWTO − Networking − Sommario

♦ Nuove versioni di questo documento


♦ Commenti
• Come mi collego al resto del mondo?
♦ La configurazione basilare
• Come faccio a navigare?
• Come faccio a inviare e ricevere posta elettronica?
• News
♦ Come faccio a configurare un news−reader
online?
♦ Come faccio a configurare un news−reader
offline?
♦ Come faccio a configurare C News?
♦ Come faccio a configurare Leafnode?
• Come faccio ad automatizzare la procedura di
connessione?
• Parole finali
♦ Altre cose che dovrei sapere?
• Informazioni specifiche su alcuni Internet Provider
♦ Dove posso imparare di più?
♦ Ringraziamenti

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

Linux HOWTO − Networking 21


MediaMorfosi

GTK+/GNOME Introduzione
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Lo scopo di questo documento è di dare una panoramica delle
possibilità di rete del sistema operativo Linux. Sebbene uno
Risorse dei punti di forza di Linux è il fatto che ci sono moltissime
informazioni disponibili praticamente su ogni cosa, molte di
Feedback queste sono focalizzate sull'implementazione. Molti nuovi
utenti di Linux, in particolare coloro che provengono da un
ambiente Windows, non sono consci delle possibilità di
networking che offre Linux. Questo documento vuole
mostrare una rappresentazione generica di tali possibilità con
una breve descrizione di ognuna di esse e puntatori per avere
ulteriori informazioni. Le informazioni sono state raccolte da
molte fonti: howto, faq, pagine web dei progetti e dalla mia
esperienza personale. Ai diversi autori sono riconosciuti i loro
meriti. Senza di loro e i loro programmi questo documento
non sarebbe stato possibile o necessario.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

Introduzione 22
MediaMorfosi
Linux
GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione


Cos'è Linux?
Risorse L'autore principale di Linux è Linus Torvalds. Sin dalla sua
versione originale, è stato migliorato da un numero
Feedback imprecisato di persone. È un clone, scritto partendo dal nulla,
del sistema operativo UNIX. Uno dei fatti più interessanti su
Linux è che il suo sviluppo avviene contemporaneamente in
tutto il mondo.

Linux è sotto copyright nei termini della GNU General Public


License (GPL). Questa licenza, scritta dalla Free Software
Foundation (FSF), è pensata per impedire a chiunque di
imporre restrizioni sulla distribuzione del software. In breve,
dice che sebbene possano essere richiesti dei soldi per una
copia, alla persona che riceve la copia non può essere
impedito di distribuirla gratuitamente. Ciò significa, inoltre,
che dev'essere reso disponibile il codice sorgente. Questo è
utile per i programmatori. Chiunque può modificare Linux e
persino distribuire le sue mofidiche, a patto che mantenga il
codice sotto il medesimo copyright.

Che cosa rende Linux diverso?


Perché lavorare su Linux? Linux generalmente è più
economico (o almeno non più costoso) di altri sistemi
operativi e frequentemente meno problematico di molti
sistemi commerciali. Ciò che rende Linux diverso, tuttavia,
non è il suo prezzo (dopo tutto, chi vorrebbe un sistema
operativo, anche se fosse gratis, se non funzionasse bene?) ma
le sue notevoli possibilità:

• Linux è un vero sistema operativo multitasking a 32


bit, abbastanza robusto e potente da essere usato da
università fino a grosse aziende.
• Funziona su vecchie macchine 386 fino a macchine
con parallelismo massiccio dei centri di ricerca.
• Sono disponibili versione pronte all'uso per
architetture Intel/Alpha/Sparc, e supporto
sperimentale per Power PC e sistemi embedded oltre a
molti altri (SGI, Ultra Sparc, AP1000+, Strong ARM,
MIPS R3000/R4000...)
• Per finire, quando si vuole fare qualcosa in rete, Linux
è la scelta giusta. Non solo perché la rete è
strettamente integrata nel S.O. stesso e sono
liberamente disponibili una pletora di applicazioni, ma
soprattutto per la sua robustezza anche sotto carichi

Linux 23
Linux HOWTO − Networking − Sommario

elevati che è potuta essere stata raggiunta solo dopo


anni di debug e di test nel progetto Open Source.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 24


Protocolli di rete
Linux supporta molti protocolli di rete diversi:

TCP/IP
L'Internet Protocol è stato sviluppato una ventina di anni fa dal Dipartimento della
Difesa (DoD) degli Stati Uniti, principalmente con lo scopo di connettere computer
di diverse marche. La suite di protocolli TCP/IP permette, attraverso la sua struttura
a strati, di isolare le applicazioni dall'hardware di rete.

Sebbene sia basato sul modello a strati, è focalizzato più sulla distribuzione della
interconnettività che sull'aderenza rigida agli strati funzionali. Questo è una delle
ragioni per cui di fatto TCP/IP, piuttosto che OSI, è diventato il protocollo di
internetworking standard.

Il networking TCP/IP è stato presente in Linux sin dagli inizi. È stato implementato
partendo da zero. È una delle implementazioni più robuste, veloci e affidabili e uno
dei fattori chiave del successo di Linux.

HOWTO Collegato: http://metalab.unc.edu/mdw/HOWTO/NET−3−HOWTO.html

TCP/IP versione 6
IPv6, qualche volta detto anche IPng (IP Next Generation) è un aggiornamento del
protocollo IPv4 indirizzato alla risoluzione e al miglioramento di diversi fattori. Fra
questi: la scarsità di indirizzi IP disponibili, la mancanza di un meccanismo per
gestire traffico sensibile all'orario, la mancanza di sicurezza a livello di rete, ecc.

L'incremento nello spazio di indirizzamento sarà accompagnato da uno schema di


indirizzamento espanso, che avrà un grande impatto sulle prestazioni
dell'instradamento. Per Linux esiste già un implementazione beta e una versione
stabile è attesa per la versione 2.2.0 del kernel Linux.

• Linux IPv6 HOWTO: http://www.terra.net/ipv6/linux−ipv6.faq.htm


• IPv6 start page: http://playground.sun.com/pub/ipng/html/ipng−main.html

IPX/SPX
IPX/SPX (Internet Packet Exchange/Sequenced Packet Exchange) è uno stack di
protocollo proprietario sviluppato da Novell e basato sul protocollo Xerox Network
Systems (XNS). IPX/SPX è diventato importante nei primi anni '80 come parte
integrante di NetWare della Novell Inc. NetWare è diventato lo standard de facto ne
sistemi operativi di rete (NOS − Network Operating System) della prima
generazione di LAN. Novell ha completato il suo NOS con una suite di applicazion
orientate al business e con utilità di connessione per il lato client.

Protocolli di rete 25
Linux HOWTO − Networking − Sommario

Linux ha un'implementazione di IPX/SPX molto elegante, che gli permette di essere


configurato come

• IPX router
• IPX bridge
• NCP client e/o NCP Server (per la condivisione dei file)
• Novell Print Client, Novell Print Server

E di:

• Abilitare PPP/IPX, permettendo a una macchina Linux di comportarsi sia


come client sia come server PPP.
• Tunnelling IPX attraverso IP, che permette la connessione di due reti IPX
attraverso un semplice collegamento IP.

Inoltre, http://www.caldera.comCaldera offre il supporto commerciale per Novell


Netware sotto Linux. Caldera fornisce un client Novell NetWare completo basato su
tecnologia sotto licenza di Novell Corporation. Il client fornisce una completa
accessibilità ai server di file basati su Novell 3.x e 4.x e include caratteristiche quali
il Servizio di Directory NetWare (NDS) e la crittografia RSA.

• IPX HOWTO: http://metalab.unc.edu/mdw/HOWTO/IPX−HOWTO.html

Suite di protocolli AppleTalk


Appletalk è il nome dello stack di rete della Apple. Permette un modello di rete
paritetico, fornendo funzionalità di base come la condivisione di file e stampanti.
Ogni macchina può funzionare simultaneamente sia come un client che come server
e sia il software che l'hardware necessari sono inclusi in qualsiasi computer Apple.

Linux fornisce supporto completo per le reti Appletalk. Netatalk è l'implementazion


a livello kernel dell'Appletalk Protocol Suite, derivata da sistemi BSD. Include il
supporto per l'instradamento Appletalk, la condivisione di filesystem Unix e AFS su
AFP (AppleShare), la condivisione di stampanti Unix e l'accesso a stampanti
Appletalk tramite PAP.

Si veda la sezione 5.1 per maggiori informazioni.

WAN Networking: X.25, Frame−relay, ecc...


Molte terze parti forniscono prodotti T−1, T−3, X.25 e Frame Relay per Linux. In
genere è necessario hardware specifico per questi tipi di connessione. I produttori
che forniscono l'hardware procurano anche i driver per il supporto del protocollo.

• Risorse WAN: http://www.secretagent.com/networking/wan.html

Suite di protocolli AppleTalk 26


Linux HOWTO − Networking − Sommario

ISDN
Il kernel Linux ha al suo interno il supporto per ISDN. Isdn4linux controlla le sched
ISDN per PC e può emulare un modem con l'insieme dei comandi Hayes (i comand
"AT"). Le possibilità vanno dal semplice uso di un programma di terminale per
connessioni via HDLC (usando il dispositivo incluso), alla completa connessione
Internet via PPP fino alle applicazioni audio.

• FAQ per isdn4linux:


http://www.lrz−muenchen.de/~ui161ab/www/isdn/faq_e.html

PPP, SLIP, PLIP


Il kernel Linux ha al suo interno il supporto per PPP (Point−to−Point−Protocol −
Protocollo Punto Punto), SLIP (Serial Line IP − IP su Linea Seriale) e PLIP (Paralle
Line IP − IP su Linea Parallela). PPP è il metodo più popolare usato dai singoli
utenti per accedere al proprio ISP (Internet Service Provider). PLIP permette di
effettuare in maniera economica una connessione fra due macchine. Usa la porta
parallela ed un cavo speciale, raggiungendo velocità che vanno da 10kBps fino a
20kBps.

• http://metalab.unc.edu/mdw/HOWTO/PPP−HOWTO.htmlLinux PPP
HOWTO
• http://metalab.unc.edu/mdw/HOWTO/mini/SLIP−PPP−Emulator.htmlPPP/
emulator
• Informazioni su PLIP possono essere trovate in
http://metalab.unc.edu/mdw/LDP/nag/nag.htmlThe Network Administrator
Guide

Radioamatori
Il kernel Linux ha al suo interno il supporto per i protocolli dei radioamatori.

Di particolare interesse è il supporto AX.25. Il protocollo AX.25 offre modi di


funzionamento sia in maniera connessa (connected) che non connessa
(connectionless), ed è usato o per una connessione punto punto oppure per
trasportare altri protocolli come TCP/IP e NetRom.

La sua struttura è simile a X.25 livello 2, con alcune estensioni per renderlo più utile
in ambito radioamatoriale.

• http://metalab.unc.edu/mdw/HOWTO/HAM−HOWTO.htmlAmateur radio
HOWTO

ATM
Il supporto ATM per Linux attualmente è in uno stato pre alpha. C'è una release
sperimentale che supporta connessioni ATM raw (PVC e SVC), IP su ATM,

ISDN 27
Linux HOWTO − Networking − Sommario

emulazione di LAN...

• Linux http://lrcwww.epfl.ch/linux−atm/ATM−Linux home page

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 28


Hardware di rete supportato
Linux supporta una grande varietà di hardware di rete, compreso molto
hardware ormai obsoleto.

Alcuni documenti interessanti:

• http://metalab.unc.edu/mdw/HOWTO/Hardware−HOWTO.htmlHardware
HOWTO
• http://metalab.unc.edu/mdw/HOWTO/Ethernet−HOWTO.htmlEthernet
HOWTO

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Hardware di rete supportato 29


Risorse
Condivisione di file e stampanti
Feedback
La scopo primario di molte reti locali (Local Area Network) basate su PC è di fornir
ai propri utenti la condivisione dei servizi di stampa e di accesso ai file. Linux è una
grande soluzione ai server aziendali per tali servizi.

Ambiente Apple
Come evidenziato nelle precedenti sezioni, Linux supporta la famiglia di protocolli
Appletalk. Il netatalk di Linux permette ai client Macintosh di vedere i Sistemi Linu
come altri Macintosh nella rete, condividere file e usare stampanti connesse ai serve
Linux.

FAQ e HOWTO su netatalk:

• http://thehamptons.com/anders/netatalk/
• http://www.umich.edu/~rsug/netatalk/
• http://www.umich.edu/~rsug/netatalk/faq.html

Ambiente Windows
Samba è una suite di applicazioni che permette a molti Unix (e in particolare a Linu
di integrarsi in una rete Microsoft sia come client sia come server. Funzionando da
server si permette ai client Windows 95, Windows for Workgroups, DOS e Window
NT di accedere ai file e ai servizi di stampa di Linux. Può sostituire completamente
Windows NT per i servizi sui file e sulla stampa, incluso il download automatico ne
client dei driver di stampa. Funzionando come client permette alla workstation Linu
di montare localmente le condivisioni esportate di Windows.

Secondo la SAMBA Meta−FAQ:

"Molti utenti dicono che rispetto ad altre implementazioni di SMB,


Samba è più stabile, veloce e compatibile con più client. Gli
amministratori di alcune grosse installazioni dicono che Samba è
il solo server SMB che può essere scalato da molte decine a
migliaia di utenti senza andare in crash"

• http://samba.anu.edu.au/samba/Samba project home page


• http://metalab.unc.edu/mdw/HOWTO/SMB−HOWTO.htmlSamba HOWTO
• http://metalab.unc.edu/mdw/HOWTO/Printing−HOWTO.htmlPrinting
HOWTO

Ambiente Novell
Come evidenziato nei paragrafi precedenti, Linux può essere configurato per
funzionare sia come client sia come server NCP, fornendo quindi il servizio di
condivisione di file e stampanti in una rete Novell sia per client Unix sia per client
Novell.

Condivisione di file e stampanti 30


Linux HOWTO − Networking − Sommario

• http://metalab.unc.edu/mdw/HOWTO/IPX−HOWTO.htmlIPX HOWTO

Ambiente UNIX
La modalità preferenziale per la condivisione dei file in una rete UNIX è tramite NF
NFS sta per Network File Sharing ed è un protocollo inizialmente sviluppato da Sun
Microsystems. È un metodo per condividere file attraverso più macchine come se
fossero locali. Un client ``monta'' un file system ``esportato'' da un server NFS. Il
filesystem così montato apparirà alla macchina client come fosse parte del filesystem
locale.

È possibile montare il filesystem di root all'avvio, permettendo quindi il boot e


l'accesso a tutti i file di un server a client diskless. In parole povere, è possibile aver
macchine completamente funzionananti senza che queste abbiano un disco fisso.

Coda è un file system di rete (come NFS) che supporta, tra le altre cose, il
funzionamento senza connessione e la cache permanente. È incluso nei kernel 2.2.x
Molto utile per reti lente o poco affidabili e per i portatili.

Documenti relativi a NFS:

• http://metalab.unc.edu/mdw/HOWTO/mini/NFS−Root.html
• http://metalab.unc.edu/mdw/HOWTO/mini/Diskless.html
• http://metalab.unc.edu/mdw/HOWTO/mini/NFS−Root−Client.html
• http://www.redhat.com/support/docs/rhl/NFS−Tips/NFS−Tips.html
• http://metalab.unc.edu/mdw/HOWTO/NFS−HOWTO.html

Coda può essere reperito a http://www.coda.cs.cmu.edu

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Ambiente UNIX 31
Open Source Definition

GNU General Public License Internet/intranet


La cattedrale e il bazaar
Linux è una grande piattaforma per il funzionamento come Server
Colonizzare la noosfera Internet/intranet. Il termine intranet fa riferimento all'applicazione delle
Il calderone magico tecnologie di Internet dentro a un azienda, principalmente con lo scopo di
distribuire e rendere disponibili informazioni all'interno della società. I
Libri: servizi Internet e intranet offerti da Linux comprendono, tra gli altri, server
per email, news e WWW e molti altri che saranno spiegati nei paragrafi
Italian crackdown successivi.
Open Sources

MediaMorfosi E−Mail
GTK+/GNOME
sviluppo applicazioni Server E−Mail
Linux HOWTO: Installazione e configurazione
Sendmail è di fatto il programma server per la posta elettronica standard per
Risorse piattaforme UNIX. È robusto, scalabile e, adeguatamente configurato e
dotato dell'hardware necessario, può gestire carichi di migliaia di utenti
Feedback senza fare una piega. Altri server di e−mail (MTA − Mail Transport Agent
− Agenti di Trasporto della Posta) sono, per esempio, smail e qmail,
entrambi progettati come rimpiazzo per sendmail.

• http://www.sendmail.org/Sito web di Sendmail


• http://www.sbay.org/smail−faq.htmlSmail faq
• http://www.qmail.orgQmail web site

Mail HOWTO:

• http://metalab.unc.edu/mdw/HOWTO/Mail−HOWTO.html
• http://metalab.unc.edu/mdw/HOWTO/mini/Qmail+MH.html
• http://metalab.unc.edu/mdw/HOWTO/mini/Sendmail+UUCP.html
• http://metalab.unc.edu/mdw/HOWTO/mini/Mail−Queue.html

Accesso remoto alla posta

In un'azienda o in un ISP, gli utenti vorranno accedere alla loro posta in


maniera remota dalle loro postazioni di lavoro. In Linux esistono diverse
alternative, tra cui i server POP (Post Office Protocol) e IMAP (Internet
Message Access Protocol). Il protocollo POP solitamente è usato per
trasferire messaggi dal server al client. IMAP permette anche la
manipolazione dei messaggi nel server, la creazione e cancellazione remota
di folder (cartelle di posta) nel server, l'accesso concorrente a folder
condivisi, ecc.

• http://www.imap.org/imap.vs.pop.brief.htmlBreve confronto tra


IMAP e POP (in inglese)

HOWTO relativi all'email:

Internet/intranet 32
Linux HOWTO − Networking − Sommario

• http://metalab.unc.edu/mdw/HOWTO/Mail−HOWTO.html
• http://metalab.unc.edu/mdw/HOWTO/mini/Cyrus−IMAP.html

Mail User Agent

In Linux esistono diversi MUA (Mail User Agent), sia grafici che testuali.
Fra i più usati ci sono: pine, elm, mutt e Netscape.

• http://www.linuxlinks.com/Software/Internet/Mail/Elenco del
software relativo all'email
• http://metalab.unc.edu/mdw/HOWTO/mini/TkRat.html

Software per mailing list

Ci sono molti programmi di MLM (Mail List Management − Gestione di


Mail List) disponibili per i generici UNIX e in particolare per Linux.

• Un buon confronto tra i diversi MLM può essere reperito a:


ftp://ftp.uu.net/usenet/news.answers/mail/list−admin/
• http://www.lsoft.com/Listserv
• http://www.greatcircle.com/majordomo/Majordomo home page

Fetchmail

Un utile programma per la posta è fetchmail. Ha molte funzionalità, è


robusto, ben documentato e gratuito. È stato pensato per essere usato su
collegamenti TCP/IP provvisori (come ad esempio nelle connessioni SLIP o
PPP). Supporta ogni protocollo di posta remota in uso attualmente su
Internet. Può supportare anche IPv6 e IPSEC.

Fetchmail recupera la posta dal server di posta remoto e la inoltra via


SMTP, in modo che possa essere letta dai normali agenti di posta quali
mutt, elm o BSD Mail. Possiede tutte le capacità di filtraggio, inoltro e
aliasing del sistema MTA per lavorare come con la posta normale.

Fetchmail può essere usato come gateway da POP/IMAP a SMTP per


l'intero dominio DNS, riunendo la posta da una singola mailbox su un ISP e
inoltrandola via SMTP basandosi sugli indirizzi degli header.

Una piccola azienda potrebbe centralizzare la sua posta in una singola


mailbox e programmare fetchmail per riunire tutta la posta uscente, inviarla
su Internet e recuperare quella entrante.

• http://sagan.earthspace.net/ esr/fetchmail/Fetchmail home page

Server Web
La maggior parte delle distribuzioni di Linux includono
http://www.apache.orgApache. Apache è il server numero uno in Internet

Mail User Agent 33


Linux HOWTO − Networking − Sommario

http://www.netcraft.co.uk/survey/ dove più di metà dei siti Internet usano


Apache o un suo derivato. Tra i vantaggi di Apache si hanno la sua
modularità, stabilità e velocità. Dotato di hardware appropriato e
opportunamente configurato può supportare i carichi più elevati: Yahoo,
Altavista, GeoCities, Hotmail sono basati su versioni personalizzate di
questo server.

Il supporto opzionale per SSL (che abilita le transizioni sicure) è disponibile


a:

• http://www.apache−ssl.org/
• http://raven.covalent.net/
• http://www.c2.net/

HOWTO collegati:

• http://metalab.unc.edu/mdw/HOWTO/WWW−HOWTO.html
• http://metalab.unc.edu/mdw/HOWTO/Virtual−Services−HOWTO.html
• http://metalab.unc.edu/mdw/HOWTO/Intranet−Server−HOWTO.html
• http://www.linuxlinks.com/Software/Internet/WebServers/Web
server per Linux

Browser Web
Per la piattaforma Linux esistono diversi browser web. Netscape Navigator
è una delle possibili scelte sin dall'inizio e il sopraggiungente Mozilla
(http://www.mozilla.org) avrà una versione Linux. Un altro popolare
browser web testuale è lynx. È veloce e maneggevole quando non è
disponibile alcun ambiente grafico.

• http://www.linuxlinks.com/Software/Internet/WebBrowsers/Software
browser per Linux
• http://metalab.unc.edu/mdw/HOWTO/mini/Public−Web−Browser.html

Server e client FTP


FTP sta per File Transfer Protocol (Protocollo di Trasferimento File). Un
server FTP permette ai client di connettersi e di recuperare (scaricare) file.
Per Linux esistono molti server e client ftp e sono solitamente inclusi nella
maggior parte delle distribuzioni. Esistono sia client testuali che grafici. Il
software (server e client) relativo all'FTP per Linux può essere trovato a:
http://metalab.unc.edu/pub/Linux/system/network/file−transfer/

Servizio news
Usenet (noto anche come news) è un grande sistema a bacheca (BBS)
organizzato gerarchicamente che ricopre ogni genere di argomento. Una
rete di computer su Internet (Usenet) scambia articoli attraverso il
protocollo NNTP. Ne esistono molte implementazioni per Linux, sia per siti

Browser Web 34
Linux HOWTO − Networking − Sommario

con un alto carico sia per siti che ricevono solo pochi newsgroup.

• http://www.isc.org/INN home page


• http://www.linuxlinks.com/Software/Internet/News/Software Linux
per le news

Domain Name System


Il lavoro di un server DNS è quello di tradurre nomi (leggibili per gli esseri
umani) in indirizzi IP. Un server DNS non conosce tutti gli indirizzi IP al
mondo; piuttosto è in grado di effettuare richieste ad altri server in caso di
indirizzi sconosciuti. Il server DNS allora restituirà all'utente l'indirizzo IP
desiderato oppure dirà che il nome non può essere trovato nelle tabelle.

Il name serving su Unix (e sulla maggioranza dei sistemi in Internet) è


svolto da un programma chiamato named, che fa parte del pacchetto
integrato dell'Internet Software Consortium.

• http://www.isc.org/BIND
• http://metalab.unc.edu/mdw/HOWTO/DNS−HOWTO.htmlDNS
HOWTO

DHCP, bootp
DHCP e bootp sono protocolli che permettono a una macchina client di
ottenere informazioni sulla rete (come per esempio il proprio indirizzo IP)
da un server. Molte organizzazioni hanno iniziato a usarli in quanto
facilitano l'amministrazione specialmente in grandi reti o in reti che hanno
un gran numero di utenti mobili.

Documenti correlati:

• http://metalab.unc.edu/mdw/HOWTO/mini/DHCP.htmlDHCP
HOWTO

NIS
Il Network Information Service (NIS, o servizio di informazione di rete)
fornisce un semplice servizio di consultazione di rete consistente in
database e processi. Il suo scopo è quello di fornire informazioni, che
devono essere conosciute da un capo all'altro della rete, a tutte le macchine
sulla rete stessa. Esso permette, per esempio, che una persona possa
effettuare il login su una qualsiasi macchina sulla quale giri NIS senza
bisogno che l'amministratore di sistema debba aggiungere una voce per la
password per ogni macchina, ma solo nel database principale.

HOWTO correlato:

Domain Name System 35


Linux HOWTO − Networking − Sommario

• http://metalab.unc.edu/mdw/HOWTO/NIS−HOWTO.htmlNIS
HOWTO

Autenticazione
Ci sono molti modi di autenticare gli utenti in reti miste

• Linux/WindowsNT:
http://www.mindware.com.au/ftp/smb−NT−verify.1.1.tar.gz
• Il PAM (pluggable authentication module) che è un sistema
flessibile di autenticazione UNIX:
http://www.kernel.org/pub/linux/libs/pam/index.htmlPAM library.
• Infine, http://www.umich.edu/ dirsvcs/ldap/index.htmlLDAP in
Linux

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME

Autenticazione 36
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Esecuzione remota di applicazioni


Risorse Una delle caratteristiche più affascinanti di Unix (e una delle più sconoscite ai
nuovi utenti) è il grande supporto per l'esecuzione remota e distribuita di
Feedback applicazioni.

Telnet
Telnet è un programma che permette a una persona di usare un computer
remoto come se si trovasse veramente su quella macchina. Telnet è uno degli
strumenti più potenti di UNIX, che permette una reale amministrazione da
remoto. È anche un programma interessante dal punto di vista degli utenti,
poiché permette l'accesso remoto a tutti i loro file e programmi da qualsiasi
parte di Internet. Combinato con un X server, non c'è nessuna differenza
(trascurando il ritardo) tra essere in console o in qualsiasi altra parte del
pianeta. I demoni e client telnet sono disponibili con la maggior parte delle
distribuzioni di Linux.

Sessioni shell remote sono possibili attraverso SSH (http://www.cs.hut.fi/ssh/)


che quindi permette l'effettiva amministrazione sicura in remoto.

• http://metalab.unc.edu/pub/Linux/system/network/telnet/Software
relativo a Telnet

Comandi remoti
In Unix, e in particolar modo in Linux, esistono comandi remoti che
permettono l'interazione con altri computer dal prompt della shell. Esempi
sono: rlogin, che permette di accedere a una macchina remota in maniera simile
al telnet, rcp, che permette trasferimenti remoti di file fra macchine, ecc. Infine,
il comando di shell remoto rsh permette l'esecuzione di un comando su una
macchina remota senza dover accedere a tale macchina.

X−Window
Il sistema X−Window è stato sviluppato al MIT alla fine degli anni '80 ed è
rapidamente diventato il sistema standard di gestione finestre nelle workstation
grafiche UNIX. Questo software è liberamente disponibile, molto versatile e
adattabile a una gran varietà di piattaforme hardware. Consiste di due parti
distinte: il server X e uno o più client X. È importante capire la distinzione fra
il server e il client. Il server controlla direttamente il display ed è responsabile
di tutto l'input/output della tastiera, del mouse o del display. I client, d'altra
parte, non accedono direttamente allo schermo, ma comunicano col server, che
gestisce tutti gli I/O. Sono i client che svolgono il lavoro ``reale'' di calcolo,
facendo girare applicazioni e quant'altro. I client comunicano col server
causando l'apertura, da parte di quest'ultimo, di una o più finestre per gestire
l'input−output di ogni client.

Esecuzione remota di applicazioni 37


Linux HOWTO − Networking − Sommario

Brevemente, il sistema X−Window permette a un utente di connettersi a una


macchina remota, eseguire un processo (per esempio aprire un browser Web) e
avere l'output mostrato sulla propria macchina. Poiché il processo è attualmente
eseguito sul server, è necessaria poca potenza di calcolo da parte della CPU del
client. È quindi possibile avere computer il cui scopo principale è quello di
agire come puri client X−Window; essi sono conosciuti come terminali−X.

Esiste per Linux una versione gratuita del sistema X−Window che può essere
trovata in: http://www.xfree86.org/Xfree. Essa è normalmente inclusa nella
maggior parte delle distribuzioni Linux.

HOWTO correlati:

• http://metalab.unc.edu/mdw/HOWTO/mini/Remote−X−Apps.htmlHow−to
per applicazioni X remote

VNC
VNC sta per Virtual Network Computing. Esso è, essenzialmente, un sistema
di visualizzazione remota che permette di vedere un ambiente di calcolo `a
scrivania' (desktop) non solo sulla macchina ove esso sta girando, ma ovunque
su Internet e su una gran quantità di architetture differenti. Esistono per Linux,
così come per molte altre piattaforme, sia il client che il server. È possibile
eseguire MS−Word in una macchina Windows NT o 95 e avere l'output
mostrato su di una macchina Linux. È anche possibile l'opposto, cioè eseguire
un'applicazione su una macchina Linux e avere l'output mostrato su un'altra
macchina Linux o Windows. Esiste un client Java che permette di far girare il
display remoto all'interno di un web browser. Infine c'è una versione per Linux
che usa le librerie grafiche SVGAlib, permettendo ai 386 con solo 4Mb di
RAM di diventare terminali X perfettamente funzionanti.

• http://www.uk.research.att.com/vncSito web di VNC

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

VNC 38
Linux−FAQ
Interconnessioni di rete
Documenti:

Open Source Definition


Le funzionalità di rete di Linux sono ricche di possibilità: una stazione Linux può
essere configurata in modo da comportarsi come router, bridge ecc... Alcune delle
GNU General Public License possibili opzioni sono descritte di seguito.
La cattedrale e il bazaar

Colonizzare la noosfera Router


Il calderone magico
Il kernel di Linux ha un supporto integrato per le funzioni di instradamento (routing
Libri:
Una stazione Linux può comportarsi come router sia IP che IPX a una frazione del
costo di un router commerciale. I recenti kernel includono speciali funzioni per
Italian crackdown macchine configurate per agire principalmente come router:
Open Sources
• Multicasting: Permette alla macchina Linux di agire come router per pacche
MediaMorfosi IP che hanno diversi indirizzi di destinazione. Ciò è necessario in MBONE,
GTK+/GNOME una rete a larga banda alla base di Internet che trasporta diffusioni audio e
sviluppo applicazioni video.
Linux HOWTO: Installazione e configurazione
• Regole di routing IP: Normalmente un router decide cosa fare di un pacchet
ricevuto basandosi unicamente sull'indirizzo di destinazione finale del
Risorse pacchetto ma può anche tener conto dell'indirizzo di provenienza e del
dispositivo di rete dal quale gli è pervenuto il pacchetto.
Feedback
Ci sono dei progetti che mirano a costruire un router Linux perfettamente funzionan
in un floppy disk: http://www.linuxrouter.orgLinux router project

Bridge
Il kernel di Linux ha un supporto integrato per agire come un bridge Ethernet, il che
significa che i differenti segmenti Ethernet ai quali è connesso appariranno come
un'unica Ethernet ai partecipanti. Usando l'algoritmo a misurazione di albero
IEEE802.1, molti bridge possono funzionare insieme per formare reti ancora più
estese. Allo stesso modo i bridge Linux funzioneranno correttamente con altri bridg
prodotti da terze parti. Programmi aggiuntivi permettono il filtraggio basato su
indirizzi IP, IPX o MAC.

HOWTO correlati:

• http://metalab.unc.edu/mdw/HOWTO/mini/Bridge+Firewall.htmlBridge+F
• http://metalab.unc.edu/mdw/HOWTO/mini/Bridge.htmlBridge

Mascheramento−IP
Il mascheramento−IP è una funzione di rete ancora in sviluppo. Se un host Linux è
connesso a Internet col mascheramento−IP abilitato e altri computer si connettono a
esso (sia dalla stessa LAN sia dall'esterno tramite modem), questi possono benissim
connettersi ad Internet a loro volta benché non abbiano indirizzi IP ufficialmente
assegnati. Ciò permette una riduzione dei costi (dal momento che molte persone
possono accedere a Internet usando una singola connessione modem) e contribuisce

Interconnessioni di rete 39
Linux HOWTO − Networking − Sommario

incrementare la sicurezza (in qualche modo la macchina si comporta come un firew


dal momento che gli indirizzi non ufficiali assegnati non possono essere raggiunti
dall'esterno della rete).

Pagine e documenti relativi al mascheramento−IP:

• http://ipmasq.home.ml.org/
• http://www.indyramp.com/masq/links.pfhtml
• http://metalab.unc.edu/mdw/HOWTO/mini/IP−Masquerade.html

Accounting IP
Con questa opzione del kernel di Linux si può tener traccia del traffico di rete IP,
registrare i pacchetti e produrre delle statistiche. Possono essere definite una serie d
regole in modo che, quando un pacchetto rispecchia un certo modello venga
incrementato un contatore oppure tale pacchetto sia accettato, rifiutato ecc...

Aliasing IP
Questa caratteristica del kernel dà la possibilità di assegnare più indirizzi di rete per
stesso driver di dispositivo di rete a basso livello (ad esempio due indirizzi IP per un
stessa scheda Ethernet). È tipicamente usata per quei servizi che si comportano
diversamente a seconda dell'indirizzo che vedono (ad esempio ``multihosting'' o
``virtual domains'' o ``virtual hosting services'').

HOWTO Collegati:

• http://metalab.unc.edu/mdw/HOWTO/mini/IP−Alias.htmlIP Aliasing
HOWTO

Controllo del traffico


Il controllore del traffico è un dispositivo di rete virtuale che rende possibile limitar
l'entità del flusso di dati uscente verso un'altro dispositivo di rete. Questo è utile
specialmente in quegli scenari (come per ISP), nei quali è desiderabile una politica d
controllo circa quanta larghezza di banda è usata da ogni client. Una differente
alternativa (valida solo per i servizi Web) potrebbe essere l'utilizzo di certi moduli d
Apache che pongono restrizioni sul numero di connessioni IP del client o sulla
larghezza di banda usata.

• http://metalab.unc.edu/mdw/HOWTO/NET−3−HOWTO.html#ss6.15

Firewall
Un firewall è un dispositivo che protegge una rete privata dalla parte pubblica (l'inte
Internet). È disegnato per controllare il flusso dei pacchetti basandosi sulle
informazioni di origine, destinazione, porta e tipo contenute in ogni pacchetto.

Accounting IP 40
Linux HOWTO − Networking − Sommario

Esistono per Linux diversi programmi per il firewall, oltre al supporto integrato nel
kernel, come TIS e SOCKS, che sono molto completi e, combinati con altri strumen
permettono il blocco e la reindirizzazione di ogni tipo di traffico e protocollo. Posso
essere adottate diverse politiche attraveso file di configurazione o programmi a
interfaccia grafica.

• http://www.tis.comTIS home page


• http://www.socks.nec.com/socksfaq.htmlSOCKS
• http://metalab.unc.edu/mdw/HOWTO/Firewall−HOWTO.htmlFirewall
HOWTO

Re−invio su porta (port forwarding)


Un numero sempre crescente di siti Web stanno diventando interattivi grazie ai
cgi−bin e agli applet Java che accedono a database o ad altri sevizi. Dal momento ch
tale accesso potrebbe portare a problemi di sicurezza, la macchina che contiene il
database non dovrebbe essere connessa direttamente a Internet.

Il re−invio su porta può fornire una soluzione quasi ideale a questo problema di
accesso: sul firewall, i pacchetti IP che arrivano a uno specifico numero di porta,
possono essere riscritti e re−inviati al server interno che fornisce il servizio attuale.
pacchetti di risposta provenienti dal server interno sono riscritti in modo da farli
apparire come provenienti dal firewall.

Informazioni sul re−invio su porta possono essere trovate


http://www.ox.compsoc.net/ steve/portforwarding.htmlqui

Bilanciamento del carico


L'esigenza di avere un bilanciamento del carico sorge di solito per accessi a Web o a
database quando molti client emettono richieste contemporanee a un server. Sarebbe
auspicabile disporre di un certo numero di server identici e indirizzare le successive
richieste a quello di volta in volta meno carico. Ciò può essere ottenuto attraverso la
tecnica di Network Address Translation (traduzione di indirizzi di rete) (NAT) della
quale il mascheramento IP è un sottoinsieme. Gli amministratori di rete possono
sostituire un singolo server che fornisce servizi Web − o qualsiasi altra applicazione
con un insieme di server logici che condividono un indirizzo IP comune. Le
connessioni entranti sono dirette verso un server particolare seguendo un algoritmo
bilanciamento del carico. Il server virtuale riscrive i pacchetti entranti e uscenti in
modo che i client abbiano un accesso trasparente al server come se ne esistesse uno
solo.

Informazioni sull'IP−NAT di Linux possono essere trovate


http://www.csn.tu−chemnitz.de/ mha/linux−ip−nat/diplom/qui

EQL
EQL è integrato all'interno del kernel Linux. Se esistono due connessioni seriali ver
qualche altro computer (solitamente ciò richiede la disponibilità di due modem e di

Re−invio su porta (port forwarding) 41


Linux HOWTO − Networking − Sommario

due linee telefoniche) e su di esse sono usati SLIP e PPP (protocolli per l'invio di
traffico Internet su linee telefoniche), usando questo driver è possibile far sì che que
si comportino come un'unica connessione a velocità doppia. Ovviamente, dev'essere
supportato a entrambi gli estremi della connessione.

• http://metalab.unc.edu/mdw/HOWTO/NET−3−HOWTO−6.html#ss6.2

Proxy Server
Il termine proxy significa ``fare qualcosa per conto di qualcun'altro''. In termini di
networking, un server proxy può agire per conto di molti client. Un proxy HTTP è u
macchina che riceve le richieste di pagine Web da un'altra macchina (Macchina A).
proxy ottiene la pagina richiesta e restituisce il risultato alla Macchina A. Il proxy p
avere una cache con le pagine richieste, cosicché se un'altra macchina chiede la stes
pagina le viene restituita la copia in cache. Ciò permette l'uso efficiente delle risorse
banda e tempi di risposta minori. Come effetto collaterale, poiché le macchine clien
non sono direttamente connesse al mondo esterno, questo è un modo per rendere
sicura la rete interna. Un proxy ben configurato può essere tanto efficiente quanto u
buon firewall.

Esistono diversi proxy server per Linux. Una soluzione molto popolare è il modulo
proxy di Apache. Una implementazione più completa e robusta di proxy HTTP è
SQUID.

• http://www.apache.orgApache
• http://squid.nlanr.net/Squid

Composizione su richiesta
Lo scopo della composizione su richiesta è quello di far sembrare, in modo
trasparente, che gli utenti abbiano una connessione permanente a un sito remoto. Di
solito c'è un demone che controlla il traffico di pacchetti: quando ne riceve uno
interessante (l'interesse di un paccheto è definito da una serie di regole, priorità e
permessi) stabilisce una connessione col termine remoto. Quando il canale è inopero
per un certo periodo di tempo, fa cadere la connessione.

• http://metalab.unc.edu/mdw/HOWTO/mini/Diald.htmlDiald HOWTO

Tunnelling, IP mobile e reti private virtuali


Il kernel di Linux permette il tunnelling (incapsulamento) di protocolli. Ad esempio
può incapsulare il protocollo IPX dentro il protocollo IP, permettendo la connession
di due reti IPX attraverso un collegamento solo IP. Si può anche fare tunnelling IP−
cosa essenziale per il supporto degli indirizzi IP mobili e della diffusione multipla e
per i radioamatori. (Vedere
http://metalab.unc.edu/mdw/HOWTO/NET−3−HOWTO−6.html#ss6.13.)

L'IP mobile introduce miglioramenti nel protocollo che permettono l'instradamento


trasparente di datagrammi IP verso nodi di Internet mobili. Ogni nodo mobile è

Proxy Server 42
Linux HOWTO − Networking − Sommario

sempre identificato attraverso il proprio indirizzo di base, indipendentemente dal


punto di attacco corrente a Internet; quando si trova lontano da tale base viene
associato al nodo anche un indirizzo di `prossimità', che fornisce l'informazione sul
punto di attacco a Internet corrente. Il protocollo si occupa di registrare l'indirizzo d
prossimità con un home agent. L'home agent invia i datagrammi destinati a un nodo
mobile verso l'indirizzo di prossimità attraverso l'uso di un tunnel, alla fine del qual
ogni datagramma è consegnato al nodo mobile.

Il Protocollo di Tunneling Punto−Punto (PPTP) è una tecnologia di rete che permett


l'uso di Internet come una rete privata virtuale sicura (VPN). Il PPTP è integrato nel
Servizio di Accesso Remoto (RAS) che fa parte di Windows NT Server. Col PPTP
utenti possono connettersi con un ISP locale o direttamente a Internet e accedere all
propria rete come se si trovassero sulla propria scrivania. PPTP è un protocollo chiu
e la sua sicurezza è stata recentemente compromessa. Si raccomanda decisamente d
utilizzare alternative differenti basate su Linux, dal momento che queste si basano s
standard aperti che sono stati attentamente esaminati e testati.

• Una implementazione client del PPTP per Linux è disponibile


http://www.pdos.lcs.mit.edu/ cananian/Projects/PPTP/qui

Mobile IP:

• http://www−uk.hpl.hp.com/people/jt/mip.html
• http://metalab.unc.edu/mdw/HOWTO/NET−3−HOWTO−6.html#ss6.12

Documenti correlati con le reti private virtuali:

• http://metalab.unc.edu/mdw/HOWTO/mini/VPN.html
• http://sites.inka.de/sites/bigred/devel/cipe.html

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Linux HOWTO − Networking 43


Open Source Definition

GNU General Public License Gestione della rete (Network


La cattedrale e il bazaar Management)
Colonizzare la noosfera

Il calderone magico Applicazioni di gestione della rete


Libri: Esiste un numero impressionate di strumenti focalizzati nella
gestione della rete e l'amministrazione remota. Alcuni progetti
Italian crackdown
interessanti per l'amministrazione remota sono linuxconf e webmin:
Open Sources
• http://www.webmin.com/webmin/Webmin
MediaMorfosi
• http://www.solucorp.qc.ca/linuxconf/Linuxconf
GTK+/GNOME
sviluppo applicazioni
Altri strumenti comprendono i tool per l'analisi del traffici di rete,
Linux HOWTO: Installazione e configurazione della sicurezza della rete, di monitoraggio, di configurazione ecc. Un
archivio con molti di questi strumenti può essere trovato a
Risorse http://www.metalab.unc.edu/pub/Linux/system/network/Metalab
Feedback
SNMP
Il Simple Network Management Protocol è un protocollo per la
gestione dei servizi di rete Internet. Permette il monitoraggio e la
configurazione remota di router, brigde, schede di rete, switch, ecc.
Esistono moltissime librerie, client, demoni e programmi di
monitoraggio basati su SNMP per Linux. Una bella pagina che tratta
di SNMP e di software per Linux può essere trovata a:
http://linas.org/linux/NMS.html

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Success
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Gestione della rete (Network Management) 44


Open Source Definition

GNU General Public License Reti aziendali con Linux


La cattedrale e il bazaar
In certe situazioni, è necessario per l'infrastruttura di rete disporre di meccanismi ido
Colonizzare la noosfera garantire la disponibilità del servizio per quasi il 100% del tempo. Alcune delle tecn
Il calderone magico ottenere ciò sono descritte nelle seguenti sezioni. La maggior parte del materiale seg
essere trovata sull'eccellente sito Web Linas: http://linas.org/linux/index.html e su
Libri: http://metalab.unc.edu/pub/Linux/ALPHA/linux−ha/High−Availability−HOWTO.h
High−Availability how−to
Italian crackdown

Open Sources Alta disponibilità


MediaMorfosi
La ridondanza è usata per prevenire il sistema globale dai singoli punti di guasto. U
GTK+/GNOME
sviluppo applicazioni solo una scheda di rete e un singolo disco SCSI ha due singoli punti di guasto. L'obi
mascherare agli utenti le rotture non previste, in modo che questi possano continuar
Linux HOWTO: Installazione e configurazione
velocemente. Il software per l'alta disponibilità è composto da una serie di script e d
che controllano e scoprono i guasti, muovendo i passi appropriati affinché siano ripr
Risorse
normali operazioni notificando il tutto all'amministratore di sistema.
Feedback
RAID
RAID, acronimo di Redundant Array of Inexpensive Disks, è un metodo che perme
l'immagazzinamento delle informazioni su più dischi, usando tecniche come lo strip
(RAID Livello 0) e il mirroring di dischi (RAID Livello 1) per ottenere ridondanza,
e/o banda più elevata in lettura e/o scrittura, e la possibilità di recupero delle inform
la rottura di un disco. Sono stati definiti 6 diversi tipi di configurazioni RAID. Ci so
soluzioni RAID a disposizione degli utenti di Linux: RAID software, box DASD es
controller di dischi RAID.

• RAID Software: il RAID puramente software implementa i diversi livelli R


codice di gestione dei dischi (dispositivi a blocchi) del kernel.
• Soluzioni DASD esterne: i DASD (Direct Access Storage Device) sono box
dotati di alimentazione propria che forniscono un cabinet/chassis per sistem
fissi e appaiono a Linux come un altro dispositivo SCSI. Sotto molti aspetti
offrono la soluzione RAID più robusta.
• Controller di Dischi RAID: i controller per i dischi sono schede da inserire
ISA/EISA/PCI. Proprio come i normali controller, sono attaccatti con un ca
fissi. Diversamente dai normali controller per i dischi, i controller RAID im
RAID nella scheda stessa, effettuanado tutte le operazioni necessario per fo
livelli RAID.

HOWTO sull'argomento:

• http://metalab.unc.edu/mdw/HOWTO/mini/DPT−Hardware−RAID.html
• http://metalab.unc.edu/mdw/HOWTO/Root−RAID−HOWTO.html
• http://metalab.unc.edu/mdw/HOWTO/mini/Software−RAID.html

RAID a linas.org:

Reti aziendali con Linux 45


Linux HOWTO − Networking − Sommario

• http://linas.org/linux/raid.html

Networking con ridondanza


Sostituzione di indirizzi IP (IPAT). Quando un adattatore di rete si guasta, il suo ind
dovrebbe essere rilevato da una scheda di rete funzionante, nello stesso o in un altro
Sostituzione di indirizzo MAC: quando avviene una sostituzione di indirizzo IP, bis
assicurarsi che tutti i nodi della rete aggiornino le proprie cache ARP (che rappresen
mappatura fra gli indirizzi IP e MAC).

Vedere l'HOWTO sull'alta disponibilità per maggiori dettagli:


http://metalab.unc.edu/pub/Linux/ALPHA/linux−ha/High−Availability−HOWTO.h

[Precedente] [Sommario] [Success

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Networking con ridondanza 46


Risorse Fonti di informazione
Feedback Se doveste incontrare problemi di rete con Linux, vi prego di
non inviarmi domande via posta elettronica. Semplicemente
non avrei il tempo per rispondere. È più facile ottenere aiuto
attraverso il newsgroup com.os.linux.networking (accessibile
attraverso http://www.dejanews.com). Prima di inviare un
messaggio assicuratevi di aver letto la documentazione
principale. Quindi effettuate una ricerca nell'archivio news,
poiché è possibile che qualcuno abbia già posto la stessa
domanda in precedenza (e che qualcuno abbia risposto).
Quando si inviano un messaggio al gruppo, ricordatevi di
indicare tutti i passi seguiti e i messaggi di errore ricevuti.
Dove trovare ulteriori informazioni:

• Linux: http://www.linux.org
• Linux Documentation Project:
http://metalab.unc.edu/mdw/linux.html (si veda la
Linux Network Administrator Guide)
• Freshmeat: le ultime release del software per Linux.
http://www.freshmeat.net
• Linux link: http://www.linuxlinks.com/Networking/
• Documentazione in italiano su Linux:
http://www.pluto.linux.it/ildp/

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Fonti di informazione 47
Colonizzare la noosfera

Il calderone magico Cronologia


Libri: • 0.31 (17 settembre 1999) Modificato l'indirizzo del
progetto router (grazie a John Ellis) e aggiunto un
Italian crackdown
altro collegamento PPTP (grazie a Benjamin Smith)
Open Sources • 0.30 (6 aprile 1999) Inserita sezione su CODA (grazie
a mailto:brianr@osiris.978.orgBrian Ristuccia)
MediaMorfosi
• 0.2−0.29 Correzioni di bug :−) (si vedano i
GTK+/GNOME ringraziamenti al termine di questo documento)
sviluppo applicazioni
• 0.1 (5 giugno 1998)
Linux HOWTO: Installazione e configurazione

Risorse
[Precedente] [Sommario] [Successivo]
Feedback

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Cronologia 48
Risorse
Ringraziamenti e disclaimer
Feedback
Questo documento è basato sul lavoro di molte altre persone
che hanno reso possibile per Linux diventare quello che è ora:
uno dei migliori sistemi operativi di rete. Tutti i meriti sono
loro. Per redigere questo documento in maniera semplice ma
accurata e per renderlo completo ma non eccessivamente
lungo, è stato compiuto un grande sforzo. Tuttavia l'autore non
si assume alcuna responsabilità in ogni circostanza. State
usando le informazioni qui contenute a vostro rischio. Sentitevi
liberi di inviarmi per e−mail suggerimenti, correzioni o
commenti su questo documento in modo che io possa
migliorarlo. Altri argomenti che probabilmente saranno trattati
nelle future revisioni potrebbero essere radius, strumenti per il
mirroring web e ftp come wget, analizzatori di traffico,
CORBA... e molti altri che potrebbero essere suggeriti e adatti.
Potete raggiungemi a daniel@rawbyte.com

Per finire vorrei ringraziare Finnbjorn av Teigum, Cesar Kant,


Mathieu Arnold e specialmente Hisakuni Nogami e Phil Garcia
per la loro attenta revisione e i commenti a questo HOWTO.
Ho apprezzato molto il loro aiuto.

Potete trovare una versione di questo documento a


http://www.rawbyte.com/lnohttp://www.rawbyte.com/lno/.

Daniel Lopez Ridruejo 17 Sept 1999

Abstract:

COME installare NFS su client e server. Traduzione a cura di


kevin@arena.sci.univr.it.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Ringraziamenti e disclaimer 49
Linux−FAQ Introduzione
Documenti:
Note legali
Open Source Definition

GNU General Public License


(C)opyright 1997−1999 Nicolai Langfeldt and Ron Peters. Do
not modify without amending copyright, distribute freely but
La cattedrale e il bazaar retain this paragraph. The FAQ section is based on a NFS
Colonizzare la noosfera FAQ compiled by Alan Cox. The Checklist section is based
on a mount problem checklist compiled by the IBM
Il calderone magico
Corporation. The nfs−server−on−a−floppy section was written
by Ron Peters.
Libri:

Italian crackdown L'unica licenza valida è quella originale in


lingua inglese. Di seguito ne trovate una
Open Sources
traduzione abbastanza fedele che però non ha
MediaMorfosi alcun valore.
GTK+/GNOME
sviluppo applicazioni I diritti appartengono a Nicolai Langfeldt. Non modificare
Linux HOWTO: Installazione e configurazione
nulla senza allegare il copyright, distribuisci liberamente ma
mantieni questo paragrafo. La sezione sulle FAQ è basata
Risorse sulle NFS FAQ di Alan Cox. La sezione Elenco di verifica è
basata su un problema di mount compilato da IBM
Feedback Corporation.

Disclaimer
Né Nicolai Langfeldt, né Ron Peters, né i relativi datori di
lavoro o chiunque altro, si assumono la responsabilità di
quanto può accadere se seguirete le istruzioni di questo
documento. Se stabilite di seguire comunque le istruzioni,
buona fortuna!

Feedback
Questo non sarà mai un documento finito, inviatemi una mail
se incontrate problemi o successi, potreste contribuire a
migliorare questo documento. Invate denaro, commenti e/o
domande a janl@math.uio.nooppure a rpeters@hevanet.com
nel caso di un server NFS relativo ai floppy. Se inviate una
e−mail accertatevi che l'indirizzo di risposta sia corretto e
funzionante. Ricevo molte mail e accertarmi di ogni indirizzo
sarebbe troppo oneroso.

Altri argomenti
Se desiderate tradurre questo HOWTO fatemelo sapere così
terrò traccia di quante lingue hanno pubblicato il documento
:−)

Introduzione 50
Linux HOWTO − Networking − Sommario

Ringrazio Olaf Kirch che mi ha fornito spunti e suggerimenti


per questo scritto :−)

Dediche
Questo HOWTO è dedicato ad Anne Line Norheim Langfeldt.
Probabilmente non lo leggerà mai perché non è quel tipo di
ragazza.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Dediche 51
LEGGIMI
NFS (Network File System), il sistema di condivisione dei dischi via
rete, ha tre caratteristiche importanti:

• Rende possibile la condivisione dei file in rete.


• Funziona abbastanza bene.
• Apre dei buchi di sicurezza che sono conosciuti dai cracker e
facilmente utilizzabili per ottenere accesso (lettura, scrittura e
cancellazione) a tutti i vostri file.

Parlerò di questi argomenti nel presente HOWTO. Accertatevi di


leggere la sezione relativa alla sicurezza e sarete in grado di limitare al
minimo la vulnerabilità e i rischi. La sezione sulla sicurezza contiene dei
passi piuttosto tecnici e richiede alcune conoscenze di reti IP e i termini
a esse relativi. Se non capite la terminologia utilizzata fate un passo
indietro e leggete il Networking HOWTO oppure acquistate un libro
relativo all'amministrazione di reti TCP/IP per familiarizzare con
TCP/IP. È comunque una buona idea se amministrate macchine
UNIX/Linux. Un ottimo libro al riguardo è TCP/IP Network
Administration di Craig Hunt, pubblicato da O'Reilly & Associates, Inc.
Dopo averlo letto e capito, avrete un maggior valore sul mercato del
lavoro :)

Ci sono due sezioni per aiutarvi nella soluzione dei problemi di NFS,
chiamate Elenco di verifica di mount e FAQ. Fate riferimento a esse se
qualcosa non dovesse funzionare come previsto.

Il sito primario per nfsd per Linux 2.0 è


ftp.mathematik.th−darmstadt.de:/pub/linux/okir,
nel caso aveste bisogno di scaricarlo e compilarlo.

Per informazioni su NFS in relazione a Linux 2.2 fate riferimento a [*]


(NFS in Linux 2.2).

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

LEGGIMI 52
Glossario Configurare un server NFS
Linux−FAQ
Prerequisiti
Documenti:
Prima di continuare a leggere questo HOWTO dovete essere
Open Source Definition in grado di fare telnet tra due macchine che avete intenzione di
GNU General Public License
configurare come client e server. Se non siete in grado di
farlo, leggete il networking/NET−2 HOWTO per installare e
La cattedrale e il bazaar
configurare correttamente la rete.
Colonizzare la noosfera

Il calderone magico Il primo passo


Libri: Prima di fare qualsiasi altra cosa, abbiamo bisogno di
configurare un server NFS. Se fate parte di un dipartimento o
Italian crackdown
università probabilmente ce ne saranno molti altri già
Open Sources configurati. Se avete accesso a tali server o state leggendo
MediaMorfosi
questo HOWTO per utilizzarli, non avete bisogno di leggere
questa sezione e potete passare direttamente alla sezione [*]
GTK+/GNOME (Configurazione di un client NFS)
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Se avete bisogno di installare NFS su una macchina che non
abbia Linux, allora dovete leggere il manuale di sistema per
Risorse scoprire come abilitare il servizio di NFS ed esportare i file
tramite NFS. C'è una sezione apposita in questo HOWTO su
Feedback
come farlo su molti sistemi diversi. Dopo aver configurato
tutto, potete passare alla sezione successiva. Oppure leggete
altre parti di questa sezione poiché alcune cose che saranno
dette potrebbero essere interessanti anche per altri sistemi,
indipendentemente dal tipo di macchina che volete usare come
server.

Se siete di fretta, fate riferimento alla sezione [*] (NFS in


Linux 2.2) prima di continuare a leggere questo HOWTO.

Quelli di voi che continueranno a leggere, avranno bisogno di


configurare alcuni programmi.

Il portmapper
Il portmapper su Linux può chiamarsi sia portmap sia
rpc.portmap. La pagina man sul mio sistema dice che è un
"DARPA port to RPC program number mapper". Questo è il
primo buco di sicurezza che aprite. La descrizione per
chiudere alcuni di questi buchi è nella sezione [*] (Sicurezza e
NFS), che vi consiglio di leggere con urgenza.

Avvio del portmapper. Lo si può fare in due modi: portmap


oppure rpc.portmap e li dovreste trovare nella directory

Configurare un server NFS 53


Linux HOWTO − Networking − Sommario

/usr/sbin (su alcune macchine si chiama rpcbind). Per ora


lo potete avviare manualmente, ma è necessario che venga
lanciato ogni volta che riavvii la macchina e per questo
motivo dovrete creare/modificare i vostri script rc. Gli script
rc sono descritti in maggior dettaglio nella pagina man di init,
in genere si trovano in /etc/rc.d, /etc/init.d oppure
/etc/rc.d/init.d. Se c'è uno script che ha il nome
simile a inet probabilmente è lo script giusto da modificare.
Ciò che dovete scriverci va oltre lo scopo di questo HOWTO.
Avviate portmap e controllate che esso sia correttamente
partito con il comando ps aux. È partito? Bene.

Ancora una cosa. L'accesso remoto al portmapper è regolato


dal contenuto dei file /etc/hosts.allow e
/etc/hosts.deny. Se rpcinfo −p fallisce, ma
l'esecuzione del portmapper continua, esaminate questi file.
Verificate la sezione [*] (Sicurezza e NFS) per dettagli su
questi file.

Mountd e nfsd
I programmi successivi che devono essere avviati sono
mountd e nfsd. Ma prima dobbiamo modificare un altro file.
Questa volta /etc/exports. Supponiamo che io voglia che
il file system /mn/eris/local, che risiede su eris, possa
essere disponibile anche sulla macchina chiamata apollon.
Dobbiamo quindi mettere queste righe nel file
/etc/exports di eris:

/mn/eris/local apollon(rw)

Le righe sopra indicate consentono l'accesso in lettura e


scrittura a /mn/eris/local. Invece di rw potremmo
mettere ro che indica l'accesso in sola lettura (se non si mette
nulla, è di default a sola lettura). Ci sono altre opzioni che è
possibile inserire e ne discuteremo alcune relative alla
sicurezza più avanti. Le opzioni sono tutte elencate nella
pagina man di exports che dovreste leggere almeno una
volta nella vita. Ci sono modi migliori che elencare gli host
nel file exports. Potete, per esempio, usare net groups se state
utilizzando le NIS (o NYS), e potete sempre specificare
domini interi oppure sottoreti IP come host autorizzati a
montare qualcosa. Ma dovreste considerare che qualcuno non
autorizzato potrebbe accedere al server se usate questo tipo di
autorizzazioni.

Nota: la sintassi del file exports non è la stessa di altri


Unix. C'è una sezione separata in questo HOWTO che
riguarda il file exports di altri Unix.

Mountd e nfsd 54
Linux HOWTO − Networking − Sommario

Ora siamo pronti per lanciare il comando mountd (oppure può


chiamarsi rpc.mountd), successivamente nfsd (che
potrebbe chiamarsi rpc.nfsd). Entrambi leggono il file
exports.

Se modificate il file /etc/exports accertatevi che nfsd e


mountd sappiano che il file è stato cambiato. Il modo
tradizionale consiste nel lanciare exportfs. Molte
distribuzioni non hanno il programma exportfs, allora si può
installare questo script sulla macchina:

#!/bin/sh
killall −HUP /usr/sbin/rpc.mountd
killall −HUP /usr/sbin/rpc.nfsd
echo re−exported file systems

Salvatelo chiamandolo /usr/sbin/exportfs e non


dimenticate di modificare le autorizzazioni con il comando
chmod a+rx. Ora, ogni volta che modificate il file exports,
lanciate exportfs come root.

Dovreste quindi controllare che mountd e nfsd stiano girando


correttamente. Prima con rpcinfo −p. Dovrebbe mostrare
qualcosa di simile al seguente:

program vers proto port


100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 745 mountd
100005 1 tcp 747 mountd
100003 2 udp 2049 nfs
100003 2 tcp 2049 nfs

Come si vede il portmapper ha avviato i propri servizi e così


pure mountd e nfsd.

Se invece appare l'errore: rpcinfo: can't contact


portmapper: RPC: Remote system error −
Connection refused, RPC_PROG_NOT_REGISTERED
o qualcosa di simile, significa che il portmapper non sta
girando oppure c'è qualcosa nel file
/etc/hosts.allow,deny che impedisce al portmapper
di rispondere. Fate riferimento alla sezione [*] (Sicurezza e
NFS) per dettagli su questi file. Se appare il messaggio No
remote programs registered. significa che il
portmapper non vuole rispondere oppure qualcosa non
funziona. Interrompete nfsd, mountd e il portmapper e
riprovate la sequenza di avvio dall'inizio.

Dopo avere controllato che il portmapper riporti i servizi, si


può controllare anche con ps. Il portmapper continuerà a

Mountd e nfsd 55
Linux HOWTO − Networking − Sommario

riportare i servizi anche dopo che il programma che li ha


utilizzati termina in maniera non corretta, per cui controllare
con il ps può essere utile se sembra che qualcosa non funzioni.

Naturalmente, avrete bisogno di modificare i file rc per


avviare mountd e nfsd e il portmapper quando si avvia la
macchina. È probabile che gli script esistano già sulla
macchina, dovrete solo togliere il commento dalle parti
interessate oppure modificare il livello di init affinché queste
vengano attivate.

Le pagine man che dovrebbero esservi familiari adesso, sono


quelle di portmap, mountd, nfsd ed exports.

Bene, se avete fatto tutto esattamente come ho detto


probabilmente è tutto pronto per iniziare a lavorare sul client
NFS.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

Linux HOWTO − Networking 56


MediaMorfosi

GTK+/GNOME Configurazione di un client NFS


sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Prima di tutto avete bisogno di un kernel che abbia il supporto per NFS compilato
staticamente oppure come modulo. Questo lo si configura prima di iniziare la
Risorse compilazione. Se non avete mai compilato un kernel prima, leggete il Kernel
HOWTO. Se state usando una buona distribuzione (come Red Hat [meglio Debian
Feedback N.d.T]) e non avete mai messo mano al kernel o ai moduli (rovinandolo ;)), allora n
dovrebbe essere già disponibile.

Ora, dal prompt di root, potete lanciare il comando appropriato e vedere il file syste
apparire. Continuando l'esempio della sezione precedente, vogliamo montare la
partizione in /mn/eris/local da eris. Ciò è fatto con il comando:

mount −o rsize=1024,wsize=1024 eris:/mn/eris/local /mnt

(Torneremo successivamente sulle opzioni rsize e wsize). Il file system è ora


disponibile sotto /mnt, potete fare cd in esso e con un ls vedere tutti i file che vi
sono presenti. Noterete che non è così veloce come su un file system locale, ma mol
più conveniente che usare ftp. Se, invece di montare il file system, il comando moun
produce un errore come mount: eris:/mn/eris/local failed, reaso
given by server: Permission denied, significa che il file exports è
errato oppure avete dimenticato di lanciare il comando exportfs dopo averlo
modificato. Se invece dice mount clntudp_create: RPC: Program not
registered significa che nfsd o mountd non sta girando sul server oppure c'è un
problema nel file hosts.allow,deny di cui abbiamo parlato precedentemente.

Per rimuovere il filesystem, usare il comando:

umount /mnt

Per fare in modo che il sistema monti un file system al boot, occorre modificare il fi
/etc/fstab. Per il nostro esempio aggiungere la seguente riga:

# device mountpoint fs−type options dump fsckorder


...
eris:/mn/eris/local /mnt nfs rsize=1024,wsize=1024 0 0
...

Questo è tutto, più o meno.

Opzioni del comando mount


Ci sono alcune opzioni che dovreste considerare almeno una volta. Controllano il
modo in cui i client NFS gestiscono i crash della rete o del server. Uno dei fattori
positivi di NFS è che questi problemi vengono gestiti molto bene... se configurate i
client in modo corretto. Ci sono due tipi di problemi:

soft

Configurazione di un client NFS 57


Linux HOWTO − Networking − Sommario

I client NFS sono responsabili di riportare l'errore al processo che sta


accedendo a un file su un file system montato. Alcuni programmi gestiscon
la segnalazione, altri no. Non raccomando l'uso di questo parametro, poiché
rivolto ai file corrotti e ai dati persi. È meglio non utilizzarlo in particolare p
i dischi di posta −− se ci tenete alla vostra posta.

hard
Il programma che cerca di accedere a un file su un file system NFS si
bloccherà quando il server ha un crash. Il processo non potrà essere interrot
a meno che non si specifichi il parametro intr. Quando il server NFS torn
in linea, il programma riprenderà a funzionare correttamente. Questo è
probabilmente il funzionamento che si vorrebbe. Raccomando di usare
hard,intr su tutti i file system montati via NFS.

Riprendendo l'esempio precedente, modifichiamo la linea dell'fstab:

# device mountpoint fs−type options dump fsckorder


...
eris:/mn/eris/local /mnt nfs rsize=1024,wsize=1024,hard,intr 0 0
...

Ottimizzare NFS
Normalmente, se non vengono usate le opzioni rsize e wsize, NFS leggerà e scriverà
blocchi di 4096 o 8192 byte. Alcune combinazioni di kernel di Linux e schede di re
possono non essere in grado di gestire blocchi così grandi o potrebbero non esserlo
comunque in maniera ottimale. Quindi dobbiamo provare a sperimentare varie
dimensioni per determinare quali siano i parametri che funzionano e garantiscono le
migliori prestazioni. Si può provare l'influenza delle opzioni sulla velocità con alcun
semplici comandi. Se avete montato la partizione come visto precedentemente e ave
i diritti di scrittura, potete provare con il seguente test di scrittura sequenziale:

time dd if=/dev/zero of=/mnt/testfile bs=16k count=4096

In questo modo si crea un file di 64 MB di zeri (grande abbastanza per fare in modo
che l'uso della cache non sia significativo sulle prestazioni; usate una dimensione
maggiore se avete molta memoria disponibile). Lanciatelo alcune volte (5−10?) e
calolate il tempo medio. Il tempo da tenere maggiormente in considerazione è quell
indicato con 'elapsed' oppure 'wall clock'. Potete quindi verificare le prestazioni in
lettura:

time dd if=/mnt/testfile of=/dev/null bs=16k

Fatelo alcune volte e calcolate la media dei tempi. Quindi smontate e rimontate la
partizione nuovamente ma con rsize e wsize maggiori. Dovrebbero essere sempre
multipli di 1024 e non essere più grandi di 16384, che è la dimensione massima
ammessa da NFS versione 2. Dopo averla montata nuovamente, fate un cd nel file
system montato e provate qualche semplice comando tipo ls, esplorate il file system
per verificare se tutto funziona correttamente. I sintomi di rsize/wsize troppo grandi
sono molto strani e per nulla ovvi. Un sintomo tipico è un elenco incompleto di file

Ottimizzare NFS 58
Linux HOWTO − Networking − Sommario

quando viene fatto un 'ls', senza alcun messaggio di errore. Oppure la lettura dei file
fallisce miseramente senza messaggi di errore. Dopo avere stabilito che le dimensio
di rsize e wsize funzionano, potete provare di nuovo a effettuare i controlli. Server
diversi hanno dimensioni ottimali diverse. SunOS e Solaris hanno la reputazione di
andare molto più veloci con blocchi di 4096 byte.

I kernel di Linux più recenti (dal 1.3), eseguono un read−ahead per rsize di
dimensioni maggiori o uguali alla dimensione della pagina della macchina. Sui
processori Intel, la dimensione della pagina è di 4096 byte. Poiché l'uso del
read−ahead aumenta significativamente le prestazioni in lettura di NFS, raccomando
di impostare a 4096 le dimensioni di rsize.

Ricordatevi di modificare /etc/fstab per riflettere le dimensioni di rsize/wsize


che avete trovato essere le migliori.

Un trucco per accelerare le prestazioni in scrittura di NFS è quello di disabilitare la


scrittura in sincronia sul server. Le specifiche di NFS controllano che le richieste di
scrittura sul server non siano considerate terminate finché i dati non siano
memorizzati su un supporto non volatile (il disco). Questo limita le prestazioni in
scrittura, per cui disabilitando questa caratteristica si otterrà un incremento delle
prestazioni. Il nfsd di Linux non ha più fatto scritture sincrone da quando non lo fa
nemmeno il file system stesso. Su macchine non Linux, è possibile migliorare le
prestazioni modificando in questo modo il file /etc/exports:

/dir −async,access=linuxbox

o in modo simile. Fate riferimento alla pagina man relativa al file exports della
macchina in questione. Da notare che ciò aumenta la possibilità di perdita di dati.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Linux HOWTO − Networking 59


Open Source Definition

GNU General Public License NFS su linee lente


La cattedrale e il bazaar
Le linee lente includono Modem, ISDN e tutte le altre connessioni su lunga distanza
Colonizzare la noosfera

Il calderone magico Questa sezione si basa sulla conoscenza dei protocolli usati, ma non su prove reali
poiché non ho modo di verificarli. Fatemi sapere le vostre esperienze se avete la
Libri: possibilità di provare ;−)

Italian crackdown La prima cosa da ricordare è che NFS è un protocollo lento. Ha un grosso overhead
Open Sources di sistema. Usare NFS è come usare il kermit per trasferire i file. È veramente lento.
Quasi tutto è più veloce di NFS. FTP, HTTP, rcp e ssh sono più veloci.
MediaMorfosi

GTK+/GNOME Siete ancora convinti di volerlo provare? OK.


sviluppo applicazioni

Linux HOWTO: Installazione e configurazione I parametri di default di NFS sono per linee veloci e con bassa latenza. Se usate
questi parametri su linee ad alta latenza si potrebbero verificare errori, operazioni
Risorse non portate a termine, file che risultano essere più corti di quanto siano in realtà e
altri fatti misteriosi.
Feedback
La prima cosa da fare è di non usare l'opzione per il mount soft. Questo potrebbe
fare in modo che i timeout restituiscano errori alle applicazioni, che potrebbero non
gestirli correttamente. Quella appena descritta potrebbe essere la causa di misteriosi
fallimenti. Usate invece l'opzione hard. Quando l'opzione hard è attiva, i timeout
generano infiniti tentativi invece di terminare l'operazione che il software voleva
effettuare. Ed è ciò di cui avete bisogno.

La prossima cosa da fare è ingannare le opzioni timeo e retrans. Sono descritte


nella pagina man nfs(5), che è qui riportata [tradotta NdT]:

timeo=n Il valore, in decimi di secondo prima di


tentare una ritrasmissione dopo un RPC
timeout. Il valore di default è di 7
decimi di secondo. Dopo il primo timeout,
il timeout viene raddoppiato dopo ogni
successivo timeout fino a un massino di 60
secondi oppure nel caso avvenga un timeout
maggiore. Inoltre, se il filesystem è
montato in modo hard, ogni nuovo timeout
avrà come valore di partenza, il doppio
del valore di partenza della sequenza di
timeout precedente, che si raddoppia a
ogni ritrasmissione. Il massimo timeout
rimane di 60 secondi. Le migliori presta−
zioni si raggiungono incrementando il valo−
re di timeout quando si monta un disco su
una rete lenta, su un server lento oppure
attraverso router e gateway.

retrans=n Il numero di timeout minori e ritrasmis−


sioni che si devono verificare prima che
si verifichi un timeout maggiore. Il valo−
re di default è di 3 timeout. Quando si
verifica un timeout maggiore, viene bloc−

NFS su linee lente 60


Linux HOWTO − Networking − Sommario

cata l'operazione sul file e sulla console


appare "server not responding".

In altre parole: se non viene ricevuta una risposta entro il timeout di 0,7 secondi
(700ms) il client NFS ripeterà la richiesta raddoppiando il timeout a 1,4 secondi. Se
non si riceve risposta entro 1,4 secondi la richiesta viene ripetuta ancora e il timeout
viene raddoppiato ancora a 2,8 secondi.

La velocità di una linea può essere misurata con un ping con le dimensioni del
pacchetto e di rsize/wsize uguali.

$ ping −s 8192 lugulbanda


PING lugulbanda.uio.no (129.240.222.99): 8192 data bytes
8200 bytes from 129.240.222.99: icmp_seq=0 ttl=64 time=15.2 ms
8200 bytes from 129.240.222.99: icmp_seq=1 ttl=64 time=15.9 ms
8200 bytes from 129.240.222.99: icmp_seq=2 ttl=64 time=14.9 ms
8200 bytes from 129.240.222.99: icmp_seq=3 ttl=64 time=14.9 ms
8200 bytes from 129.240.222.99: icmp_seq=4 ttl=64 time=15.0 ms

−−− lugulbanda.uio.no ping statistics −−−


5 packets transmitted, 5 packets received, 0% packet loss
round−trip min/avg/max = 14.9/15.1/15.9 ms

Il tempo qui è quanto impiega il pacchetto del ping ad andare avanti e indietro da
lugulbanda. 15 ms è abbastanza veloce. Su una linea a 28.800 bps ci si può aspettare
qualcosa come 4000−5000ms, e se la linea è molto carica questo tempo sarà ancora
più alto, anche doppio. Quando il tempo è elevato, si dice che la linea ha elevata
latenza. Generalmente per pacchetti più grandi e per linee cariche, il tempo tende ad
aumentare. Aumentate il parametro timeo per adattarlo alla velocità della linea e a
carico. E poiché la latenza aumenta se si usa la linea per altre operazioni, se volete
provare FTP e NFS allo stesso momento, provate a misurare i tempi del ping mentre
usate NFS e FTP per trasferire i file e aumentare timeo perché corrisponda alla
latenza della linea.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Linux HOWTO − Networking 61


Documenti: Sicurezza e NFS
Open Source Definition
Non sono un esperto di sicurezza, ma sono abbastanza coscio dei problemi di
GNU General Public License sicurezza. Ma attenzione: questo non è certo un elenco completo dei problemi
La cattedrale e il bazaar
legati a NFS e se pensate di essere sicuri una volta che avrete letto e
implementato ciò che è scritto qui, avrei giusto giusto un ponte da vendervi.
Colonizzare la noosfera

Il calderone magico Questa sezione non è probabilmente di utilità se vi trovate in un una rete chiusa,
dove conoscete gli utenti e nessuno che non conoscete può accedere alle
Libri: macchine della rete. Ovvero, non ci dovrebbero essere modi per entrare nella rete
in dialin (via modem) e non dovrebbe essere collegata ad altre reti di cui non
Italian crackdown conoscete gli utenti. Pensate che io sia paranoico? Non lo sono per nulla. Questo
Open Sources è solo un aiuto di base sulla sicurezza. E ricordate, le cose che dico qui sono solo
l'inizio. Un sito sicuro ha bisogno di un amministratore diligente che sappia dove
MediaMorfosi
trovare informazioni e tutti i problemi relativi alla sicurezza.
GTK+/GNOME
sviluppo applicazioni
NFS ha un problema di sicurezza di base per cui il client, se non specificato
Linux HOWTO: Installazione e configurazione altrimenti, si fida del server NFS e viceversa. Questo può essere negativo.
Significa che se l'account di root viene compromesso sul server, viene
Risorse compromesso anche quello di tutti i client e viceversa. Ci sono alcune strategie di
copia per questo, sulle quali torneremo poi.
Feedback
Dovreste leggere gli avvisi del CERT su NFS, molto di ciò che è qui scritto
deriva dai messaggi scritti dal CERT. Vedere ftp.cert.org/01−README per un
elenco aggiornato degli avvisi del CERT. Ecco qui alcuni avvisi relativi a NFS.

CA−91:21.SunOS.NFS.Jumbo.and.fsirand 12/06/91
Vulnerabilities concerning Sun Microsystems, Inc. (Sun)
Network File System (NFS) and the fsirand program. These
vulnerabilities affect SunOS versions 4.1.1, 4.1, and 4.0.3
on all architectures. Patches are available for SunOS 4.1.1.
An initial patch for SunOS 4.1 NFS is also available. Sun
will be providing complete patches for SunOS 4.1 and SunOS
4.0.3 at a later date.

CA−94:15.NFS.Vulnerabilities 12/19/94
This advisory describes security measures to guard against
several vulnerabilities in the Network File System (NFS).
The advisory was prompted by an increase in root compromises
by intruders using tools to exploit the vulnerabilities.

CA−96.08.pcnfsd 04/18/96
This advisory describes a vulnerability in the pcnfsd
program (also known as rpc.pcnfsd). A patch is included.

Sicurezza del client


Sul client possiamo decidere di non volere dare troppa fiducia al server in un
paio di modi con delle opzioni del mount. Per esempio possiamo vietare l'uso di
programmi SUID su partizioni NFS con l'opzione nosuid. Questa è una buona
idea e dovreste considerarne l'uso con tutti i dischi che montate via NFS.
Significa che gli utenti root del server non possono fare programmi SUID−root

Sicurezza e NFS 62
Linux HOWTO − Networking − Sommario

sul file system, entrare come utenti normali sui client e usare i programmi SUID
per diventare root anche sui client. Possiamo anche vietare l'esecuzione di file
sulla partizione montata usando l'opzione noexec, ma è sicuramente meno
pratico di nosuid, poiché è naturale pensare che una partizione debba avere dei
file eseguibili o degli script. Potete inserire queste opzioni nella colonna opzioni
con rsize e wsize separati da virgole.

Sicurezza del server: nfsd


Sul server possiamo decidere che non vogliamo dare fiducia all'account root dei
client. Possiamo farlo usando l'opzione root_squash nel file exports:

/mn/eris/local apollon(rw,root_squash)

Ora, se l'utente con UID 0 sul client cerca di accedere (lettura, scrittura,
cancellazione) al file system, il server sostituisce l'UID con quello dell'utente
'nobody' del server. Ciò significa che il root dei client non può accedere o
modificare i file del server che solo root può accedere o modificare. Ciò
rappresenta un fatto positivo e probabilmente dovreste usare root_squash su
tutti i file system che esporte. Potrebbe sorgere il dubbio che l'utente root dei
client può usare il comando 'su' per diventare un altro utente e accedere e
cambiare i file di quell'utente!. La risposta è affermativa. Questo è ciò che
avviene e quello che deve avvenire su Unix e NFS e ha un'importante
conseguenza: i file importanti devono essere di proprietà di root e non di bin o
altri utenti non root, poiché il solo utente a cui l'utente root dei client non può
accedere è l'account root del server. Nella pagina man di NFSd ci sono molte
altre opzioni squash e potete decidere di non dare fiducia a qualsiasi utente dei
client. È possibile anche applicare lo squash a gruppi di UID o GID. Tutto ciò è
descritto nella pagina man di NFSd.

root_squash è realtà un'opzione di default con Linux NFSd, per garantire accesso
come root ai filesystem, utilizza l'opzione no_root_squash.

Un'altra cosa importante è assicurarsi che nfsd controlli che tutte le richieste
provengano da una porta privilegiata. Se accetta richieste da qualsiasi porta, un
utente senza privilegi particolari potrebbe lanciare un programma facilmente
ottenibile su Internet che comunica con il server nfs e gli fa credere di essere un
utente qualsiasi. L'nfsd di Linux fa questo controllo per default, ma su altri
sistemi operativi dovrete effettuare questo controllo per contro vostro, che
dovrebbe essere descritto nella pagina man di nfsd del sistema operativo usato.

Un'altra cosa: mai esportare un filesystem a 'localhost' o 127.0.0.1. Credetemi.

Sicurezza del server: il portmapper


Il portmapper di base ha problemi se usato con nfsd che rendono possibile
ottenere file dal server NFS senza alcun privilegio. Fortunatamente il portmapper
distribuito con Linux è relativamente sicuro contro questo attacco e può essere
reso maggiormente sicuro configurando l'elenco degli accessi in due file.

Sicurezza del server: nfsd 63


Linux HOWTO − Networking − Sommario

Non tutte le distribuzioni di Linux sono uguali. Alcune distribuzioni


apparentemente aggiornate non includono un portmapper sicuro nemmeno oggi,
a distanza di molti anni da quando il problema è stato reso noto. Almeno una
distribuzione contiene la pagina man per un portmapper sicuro, ma il portmapper
reale non è sicuro. Un modo facile per controllare se il vostro portmapper è
valido oppure no, è quello di lanciare il comando strings(1) per verificare se il
portmapper legge i file /etc/hosts.deny e /etc/hosts.allow,
importanti per gestire la sicurezza. Posto che il portmapper è
/usr/sbin/portmap si può controllarlo con il seguente comando:
strings /usr/sbin/portmap | grep hosts. Sulla mia macchina il
risultato è:

/etc/hosts.allow
/etc/hosts.deny
@(#) hosts_ctl.c 1.4 94/12/28 17:42:27
@(#) hosts_access.c 1.20 96/02/11 17:01:27

Modifichiamo il file /etc/hosts.deny. Dovrebbe contenere la riga:

portmap: ALL

che nega l'accesso a chiunque. Poiché l'accesso è chiuso, provate il comando


rpcinfo −p per verificare se il vostro portmapper legge e obbedisce
realmente a questo file. rpcinfo non dovrebbe dare alcun risultato oppure un
messaggio di errore. Non dovrebbe essere necessario riavviare il portmapper.

Chiudere il portmapper a chiunque è un po' troppo drastico, quindi riapriamolo


modificando il file /etc/hosts.allow, ma prima cerchiamo di capire che
cosa inserirci. Il file dovrebbe semplicemente avere un elenco di tutte le
macchine a cui si vuole garantire accesso al portmapper. Ci sono comunque
pochissimi casi di macchine che hanno bisogno di un accesso totale per qualsiasi
ragione. Il portmapper amministra nfsd, mountd, ypbind/ypserv, pcnfsd e i
servizi 'r', come ruptime e rusers. Di questi, solo nfsd, mountd, ypbind/ypserv e
forse pcnfsd possono avere qualche conseguenza. Tutte le macchine che
richiedono accessi ai servizi della vostra macchina dovrebbero essere autorizzate
a farlo. Supponiamo che l'indirizzo della vostra macchina sia 129.240.223.254 e
che si trovi in una sottorete 129.240.223.0 che deve poter accedere ai servizi
della macchina (questa è la terminologia introdotta da Networking HOWTO: se
non vi ricordate rileggetelo). Scriviamo quindi:

portmap: 129.240.223.0/255.255.255.0

in hosts.allow. Questo è quanto viene scritto anche come subnet mask in


ifconfig. Per il dispositivo eth0 di questa macchina, ifconfig dovrebbe
essere:

...
eth0 Link encap:10Mbps Ethernet HWaddr 00:60:8C:96:D5:56
inet addr:129.240.223.254 Bcast:129.240.223.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Sicurezza del server: nfsd 64


Linux HOWTO − Networking − Sommario

RX packets:360315 errors:0 dropped:0 overruns:0


TX packets:179274 errors:0 dropped:0 overruns:0
Interrupt:10 Base address:0x320
...

e netstat −rn dovrebbe mostrare:

Kernel routing table


Destination Gateway Genmask Flags Metric Ref Use Iface
...
129.240.223.0 0.0.0.0 255.255.255.0 U 0 0 174412 eth0
...

(l'indirizzo di rete è nella prima colonna).

I file hosts.deny e hosts.allow sono descritti nelle pagine man con lo


stesso nome.

IMPORTANTE: non inserite nient'altro che NUMERI IP nelle linee del


portmapper di questi file. La risoluzione dei nomi può indirettamente causare
attività del portmapper che può causare attività del portmapper che può
indirettamente causare attività del portmapper...

Ciò che abbiamo visto rende il server più chiuso. Il solo problema che ora rimane
(eh già :)) è che qualcuno riesca a corrompere la shell di root (o che riesca a far
partire la macchina con un floppy MS−DOS) su una macchina affidabile e,
usando questo privilegio, spedisca da una porta sicura richieste come utente
qualsiasi.

NFS e firewall
È una buona cosa proteggere con un firewall le porte di nfs e del portmapper sul
vostro router o firewall. L'nfsd funziona sulla porta 2049, con i protocolli udp e
tcp. Il portmapper lavora in genere sulla porta 111, sia tcp sia udp e mountd sulle
porte 745 e 747, sia tcp sia udp. Controllate le porte usate con il comando
rpcinfo −p.

Se invece NFS deve attraversare un firewall, ci sono delle opzioni su nfsd e


mountd più recenti per usare porte non standard che possono essere tenute aperte
attraverso il firewall.

Riassunto
Se usate hosts.allow/deny, root_squash, nosuid e l'opzione per le porte
privilegiate nei programmi portmapper/nfs, evitate la maggior parte dei bug
conosciuti di nfs e potete essere abbastanza sicuri. Comunque ci sono altri
problemi: se qualcuno ha accesso alla rete può far apparire strani comandi nel
vostro .forward o leggere la vostra posta se le directory /home o
/var/spool/mail sono esportate via NFS. Per la stessa ragione, non
dovreste mai lasciare le vostre chiavi private di PGP su un disco esportato via

NFS e firewall 65
Linux HOWTO − Networking − Sommario

NFS. O almeno ora sapete i rischi che correte.

NFS e il portmapper formano un sottosistema complesso e non è improbabile che


nuovi bug vengano scoperti, sia nella progettazione sia nell'implementazione. Ci
possono sempre essere buchi di cui qualcuno sta abusando. Ma questa è la vita.
Per tenervi aggiornati su questo genere di problemi dovreste leggere alcuni
newsgroup come comp.os.linux.announce e comp.security.announce.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 66


Elenco di verifica di mount
Questa sezione è basata sull'elenco di verifica dei problemi di
NFS mount di IBM Corp. I miei ringraziamenti a loro per
averlo reso disponibile per questo HOWTO. Se rilevate alcuni
problemi montando un file system via NFS, controllate questo
elenco prima di inviare il vostro problema. Ogni elemento
descrive un problema e come risolverlo.

6. Il mount continua a indicare RPC: Programma


non registrato

Il portmapper è attivo?

Soluzione: avviarlo.

Mountd è attivo?

Soluzione: avviarlo.

Nfsd è attivo?

Soluzione: avviarlo.

Il portmapper non può rispondere a causa di


/etc/hosts.deny?

Soluzione: rimuovere la regola in hosts.deny o


aggiungere una regola a hosts.allow per fare in
modo che il portmapper possa comunicare con voi.

5. Il file system non viene esportato o non viene


esportato al client in questione:

Soluzione: esportarlo.

4. La risoluzione del nome non corrisponde all'elenco di


exports

Esempio: la lista di export dice di esportare a


johnmad ma il nome di johnmad è risolto in
johnmad.austin.ibm.com e quindi il mount
viene negato.

Soluzione: inserire nell'export entrambi i nomi.

Può anche accadere se il client ha due interfacce con


nomi diversi e l'exports ne specifica una sola.

Elenco di verifica di mount 67


Linux HOWTO − Networking − Sommario

Soluzione: inserire nell'exports entrambe le


interfacce.

Può anche accadere se il server non riesce a eseguire


le funzioni lookuphostbyname o lookuphostbyaddr sul
client. Accertatevi che il client possa fare host
<name>; host <ip_addr>; e che entrambe
mostrino la stessa macchina.

Soluzione: controllare la risoluzione dei nomi.

3. Il file system è stato montato dopo che l'NFS è partito


(sul server). In questo caso il server sta esportando la
directory sottostante NFS e non il filesystem
esportato.

Soluzione: arrestare e riavviare NFSd.

Nota: I client che abbiano già montato il filesystem


avranno problemi dopo il riavvio del server.

2. La data è sbagliata su una o entrambe le macchine


(ciò può dare problemi usando il comando make)

Soluzione: correggere la data.

L'autore dell'HOWTO raccomanda di usare NTP per


sincronizzare gli orologi. Poiché ci sono delle
restrizioni su NTP negli USA, occorre prelevare le
versioni per Debian, Red Hat o Slackware da
ftp://ftp.hacktic.nl/pub/replay/pub/linux o qualche
mirror.

1. Il server non accetta il mount da un utente che è in più


di 8 gruppi.

Soluzione: diminuire il numero di gruppi cui


appartiene o usa un altro utente.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Elenco di verifica di mount 68


Linux HOWTO − Networking − Sommario

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 69


FAQ
Questa è la sezione delle FAQ. È basata su una vecchia FAQ di NFS
di Alan Cox.

Se si verificano problemi montando un filesystem, verificate se il


vostro problema è descritto nella sezione ``Elenco di verifica di
mount''.

13. Ho un gran numero di errori ``stale nfs handl'' quando uso


Linux come server NFS

Ciò è causato da un bug in alcune vecchie versioni di nfsd. È


stato corretto a partire da nfs−server2.2beta16

12. Quando provo a montare un filesystem ottengo

can't register with portmap: system error on send

Probabilmente state usando un sistema basato sulla


distribuzione Caldera. C'è un bug negli script rc. Contattate
Caldera per ottenere la versione corretta.

11. Perché non posso eseguire un file dopo averlo copiato sul
server NFS?

Il fatto è che nfsd tiene una cache dei file aperti per motivi di
prestazioni (ricordate, gira in un ambiente utente). Mentre
nfsd ha un file aperto (come nel caso di una scrittura), il
kernel non ne consente l'esecuzione. Le versioni di nfsd più
recenti di spring 95 rilasciano i file aperti dopo qualche
secondo, versioni più vecchie possono impiegare anni...

10. I miei file su NFS sono in sola lettura

Il default per il server NFS di Linux è di montare i filesystem


in sola lettura. Leggete le sezioni ``Mountd e nsfd'' ed
``Esportare filesystem'' in questo HOWTO e fate riferimento
alle pagine man di exports e nfsd. Avrete bisogno di
modificare /etc/exports.

9. Monto una partizione da un server Linux e, mentre il


comando ls funziona, non riesco a leggere o scrivere i file.

Su versioni più vecchie di Linux occorre lanciare il server


NFS con rsize=1024,wsize=1024.

8. Monto un server NFS Linux con la dimensione dei blocchi tra


3500−4000 e regolarmente smette di rispondere.

FAQ 70
Linux HOWTO − Networking − Sommario

Allora semplicemente non fatelo. Questo non si verifica con i


kernel 2.0 e 2.2. Per quanto mi ricordo non dovrebbero
esserci problemi nemmeno con la versione 1.2.

7. Può Linux gestire NFS via TCP?

Al momento no.

6. Ottengo numerosi strani errori se provo a montare una


macchina usando Linux.

Accertatevi che l'utente sia in 8 gruppi o meno. Server più


vecchi lo richiedono.

5. Quando riavvio la mia macchina a volte smette di rispondere


provando a smontare un NFS server che non risponde.

Non smontate server NFS quando riavviate. Ignorateli, non


causano problemi se non li si smonta. Il comando è umount
−avt nonfs.

1. I client NFS Linux sono molto lenti quando scrivono su


sistemi Sun o BSD.

Normalmente NFS scrive i dati in modo sincrono (è possibile


disabilitare questa modalità lo si desidera, ma si rischia di
perdere dei dati). Funzionano peggio i kernel derivati da
BSD, che tendono a non essere in grado di lavorare in piccoli
blocchi, quindi quando si scrivono 4K di dati da una
macchina Linux in pacchetti da 1K, BSD fa questo:

lettura di una pagina da 4K


modifica di 1K
scrittura di 4K sul disco fisico
lettura di una pagina da 4K
modifica di 1K
scrittura di 4K sul disco fisico
ecc..
4. Quando connetto molti client a un server NFS Linux le
prestazioni calano improvvisamente.

Il protocollo NFS usa pacchetti UDP frammentati. Il kernel


ha un limite sulla quantità di frammenti di pacchetti
incompleti di cui può disporre prima di eliminare i pacchetti.
Nella versione 2.2 il protocollo è adattabile in runtime
attraverso il filesystem /proc:
/proc/sys/net/ipv4/ipfrag_high_thresh e
ipfrag_low_thresh. Nella versione 2.0 queste sono le
costanti di runtime definite in
.../linux/net/ipv4/ip_fragment.c,
IPFRAG_HIGH_THRESH e IPFRAG_LOW_THRESH. Il

FAQ 71
Linux HOWTO − Networking − Sommario

significato di questi valori è costituito dal fatto che quando


l'occupazione della memoria dei frammenti UDP non
assemblati raggiunge il limite ``ipfrag_high_thresh'' in byte
(256K per default in 2.2.3 e 2.0.36) viene ridotta a
``ipfrag_low_tresh'' improvvisamente. Questa operazione
viene effettuata eliminando i frammenti. È simile alla perdita
di pacchetti e se il limite più elevato viene raggiunto, le
prestazioni del server calano notevolmente.

256K è sufficiente per un numero pari a 30 client. Se ne avete


60, raddoppiatelo. E raddoppiate anche il limite inferiore.

3. Sto usando Linux 2.2 (o versione successiva) con knfsd e non


riesco a fare in modo che la mia macchina AIX, IRIX,
Solaris, DEC−Unix, ... lo monti.

Knfsd indica che viene implementata la versione 3 di NFS.


Ma questo non avviene. Esiste un'opzione per evitare che
annunci questa versione. Usatela. Oppure potete immettere
``vers=2'' nell'elenco di opzioni di montaggio sui client.

2. La mia macchina AIX 4 non può montare il mio server NFS


Linux. Viene visualizzato

mount: 1831−011 access denied for server:/dir


mount: 1831−008 giving up on:
server:/dir
The file access permissions do not allow the
specified action.

o qualcosa di simile.

AIX 4.2 ha utilizzato porte riservate (<1024) per NFS. AIX


4.2.1 e 4.3 non sono limitati a porte riservate. Inoltre, AIX
4.2.1 e 4.3 cercano di effettuare il montaggio mediante NFS3,
quindi NFS/TCP, infine NFS/UDP.

L'aggiunta di

nfso −o nfs_use_reserved_ports=1

alla fine di rc.tcpip forzerà l'utilizzo di porte riservate.


(Questo suggerimento è stato fornito da Brian Gorka)

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

FAQ 72
Linux HOWTO − Networking − Sommario

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 73


Esportare filesystem
Il modo di esportare i filesystem attraverso NFS non è
completamente coerente tra le varie piattaforme. In questo caso
Linux e Solaris 2 sono le eccezioni. Questa sezione propone un
breve elenco di modi di effettuare l'esportazione sui vari sistemi.
Se il vostro sistema non è riportato dovete controllare sulle pagine
del manuale. Provate a cercare parole come: nfsd, system
administration tool, rc scripts, boot scripts, boot sequence,
/etc/exports, exportfs. Userò un esempio durante questa sezione:
come esportare /mn/eris/local ad apollon in lettura e scrittura.

IRIX, HP−UX, Digital−UNIX, Ultrix,


SunOS 4 (Solaris 1), AIX
Questi sistemi operativi usano il tradizionale formato di Sun per il
file export. In /etc/exports scrivete:

/mn/eris/local −rw=apollon

La documentazione completa si trova nella pagina man di


exports. Dopo avere modificato il file, lanciate exportfs
−av per esportare i filesystem.

Quanto sono limitate le varie versioni di exportfs relative alle


variazioni di sintassi? Su alcuni sistemi troverete che le righe
precedenti vengono lette come:

/mn/eris/local apollon

oppure possono degenerare in:

/mn/eris/local rw=apollon

Consiglio di essere formali, altrimenti si rischia che la versione


successiva di exportfs sia più sensibile e che quindi non
funzioni più nulla.

Solaris 2
Sun ha completamente reinventato la ruota quando fecero Solaris
2. Quindi la loro sintassi è completamente diversa da quella di
tutti gli altri. Ciò che dovete fare è modificare il file
/etc/dfs/dfstab. Questo file deve contenere i comandi
share, come descritto nella pagina man share(1M). Ad esempio:

share −o rw=apollon −d "Eris Local" /mn/eris/local

Esportare filesystem 74
Linux HOWTO − Networking − Sommario

Dopo avere modificato il file, lanciate il programma shareall


per esportare i filesystem.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 75


NFS in Linux 2.2
Mentre scrivo questo HOWTO, Linux 2.2.12 è la versione del
kernel corrente e utilizzare NFS può rivelarsi un po'
complesso.

Cosa accade se lo stato di NFS in Linux 2.4 è i unknown.

La nuova caratteristica importante di Linux 2.2 è il supporto


per un demon del server nfs in−kernel, noto come knfsd in
2.2. Questo modo di implementare nfsd ha alcuni vantaggi,
quello principale è la velocità. Una macchina Linux 2.2 con
knfsd è un server nfs rispettabile. Si può continuare a
utilizzare l'nfsd precedente con Linux 2.2. Questo comporta
alcuni vantaggi, principalmente in fatto di semplicità.

Se utilizzate un kernel sorgente o un pacchetto binario creato


da RedHat (6.0 o successiva), SuSE (6.1 o successiva) o altri
integratori di sistemi professionali, hanno probabilmente
integrato tutte le funzionalità di ``knfsd'' nel relativo kernel e
non è necessario preoccuparsi di nulla, poiché funzionerà
certamente nella maggior parte dei casi. Fino al momento in
cui non compilate un vostro kernel. Se usate un kernel di stock
Linux 2.2 (almeno fino a 2.2.12) knfsd verrà interrotto.

Per utilizzare questo kernel è necessario disporre del pacchetto


knfsd di H.J. Lus. Si tratta di una raccolta di patch e delle
utility necessarie per la versione 2.2 che Lu sta gestendo a
tempo perso. Potete disporne dal mirror del kernel locale, il
sito principale è ftp.kernel.org:/pub/linux/devel/gcc/. Non è
indicato per uso generale. Se trovate che questo pacchetto
può creare dubbi non fatelo da soli. Attendete un pacchetto del
kernel dell'integratore del sistema preferito (ad esempio, Red
Hat, SuSE o ...).

Inoltre, non inviatemi domande relative a questo argomento,


non sono in grado di aiutarvi. Non dispongo di alcun server
knfsd. Se trovate errori o omissioni in questa documentazione,
scrivetemi e rivedrò questo HOWTO e ne distribuirò una
nuova versione.

State ancora leggendo? Ok. H.J.Lu pubblica argomenti relativi


alle nuove versioni di questo pacchetto sulla mailing list del
kernel Linux. Altri problemi relativi a NFS nella versione 2.2
vengono pubblicati in questa mailing list. Leggeteli.

È importante notare una cosa in relazione al pacchetto knfsd.


Annuncia che supporta la versione 3 di NFS. Tuttavia, non la
supporta. Esiste un'opzione che si può utilizzare per evitare la

NFS in Linux 2.2 76


Linux HOWTO − Networking − Sommario

presenza dell'annuncio di NFS3, oppure si può specificare


"vers=2" nell'elenco di opzioni di mount sui client.

Il client
Il client è alquanto semplice. Per bloccarlo è necessario avere
statd (del pacchetto knfsd) compilato, installato e avviato
dagli script di boot. Fatelo. Statd ha bisogno di una directory
/var/lib/nfs per funzionare, altrimenti verrà terminato
senza messaggi di errore. La directory deve essere creata
prima di eseguirlo.

Dopo l'esecuzione di statd si può usare il programma testlk


in tools/locktest per verificare se il blocco di un file in
un filesystem NFS funziona. Dovrebbe essere così. Se viene
visualizzato No locks available, statd non funziona.

In realtà, si può anche evitare il blocco completo (non sto


consigliando di farlo), immettendo ``nolock'' nell'elenco di
opzioni di mount.

Per quanto ne so, questo è ciò che è necessario per far


funzionare il client.

Se avete un server Sparc o Alpha NFS scoprirete che il client


NFS in Linux 2.2 avrà prestazioni peggiori. Le velocità di
trasferimento da e verso il server sono così tragiche che ... non
potete nemmeno immaginarle. È molto peggio che in Linux
2.0. Esiste tuttavia una soluzione. La serie di kernel 2.2 di
Alan Cox (che è leggermente più sperimentale dei normali
kernel 2.2 di Linus) include una patch per fare in modo che
Linux 2.2 funzioni quando usato con i server Alpha e Sparc.
Se volete usare i kernel 2.2 di Alan Cox dovreste leggere la
mailing list relativa ai kernel Linux e potrete scoprire dove si
trova la patch. La home page di questa patch è
http://www.uio.no/ trondmy/src/, nel caso vogliate provare ad
applicarla a un kernel 2.2 di produzione. Questa patch non
sarà probabilmente disponibile in Linux 2.4, perché richiede
troppe modifiche nel kernel per essere accettata nel ciclo di
sviluppo corrente. Aspettate Linux 2.5.

Anche trondmy dispone di patch per fare in modo che Linux


usi la versione 3 di NFS, elementi che consentiranno inoltre di
usare il protocollo tcp come meccanismo di trasporto invece di
UDP. NFSv3 è ottimo per reti long−haul e altre reti in cui la
perdita dei pacchetti non è uguale a zero o la latenza è elevata.

Il motivo per cui dovreste leggere la mailing list relativa ai


kernel Linux per usare queste patch consiste nel fatto che
talvolta si sono verificati grossi errori. Bug che si nutrono dei

Il client 77
Linux HOWTO − Networking − Sommario

vostri file. Quindi fate attenzione.

Il server
Il demon del server nfs in Linux 2.2 e nelle versioni
successive è noto come ``knfsd''. È insidioso da installare.
Dovete arrangiarvi da soli o fare riferimento ai pacchetti di
kernel 2.2 rilasciati da SuSE, Red Hat e altri. Spiacente. Potete
ancora usare il vecchio nsfd anche in Linux 2.2. È lento ma
semplice da installare.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Il server 78
Feedback Server NFS su un floppy
Questa sezione è stata scritta da Ron Peters,
rpeters@hevanet.com Spiega come installare un server NFS al
momento dell'avvio da un floppy. Era inizialmente progettata
per fare in modo che NFS condividesse un cdrom da un'altra
macchina non Linux/UNIX per installare Linux su una
macchina che non disponeva di cdrom.

Introduzione
Questo documento è stato creato per coloro che
sperimenteranno lo stesso problema che ho avuto di recente.
Stavo creando un server Linux su una macchina che non
aveva un cdrom e non aveva, né ha alcuna possibilità di
aggiungervene uno a eccezione di un dispositivo esterno SCSI
o simile. Ora che sta diventando sempre meno probabile che si
debba installare un server su una macchina come questa,
questo documento potrebbe rivelarsi poco utile. Tuttavia, lo
avrei apprezzato al momento della creazione della mia
macchina.

Dato che la mia macchina non aveva un'unità cdrom, pensavo


di trovare un server NFS per Win95 e condividere il cdrom
per il tempo sufficiente a installare il sistema e utilizzarlo in
rete. Dei due prodotti che ho trovato (non dirò i nomi, ma uno
era freeware e l'altro aveva una licenza limitata di 15 giorni),
uno non funzionava e l'altro non poteva gestire
sufficientemente bene la convenzione di denominazione di
Linux per poter completare l'installazione.

Ho quindi cercato di avviare la mia macchina Win95 con il set


di dischi boot/root e di usare un floppy supplementare per
installare il server NFS.

È stato molto semplice e la procedura è probabilmente più


semplice della lettura di questa introduzione, ma credo che
inserire l'intera procedura in un posto solo avrà più valore.

Aspettative
Questo documento deriva dall'uso di dischi boot/root di una
delle correnti distribuzioni di sviluppo InfoMagic di
Slackware. Ho usato la versione 2.0.34 del kernel per i dischi
boot/root, ma i programmi del server NFS derivano da un
server 2.0.30. Ho già usato il metodo di installazione
Slackware, non perché sia più semplice o migliore, ma perché
mi trovo più a mio agio e non ho dedicato altro tempo a

Server NFS su un floppy 79


Linux HOWTO − Networking − Sommario

cercare un altro metodo.

Non credo che ci saranno molti problemi di utilizzo con


questo documento in relazione alla versione del sistema
operativo. Consiglierei di usare qualcosa di abbastanza
recente. Poiché è probabile che verrà utilizzato per
l'installazione, sarà probabilmente usato un set di dischi
boot/root corrente.

Le dimensioni possono variare.

Requisiti
• Sistema di rete e disco di avvio. Il sistema che
rappresenterà il server NFS deve avere una scheda di
rete e deve essere riconosciuto durante il processo di
boot. Ulteriori informazioni sono disponibili in
Networking HOWTO.
• Floppy secondario che contiene rpc.portmap,
rpc.mountd e rpc.nfsd. Questi file possono essere
facilmente disponibili da un ftpsearch sul Web.
• Supporto di origine Slackware (o altro) (si presume
che sia il cd).

Installazione del server


Boot del server NFS temporaneo

Avviate il sistema del server NFS dal floppy di boot e


assicuratevi che la scheda di rete venga riconosciuta. È anche
necessario che il CDROM venga riconosciuto. Userò eth0
come scheda di rete di esempio.

Montaggio del floppy e del cdrom

Dopo avere avviato il sistema, i dischi boot/root non sono più


necessari. Il sistema è completamente contenuto nella RAM.

Sostituite il floppy root con il disco supplementare. Montate il


floppy:

mount /dev/fd0 /floppy

Questo presume che il floppy sia abbia un file system di tipo


ext2. Immagino che il disco supplementare possa essere un
floppy DOS contenente dei file, ma non l'ho ancora provato.
Penso che sarà più semplice di un'immagine di un disco. In
questo caso, sarebbe mount −t msdos ...etc. Questo
deve probabilmente essere inserito nella sezione ``Operazioni

Requisiti 80
Linux HOWTO − Networking − Sommario

da effettuare''.

Montaggio del cdrom:

mount −t iso9660 /dev/hdc /cdrom

I dispositivi di floppy e cdrom sono quelli che ho usato.


Potrebbero essere diversi in base all'applicazione. I punti di
mount /floppy e /cdrom sono presenti nell'immagine del disco
floppy perché possano essere usati. In caso contrario, createli
o utilizzate i punti di mount che desiderate.

Installazione della rete sul server


temporaneo

In questa sezione il server NSF temporaneo viene impostato


per comunicare con la rete. Ci sono pochi comandi da
eseguire. Sono necessarie ancora alcune informazioni prima di
eseguire i comandi (i valori sono esempi):

IPADDR:172.16.5.100 #Questo è l'indirizzo del server


temporaneo.

NETMASK:255.255.255.0 #Questa è la netmask.

BROADCAST:172.16.5.255 #L'ultimo numero (255) è


significativo di IPADDR.

ETHNETWORK:172.16.5.0 #Ancora una volta, leggermente


diverso da IPADDR.

GATEWAY:172.16.5.251 #Necessario solo se avete un


gateway. Probabilmente lo sapete già, ma la maggior parte
delle reti provate non ha un gateway.

I comandi per far funzionare la rete. Inserite i valori elencati


sopra:

ifconfig eth0 inet IPADDR arp netmask


NETMASK broadcast BROADCAST

route add −net ETHNETWORK netmask NETMASK


eth0

Usate il comando seguente solo se avete un gateway e dovete


attraversarlo:

route add default gw GATEWAY netmask


0.0.0.0 eth0

Installazione della rete sul server temporaneo 81


Linux HOWTO − Networking − Sommario

Se tutto funziona, vi trovate in rete e potraete eseguire un ping


degli altri nodi.

Installazione della condivisione NFS

Determinate la directory che desiderate diventi la condivisione


NFS. Nel caso del mio esempio, ho usato la directory
/cdrom/slakware. Immettete questa directory nel file
/etc/exports:

echo "/cdrom/slakware" > /etc/exports

Esecuzione del server NFS


Andate a /floppy/usr/sbin ed eseguite:

./rpc.portmap

./rpc.mountd

./rpc.nfsd

Completato, iniziate l'installazione

Questo dovrebbe condividere la directory ``/cdrom/slakware''


nel file /etc/exports. Al termine, potete avviare la macchina
perché sia installata da floppy boot/root (ne ho usati alcuni
con cui ho avviato il server NFS) e iniziare l'installazione.

Quando siete pronti a scegliere la collocazione dell'origine dei


supporti, scegliete l'opzione relativa al server NFS. Ti verrà
richiesto l'indirizzo IP del server. Immettete l'indirizzo usato
come IPADDR per il server. Vi verrà anche richiesto il
montaggio della directory. Si tratta della directory che avete
collocato in /etc/exports sul server NFS.

Il sistema provvederà quindi a montare NFS sul server.


Attenzione a eventuali messaggi di errore. Tutto dovrebbe
essere completo. Puoi continuare l'installazione.

Risoluzione dei problemi


Non ancora disponibile

Non dispongo ancora di informazioni sulla risoluzione dei


problemi. Forse mentre utilizzerete questa procedura, ci
saranno più suggerimenti disponibili.

Installazione della condivisione NFS 82


Linux HOWTO − Networking − Sommario

Operazioni da effettuare
Disco DOS

Create un disco DOS per il floppy supplementare.

Comandi rpc

Create un ordine specifico dell'esecuzione dei comandi rpc.* e


se è necessario eseguire solo alcuni o tutti i comandi.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Operazioni da effettuare 83
Feedback PC−NFS
Non dovreste usare PC−NFS, ma samba.

Samba è migliore di PC−NFS e funziona con Windows 3 for


Workgroups e versioni successive di Windows. È più veloce e
più sicuro. Usatelo.

Abstract:

HOWTOs!NIS HOWTOs!YP HOWTOs!NYS


HOWTOs!NIS+ Questo documento descrive la
configurazione di Linux come client NIS(YP) o NIS+ e
l'installazione di un server NIS. Traduzione originale di
Michele Dalla Silvestra. Revisione e aggiormento di Giovanni
Bortolozzo, (borto@pluto.linux.it).

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

PC−NFS 84
MediaMorfosi

GTK+/GNOME Introduzione
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Sempre più macchine Linux sono installate come parte di una rete di computer. Per
(principalmente reti basate su macchine Sun) usano il Network Information Service
Risorse Linux possono sfruttare appieno l'esistenza di un servizio NIS o fornire esse stesse t
anche client NIS+ completi, sebbene tale supporto sia in un stadio di beta test.
Feedback
Questo documento prova a rispondere alle domande sull'impostazione di NIS(YP) e
dimentichi di leggere la sezione [*] (Il Portmapper RPC).

Il NIS−HOWTO è scritto e mantenuto da:

Thorsten Kukuk, kukuk@suse.de

Le principali fonti di informazione per la versione iniziale del NIS−HOWTO sono s

Andrea Dell'Amico <adellam@ZIA.ms.it>


Mitchum DSouza <Mitch.DSouza@NetComm.IE>
Erwin Embsen <erwin@nioz.nl>
Peter Eriksson <peter@ifm.liu.se>

che tutti dovremmo ringraziare per la scrittura iniziale di questo documento.

Nuove versioni di questo documento


L'ultima versione di questo documento è sempre consultabile su World Wide Web a
http://www.suse.de/ kukuk/linux/HOWTO/NIS−HOWTO.htmlhttp://www.suse.de/~

Le nuove versioni di questo documento saranno inoltre archiviate nei vari siti WWW
dell'LDP.

I link alle traduzioni di questo documento possono essere trovati a


http://www.suse.de/ kukuk/linux/nis−howto.htmlhttp://www.suse.de/~kukuk/linux/n

Liberatoria
Sebbene questo documento sia stato creato utilizzando il meglio della mia conoscen
errori. Per informazioni più dettagliate ed accurate si invita a leggere tutti i file REA
in questo documento. Proverò a mantenere questo documento il più possibile esente

Commenti e correzioni
Se si hanno domande o commenti su questo documento, si inviino liberamente a Th
suggerimento o critica saranno i benvenuti. Se si trova un errore in questo documen
nella versione successiva. Grazie.

Per piacere non mi si inviino domande su problemi particolari con la propria distrib
distribuzioni di Linux. Ma proverò ad aggiungere qualsiasi soluzione mi si voglia sp

Introduzione 85
Linux HOWTO − Networking − Sommario

Ringraziamenti
Vogliamo ringraziare quanti hanno contribuito a questo documento (direttamente o

Byron A Jeff <byron@cc.gatech.edu>


Markus Rex <msrex@suse.de>
Miquel van Smoorenburg <miquels@cistron.nl>

Theo de Raadt è responsabile per il codice originale dei client yp. Swen Thuemmler
routine yp in libc (ancora basandosi sul lavoro di Theo). Thorsten Kukuk ha scritto
libc 2.x.

[Precedente] [Sommario]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Ringraziamenti 86
Feedback Glossario e informazioni generali
Glossario dei termini
In questo documento sono usati molti acronimi. Di seguito una breve descrizione
dei più importanti:

DBM
DataBase Management, una libreria di funzioni che mantiene le coppie
chiave−contenuto in una base di dati.

DLL
Dynamically Linked Library, una libreria linkata in esecuzione a un
programma eseguibile.

domainname
Un nome ``chiave'' usato dai client NIS per localizzare un server NIS
appropriato che serve questa chiave di dominio. Si noti che questo non
ha necessariamente nulla a che spartire con il ``dominio'' DNS (nome
macchina) delle macchine.

FTP
File Transfer Protocol, un protocollo usato per trasferire file tra due
computer.

libnsl
Name services library, una libreria di chiamate a name service
(getpwnam, getservbyname, ecc...) sugli Unix SVR4. La GNU libc la
usa per le funzioni di NIS(YP) e NIS+.

libsocket
Socket services library, una libreria di chiamta a servizi socket (socket,
bind, listen, etc...) su Unix SVR4.

NIS
Network Information Service, un servizio che fornisce informazioni che
devono essere note attraverso la rete a tutte le macchine nella rete. Il
supporto per NIS è presente nella libc standard di Linux, e nel seguito
verrà riferito come ``NIS tradizionale''.

NIS+
Network Information Service (Plus :−), in sostanza NIS anabolizzato.
NIS+ è stato progettato da Sun Microsystems Inc. come rimpiazzo di
NIS con una migliore sicurezza e gestione migliore di ``grosse''
installazioni.

NYS
Questo è il nome di un progetto e sta per NIS+, YP e Switch ed è gestito
da Peter Eriksson <peter@ifm.liu.se>. Contiene tra le altre cose una

Glossario e informazioni generali 87


Linux HOWTO − Networking − Sommario

completa reimplemetazione del codice di NIS (= YP) che usa le


funzionalità di Name Services Switch della libreria NYS.

NSS
Name Service Switch. Il file /etc/nsswitch.conf determina l'ordine delle
ricerche indicizzate (``lookup'') effettuate quando è richiesta una
determinata informazione.

RPC
Remote Procedure Call. Le routine RPC permettono ai programmi C di
effettuare chiamate a procedure su altre macchine attraverso la rete.
Quando si parla di RPC il più delle volte si intende la variante Sun RPC.

YP
Yellow Pages(tm), un marchio registrato in Gran Bretagna dalla British
Telecom plc.

TCP−IP
Transmission Control Protocol/Internet Protocol. È il protocollo di
comunicazione dei dati maggiormente usato nelle macchine Unix.

Alcune informazioni generali


Le quattro righe che seguono sono una citazione del Sun(tm) System & Network
Administration Manual:

``NIS era noto in precedenza come Sun Yellow Pages (YP) ma


il nome Yellow Pages(tm) è un marchio registrato in
Gran Bretagna da British Telecom plc e non può essere
usato senza autorizzazione.''

NIS sta per Network Information Service. Lo scopo è di fornire informazioni che
devono essere note attraverso la rete a tutte le macchine nella rete. Le
informazioni solitamente distribuite attraverso NIS sono:

• nomi di login/password/home directory (/etc/passwd)


• informazioni sui gruppi (/etc/group)

Se, per esempio, la voce della propria password è registrata nel database passwd
di NIS, si sarà in grado di connettersi su tutte le macchine nella rete che abbiano
un programma client NIS in esecuzione.

Sun è un marchio registrato da Sun Microsystems, Inc. e in licenza a SunSoft,


Inc.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Alcune informazioni generali 88


Linux HOWTO − Networking − Sommario

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 89


NIS, NYS o NIS+?
libc 4/5 con il NIS tradizionale o
NYS?
La scelta tra il ``NIS tradizionale'' o il codice NIS nella
libreria NYS è la scelta tra pigrizia e maturità contro
flessibilità e spirito d'avventura.

Il codice del ``NIS tradizionale'' è nella libreria C standard, è


in giro da parecchio e qualche volta soffre della sua età e
scarsa flessibilità.

Il codice NIS nella libreria NYS richiede la ricompilazione


della libreria libc per includere al suo interno il codice NYS
(oppure si può prendere una versione precompilata di libc da
qualcuno che l'ha già fatto).

Un'altra differenza è che il codice NIS tradizionale ha un po'


di supporto per i Netgroup (``gruppi di rete'') NIS, che il
codice NYS non ha. D'altra parte il codice NYS permette la
gestione delle shadow password in modo trasparente. Il codice
del ``NIS tradizionale'' non supporta le shadow password su
NIS.

glibc 2 e NIS/NIS+
Si dimentichi tutto questo se si ha la nuova libreria C 2.x della
GNU (detta anche libc6). Ha un reale supporto per NSS (name
switch service), che la rende davvero flessibile e contiene il
supporto per le seguenti mappe NIS/NIS+: aliases, ethers,
group, hosts, netgroups, networks, protocols, publickey,
passwd, rpc, services e shadow. La libreria C della GNU non
ha problemi con le shadow password assieme al NIS.

NIS o NIS+ ?
La scelta tra NIS e NIS+ è facile: usare NIS se non si deve
usare NIS+ o si hanno stringenti necessità di sicurezza. NIS+ è
molto più problematico da amministrare (è abbastanza facile
da gestire dal lato client, ma il lato server è orribile). Un altro
problema è che il supporto per NIS+ sotto Linux è ancora in
sviluppo: si deve usare l'ultimissima glibc 2.1. Esiste un port
del supporto NIS+ di glibc per libc5 come rimpiazzo
temporaneo.

NIS, NYS o NIS+? 90


Linux HOWTO − Networking − Sommario

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 91


Come funziona
Come funziona NIS
In una rete ci deve essere almeno una macchina che fa da
server NIS. Si possono anche avere più server NIS, ognuno
che serve un diverso ``dominio'' NIS, oppure si possono avere
server NIS cooperanti, nel qual caso uno di questi è il ``master
NIS server'', e tutti gli altri sono detti ``slave NIS server'' (per
un certo ``dominio'' NIS, ovviamente!), oppure si può avere
un mix delle due situazioni...

I server slave hanno solo copie delle basi di dati NIS e


ricevono queste copie dal master NIS server ogni qual volta ci
sono delle modifiche nelle basi di dati del server. A seconda
del numero di macchine nella propria rete e della sua solidità,
si può decidere di installare uno o più slave server. Ogni qual
volta un server NIS non risponde o oppure risponde troppo
lentamente ad una richiesta, il client NIS connesso a quel
server proverà a trovarne uno attivo o più veloce.

Le basi di dati NIS sono nel cosiddetto formato DBM,


derivato dalle basi di dati ASCII. Per esempio, i file
/etc/passwd e /etc/group possono essere direttamente
convertiti nel formato DBM usando il software di traduzione
da ASCII a DBM ``makedbm'', incluso con il software per il
server. Il master NIS server dovrebbe averle entrambe, sia la
base di dati ASCII che quella DBM.

I slave server saranno avvertiti di qualsiasi modifica nelle


mappe NIS (attraverso il programma ``yppush''), e
automaticamente scaricheranno le necessarie modifiche per
poter sincronizzare le loro basi di dati. Il client NIS non serve
lo facciano in quanto parlano sempre con il server NIS per
leggere le informazioni salvate nel suo database DBM.

Le vecchie versioni di ypbind fanno un broadcast per trovare


un server NIS funzionante. Questa cosa non è sicura, a causa
del fatto che chiunque può installare un server NIS e
rispondere alle interrogazioni di ypbind. Le versioni più
recenti di ypbind (ypbind−3.3 or ypbind−mt) possono ottenere
il nome del server da un file di configurazione e quindi non è
più necessario il broadcast.

Come funziona NIS+


NIS+ è una nuova versione di NIS di Sun. La maggiore
differenza tra NIS e NIS+ è che NIS+ ha il supporto per la

Come funziona 92
Linux HOWTO − Networking − Sommario

cifratura dei dati e l'autenticazione su RPC sicure.

Il modello di naming di NIS+ si basa su una struttura ad


albero. Ogni nodo nell'albero corrisponde a un oggetto NIS+,
del quale ne esistono sei tipi: directory, entry, group, link,
table e private.

La directory NIS+ che forma la radice dello spazio di nomi


(``namespace'') NIS+ è chiamata root directory. Esistono due
speciali directory NIS+: org_dir e groups_dir. La directory
org_dir consiste di tutte le tabelle di amministrazione, come
passwd, hosts, e mail_aliases. La directory groups_dir consiste
degli oggetti group di NIS+ usati per il controllo dell'accesso.
Con dominio NIS+ si fa riferimento alla collezione di org_dir,
groups_dir e delle loro directory superiori.

[Precedente] [Sommario] [Successivo]


RPC

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

Linux HOWTO − Networking 93


GTK+/GNOME
sviluppo applicazioni Il Portmapper RPC
Linux HOWTO: Installazione e configurazione
Per far funzionare tutti i software che verranno menzionati a breve si deve eseguire
Risorse il programma /usr/sbin/portmap. Alcune distribuzioni Linux hanno già l'apposito
codice nei file in /sbin/init.d/ o /etc/rc.d/ per avviarlo come demone. Tutto quel che
Feedback si deve fare è di attivarlo e riavviare la propria macchina Linux. Si legga la
documentazione della propria distribuzione Linux per sapere come fare.

Il portmapper RPC (portmap(8)) è un server che converte i numeri di programma


RPC in numeri di porta del protocollo TCP/IP (o UDP/IP). Deve essere eseguito
per poter fare della chiamate RPC (che è quanto fa il software del client NIS/NIS+)
ai server RPC (come un server NIS o NIS+) su quella macchina. Quando è avviato
un server RPC, questo dirà al portmap su quale numero di porta rimane in ascolto e
quali numeri di programmi RPC è pronto a servire. Quando un client intende fare
una chiamata RPC ad un dato numero di programma, per prima cosa contatta il
portmap sulla macchina server per determinare il numero della porta alla quale
inviare i pacchetti RPC.

Normalmente i server RPC standard sono avviati da inetd(8), cosicché portmap


deve essere in esecuzione prima di lanciare inetd.

Per RPC sicure, il portmapper ha bisogno del servizio Time. Ci si assicuri che tale
servizio sia abilitato in /etc/inetd.conf su tutti gli host:

#
# Il servizio Time è usato per le sincronizzazioni degli orologi
#
time stream tcp nowait root internal
time dgram udp wait root internal

IMPORTANTE: Non si dimentichi di riavviare inetd dopo aver modificato il suo


file di configurazione!

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

RPC
Glossario

Linux−FAQ

Il Portmapper RPC 94
Documenti: Cos'è necessario fare per mettere su un
Open Source Definition NIS?
GNU General Public License

La cattedrale e il bazaar Determinare se si è server, slave o client


Colonizzare la noosfera
Per rispondere a questa domanda si debbono considerare due casi:
Il calderone magico
1. La propria macchina sta per diventare parte di una rete dove esiste già un
Libri: server NIS
2. Non si ha ancora nessun server NIS nella propria rete
Italian crackdown

Open Sources Nel primo caso, si ha bisogno solo dei programmi client (ypbind, ypwhich, ypcat,
MediaMorfosi
yppoll, ypmatch). Il programma più importante è ypbind. Questo programma dev'es
sempre in esecuzione, ovvero deve sempre apparire nella lista dei processi. È un
GTK+/GNOME cosiddetto processo demone e deve essere avviato nei file di avvio del sistema (eg.
sviluppo applicazioni
/etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local). Prima si ha
Linux HOWTO: Installazione e configurazione ypbind in esecuzione, prima la propria macchina diventa un cliente NIS.
Risorse Nel secondo caso, se non si ha un server NIS, allora si avrà bisogno anche del
programma NIS per il server (solitamente chiamato ypserv). La sezione [*]
Feedback
(Configurare un Server NIS) descrive come mettere su un server NIS nella propria
macchina Linux usando l'implementazione di ``ypserv'' di Peter Eriksson e Thorsten
Kukuk. Si noti che a partire dalla versione 0.14 questa implementazione supporta il
concetto di master−slave di cui si è parlato nella sezione 4.1.

Esiste un altro server NIS libero, chiamato ``yps'', scritto da Tobias Reber in Germa
che supporta il concetto di master−slave, ma ha altre limitazioni oltre a non essere p
supportato da molto tempo.

Il software
La libreria di sistema ``/usr/lib/libc.a'' (versione 4.4.2 e superiore) o la libreria
condivisa ``/lib/libc.so.x'' contengono tutte le system call necessarie per portare a bu
fine la compilazione del software NIS per client e server. Con la GNU C Library 2
(glibc 2.x) serve anche /lib/libnsl.so.1.

Alcuni hanno riportato che NIS funziona solo con una versione di ``/usr/lib/libc.a''
4.5.21 o superiore, e quindi se si vuole andare sul sicuro non si usino libc più vecch
Il software per un client NIS può essere ottenuto da:

Sito Directory Nome File

ftp.kernel.org /pub/linux/utils/net/NIS yp−tools−2.2.tar.gz


ftp.kernel.org /pub/linux/utils/net/NIS ypbind−mt−1.4.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS ypbind−3.3.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS ypbind−3.3−glibc5.diff.gz
ftp.uni−paderborn.de /linux/local/yp yp−clients−2.2.tar.gz

Cos'è necessario fare per mettere su un NIS? 95


Linux HOWTO − Networking − Sommario

Una volta scaricato il software, si seguano le istruzioni distribuite con quest'ultimo.


yp−clients 2.2 è per l'uso con libc4 e libc5 fino alla versione 5.4.20. libc 5.4.21 e gli
2.x hanno bisogno di yp−tools 1.4.1 o successivi. I nuovi yp−tools 2.2 dovrebbero
funzionare con qualsiasi libc per Linux. Poiché ci sono alcuni bug nel codice NIS, n
si dovrebbe usare la libc 5.4.21−5.4.35. Si usi invece la libc 5.4.36 o successiva, o la
maggior parte dei programmi YP non funzionerà. ypbind 3.3 funzionerà anche lui c
tutte le librerie. Se si usa gcc 2.8.x o successivo, egcs o glibc 2.x, si deve aggiunger
patch ypbind−3.3−glibc5.diff a ypbind−3−3. Non si dovrebbe mai usare ypbind
distribuito assieme a yp−clients 2.2. ypbind−mt è un nuovo demone multithread che
bisogno di un kernel Linux 2.2 e di glibc 2.1 o successiva.

Il demone ypbind
Dopo aver compilato con successo il software si è pronti per installarlo. Un posto
adatto per il demone ypbind è la directory /usr/sbin. Alcuni potrebbero affermare ch
non è necessario ypbind su un sistema con NYS. Questo è sbagliato, in quanto ypwh
e ypcat ne hanno bisogno.

Ovviamente si deve fare tutto come root. Gli altri binari (ypwhich, ypcat, yppoll,
ypmatch) dovrebbero andare in una directory accessibile a tutti gli utenti, solitamen
/usr/bin.

I più recenti ypbind hanno un file di configurazione chiamato /etc/yp.conf. È possib


specificare al suo interno un server NIS. Per maggiori informazioni si veda la pagin
manuale di ypbind(8). Questo file è necessario anche per NYS. Un esempio:

ypserver voyager
ypserver defiant
ypserver ds9

Se il sistema può risolvere il nome degli host senza NIS, si può usare il nome,
altrimenti bisogna usare l'indirizzo IP. ypbind 3.3 ha un baco e userà solo l'ultima vo
(ypserver ds9 nell'esempio). Tutte le altre voci sono ignorate. ypbind−mt gestisce
correttamente questa cosa e usa il server che prima risponde.

Può essere una buona idea testare ypbind prima di incorporarlo nei file d'avvio. Per
testare ypbind si faccia quanto segue:

• Assicurarsi si aver impostato il proprio nome di dominio YP. Se non è


impostato allora si usi il comando:

/bin/domainname dominio.nis

dove dominio.nis dovrebbe essere una qualche stringa, solitamente NO


associata con il nome di dominio DNS della propria macchina! Il motivo è c
così diventa un po' più difficile per cracker esterni ottenere la base di dati de
password dal proprio server NIS. Se non si sa qual è il nome di dominio NI
della propria rete, si chieda al proprio amministratore di sistema/rete.

• Avviare ``/usr/sbin/portmap'' se non è già in esecuzione.

Il demone ypbind 96
Linux HOWTO − Networking − Sommario

• Creare la directory ``/var/yp'' se ancora non esiste.


• Avviare ``/usr/sbin/ypbind''.
• Usare il comando ``rpcinfo −p localhost'' per controllare se ypbind è stato in
grado di registrare i suoi servizi con il portmapper. L'output dovrebbe esser
qualcosa del tipo:

program vers proto port


100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 637 ypbind
100007 2 tcp 639 ypbind

oppure

program vers proto port


100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 758 ypbind
100007 1 udp 758 ypbind
100007 2 tcp 761 ypbind
100007 1 tcp 761 ypbind

a seconda della versione di ypbind che si sta usando.

• Si può anche eseguire ``rpcinfo −u localhost ypbind". Questo comando


dovrebbe produrre qualcosa di simile a

program 100007 version 2 ready and waiting

oppure

program 100007 version 1 ready and waiting


program 100007 version 2 ready and waiting

L'output dipende dipende dalla versione di ypbind installata. L'importante è


solo il messaggio ``version 2''.

A questo punto si dovrebbe essere in grado di usare i programmi client NIS come
ypcat, ecc... Per esempio, ``ypcat passwd.byname'' dovrebbe restituire l'intera base d
dati NIS delle password.

IMPORTANTE: Se si è saltata la procedura di test allora ci si assicuri di aver


impostato il nome di dominio e di aver creato la directory

/var/yp

Questa directory DEVE esistere affinché ypbind si avvii con successo.

Per controllare se il nome di dominio è impostato correttamente, si usi


/bin/ypdomainname degli yp−tools 2.2. Questo usa la funzione
yp_get_default_domain(), che è più restrittiva. Per esempio non permette il nome di
dominio ``(none)'', che è quello predefinito sotto Linux e che crea un sacco di probl

Il demone ypbind 97
Linux HOWTO − Networking − Sommario

Se il test funziona ora si possono modificare i file di avvio in modo che ypbind sia
avviato al boot del sistema e che quest'ultimo funzioni come client NIS. Ci si assicu
che il nome di dominio sia impostato prima di avviare ypbind.

Bene, è tutto. Si riavvii la macchina e si controllino i messaggi di boot per vedere se


ypbind è realmente avviato.

Impostare un client NIS usando il NIS tradizionale


Per la ricerca degli host si deve impostare (o aggiungere) ``nis'' alla riga relativa
all'ordine di ricerca nel proprio file /etc/host.conf. Si invita a leggere la pagina man
``resolv+.8'' per ulteriori dettagli.

Aggiungere le seguenti righe al proprio file /etc/passwd dei propri client NIS:

+::::::

Si possono usare anche i caratteri + e − per includere/escludere o modificare utenti.


si vuole escludere l'utente guest semplicemente si aggiunga −guest nel proprio file
/etc/passwd. Si vuole usare una shell diversa (e.g. ksh) per l'utente ``linux''? Nessun
problema, si aggiunga semplicemente ``+linux::::::/bin/ksh'' (senza le virgolette) al
proprio /etc/passwd. I campi che non si vogliono modificare dovrebbero essere lasc
vuoti. Si possono anche usare i Netgroups (``gruppi di rete'') per il controllo degli
utenti.

Per esempio, per permettere l'accesso di login a miquels, dth e ed, e a tutti i membri
netgroup sysadmin, pur mantenendo disponibili i dati di account di tutti gli altri uten

+miquels:::::::
+ed:::::::
+dth:::::::
+@sysadmins:::::::
−ftp
+:*::::::/etc/NoShell

Si noti che in Linux si può anche ridefinire il campo password, come si è fatto in
questo esempio. Si è rimossa la login ``ftp'', cosicché non sia più nota e non funzion
più l'ftp anonimo.

Il netgroup potrebbe essere qualcosa del tipo

sysadmins (−,software,) (−,kukuk,)

IMPORTANTE: La funzionalità dei netgroup è implementata a partire da libc 4.5.2


Se si ha una versione di libc precedente, qualsiasi utente nella base di dati NIS delle
password può accedere alla macchina linux se è in esecuzione ``ypbind''!

Impostare un client NIS usando NYS


Tutto ciò che serve è che il file di configurazione di NIS (/etc/yp.conf) punti al/ai
server corretto/i per le sue informazioni. Inoltre deve essere correttamente impostato

Impostare un client NIS usando il NIS tradizionale 98


Linux HOWTO − Networking − Sommario

file di configurazione del Name Services Switch (/etc/nsswitch.conf).

Si dovrebbe installare ypbind. Non è richiesto dalla libc, ma i tool NIS(YP) ne hann
bisogno.

Se si vuole usare la funzionalità di inclusione/esclusione utenti (+/−guest/+@admin


si deve usare ``passwd: compat'' e ``group: compat'' in nsswitch.conf. Notare che no
c'è un ``shadow: compat''! Si deve usare ``shadow: files nis'' in questo caso.

I sorgenti di NYS fanno parte dei sorgenti della libc 5. Quando si lancia configure,
rispondere ``NO'' la prima volta che appare la domanda ``Value correct'', e poi
rispondere ``YES'' a ``Build a NYS libc from nys''.

Impostare un client NIS usando glibc 2.x


La glibc usa il ``NIS tradizionale", così si deve avviare ypbind. Il file di configurazi
del Name Services Switch (/etc/nsswitch.conf) deve essere correttamente impostato
si usa la modalità compat per passwd, shadow o group, si deve aggiungere il ``+'' al
fine di questi file, e si può usare la funzionalità di inclusione/esclusione utenti. La
configurazione è esattamente identica a quella che si fa sotto Solaris 2.x.

Il File nsswitch.conf nsswitch.conf file


Il file del Network Services Switch /etc/nsswitch.conf determina l'ordine delle ricerc
(``lookup'') effettuate quando è richiesta una data informazione, proprio come il file
/etc/host.conf determina il modo con il quale sono effettuate le ricerche degli host. P
esempio, la riga:

hosts: files nis dns

specifica che le funzioni di ricerca degli host dovrebbero prima guardare nel file
/etc/hosts locale, poi effettuare un lookup NIS e alla fine una vera richiesta al domai
name service (/etc/resolv.conf e named), e a quel punto, se non viene trovata alcuna
corrispondenza, viene restituito un errore. Questo file deve essere leggibile per
qualsiasi utente! Si possono trovare maggiori informazioni nelle pagine man nsswit
e nsswitch.conf.5.

Un buon /etc/nsswitch.conf per NIS è:

#
# /etc/nsswitch.conf
#
# Un esempio di file di configurazione del Name Service Switch.
# Questo file dovrebbe essere ordinato in modo che i servizi più
# comuni siano all'inizio.
#
# La voce '[NOTFOUND=return]' indica che la ricerca di una voce
# dovrebbe fermarsi se la ricerca nella voce precedente non ha
# restituito niente. Si noti che se la ricerca fallisce per
# qualche altra ragione (come la mancata risposta del server NIS)
# allora la ricerca continua con la voce successiva.
#

Impostare un client NIS usando glibc 2.x 99


Linux HOWTO − Networking − Sommario

# Le voci ammesse sono:


#
# nisplus Usa NIS+ (NIS versione 3)
# nis Usa NIS (NIS versione 2), detto anche YP
# dns Usa DNS (Domain Name Service)
# files Usa file locali
# db Usa la base di dati /var/db
# [NOTFOUND=return] Ferma la ricerca se prima non è stato
# trovato niente
#

passwd: compat
group: compat
# Con libc5 si deve usare shadow: files nis
shadow: compat

passwd_compat: nis
group_compat: nis
shadow_compat: nis

hosts: nis files dns

services: nis [NOTFOUND=return] files


networks: nis [NOTFOUND=return] files
protocols: nis [NOTFOUND=return] files
rpc: nis [NOTFOUND=return] files
ethers: nis [NOTFOUND=return] files
netmasks: nis [NOTFOUND=return] files
netgroup: nis
bootparams: nis [NOTFOUND=return] files
publickey: nis [NOTFOUND=return] files
automount: files
aliases: nis [NOTFOUND=return] files

passwd_compat, group_compat e shadow_compat sono supportate solo da glibc 2.x


non ci sono regole shadow nel file /etc/nsswitch.conf, glibc userà le regole passwd p
le ricerche. Ci sono alcuni altri moduli di ricerca per glibc, come hesoid. Per maggio
informazioni si legga la documentazione di glibc.

Le password shadow con NIS


Le password shadow su NIS sono sempre una cattiva idea. Si perde la sicurezza che
shadow dà e sono supportate solo da poche librerie C per Linux. Un buon modo per
evitare le shadow password su NIS è di mettere solo gli utenti locali del sistema in
/etc/shadow. Si rimuovano le voci degli utenti NIS dal database shadow e si rimetta
le password in passwd. In questo modo si può usare shadow per il login di root e le
password normali per gli utenti NIS. Questo ha il vantaggio che funzionerà con
qualsiasi client NIS.

Linux

La sola libc per Linux che supporta le password shadow con NIS è la GNU C Libra
2.x. La libc5 per Linux non ha questo supporto. La libc5 per Linux non ha il suppor
per questa cosa. La libc5 per Linux compilata con il NYS abilitato ha un po' di
supporto. Ma tale supporto è gravemente bacato e in qualche caso non funziona con

Le password shadow con NIS 100


Linux HOWTO − Networking − Sommario

tutte le corrette voci shadow.

Solaris

Solaris non supporta le password shadow con NIS.

PAM PAM!shadow passwords

PAM non supporta le password shadow con NIS, in particolare pam_pwdb/libpwdb


non lo fa. Questo è un grosso problema per gli utenti di RedHat 5.x. Se si ha glibc e
PAM, è necessario modificare le voci in /etc/pam.d/*. Si rimpiazzino tutte le regole
pam_pwdb attraverso i moduli pam_auth_unix_*. A causa di un baco nel modulo
pam_unix_auth.so module questa cosa non funzionerà sempre.

Un esempio di file /etc/pam.d/login è questo:

#%PAM−1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_unix_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_unix_passwd.so
session required /lib/security/pam_unix_session.so

Per ``auth'' è necessario usare il modulo pam_unix_auth.so, per ``account'' il modulo


pam_unix_acct.so, per ``password'' il modulo pam_unix_passwd.so e per ``session''
modulo pam_unix_session.so.

[Precedente] [Sommario] [Successivo]


RPC

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successi
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

Solaris 101
GNU General Public License

La cattedrale e il bazaar Cosa serve per mettere su NIS+?


Colonizzare la noosfera

Il calderone magico
Il software NIS+
Libri: Il codice dei client NIS+ per Linux è stato sviluppato per la libreria C 2 della GNU.
un port per la libc5 di Linux, in quanto la maggior parte delle applicazioni commerc
Italian crackdown linkate con questa libreria e non è possibile ricompilarle per usare la glibc. Ci sono
Open Sources
libc5 e NIS+: non è possibile fare il link di questa con i programma statici, e i progr
compilati con questa non funzioneranno con altre versioni della libc5.
MediaMorfosi

GTK+/GNOME Ci si deve procurare e compilare GNU C Library 2.1 per piattaforme basate su Intel
sviluppo applicazioni Library 2.1.1 per piattaforme a 64−bit. Come sistema di partenza è necessaria una d
Linux HOWTO: Installazione e configurazione basata su glibc come Debian 2.x, RedHat 5.x o SuSE Linux 6.x.

Risorse Qualsiasi sia la distribuzione, è necessario ricompilare il compilatore gcc/g++, libstd


ncures. Per la RedHat, è necessario fare pesanti modifiche alla configurazione PAM
Feedback Linux 6.0, è necessario ricompilare il pacchetto shadow.

Il software per i client NIS+ può essere ottenuto da:

Sito Directory Nome File

ftp.funet.fi /pub/gnu/funet libc−*, glibc−crypt−*,


glibc−linuxthreads−*
ftp.kernel.org /pub/linux/utils/net/NIS+ nis−utils−19990223.tar.gz
ftp.kernel.org /pub/linux/utils/net/NIS+ pam_keylogin−1.2.tar.gz

Le distribuzioni basate su glibc possono essere scaricate da:

Sito Directory

ftp.debian.org /pub/debian/dists/slink
ftp.redhat.com /pub/redhat/redhat−5.2
ftp.suse.de /pub/SuSE−Linux/6.0

Per la compilazione della libreria C della GNU, si invita a seguire le istruzioni ricev
software. Qui è dove si può trovare la libc5 modificato, basata su NYS e con i sorge
che rimpiazzano quelli della libc5 standard:

Sito Directory Nome File

ftp.kernel.org /pub/linux/utils/net/NIS+
libc−5.4.44−nsl−0.4.10.tar.gz

Per maggiori informazioni e per gli ultimi sorgenti si dovrebbe guardare a


http://www.suse.de/ kukuk/linux/nisplus.htmlhttp://www.suse.de/~kukuk/linux/nisp

Impostare un client NIS+


IMPORTANTE: Per l'impostazione di un client NIS+, si legga la documentazione d
Solaris per sapere cosa fare dal lato server! Questo documento descrive solamente c

Cosa serve per mettere su NIS+? 102


Linux HOWTO − Networking − Sommario

lato client!

Dopo aver installato la nuova libc e i nis−tools, si creino le credenziali per il nuovo
server NIS+. Assicurarsi che portmap sia in esecuzione. Poi controllare che il propr
abbia la stessa ora del Server NIS+. Per le RPC sicure si ha solo una piccola finestra
minuti nella quale credenziali sono valide. Una buona idea è di eseguire xntpd su og
host. Dopo di questo, lanciare

domainname domimio.nisplus
nisinit −c −H <server NIS+>

per inizializzare il file d'avvio. Si legga la pagina man di nisinit per ulteriori opzioni
che il nome di dominio rimanga sempre impostato dopo un reboot. Se non si conosc
dominio NIS+ della propria rete, si chieda al proprio amministratore di sistema/rete

Ora si dovrebbe modificare il proprio file /etc/nsswitch.conf. Assicurarsi che il solo


dopo publickey sia nisplus ("publickey: nisplus"), e niente altro!

Dopo di che, avviare keyserv e assicurarsi che sia sempre avviato all'avvio del sistem

keylogin −r

per salvare la chiave segreta (``secretkey'') di root nel proprio sistema (spero si sia g
chiave pubblica (``publickey'') per il nuovo host nel server NIS+?).

Ora ``niscat passwd.org_dir'' dovrebbe mostrare tutte le voci nella base di dati passw

NIS+, keylogin, login e PAM


Quando un utente effettua il login, è necessario che imposti la sua chiave segreta in
è fatto lanciando ``keylogin''. Il programma di login del pacchetto shadow fa questa
dell'utente, se è stato compilato con la glibc 2.1. Per un programma di login con il su
PAM, si deve installare pam_keylogin−1.2.tar.gz e cambiare il file /etc/pam.d/login
pam_unix_auth, e non pwdb, che non supporta NIS+. Un esempio:

#%PAM−1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_keylogin.so
auth required /lib/security/pam_unix_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_unix_passwd.so
session required /lib/security/pam_unix_session.so

Il file nsswitch.conf
Il file del Network Services Switch /etc/nsswitch.conf determina l'ordine delle ricerc
("lookup") effettuate quando è richiesta una data informazione, proprio come il file
determina il modo con il quale sono effettuate le ricerche degli host. Per esempio, la

hosts: files nisplus dns

NIS+, keylogin, login e PAM 103


Linux HOWTO − Networking − Sommario

specifica che le funzioni di ricerca degli host dovrebbero prima guardare nel file /etc
locale, poi effettuare un lookup NIS e alla fine una vera richiesta al domain name se
(/etc/resolv.conf e named), e a quel punto, se non viene trovata alcuna corrisponden
restituito un errore.

Un buon file /etc/nsswitch.conf file per NIS+ è:

#
# /etc/nsswitch.conf
#
# Un esempio di file di configurazione del Name Service Switch.
# Questo file dovrebbe essere ordinato in modo che i servizi più
# comuni siano all'inizio.
#
# La voce '[NOTFOUND=return]' indica che la ricerca di una voce
# dovrebbe fermarsi se la ricerca nella voce precedente non ha
# restituito niente. Si noti che se la ricerca fallisce per
# qualche altra ragione (come la mancata risposta del server NIS)
# allora la ricerca continua con la voce successiva.
#
# Le voci ammesse sono:
#
# nisplus Usa NIS+ (NIS versione 3)
# nis Usa NIS (NIS versione 2), detto anche YP
# dns Usa DNS (Domain Name Service)
# files Usa file locali
# db Usa la base di dati /var/db
# [NOTFOUND=return] Ferma la ricerca se prima non è stato
# trovato niente
#

passwd: compat
# per libc5: passwd: files nisplus
group: compat
# per libc5: group: files nisplus
shadow: compat
# per libc5: shadow: files nisplus

passwd_compat: nisplus
group_compat: nisplus
shadow_compat: nisplus

hosts: nisplus files dns

services: nisplus [NOTFOUND=return] files


networks: nisplus [NOTFOUND=return] files
protocols: nisplus [NOTFOUND=return] files
rpc: nisplus [NOTFOUND=return] files
ethers: nisplus [NOTFOUND=return] files
netmasks: nisplus [NOTFOUND=return] files
netgroup: nisplus
bootparams: nisplus [NOTFOUND=return] files
publickey: nisplus
automount: files
aliases: nisplus [NOTFOUND=return] files

NIS+, keylogin, login e PAM 104


Linux HOWTO − Networking − Sommario

[Precedente] [Sommario] [Successi

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 105


Impostare un server NIS
Il programma server ypserv
Questo documento descrive solamente come impostare il server NIS ``ypserv''.

Il software per il server NIS lo si può trovare su:

Sito Directory Nome File

ftp.kernel.org /pub/linux/utils/net/NIS ypserv−1.3.6.tar.gz

Per maggiori informazioni si può dare un'occhiata anche a


http://www.suse.de/ kukuk/linux/nis.htmlhttp://www.suse.de/~kukuk/linux/nis.html

L'impostazione del server è la stessa sia per il NIS tradizionale che per NYS.

Si compili il software per generare i programmi ypserv e makedbm. È possibile


configurare ypserv per usare il file securenets oppure tcp_wrapper. Il tcp_wrapper è
molto più flessibile, ma un sacco di gente ha diversi problemi ad usarlo. Inoltre alcu
file di configurazione di tcp_wrapper possono causare spreco di memoria. Se si han
problemi con ypserv compilato per tcp_wrapper, lo si ricompili usando il file secure
Il comando ypserv −version mostrerà quale versione si sta usando.

Se si fa funzionare il proprio server come master, si determinino quali file si vuole s


disponibili tramite NIS e poi si aggiungano o rimuovano le voci apposite nella regol
``all'' in /var/yp/Makefile. Si dovrebbe comunque dare un'occhiata al Makefi
modificare le opzioni all'inizio del file.

C'è stato un solo grosso cambiamento tra ypserv 1.1 e ypserv 1.2. Dalla versione 1.2
ypserv fa il cache dei file handle. Ciò significa che si deve sempre lanciare makedbm
con l'opzione −c se si creano delle nuove mappe. Sincerarsi di usare il nuovo
/var/yp/Makefile di ypserv 1.2 o successivo, o si aggiunga l'opzione −c a
makedbm nel Makefile. Se non lo si fa, ypserv continuerà ad usare le vecchie mapp
non quelle aggiornate.

Ora si modifichino /var/yp/securenets e /etc/ypserv.conf. Per magg


informazioni, leggere le pagine di manuale di ypserv(8) e ypserv.conf(5).

Assicurarsi che il portmapper (portmap(8)) sia in esecuzione, e si avvii il server


ypserv. Il comando

% rpcinfo −u localhost ypserv

dovrebbe restituire qualcosa di simile a

program 100004 version 1 ready and waiting


program 100004 version 2 ready and waiting

Impostare un server NIS 106


Linux HOWTO − Networking − Sommario

La riga ``version 1'' potrebbe non esserci a seconda della versione di ypserv e della
configurazione usata. È necessaria solamente se si usano vecchi client SunOS 4.x.

Ora si generi la base di dati NIS (YP). Sul master, si lanci

% /usr/lib/yp/ypinit −m

Su uno slave, assicurarsi che ypwhich −m funzioni. Ciò significa che lo slave
dev'essere per prima cosa configurato come client NIS prima di poter eseguire

% /usr/lib/yp/ypinit −s masterhost

per installare l'host come slave NIS.

È tutto, il proprio server è attivo e in esecuzione.

Se si hanno grossi problemi, si può avviare ypserv e ypbind in modalità di debu


xterm separate. L'output di debug dovrebbe mostrare cosa non va.

Se si deve aggiornare una mappa, si esegua make nella directory /var/yp del NIS
master. Ciò aggiornerà una mappa se il file sorgente è stato modificato e invierà i fi
server slave. Non usare ypinit per aggiornare una mappa.

Non è male poi modificare il crontab di root nello slave server e aggiungere le righe
seguenti

20 * * * * /usr/lib/yp/ypxfr_1perhour
40 6 * * * /usr/lib/yp/ypxfr_1perday
55 6,18 * * * /usr/lib/yp/ypxfr_2perday

Ciò assicura che la maggior parte delle mappe NIS saranno mantenute aggiornate, a
se un aggiornamento è stato perso a causa di un malfunzionamento (down) dello sla
momento dell'aggiornamento sul master.

Uno slave può essere aggiunto in qualsiasi momento. Per prima cosa, assicurarsi ch
nuovo server slave abbia i permessi per contattare il master NIS. Poi eseguire

% /usr/lib/yp/ypinit −s masterhost

sul nuovo slave. Sul server master si aggiunga poi il nome del nuovo server slave in
/var/yp/ypservers e si esegua make in /var/yp per aggiornare le mappe.

Se si vuole restringere l'accesso al proprio serves NIS agli utenti, si deve impostare
server NIS come un client eseguendo ypbind e aggiungere le voci−più ("+") a
/etc/passwd a mezza via del file delle password. Le funzioni di libreria ignoreranno
le normali voci dopo la prima voce NIS, e otteranno le restanti informazioni attrave
NIS. In questo modo sono mantenute le regole di accesso NIS. Un esempio:

root:x:0:0:root:/root:/bin/bash
daemon:*:1:1:daemon:/usr/sbin:
bin:*:2:2:bin:/bin:
sys:*:3:3:sys:/dev:

Impostare un server NIS 107


Linux HOWTO − Networking − Sommario

sync:*:4:100:sync:/bin:/bin/sync
games:*:5:100:games:/usr/games:
man:*:6:100:man:/var/catman:
lp:*:7:7:lp:/var/spool/lpd:
mail:*:8:8:mail:/var/spool/mail:
news:*:9:9:news:/var/spool/news:
uucp:*:10:50:uucp:/var/spool/uucp:
nobody:*:65534:65534:noone at all,,,,:/dev/null:
+miquels::::::
+:*:::::/etc/NoShell
[ Tutti i normali utenti DOPO questa riga! ]
tester:*:299:10:Just a test account:/tmp:
miquels:1234567890123:101:10:Miquel van
Smoorenburg:/home/miquels:/bin/zsh

Quindi l'utente tester esisterà, ma avrà la shell impostata a /etc/NoShell. miquels avr
l'accesso normale.

In alternativa, si può modificare il file /var/yp/Makefile ed impostare NIS ad


usare un altro file di password come sorgente. Su sistemi grossi, i file delle passwor
dei gruppi NIS sono solitamente salvati in /var/yp/ypfiles/. Se lo si fa i norm
strumenti per l'amministrazione del file delle password come passwd, chfn e
adduser non funzioneranno più e si avrà bisogno di speciali strumenti fatti su mis

Comunque yppasswd, ypchsh e ypchfn ovviamente funzioneranno.

Il programma server yps


Per l'impostazione del server NIS ``yps'' si faccia riferimento al paragrafo precedent
L'impostazione del server ``yps'' è simile ma non esattamente la stessa, quindi si fac
attenzione se si prova ad applicare le istruzioni di ``ypserv'' a ``yps"! ``yps'' non è
supportato da alcun autore e contiene alcuni problemi di sicurezza. Quindi non è aff
consigliabile usarlo!

Il software per il server NIS ``yps'' può essere trovato su:

Sito Directory Nome File

ftp.lysator.liu.se /pub/NYS/servers yps−0.21.tar.gz


ftp.kernel.org /pub/linux/utils/net/NIS yps−0.21.tar.gz

Il programma rpc.ypxfrd
rpc.ypxfrd è usato per velocizzare i trasferimenti di grosse mappe NIS dal NIS mast
diversi slave. Se un server NIS slave riceve un messaggio che attesta la presenza di
nuova mappa, avvierà ypxfr per trasferire la nuova mappa. ypxfr leggerà il contenut
una mappa dal server master usando la funzione yp_all(). Questo processo può dura
diversi minuti quando esistono mappe molto grosse che devono essere salvate dalla
libreria di database.

Il server rpc.ypxfrd velocizza il processo di trasferimento permettendo si server NIS


slave di copiare semplicemente i file di mappa del master piuttosto che si costruisca

Il programma server yps 108


Linux HOWTO − Networking − Sommario

da soli la propria copia. rpc.ypxfrd usa un protocollo di trasferimento basato su RPC


cosicché non è necessario per la costruzione di nuove mappe.

rpc.ypxfrd può essere avviato da inetd. Però poiché si avvia molto lentamente, dovr
essere lanciato assieme a ypserv. È necessario avviare rpc.ypxfrd solo sul master.

Il programma rpc.yppasswdd
Ogni qual volta gli utenti cambiano le loro password, la base di dati NIS delle passw
e, probabilmente, altre basi di dati NIS che dipendono da questa dovrebbero essere
aggiornate. Il programma ``rpc.yppasswdd'' è un server che gestisce le modifiche de
password e assicura che le informazioni NIS sia aggiornate di conseguenza.
rpc.yppasswdd è ora integrato in ypserv. Non serve più il vecchio yppasswd−0.9.tar
yppasswd−0.10.tar.gz, e non dovrebbero essere più usati. Il rpc.yppasswd in ypserv
ha il pieno supporto per le shadow. yppasswd fa ora parte di yp−tools−2.2.tar.gz,

Si deve lanciare rpc.yppasswd solo nel server NIS master. Di default, gli utenti non
hanno il permesso di cambiare il loro nome o la loro shell di login. È possibile
permettere tali modifiche con le opzioni −e chfn o −e chsh.

Se i propri file passwd e shadow sono in una directory diversa da /etc, si deve
aggiungere l'opzione −D. Per esempio, se si sono messi tutti i file sorgente in /etc/yp
vuole che gli utenti possano cambiare la propria shell, si deve avviare rpc. yppasswd
con i seguenti parametri:

rpc.yppasswdd −D /etc/yp −e chsh

oppure

rpc.yppasswdd −s /etc/yp/shadow −p /etc/yp/passwd −e chsh

Non c'è molto altro da fare. Ci si deve solamente assicurare che rpc.yppasswdd
gli stessi file di /var/yp/Makefile. Gli errori saranno registrati usando syslog.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Il programma rpc.yppasswdd 109


Linux−FAQ Verificare l'installazione di NIS/NYS
Documenti: Se tutto è a posto (come dovrebbe essere), si dovrebbe essere essere in grado
di verificare l'installazione con pochi semplici comandi. Assunto, per
Open Source Definition
esempio, che il proprio file passwd sia gestito da NIS, il comando
GNU General Public License
% ypcat passwd
La cattedrale e il bazaar

Colonizzare la noosfera dovrebbe restituire il contenuto del proprio file NIS passwd. Il comando
Il calderone magico
% ypmatch userid passwd
Libri:
(dove userid è il nome di login di un utente arbitrario) dovrebbe restituire la
Italian crackdown voce relativa all'utente nel file NIS passwd. I programmi ``ypcat'' e
Open Sources
``ypmatch'' dovrebbero essere inclusi nella propria distribuzione di NIS
tradizionale o NYS.
MediaMorfosi

GTK+/GNOME Se un utente non riesce a fare il login, si esegua il programma seguente nel
sviluppo applicazioni client:
Linux HOWTO: Installazione e configurazione
#include <stdio.h>
#include <pwd.h>
Risorse
#include <sys/types.h>

Feedback int
main(int argc, char *argv[])
{
struct passwd *pwd;

if(argc != 2)
{
fprintf(stderr,"Uso: getwpnam nomeutente\n");
exit(1);
}

pwd=getpwnam(argv[1]);

if(pwd != NULL)
{
printf("name.....: [%s]\n",pwd−>pw_name);
printf("password.: [%s]\n",pwd−>pw_passwd);
printf("user id..: [%d]\n", pwd−>pw_uid);
printf("group id.: [%d]\n",pwd−>pw_gid);
printf("gecos....: [%s]\n",pwd−>pw_gecos);
printf("directory: [%s]\n",pwd−>pw_dir);
printf("shell....: [%s]\n",pwd−>pw_shell);
}
else
fprintf(stderr,"Utente \"%s\" non trovato!\n",argv[1]);

exit(0);
}

L'esecuzione di questo programma con il nome utente come parametro,


mostrerà tutte le informazioni che la funzione getpwnam restituisce per

Verificare l'installazione di NIS/NYS 110


Linux HOWTO − Networking − Sommario

quell'utente. Ciò dovrebbe mostrare quale voce non è corretta. Il problema


più comune è che il campo della password è stato sovrascritto con un ``*".

La GNU C Library 2.1 (glibc 2.1) contiene uno strumento chiamato gentent.
In un sistema di questo tipo si usi questo programma invece di quello qua
sopra. Si può provare:

getent passwd

getent passwd login

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Linux HOWTO − Networking 111


Risorse
Problemi comuni con NIS e soluzioni
Feedback
Ecco qui alcuni problemi riferiti da vari utenti:

1. Le librerie 4.5.19 hanno problemi. Il NIS non funzionerà con queste.


2. Se si aggiornano le librerie dalla 4.5.19 alla 4.5.24 allora il
programma su si rompe. Ci si deve procurarsi il comando su dalla
distribuzione Slackware 1.2.0. Non a caso questo è pure un posto
dove si possono prendere le librerie aggiornate.
8. Quando un server NIS va giù e poi ritorna su ancora, ypbind si avvia
mostrando un messaggio tipo:

yp_match: clnt_call:
RPC: Unable to receive; errno = Connection refused

e il login è rifiutato a quanti sono registrati nella base di dati NIS.


Provare a fare il login come root, si termini ypbind e lo si avvii
ancora. Un aggiornamento a ypbind 3.3 o successivo dovrebbe
aiutare.

3. Dopo l'aggiornamento di libc ad una versione successiva alla 5.4.20,


gli YP tools non funzionano più. Si ha bisogno degli yp−tools 1.2 o
successivi per la libc >= 5.4.21 e glibc 2.x. Per libc più recenti si
deve usare yp−clients 2.2. Gli yp−tools 2.0 dovrebbero funzionare
con tutte le librerie.
4. In libc 5.4.21 − 5.4.35 yp_maplist è rotta, c'è bisogno di libc 5.4.36 o
successiva, o alcuni programmi YP come ypwhich provocheranno un
segfault.
5. La libc 5 con il NIS tradizionale non supporta le password shadow su
NIS. Sono necessarie le libc5 + NYS oppure glibc 2.x.
6. ypcat shadow non mostra la mappa shadow. Questo è corretto in
quanto il nome della mappa shadow è shadow.byname, non shadow.
7. Solaris non usa sempre porte privilegiate. Quindi non si usi il
mangling delle password se si ha un client Solaris.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Problemi comuni con NIS e soluzioni 112


Glossario
Filza di Assilli Quotidiani (aka
Linux−FAQ
Frequently Asked Questions)
Documenti:
La maggior parte delle domande ora dovrebbero aver trovato risposta. Se ci sono
Open Source Definition
ancora questioni non risposte si può postare un messaggio in
GNU General Public License
comp.os.linux.networking
La cattedrale e il bazaar

Colonizzare la noosfera Abstract:


Il calderone magico
Questo documento illustra come connettere sotto Linux il proprio PC a un server
Libri: PPP, come usare PPP per collegare assieme due LAN e fornisce un metodo per
configurare come server PPP il proprio computer con Linux. Il documento inoltre
Italian crackdown
fornisce dell'aiuto per il debug di connessioni PPP non funzionanti. Traduzione di
Open Sources Giovanni Bortolozzo, borto@pluto.linux.it.
MediaMorfosi
Copyright
GTK+/GNOME
sviluppo applicazioni
Questo documento è distribuito sotto i termini della GPL (GNU Public License).
Linux HOWTO: Installazione e configurazione
Distribuzione
Risorse
Questo documento sarà postato su comp.os.linux.answers appena ne sarà prodotta
Feedback una nuova versione. È disponibile anche in formato HTML a:

• Linux Howto Index


<http://sunsite.unc.edu/mdw/linux.html#howto>
• http://www.interweft.com.au/other/ppp−howto/ppp−howto.htmlPPP−HOW

Altri formati (SGML, ASCII, PostScript, DVI) sono disponibili da


ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other−formatsHowtos − other
formats.

Poiché sunsite.unc.edu supporta un carico già molto elevato, si prega di usare il


mirror più vicino.

Ringraziamenti

Un crescente numero di persone mi ha fornito assistenza nella preparazione di


questo documento. Un ringraziamento particolare va a Al Longyear per la guida sul
PPP stesso (se qui ci sono errori sono miei e non suoi), a Greg Hankins (il
manutentore del sistema di HOWTO di Linux) e a Debi Tackett (della
MaximumAccess.com) per molti suggerimenti utili sullo stile, contenuto, ordine,
logica e chiarezza delle spiegazioni.

Infine, a quanti mi hanno contattato via email offrendomi commenti, vanno i miei
ringraziamenti. Come per tutti gli autori di HOWTO, la soddisfazione di aiutare è
tutto il compenso che riceviamo ed è abbastanza. Scrivendo questo HOWTO sto
ripagando in minima parte il debito che io − e tutti gli altri utenti di Linux −

Filza di Assilli Quotidiani (aka Frequently Asked Questions) 113


Linux HOWTO − Networking − Sommario

abbiamo verso quanti scrivono e mantengono il SO da noi scelto.

Note sulla traduzione

La traduzione di questo documento è opera mia e di un momento di pazzia: non mi


ero reso conto che fosse così lungo :−).

L'ultima versione, insomma quella che ha la pretesa di essere la più aggiornata e


corretta, di questa traduzione la troverete sempre (spero) nei vari siti che fanno da
mirror al progetto ILDP del Pluto (http://www.pluto.linux.it/ildp/).

Data la lunghezza di questo documento dentro ci saranno sicuramente errori, frasi


incomprensibili, e tutto lo schifo che la mia mente, sfruttando gli ultimi neuroni
buoni, può produrre quando è stanca. Quindi tutte le porcherie che troverete sono
colpa mia e vi invito (anzi se potessi vi obbligherei) a farmele notare, a spedirmi
correzioni, diff, consigli ecc.

Ringrazio in anticipo chiunque mi segnalerà tali errori, ed un ringraziamento


particolare va a Paolo Farinelli, che gentilmente si è preso l'onere di rivedere tutta
la mia traduzione e senza del quale vi trovereste fra le mani una inutile accozzaglia
di cavolate ed errori. Grazie Paolo! Avanzi una birra! :)

A tutti, buona (lunga) lettura.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Linux HOWTO − Networking 114


Il calderone magico

Libri:
Introduzione
Italian crackdown Il PPP (Point to Point Protocol) è un meccanismo per creare ed usare IP (Internet
Protocol) ed altri protocolli di rete su di una linea seriale − sia essa una connessione
Open Sources
seriale diretta (usando un cavo null−modem) su di una connessione stabilita con
MediaMorfosi telnet, oppure una connessione fatta tramite modem e linee telefoniche (e usando
naturalmente anche linee digitali come ISDN).
GTK+/GNOME
sviluppo applicazioni
Usando PPP, si può connettere il proprio PC Linux ad un server PPP ed accedere al
Linux HOWTO: Installazione e configurazione
risorse della rete alla quale è connesso il server (quasi) come si fosse connessi
Risorse
direttamente a quella rete.

Feedback Inoltre si può configurare il proprio PC Linux come server PPP, cosicché gli altri
computer possano collegarsi, effettuando una richiesta di connessione (dial in), al
vostro computer ed accedere alle risorse di quest'ultimo e/o della rete a cui è
connesso.

Poiché PPP è un sistema peer−to−peer (``da pari a pari''), si può usare PPP su due P
Linux per connettere assieme due reti (o una rete locale con Internet), creando una
Wide Area Network (WAN).

Una delle differenze sostanziali tra PPP e una connessione Ethernet è ovviamente la
velocità − una connessione Ethernet standard opera teoricamente con una velocità d
trasferimento dati (throughput) massima di 10 Mbs (Mega − milioni di bit al
secondo), mentre un modem analogico opera a velocità sino a 56 kbps (kilo −
migliaia di bit al secondo).

Inoltre, a seconda del tipo di connessione PPP, ci possono essere alcune limitazioni
nell'uso di alcune applicazioni e servizi.

Client e server
PPP è in sostanza un protocollo peer to peer; non c'è (teoricamente) alcuna
differenza tra la macchina che fa la chiamata (dial) e la macchina alla quale questa è
fatta. Comunque, per amor di chiarezza, è utile pensare in termini di server e client

Quando si fa la chiamata in un sito per stabilire la connessione PPP, si è un client.


La macchina a cui ci si connette è il server.

Quando si configura una macchina Linux per ricevere e gestire connessioni PPP in
ingresso, si sta configurando un server PPP.

Qualsiasi PC Linux può essere server e client PPP, anche contemporaneamente se s


ha più di una porta seriale (e modem se necessario). Perciò, per come è stato pensato
il PPP, non c'è differenza tra client e server una volta effettuato il collegamento tra l
due macchine.

Questo documento fa riferimento alla macchina che inizia la chiamata (che fa il dial
in) come il CLIENT, mentre la macchina che risponde al telefono, verifica

Introduzione 115
Linux HOWTO − Networking − Sommario

l'autenticità della richiesta di dial in (usando nome utente, password e probabilment


altri meccanismi) sarà indicata come il SERVER.

L'uso del PPP come un client per collegare una o più macchine in Internet è,
probabilmente, quello a cui molti sono interessati.

La procedura descritta in questo documento permetterà di stabilire e automatizzare l


propria connessione a Internet.

Questo documento guiderà anche nella configurazione di un PC Linux come


server PPP e nel collegamento di due LAN (con instradamento − routing −
completo) usando PPP (cosa che viene frequentemente caratterizzata come
costituzione di un collegamento WAN − wide area network).

Differenze tra le distribuzioni di Linux


Ci sono molte distribuzioni di Linux e tutte hanno le proprie idiosincrasie e metodi
per fare le cose.

In particolare, esistono due metodi diversi seguendo uno dei quali una macchina
Linux (e Unix) viene praticamente avviata, configura le proprie interfacce e così via

Esistono sostanzialmente il sistema di inizializzazione BSD e il sistema di


inizializzazione System V. Se si gira per qualche newsgroup di Unix, si troveranno
spesso guerre di religione tra i sostenitori dei due sistemi. Se questo tipo di cose vi
solleticano, divertitevi a sprecare banda e partecipate!

In pratica le distribuzioni usate maggiormente sono

• Slackware
che usa il sistema di inizializzazione BSD
• Red Hat (e la sua ex associata Caldera)
che usa il sistema di inizializzazione SysV (sebbene in una forma
leggermente modificata)
• Debian
che usa il sistema di inizializzazione SysV

La inizializzazione in stile BSD tipicamente mantiene i propri file di inizializzazion


in /etc/... e questi sono:

/etc/rc
/etc/rc.local
/etc/rc.serial
(e possibilmente qualche altro file)

Di recente, qualche sistema di inizializzazione BSD usa una directory


/etc/rc.d... per conservare i file si inizializzazione invece di mettere tutto in
/etc.

Differenze tra le distribuzioni di Linux 116


Linux HOWTO − Networking − Sommario

L'inizializzazione System V mantiene i propri file di inizializzazione nelle directory


sotto /etc/... o /etc/rc.d/... e in diverse sotto directory dentro a queste:

drwxr−xr−x 2 root root 1024 Jul 6 15:12 init.d


−rwxr−xr−x 1 root root 1776 Feb 9 05:01 rc
−rwxr−xr−x 1 root root 820 Jan 2 1996 rc.local
−rwxr−xr−x 1 root root 2567 Jul 5 20:30 rc.sysinit
drwxr−xr−x 2 root root 1024 Jul 6 15:12 rc0.d
drwxr−xr−x 2 root root 1024 Jul 6 15:12 rc1.d
drwxr−xr−x 2 root root 1024 Jul 6 15:12 rc2.d
drwxr−xr−x 2 root root 1024 Jul 18 18:07 rc3.d
drwxr−xr−x 2 root root 1024 May 27 1995 rc4.d
drwxr−xr−x 2 root root 1024 Jul 6 15:12 rc5.d
drwxr−xr−x 2 root root 1024 Jul 6 15:12 rc6.d

Se si deve provare a scoprire dove vengono effettivamente configurati la propria


interfaccia Ethernet e l'instradamento di rete associato, si dovranno esaminare quest
file per trovare i comandi che lo fanno.

Programmi di configurazione del PPP specifici


delle distribuzioni
In alcune installazioni (per esempio Red Hat e Caldera), c'è un sistema di
configurazione di PPP sotto X Window. Questo HOWTO non copre tali strumenti
specifici delle distribuzioni. Se si hanno problemi con questi si contatti direttamente
il distributore!

Per gli utenti di Red Hat 4.x, ora c'è un http://www.interweft.com.auRed Hat
PPP−TIP nell'area delle risorse per Linux e anche a http://www.redhat.comRed Hat
Software nell'area del supporto.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Programmi di configurazione del PPP specifici delle distribuzioni 117


Open Source Definition

GNU General Public License Numeri IP


La cattedrale e il bazaar
Qualsiasi dispositivo che è connesso ad Internet deve avere il proprio
Colonizzare la noosfera ed unico numero IP. Questi sono assegnati centralmente da
Il calderone magico un'autorità designata in ogni paese.

Libri: Se si connette una rete locale (LAN) ad Internet, si DEVE usare per
ognuno dei computer e dei dispositivi presenti nella propria LAN, un
Italian crackdown numero IP compreso nel range assegnato. NON SI DEVONO
Open Sources prendere numeri a caso e usarli per connettersi ad un'altra LAN (let
alone the Internet). Alla meno peggio semplicemente non funzionerà
MediaMorfosi
affatto e si può causare un disastro totale in quanto i numeri IP
GTK+/GNOME 'rubati' interferiranno con le comunicazione di un'altro computer che
sviluppo applicazioni
sta già usando i numeri IP che ci si è inventati.
Linux HOWTO: Installazione e configurazione
Si noti che i numeri IP usati in questo documento (con alcune
Risorse eccezioni) sono fra la serie dei 'numeri di reti non connesse' che sono
riservati per l'uso in reti che non sono (né mai saranno) connesse a
Feedback Internet.

Questi numeri IP sono dedicati in particolare a LAN che non si


connettono a Internet. Queste sono le sequenze di numeri IP:

• Un Indirizzo di Rete di Classe A


10.0.0.0 (netmask 255.0.0.0)
• 16 Indirizzi di Rete di Classe B
172.16.0.0 − 172.31.0.0 (netmask 255.255.0.0)
• 256 Indirizzi di Rete di Classe C Class
192.168.0.0 − 192.168.255.0 (netmask 255.255.255.0)

Se si ha una LAN per la quale l'autorità responsabile del proprio


paese non ha allocato numeri IP, per le proprie macchine si dovrebbe
usare uno dei numeri di rete nelle sequenze suddette.

Questi numeri non dovrebbero mai essere usati su Internet.

Comunque, possono essere usati per la Ethernet locale su una


macchina che è connessa a Internet. Questo perché i numeri IP in
realtà sono allocati su un'interfaccia di rete, non ad un computer.
Così, mentre la propria interfaccia Ethernet può usare 10.0.0.1 (per
esempio), quando ci si aggancia ad Internet usando PPP, alla propria
interfaccia PPP sarà assegnato un altro (e valido) numero IP dal
server. Il proprio PC sarà connesso ad Internet mentre non lo saranno
gli altri computer nella propria LAN.

Comunque, usando Linux e le funzionalità dell'IP Masquerade (noto


anche come NAT − Network Address Translation) di Linux e il
software ipfwadm, si può connettere la propria LAN ad Internet (con
alcune restrizioni di servizi), anche se non si hanno numeri IP validi

Numeri IP 118
Linux HOWTO − Networking − Sommario

per le macchine nella propria Ethernet.

Per maggiori informazioni su come far ciò si veda l'IP Masquerade


mini−HOWTO a
http://sunsite.unc.edu/mdw/HOWTO/mini/IP−MasqueradeLinux IP
Masquerade mini HOWTO

Alla maggior parte degli utenti, che sono connessi con una macchina
ad un fornitore di servizi Internet tramite PPP, non sarà necessario
ottenere un numero IP (o meglio un numero di rete).

Se si vuole connettere una piccola rete LAN ad Internet, molti


Internet Service Provider (ISP) possono fornire una sottorete
dedicata (una sequenza specifica di numeri IP) presa dal loro spazio
di indirizzi IP (ovvero dalla serie di indirizzi IP a loro assegnati o da
loro richiesti). In alternativa si usi l'IP Masquerading.

Per gli utenti, che si connettono con un PC ad Internet tramite un


ISP, molti provider usano l'assegnamento dinamico dei numeri IP.
Cioè, come parte del processo di connessione, il servizio PPP che si
contatta dirà alla propria macchina quale numero IP usare per
l'interfaccia PPP durante la sessione corrente. Questo numero non
sarà lo stesso ogni volta che ci si connette al proprio ISP.

Con i numeri IP dinamici, non si ottiene lo stesso numero IP ogni


volta che ci si connette. Ciò ha conseguenze per le applicazioni di
tipo server sulla propria macchina Linux come sendmail, ftpd, http e
così via. Questi servizi si basano sul presupposto che il computer che
offre il servizio sia accessibile tutto il tempo allo stesso numero IP (o
almeno allo stesso fully qualified domain name − FQDN − e che sia
disponibile la risoluzione DNS del nome in indirizzo IP).

Le limitazioni del servizio dovute all'assegnamento dinamico del


numero IP (e modi per aggirarle, dove possibile) sono discusse
successivamente nel documento.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Linux HOWTO − Networking 119


Linux HOWTO − Networking − Sommario

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Numeri IP 120
Scopi di questo documento
Configurazione di un client PPP
Questo documento fornisce una guida per chi intenda usare
Linux e il PPP per la connessione ad un server PPP e la
creazione di una connessione IP usando PPP. Assume che il
PPP sia stato compilato ed installato nella propria macchina
Linux (ma brevemente ripassa la
riconfigurazione/ricompilazione del kernel per includerne il
supporto).

Sebbene DIP (il metodo standard per creare una connessione


SLIP) possa essere usato per impostare una connessione PPP,
gli script DIP sono generalmente piuttosto complessi. Per
questa ragione questo documento NON tratta l'uso di DIP per
impostare una connessione PPP.

Piuttosto questo documento descrive il software PPP standard


di Linux (chat/pppd).

Collegare due LAN o una LAN a


Internet usando PPP
Questo documento fornisce le informazioni (di base) per
collegare due LAN o una LAN ad Internet usando PPP.

Configurazione di un server PPP


Questo documento fornisce una guida su come configurare il
proprio PC Linux come server PPP (permettendo ad altri di
connettervisi e stabilire una connessione).

Si dovrebbe notare che c'è una miriade di modi per


configurare Linux come un server PPP. Questo documento
illustra un metodo usato dall'autore per impostare diversi
piccoli server PPP (ognuno di 16 modem).

Questo metodo funziona, comunque non è necessariamente il


migliore.

L'uso di PPP su una connessione


diretta null modem
Questo documento fornisce una breve panoramica sull'uso di
PPP per collegare due PC tramite un cavo null modem. In
questo modo è anche possibile connettere altri SO a Linux.

Scopi di questo documento 121


Linux HOWTO − Networking − Sommario

Per farlo si deve consultare la documentazione per il sistema


operativo che interessa.

Questo documento al momento non


tratta...
• La compilazione del demone PPP
Si veda la documentazione distribuita assieme con la
versione di pppd che si usa.
• La connessione e la configurazione di un modem con
Linux (in dettaglio)
Si veda il Serial−HOWTO per l'inizializzazione
specifica del modem, e si veda
http://www.in.net/info/modems/index.htmlModem
Setup Information per informazioni che possono
essere d'aiuto nella configurazione del proprio
modem.
• L'uso di DIP per stabilire connessioni PPP
Si usi chat invece...
• L'uso di sock o di IP Masquerade
Ci sono già documenti molto buoni che coprono
questi due pacchetti.
• L'uso di diald per instaurare automaticamente la
connessione
Si veda la documentazione di diald per maggiori
informazioni.
• L'uso di EQL per usare due modem assieme in uno
stesso collegamento PPP.
• Metodi di connessione PPP specifici delle
distribuzioni (come il network configuration tool di
Red Hat 4.x).
Si veda la distribuzione per la documentazione sul
metodo usato.
• Il crescente numero di programmi disponibili per
automatizzare la configurazione di PPP
Si veda la documentazione appropriata.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Questo documento al momento non tratta... 122


Linux HOWTO − Networking − Sommario

Cos'è OpenPress Linux HOWTO − Networking


Glossario [Precedente] [Sommario] [Successivo]
Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 123


Versioni del software trattate
Questo HOWTO assume che si usi un kernel di Linux 1.2.x
con il software di PPP 2.1.2 oppure Linux 1.3.X/2.0.x e PPP
2.2.

Al momento della stesura di questo HOWTO, l'ultima


versione ufficiale disponibile di PPP per Linux era ppp−2.2f.
La nuova versione (ppp−2.3) è ancora in beta.

È possibile usare PPP 2.2.0 con kernel 1.2.13. Ciò richiede


delle patch per il kernel. Si raccomanda agli utenti del kernel
versione 1.2.13 di installare il ppp−2.2 in quanto corregge
diversi bug.

Si dovrebbe notare, in particolare, che non è possibile


usare il software PPP 2.1.2 con i kernel di Linux versione
2.0.x

Si noti che questo documento NON discute i problemi causati


dall'uso dei moduli caricabili del kernel 2.0.x. Si veda il
kerneld mini−HOWTO e la documentazione kernel/module
del 2.0.x (nei sorgenti di Linux 2.0.x in
/usr/src/linux/Documentation/...).

Poiché questo documento è pensato per assistere i nuovi


utenti, si raccomanda fortemente di usare la versione del
kernel di Linux e la giusta versione di PPP, che siano
notoriamente stabili assieme.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Versioni del software trattate 124


Open Source Definition

GNU General Public License Altri documenti utili/importanti


La cattedrale e il bazaar
Gli utenti sono invitati a leggere:
Colonizzare la noosfera

Il calderone magico • la documentazione distribuita con il pacchetto PPP;


• le pagine di manuale di chat e pppd;
Libri: (si usi man chat e man pppd per vederle)
• la Linux Network Administration Guide (NAG);
Italian crackdown si veda
Open Sources http://sunsite.unc.edu/mdw/LDP−books/nag−1.0/nag.htmlThe
Network Administrators' Guide
MediaMorfosi
• il Net−2/3 HOWTO;
GTK+/GNOME si veda
sviluppo applicazioni
http://sunsite.unc.edu/mdw/HOWTO/NET−2−HOWTO.htmlLinux
Linux HOWTO: Installazione e configurazione NET−2/3−HOWTO
• La documentazione del kernel di Linux installata in
Risorse /usr/src/linux/Documentation quando si installa il
codice sorgente di Linux;
Feedback • La modem setup information page − si veda
http://www.in.net/info/modems/index.htmlModem Setup
Information
• Gli eccellenti libri su Unix/Linux pubblicati da O'Reilly and
Associates. Si veda http://www.ora.com/O'Reilly and
Associates On−Line Catalogue. Se si è nuovi a Unix/Linux, si
corra (non si cammini) al più vicino negozio di libri di
computer e se ne comprerino un po'!
• La PPP−FAQ mantenuta da Al Longyear, disponibile da
ftp://sunsite.unc.edu/pub/Linux/docs/faqsLinux PPP−FAQ.
Questa contiene un sacco di informazioni utili nel formato
domanda/risposta molto utili quando si vuole capire perché il
PPP non funziona correttamente.
• Il crescente numero di libri su Linux di diverse case editrici ed
autori;
Si suggerisce di controllare l'attualità di tali libri. Lo sviluppo
di Linux e le distribuzioni tendono ad evolvere abbastanza
rapidamente, mentre la revisione di libri si muove (solitamente)
molto più lentamente! Comperare un libro eccellente (e ce ne
sono tanti) che ora sia obsoleto causerà considerevole
confusione e frustrazione ai nuovi utenti.

In generale il miglior punto di partenza per la documentazione su Linux


è http://sunsite.unc.edu/mdw/The Linux Documentation Project Home
Page. La tendenza è di revisionare abbastanza regolarmente gli
HOWTO.

Sebbene si possa usare questo documento per creare la propria


connessione PPP senza leggere nessuno dei suddetti documenti, se li si
legge si capirà molto di più di quello che si andrà a fare! Si sarà inoltre
in grado di risolvere da soli i problemi (o almeno si porranno domande

Altri documenti utili/importanti 125


Linux HOWTO − Networking − Sommario

un pelino più intelligenti nei newsgroup comp.os.linux.* e nelle


mailing list di Linux).

Questi documenti (oltre ad altri, tra cui gli RFC sull'argomento)


forniscono spiegazioni aggiuntive e più dettagliate di quanto possa
offrire questo HOWTO.

Se si connette una LAN ad Internet usando PPP, si avrà bisogno di una


ragionevole conoscenza sul networking TCP/IP. In aggiunta ai suddetti
documenti, un notevole beneficio lo si potrà trarre dai libri della
O'Reilly #`¨TCP/IP Network Administration#`¨ e #`¨Building
Internet Firewalls#`¨!

Utili mailing list su Linux


Ci sono molte mailing list su Linux che operano come mezzo di
comunicazione tra gli utenti con diversi livelli di abilità. In ogni modo
si sottoscrivano quelle che più interessano e si collabori fornendo la
propria esperienza e visione della cosa.

Un paio di regolette: alcune liste sono specificatamente destinate agli


utenti di più alto livello ("high powered") e/o a particolari
problematiche/argomenti. Mentre nessuno si preoccupa di chi assiste
passivamente alle discussioni (ovvero fa il 'lurk', seguendo le
discussioni ma non postando mai messaggi), è facile invece ricevere
commenti alquanto sgarbati (se non una serie completa di flame) nel
caso in cui si postasse un messaggio da principiante ("newbie") liste
non appropriate.

Ciò non è perché gli utenti guru odino i nuovi utenti, ma perché queste
liste esistono per discutere argomenti particolari a particolari livelli di
difficoltà.

Ad ogni modo si sottoscrivano le liste aperte, ma si mantengono i


propri commenti su argomenti inerenti alla lista!

Un buon punto di partenza per le mailing list su Linux è


http://summer.snu.ac.kr/ djshin/linux/mail−list/index.shtmlLinux
Mailing List Directory

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Utili mailing list su Linux 126


Linux HOWTO − Networking − Sommario

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 127


Panoramica di quello che va fatto per
usare come client il PPP
Questo documento contiene un sacco di informazioni che aumentano ad ogni
versione dello stesso!

Di conseguenza, questo paragrafo intende fornire una concisa panoramica delle


azioni da fare per far sì che il proprio sistema Linux possa connettersi come client
ad un server PPP.

Trovare/installare il software
Se la propria distribuzione Linux non contiene il software per il PPP, lo si può
scaricare da
ftp://sunsite.unc.edu/pub/Linux/system/Network/serial/ppp/ppp−2.2.0f.tar.gzil
demone PPP di Linux.

Al momento questa è l'ultima versione ufficiale. Comunque, si scelga l'ultima


versione disponibile da questo sito (ppp−2.3 era in versione beta quando stavo
scrivendo questo documento e dovrebbe essere rilasciato tra poco).

Il pacchetto PPP contiene le istruzioni su come compilare ed installare il software,


quindi questo HOWTO non lo spiegherà!

Compilare il supporto per il PPP nel kernel


Il PPP in Linux si compone di due parti

• il demone PPP menzionato prima


• il supporto per il PPP nel kernel

Molte distribuzioni forniscono di default il supporto a livello kernel per il PPP nei
loro kernel di installazione, ma altre non lo fanno.

Se al boot il proprio kernel mostra un messaggio simile a

PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.


PPP line discipline registered.

il proprio kernel ha il supporto per il PPP compilato al suo interno.

Detto questo, probabilmente si vorrà comunque compilare il proprio kernel


qualsiasi sia la propria distribuzione, in modo da ottenerne uno che usi in modo più
efficiente le risorse del sistema data la propria configurazione hardware. Non è
male ricordare che il kernel deve risiedere completamente in memoria principale
(non può mai essere swappato fuori da essa) e quindi mantenere il kernel più
piccolo possibile può essere solo un vantaggio nelle macchine con poca memoria.

Panoramica di quello che va fatto per usare come client il PPP 128
Linux HOWTO − Networking − Sommario

Questo documento fornisce le istruzioni essenziali per ricompilare il kernel nel


paragrafo [*] (Configurare il proprio Kernel di Linux).

Per maggiori dettagli, si veda il Kernel−HOWTO a


http://sunsite.unc.edu/mdw/HOWTO/Kernel−HOWTO.htmlThe Linux Kernel
HOWTO

Informazioni da chiedere al proprio ISP


Il server PPP può essere configurato in un'infinità di modi. Per potersi connettere al
proprio ISP (o al server PPP della propria organizzazione per accedere alla propria
intranet), si debbono ottenere un po' di informazioni sul funzionamento del server
PPP.

Poiché si sta usando Linux, si possono incontrare alcune difficoltà con il supporto
utenti di alcuni ISP (e del server PPP per la intranet al lavoro) che sono a
conoscenza solo di client MS Windows.

Comunque, un numero sempre crescente di ISP usano Linux per fornire il loro
servizio − e Linux sta penetrando pure nell'ambiente aziendale, perciò, se si è
fortunati non si incotreranno resistenze.

Il paragrafo [*] (Quali informazioni si debbono conoscere sul server PPP) dirà
quello che si deve sapere sul server PPP al quale ci si vuole connettere e come
trovare le informazioni che si debbono conoscere.

Configurare il proprio modem e la porta seriale


Per potersi connettere ad un server PPP e ottenere la velocità di trasferimento
migliore possibile, si deve configurare correttamente il proprio modem.

Similmente, si devono configurare correttamente le porte seriali sui propri modem e


sul computer.

Il paragrafo [*] (Configurare il proprio modem e la porta seriale) fornisce


informazioni in proposito.

Configurare la risoluzione da nome a indirizzo


(DNS)
Oltre ai file che lanciano PPP ed effettuano il login automatico nel server PPP, c'è
un certo numero di file di configurazione che devono essere impostati per
permettere al proprio computer di risolvere (``convertire'') nomi come
www.interweft.com.au negli indirizzi IP in effetti usati per contattare quel
computer. Questi sono:

• /etc/resolv.conf
• /etc/host.conf

Informazioni da chiedere al proprio ISP 129


Linux HOWTO − Networking − Sommario

Si veda il paragrafo [*] (Configurare la Risuluzione da Nome ad Indirizzo) per i


dettagli.

In particolare, NON è necessario che si faccia girare un name server nel proprio PC
Linux per potersi connettere ad Internet (sebbene lo si possa comunque fare). Tutto
quel che si deve conoscere è l'indirizzo IP di almeno un name server che si possa
usare (preferibilmente quello del proprio ISP).

PPP e Privilegi di root


Lo stabilire un collegamento PPP tra la propria macchina Linux ed un altro server
PPP richiede la manipolazione dei dispositivi di rete (``network device'')
(l'interfaccia PPP è un'interfaccia di rete) e della tabella di instradamento del kernel
(``kernel routing table''), e quindi pppd necessita dei privilegi di root.

Per i dettagli si veda la sezione [*] (L'uso di PPP e i privililegi di root).

Verificare i file del PPP della propria


distribuzione e impostare le opzioni del PPP
Ci sono alcuni file di configurazione che debbono essere impostati per rendere
operativo il PPP. Nella distribuzione di PPP ci sono alcuni esempi e questo
paragrafo mostra quali file si dovrebbe avere:

/etc/ppp/options
/etc/ppp/scripts/ppp−on
/etc/ppp/scripts/ppp−on−dialer
/etc/ppp/options.tpl

Può essere necessario creare alcuni altri file a seconda di cosa esattamente si ha
intenzione di fare con PPP:

/etc/ppp/options.ttyXX
/etc/ppp/ip−up
/etc/ppp/pap−secrets
/etc/ppp/chap−secrets

Inoltre, il demone PPP può usare un numero enorme di opzioni in riga di comando
ed è importante usare quelle giuste; questa sezione quindi fa una panoramica sulle
opzioni standard del PPP e aiuta nella scelta delle opzioni che andrebbero usate.

Per i dettagli si veda Impostare i file di connessione del PPP ([*]).

Se il proprio server PPP usa PAP (Password


Authentication Protocol)
Molti server PPP di ISP ed aziende usano PAP. Se il proprio server non richiede
che si usi PAP (se si può fare manualmente login e si riceve la richiesta normale di
nome e password in modo testo, il server non usa PAP) si può tranquillamente

PPP e Privilegi di root 130


Linux HOWTO − Networking − Sommario

saltare questa sezione.

Invece di fare il login nel server usando il nome utente e la password quando
richieste per entrare nel server, un server PPP che usa PAP non richiede un login in
modo testo.

Le informazioni per l'autentificazione dell'utente vengono piuttosto scambiante


come parte del protocollo di controllo di connessione (``link control protocol'' −
LCP) che costituisce la prima parte dell'instaurazione del collegamento PPP.

Il paragrafo [*] (Se il proprio server PPP usa PAP (Password Authentication
Protocol)) fornisce informazioni sui file da impostare per stabilire una connessione
PPP usando PAP.

Connettersi a mano a un server PPP


Dopo aver impostato i file di base, è una buona idea verificarli connettendosi a
mano (usando minicom o seyon) e lanciando pppd sulla propria macchina Linux.

Si veda la sezione [*] (Instaurare manualmente una connessione PPP) per tutti i
dettagli.

Automatizzare la propria connessione PPP


Una volta in grado di connettersi a mano, ci si può concentrare sulla creazione di un
insieme di script che automatizzeranno l'instaurazione della connessione.

La sezione [*] (Automatizzare la propria connessione − Creazione degli script di


connessione) copre la configurazione degli script necessari, concentrandosi
particolarmente su chat e sullo script di login sul server PPP.

Questa sezione discute gli script per l'autentificazione con nome utente e password
così come gli script per i server con autentificazione PAP/CHAP.

Chiudere la connessione
Una volta che la connessione è stabilita e funzionante, si deve essere in grado di
deattivarla.

Ciò è spiegato nel paragrafo [*] (Chiudere la connessione PPP).

Se ci sono problemi
Molti hanno problemi a far funzionare direttamente il PPP. Le variazioni nei server
PPP e in come questi richiedono sia configurata la connessione sono enormi.
Similmente, ci sono molte opzioni per PPP e addirittura alcune combinazioni di
queste non funzionano assieme.

Connettersi a mano a un server PPP 131


Linux HOWTO − Networking − Sommario

Oltre ai problemi di login e avvio del servizio PPP, ci sono problemi sia con i
modem che con le linee telefoniche!

Il paragrafo [*] (Risoluzione dei problemi) fornisce alcune informazioni basilari


sugli errori comuni, e su come isolarli e correggerli.

Lo scopo di tale paragrafo altro NON è se non quello di fornire le informazioni


basilari. Al Longyear mantiene la PPP−FAQ che contiene molte più informazioni
su questo argormento!

Dopo che la connessione è stabilita


Una volta che la connessione PPP è operativa (precisamente, almeno il livello IP è
operativo), il PPP di Linux può eseguire automaticamente uno script (come root)
per effettuare qualsiasi funzione che si può scrivere in uno script.

Il paragrafo [*] (Dopo che la connessione è attiva) fornisce informazioni sullo


script /etc/ppp/ip−up, i parametri che riceve da PPP e su come usarlo per fare
operazioni come scaricare la posta dal proprio provider, spedire qualsiasi email
nella coda di attesa di trasmissione nella propria macchina e così via.

Problemi con i servizi IP standard su una


connessione PPP a numero IP dinamico
Come notato nell'introduzione, i numeri IP dinamici hanno conseguenze sulla
capacità del proprio PC Linux di funzionare come server in Internet.

Il paragrafo [*] (Problemi con i servizi IP standard su una connessione PPP a


numero IP dinamico) fornisce informazioni sui (principali) servizi che ne risentono
e su cosa si può fare (se qualcosa è possibile) per ovviare a questi problemi.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo
Cos'è OpenPress

Glossario

Linux−FAQ

Dopo che la connessione è stabilita 132


Documenti: Configurare il proprio kernel di Linux
Open Source Definition
Per poter usare PPP, il proprio kernel di Linux dev'essere compilato includendone il
GNU General Public License Ci si procuri il codice sorgente del kernel di Linux se già non lo si ha − dovrebbe es
La cattedrale e il bazaar
/usr/src/linux in un file system standard di Linux.

Colonizzare la noosfera Si dia un'occhiata a questa directory − molte distribuzioni di Linux installano l'alber
Il calderone magico sorgenti (i file e le sottodirectory) durante il processo di installazione.

Libri: Al boot, il proprio kernel di Linux mostra svariate informazioni. Tra queste ci sono
quelle sul PPP, se il kernel ne include il supporto. Per vedere queste informazioni, s
Italian crackdown file di log del proprio sistema o si usi dmesg |less per visualizzare le informazi
Open Sources schermo. Se il proprio kernel include il supporto per il PPP, si dovrebbe vedere una
questo genere:
MediaMorfosi

GTK+/GNOME PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
sviluppo applicazioni PPP line discipline registered.
Linux HOWTO: Installazione e configurazione
(questa è per la serie 2.0.x di kernel di Linux).
Risorse
I sorgenti del kernel di Linux possono essere reperiti via ftp da sunsite.unc.ed
Feedback uno dei suoi (molti) mirror.

Installare i sorgenti del kernel di Linux


Quanto segue sono le istruzioni in breve per procurarsi ed installare i sorgenti del ke
Linux. Informazioni più complete le si può trovare nel
http://sunsite.unc.edu/mdw/HOWTO/Kernel−HOWTO.htmlLinux Kernel HOWTO
poter installare e compilare il kernel di Linux, si deve essere loggati come root.

1. Passare alla directory /usr/src


cd /usr/src
2. Controllare in /usr/src/linux se già ci sono installati i sorgenti.
3. Se non si hanno i sorgenti, li si prenda dalla
ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0directory dei sorgenti del kernel
o nel mirror più vicino. Se si cerca una delle prime versione del kernel (com
1.2.X), queste sono conservate nella
ftp://sunsite.unc.edu/pub/Linux/kernel/olddirectory dei sorgenti dei vecchi k
Linux.
4. Si scelga il kernel appropriato, solitamente il più recente fra quelli disponib
sito. Lo si scarichi e si metta il file tar dei sorgenti in /usr/src.
Nota: un file 'tar' è un archivio − probabilmente compresso (come lo sono i
dei sorgenti del kernel di Linux) − che contiene molti file in diverse directo
l'equivalente Linux di un file zip multidirectory.
5. Se già si hanno i sorgenti di Linux installati si debbono rimuovere i vecchi s
Si usi il comando
rm −rf /usr/src/linux
6. Ora si decomprimano e si estraggano i sorgenti usando il comando
tar xzf linux−2.0.XX.tar.gz

Configurare il proprio kernel di Linux 133


Linux HOWTO − Networking − Sommario

7. Adesso, si faccia cd /usr/src/linux e si legga il file README. Que


contiene un'eccellente spiegazione su come configurare e compilare un nuo
Lo si legga (può essere una buona idea stamparlo per averne una copia sotto
durante la compilazione, finché non la si è fatta abbastanza volte da conosce
minimo dettaglio).

Riconoscere il proprio hardware


Se si ha intenzione di ricompilare il kernel si DEVE sapere quali schede/dispositivi
installati nel proprio PC!!! Per alcuni dispositivi (come le schede audio) ci sarà biso
conoscere anche le diverse impostazioni (come IRQ, indirizzi di I/O e così via).

Compilazione del kernel − il kernel di Linux 1.2.13


Per iniziare il processo di configurazione, si seguano le istruzione nel file README
installato con i sorgenti. La configurazione viene avviata con

make config

Per poter usare PPP, si deve configurare il kernel per includere il supporto per il PP
bisogno sia di pppd sia del supporto nel kernel).

PPP (point−to−point) support (CONFIG_PPP) [n] y

Si risponda alle altre domande del make config a seconda dell'hardware nel proprio
delle caratteristiche che si vogliono dal sistema operativo Linux. Si continui poi nel
del README per compilare ed installare il nuovo kernel.

Il kernel 1.2.13 crea solo 4 device PPP. Nel caso si possieda una scheda seriale mul
sarà bisogno di modificare i sorgenti del PPP nel kernel per avere più porte (si veda
README.linux distribuito assieme al PPP−2.1.2 per maggiori dettagli sulle sempli
modifiche da fare).

Nota: il processo di configurazione dell'1.2.13 NON permettere di tornare indietro −


un'errore rispondendo ad una domanda durante il dialogo con make config, si es
premendo CTRL C e si ricominci.

Compilazione del kernel − i kernel di Linux 1.3.x e


Per Linux 1.3.x e 2.0.x, si può usare un processo simile a quello di Linux 1.2.13. An
seguano le istruzioni del file README installato con i sorgenti. Il processo di confi
si avvia con

make config

Comunque, c'è anche la possibilità di usare

make menuconfig

Riconoscere il proprio hardware 134


Linux HOWTO − Networking − Sommario

Ciò fornisce un sistema di configurazione a menu con un help in linea che permette
spostarsi avanti e indietro nel processo di configurazione.

Esiste inoltre un'interfaccia di configurazione altamente consigliata che gira in X W

make xconfig

Il supporto per il PPP può essere compilato direttamente dentro al kernel oppure com
modulo.

Se quando la propria macchina Linux è operativa, si usa PPP solo per brevi periodi,
raccomanda di compilare il supporto per il PPP come modulo. Usando 'kerneld' il pr
kernel caricherà automaticamente i moduli richiesti per fornire il supporto per il PPP
si lancia il processo di connessione con PPP. Ciò fa risparmiare porzioni importanti
memoria: nessuna parte del kernel può essere messa in swap, ma i moduli caricabili
automaticamente rimossi se non sono in uso.

Per far ciò si deve abilitare il supporto per i moduli caricabili:

Enable loadable module support (CONFIG_MODULES) [Y/n/?] y

Per aggiungere il supporto nel kernel per il PPP, si risponda alla seguente domanda:

PPP (point−to−point) support (CONFIG_PPP) [M/n/y/?]

Per il modulo caricabile del PPP, si risponda M, altrimenti per compilare il PPP den
kernel rispondere Y.

Diversamente dal kernel 1.2.13, il kernel 2.0.x crea device PPP al volo quando sono
e non c'è più bisogno di modificare i sorgenti per incrementare il numero di disposit
disponibili.

Nota su PPP−2.2 e /proc/net/dev


Se si usa PPP−2.2, si scoprirà che un effetto collaterale nella creazione al volo dei d
PPP è che nessun dispositivo viene mostrato nel file system /proc/net finché il
dispositivo non è creato lanciando pppd:

[hartr@archenland hartr]$ cat /proc/net/dev


Inter−| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls ca
lo: 92792 0 0 0 0 92792 0 0 0 0
eth0: 621737 13 13 0 23 501621 0 0 0 1309

Una volta avviati uno (o più) servizi ppp, si vedranno delle voci così (da un server p

[root@kepler /root]# cat /proc/net/dev


Inter−| Receive | Transmit
face |packets errs drop fifo frame|packets errs drop fifo colls ca
lo: 428021 0 0 0 0 428021 0 0 0 0
eth0:4788257 648 648 319 650 1423836 0 0 0 4623

Nota su PPP−2.2 e /proc/net/dev 135


Linux HOWTO − Networking − Sommario

ppp0: 2103 3 3 0 0 2017 0 0 0 0


ppp1: 10008 0 0 0 0 8782 0 0 0 0
ppp2: 305 0 0 0 0 297 0 0 0 0
ppp3: 6720 7 7 0 0 7498 0 0 0 0
ppp4: 118231 725 725 0 0 117791 0 0 0 0
ppp5: 38915 5 5 0 0 28309 0 0 0 0

Considerazioni generali sulla configurazione del


kernel per il PPP
Se si sta mettendo su un PC Linux per far da server PPP, si deve compilare il suppo
l'IP forwarding. Questo è pure necessario se si vuole usare Linux per collegare alcun
assieme o per connettere la propria LAN ad Internet.

Se si connette una LAN ad Internet (o si connettono assieme due LAN), si dovrebbe


ben coscienti delle problematiche sulla sicurezza. L'aggiunta del supporto per i firew
kernel probabilmente è un DOVERE!

Questo sarà necessario anche se si vuole usare IP masquerade per connettere una LA
usa uno dei suddetti numeri di rete IP 'non connessi'.

Per abilitare l'IP Masquerade e l'IP fire walling, si DEVE rispondere affermativame
prima domanda nel processo make config:

Prompt for development and/or incomplete code/drivers


(CONFIG_EXPERIMENTAL)?

Ai nuovi utenti questo potrebbe sembrare un po' fuori luogo, ma molti utenti Linux
attivamente l'IP Masquerade e l'IP Firewalling dei kernel Linux 2.0.XX senza alcun
problema.

Una volta installato il nuovo kernel e riavviata la macchina, si può cominciare a con
a testare il(i) collegamento(i) PPP.

[Precedente] [Sommario] [Successivo

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Considerazioni generali sulla configurazione del kernel per il PPP 136


Linux−FAQ Quali informazioni si debbono
Documenti: conoscere sul server PPP
Open Source Definition Prima di poter stabilire una connessione PPP con un server, è
GNU General Public License necessario procurarsi le seguenti informazioni (ci si rivolga al
supporto clienti o agli amministratori del proprio server PPP):
La cattedrale e il bazaar

Colonizzare la noosfera • Il o i numeri telefonici da comporre per il servizio


Il calderone magico
Se si è dietro ad un PABX, è necessario conoscere
anche il numero PABX che abilita le chiamate esterne
Libri: − solitamente è lo zero (0) o il nove (9).
• Il server usa numeri IP DINAMICI o STATICI?
Italian crackdown Se il server usa numeri IP STATICI, allora è
Open Sources necessario conoscere quale numero IP usare per la
propria estremità della connessione IP. Se il proprio
MediaMorfosi
ISP vi fornisce una sottorete di numeri IP validi,
GTK+/GNOME bisogna conoscere anche quali numeri IP è possibile
sviluppo applicazioni usare e qual'è la maschera di rete (netmask).
Linux HOWTO: Installazione e configurazione
La maggior parte degli Internet Service Provider usa
Risorse numeri IP DINAMICI. Come detto in precedenza, ciò
ha qualche implicazione in termini di servizi che si
Feedback possono usare.

Comunque, anche se si stanno usando numeri IP


STATICI, molti server PPP non permetteranno mai
(per ragioni di sicurezza) ad un client di specificare un
numero IP, in quanto ciò è un rischioso. Si deve
comunque avere questa informazione!

• Quali sono i numeri IP dei Domain Name Server


dell'ISP?
Dovrebbero essere almeno due sebbene ne serva solo
uno.

Ci potrebbe essere un problema a questo punto. La


configurazione del PPP di MS Windows 95 permette
che l'indirizzo del DNS sia passato al client come
parte del processo di connessione. Quindi il proprio
ISP potrebbe benissimo rispondere che non c'è la
necessità di conoscere gli indirizzi dei server DNS.

Per Linux, si DEVE conoscere l'indirizzo di almeno


un DNS. L'implementazione del PPP in Linux non
permette di impostare dinamicamente il numero IP del
DNS durante la connessione, e probabilmente non lo
farà mai nemmeno in futuro.

Quali informazioni si debbono conoscere sul server PPP 137


Linux HOWTO − Networking − Sommario

Nota: mentre Linux (come client PPP) non può


accettare l'indirizzo del DNS da un server, può,
quando funziona come server, passare l'informazione
ai client usando l'opzione dns−addr di pppd.

• Il server richiede l'uso di PAP/CHAP?


Se questo è il caso di deve conoscere "id" e "secret"
da usare durante la connessione (probabilmente queste
sono il proprio nome utente e la propria password nel
proprio ISP).
• Il server avvia automaticamente il PPP o si deve
fornire un qualche comando per far partire il PPP una
volta fatto il login?
Se si deve dare un comando per avviare il PPP, qual
è?
• Il server è un sistema Microsoft Windows NT e, se
così è, usa il sistema MS PAP/CHAP?
Molte LAN di aziende usano MS Windows NT in
questo modo per aumentare la sicurezza.

Ci si annoti con cura queste informazioni, che tra un po'


andremo ad usarle!

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Linux HOWTO − Networking 138


Libri: Configurare il proprio modem e la
Italian crackdown porta seriale
Open Sources
Ci si dovrebbe assicurare che il proprio modem sia impostato
MediaMorfosi
correttamente e conoscere a quale porta seriale è connesso.
GTK+/GNOME
sviluppo applicazioni Si ricorda:
Linux HOWTO: Installazione e configurazione
• DOS com1: = Linux /dev/cua0 (e /dev/ttyS0)
Risorse • DOS com2: = Linux /dev/cua1 (e /dev/ttyS1)
eccetera
Feedback
Non è male ricordare che se si hanno 4 porte seriali, la configurazione
predefinita dei PC è di avere la com1 e la com3 che condividono IRQ4 e
la com2 e la com4 che condividono IRQ3.

Se si hanno dispositivi su una porta seriale standard che condivide un


IRQ con il proprio modem, probabilmente si avranno dei problemi. Ci si
deve assicurare che la porta seriale a cui è connesso il modem abbia un
IRQ di sua proprietà e non condiviso. Molte schede seriali moderne (e le
porte seriali sulle schede madri di buona qualità) permettono di spostare
l'IRQ delle porte seriali.

Se si usa un kernel versione 2 di Linux, si possono vedere quali IRQ sono


in uso con cat /proc/interrupts, che produrrà un output simile
a:

0: 6766283 timer
1: 91545 keyboard
2: 0 cascade
4: 156944 + serial
7: 101764 WD8013
10: 134365 + BusLogic BT−958
13: 1 math error
15: 3671702 + serial

Qui è mostrata una porta seriale sull'IRQ4 (un mouse) ed una porta
seriale sull'IRQ15 (la connessione PPP permanente via modem ad
Internet). Ci sono anche le porte seriali com2 su IRQ3, e la com4 su
IRQ14, ma non sono utilizzate e perciò non vengono mostrate.

Attenzione: bisogna sapere quello che si fa quando si gioca con gli IRQ!
Non solo si deve aprire il proprio computer, tirare fuori le schede e
giocare con i jumper, ma si deve pure sapere cosa c'è su un determinato
IRQ. Nel mio caso ho un PC totalmente basato su SCSI, e così ho
disabilitato l'interfaccia IDE sulla scheda madre che normalmente usano
gli IRQ14 e 15!

Si dovrebbe tener presente che se il proprio PC si avvia anche con altri


sistemi operativi, lo spostamento degli IRQ può far sì che tali sistemi

Configurare il proprio modem e la porta seriale 139


Linux HOWTO − Networking − Sommario

operativi non si avviino correttamente, o che non si avviino affatto.

Se si spostano le porte seriali su IRQ non standard, allora bisogna dire a


Linux qual è IRQ che ogni porta usa. Ciò è fatto usando setserial ed
è meglio farlo durante la sequenza di avvio del sistema in rc.local o
rc.serial che viene chiamato da rc.local oppure come parte
dell'inizializzazione SysV. Per la macchina descritta in precendenza, i
comandi usati sono:

/bin/setserial −b /dev/ttyS2 IRQ 11


/bin/setserial −b /dev/ttyS3 IRQ 15

Comunque, se si usa il modulo per le seriali e lo si fa caricare


dinamicamente quando necessario da kerneld, non si possono
impostare gli IRQ ed il resto e poi dimenticarsene una volta avviato il
sistema, in quando se il modulo viene scaricato, Linux si dimentica delle
impostazioni speciali.

Quindi, se si fa caricare su richiesta il modulo per le seriali, bisogna


riconfigurare gli IRQ ed il resto ogni volta che viene caricato il modulo.

Una nota sulle porte seriali e le loro


velocità
Se si usa un modem (esterno) ad alta velocità (14,400 Baud o superiore),
la propria porta seriale dev'essere in grado di gestire il flusso di dati che
un tale modem è in grado di produrre, in particolare quando il modem
comprime i dati.

Ciò richiede che la propria porta seriale usi un UART (Universal


Asynchronous Receiver Transmitter − Ricevitore/Trasmettitore
Asincrono Universale) moderno come un 16550(A). Se si usa una
vecchia macchina (o una vecchia scheda seriale), è abbastanza probabile
che la propria porta seriale abbia solamente un UART 8250, che può
causere considerevoli problemi quando utilizzata con un modem ad alta
velocità.

Si usi il comando

setserial −a /dev/ttySx

per far sì che Linux dica il tipo di UART in proprio possesso. Se non si
ha una UART del tipo 16550A, si investa un po' di soldi in una nuova
scheda seriale (disponibile a meno di $50). Una volta comperata, ci si
assicuri di poterne spostare gli IRQ!

Nota: la prima versione del chip UART 16550 ha un errore. Questo è


stato scoperto quasi subito ed è stata rilasciata una revisione del chip:
l'UART 16550A. Comunque circolano un numero relativamente basso di

Una nota sulle porte seriali e le loro velocità 140


Linux HOWTO − Networking − Sommario

chip fallati. Non è facile incappare in uno di questi, ma comunque,


almeno per le schede abbastanza pregiate, si dovrebbe ottenere una
risposta al comando precedente che dice 16550A.

Nomi delle porte seriali


Storicamente, Linux usava i device cuaX per le chiamate in uscita (dial
out) e i device ttySx per quelle in ingresso (dial in).

La porzione del kernel che richiedeva ciò è stata cambiata nella versione
2.0.x del kernel e si dovrebbero usare i ttySx sia per il dial in che per il
dial out. Da quel che ho capito i device cuaX potrebbero benissimo
scomparire in una versione futura del kernel.

Configurare il proprio modem


Per usare PPP bisogna configurare correttamente il proprio modem. Per
far ciò SI LEGGA IL MANULE DEL PROPRIO MODEM! La
maggior parte dei modem hanno delle impostazioni predefinite dal
costruttore che selezionano le opzioni richieste per il PPP. La
configurazione minima richiede:

• Controllo di flusso hardware (RTS/CTS) (&K3 in molti modem


Hayes)

Altre impostazioni (in comandi standard Hayes) che si dovrebbero


controllare sono:

• E1 Echo ON (richiesto per il funzionamento di chat)


• Q0 Report result codes (richiesto per il funzionamento di chat)
• S0=0 Auto Answer OFF (a meno che non si voglia che il proprio
modem risponda al telefono)
• &C1 Carrier Detect ON solo dopo la connessione
• &S0 Data Set Ready (DSR) sempre ON
• (forse) Data Terminal Ready

Esiste un sito che offre le impostazioni per un modem per una varietà in
continua crescita di costruttori e modelli di modem a
http://www.in.net/info/modems/index.htmlModem setup information che
può tornare utile in questa operazione.

Non è male neppure investigare sul funzionamento dell'interfaccia seriale


del modem usata per connetterlo al proprio computer. La maggior parte
dei modem permette di far funzionare tale interfaccia a velocità FISSA,
mentre lasciano all'interfaccia con la linea telefonica la possibilità di
variare la sua velocità in modo da usare quella più alta che sia lei che la
corrispondente nel modem remoto riescono a gestire.

Ciò è noto come funzionamento ``split speed''. Se il proprio modem lo

Nomi delle porte seriali 141


Linux HOWTO − Networking − Sommario

supporta, si blocchi l'interfaccia seriale del modem alla velocità più alta
disponibile (generalmente 115200 baud ma più probabilmente 38400
baud per i modem a 14400).

Si usi il proprio software di comunicazione (p.es. minicom o seyon) per


scovare la configurazione del proprio modem e per impostare quanto
richiesto per il PPP. Molti modem ritornano le loro impostazioni correnti
in risposta a AT&V, ma si consulti comunque il manuale del proprio
modem.

Se si fa un casotto con le impostazioni, si può ritornare alle impostazioni


sane (solitamente) dando il comando AT&F che riporta il modem alle
impostazioni del costruttore (comunque per la maggior parte dei modem
che ho incontrato, le impostazioni di fabbrica includono tutto quello che
serve per il PPP − ma si dovrebbe comunque controllare)

Una volta scoperta la stringa di configurazione richiesta dal modem, la si


annoti da qualche parte. Ora ci sono due possibilità: si possono
immagazzinare queste impostazioni nella memoria non volatile del
modem in modo da poter essere richiamate con un apposito comando AT,
oppure si può passare le impostazioni corrette al modem come parte del
processo di composizione del numero.

Se si usa il proprio modem solamente da Linux per chiamare il proprio


ISP o server aziendale, la cosa più semplice sarà salvare la propria
configurazione del modem nella RAM non volatile.

Se d'altra parte, il proprio modem è usato da altre applicazioni e sistemi


operativi, è più sicuro passare le informazioni al modem ogni volta che
viene fatta la chiamata cosicché è garantito che il modem è sempre nello
stato corretto per la chiamata (ciò ha pure il vantaggio aggiuntivo di
registrare la stringa di configurazione del modem nel caso il modem
perda il contenuto della NV−RAM, che può sempre succedere).

Note sul controllo del flusso seriale


Quando i dati viaggiano su linee di comunicazione seriale, può capitare
che i dati arrivino più velocemente di quanto il computer possa gestire (il
computer potrebbe essere occupato a fare qualcos'altro − si ricordi che
Linux è un sistema operativo multi−utente e multi−processo). Per poter
assicurare che i dati non vengano persi (ovvero che i dati non superino la
capacità del buffer d'ingresso e quindi vengano persi), sono necessari
alcuni metodi per controllare il flusso di dati.

Nelle linee seriali ci sono due modi per farlo:

• Usando segnali hardware (Clear To Send/Request to Send −


CTS/RTS)
• Usando segnali software (control S e control Q, noti anche come
XON/XOFF).

Note sul controllo del flusso seriale 142


Linux HOWTO − Networking − Sommario

Mentre l'ultimo può andare bene per la connessione di un terminale


(testo), i dati in un collegamento PPP usano tutti gli 8 bit ed è abbastanza
probabile che da qualche parte nei dati ci siano dei byte di dati che
corrispondono a control S e control Q. Quindi, se il modem è impostato
per il controllo di flusso software, le cose possono rapidamente andare in
sfacelo!

Per le connessioni ad alta velocità che usano PPP (che usa dati a 8 bit) il
controllo di flusso hardware è vitale ed è per questa ragione che si deve
usare questo tipo di controllo di flusso.

Verificare il proprio modem per la


connessione
Ora che si è configurato il proprio modem e la porta seriale, è una buona
idea assicurarsi che queste impostazioni facciano realmente il loro lavoro,
chiamando il proprio ISP e verificando di potersi connettere.

Usando un pacchetto di comunicazione (come minicom), si imposti la


inizializzazione richiesta per il PPP e per chiamare il server PPP al quale
ci si vuole connettere in una sessione PPP.

(Nota: a questo punto NON stiamo provando a fare una connessione PPP,
ma solo verificando di avere il numero di telefono giusto e di scoprire
esattamente cosa il server ci risponde per poter poi fare il login ed
avviare il PPP).

Durante questo processo, si catturi (registrandolo su un file) l'intero


processo di login oppure si annoti accuratamente (molto accuratamente)
esattamente quello che il server risponde per far capire che è il momento
di inserire il proprio nome utente e la propria password (e qualsiasi altro
comando necessario per stabilire una connessione PPP).

Se il proprio server usa PAP, non si dovrebbe vedere una richiesta di


login, ma sul proprio schermo si dovrebbe invece vedere la
rappresentazione in modo testo del protocollo di controllo della
connessione (che assomiglia tanto a della spazzatura).

Qualche avvertenza:

• alcuni server sono abbastanza intelligenti: si può fare il login


usando nome/password in modo testo oppure usando PAP.
Quindi se il proprio ISP o server aziendale usa PAP ma non si
vede la spazzatura partire immediatamente, ciò non vuol dire che
si è fatto qualcosa in modo errato;
• alcuni server richiedono che inizialmente si immetta un po' di
testo e poi avviano una sequanza PAP standard;
• alcuni server PPP sono passivi, ovvero stanno lì semplicemente
non spedendo niente finché il client che sta facendo il dialing non

Verificare il proprio modem per la connessione 143


Linux HOWTO − Networking − Sommario

gli spedisce un pacchetto lcp valido. Se il server PPP a cui ci si


sta connettendo opera in modo passivo, non si vedrà mai la
spazzatura!
• alcuni server non avviano il PPP finché non si preme ENTER,
quindi non è una cattiva idea provare a farlo se ci si è connessi
correttamente ma non si vede la spazzatura!

Non è male connettersi almeno un paio di volte − alcuni server cambiano


i loro prompt (p.es. con il passare del tempo!) ogni volta che ci si
connette. I due prompt critici che la propria macchina Linux ha necessità
di identificare ogni volta che si fa la connessione sono:

• il prompt che richiede di inserire il proprio nome utente;


• il prompt che richiede di inserire la propria password.

Se si deve lanciare un comando per avviare il PPP nel server, è


necessario trovare anche il prompt che il server dà una volta che ci è
loggati per dire che ora è possibile inserire il comando per lanciare il
PPP.

Se il proprio server, una volta loggati, lancia automaticamente il PPP si


inizierà a vedere un po' di spazzatura sullo schermo − queste sono le
informazioni che il server sta spedendo per avviare e configurare la
connessione PPP.

Dovrebbero essere qualcosa di questo tipo:

~y}#.!}!}!} }8}!}$}%U}"}&} } } } }%}& ...}'}"}(}"} .~~y}

(NdT: è questa la ``spazzatura'' a cui si faceva e si farà riferimento.)

Su alcuni sistemi il PPP deve essere esplicitamente avviato sul server.


Questo di solito è perché il server è stato configurato per permettere sia il
login in PPP che il login con una shell usando la stessa coppia nome
utente/password. Se questo è il proprio caso, si inserisca il comando una
volta effettuato il login. Anche in questo caso, si vedrà della spazzatura
non appena viene avviato il lato server della connessione PPP.

Se non si vede la spazzatura immediatamente dopo la connessione (e


nemmeno dopo il login e l'avvio manuale del server PPP, se richiesti) si
prema Enter per vedere se almeno questo avvia il server PPP...

A questo punto, si può "riattaccare" (N.d.T.: nel senso della cornetta del
telefono) il proprio modem (solitamente, battendo velocemente +++ e
poi dando il comando ATHO una volta che il modem ha risposto con
OK).

Se non si riesce a far andare il proprio modem, si legga il suo manuale, le


pagine man del software di comunicazione e il Serial HOWTO! Una
volta fatto questo, si rifaccia (per bene) quanto spiegato in precedenza.

Verificare il proprio modem per la connessione 144


Linux HOWTO − Networking − Sommario

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 145


Configurare la risoluzione da nome a
indirizzo (DNS)
Mentre agli umani piace dare nomi alle cose, i computer preferiscono di molto i
numeri. In una rete TCP/IP (che è quello che Internet è), chiamiamo le
macchine con un nome particolare per ogni macchina che vive in un particolare
#`¨dominio#`¨. Per esempio, la mia workstation Linux si chiama
archenland e risiede nel dominio interweft.com.au. Il suo indirizzo "umano" è
quindi archenland.interweft.com.au (che è noto come il FQDN − fully qualified
domain name).

Comunque, quando i computer comunicano attraverso Internet, affinché questa


macchina possa essere trovata dagli altri computer in Internet, è in realtà nota
con il suo numero IP.

La traduzione (risoluzione) del nome (e del dominio) della macchina nei


numeri realmente usati su Internet è compito di macchine che offrono il
servizio di Domain Name (Domain Name Service).

Ciò che succede è questo:

• la propria macchina ha bisogno di sapere l'indirizzo IP di un particolare


computer. L'applicazione che richiede questa informazione chiede al
`risolutore' (resolver) nel proprio PC Linux di fornire questa
informazione;
• il risolutore interroga il file locale degli host (/etc/hosts) e i
domain name server di cui è a conoscenza (l'esatto comportamento del
resolver è determinato da /etc/host.conf);
• se la risposta è trovata nel file degli host, ne viene ritornato il valore in
risposta;
• se è specificato un domain name server, il proprio PC interroga questa
macchina;
• se la macchina DNS sa già il numero IP per il nome richiesto, lo ritorna
in risposta. Se così non è, interroga altri name server in Internet per
trovare l'informazione. Il name server poi passa questa informazione al
risolutore e questi all'applicazione che ne aveva fatto richiesta.

Quando si fa una connessione PPP, si deve dire alla propria macchina Linux
dove andare a prendere le informazioni sulla conversione da nome ad indirizzo
IP (risoluzione dell'indirizzo − address resolution) in modo che noi si possa
usare i nomi delle macchine ma il nostro computer possa tradurli in numeri IP
di cui a bisogno per fare il proprio lavoro.

Un modo è di inserire ogni host con il quale si vuole dialogare nel file
/etc/hosts (il che è realisticamente totalmente impossibile se si è connessi
ad Internet); un altro è di usare i numeri IP della macchine invece dei loro nomi
(un esercizio di memoria impossibile tranne che per le LAN più piccole).

Configurare la risoluzione da nome a indirizzo (DNS) 146


Linux HOWTO − Networking − Sommario

Il modo migliore è configurare Linux in modo che sappia dove andare a


prendere automaticamente queste informazioni nome/numero. Questo servizio è
fornito dai sistemi Domain Name Server (DNS). Tutto ciò che serve è di
inserire il numero (o i numeri) IP dei domain name server nel proprio file
/etc/resolv.conf.

Il file /etc/resolv.conf
L'amministatore del proprio server PPP o il servizio assistenza clienti dovrebbe
aver fornito due numeri IP di DNS (ne è necessario solo uno, ma due danno un
po' di ridondanza in caso di problemi in uno dei due).

Come menzionato in precedenza, Linux non può impostare il proprio name


server nel modo che usa MS Windows 95. Quindi si deve insistere
(mantenendo la calma) in modo che il proprio ISP fonisca questa informazione!

Il proprio /etc/resolv.conf potrebbe essere qualcosa di simile a:

domain nome.di.dominio.del.proprio.isp
nameserver 10.25.0.1
nameserver 10.25.1.2

Si modifichi questo file (creandolo se necessario) per metterci le informazioni


fornite dal proprio ISP. Dovrebbe avere la proprietà e i permessi che seguono:

−rw−r−−r−− 1 root root 73 Feb 19 01:46 /etc/resolv.conf

Se si è già configurato un /etc/resolv.conf perché si è in una LAN,


semplicemente si aggiungano i numeri IP dei server DNS per il PPP al file che
già esiste.

Il file /etc/host.conf
Si dovrebbe pure controllare che il proprio file /etc/host.conf sia
configurato correttamente. Dovrebbe essere una cosa così:

order hosts,bind
multi on

Ciò dice al risolutore di usare le informazioni nel file degli host prima di
interrogare un DNS per la risoluzione.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Il file /etc/resolv.conf 147


Linux HOWTO − Networking − Sommario

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 148


L'uso di PPP e i privilegi di root
Poiché PPP ha bisogno di impostare alcuni dispositivi di rete, modificare la tabella d
instradamento del kernel ed altro, richiede i privilegi di root per farlo.

Se altri utenti oltre a root devono poter avviare una connessione PPP, il programma
dev'essere setuid root:

−rwsr−xr−x 1 root root 95225 Jul 11 00:27 /usr/sbin/pp

Se /usr/sbin/pppd non è impostato in questo modo, allora come root si digiti il coma

chmod u+s /usr/sbin/pppd

Quello che fa è rendere pppd eseguibile con i privilegi di root anche se l'eseguibile
lanciato da un utente ordinario. Ciò permette agli utenti normali di lanciare pppd co
privilegi necessari per impostare le interfacce di rete e la tabella di instradamento de
kernel.

I programmi che sono eseguiti come 'set uid root' potenzialmente sono dei buchi di
sicurezza e si dovrebbe essere estremamente cauti nel fare programmi 'suid root'. Un
certo numero di programmi (incluso pppd) sono stati scritti con tutte le attenzioni pe
minimizzare i pericoli conseguenti alla loro esecuzione in suid root, quindi dovrebb
essere sicuro farlo (ma non ci sono garanzie).

A seconda di come si vuole che il proprio sistema funzioni − specificatamente se si


che QUALSIASI utente nel proprio sistema sia in grado si avviare una connessione
si dovrebbe rendere i propri script ppp−on/off leggibili ed eseguibili al mondo intero
(probabilmente questo va bene solo se il proprio PC è usato SOLO da se stessi).

Comunque, se NON si vuole che qualsiasi utente sia in grado di avviare una connes
PPP (per esempio, i propri figli hanno un account sulla macchina Linux, ma non vu
vadano in giro per Internet senza la una supervisione), bisogna creare un gruppo per
PPP (come root, si modifichi il file /etc/group) e:

• si renda pppd suid root, di proprietà dell'utente root e del gruppo PPP, con g
altri permessi su questo file vuoti. Insomma dovrebbe avere questi permessi
simili):

−rwsr−x−−− 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd


• si rendano gli script ppp−on/off di proprietà dell'utente root e del gruppo PP
• si rendano gli script ppp−on/off leggibili/eseguibili al gruppo PPP

−rwxr−x−−− 1 root PPP 587 Mar 14 1995 /usr/sbin/ppp−on


−rwxr−x−−− 1 root PPP 631 Mar 14 1995 /usr/sbin/ppp−off
• si rendano vuoti gli altri diritti di accesso a ppp−on/off;
• si aggiungano gli utenti che si vuole possano avviare il PPP al gruppo PPP i
/etc/group.

L'uso di PPP e i privilegi di root 149


Linux HOWTO − Networking − Sommario

Anche se si fa questo, gli utenti ordinari non saranno ANCORA in grado di buttare
connessione via software! L'esecuzione dello script ppp−off richiede i privilegi d
Comunque, qualsiasi utente può semplicemente spegnere il modem (o disconnettere
linea telefonica da un modem interno).

Un alternativa (e metodo migliore) a questa impostazione è di usare il programma s


Questo offre maggiore sicurezza e permetterà di impostare le cose in modo tale che
qualsiasi utente (autorizzato) possa attivare/disattivare la connessione usando gli scr
Usando sudo si permetterà ad un utente autorizzato di attivare/disattivare la
connnessione PPP in modo pulito e sicuro.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Linux HOWTO − Networking 150


Feedback Impostare i file di connessione PPP
Adesso è necessario essere loggati come root per creare le directory e modificare i f
necessari per impostare il PPP, anche se poi si vuole che il PPP sia accessibile a tutt
utenti e non solo a root.

Il PPP usa un certo numero di file per connettersi e impostare la connessione PPP. Q
differiscono per nome e locazione in PPP 2.1.2 e 2.2.

Per il PPP 2.1.2 i file sono:

/usr/sbin/pppd # eseguibile PPP


/usr/sbin/ppp−on # script di composizione e connessione
/usr/sbin/ppp−off # script di disconnessione
/etc/ppp/options # opzioni per tutte le connessioni
/etc/ppp/options.ttyXX # opzioni specifiche per una
# connessione su questa porta

Per il PPP 2.2 i file sono:

/usr/sbin/pppd # eseguibile PPP


/etc/ppp/scripts/ppp−on # script di composizione e connessione
/etc/ppp/scripts/ppp−on−dialer # parte 1 dello script
# di composizione del numero
/etc/ppp/scripts/ppp−off # il vero script di chat
/etc/ppp/options # opzioni per tutte le connessioni
/etc/ppp/options.ttyXX # opzioni specifiche per una
# connessione su questa porta

Gli utenti di Red Hat Linux dovrebbero notare che l'installazione predefinita di Red
mette questi script in /usr/doc/ppp−2.2.0f−2/scripts.

Nella propria directory /etc ci dovrebbe essere una directory ppp:

drwxrwxr−x 2 root root 1024 Oct 9 11:01 ppp

Se non esiste, la si crei con questo proprietario e permessi.

Se la directory già esiste, dovrebbe contenere un file di opzioni tipo, chiamato optio
Questo file è incluso qui sotto nel caso che non ci sia.

Lo si stampi in quanto contiene una spiegazione di praticamente tutte le opzioni per


(utile da leggere assieme alle pagine man di pppd). Sebbene si possa usare questo fi
punto di partenza del proprio file /etc/ppp/options file, è probabilmente meg
creare un proprio file di opzioni che non contenga tutti i commenti, il quale sarà cos
più breve e più facile da leggere e mantenere.

Se si posseggono più linee seriali o modem (caso tipico di un server PPP), si crei un
/etc/ppp/options generale contenente le opzioni comuni a tutte le porte seria
quali si vuole supportare il dial in/out e poi si crei un file di opzioni individuali per o
delle line seriali sulle quali si voglia poter stabilire una connessione PPP con le imp

Impostare i file di connessione PPP 151


Linux HOWTO − Networking − Sommario

specifiche richieste per ogni porta.

Questi file specifici per le porte si chiamano options.ttyx1, options.ttyx


via (dove x è la lettera appropriata per le proprie porte seriali).

Comunque, per una connessione PPP singola, si può semplicemente usare il file
/etc/ppp/options. In alternativa si possono mettere tutte le opzioni come argo
per il comando pppd stesso.

È più semplice mantenere una configurazione che usa i file


/etc/ppp/options.ttySx. Se si usa PPP per connettersi ad un certo numero
diversi, si possono creare file di opzioni per ogni sito in /etc/ppp/options.si
poi specificare il file di opzioni come un parametro del comando PPP quando ci si c
(usando l'opzione file file_opzioni nella riga di comando di pppd).

Il file di opzioni tipo options.tpl


Alcune distribuzioni sembrano aver perso il file options.tpl, e quindi eccone qui una
versione completa. Suggerisco di NON modificare questo file per creare il proprio (
propri) file /etc/ppp/options. Piuttosto, lo si copi su un nuovo file e poi si mo
quello. Se si fa casino con le modifiche è sempre possibile tornare a quello originale
ricominciare.

# /etc/ppp/options −*− sh −*− opzioni generali per pppd


# created 13−Jul−1995 jmk
# autodate: 01−Aug−1995
# autotime: 19:45

# Usa l'eseguibile o il comando shell specificato per impostare la


# linea seriale. Questo script solitamente userebbe il programma
# "chat" per dialogare con il modem ed avviare la sessione ppp
# remota.
#connect "echo Bisogna installare un comando connect."

# Avvia l'eseguibile o il comando shell specificato dopo che pppd h


# concluso la connessione, Questo script potrebbe, ad esempio, invi
# comandi al modem per fargli riagganciare se non sono disponibili
# segnali si controllo hardware del modem.
#disconnect "chat −− \d+++\d\c OK ath0 OK"

# mappa di caratteri asincrona −− esadecimale a 32−bit; ogni bit è


# carattere del quale è necessario fare l'escape quando pppd lo
# riceve. 0x00000001 rappresenta '\x01', e 0x80000000 rappresenta
# '\x1f'.
#asyncmap 0

# Richiede che il peer si autentifichi da solo prima di permettere


# trasmissione o la ricezione di pacchetti di rete.
#auth

# Usa il controllo di flusso hardware (i.e. RTS/CTS) per controllar


# il flusso di dati sulla porta seriale.
#crtscts

# Usa il controllo di flusso software (i.e. XON/XOFF) per controlla

Il file di opzioni tipo options.tpl 152


Linux HOWTO − Networking − Sommario

# il flusso di dati sulla porta seriale.


#xonxoff

# Aggiunge, quando la negoziazione IPCP è completata con successo,


# instradamento predefinito nella tabella di instradamento di siste
# usando il peer come gateway. Questa voce viene automaticamente
# rimossa quando la connessione PPP è interrotta.
#defaultroute

# Specifica che di certi caratteri dovrebbe essere fatto l'escape i


# trasmissione (indipendentemente dal fatto il peer richieda tale
# operazione con la sua mappa di caratteri di controllo
# asincrona). Questi caratteri di cui dev'essere fatto l'escape son
# specificati come una lista di numeri esadecimali separati da
# virgole. Si noti che può essere specificato praticamente qualsias
# carattere, mentre l'opzione asyncmap permette di specificare solo
# caratteri di controllo. I caratteri dei quali non è possibile far
# l'escape sono quelli con valore esadecimale 0x20 − 0x3f o 0x5e.
#escape 11,13,ff

# Non usa le linee di controllo del modem.


#local

# Specifica che pppd dovrebbe usare un lock in stile UUCP sul


# dispositivo seriale per assicurare l'accesso esclusivo al
# dispositivo.
#lock

# Usa le linee di controllo del modem. In Ultrix, questa opzione


# implica il controllo hardware del flusso come l'opzione
# crtscts. (Questa opzione non è completamente implementata.)
#modem

# Imposta il valore di MRU [Maximum Receive Unit − Unità Massima di


# Ricezione] a <n> per la negoziazione. pppd chiederà al peer di
# inviare pacchetti di non più di <n> byte. Il minimo valore di MRU
# 128. Il valore predefinito è 1500. Un valore di 296 è raccomandat
# per connessioni lente (40 byte per l'header TCP/IP + 256 byte di
# dati).
#mru 542

# Imposta la netmask per l'interfaccia a <n>, una netmask a 32 bit


# notazione "decimal dot" (p.es. 255.255.255.0).
#netmask 255.255.255.0

# Disabilita il comportamento predefinito quando non è specificato


# nessun indirizzo IP locale, che è di determinare (se possibile)
# l'indirizzo IP locale dal nome dell'host. Con questa opzione, il
# peer deve fornire un indirizzo IP locale durante le negoziazione
# IPCP (a meno che non sia specificato esplicitamente nella riga di
# comando o nel file delle opzioni).
#noipdefault

# Abilita le opzioni "passive" nell'LCP. Con questa opzione, pppd


# proverà ad iniziare la connessione; se non riceve risposta dal pe
# allora pppd attenderà passivamente un pacchetto LCP valido da par
# del peer (invece di uscire, come farebbe senza questa opzione).
#passive

# Con questa opzione, pppd non trasmetterà pacchetti LCP per inizia

Il file di opzioni tipo options.tpl 153


Linux HOWTO − Networking − Sommario

# una connessione finché non riceve un pacchetto LCP valido dal pee
# (come per l'opzione "passive" per le vecchie versioni di pppd).
#silent

# Non richiede o permette la negoziazione di qualsiasi opzione per


# o IPCP (usa i valori predefiniti).
#−all

# Disabilita la negoziazione di compressione Indirizzo/Controllo (u


# quanto predefinito, ovvero campi address/control disabilitati).
#−ac

# Disabilita la negoziazione asyncmap (usa la asyncmap predefinita,


# i.e. fa l'escape di tutti i caratteri di controllo).
#−am

# Non fa il fork per diventare un processo in background (altriment


# pppd lo farebbe se è specificato un dispositivo seriale).
#−detach

# Disabilita la negoziazione dell'indirizzo IP (con questa opzione


# l'indirizzo IP remoto deve essere specificato con un'opzione nell
# riga di comando o nel file delle opzioni).
#−ip

# Disabilita la negoziazione magic number. Con questa opzione pppd


# può rilevare una linea cortocircuitata (looped−back).
#−mn

# Disabilita la negoziazione MRU [Maximum Receive Unit] (usa il val


# predefinito, i.e. 1500).
#−mru

# Disabilita la negoziazione della compressione del campo protocoll


# ("protocol field compression") (usa quanto predefinito,
# i.e. compressione del campo protocollo disabilitata).
#−pc

# Richiede che il peer si autentifichi da solo usando il PAP. Quest


# richiede un'autentificazione a DUE VIE − NON usare per una
# connessione standard con autentificazione PAP ad un ISP, in quant
# richiede che anche la macchina dell'ISP si autentifichi da sola
# nella propria macchina (e non sarà in grado di farlo).
#+pap

# Non accetta di autentificare usando PAP.


#−pap

# Richiede che il peer di autentifichi da solo usando


# l'autentificazione CHAP [Cryptographic Handshake Authentication
# Protocol]. Questo richiede un'autentificazione a DUE VIE − NON
# usare per una connessione standard con autentificazione CHAP ad u
# ISP, in quanto richiede che anche la macchina dell'ISP si
# autentifichi da sola nella propria macchina (e non sarà in grado
# farlo).
#+chap

# Non accetta di autentificare usando CHAP.


#−chap

Il file di opzioni tipo options.tpl 154


Linux HOWTO − Networking − Sommario

# Disabilita la negoziazione della compressione dell'header IP in


# stile Van Jacobson (usa quanto predefinito, nessuna compressione)
#−vj

# Incrementa il livello di debug (analoga −d). Se è data questa


# opzione, pppd registrerà il contenuto di tutti i pacchetti spedit
# ricevuti in un formato leggibile. I pacchetti sono registrati
# usando syslog con funzionalità daemon e debug. Queste informazion
# possono essere redirette ad un file impostando opportunamente il
# file /etc/syslog.conf (vedere syslog.conf(5)) (se pppd è compilat
# abilitando l'extra debugging, registrerà i messaggi usando le
# funzionalità local2 invece di daemon).
#debug

# Aggiunge il nome del dominio <d> al nome dell'host locali per sco
# di autentificazione. Per esempio, se gethostname() ritorna il no
# porsche, ma il FQDN (Fully Qualified Domain Name) è
# porsche.Quotron.COM, si dovrebbe usare l'opzione domain per
# impostare il nome dominio a Quotron.COM.
#domain <d>

# Abilita il codice di debug nel driver del PPP a livello kernel.


# L'argomento n è un numero che è la somma dei seguenti valori: 1 p
# abilitare i messaggi di debug generici, 2 per richiedere la
# visualizzazione del contenuto dei pacchetti ricevuti, e 4 per
# visualizzare quello dei pacchetti trasmessi.
#kdebug n

# Imposta il valore di MTU [Maximum Transmit Unit − Unità Massima d


# Trasferimento] a <n>. A meno che il peer non richieda un valore
# minore tramite la negoziazione MRU, pppd chiederà al codice di
# gestione della rete del kernel di inviare attraverso l'interfacci
# di rete del PPP pacchetti di dati di non più di n byte.
#mtu <n>

# Imposta il nome del sistema locale ad <n> per scopi di


# autentificazione. Se si sta usando PAP/CHAP probabilmente dev'ess
# impostato al nome utente del proprio ISP.
#name <n>

# Imposta a <n> il nome utente da usare per autentificare questa


# macchina con il peer usando il PAP.
# NON usare questa opzione se si sta usando l'opzione 'name'
# suddetta.
#user <u>

# Obbliga l'uso del nome dell'host come nome del sistema locale per
# scopi di autentificazione (ha priorità sull'opzione name).
#usehostname

# Imposta a <n> il nome assunto del sistema remoto per scopi di


# autentificazione.
#remotename <n>

# Aggiunge una voce nella tabella ARP [Address Resolution Protocol


# Protocollo di Risoluzione Indirizzi] di sistema con l'indirizzo I
# del peer e l'indirizzo Ethernet di questo sistema.
#proxyarp

# Usa la base di dati di password di sistema per autentificare con

Il file di opzioni tipo options.tpl 155


Linux HOWTO − Networking − Sommario

# peer usando PAP.


#login

# Se è specificata questa opzione, pppd invierà un frame echo−reque


# LCP al peer ogni n secondi. Sotto Linux, echo−request è inviata
# quando per n secondi non si sono ricevuti pacchetti dal
# peer. Normalmente il peer dovrebbe rispondere a echo−request
# inviando un echo−reply. Questa opzione può essere usata con
# l'opzione lcp−echo−failure per rilevare che il peer non è più
# connesso.
#lcp−echo−interval <n>

# Se è specificata questa opzione, pppd presumerà che il peer è mor


# se sono inviati n echo−request LCP senza ricevere un echo−reply L
# valido. Se questo accade, pppd terminerà la connessione. L'uso di
# questa opzione richiede un valore non nullo come parametro a
# lcp−echo−interval. Questa opzione può essere usata per abilitare
# a terminare dopo l'interruzione della connessione fisica (p.es. i
# modem ha messo giù la linea) nelle situazioni nella quali non sia
# disponibile il controllo hardware delle linee da parte del modem.
#lcp−echo−failure <n>

# Imposta l'intervallo di riavvio LCP (timeout nella ritrasmissione


# <n> secondi (valore predefinito 3).
#lcp−restart <n>

# Imposta il massimo numero di trasmissioni di terminate−request LC


# <n> (valore predefinito 3).
#lcp−max−terminate <n>

# Imposta il numero massimo di trasmissioni di configure−request LC


# <n> (valore predefinito 10).
# Alcuni server PPP non lenti nell'avviarsi. Si può dover increment
# questo valore se si ottengono errori tipo 'serial line looped bac
# e si è SICURI di aver fatto correttamente il login e che il il PP
# dovrebbe essere già avviato sul server.
#lcp−max−configure <n>

# Imposta il numero massimo di configure−NAK LCP ricevuti prima di


# inviare configure−Rejects <n> (valore predefinito 10).
#lcp−max−failure <n>

# Imposta l'intervallo di riavvio di IPCP (timeout in ritrasmission


# a <n> secondi (valore predefinito 3).
#ipcp−restart <n>

# Imposta il numero massimo di trasmissioni di terminate−request IP


# a <n> (valore predefinito 3).
#ipcp−max−terminate <n>

# Imposta il numero massimo di trasmissioni di configure−request IP


# a <n> (valore predefinito 10).
#ipcp−max−configure <n>

# Imposta il numero massimo di configure−NAK IPCP ricevuti prima di


# inviare configure−Rejects <n> (valore predefinito 10).
#ipcp−max−failure <n>

# Imposta l'intervallo di riavvio PAP (timeout in ritrasmissione)


# a <n> secondi (valore predefinito 3).

Il file di opzioni tipo options.tpl 156


Linux HOWTO − Networking − Sommario

#pap−restart <n>

# Imposta il numero massimo di trasmissioni di authenticate−request


# PAP a <n> (valore predefinito 10).
# <n> (default 10).
#pap−max−authreq <n>

# Imposta l'intervallo di riavvio CHAP (timeout in ritrasmissione p


# challenge) a <n> secondi (valore predefinito 3).
#chap−restart <n>

# Imposta il numero massimo di trasmissioni challenge CHAP a <n>


# (valore predefinito 10).
#chap−max−challenge

# Con questa opzione, pppd reinterrogherà il peer ogni <n> secondi.


#chap−interval <n>

# Con questa opzione, pppd accetterà il suggerimento del peer per i


# proprio indirizzo IP locale, anche se l'indirizzo IP locale è sta
# specificato in un'opzione.
#ipcp−accept−local

# Con questa opzione, pppd accetterà il suggerimento del peer per i


# suo indirizzo IP (remoto), anche l'indirizzo IP remoto è stato
# specificato in un'opzione.
#ipcp−accept−remote

Quali opzioni dovrei usare? (No PAP/CHAP)


Beh, come in tutte le cose... dipende. Le opzioni qui specificate dovrebbero funzion
la maggior parte dei server.

Comunque, se NON funzionassero, SI LEGGA IL FILE DI OPZIONI TIPO


(/etc/ppp/options.tpl) e la pagina man di pppd e si parli con l'amministrato
supporto clienti del server a cui ci si connette.

Si dovrebbe inoltre notare che gli script di connessione qui presentati usano alcune o
in riga di comando di pppd per rendere il tutto un poco più semplice da modificare.

# /etc/ppp/options (NIENTE PAP/CHAP)


#
# Previene pppd da fare il fork e passare in background
−detach
#
# usa le linee di controllo del modem
modem
# usa il lock in stile uucp per assicurare l'accesso esclusivo al
# dispositivo seriale.
lock
# usa il controllo di flusso hardware
crtscts
# crea un instradamento predefinito per questa connessione nella
# tabella di instradamento
defaultroute
# NON imposta l'"escape" di nessuna sequenza di controllo
asyncmap 0

Quali opzioni dovrei usare? (No PAP/CHAP) 157


Linux HOWTO − Networking − Sommario

# usa la dimensione massima dei pacchetti in trasmissione di 552 by


mtu 552
# usa la dimensione massima dei pacchetti in ricezione di 552 byte
mru 552
#
#−−−−−−−FILE DEL FILE ESEMPIO /etc/ppp/options (niente PAP/CHAP)

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successiv
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 158


Se il proprio server usa PAP (Password
Authentication Protocol)
Se il server al quale ci connette richiede l'autentificazione PAP o CHAP c'è un po' p
lavoro da fare.

Al file delle opzioni precedente, si aggiungano le seguenti righe:

#
# forza pppd a usare il proprio nome utente nell'ISP come 'nome hos
# durante il processo di autentificazione
name <proprio nome utente nell'ISP> # si deve modificare questa
#
# Se si fa girare un *server* PPP e si ha bisogno di forzare il PAP
# il CHAP si tolga il commento alla riga appropriata fra le due che
# seguono. NON usarle se si è un client che si connette ad un serve
# PPP (anche se questi usa PAP o CHAP) in quanto dicono al SERVER d
# autentificare se stesso nella propria macchina (e quasi certament
# non potrà farlo e la connessione fallirà).
#+chap
#+pap
#
# Se si usano secret CRIPTATI nel file /etc/ppp/pap−secrets, allora
# togliere il commento alla riga che segue.
# Nota: questo NON è la stessa cosa che usare le password MS cripta
# come si può fare con MS RAS in Windows NT.
#+papcrypt

Usare MSCHAP
Il RAS di Microsoft Windows NT può essere configurato per usare una variante di C
(Challenge/Handshake Authentication Protocol). Nella distribuzione sorgente di PP
possibile trovare un file chiamato README.MSCHAP80 che lo discute.

Abilitando il debug di pppd è possibile determinare se il server richiede l'autentifica


usando questo protocollo. Infatti se il server la richiede, si vedrà una riga di questo t

rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a

L'informazione critica è auth chap 80.

Per poter usare MS CHAP, sarà necessario ricompilare pppd per supportarlo. Si ved
istruzioni nel file README.MSCHAP80 nei sorgenti di PPP per le istruzioni su co
compilare e usare questa variante.

Si dovrebbe notare che al momento il codice supporta solo i client PPP Linux che si
connettono ad un server MS Windows NT. NON supporta la configurazione di un s
Linux che usi MSCHAP80 come autentificazione dei client.

Se il proprio server usa PAP (Password Authentication Protocol) 159


Linux HOWTO − Networking − Sommario

Il file secrets di PAP/CHAP


Se si usa l'autentificazione pap o chap, allora si deve creare anche il file secrets. Que

/etc/ppp/pap−secrets
/etc/ppp/chap−secrets

Il proprietario dev'essere l'utente root, il gruppo root e per ragioni di sicurezza i perm
devono essere impostati a 740.

La prima cosa da notare su PAP e CHAP è che sono stati progettati per autenticare c
non utenti.

``Huh? Qual è la differenza?'' Vi chiederete.

Beh, una volta che la propria macchina ha fatto la sua connessione PPP al server,
QUALSIASI utente nel proprio sistema può usare quella connessione: non solamen
Questo spiega perché è possibile creare una connessione WAN (wide area network)
assieme due LAN (local area networks) usando PPP.

PAP può (e CHAP LO FA) richiedere una autentificazione bidirezionale, ovvero o


due sistemi richiede all'altro un nome valido e un secret. Comunque, questo NON è
nel quale funzionano le connessioni autenticate con PAP per la maggioranza dei ser

Il vostro ISP probabilmente vi avrà assegnato un nome utente e una password per pe
la connessione al loro sistema e quindi ad Internet. Il provider non è affatto interessa
del vostro computer, quindi probabilmente si dovrà usare il proprio nome utente nel
ISP come nome per il proprio computer.

Ciò è fatto usando usando l'opzione name nome_utente di pppd. Quindi, se si u


utente assegnato dal proprio ISP, si aggiunga la riga

name nome_utente_nel_proprio_ISP

al proprio file /etc/ppp/options.

Tecnicamente, si dovrebbe in realtà usare user nome_utente_nel_proprio_ISP per


pppd è suffientemente intelligente da interpretare name come user se è richiesto l
PAP. Il vantaggio di usare l'opzione name è che è valida anche per CHAP.

Poiché PAP è per l'autentificazione di computer, tecnicamente si dovrebbe specific


un nome remoto per il computer. Comunque, poiché molti hanno solo un ISP, si può
wildcard (*) per il nome del computer remoto nel file secrets.

Non è male notare anche che molti ISP usano banchi di modem multipli connessi a
server terminali, ognuno con un nome diverso, ma ai quali si ACCEDE (a rotazione
unico numero. Può essere quindi un po' difficile in alcuni casi sapere qual'è il nome
computer remoto in quanto dipende a quale server terminale ci si connette!

Il file secrets di PAP/CHAP 160


Linux HOWTO − Networking − Sommario

Il file secrets di PAP


Il file /etc/ppp/pap−secrets è qualcosa di simile a

# Secrets per l'autentificazione usando PAP


# client server secret indirizzi_IP_locali_accetta

I quattro campi sono delimitati da spazi bianchi e l'ultimo può essere vuoto (il che è
probabilmente quello che si vuole per l'allocazione di indirizzi IP dinamica e probab
anche per quella statica da parte del proprio ISP).

Supponiamo che il proprio ISP assegni il nome utente fred e la password flints
dovrà aggiungere l'opzione name fred in /etc/ppp/options[.ttySx] e m
il file /etc/ppp/pap−secrets come segue

# Secrets per l'autentificazione usando PAP


# client server secret indirizzi_IP_locali_accetta
fred * flintstone

Questo file dice per il nome di macchina locale fred (che si è detto di usare a pppd
non è il nome locale della propria macchina) e per QUALSIASI server, bisogna usa
password (secret) flintstone.

Si noti che non c'è bisogno di specificare un indirizzo IP locale, a meno che non si v
FORZARE un indirizzo IP statico particolare. Anche se si prova, è abbastanza diffic
funzioni in quanto la maggior parte dei server PPP (per ragioni di sicurezza) non pe
sistema remoto di impostare il numero IP che gli stanno per dare.

Il file secrets di CHAP


Ciò richiede di avere metodi di autentificazione mutua, ovvero si deve permettere al
di macchina di autentificare il server remoto E al server remoto di autentificare la p
macchina.

Quindi, se la propria macchina è fred ed il sistema remoto è barney, la propria m


dovrebbe usare name fred remotename barney e la macchina remota dovr
name barney remotename fred nei rispettivi file /etc/ppp/options.

Il file /etc/chap−secrets per fred dovrebbe assomigliare a

# Secrets per l'autentificazione usando CHAP


# client server secret indirizzo IP locale accet
fred barney flintstone
barney fred wilma

e per barney

# Secrets per l'autentificazione usando CHAP


# client server secret indirizzo IP locale accet
barney fred flintstone

Il file secrets di PAP 161


Linux HOWTO − Networking − Sommario

fred barney wilma

Si noti in particolare che entrambe le macchine devono avere voci per l'autentificazi
bidirezionale. Ciò permette alla macchina locale di autentificarsi presso il server E a
remota di autentificarsi in quella locale.

Gestione di connessioni multiple autentificate co


Alcuni possono connettersi a più di un server che usa PAP. Finché il proprio nome u
diverso su ogni macchina alla quale ci si vuole connettere, questo non è un problem

Comunque, molti utenti hanno lo stesso nome utente su due (o più o anche su tutti)
quali si connettono. Ciò causa un problema nella corretta selezione della riga approp
/etc/ppp/pap−secrets.

Come ci si potrebbe aspettare, PPP fornisce un meccanismo per risolverlo. PPP perm
impostare un 'nome assunto' per la terminazione remota della connessione (il server
l'opzione remotename di pppd.

Si supponga di connettersi a due server PPP usando il nome utente fred. Allora si im
proprio /etc/ppp/pap−secrets a qualcosa così

fred pppserver1 barney


fred pppserver2 wilma

Ora, per impostare la connessione a pppserver1 si dovrebbe usare name fred


remotename pppserver1 nel proprio ppp−options mentre per pppserver2 nam
remotename pppserver2.

Poiché è possibile selezionare il file delle opzioni del ppp da usare con pppd usando
file nomefile, si può creare uno script per connettersi ad ognuno dei propri se
prendendo correttamente il file delle opzioni da usare e quindi selezionando l'opzion
remotename giusta.

[Precedente] [Sommario] [Successiv

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successiv
Cos'è OpenPress

Glossario

Gestione di connessioni multiple autentificate con PAP 162


Linux−FAQ Instaurare manualmente una connession
Documenti: PPP
Open Source Definition Una volta creati i propri file /etc/ppp/options e /etc/resolv.conf (e, s
GNU General Public License necessario, il file /etc/ppp/pap|chap−secrets), è possibile verificare le im
stabilendo manualmente una connessione PPP (una volta che la connessione funzion
La cattedrale e il bazaar
manualmente, automatizzeremo il processo).
Colonizzare la noosfera

Il calderone magico
Per far ciò, il proprio software di comunicazione dev'essere in grado di uscire SENZ
reinizializzare il modem. Minicom lo può fare con ALT Q (o nelle versioni più vecc
Libri: CTRL ALT Q).

Italian crackdown Ci si assicuri di essere loggati come root.


Open Sources
Si lanci il proprio software di comunicazione (come minicom), si componga il nume
MediaMorfosi
server e si faccia normalmente il login. Se è necessario dare un comando per avviare
GTK+/GNOME server, lo si faccia. Ora si vedranno le porcherie di cui si è parlato in precedenza.
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Se si usa pap o chap, allora semplicemente connettendosi al sistema remoto si dovre
partire il ppp e si vedranno le porcherie senza fare il login (sebbene ciò possa anche
Risorse accadere per alcuni server − si provi a premere Enter e si veda se iniziano le porche

Feedback Ora si esca dal software di comunicazione senza reinizializzare il modem (ALT Q o
in minicom) e al prompt di Linux (come root) si digiti

pppd −d −detach /dev/ttySx 38400 &

L'opzione −d abilita il debug − la conversazione di avvio di connessione ppp sarà re


file di log del proprio sistema − il che torna utile in caso di problemi.

Le lucette del proprio modem dovrebbero accendersi e spegnersi finché la connessio


non è stabilita.

A questo punto si può dare un'occhiata all'interfaccia PPP, usando il comando

ifconfig

Oltre ai vari dispositivi Ethernet e loopback che si possiedono, si dovrebbe vedere q


simile a

ppp0 Link encap:Point−Point Protocol


inet addr:10.144.153.104 P−t−P:10.144.153.51 Mask:255.255
UP POINTOPOINT RUNNING MTU:552 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0

dove

• inet addr:10.144.153.10 è il numero IP del proprio capo della connessione.

Instaurare manualmente una connessione PPP 163


Linux HOWTO − Networking − Sommario

• P−t−P:10.144.153.5 è il numero IP del SERVER.

(naturalmente, ifconfig non riporterà questi numeri IP ma quelli usati dal proprio se

Nota: ifconfig dice anche che la connessione è SU e FUNZIONANTE!

Se non viene riportato nessun dispositivo ppp o qualcosa di simile a

ppp0 Link encap:Point−Point Protocol


inet addr:0.0.0.0 P−t−P:0.0.0.0 Mask:0.0.0.0
POINTOPOINT MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0

la propria connessione PPP non è stata fatta...si veda oltre per il debug!

Si dovrebbe essere in grado di vedere anche un instradamento all'host remoto (ed ol


ciò, si lanci il comando

route −n

Si dovrebbe vedere qualcosa di simile a

Kernel routing table


Destination Gateway Genmask Flags MSS Window Use If
10.144.153.3 * 255.255.255.255 UH 1500 0 1 pp
127.0.0.0 * 255.0.0.0 U 3584 0 11 lo
10.0.0.0 * 255.0.0.0 U 1500 0 35 et
default 10.144.153.3 * UG 1500 0 5 pp

Di particolare importanza, si noti che ci sono DUE voci che puntano alla propria int
ppp.

La prima è un instradamento di tipo HOST (indicato dal flag H) e che permette di v


al quale si è connessi, ma niente altro.

La seconda è l'instradamento predefinito (default), stabilito fornendo a pppd l'opzio


defaultroute. Questo è l'instradamento che dice al proprio PC Linux di inviare
pacchetto NON destinato alle Ethernet locali − per le quali ci sono degli instradame
specifici − al server PPP stesso. I server PPP è quindi responsabile dell'instradamen
nostri pacchetti verso Internet e dell'instradamento dei pacchetti di ritorno verso di n

Se non si vede una tabella di instradamento con queste due voci, qualcosa è andato
particolare se i log di sistema mostrano un messaggio che dice che pppd non ha rim
instradamento predefinito, allora si ha l'instradamento predefinito che punta alla pro
interfaccia Ethernet − il quale DEVE essere rimpiazzato da un instradamento di rete
SI PUÒ AVERE SOLO UN INSTRADAMENTO PREDEFINITO!!!

Si dovranno allora esplorare i file di inizializzazione del sistema per trovare dove vi
impostato questo instradamento predefinito (probabilmente verrà usato un comando
route add default...). Si cambi questo comando in qualcosa di simile a ro

Instaurare manualmente una connessione PPP 164


Linux HOWTO − Networking − Sommario

net....

Ora si verifichi la connessione facendo 'ping' al server usando il numero IP riportato


di ifconfig, i.e.

ping 10.144.153.51

Si dovrebbe ricevere un output simile a

PING 10.144.153.51 (10.144.153.51): 56 data bytes


64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms
64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms
64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms
64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms

Questo elenco andrà avanti per sempre − per fermarlo si usi CTRL C, e a quel punto
riceveranno un altro po' di informazioni:

−−− 10.144.153.51 ping statistics −−−


4 packets transmitted, 4 packets received, 0% packet loss
round−trip min/avg/max = 170.7/219.2/328.3 ms

Fin qua tutto bene.

Ora si provi a fare il ping ad un host usando il suo nome (non il nome del server PPP
un host in un altro sito che si SA essere probabilmente attivo...). Per esempio

ping sunsite.unc.edu

A questo punto ci sarà una piccola pausa mentre Linux ottiene dal DNS specificato
/etc/resolv.conf il numero IP per il nome host "fully qualified" al quale si è
ping − quindi non ci si preoccupi (si vedranno comunque le lucette del modem lamp
In breve si otterrà un output simile a

PING sunsite.unc.edu (152.2.254.81): 56 data bytes


64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms

Ancora, lo si fermi con CTRL C per ottenere le statistiche...

−−− sunsite.unc.edu ping statistics −−−


5 packets transmitted, 5 packets received, 0% packet loss
round−trip min/avg/max = 169.8/176.3/190.1 ms

Se non si riceve nessuna risposta, si provi a fare il ping all'indirizzo IP del server DN
proprio ISP. Se si ottiene risposta, allora sembra proprio che ci sia qualche problem
proprio /etc/resolv.conf.

Instaurare manualmente una connessione PPP 165


Linux HOWTO − Networking − Sommario

Se non funziona, invece si ha un problema di instradamento oppure il proprio ISP h


problema ad instradare i pacchetti di ritorno. Si verifichi che la tabella di instradame
come quella vista prima, e se è a posto si contatti il proprio ISP. Un buon test per IS
usare un altro sistema operativo per connettersi. Se si può andare oltre il proprio ISP
quello, allora il problema dipende dalla propria terminazione del collegamento.

Se tutto funziona, si può buttare giù la connessione digitando

ppp−off

Dopo una breve pausa, il modem dovrebbe riattaccare da solo.

Se questo non funziona, si spenga il proprio modem oppure si lanci il proprio softw
comunicazione e si interrompa il modem con +++ e poi si riagganci con ATH0 quan
riceve il prompt OK del modem.

Si deve inoltre cancellare il file di lock creato da pppd

rm −f /var/lock/LCK..ttySx

[Precedente] [Sommario] [Successiv

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Linux HOWTO − Networking 166


Open Sources

MediaMorfosi Automatizzare la propria connessione e


GTK+/GNOME
sviluppo applicazioni
creazione degli script
Linux HOWTO: Installazione e configurazione Sebbene si possa continuare a connettersi a mano come appena mostrato, è molto pi
elegante creare alcuni script che lo facciano automaticamente per noi.
Risorse
Un insieme di script che automatizzano il login e l'avvio del PPP cosicché tutto que
Feedback
si deve fare (come root o come membro del gruppo PPP) è dare un unico comando c
avvii la connessione.

Script di connessione per l'autentificazione con


Nome utente/Password
Se il proprio ISP NON richiede l'uso di PAP/CHAP, questi sono gli script per te!

Se il pacchetto ppp è installato correttamente, si dovrebbero avere due file di esemp


PPP 2.1.2 sono in /usr/sbin e per PPP 2.2 sono in /etc/ppp/scripts. Si
chiamano

per PPP−2.1.2

ppp−on
ppp−off

e per PPP−2.2

ppp−off
ppp−on
ppp−on−dialer

Ora, se si sta usando PPP 2.1.2, suggerisco caldamente di cancellare i file d'esempio
sono potenziali problemi con questi. E non venitemi a dire che funzionano bene, li h
per anni anch'io (e li raccomandavo nella prima versione di questo HOWTO)!

A beneficio degli utilizzatori di PPP 2.1.2, qui sono riportate delle versioni d'esemp
MIGLIORI prese dalla distribuzione di PPP 2.2. Suggerisco di copiarsi ed usare que
script invece dei vecchi script di PPP 2.1.2.

Lo script ppp−on
Questo è il primo di una COPPIA di script che lanciano la connessione.

#!/bin/sh
#
# Script per inizializzare una connessione PPP. Questo è il primo d
# una coppia di script. Questa coppia di script non è sicura in qua
# il codice è visibile usando il comando `ps'. Comunque, è semplice
#
# Questi sono i parametri. Li si modifichi a quel che necessita.

Automatizzare la propria connessione e creazione degli script 167


Linux HOWTO − Networking − Sommario

TELEPHONE=555−1212 # Il numero telefonico per la connessione


ACCOUNT=george # Il nome di account per il login (come in
# 'George Burns')
PASSWORD=gracie # Password per l'account (e 'Gracie Allen')
LOCAL_IP=0.0.0.0 # Ind. IP locale, se noto. Dinamico = 0.0.0
REMOTE_IP=0.0.0.0 # Ind. IP remoto, se desiderato.
# Dinamico = 0.0.0.0
NETMASK=255.255.255.0 # La netmask appropriata, se necessaria
#
# Gli esporta rendendoli globali così saranno disponibili anche a
# 'ppp−on−dialer'
export TELEPHONE ACCOUNT PASSWORD
#
# Questa è la posizione dello script che compone il numero e fa il
# login. Si invita ad usare il nome file assoluto in quanto la
# variabile $PATH non è usata nelle opzioni di connessione (e farlo
# un account come 'root' sarebbe un buco di sicurezza, quindi non l
# si richieda).
#
DIALER_SCRIPT=/etc/ppp/ppp−on−dialer
#
# Inizializza la connessione
#
#
exec /usr/sbin/pppd debug /dev/ttySx 38400 \
$LOCAL_IP:$REMOTE_IP \
connect $DIALER_SCRIPT

Ecco qui lo script ppp−on−dialer:

#!/bin/sh
#
# Questa è la seconda parte dello script ppp−on. Effettua il
# protocollo di connessione per la connessione desiderata.
#
/usr/sbin/chat −v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK−+++\c−OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
ogin:−−ogin: $ACCOUNT \
assword: $PASSWORD

Per PPP−2.2, lo script ppp−off è qualcosa di simile a:

#!/bin/sh
###################################################################
#
# Determina il dispositivo da chiudere
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else

Automatizzare la propria connessione e creazione degli script 168


Linux HOWTO − Networking − Sommario

DEVICE=$1
fi

###################################################################
#
# Se esiste il pid file ppp0 allora il programma è in esecuzione. L
# ferma.
if [ −r /var/run/$DEVICE.pid ]; then
kill −INT `cat /var/run/$DEVICE.pid`
#
# Se il kill non funziona allora non c'è alcun processo in esecuzio
# con questo pid. Significa inoltre che il file di lock è stato
# lasciato lì. Allo stesso tempo si può quindi voler cancellare il
# file di lock.
if [ ! "$?" = "0" ]; then
rm −f /var/run/$DEVICE.pid
echo "ERRORE: Rimozione del vecchio file pid"
exit 1
fi
#
# Successo. Si lascia che pppd pulisca da solo la sua roba vecchia.
echo "Connessione PPP a $DEVICE terminata."
exit 0
fi
#
# Il processo ppp non è in esecuzione per ppp0
echo "ERRORE: connessione PPP non attiva su $DEVICE"
exit 1

Modificare gli script forniti per l'avvio del PPP


Poiché gli script sono due, andremo a modificarne uno alla volta.

Lo script ppp−on

Si deve modificare questo script per riflettere il PROPRIO nome utente nell'ISP, la
PROPRIA password per l'ISP, e il numero di telefono di quest'ultimo.

Ognuna delle righe simili a TELEPHONE= in realtà impostano una variabile shell ch
contiene l'informazione a destra di '=' (ad esclusione dei commenti naturalmente). Q
modifichi ognuna di queste righe in modo che vadano bene per la propria connessio
proprio ISP.

Inoltre, se si imposta il numero IP (se ce n'è bisogno), nel file /etc/ppp/option


CANCELLI la riga che dice

$LOCAL_IP:$REMOTE_IP \

Inoltre, ci si assicuri che la variabile shell DIALER_SCRIPT punti al percorso comp


al nome dello script che compone il numero che si intende usare. Quindi, se si è spo
rinominato lo script, ci si assicuri di modificare in modo adeguato lo script ppp−on

Modificare gli script forniti per l'avvio del PPP 169


Linux HOWTO − Networking − Sommario

Lo script ppp−on−dialer

Questo è il secondo degli script che mettono in funzione la propria connessione PPP

Nota: uno script di conversazione (chat) è solitamente tutto in una riga. I backslash
usati per permettere la continuazione di una riga in più righe fisiche (per comodità d
lettura) e non fanno parte dello script stesso.

Comunque, è molto utile analizzarlo in dettaglio così da capire cosa realmente fa (o


dovrebbe fare)!

Il significato di uno script di conversazione (chat)


Un script di conversazione è una sequenza di coppie #`¨stringa attesa#`¨ #`¨strin
inviata#`¨. In particolare si noti che ci si aspetta SEMPRE qualcosa prima di invi
qualcos'altro.

Se si invia qualcosa SENZA prima ricevere niente, si deve usare una stringa attesa v
(indicata da #`¨#`¨) e similmente per aspettare qualcosa senza mandare niente! In
se una stringa consiste di diverse parole (p.es. NO CARRIER), bisogna racchiuderla
apici in modo che chat la veda come una singola entità.

La riga di conversazione nel nostro esempio è:

exec /usr/sbin/chat −v

Invocando chat, il −v dice a chat di copiare TUTTO il suo I/O nei log di sistema
(solitamente /var/log/messages). Una volta che si è contenti di come funziona lo scr
modifichi questa riga per rimuovere il −v per preservare i log di sistema da confusio
necessaria.

TIMEOUT 3

Questo imposta il timeout per la ricezione di un input atteso a tre secondi. Ci può es
bisogno di incrementarlo diciamo a 5 o 10 secondi se si usa un modem veramente le

ABORT '\nBUSY\r'

Se chat riceve la stringa BUSY, termina l'operazione.

ABORT '\nNO ANSWER\r'

Se chat riceve la stringa NO ANSWER, termina l'operazione.

ABORT '\nRINGING\r\n\r\nRINGING\r'

Se chat riceve (ripetutamente) la stringa RINGING, termina l'operazione. Significa


qualcuno vi sta chiamando al telefono!

Lo script ppp−on−dialer 170


Linux HOWTO − Networking − Sommario

" \rAT

Attende che il modem non ritorni niente prima di inviare la stringa AT.

OK−+++\c−OK ATH0

Questa è un po' più complicata in quanto sfrutta qualcuna delle capacità di recupero
errori di chat.

Quel che dice è... Attendi OK, se NON è ricevuto (perché in modem non è in modo
comandi) allora invia +++ (la stringa predefinita compatibile Hayes che riporta il m
in modo comandi) e attendi OK. Poi invia ATH0 (la stringa di ``riattacco'' del mode
permette al nostro script di far fronte alle situazioni nella quali il proprio modem è
``bloccato in linea''!

TIMEOUT 30

Imposta il timeout a 30 secondi per il resto dello script. Se si ha esperienza di proble


lo script di chat che termina a causa di timeout, lo si incrementi a 45 secondi o più.

OK ATDT$TELEPHONE

Attende OK (la risposta del modem al comando ATH0) e compone il numero che si
chiamare.

CONNECT ''

Attende CONNECT (che il modem invia quando il modem remoto risponde) e non
niente in risposta.

ogin:−−ogin: $ACCOUNT

Ancora, abbiamo anche qui un po' di recupero dagli errori. Aspetta il prompt per il l
(...ogin:) ma se non lo riceve entro il timeout, invia un return e poi attende ancora il
per il login. Quando ha ricevuto il prompt, invia il nome utente (salvato nella variab
$ACCOUNT).

assword: $PASSWORD

Attende il prompt per la password e invia la password (ancora salvata in una variabi
shell).

Questo script ha delle ragionevoli capacità per il recupero dagli errori. chat ha
considerevolmente molte più possibilità di quelle qui dimostrate. Per maggiori
informazioni si consulti la pagina di manuale di chat (man 8 chat).

Lo script ppp−on−dialer 171


Linux HOWTO − Networking − Sommario

L'avvio di PPP dal lato server

Sebbene lo script ppp−on−dialer vada bene per server che avviano automaticamente
pppd da loro lato della connessione una volta effettuato il login, alcuni server richie
che si avvii esplicitamente il PPP nel server.

Se si deve dare un comando per avviare il PPP sul server, allora si DEVE modificar
script ppp−on−dialer.

Alla FINE dello script (dopo la riga della password) si aggiunga un'altra coppia atte
inviata − questa cercherà il proprio prompt della shell (si faccia attenzione ai caratte
hanno un significato particolare nelle Bourne shell, come $ e [ o ] (parentesi quadre
e chiuse).

Una volta che chat ha trovato il prompt della shell, deve dare il comando di avvio de
richiesto dal proprio ISP.

Nel mio caso, il mio server PPP usa il prompt della Linux Bash predefinito

[hartr@kepler hartr]$

e richiede che io digiti

ppp

per avviare il PPP sul server.

È una buona idea permettere un po' di recupero dagli errori anche qui, quindi nel mi
uso

hartr−−hartr ppp

Questo dice che se non si riceve il prompt entro il timeout, di inviare un ritorno carr
(carriage return) e di cercare un'altra volta il prompt.

Una volta ricevuto il prompt, allora invia la stringa ppp.

Nota: non si dimentichi di aggiungere un alla fine della riga precedente cosicché cha
ancora che l'intero script di conversazione sia in una riga!

Sfortunatamente, alcuni server producono un insieme di prompt molto variabili. Può


necessario effettuare più volte il login usando minicom per capire l'andamento e sce
una stringa #`¨attesa#`¨ stabile.

Uno script di conversazione per le connessioni


autentificate con PAP/CHAP
Se il proprio ISP usa PAP/CHAP, allora lo script di conversazione è molto più semp
Tutto ciò che lo script deve fare è di comporre il numero telefonico, attendere la

L'avvio di PPP dal lato server 172


Linux HOWTO − Networking − Sommario

connessione e poi lasciare che pppd gestisca il login!

#!/bin/sh
#
# Questa è la parte 2 dello script ppp−on. Effettuerà il protocollo
# connessione per la connessione desiderata.
#
exec /usr/sbin/chat −v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK−+++\c−OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \

Le opzioni "debug" e "file file_opzioni" di p


Come si è già visto, si può abilitare la registrazione delle informazioni di debug usa
l'opzione −d di pppd. L'opzione 'debug' è equivalente.

Poiché stiamo stabilendo una connessione con un nuovo script, per il momento si la
l'opzione per il debug (Attenzione: se lo spazio del disco è stringente, la registrazion
scambi pppd può far aumentare rapidamente la dimensione del file syslog, causando
problemi − questo succede solo nel caso in cui si fallisce la connessione e si continu
provare per qualche minuto).

Una volta contenti di come tutto funziona, si può rimuovere questa opzione.

Se si è chiamato il file delle opzioni di ppp con qualcosa di diverso da


/etc/ppp/options o /etc/ppp/options.ttySx, si specifichi il nome de
con l'opzione file di pppd − p.es.

exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Le opzioni "debug" e "file file_opzioni" di pppd 173


Linux−FAQ Verificare i propri script di connessione
Documenti: Si apra un nuovo Xterm per root (se si è in X) oppure si apra una nuova console virt
faccia il login come root.
Open Source Definition

GNU General Public License In questa nuova sessione, si lanci il comando


La cattedrale e il bazaar
tail −f /var/log/messages
Colonizzare la noosfera

Il calderone magico (o di qualsiasi altro sia il file di registrazione di sistema).

Libri: Nella prima finestra (o console virtuale) si lanci il comando

Italian crackdown ppp−on &


Open Sources
(o qualsiasi altro nome con il quale si è chiamato la versione modificata di
MediaMorfosi /usr/sbin/ppp−on). Se non si fa andare lo script in background specificando & alla fi
GTK+/GNOME comando, non si riotterrà il prompt del terminale finché ppp non esce (quando termi
sviluppo applicazioni collegamento).
Linux HOWTO: Installazione e configurazione
Ora si torni alla finestra che sta mostrando i log di sistema.
Risorse
Si vedrà qualcosa di simile a quanto segue (a patto che si sia specificata l'opzione −
Feedback chat e −d per pppd).... ciò che segue è quanto lo script di conversazione registra nei
sistema seguito dalle informazioni di avvio per pppd:

Oct 21 16:09:58 hwin chat[19868]: abort on (NO CARRIER)


Oct 21 16:09:59 hwin chat[19868]: abort on (BUSY)
Oct 21 16:09:59 hwin chat[19868]: send (ATZ^M)
Oct 21 16:09:59 hwin chat[19868]: expect (OK)
Oct 21 16:10:00 hwin chat[19868]: ATZ^M^M
Oct 21 16:10:00 hwin chat[19868]: OK −− got it
Oct 21 16:10:00 hwin chat[19868]: send (ATDT722298^M)
Oct 21 16:10:00 hwin chat[19868]: expect (CONNECT)
Oct 21 16:10:00 hwin chat[19868]: ^M
Oct 21 16:10:22 hwin chat[19868]: ATDT722298^M^M
Oct 21 16:10:22 hwin chat[19868]: CONNECT −− got it
Oct 21 16:10:22 hwin chat[19868]: send (^M)
Oct 21 16:10:22 hwin chat[19868]: expect (ogin:)
Oct 21 16:10:23 hwin chat[19868]: kepler login: −− got it
Oct 21 16:10:23 hwin chat[19868]: send (hartr^M)
Oct 21 16:10:23 hwin chat[19868]: expect (ssword:)
Oct 21 16:10:23 hwin chat[19868]: hartr^M
Oct 21 16:10:23 hwin chat[19868]: Password: −− got it
Oct 21 16:10:23 hwin chat[19868]: send (??????^M)
Oct 21 16:10:23 hwin chat[19868]: expect (hartr)
Oct 21 16:10:24 hwin chat[19868]: [hartr −− got it
Oct 21 16:10:24 hwin chat[19868]: send (ppp^M)
Oct 21 16:10:27 hwin pppd[19872]: pppd 2.1.2 started by root, uid 0
Oct 21 16:10:27 hwin pppd[19873]: Using interface ppp0
Oct 21 16:10:27 hwin pppd[19873]: Connect: ppp0 <−−> /dev/cua1
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 1, id 1
Oct 21 16:10:27 hwin pppd[19873]: LCP: sending Configure−Request, i
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(LCP): Rcvd id 1.

Verificare i propri script di connessione 174


Linux HOWTO − Networking − Sommario

Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MRU


Oct 21 16:10:27 hwin pppd[19873]: (1500)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ASYNCMAP
Oct 21 16:10:27 hwin pppd[19873]: (0)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd MAGICNUMBER
Oct 21 16:10:27 hwin pppd[19873]: (a098b898)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd PCOMPRESSION
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: rcvd ACCOMPRESSION
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: lcp_reqci: returning CONFACK.
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(LCP): Sent code 2, id 1
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfack(LCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id
Oct 21 16:10:27 hwin pppd[19873]: IPCP: sending Configure−Request,
Oct 21 16:10:27 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 1.
Oct 21 16:10:27 hwin pppd[19873]: ipcp: received ADDR
Oct 21 16:10:27 hwin pppd[19873]: (10.144.153.51)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: ipcp: received COMPRESSTYPE
Oct 21 16:10:27 hwin pppd[19873]: (45)
Oct 21 16:10:27 hwin pppd[19873]: (ACK)
Oct 21 16:10:27 hwin pppd[19873]: ipcp: returning Configure−ACK
Oct 21 16:10:28 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id
Oct 21 16:10:30 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 1, id
Oct 21 16:10:30 hwin pppd[19873]: IPCP: sending Configure−Request,
Oct 21 16:10:30 hwin pppd[19873]: fsm_rconfreq(IPCP): Rcvd id 255.
Oct 21 16:10:31 hwin pppd[19873]: ipcp: received ADDR
Oct 21 16:10:31 hwin pppd[19873]: (10.144.153.51)
Oct 21 16:10:31 hwin pppd[19873]: (ACK)
Oct 21 16:10:31 hwin pppd[19873]: ipcp: received COMPRESSTYPE
Oct 21 16:10:31 hwin pppd[19873]: (45)
Oct 21 16:10:31 hwin pppd[19873]: (ACK)
Oct 21 16:10:31 hwin pppd[19873]: ipcp: returning Configure−ACK
Oct 21 16:10:31 hwin pppd[19873]: fsm_sdata(IPCP): Sent code 2, id
Oct 21 16:10:31 hwin pppd[19873]: fsm_rconfack(IPCP): Rcvd id 1.
Oct 21 16:10:31 hwin pppd[19873]: ipcp: up
Oct 21 16:10:31 hwin pppd[19873]: local IP address 10.144.153.104
Oct 21 16:10:31 hwin pppd[19873]: remote IP address 10.144.153.51

Si noti che uso numeri IP STATICI, quindi la mia macchina li spedisce al server PP
quindi non si vedrà questa parte se si usano numeri IP DINAMICI. Inoltre questo se
richiede un comando specifico per avviare il ppp dalla sua parte.

Se tutto sembra OK, lo si verifichi ulteriormente come prima con ping a numeri IP e
di host.

Si lanci il proprio web browser o quant'altro e si cominci a navigare, si è finalmente


connessi!

[Precedente] [Sommario] [Successivo]

Verificare i propri script di connessione 175


Linux HOWTO − Networking − Sommario
Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 176


Chiudere la connessione PPP
Quando si è finito di usare la connessione PPP, si usi il comando standard ppp−off p
buttarla giù (si ricorda che bisogna essere o root oppure un membro del gruppo PPP

Nei file di log di sistema di vedrà qualcosa di simile a:

Oct 21 16:10:45 hwin pppd[19873]: Interrupt received: terminating l


Oct 21 16:10:45 hwin pppd[19873]: ipcp: down
Oct 21 16:10:45 hwin pppd[19873]: default route ioctl(SIOCDELRT):
Bad address
Oct 21 16:10:45 hwin pppd[19873]: fsm_sdata(LCP): Sent code 5, id 2
Oct 21 16:10:46 hwin pppd[19873]: fsm_rtermack(LCP).
Oct 21 16:10:46 hwin pppd[19873]: Connection terminated.
Oct 21 16:10:46 hwin pppd[19873]: Exit.

Non ci si preoccupi del SIOCDELRT, significa solo che pppd si è accorto che sta
terminando e non è niente di preoccupante.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

Chiudere la connessione PPP 177


MediaMorfosi
Risoluzione dei problemi
GTK+/GNOME
sviluppo applicazioni
Ci possono essere diversi motivi per i quali la propria connessione non
Linux HOWTO: Installazione e configurazione funziona: chat non è arrivato correttamente alla fine della sua esecuzione,
oppure si ha una linea molto disturbata, ecc. Quindi si controlli nei log di
Risorse sistema per indicazioni.
Feedback
Ho compilato il supporto per il PPP nel
kernel, ma...
Un problema molto comune è che la gente compila il supporto per il PPP nel
kernel, ed ancora quando provano a lanciare pppd, il kernel afferma che non
ha il supporto per il ppp! Ci sono diverse ragioni per le quali ciò può accadere.

Si è fatto il boot con il kernel giusto?

Sebbene si sia ricompilato il supporto per il ppp nel proprio kernel, non si è
fatto il boot con il nuovo kernel. Ciò può succedere se non si è aggiornato
/etc/lilo.conf e rilanciato lilo.

Un buona verifica sul kernel la si può ottenere usando il comando uname


−a, che dovrebbe produrre una riga simile a

Linux archenland 2.0.28 #2 Thu Feb 13 12:31:37 EST 1997 i586

Questa mostra la versione del kernel e la data della sua compilazione, che
dovrebbero dare un'idea abbastanza buona di cosa sta funzionando.

Si è compilato il supporto per il ppp come modulo?

Se si è compilato il supporto per il ppp a livello kernel come modulo, ma non


si sono creati ed installati i moduli, allora si può ottenere questo tipo di errore.
Si veda il Kernel−HOWTO e il file README in /usr/src/linux!

Un'altra possibilità connessa ai moduli è che ci si aspetta che il modulo sia


caricato automaticamente, ma non è in esecuzione il demone kerneld (che
automaticamente carica e scarica i moduli quando necessario). Si veda il
kerneld mini−HOWTO per informazioni su come configurare kerneld.

Si sta usando la versione corretta di PPP per il proprio


kernel?

Si deve usare ppp−2.2 con kernel versione 2.0.x. Si può usare ppp−2.2 con
kernel versione 1.2.x (se si applica una patch al kernel) altrimenti si deve
usare ppp−2.1.2.

Risoluzione dei problemi 178


Linux HOWTO − Networking − Sommario

Si sta eseguendo pppd come root?

Se non si esegue pppd come utente root (e pppd non è suid a root), si può
ricevere questo messaggio.

Il mio modem si connette ma il ppp non parte


mai
Ci sono innumerevoli variazioni sul tema (si dia un'occhiata a
comp.os.linux...).

Un errore MOLTO comune è che si è scritto male qualcosa nei propri script.
La sola cosa da fare in questo caso è assicurarsi di registrare nei log di sistema
(/var/log/messages) la conversazione di chat tra il proprio PC Linux e il server
e poi analizzarla riga per riga. Può essere necessario connettersi manualmente
al server PPP e controllare ancora tutto.

Nella registrazione si devono controllare molto attentamente i prompt reali,


tenendo bene in mente che noi umani abbiamo la tendenza a leggere quello
che PENSIAMO di aver scritto, e non quello che c'è realmente scritto!

Il log di sistema dice ``serial line is not


8 bit clean''
Ci sono anche qui delle varianti, come serial line looped back,
ecc., e le cause possono essere molteplici (anche più di una
contemporaneamente).

Per capire cosa succede in questi casi, è necessario comprendere un po' di quel
che succede dietro le quinte durante l'esecuzione di pppd.

Quando pppd viene avviato, invia pacchetti LCP (Link Control Protocol −
Protocollo di Controllo del Collegamento) alla macchina remota. Se riceve
una risposta valida allora passa allo stadio successivo (usando pacchetti IPCP
− IP Control Protocol − Protocollo di Controllo IP) e solo quando questa
negoziazione è completa viene avviato lo strato IP in modo che si possa usare
la connessione PPP.

Se non c'è un server ppp funzionante all'altro capo quando il proprio PC invia
pacchetti LCP, questi vengono riflessi dal processo di login della terminazione
remota della connessione. Poiché questi pacchetti usano 8 bit, la loro
riflessione causa la soppressione dell'ottavo bit (si ricorda che ASCII è un
codice a 7 bit). Il PPP vede questo e si comporta di conseguenza.

Ci sono diverse ragioni per cui può avvenire questa riflessione.

Si sta eseguendo pppd come root? 179


Linux HOWTO − Networking − Sommario

Non ci si è loggati correttamente nel server

Quando il proprio script di conversazione termina, pppd viene avviato nel


proprio PC. Comunque, se non si è completato il processo di login nel server
(incluso l'invio di un qualsiasi comando necessario per avviare il PPP nel
server), PPP non verrà avviato.

Quindi, i pacchetti LCP sono riflessi e si riceve questo errore.

Si deve controllare attentamente e correggere (se necessario) il proprio script


di conversazione (si veda più indietro).

Non si è avviato il PPP nel server

Alcuni server PPP richiedono l'inserimento di un comando e/o di un RETURN


dopo la completazione del processo di login prima di avviare il ppp dal loro
lato della connessione.

Si verifichi il proprio script di conversazione (si veda più indietro).

Se si fa il login manualmente e si scopre che è necessario inviare un RETURN


per avviare il PPP, si aggiunga semplicemente una coppia di stringhe
attesa/inviata vuote alla fine del proprio script di conversazione (una stringa
vuota in realtà invia un RETURN).

Il processo PPP remoto è lento a partire

Questa è un po' una birichinata!

Di default, il proprio pppd è compilato per inviare un massimo di 10 richieste


di configurazione lcp. Se il server è un po' lento a partire, tutte le 10 richieste
possono essere spedite prima che il server sia pronto a riceverle.

Nella propria macchina, pppd si vede tutte le 10 richieste che gli tornano
indietro (senza l'ottavo bit) ed esce.

Ci sono due modi per aggirare questo problema:

Aggiungere un lcp−max−configure 30 alle proprie opzioni del ppp. Ciò


incrementa il numero massimo di pacchetti di configurazione LCP che pppd
invia prima di uscire. Per server veramente lenti, può essere necessario
incrementare ancora di più tale numero.

In alternativa, si può essere un po' furbini. Si dovrebbe aver notato che quando
si fa il login a mano nel server PPP e il PPP viene avviato, il primo carattere
ad apparire fra le porcherie prodotte dal server ppp è sempre il carattere tilde
(~).

Usando questa conoscenza a priori, si può aggiungere una nuova coppia di

Non ci si è loggati correttamente nel server 180


Linux HOWTO − Networking − Sommario

stringhe attesa/inviata alla fine dello script di conversazione che


aspetta una tilde e non invia niente. Cioè qualcosa di simile a:

\~ ''

Nota: poiché il carattere tilde ha un significato particolare nella shell, ne deve


essere fatto l'escape (e quindi metterci prima un backslash).

Instradamento predefinito non impostato


(Default route not set)
Se pppd si rifiuta di impostare un instradamento predefinito, è perché
(abbastanza giustamente) si rifiuta di rimuovere/rimpiazzare un instradamento
predefinito preesistente.

La ragione classica per cui capita questo errore è che alcune distribuzioni
impostano l'instradamento predefinito verso la propria scheda Ethernet invece
di impostare uno specifico instradamento di rete.

Si veda la Linux NAG ed il Net2/3 HOWTO per informazioni su come


impostare correttamente la propria scheda Ethernet e gli instradamenti
associati.

Un'altra ragione potrebbe essere che la propria LAN usi già un gateway/router
e che la propria tabella di instradamento sia già impostata per puntare, tramite
l'instradamento predefinito, a tale gateway.

Sistemare questa situazione può richiedere un po' di buone nozioni di IP


networking e va oltre lo scopo di questo HOWTO. Si consiglia di trovare
qualche aiuto esperto (tramite newsgroup o da qualcuno a cui si possa
chiedere la soluzione e che sia raggiungibile in maniera diretta).

Altri problemi
Ci sono molte ragioni oltre a queste che possono causare il fallimento della
connessione ppp e/o non farla funzionare correttamente.

Si vedano le PPP FAQ (che sono veramente una serie di domande e risposte).
È un documento omnicomprensivo e le risposte SONO lì! Per la mia (brutta)
esperienza, se le risposte al proprio problema non solo lì, il problema NON è
un errore del ppp! Nel mio caso usavo un kernel ELF e non avevo aggiornato i
moduli correttamente. Ho perso solamente due giorni (e buona parte di una
notte) a stanare quello che si è rivelato essere un perfetto server PPP prima
delle luci dell'alba!

[Precedente] [Sommario] [Successivo]

Instradamento predefinito non impostato (Default route not set) 181


Linux HOWTO − Networking − Sommario

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 182


Ottenere aiuto quando ormai
non si sa più cosa provare
Se non si riesce a far funzionare la propria connessione PPP,
si riveda tutto questo documento e si verifichi tutto, in
congiunzione con l'output creato da "chat −v..." e "pppd −d"
nel log di sistema.

Si consulti anche la documentazione di PPP e le FAQ, oltre


agli altri documenti qui citati!

Se ancora non se ne esce, si provi nei newsgroup


comp.os.linux.misc e comp.os.linux.networking che sono
regolarmente seguiti da persone che possono aiutare con il
PPP, così come nel newsgroup comp.protocols.ppp

Si può pure provare a mandare a me una email personale, ma


non ho una giornata lavorativa (e di vita) regolare e quindi non
garantisco di rispondere rapidamente, in quanto tutto dipende
dal carico di lavoro attuale e dallo stato della mia vita privata!

In particolare, NON SI POSTINO RISME DI OUTPUT DI


DEBUG NEI GRUPPI DI DISCUSSIONE E NEMMENO
LI SI SPEDISCA A ME VIA EMAIL, nel primo caso si
sprecherà un sacco di banda e nel secondo verranno
consegnati a /dev/null (a meno che io non li abbia
espressamente richiesti).

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Ottenere aiuto quando ormai non si sa più cosa provare 183


Open Source Definition

GNU General Public License Problemi comuni una volta


La cattedrale e il bazaar che il collegamento funziona
Colonizzare la noosfera
Un problema che si troverà è che i provider supportano
Il calderone magico
solamente il pacchetto software di connessione che loro stessi
Libri:
distribuiscono ai nuovi abbonati. Questo è (tipicamente) per
Microsoft Windows :−( e molti servizi di supporto clienti
Italian crackdown sembrano non saperne niente di Unix (o Linux). Così, ci si
prepari ad un'assistenza molto limitata da quella parte.
Open Sources

MediaMorfosi Si potrebbe comunque fare a quegli individui un favore ed


GTK+/GNOME educarli su Linux (qualsiasi persona che lavora nel supporto
sviluppo applicazioni clienti di un ISP dovrebbe essere abbastanza addentro alla
Linux HOWTO: Installazione e configurazione
terminologia di Internet e dovrebbe quindi avere a casa una
macchina Linux!)
Risorse
Non riesco a vedere niente oltre al
Feedback
server PPP al quale mi connetto
OK, la propria connessione PPP è su e funzionante e si può
fare ping al server PPP con il suo numero IP (il secondo o
``remoto'' numero IP mostrato da ifconfig ppp0), ma non
si riesce a raggiungere nient'altro.

Prima di tutto, si provi a fare ping ai numeri IP specificati nel


proprio /etc/resolv.conf come name server. Se questi
funzionano, si può vedere oltre il proprio server PPP (a meno
che questi non siano gli stessi numeri IP del numero IP
``remoto'' della propria connessione). Quindi si provi a fare
ping al nome completo del proprio provider, per esempio

ping my.provider.net.au

Se questo NON funziona, si ha un problema con la risoluzione


dei nomi. Ciò probabilmente dipende da un errore di battitura
nel proprio file /etc/resolv.conf. Lo si controlli accuratamente
con le informazioni ottenute chiamando il proprio provider. Se
tutto sembra a posto, si chiami il proprio provider e si verifichi
di aver scritto correttamente i numeri IP.

Se ANCORA non funziona (e il proprio provider conferma


che i suoi name server sono attivi e funzionanti), c'è un
problema da qualche altra parte, e suggerisco di controllare
attentamente la propria installazione di Linux (in particolare si
controllino i permessi dei file).

Se ANCORA non si riesce a fare ping ai name server del


proprio provider tramite i loro numeri IP, allora questi non

Problemi comuni una volta che il collegamento funziona 184


Linux HOWTO − Networking − Sommario

sono attivi (si chiami il provider al telefono e si controlli)


oppure c'è qualche problema di instradamento da parte del
proprio provider. Ancora, lo si chiami e si verifichi.

Una possibilità è che la "terminazione remota" sia un server


PPP Linux nel quale non sia stata specificata l'opzione di IP
forwarding nel kernel!

Una buona verifica generale è di provare a connettersi al


proprio provider usando il software che molti di questi
forniscono per (gulp) Microsoft Windows. Se tutto funziona
da un altro sistema operativo con esattamente lo stesso
account, allora il problema è nel proprio sistema Linux e NON
nel proprio provider.

Posso spedire email, ma non posso


riceverla
Se si stanno usando numeri IP dinamici, è perfettamente
normale. Si veda Usare i servizi Internet con numeri IP
Dinamici ([*]) più avanti.

Perché la gente non può fare finger,


WWW, gopher, talk nella mia
macchina?
Ancora, se si stanno usando numeri IP dinamici, è
perfettamente normale. Si veda Usare i servizi Internet con
numeri IP Dinamici ([*]) più avanti.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Posso spedire email, ma non posso riceverla 185


Documenti: Usare i servizi Internet con
Open Source Definition numeri IP dinamici
GNU General Public License
Se si stanno usando numeri IP dinamici (e molti provider
La cattedrale e il bazaar
danno solo numeri IP dinamici a meno che non si paghi
Colonizzare la noosfera significativamente di più per la propria connessione), allora si
Il calderone magico
debbono accettare le limitazioni che questo impone.

Libri: Prima di tutto, le richieste di servizi esterni funzioneranno


bene. Ovvero, si possono spedire email usando sendmail (a
Italian crackdown patto di averlo configurato correttamente), scaricare file in ftp
Open Sources
da siti remoti, fare finger ad utenti su altre macchine, navigare
nel web, ecc.
MediaMorfosi

GTK+/GNOME In particolare, si può rispondere mentre si è off line (ovvero


sviluppo applicazioni non si è connessi) alle email che si sono scaricate nella propria
Linux HOWTO: Installazione e configurazione macchine. La posta resterà semplicemente in attesa nella
propria coda di posta (mail queue) finché non ci si connette al
Risorse proprio ISP.

Feedback Comunque, la propria macchina NON è connessa ad Internet


24 ore al giorno, né ha lo stesso numero IP ogni volta che
viene connessa. È quindi impossibile ricevere email
direttamente nella propria macchina e veramente molto
difficile configurare un server web o ftp a cui possano
accedere i propri amici! Per come Internet è progettata la
propria macchina non esiste come macchina unica e
permanentemente contattabile quanto non ha un unico numero
IP (si ricordi che altre macchine useranno il numero IP a voi
assegnato in una connessione, quando gli viega allocato per la
loro connessione).

Se si configura un server WWW (o qualsiasi altro server), tale


server rimane totalmente sconosciuto a qualsiasi utente in
Internet FINCHÉ questi non sappiano che la macchina è
connessa E quale sia il suo reale (e momentaneo) numero IP.
Ci sono diversi modi per far ottenere ad altri utenti questa
informazione: si può chiamarli o mandargli un email per
dirglielo oppure usare in modo astuto i file ".plan" su un
account shell nel proprio provider (assunto che questi
permetta accessi shell e finger).

Ora, per la maggior parte degli utenti questo non è un


problema: tutto ciò che la maggior parte della gente vuole è
inviare e ricevere email (usando il proprio account nel
provider) e fare connessioni in uscita in WWW, ftp e ad altri
servizi su Internet. Se veramente si DEBBONO avere
connessioni entranti nella propria macchina, si dovrebbe
realmente ottenere un numero IP statico. In alternativa si

Usare i servizi Internet con numeri IP dinamici 186


Linux HOWTO − Networking − Sommario

possono esplorare i metodi suggeriti in precedenza...

Configurazione dell'email
Anche per numeri IP dinamici, si può certamente configurare
sendmail sulla propria macchina per spedire fuori qualsiasi
email composta localmente. La configurazione di sendmail
può essere oscura e difficoltosa, quindi questo documento non
prova nemmeno a dire come farla. Comunque, si dovrebbe
probabilmente configurare sendmail cosicché il proprio ISP
sia designato come proprio "smart relay" host (l'opzione DS di
sendmail.cf) (per maggiori informazioni sulla
configurazione di sendmail, si veda la documentazione di
sendmail, e si dia un'occhiata alle configurazioni m4
distribuite con sendmail. Ce n'è certamente una che va bene
per il proprio caso).

Ci sono anche eccellenti libri su Sendmail (da citare la 'bibbia'


della O'Reilly and Associates), ma questi esulano quasi
certamente dalle necessità della maggior parte degli utenti!

Una volta configurato sendmail, probabilmente si vorrà fare in


modo che, non appena la connessione PPP è attiva, sendmail
spedisca qualsiasi messaggio in attesa nella coda di email in
uscita. Per far ciò, si aggiunga il comando

sendmail −q &

al proprio script /etc/ppp/ip−up (si veda più avanti).

Le email in ingresso sono un problema nel caso di numeri IP


dinamici. Il modo per gestirle è di:

• configurare il proprio mail user agent (elm, pine, ecc.)


in modo che tutta la posta venga spedita spedita fuori
con un header "reply" che riporti il proprio indirizzo
di email nel proprio ISP.
Se possibile, si dovrebbe anche impostare il proprio
indirizzo FROM al proprio indirizzo email nel proprio
provider.
• usare i programmi popclient o fetchmail per scaricare
la propria posta dal proprio provider. In alternativa, se
il proprio ISP usa IMAP, usare un MUA che supporta
IMAP (come pine).

Si può automatizzare questo processo al momento


dell'attivazione delle connessione mettendo i comandi
appropriati nello script /etc/ppp/ip−up (si veda più
avanti).

Configurazione dell'email 187


Linux HOWTO − Networking − Sommario

Configurare un name server locale


Sebbene si possano tranquillamente usare i DNS localizzati
nel proprio ISP, si può anche impostare un name server
(secondario) di sola cache locale che venga attivato dallo
script ip−up. Il vantaggio di usare un name server locale (di
sola cache) è che fa risparmiare tempo (e banda) se si
contattano frequentemente gli stessi siti durante una lunga
sessione on−line.

La configurazione di un DNS di sola cache (che usi una riga


``forwarders'' che punta al DNS dell'ISP nel file named.boot) è
relativamente semplice. Il libro della O'Reilly (DNS and Bind)
spiega tutto quello che serve sapere sull'argomento.

È disponibile anche un DNS−HOWTO.

Se si fa funzionare una piccola LAN che può accedere Internet


attraverso il proprio PC Linux (usando IP Masquerade per
esempio), probabilmente è una buona idea far girare un name
server locale (con una direttiva forwarders) quando la
connessione è attiva, in quanto ciò minimizzerà la banda e il
ritardo associato con la risoluzione di nomi.

Una nota di Netiquette (galateo della rete): si chieda il


permesso al proprio ISP prima di iniziare ad usare un name
server secondario di sola cache nel dominio del proprio ISP.
Propriamente configurato, il proprio DNS non causerà nessun
problema a proprio provider, ma se si sbaglia qualcuno ne può
causare.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Configurare un name server locale 188


Documenti:

Open Source Definition


Connettere assieme due reti
GNU General Public License
usando PPP
La cattedrale e il bazaar
In linea di principio non c'è differenza tra il collegare una
Colonizzare la noosfera macchina Linux ad un server PPP e il collegare due LAN
Il calderone magico
usando PPP su una macchina di ognuna delle LAN. Si ricordi
che il PPP è un protocollo peer to peer (da pari a pari).
Libri:
Comunque, si deve DEFINITIVAMENTE comprendere
Italian crackdown come avviene l'instradamento. Si legga il NET−3 HOWTO e
Open Sources
la Linux Network Administrator Guide (NAG). Di
insostituibile aiuto può essere anche #`¨TCP/IP Network
MediaMorfosi Administration#`¨ (pubblicato dalla O'Reilly and Assoc −
GTK+/GNOME ISBN 0−937175−82−X).
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Se si ha intenzione di usare il sub networking in un numero IP


di rete su entrambi i lati della connessione, si troverà utile il
Risorse Linux sub networking mini−howto (bozza). È disponibile a
http://www.interweft.com.au/other/Linux Sub networking
Feedback mini−HOWTO.

Per poter connettere due LAN, si devono usare numeri IP di


rete diversi (o sottoreti dello stesso numero di rete) e si
dovranno usare numeri IP statici oppure usare IP masquerade.
Se si vuole usare IP masquerade, si veda l'IP masquerade
mini−howto per le istruzionei sulla sua configurazione.

Impostare i numeri IP
Ci si metta d'accordo con l'amministratore di rete dell'altra
LAN su i numeri IP che saranno usati per ognuno degli
estremi dell'interfaccia PPP. Se si stanno usando numeri IP
statici, ciò probabilmente richiede che ci si connetta ad uno
specifico numero telefonico.

Si modifichi il file /etc/ppp/options[.ttyXX]


appropriato − è una buona idea avere un modem e porta
specifici dal proprio lato per questa connessione. Può essere
pure necessario modificare il proprio file
/etc/ppp/options, e creare appositi file options.ttyXX
per le altre connessioni!

Si specifichino i numeri IP per il proprio lato del collegamento


PPP nel file delle opzioni appropriato esattamente come
mostrato in precedenza per i numeri IP statici.

Connettere assieme due reti usando PPP 189


Linux HOWTO − Networking − Sommario

Impostare l'instradamento
Ci si deve organizzare in modo che i pacchetti nella propria
LAN locale siano instradati attraverso l'interfaccia che la
connessione PPP stabilisce. Questo è un processo in due stadi.

Prima di tutto, si deve stabilire un instradamento dalla


macchina che esegue la connessione PPP alla(e) rete(i)
all'altro estremo del collegamento. Se il collegamento è verso
Internet, ciò può essere gestito dall'instradamento predefinito
stabilito da pppd stesso nel proprio estremo della connessione,
usando l'opzione 'defaultroute'.

Se comunque, la connessione è solo un collegamento tra due


LAN, allora deve essere aggiunto un instradamento di rete
specifico per ognuna delle reti accessibili attraverso la
connessione. Ciò è fatto usando un comando 'route' per
ognuna delle reti nello script /etc/ppp/ip−up (si veda Dopo che
la connessione è attiva... ([*]) per le istruzioni su come farlo).

La seconda cosa che bisogna fare è dire agli altri computer


sulla propria LAN che la propria macchina Linux è in realtà
un 'gateway' (passaggio) per la(e) rete(i) all'altro estremo della
connessione PPP.

Naturalmente, l'amministratore di rete dell'altro estremo della


connessione ppp deve fare anche lui le stesse cose!
Comunque, poiché egli instraderà i pacchetti per la vostra rete
specifica, sarà richiesto un'instradamento di rete specifico,
non un'instradamento predefinito (a meno che le LAN all'altro
estremo della connessione non siano connesse a voi per
accedere ad Internet attraverso la vostra connessione).

Sicurezza di rete
Se si connette la propria LAN ad Internet usando PPP, anche
solamente ad una LAN #`¨straniera#`¨, si deve essere
consci delle questioni sulla sicurezza. Suggerisco caldamente
di considerare la configurazione di un firewall!

Si dovrebbe parlare con l'amministratore LAN del proprio sito


PRIMA di cominciare a connettere LAN straniere o Internet
in questo modo. Gli errori che si potrebbero fare potrebbero
risultare innocui come provocare problemi veramente seri!

[Precedente] [Sommario] [Successivo]

Impostare l'instradamento 190


Linux HOWTO − Networking − Sommario
Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 191


Dopo che la connessione è attiva: lo scri
/etc/ppp/ip−up
Una volta che la connessione PPP è attiva, pppd cerca il file /etc/ppp/ip−up. S
script esiste ed è eseguibile, il demone PPP lo esegue. Ciò permette di automatizzar
qualsiasi comando di instradamento che possa risultare utile, e qualsiasi altra azione
vuole avvenga ogni volta che la connessione PPP viene attivata.

Questo è semplicemente uno script shell e può fare qualsiasi cosa che uno script she
fare (ovvero virtualmente qualsiasi cosa si vuole).

Per esempio, si può fare in modo che sendmail invii qualsiasi messaggio in attesa d'
nella coda di posta.

Similmente, si può inserire in ip−up il comando per collezionare (usando pop) quals
email in attesa nel proprio ISP.

Ci sono delle restrizioni su /etc/ppp/ip−up:

• È eseguito in un ambiente deliberatamente ristretto per aumentare la sicurez


significa che si devono specificare i percorsi completi per gli eseguibili, ecc
• Tecnicamente, /etc/ppp/ip−up è un programma non uno script. Ciò si
che può essere eseguito direttamemente, e quindi richiede il file magic stand
(#!/bin/bash) all'inizio della prima riga e dev'essere leggibile ed esegui
root.

Instradamenti speciali
Se si stanno connettendo due LAN, si dovranno impostare instradamenti specifici p
LAN 'straniere'. Questo è facile da fare usando lo script /etc/ppp/ip−up. La so
difficoltà nasce se la propria macchina gestisce più connessioni PPP.

Questo perché /etc/ppp/ip−up è eseguito per OGNUNA delle connessioni PPP


fanno, e quindi è necessario far eseguire i comandi di instradamento corretti per la
connessione particolare che si fa in quel momento, e solo in quel caso e non quando
qualsiasi altro collegamento!

Gestione delle code di posta


Quando la connessione tra due LAN è attiva, ci si vorrà assicurare che le email in co
entrambi gli estremi siano scaricate (flushed), ovvero inviate a destinazione. Ciò è f
aggiungendo la chiamata appostita a sendmail.

Si può fare usando il costrutto 'case' della bash su un parametro appropriato che ppp
allo script. Ad esempio, questo è lo script /etc/ppp/ip−up che uso per gestire l
connessioni WAN e le connessioni alla mia Ethernet di casa (gestita sempre dallo st
server PPP).

Dopo che la connessione è attiva: lo script /etc/ppp/ip−up 192


Linux HOWTO − Networking − Sommario

Un esempio di script /etc/ppp/ip−up


L'esempio che segue gestisce una varietà di usi tipici.

#!/bin/bash
#
# Script che gestisce le questioni di instradamento necessarie per
# pppd. Solo la connessione a Newman richiede questa gestione.
#
# Quando la connessione ppp è attiva, questo script viene chiamato
# i seguenti parametri
# $1 il nome dell'interfaccia usata da pppd (p.es. ppp3)
# $2 il nome del dispositivo tty
# $3 la velocità del dispositivo tty
# $4 l'indirizzo IP locale per l'interfaccia
# $5 l'indirizzo IP remoto
# $6 il parametro specificato dall'opzione 'ipparam' di
#
case "$5" in
# Gestisce gli instradamenti al server del Campus Newman
202.12.126.1)
/sbin/route add −net 202.12.126.0 gw 202.12.126.1
# e scarica la mail queue per spedire là le
#loro email il prima possibile!
/usr/sbin/sendmail −q &
;;
139.130.177.2)
# La nostra connessione ad Internet
# Quando la connessione è attiva, avvia il time server (se non è gi
# attivo) e si sincronizza con il mondo
if [ ! −f /var/lock/subsys/xntpd ]; then
/etc/rc.d/init.d/xntpd.init start &
fi
# Avvia il news server (se non è già attivo)
if [ ! −f /var/lock/subsys/news ]; then
/etc/rc.d/init.d/news start &
fi
;;
203.18.8.104)
# Spedisce la mail in attesa nella mia macchina non appena il link
# attivo.
# Non è richiesto nessun instradamento in quanto la mia Ethernet di
# casa è gestita da un instradamento di IP masquerade e proxyarp.
/usr/sbin/sendmail −q &
;;
*)
esac
exit 0

Come risultato della connessione ppp al nostro Campus Newman e di questo script,
ottengono le seguenti voci nella tabella di routing (questa macchina è pure il nostro
PPP e gestisce le nostre connessioni a Internet − ho aggiunto dei commenti nell'outp
spiegare a cosa corrisponde ognuna delle voci):

[root@kepler /root]# route −n


Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Ifa

Un esempio di script /etc/ppp/ip−up 193


Linux HOWTO − Networking − Sommario

# l'instradamento HOST al nostro gateway Internet remoto


139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp
# l'instradamento HOST al server del nostro campus Newman
202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp
# l'instradamento HOST alla mia ethernet casalinga
203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp
# due delle nostre linee PPP di dial up
203.18.8.64 * 255.255.255.255 UH 552 0 0 ppp
203.18.8.62 * 255.255.255.255 UH 552 0 1 ppp
# l'instradamento di rete specifico per la LAN del campus Newman
202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp
# l'instradamento alla nostra Ethernet locale (una "super rete"
# formata da due reti di classe C adiacenti)
203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth
# l'instradamento al dispositivo di loop back
127.0.0.0 * 255.0.0.0 U 3584 0 483 lo
# l'instradamento predefinito a Internet
default 139.130.177.2 * UG 1500 0 3633 ppp

Gestione delle email


Il paragrafo precedente ha mostrato come gestire la posta in uscita, semplicemente
svuotando la code delle mail una volta che la connessione è attiva.

Se si sta usando una connessione WAN, ci si può accordare con l'amministratore de


remota per fare esattamente le stesse cose. Per esempio, all'estremo del Campus New
della nostra connessione WAN, lo script /etc/ppp/ip−up assomiglia a:

#!/bin/bash
#
# Script che gestisce le problematiche di instradamento come richie
# per dal pppd.
# Solo la connessione a Hedland necessita questa gestione.
#
# Quando la connessione ppp è attiva, questo script viene chiamato
# i seguenti parametri
# $1 il nome dell'interfaccia usata da pppd (p.es. ppp3)
# $2 il nome del dispositivo tty
# $3 la velocità del dispositivo tty
# $4 l'indirizzo IP locale per l'interfaccia
# $5 l'indirizzo IP remoto
# $6 il parametro specificato dall'opzione 'ipparam' di
#
case "$5" in
203.18.8.4)
/usr/sbin/sendmail −q
;;
*)
esac
exit 0

Comunque se si il proprio ISP fornisce solamente un aconnessione PPP ad IP dinam


necessario scaricarsi la propria email dal proprio account nella macchina del provid
solitamente viene fatto usando il POP (Post Office Protocol). Questo processo può e
gestito usando il programma 'popclient', oltre allo script ip−up utile per automatizza
questo processo!

Gestione delle email 194


Linux HOWTO − Networking − Sommario

Si crei semplicemente uno script /etc/ppp/ip−up che contenga la chiamata app


di popclient. Per il mio portatile su cui è installata la Red Hat (e che mi porto dietro
viaggi), uso:

popclient −3 −c −u hartr −p <password> kepler.hedland.edu.au |forma


−s procmail

Si può usare slurp o quant'altro per fare la stessa cosa per le news, e così via. Si rico
lo script ip−up è uno script bash standard e quindi può essere usato per automatizza
QUALSIASI cosa che dev'essere svolta ogni volta che una certa connessione PPP v
fatta.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Linux HOWTO − Networking 195


Feedback Usare /etc/ppp/ip−down
Si può creare uno script che verrà eseguito ogni volta che la
connessione termina. Questo è /etc/ppp/ip−down. Può
essere usato per annullare qualsiasi cosa speciale fatta nel
corrispondente script /etc/ppp/ip−up.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Usare /etc/ppp/ip−down 196


Problematiche di instradamento su una
LAN
Se si è connessi ad una LAN ma si vuole comunque usare PPP sulla propria macchi
Linux personale, è necessario configurare le cose in modo che i pacchetti vengano
instradati, a seconda dei casi, dalla propria macchina verso la LAN (attraverso la pro
interfaccia Ethernet) o verso il server PPP remoto e oltre.

Questa sezione NON ha intenzione di insegnare niente sull'instradamento, tratta


semplicemente un semplice caso speciale di instradamento (statico)!

Suggerisco caldamente di leggere la Linux Network Administrator Guide (NAG) se


si ha familiarità con l'instradamento. Anche il libro della O'Reilly "TCP/IP Network
Administration" tratta questo argomento in una forma molto comprensibile.

La regola base di un instradamento statico è che l'instradamento PREDEFINITO


dovrebbe essere quello che punta al MAGGIOR numero di indirizzi di rete. Per le a
reti, si aggiungano degli instradamenti specifici nella tabella di instradamento.

La SOLA situazione che ho intenzione di trattare qui è quella in cui la propria macc
Linux è in una LAN che non è connessa ad Internet, e ci si vuole connettere ad Inter
per uso personale mantenendo la connessione alla LAN.

Prima di tutto, ci si assicuri che il proprio instradamento Ethernet sia impostato agli
indirizzi di rete specifici disponibili nella propria LAN, e NON impostato come
instradamento predefinito!

Lo si verifichi usando il comando route, che dovrebbe mostrare qualcosa di simile a


quanto segue:

[root@hwin /root]# route −n


Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Ifac
loopback * 255.255.255.0 U 1936 0 50 lo
10.0.0.0 * 255.255.255.0 U 1436 0 565 eth0

Se la propria interfaccia Ethernet (eth0) punta all'instradamento predefinito (la prim


colonna mostrerebbe "default" nella riga di eth0), si deve modificare il proprio scrip
inizializzazione della Ethernet per farla puntare a dei numeri di rete specifici piuttos
all'instradamento predefinito (si consulti il Net3 HOWTO e la NAG).

Ciò permetterà a pppd di impostare il proprio instradamento predefinito come mostr


qui sotto:

[root@hwin /root]# route −n


Kernel routing table

Destination Gateway Genmask Flags MSS Window Use Ifa


10.144.153.51 * 255.255.255.255 UH 488 0 0 ppp
127.0.0.0 * 255.255.255.0 U 1936 0 50 lo
10.1.0.0 * 255.255.255.0 U 1436 0 569 eth

Problematiche di instradamento su una LAN 197


Linux HOWTO − Networking − Sommario

default 10.144.153.51 * UG 488 0 3 ppp

Come si può vedere, c'è un instradamento di tipo host verso il server PPP (10.144.15
tramite ppp0 ed anche un instradamento predefinito che usa il server PPP come gate

Se si necessita un impostazione più complessa di questa, si leggano i documenti


sull'instradamento menzionati in precedenza e si consulti un esperto nel proprio sito

Se la propria LAN ha già degli instradamenti, allora probabilmente saranno già stati
impostati dei gateway alle altre reti disponibili nel proprio sito. In questo caso, si
dovrebbe COMUNQUE far puntare il proprio instradamento predefinito all'interfac
PPP, e rendere gli altri instradamenti specifici solamente per le reti che servono.

Note sulla sicurezza


Quando si configura una macchina Linux su una LAN già esistente per connettersi a
Internet, potenzialmente si sta aprendo l'intera LAN ad Internet, e agli hacker che ci
Prima di far ciò, suggerisco di consultare il proprio ammistratore di rete e le politich
sicurezza del proprio sito. Se la propria connessione PPP ad Internet è usata per atta
con successo il proprio sito, per quanto poco si subiranno le ire dei propri colleghi e
amministratori di sistema e di rete. Inoltre si potrebbe andare in contro a problemi a
più seri.

Prima di connettere una LAN ad Internet, si dovrebbero considerare le implicazioni


sicurezza dettate dalla connessione DINAMICA, e quindi far riferimento al già citat
libro della O'Reilly "Building Internet Firewalls"!

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

Note sulla sicurezza 198


La cattedrale e il bazaar
Configurare un server PPP
Colonizzare la noosfera

Il calderone magico Come già detto, ci sono molti modi per farlo. Quel che presento è il modo nel quale
faccio (usando una scheda seriale multiporta della Cyclades) e un insieme di linee
Libri: telefoniche a selezione rotativa.

Italian crackdown Se non vi piace il metodo qui presentato, sentitevi liberi di farlo a modo vostro. Avr
Open Sources comunque piacere di includere altri metodi nelle versioni future di questo HOWTO.
Quindi, vi invito ad inviarmi i vostri commenti e metodi!
MediaMorfosi

GTK+/GNOME Si noti, che questa sezione tratta solamente la configurazione di Linux come server
sviluppo applicazioni
Non ho intenzione di includere (mai) informazioni sulla configurazione di terminal
Linux HOWTO: Installazione e configurazione servers speciali o altro.

Risorse Inoltre, devo ancora fare esperimenti con le shadow password (ma lo farò prima o p
Le informazioni qui presentate quindi NON comprendono tutti gli ammenicoli che s
Feedback richiesti dalla shadow suite.

Compilazione del kernel


Si applicano ancora tutte le considerazioni precedenti sulla compilazione del kernel
sulla relazione tra la versione del kernel e quella di pppd. Questa sezione assume ch
siano già lette le sezioni precedenti di questo documento!

Per un server PPP, si DEVE includere l'IP forwarding nel proprio kernel. Si posson
voler includere anche altre caratteristiche (come IP firewall, accounting ecc ecc).

Se si usa una scheda seriale multiporta, ovviamente si devono anche includere nel k
driver necessari!

Panoramica del sistema server


Noi offriamo account in PPP (e SLIP) e account shell usando la stessa coppia nome
utente/password. Ciò ha il vantaggio (per noi) che gli utenti necessitano solo di un
account e lo possono usare per tutti i tipi di connettività.

Poiché siamo un'organizzazione educativa, non facciamo pagare il nostro staff e gli
studenti per l'accesso, e quindi non dobbiamo preoccuparci di problematiche di accr
e messa in conto (accounting e charging).

Abbiamo un firewall tra il nostro sito ed Internet, e ciò restringe alcuni accessi agli
in quanto le linee di dial up sono dentro il nostro firewall (di Internet) (per ragioni
abbastanza ovvie, i dettagli degli altri firewall interni non sono qui presentati, e sono
comunque irrilevanti).

Il processo che un utente deve seguire per stabilire una connessione PPP nel nostro
(una volta che sia in possesso di un account valido naturalmente) è:

Configurare un server PPP 199


Linux HOWTO − Networking − Sommario

• chiamare il dialer rotativo (ovvero un unico numero telefonico connesso ad


banco di modem, dei quali verrà usato il primo libero);
• fare il login usando un nome utente e password validi;
• al prompt della shell, lanciare il comando ppp per avviare il PPP sul server
• avviare il PPP sul proprio PC (il fatto che questi funzioni in Windows, DOS
Linux MAC OS o quant'altro è un suo problema).

Il server usa un file /etc/ppp/options.ttyXX per ognuna delle porte d'ingre


che imposta il numero IP remoto per l'allocazione degli IP dinamici. Il server usa
instradamenti proxyarp per i client remoti (impostati tramite l'apposita opzione di pp
Ciò ovvia la necessità di far girare routed o gated.

Quando gli utenti riappendono dalla loro parte, il pppd se ne accorge e dice al mode
riattaccare, portando giù, nello stesso tempo, la connessione PPP.

Procurarsi il software che serve


Sarà necessario il software seguente:

• Linux, propriamente compilato per includere le opzioni necessarie;


• la giusta versione di pppd per il proprio kernel;
• un programma 'getty' che gestisca in modo intelligente le comunicazioni via
modem.
Noi usiamo getty_ps2.0.7h, ma anche mgetty è altamente considerato. Da q
che ho capito mgetty riesce a riconoscere una chiamata che sta usando pap/
(pap è lo standard per Windows95) e a chiamare automaticamente pppd, ma
ho ancora avuto il tempo di provarlo;
• un domain name server (DNS) funzionante ed accessibile agli utenti in dial
dovrebbe veramente far girare un proprio DNS se possibile...

Configurare un accesso standard (accesso shell)


Prima di poter configurare il proprio server PPP, la propria macchina Linux dev'esse
grado di gestire accessi standard di dial up.

Questo HOWTO NON tratta la configurazione di questo. Si veda la documenta


del getty scelto e il Serial HOWTO per informazioni in proposito.

Impostare i file delle opzioni di PPP


Bisognerà impostare un /etc/ppp/options generico con le opzioni comuni pe
le porte di dial up. Le opzioni da noi usate sono:

asyncmap 0
netmask 255.255.254.0
proxyarp
lock
crtscts
modem

Procurarsi il software che serve 200


Linux HOWTO − Networking − Sommario

Nota: noi NON usiamo nessun instradamento (ovvio) ed in particolare non c'è l'opzi
defaultroute. La ragione di ciò è che tutto quello che è richiesto di fare (come server
è di instradare i pacchetti dal client PPP verso la propria LAN/Internet e di instrada
pacchetti dalla propria LAN ed oltre verso il client.

Tutto ciò che serve per far questo è un instradamento di tipo host verso la macchina
e l'uso dell'opzione 'proxyarp' di pppd.

L'opzione 'proxyarp' imposta (sorpresa) una voce di proxy ARP nelle tabella ARP d
server PPP che in pratica dice 'spedisci a me tutti i pacchetti destinati al client PPP'.
Questo è il modo più semplice per impostare un instradamento ad un unico client PP
non la si può usare se si fa l'instradamento tra due LAN: si devono usare gli apposit
instradamenti di rete i quali non possono usare proxy ARP.

Quasi certamente si vorrà fornire un'allocazione dinamica di numeri IP agli utenti in


up. Ciò lo si può fare allocando un numero IP per ognuna delle porte di dial up. Ora
crei un /etc/ppp/options.ttyXX per ognuna delle porte.

In questo si metta semplicemente il numero IP locale (server) ed il numero IP che v


usato per quella porta. Per esempio:

kepler:slip01

In particolare, si noti che si possono usare nomi host validi in questo file (ho scoper
ricordo solamente i numeri IP delle macchine e dei dispositivi critici nella mia rete,
nomi sono molto più significativi!).

Impostare pppd per permettere agli utenti di


eseguirlo (con successo)
Poiché l'avvio di una connessione PPP implica la configurazione di un dispositivo d
kernel (un'interfaccia di rete) e la manipolazione della tabella di instradamento del k
sono richiesti privilegi particolari, in pratica i pieni privilegi di root.

Fortunatamente, pppd è stato progettato per essere eseguito in modo sicuro in setuid
root. Quindi bisognerà fare

chmod u+s /usr/sbin/pppd

Se si vanno a vedere i permessi del file, dovrebbero apparire come

−rwsr−xr−x 1 root root 74224 Apr 28 07:17 /usr/sbin/pp

Se non lo si fa, gli utenti non saranno in grado di attivare la loro connessione ppp.

Impostare pppd per permettere agli utenti di eseguirlo (con successo) 201
Linux HOWTO − Networking − Sommario

Impostare un alias globale per pppd


Per poter semplificare le cose ai nostri utenti PPP, abbiamo creato un alias globale (
/etc/bashrc) cosicché con un semplice comando possano lanciare ppp sul server una
fatto il login.

Questi può essere una cosa del tipo

alias ppp="exec /usr/sbin/pppd −detach"

Quello che fa è:

• exec : questo implica il rimpiazzo del programma in esecuzione (in questo c


shell) con il programma che è eseguito;
• pppd −detach : avvia pppd e NON fa il fork in background. Ciò assicura che
quando il pppd esce non ci sono ancora processi in giro.

Quando un utente fa il login in questo modo, apparirà nell'output del comando 'w' co

6:24pm up 3 days, 7:00, 4 users, load average: 0.05, 0.03, 0.


User tty login@ idle JCPU PCPU what
hartr ttyC0 3:05am 9:14 −

E questo è quanto...vi avevo detto che questo era un semplice sistema server PPP!

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Impostare un alias globale per pppd 202


Colonizzare la noosfera

Il calderone magico Usare PPP su una una connessione null


Libri: modem (seriale diretta)
Italian crackdown È molto semplice, non c'è un modem in mezzo e quindi le cose sono molto più semp
Open Sources
Prima di tutto, si scelga una macchina come 'server', si configuri getty su una porta
MediaMorfosi seriale in modo da poter verificare che c'è la connettività usando minicom per acced
GTK+/GNOME alla porta seriale nel 'client'.
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Una volta che questo funziona, si può rimuovere getty A MENO CHE non ci si vog
assicurare che la connessione venga convalidata usando la coppia nome utente/pass
Risorse come per la connessione in dial up. Poiché si ha il 'controllo fisico' di entrambe le
macchine, presumo che NON lo si voglia fare.
Feedback
Ora, sul server, si rimuova getty e ci si assicuri che le porte seriali su entrambe le
macchine siano state configurate correttamente usando 'setserial'.

Tutto quel che bisogna fare adesso è di far partire pppd su entrambi i sistemi. Assum
che la connessione usi /dev/ttyS3 su entrambe le macchine. Quindi su entrambe si
esegua il comando:

pppd −detach crtscts lock <IP locale>:<IP remoto> /dev/ttyS3 38400

Ciò attiverà il collegamento, ma non si è ancora specificato un instradamento. Si pu


verificare la connessione facendo ping da una macchina verso l'altra e viceversa. Se
funziona, si disattivi il collegamento killando uno dei due processi pppd.

L'instradamento di cui si avrà bisogno naturalmente dipende esattamente da cosa si


vuole provare a fare. Generalmente, una delle macchine sarà connessa ad una Ether
(e ad altro) e quindi l'instradamento necessario sarà esattamente quello richiesto per
server e un client PPP.

Quindi nella macchina equipaggiata con la Ethernet, il comando pppd potrebbe esse

pppd −detach crtscts lock proxyarp <IP locale>:<IP remoto>


/dev/ttyS3 38400 &

e sull'altra macchina:

pppd −detach crtscts lock defaultroute <IP locale>:<IP remoto>


/dev/ttyS3 38400 &

Se si stanno connettendo due reti (usando una connessione seriale!) o si hanno nece
di instradamento più complesse, si può usare /etc/ppp/ip−up in un modo analogo a
quello mostrato in precedenza.

Robert Hart
Port Hedland, Western Australia
Melbourne, Victoria, Australia Agostost/Ottobre 1996 Gennaio/Marzo 1997

Usare PPP su una una connessione null modem (seriale diretta) 203
Linux HOWTO − Networking − Sommario

Traduzione di Giovanni Bortolozzo


Febbraio/Maggio 1998

Abstract:

Come diventare un piccolo amministratore DNS. Traduzione di Federico Cossu


(f.cossu@trident.nettuno.it), flug−firenze.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Abstract: 204
Preambolo
Parole−chiave: DNS, bind, bind−4, bind−8, named, dialup,
ppp, slip, isdn, Internet, domain, name, hosts, resolving,
caching.

Questo documento fa parte del Linux Documentation Project.

Note legali
(C)opyright 1995−1999 Nicolai Langfeldt. Do not modify
without amending copyright, distribute freely but retain
copyright message.

(C)opyright 1995−1999 Nicolai Langfeldt. Non modificare


senza emendare il copyright, si può distribuire liberamente ma
includendo il messaggio di copyright.

Crediti e richieste di aiuto


Voglio ringraziare Arnt Gulbrandsen al quale ho provocato
qualche disagio a causa di questo lavoro e che ha provveduto a
fornire utili suggerimenti. Voglio anche ringraziare le
numerose persone che mi hanno mandato in email
suggerimenti e note.

Questo non sarà mai un documento finito. Vi prego di


mandarmi delle email se avete incontrato problemi o successi,
questo contribuirà a migliorare l'HOWTO. Così vi prego di
mandare commenti e/o domande o soldi a janl@math.uio.no.
Nel caso in cui mandaste delle email e attendiate delle risposte
per favore assicuratevi che il return−address sia corretto e
operatvo. Inoltre, per favore leggete la sezione [*] (Domande
e risposte) prima di scrivermi. Un'altra cosa, comprendo solo
il norvegese e l'inglese.

Se vi venisse in mente di tradurre questo HOWTO fatemelo


sapere in modo che possa tener traccia delle lingue in cui è
stato pubblicato, e in modo che possa avvisarvi quando
l'HOWTO è stato aggiornato.

Dediche
Questo HOWTO è dedicato a Anne Line Norheim Langfeldt.
Anche se lei non lo leggerà mai poiché non è quel tipo di
ragazza.

Preambolo 205
Linux HOWTO − Networking − Sommario

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 206


Introduzione
DNS è il Domain Name System. DNS converte i nomi delle
macchine negli indirizzi IP che queste macchine hanno nella
rete. In pratica fa corrispondere i nomi agli indirizzi e
viceversa, e in più fa qualche altra cosa. Questo HOWTO
spiega come definire questa corrispondenza (mapping) usando
un sistema Linux. Il "mapping" è semplicemente
un'associazione tra due cose, in questo caso si tratta del nome
di una macchina, come ftp.linux.org, e il numero IP (o
indirizzo) della stessa macchina 199.249.150.4.

DNS è, per i non iniziati (voi ;−), una delle aree più opache
dell'amministrazione di rete. Questo HOWTO cercherà di
rendere più chiare alcune cose. Esso descrive come impostare
un semplice name server DNS. Partendo da un server "caching
only" per poi avviarsi all'impostazione di un server DNS
primario per un dominio. Per configurazioni più complesse
date uno sguardo alla sezione [*] (Domande e Risposte) di
questo documento. Se non fosse descritto qui avrete bisogno
di leggere la Vera Documentazione. Tornerò più tardi su in
che cosa consista questa Vera Documentazione nell'ultimo
capitolo ([*]).

Prima che cominciate dovrete configurare la vostra macchina


in modo che possa fare "telnet" dentro e fuori di essa, e che
possa connettersi con successo alla rete, e in particolar modo
dovreste poter fare telnet 127.0.0.1 e ottenere la
vostra stessa macchina (provate subito!). Avrete anche
bisogno di un buon /etc/nsswitch.conf (oppure
/etc/host.conf), e dei file /etc/resolv.conf e
/etc/hosts come punto di partenza, finché non spiegherò
la loro funzione. Se non avete già tutto questo impostato e
funzionante il NET−3−HOWTO e il PPP−HOWTO spiegano
come farlo. Leggeteli.

Quando dico "la vostra macchina" intendo la macchina sulla


quale state cercando di impostare il DNS. Nessun'altra
macchina che potreste avere è coinvolta nel vostro lavoro.

Assumerò che non siate dietro un qualche tipo di firewall che


blocca le richieste di nomi. Se invece lo siete, avrete bisogno
di una speciale configurazione. Guardate la sezione [*]
(Domande e Risposte).

Il servizio di risoluzione dei nomi su Unix è fatto da un


programma chiamato named. Questo fa parte del pacchetto
``bind'' che è coordinato da Paul Vixie dell'Internet Software
Consortium. Named è incluso in molte distribuzioni Linux e

Introduzione 207
Linux HOWTO − Networking − Sommario

usualmente è installato come /usr/sbin/named. Se avete


named probabilmente potrete usarlo; se non l'avete potrete
prendere i binari da un qualunque sito ftp su Linux, altrimenti
prenderete i più recenti e grandiosi sorgenti da
ftp.isc.org:/isc/bind/src/cur/bind−8/. Questo HOWTO è
riferito alla versione 8 di bind. Le vecchie versioni
dell'HOWTO che riferiscono a bind 4 sono ancora disponibili
presso http://www.math.uio.no/~janl/DNS/ nel caso utilizzaste
bind 4. Se la man page di named fa riferimento (per precisione
alla fine, nella sezione FILES) a named.conf avete bind 8,
se fa riferimento a named.boot avete bind 4. Se avete il 4 e
siete coscienti del problema sicurezza dovreste aggiornare alla
versione 8.

DNS è un database distribuito sulla rete (net−wide). Fate


attenzione a cosa ci metterete dentro. Se ci metterete
spazzatura, voi e gli altri ne ricaverete solo quella. Mantenete
il vostro DNS snello e consistente e così otterrete un buon
servizio da esso. Imparate ad usarlo, ad amministrarlo, a
risolverne eventuali problemi, e diventerete un altro buon
amministratore che impedisce alla rete di cadere sulle proprie
ginocchia a causa della cattiva manutenzione.

In questo documento dichiaro nettamente una manciata di


cose che non sono prorpio corrette (sono comunque delle
mezze verità). Tutto ciò nell'interesse della semplificazione.
Le cose, probabilmente ;−) funzioneranno se crederete a
quello che dico.

Suggerimento: Fate una copia di backup di tutti i file che vi


chiederò di modificare e che già avete, cosicché possiate
tornare operativi dopo aver visto che nulla funzionava.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux HOWTO − Networking 208


Linux−FAQ
Un name server caching only
Documenti:

Open Source Definition


Una prima pugnalata alla configurazione del DNS, molto utile per gli utenti dia

GNU General Public License Un name server caching only troverà le risposte alle richieste di nomi e ricorderà le
La cattedrale e il bazaar quando la prossima volta ne avrete bisogno. Questo abbrevierà signficativamente il
attesa per le volte successive, specialmente se avete una connessione lenta.
Colonizzare la noosfera

Il calderone magico Prima di tutto vi occorre un file chiamato /etc/named.conf. Questo viene letto
named parte. Per adesso dovrebbe contenere semplicemente:
Libri:
// File di configurazione per un name server caching only
Italian crackdown

Open Sources options {


directory "/var/named";
MediaMorfosi
// Decommentare questa potrebbe aiutare se si deve passare
GTK+/GNOME
// attraverso un firewall e le cose non funzionano bene
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione // query−source port 53;


};
Risorse
zone "." {
type hint;
Feedback file "root.hints";
};

zone "0.0.127.in−addr.arpa" {
type master;
file "pz/127.0.0";
};

La linea `directory' dice a named dove guardare per i file. Tutti i file nominati i
saranno relativi a questa directory. Perciò pz è una directory sotto /var/named, o
/var/named/pz. /var/named è la giusta directory in accordo con il Linux File
Standard.

In questo è citato il file chiamato /var/named/root.hints.


/var/named/root.hints dovrebbe contenere questo: (Se avete intenzione di f
copia e incolla di questo file da una versione elettronica di questo documento per fa
notate che non ci devono essere spazi vuoti all'inizio del file, ovvero tutte le linee de
cominciare con un carattere non−blank (non deve essere il carattere "spazio"). Alc
software per il processing dei documenti inseriranno spazi all'inizio delle linee, cau
confusione. In questo caso rimuovete i 2 spazi vuoti iniziali)

;
; There might be opening comments here if you already have this fil
; If not don't worry.
;
. 6D IN NS G.ROOT−SERVERS.NET.
. 6D IN NS J.ROOT−SERVERS.NET.
. 6D IN NS K.ROOT−SERVERS.NET.
. 6D IN NS L.ROOT−SERVERS.NET.
. 6D IN NS M.ROOT−SERVERS.NET.

Un name server caching only 209


Linux HOWTO − Networking − Sommario

. 6D IN NS A.ROOT−SERVERS.NET.
. 6D IN NS H.ROOT−SERVERS.NET.
. 6D IN NS B.ROOT−SERVERS.NET.
. 6D IN NS C.ROOT−SERVERS.NET.
. 6D IN NS D.ROOT−SERVERS.NET.
. 6D IN NS E.ROOT−SERVERS.NET.
. 6D IN NS I.ROOT−SERVERS.NET.
. 6D IN NS F.ROOT−SERVERS.NET.

G.ROOT−SERVERS.NET. 5w6d16h IN A 192.112.36.4


J.ROOT−SERVERS.NET. 5w6d16h IN A 198.41.0.10
K.ROOT−SERVERS.NET. 5w6d16h IN A 193.0.14.129
L.ROOT−SERVERS.NET. 5w6d16h IN A 198.32.64.12
M.ROOT−SERVERS.NET. 5w6d16h IN A 202.12.27.33
A.ROOT−SERVERS.NET. 5w6d16h IN A 198.41.0.4
H.ROOT−SERVERS.NET. 5w6d16h IN A 128.63.2.53
B.ROOT−SERVERS.NET. 5w6d16h IN A 128.9.0.107
C.ROOT−SERVERS.NET. 5w6d16h IN A 192.33.4.12
D.ROOT−SERVERS.NET. 5w6d16h IN A 128.8.10.90
E.ROOT−SERVERS.NET. 5w6d16h IN A 192.203.230.10
I.ROOT−SERVERS.NET. 5w6d16h IN A 192.36.148.17
F.ROOT−SERVERS.NET. 5w6d16h IN A 192.5.5.241

Questo file descrive i root name server nel mondo. Esso cambia col tempo e deve es
aggiornato se necessario. Leggete la sezione [*] (Manutenzione) per sapere come fa

La sezione successiva in named.conf è l'ultima zone. Spiegherò il suo utilizzo


nell'ultimo capitolo, per adesso create solo un file chiamato 127.0.0 nella subdire
pz: (Ancora, se fate copia e incolla rimuovete gli spazi iniziali)

@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (


1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
NS ns.linux.bogus.
1 PTR localhost.

Poi, avrete bisogno di un /etc/resolv.conf che somiglia vagamente a questo:


gli spazi!)

search sottodominio.proprio−dominio.edu proprio−dominio.edu


nameserver 127.0.0.1

La linea `search' specifica su quali domini deve avvenire la ricerca per ogni nome
al quale volete collegarvi. La linea nameserver specifica l'indirizzo del vostro
nameserver, in questo caso la vostra stessa macchina poiché è qui che named lavora
(127.0.0.1 è corretto, non importa se la macchina ha già un altro indirizzo). Se volet
inserire più name server mettete una linea `nameserver' per ognuno di essi. (Nota
non legge mai questo file, il risolutore che usa named invece sì.)

Vediamo cosa fa questo file: se un client cerca la macchina pippo, allora il primo
che verrà fatto sarà pippo.sottodominio.proprio−dominio.edu, poi
pippo.proprio−dominio.edu e infine pippo. Se un client cerca

Un name server caching only 210


Linux HOWTO − Networking − Sommario

sunsite.unc.edu, il primo tentativo sarà


sunsite.unc.edu.sottodominio.proprio−dominio.edu, poi
sunsite.unc.edu.proprio−dominio.edu e infine sunsite.unc.edu
Potreste non voler mettere troppi domini nella linea di ricerca, si impiega del tempo
provarli tutti.

L'esempio assume che voi facciate parte del dominio


sottodominio.proprio−dominio.edu, quindi, probabilmente, la vostra m
sarà propria−macchina.sottodominio.proprio−dominio.edu. La li
ricerca non dovrebbe contenere il vostro TLD (Top Level Domain, `edu' in questo
avete spesso bisogno di collegarvi a host in un altro dominio, potete aggiungere que
dominio in una linea di ricerca come questa: (Ricordate di togliere gli spazi iniziali,
presenti)

search sottodominio.proprio−dominio.edu
proprio−dominio.edu altro−dominio.com

e così via. Ovviamente dovrete metterci domini reali. Per favore notate l'assenza del
alla fine dei nomi di dominio. Questo è importante.

In seguito, a seconda della versione di libc che avete ci sarà bisogno di sistemare
/etc/nsswitch.conf o /etc/host.conf. Se avete già nsswitch.conf
questo che sistemerete, altrimenti sarà host.conf.

/etc/nsswitch.conf

Questo è un grosso file che specifica dove ottenere diversi tipi di dati, da quale file o
database. Solitamente all'inizio contiene utili commenti, che dovreste leggere. Poi c
linea che comincia per `hosts:', si dovrebbe leggere:

hosts: files dns

(avete ricordato cosa fare degli eventuali spazi iniziali, vero? non lo dirò più.)

Se non ci fosse una tale linea (che comincia per `hosts:') dovrete metterla. Questa
dice che i programmi devono per prima cosa guardare nel file /etc/hosts, dopo
usare il DNS in accordo con resolv.conf.

/etc/host.conf

Probabilmente contiene numerose linee, una di queste dovrebbe cominciare con or


somigliare a questa:

order hosts,bind

Se la linea `order' non ci fosse la dovrete aggiungere. Questa linea dice alle routin
predisposte alla risoluzione dei nomi che devono per prima cosa guardare nel file
/etc/hosts, dopo devono chiedere al name server (che voi avete indicato in
resolv.conf all'indirizzo 127.0.0.1).

Un name server caching only 211


Linux HOWTO − Networking − Sommario

Far partire named


Adesso è ora di far partire named. Se state usando una connessione dial−up, per prim
collegatevi. Fate `ndc start', e premete return, senza opzioni. Se non funziona p
`/usr/sbin/ndc start'. Se non va leggete la sezione [*] (Domande e Rispost
andate a leggere il file che contiene il log di sistema (usualmente chiamato
/var/adm/messages, controllate anche la directory /var/log e un altro file d
controllare in questa è syslog) quando named parte (fate tail −f
/var/log/messages) dovreste leggere qualcosa di simile a:

(le linee che terminano per continuano sulla linea successiva)

Feb 15 01:26:17 roke named[6091]: starting. named 8.1.1 Sat Feb 14


00:18:20 MET 1998 ^Ijanl@roke.uio.no:/var/tmp/bind−8.1.1/src/bin/na
Feb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial
Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in−addr.arpa
(IN) loaded (serial 1)
Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo)
Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ip
Feb 15 01:26:17 roke named[6091]: Forwarding source address is
[0.0.0.0].1040
Feb 15 01:26:17 roke named[6092]: Ready to answer queries.

Se ci sono messaggi d'errore significa che c'è un problema. Named dirà il nome del
scorretto (uno tra named.conf e root.hints spero :−)). Uccidete named e tornate indie
controllare quel file.

Adesso potete testare la vostra configurazione. Usate nslookup per esaminare il vos
lavoro.

$ nslookup
Default Server: localhost
Address: 127.0.0.1

>

Se corrisponde a quello che vedete significa che sta funzionando. Altrimenti tornate
e ricontrollate tutto. Ogni volta che cambiate il file named.conf dovete far riparti
named con il comando ndc restart.

Adesso potete immettere una interrogazione (query). Cercate di fare il look−up di m


vicine a voi. pat.uio.no è vicina a me, all'università di Oslo:

> pat.uio.no
Server: localhost
Address: 127.0.0.1

Name: pat.uio.no
Address: 129.240.130.16

nslookup adesso ha chiesto al vostro named di cercare la macchina pat.uio.no.


contatta una delle macchine name server indicate nel file root.hints, e chiede lo
strada per arrivarci. Potrebbe essere necessario un po' di tempo prima che sia dispon

Far partire named 212


Linux HOWTO − Networking − Sommario

risultato, come potrebbe essere necessario cercare in tutti i domini elencati in


/etc/resolv.conf.

Se lo chiederete nuovamente otterrete questo:

> pat.uio.no
Server: localhost
Address: 127.0.0.1

Non−authoritative answer:
Name: pat.uio.no
Address: 129.240.2.50

Notate la linea ``Non−authoritative answer:'' che abbiamo ottenuto questa


Significa che named non è uscito sulla rete per fare la richiesta: l'informazione era g
cache. Ma questa informazione (memorizzata nella cache) potrebbe essere non aggi
(scaduta). Verrete informati di questa possibilità (molto piccola) con il messaggio
`Non−authorative answer:'. Quando nslookup risponde in questo modo
seconda richiesta per uno stesso host è sicuro che named ha messo nella cache
l'informazione e che sta funzionando. Si esce da nslookup dando il comando `ex

Migliorarlo ancora
Nelle reti grosse, ben organizzate, accademiche o relative a ISP (Internet Service Pr
scoprirete che a volte le persone che lavorano sulla rete mettono a punto una gerarch
impiego dei server DNS, che aiuta ad alleggerire il carico sulla rete interna e sui ser
esterni. Non è facile capire se vi trovate dentro o fuori una rete. Comunque non è im
e usando il server DNS del vostro provider come ``forwarder'' farete in modo che le
alle vostre richieste siano più veloci e meno pesanti per la vostra rete. Se usate un m
questa può essere una piccola vittoria. Tanto per fare un esempio assumeremo che i
provider di rete (network provider) abbia due name server e che voglia farveli usare
numeri IP 10.0.0.1 e 10.1.0.1. Allora nel vostro file named.conf, all'inter
sezione d'apertura chiamata ``options'' inserite queste linee:

forward first;
forwarders {
10.0.0.1;
10.1.0.1;
};

C'è anche un trucco carino per le macchine dial−up che usano i forwarder, è descritt
sezione [*] (Domande e Risposte).

Fate ripartire il vostro name server e testatelo con nslookup. Dovrebbe funzionare b

Congratulazioni
Adesso sapete come impostare una versione con cache di named. Prendetevi una bir
latte o qualunque cosa vi piaccia per celebrare l'evento.

Migliorarlo ancora 213


Linux HOWTO − Networking − Sommario

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 214


Un semplice dominio
Ma prima un po' di teoria
Prima di iniziare veramente con questa sezione vi proporrò un po' di teoria e un esem
su come il DNS lavora. E voi dovrete leggerlo perché vi sarà utile. Se non ne avete
voglia dovrete almeno dargli uno sguardo veloce. Fate invece attenzione alle parti c
dovrebbero andare nel vostro file named.conf.

DNS è un sistema gerarchico, strutturato ad albero. L'apice è indicato come `.' e


pronunciato `root'. Al di sotto di . c'è un gran numero di Top Level Domains (TLD
più noti sono ORG, COM, EDU and NET, ma ce ne sono molti altri. Proprio come in u
albero esso ha la radice e si dirama verso l'esterno. Se avete qualche conoscenza
d'informatica riconoscerete nel DNS un albero di ricerca, e scoprirete nodi, nodi−fo
spigoli.

Quando comincia la ricerca di una macchina la richiesta procede ricorsivamente nel


gerarchia, iniziando dall'apice. Se volete trovare prep.ai.mit.edu il vostro nam
server dovrà prima scoprire quale name server gestisce edu. Esso dunque chiede a
dei . server (sa già quali sono i server . , è a questo che serve il file root.hints
. fornisce una lista dei server edu:

$ nslookup
Default Server: localhost
Address: 127.0.0.1

Iniziate a interrogare un name server:

> server c.root−servers.net.


Default Server: c.root−servers.net
Address: 192.33.4.12

Impostate il tipo di interrogazione (query type) su NS (name server records):

> set q=ns

interrogate su edu:

> edu.

Il . finale qui è significativo, dice a nslookup che la nostra richiesta è relativa a e


direttamente sotto a . (e non sotto un altro dominio presente nel search, questo
velocizza la ricerca)

edu nameserver = A.ROOT−SERVERS.NET


edu nameserver = H.ROOT−SERVERS.NET
edu nameserver = B.ROOT−SERVERS.NET
edu nameserver = C.ROOT−SERVERS.NET
edu nameserver = D.ROOT−SERVERS.NET
edu nameserver = E.ROOT−SERVERS.NET
edu nameserver = I.ROOT−SERVERS.NET
edu nameserver = F.ROOT−SERVERS.NET

Un semplice dominio 215


Linux HOWTO − Networking − Sommario

edu nameserver = G.ROOT−SERVERS.NET


A.ROOT−SERVERS.NET internet address = 198.41.0.4
H.ROOT−SERVERS.NET internet address = 128.63.2.53
B.ROOT−SERVERS.NET internet address = 128.9.0.107
C.ROOT−SERVERS.NET internet address = 192.33.4.12
D.ROOT−SERVERS.NET internet address = 128.8.10.90
E.ROOT−SERVERS.NET internet address = 192.203.230.10
I.ROOT−SERVERS.NET internet address = 192.36.148.17
F.ROOT−SERVERS.NET internet address = 192.5.5.241
G.ROOT−SERVERS.NET internet address = 192.112.36.4

Questo significa che tutti i server ROOT−SERVERS.NET risolvono EDU., così pot
interrogare uno qualunque di essi. Continueremo a usare il C. Adesso vogliamo sape
chi risolve il prossimo livello del nostro nome di dominio: mit.edu.:

> mit.edu.
Server: c.root−servers.net
Address: 192.33.4.12

Non−authoritative answer:
mit.edu nameserver = W20NS.mit.edu
mit.edu nameserver = BITSY.mit.edu
mit.edu nameserver = STRAWB.mit.edu

Authoritative answers can be found from:


W20NS.mit.edu internet address = 18.70.0.160
BITSY.mit.edu internet address = 18.72.0.3
STRAWB.mit.edu internet address = 18.71.0.151

steawb, w20ns e bitsy risolvono mit.edu, ne sceglieremo uno e lo


interrogheremo sul prossimo livello ancora: ai.mit.edu:

> server W20NS.mit.edu.

I nomi di host non sono case sensitive, ma io uso il mouse per tagliare e incollare co
come vengono dallo schermo.

Server: W20NS.mit.edu
Address: 18.70.0.160

> ai.mit.edu.
Server: W20NS.mit.edu
Address: 18.70.0.160

Non−authoritative answer:
ai.mit.edu nameserver = ALPHA−BITS.AI.MIT.EDU
ai.mit.edu nameserver = GRAPE−NUTS.AI.MIT.EDU
ai.mit.edu nameserver = TRIX.AI.MIT.EDU
ai.mit.edu nameserver = MUESLI.AI.MIT.EDU
ai.mit.edu nameserver = LIFE.AI.MIT.EDU
ai.mit.edu nameserver = BEET−CHEX.AI.MIT.EDU
ai.mit.edu nameserver = MINI−WHEATS.AI.MIT.EDU
ai.mit.edu nameserver = COUNT−CHOCULA.AI.MIT.EDU
ai.mit.edu nameserver = MINTAKA.LCS.MIT.EDU

Authoritative answers can be found from:


AI.MIT.EDU nameserver = ALPHA−BITS.AI.MIT.EDU
AI.MIT.EDU nameserver = GRAPE−NUTS.AI.MIT.EDU

Un semplice dominio 216


Linux HOWTO − Networking − Sommario

AI.MIT.EDU nameserver = TRIX.AI.MIT.EDU


AI.MIT.EDU nameserver = MUESLI.AI.MIT.EDU
AI.MIT.EDU nameserver = LIFE.AI.MIT.EDU
AI.MIT.EDU nameserver = BEET−CHEX.AI.MIT.EDU
AI.MIT.EDU nameserver = MINI−WHEATS.AI.MIT.EDU
AI.MIT.EDU nameserver = COUNT−CHOCULA.AI.MIT.EDU
AI.MIT.EDU nameserver = MINTAKA.LCS.MIT.EDU
ALPHA−BITS.AI.MIT.EDU internet address = 128.52.32.5
GRAPE−NUTS.AI.MIT.EDU internet address = 128.52.36.4
TRIX.AI.MIT.EDU internet address = 128.52.37.6
MUESLI.AI.MIT.EDU internet address = 128.52.39.7
LIFE.AI.MIT.EDU internet address = 128.52.32.80
BEET−CHEX.AI.MIT.EDU internet address = 128.52.32.22
MINI−WHEATS.AI.MIT.EDU internet address = 128.52.54.11
COUNT−CHOCULA.AI.MIT.EDU internet address = 128.52.38.22
MINTAKA.LCS.MIT.EDU internet address = 18.26.0.36

Quindi muesli.ai.mit.edu è un nameserver per ai.mit.edu:

> server MUESLI.AI.MIT.EDU


Default Server: MUESLI.AI.MIT.EDU
Address: 128.52.39.7

Adesso cambio il tipo di interrogazione (query): abbiamo trovato il name server e q


vogliamo chiedere tutto ciò che muesli sa a proposito di prep.ai.mit.edu.

> set q=any


> prep.ai.mit.edu.
Server: MUESLI.AI.MIT.EDU
Address: 128.52.39.7

prep.ai.mit.edu CPU = dec/decstation−5000.25 OS = unix


prep.ai.mit.edu
inet address = 18.159.0.42, protocol = tcp
ftp telnet smtp finger
prep.ai.mit.edu preference = 1, mail exchanger = gnu−life.ai.mit.ed
prep.ai.mit.edu internet address = 18.159.0.42
ai.mit.edu nameserver = beet−chex.ai.mit.edu
ai.mit.edu nameserver = alpha−bits.ai.mit.edu
ai.mit.edu nameserver = mini−wheats.ai.mit.edu
ai.mit.edu nameserver = trix.ai.mit.edu
ai.mit.edu nameserver = muesli.ai.mit.edu
ai.mit.edu nameserver = count−chocula.ai.mit.edu
ai.mit.edu nameserver = mintaka.lcs.mit.edu
ai.mit.edu nameserver = life.ai.mit.edu
gnu−life.ai.mit.edu internet address = 128.52.32.60
beet−chex.ai.mit.edu internet address = 128.52.32.22
alpha−bits.ai.mit.edu internet address = 128.52.32.5
mini−wheats.ai.mit.edu internet address = 128.52.54.11
trix.ai.mit.edu internet address = 128.52.37.6
muesli.ai.mit.edu internet address = 128.52.39.7
count−chocula.ai.mit.edu internet address = 128.52.38.22
mintaka.lcs.mit.edu internet address = 18.26.0.36
life.ai.mit.edu internet address = 128.52.32.80

E così partendo da . abbiamo scoperto i name server successivi per ogni livello nel
nome di dominio. Se usavate il vostro server DNS invece di tutti questi altri, il vostr
named avrebbe naturalmente messo nella propria cache tutte le informazioni trovate

Un semplice dominio 217


Linux HOWTO − Networking − Sommario

durante la ricerca, e per un bel pezzo non le avrebbe più richieste.

Nell'analogo albero ogni ``.'' del nome rappresenta un punto di diramazione. E le pa


che stanno tra i ``.'' sono i nomi dei singoli rami dell'albero.

Abbiamo scalato l'albero scegliendo un nome a piacere (prep.ai.mit.edu), pri


abbiamo scoperto la radice (.) e poi siamo andati alla ricerca del prossimo ramo da
scalare, nel nostro caso edu. Una volta trovato questo, l'abbiamo scalato passando p
server che conosceva questa parte di nome. Dopo abbiamo ricercato il ramo mit so
ramo edu (per avere mit.edu) e abbiamo scalato anch'esso sfruttando il server ch
conosceva mit.edu. Ancora, abbiamo cercato ai.mit.edu come prossimo ram
per scalarlo abbiamo sfruttato il server che lo conosceva. Adesso siamo arrivati al g
server, al giusto punto di diramazione. L'ultimo passo da fare è scoprire
prep.ai.mit.edu, ma è molto semplice. In informatica solitamente si dice che
prep è una foglia dell'albero. Un dominio poco discusso in precedenza è
in−addr.arpa. Anch'esso è gestito come i domini normali. in−addr.arpa ci
permette di ricavare il nome dell'host quando abbiamo il suo indirizzo. Una cosa
importante da notare qua è che gli indirizzi IP sono scritti in ordine inverso nel dom
in−addr.arpa. Se avete un indirizzo di una macchina: 192.128.52.43 name
procede come nell'esempio prep.ai.mit.edu: scopre il server arpa.. Scopre
server in−addr.arpa., scopre il server 192.in−addr.arpa., scopre il serv
128.192.in−addr.arpa., scopre il server 52.128.192.in−addr.arpa.
Scopre i record richiesti per ricavare il nome di 43.52.128.192.in−addr.ar
Geniale ehh?? (dite `Sì') Tuttavia, a livello teorico, la conversione dei numeri potrà
risultare difficoltosa per anni.

Ho detto una bugia. DNS non funziona precisamente come ho descritto. Ma comunq
in maniera simile a questa.

Il nostro dominio
Adesso definiremo il nostro dominio. Stiamo per creare il dominio linux.bogus
per definire le macchine in esso. Utilizzo nomi di dominio completamente fasulli pe
essere sicuro di non disturbare nessuno. (Nessuno là fuori.)

Un'ultima cosa prima di iniziare: non tutti i caratteri sono permessi nei nomi degli h
Siamo limitati ai caratteri dell'alfabeto inglese: a−z, numeri: 0−9 e al carattere '−' (d
trattino). Ricordatevelo. Maiuscole e minuscole hanno lo stesso valore per il DNS, c
pat.uio.no è identico a Pat.UiO.No.

Abbiamo già iniziato questa parte con questa linea in named.conf:

zone "0.0.127.in−addr.arpa" {
type master;
file "pz/127.0.0";
};

Per favore notate in questo file l'assenza del `.' alla fine dei nomi del dominio. Que
significa che ora definiremo la zona 0.0.127.in−addr.arpa, che siamo il ma
server per essa e che essa è descritta nel file chiamato pz/127.0.0. Abbiamo già

Il nostro dominio 218


Linux HOWTO − Networking − Sommario

impostato questo file:

@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (


1 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
NS ns.linux.bogus.
1 PTR localhost.

Per favore notate in questo file il `.' alla fine di tutti i nomi di dominio completi, in
contrasto col file named.conf di prima. Alcune persone hanno l'abitudine di inizi
ogni file relativo a una zona con una direttiva $ORIGIN, ma questo è superfluo.
L'origine (che appartiene alla gerarchia del DNS) di un file zona è specificata nella
sezione delle zone nel file named.conf, in questo caso è
0.0.127.in−addr.arpa.

Questo `file di zona' contiene 3 `record di risorse' (RR): un RR SOA, un RR NS e u


PTR. SOA è l'acronimo di Start Of Authority (Inizio dell'Autorità). La `@' è una
notazione speciale che indica l'origine, e poiché la colonna `dominio' di questo file d
0.0.127.in−addr.arpa la prima linea in realtà significa:

0.0.127.in−addr.arpa. IN SOA ...

NS è il RR Name Server. Non c'è la '@' all'inizio di questa linea: è implicita perché
l'ultima linea comincia con la '@'. Questo fa risparmiare un po' di battute sulla tastie
In questo modo la line NS può essere scritta:

0.0.127.in−addr.arpa. IN NS ns.linux.bogus

Essa dice al DNS quale macchina è il name server per il dominio


0.0.127.in−addr.arpa: è appunto ns.linux.bogus. È consuetudine asso
a `ns' la parola name server, analogamente ai web server che di solito sono associati
www.qualcosa; il nome può però essere qualunque.

E alla fine il record PTR dice che l'host all'indirizzo 1 nella sottorete
tt/0.0.127.in−addr.arpa/, ovvero 127.0.0.1 è chiamato localhost.

Il record SOA è il preambolo di tutti i file di zona, e deve esisterne esattamente uno
ogni file di zona. Questo record descrive la zona, da dove esso viene (una macchina
chiamata ns.linux.bogus), chi è responsabile per i suoi contenuti
(hostmaster@linux.bogus, dovrete inserire il vostro indirizzo e−mail qui), q
è la versione del file di zona (serial: 1), e altre cose che riguardano il server DNS
secondario o quello che fa da cache. Per il resto dei campi (refresh, retry, expire e
minimum) usate pure i valori indicati in questo HOWTO e sarete a posto.

Adesso fate ripartire named (il comando è ndc restart) e usate nslookup per
esaminare cosa avete fatto:

$ nslookup

Il nostro dominio 219


Linux HOWTO − Networking − Sommario

Default Server: localhost


Address: 127.0.0.1

> 127.0.0.1
Server: localhost
Address: 127.0.0.1

Name: localhost
Address: 127.0.0.1

si ottiene localhost da 127.0.0.1, bene. Ora per il nostro scopo principale, il dom
linux.bogus, inserite una nuova 'zona' in named.conf:

zone "linux.bogus" {
notify no;
type master;
file "pz/linux.bogus";
};

Notate ancora l'assenza del `.' finale nel nome del dominio nel file named.conf.

Nel file di zona linux.bogus metteremo dei dati completamente fasulli:

;
; File di zona per linux.bogus
;
; File di zona completo
;
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; numero di serie, data di oggi +
; # di serie di oggi
8H ; refresh, secondi
2H ; retry, secondi
1W ; expire, secondi
1D ) ; minimum, secondi
;
NS ns ; Indirizzo Inet del name server
MX 10 mail.linux.bogus ; Mail Exchanger Primario
MX 20 mail.friend.bogus. ; Mail Exchanger Secondari
;
localhost A 127.0.0.1
ns A 192.168.196.2
mail A 192.168.196.4

Bisogna notare due cose a proposito del record SOA. ns.linux.bogus deve ess
una macchina effettiva con un record A. Non è legale avere un record CNAME per
macchina indicata nel record SOA. Il suo nome non deve essere per forza `ns', può
essere un qualsiasi nome legale di host. La seconda cosa, hostmaster.linux.bogus de
essere interpretato come hostmaster@linux.bogus, questo dovrà essere un alias per u
indirizzo email vero, o una mailbox, purché la/le persona/e che mantengono il DNS
leggano la posta frequentemente. Ogni mail che riguarda il dominio sarà spedita
all'indirizzo indicato in questo record. Il nome non deve essere per forza `hostmaste
potrà essere un normale indirizzo email, di solito ci si aspetta che `hostmaster' funzi
dovere (cioè che la posta indirizzata ad esso arrivi da qualche parte).

Il nostro dominio 220


Linux HOWTO − Networking − Sommario

C'è un nuovo tipo di RR in questo file, MX o RR Mail eXchanger. Esso indica ai sis
adibiti allo smistamento della posta dove mandarla, quando è ad esempio indirizzata
qualcuno@linux.bogus; nel nostro caso si tratta di mail.linux.bogus o
mail.friend.bogus. Il numero che precede ogni nome di macchina indica la
priorità del RR MX. Il RR con il numero più basso (10) è quello che indica il mail s
al quale, se possibile, deve essere mandata la posta per primo. Se non funzionasse la
posta potrà essere spedita a un server con un numero più alto, un mail server second
ovvero mail.friend.bogus che appunto ha priorità 20 nel nostro caso.

Fate ripartire named con ndc restart. Esaminate i risultati con nslookup:

$ nslookup
> set q=any
> linux.bogus
Server: localhost
Address: 127.0.0.1

linux.bogus
origin = ns.linux.bogus
mail addr = hostmaster.linux.bogus
serial = 199802151
refresh = 28800 (8 hours)
retry = 7200 (2 hours)
expire = 604800 (7 days)
minimum ttl = 86400 (1 day)
linux.bogus nameserver = ns.linux.bogus
linux.bogus preference = 10, mail exchanger =
mail.linux.bogus.linux.bogus
linux.bogus preference = 20, mail exchanger =
mail.friend.bogus
linux.bogus nameserver = ns.linux.bogus
ns.linux.bogus internet address = 192.168.196.2
mail.linux.bogus internet address = 192.168.196.4

Con un accurato esame scoprirete un bug (un errore). La linea

linux.bogus preference = 10, mail exchanger =


mail.linux.bogus.linux.bogus

è sbagliata. Dovrebbe essere:

linux.bogus preference = 10, mail exchanger = mail.linux.bogus

Ho deliberatamente fatto quest'errore in modo che impariate da esso :−). Cercando n


file di zona scopriremo che alla linea

MX 10 mail.linux.bogus ; Mail Exchanger Primario

manca un punto. Oppure che ha un 'linux.bogus' di troppo. Se un nome di macchina


finisce con il punto nel file di zona, l'origine viene aggiunta alla sua fine causando i
doppione linux.bogus.linux.bogus. Dunque sia:

MX 10 mail.linux.bogus. ; Mail Exchanger Primario

Il nostro dominio 221


Linux HOWTO − Networking − Sommario

oppure

MX 10 mail ; Mail Exchanger Primario

è corretto. Io preferisco il secondo modo perché è più breve da scrivere. Ci sono alc
esperti di bind che non approvano, altri invece sì. Quindi in un file di zona il domin
dovrebbe essere scritto per intero e fatto terminare da un `.' o dovrebbe essere esclu
del tutto, in questo caso verrebbe sostituito dall'origine.

Devo stressarvi con la storia del file named.conf, non ci devono essere `.' alla fine d
nomi di dominio. Non avete idea di quante volte un `.' di troppo (o la sua assenza)
ingarbugliato le cose e confuso delle indiavolate persone.

Dunque ecco qua il nuovo file di zona, con qualche informazione extra messa nel m
giusto:

;
; File di zona per linux.bogus
;
; Il file di zona completo
;
@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; # di serie, data di oggi +
; # di serie di oggi
8H ; refresh, secondi
2H ; retry, secondi
1W ; expire, secondi
1D ) ; minimum, secondi
;
TXT "Linux.Bogus, il proprio consulente DNS"
NS ns ; Indirizzo Inet del name server
NS ns.friend.bogus.
MX 10 mail ; Mail Exchanger Primario
MX 20 mail.friend.bogus. ; Mail Exchanger Secondario

localhost A 127.0.0.1

gw A 192.168.196.1
HINFO "Cisco" "IOS"
TXT "Il router"

ns A 192.168.196.2
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "Pentium" "Linux 2.0"
www CNAME ns

donald A 192.168.196.3
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "i486" "Linux 2.0"
TXT "DEK"

mail A 192.168.196.4
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "386sx" "Linux 1.2"

Il nostro dominio 222


Linux HOWTO − Networking − Sommario

ftp A 192.168.196.5
MX 10 mail
MX 20 mail.friend.bogus.
HINFO "P6" "Linux 2.1.86"

Ci sono un sacco di nuovi RR qua: HINFO (Host Information) è composto da due p


è buona cosa dividerle entrambe con le virgolette. La prima parte indica l'hardware
CPU della macchina, e la seconda parte il software o il S(istema)O(perativo) della
macchina. La macchina chiamata `ns' ha una CPU Pentium e Linux 2.0 come SO.
CNAME (Canonical Name) è un modo per dare a ogni macchina diversi nomi. Così
www è un alias per ns.

L'utilizzo del record CNAME è un po' controverso. Ma è bene seguire la regola per
un record MX, CNAME o SOA non dovrebbero mai riferirsi a un record CNAME,
dovrebbero far rifimento soltanto a qualcosa che abbia un record A, cioè non è
auspicabile avere

foobar CNAME www ; NO!

ma è corretto avere

foobar CNAME ns ; SÌ!

È anche consigliabile assumere che un CNAME non è un nome di host legale per un
indirizzo email: webmaster@www.linux.bogus è un indirizzo email illegale
generato dall'impostazione errata di cui sopra. Anche se per voi funziona, qualche
amministratore di server di posta vi farà rispettare questa regola. Il modo per imped
tutto questo è usare un record A (o anche un record tipo MX):

www A 192.168.196.2

Alcuni maghi−dell'architettura−di−bind raccomandano di non usare CNAME per nu


Ma la discussione sul perché o sul perché no va oltre questo HOWTO.

Ma coma potrete notare, questo HOWTO e molti siti non seguono questa regola.

Caricate il nuovo database facendo ndc reload, questo imporrà a named di rileg
i suoi file.

$ nslookup
Default Server: localhost
Address: 127.0.0.1

> ls −d linux.bogus

Questo fa sì che vengano elencati tutti i record, risulta così:

[localhost]
$ORIGIN linux.bogus.
@ 1D IN SOA ns hostmaster (
199802151 ; serial

Il nostro dominio 223


Linux HOWTO − Networking − Sommario

8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum

1D IN NS ns
1D IN NS ns.friend.bogus.
1D IN TXT "Linux.Bogus, your DNS consultants"
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
gw 1D IN A 192.168.196.1
1D IN HINFO "Cisco" "IOS"
1D IN TXT "Il router"
mail 1D IN A 192.168.196.4
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "386sx" "Linux 1.0.9"
localhost 1D IN A 127.0.0.1
www 1D IN CNAME ns
donald 1D IN A 192.168.196.3
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "i486" "Linux 1.2"
1D IN TXT "DEK"
ftp 1D IN A 192.168.196.5
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "P6" "Linux 1.3.59"
ns 1D IN A 192.168.196.2
1D IN MX 10 mail
1D IN MX 20 mail.friend.bogus.
1D IN HINFO "Pentium" "Linux 1.2"

È buono. Come potete vedere somiglia un sacco allo stesso file di zona. Vediamo co
dice per www da solo:

> set q=any


> www.linux.bogus.
Server: localhost
Address: 127.0.0.1

www.linux.bogus canonical name = ns.linux.bogus


linux.bogus nameserver = ns.linux.bogus
linux.bogus nameserver = ns.friend.bogus
ns.linux.bogus internet address = 192.168.196.2

In altre parole, il vero nome diwww.linux.bogus è ns.linux.bogus, e vi da


qualche informazione a proposito di ns, abbastanza per connettervi ad esso se voi fo
un programma.

Ora siamo a metà strada.

La zona inversa (reverse zone)


Adesso i programmi possono convertire i nomi di linux.bogus negli indirizzi a cui
vorrebbero connettersi. Ma c'è bisogno anche della zona inversa, un DNS tale da po

La zona inversa (reverse zone) 224


Linux HOWTO − Networking − Sommario

covertire un indirizzo in un nome. Questo nome è utile a un sacco di server di divers


(FTP, IRC, WWW e altri) per decidere se colloquiare con voi o meno, e se si, anche
quanta priorità dovrà essere assegnata loro. Per un pieno accesso a tutti i servizi su
Internet è richiesta una zona inversa.

Mettete questo in named.conf:

zone "196.168.192.in−addr.arpa" {
notify no;
type master;
file "pz/192.168.196";
};

È esattamente come per 0.0.127.in−addr.arpa, e i contenuti sono simili:

@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. (


199802151 ; # di serie, data di oggi +
; # di serie di oggi
8H ; Refresh
2H ; Retry
1W ; Expire
1D) ; Minimum TTL
NS ns.linux.bogus.

1 PTR gw.linux.bogus.
2 PTR ns.linux.bogus.
3 PTR donald.linux.bogus.
4 PTR mail.linux.bogus.
5 PTR ftp.linux.bogus.

Adesso fate ripartire named (ndc restart) e esaminate ancora il lavoro con
nslookup :

> 192.168.196.4
Server: localhost
Address: 127.0.0.1

Name: mail.linux.bogus
Address: 192.168.196.4

pare OK, elencate tutto per fare un esame accurato:

> ls −d 196.168.192.in−addr.arpa
[localhost]
$ORIGIN 196.168.192.in−addr.arpa.
@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum

1D IN NS ns.linux.bogus.
1 1D IN PTR gw.linux.bogus.
2 1D IN PTR ns.linux.bogus.
3 1D IN PTR donald.linux.bogus.

La zona inversa (reverse zone) 225


Linux HOWTO − Networking − Sommario

4 1D IN PTR mail.linux.bogus.
5 1D IN PTR ftp.linux.bogus.
@ 1D IN SOA ns.linux.bogus. hostmaster.linux.bogus. (
199802151 ; serial
8H ; refresh
2H ; retry
1W ; expiry
1D ) ; minimum

Sembra buono! Se il vostro output non viene simile a questo guardate i messaggi
d'errore nel vostro syslog. Ho spiegato come farlo all'inizio del capitolo.

Qualche parola di avvertimento


Ci sono delle cose che a questo punto vorrei aggiungere. I numeri IP usati negli esem
sono stati presi dai blocchi delle "reti private", cioè non è permesso usarli esplicitam
su Internet. Per questo sono comodi da usare in un HOWTO. La seconda cosa rigua
la linea notify no;. Dice a named che non deve notificare al suo server seconda
(slave, schiavo) quando riceve un aggiornamento di uno dei suoi file di zona. In bin
named può notificare agli altri server quando riceve un aggiornamento dei file di zo
Questo è utile nell'uso comune, ma per gli esperimenti privati con le zone questa
possibilità deve essere esclusa, non vogliamo che i nostri esperimenti inquinino Inte
vero??

E naturalmente, questo dominio è veramente fasullo, e così tutti gli indirizzi in esso
un vero esempio tratto dalla vita reale leggete il prossimo capitolo.

Perché non funziona il lookup inverso (reverse


lookup)
Ci sono un paio di ``grattacapi'' che possono essere normalmente evitati quando si f
lookup sempre degli stessi nomi (o dei nomi per cui lo si fa più spesso) quando si
imposta la zona inversa. Prima che andiate avanti c'è bisogno che il lookup inverso
funzioni bene sul vostro nameserver. Se così non fosse, tornate indietro e mettetelo
posto prima di continuare.

Discuterò due problematiche del lookup inverso viste dall'esterno della vostra rete:

La zona inversa non è delegata

Quando chiedete a un provider di servizi un dominio e un intervallo di indirizzi di re


dominio è normalmente delegato di conseguenza. Una delega è quel record NS che
assieme il tutto, che vi permette di passare da un nameserver all'altro come è stato
spiegato nella sezione teorica di sopra. L'avete letta vero? Se la zona inversa non vi
funziona tornate indietro e leggetela. Ora.

Anche la zona inversa deve essere delegata. Se avete ottenuto la rete 192.168.19
con il dominio linux.bogus dal vostro provider di servizi, loro dovranno metter
record NS nella vostra zona inversa così come per la vostra zona di forward. Se segu
la catena partendo da in−addr.arpa fino alla vostra rete, probabilmente troveret

Qualche parola di avvertimento 226


Linux HOWTO − Networking − Sommario

un'interruzione nella catena. Molto probabilmente a livello del vostro service provid
Una volta scoperta l'interruzione contattate il provider e chiedetegli di correggere
l'errore.

Vi hanno dato una sottorete classless

Questo sarebbe un argomento un po' avanzato, ma le sottoreti classless (senza classe


ormai sono molto comuni e probabilmente ne avete una a meno che non siate un'azi
di media grandezza.

Una sottorete classless è ciò che oggi manda avanti Internet. Qualche anno fa si è fa
molto rumore a causa della scarsità di numeri IP. Le brillanti persone che lavorano a
IETF (l'Internet Engineering Task Force, sono loro che mantengono la funzionalità
Internet) unirono le loro menti e risolsero il problema. Ma bisogna pagare un prezzo
prezzo è che avrete meno che una sottorete di classe ``C'' e qualche cosa potrebbe n
funzionare. Leggete per favore Ask Mr. DNS at
http://www.acmebw.com/askmrdns/00007.htm per una buona spiegazione e per com
trattare il problema.

L'avete letto? Non sto per spiegarlo quindi leggetelo.

La prima parte del problema è costituita dal fatto che il vostro ISP deve capire la tec
descritta da Mr. DNS. Non tutti i piccoli ISP hanno una chiara visione di questa. Se
il caso dovrete spiegar loro come fare ed essere insistenti. Ma anche voi assicuratev
aver capito bene prima ;−). A questo punto loro imposteranno una buona zona inver
sui loro server, e voi potrete esaminarla correttamente con nslookup.

La seconda e ultima parte del problema è costituita dal fatto che voi dovete compren
la tecnica. Se non siete sicuri rileggetela ancora. Dopo potrete impostare le zone inv
della vostra sottorete classless come descritto da Mr. DNS.

Nei dontorni c'è un'altra trappola in agguato. I vecchi risolutori non sono abilitati a
sfruttare il trucco del CNAME nella catena della risoluzione e falliranno nel tentativo
risolvere inversamente (reverse−resolving) la vostra macchina. Questo problema pu
portare ad assegnare al servizio una scorretta classe di accesso, all'accesso negato o
qualcosa del genere. Se inciampaste in un servizio di questo tipo l'unica soluzione (c
io conosca) è che il vostro ISP inserisca direttamente nel suo file di zona truccato (il
relativo alla vostra zona classless) il vostro record PTR anziché il record CNAME
truccato (è un modo per ingannare il DNS e per fargli accettare qualcosa per cui non
preparato).

Altri ISP offriranno diversi modi per risolvere questo problema, come dei form via
(Web−based) che permettono di inserire i vostri dati sulla zona inversa, oppure con
sistemi "automagici".

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Vi hanno dato una sottorete classless 227


Linux HOWTO − Networking − Sommario

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 228


Esempio di un vero dominio
Dove si elencano alcuni veri file di zona

Gli utenti mi hanno suggerito di includere un esempio reale di un dominio funziona


come l'esempio di tutorial.

Utilizzo questo esempio col permesso concessomi da David Bullock di LAND−5. Q


file risalgono al 24 Settembre 1996, successivamente vennero da me modificati perc
adattassero alle restrizioni di bind 8 e perché comprendessero delle estensioni. Ques
implica che quello che leggerete qua differisce un po' da quello che otterreste facend
query sul nameserver di LAND−5.

/etc/named.conf (o /var/named/named.conf)
Qui troveremo le sezioni relative alle due zone inverse richieste: la rete 127.0.0, e la
sottorete LAND−5 206.6.177. Poi c'è la linea relativa alla zona di forward per la
land−5.com. Si noti come i file siano stati sistemati nella directory chiamata zon
anziché in pz come ho fatto in questo HOWTO.

// Boot file for LAND−5 name server

options {
directory "/var/named";
};

zone "." {
type hint;
file "root.hints";
};

zone "0.0.127.in−addr.arpa" {
type master;
file "zone/127.0.0";
};

zone "land−5.com" {
type master;
file "zone/land−5.com";
};

zone "177.6.206.in−addr.arpa" {
type master;
file "zone/206.6.177";
};

Se aveste intenzione di usare queste righe nel vostro named.conf (ma solo per gioco
FAVORE mettete ``notify no;'' nelle sezioni relative alle due zone land−5 co
evitare incidenti.

Esempio di un vero dominio 229


Linux HOWTO − Networking − Sommario

/var/named/root.hints
Tenete a mente che questo è un file dinamico, e quello che c'è qua sarà vecchio. È m
che ne procuriate uno recente, con dig, come verrà presto spiegato.

; <<>> DiG 8.1 <<>> @A.ROOT−SERVERS.NET.


; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; −>>HEADER<<− opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL:
;; QUERY SECTION:
;; ., type = NS, class = IN

;; ANSWER SECTION:
. 6D IN NS G.ROOT−SERVERS.NET.
. 6D IN NS J.ROOT−SERVERS.NET.
. 6D IN NS K.ROOT−SERVERS.NET.
. 6D IN NS L.ROOT−SERVERS.NET.
. 6D IN NS M.ROOT−SERVERS.NET.
. 6D IN NS A.ROOT−SERVERS.NET.
. 6D IN NS H.ROOT−SERVERS.NET.
. 6D IN NS B.ROOT−SERVERS.NET.
. 6D IN NS C.ROOT−SERVERS.NET.
. 6D IN NS D.ROOT−SERVERS.NET.
. 6D IN NS E.ROOT−SERVERS.NET.
. 6D IN NS I.ROOT−SERVERS.NET.
. 6D IN NS F.ROOT−SERVERS.NET.

;; ADDITIONAL SECTION:
G.ROOT−SERVERS.NET. 5w6d16h IN A 192.112.36.4
J.ROOT−SERVERS.NET. 5w6d16h IN A 198.41.0.10
K.ROOT−SERVERS.NET. 5w6d16h IN A 193.0.14.129
L.ROOT−SERVERS.NET. 5w6d16h IN A 198.32.64.12
M.ROOT−SERVERS.NET. 5w6d16h IN A 202.12.27.33
A.ROOT−SERVERS.NET. 5w6d16h IN A 198.41.0.4
H.ROOT−SERVERS.NET. 5w6d16h IN A 128.63.2.53
B.ROOT−SERVERS.NET. 5w6d16h IN A 128.9.0.107
C.ROOT−SERVERS.NET. 5w6d16h IN A 192.33.4.12
D.ROOT−SERVERS.NET. 5w6d16h IN A 128.8.10.90
E.ROOT−SERVERS.NET. 5w6d16h IN A 192.203.230.10
I.ROOT−SERVERS.NET. 5w6d16h IN A 192.36.148.17
F.ROOT−SERVERS.NET. 5w6d16h IN A 192.5.5.241

;; Total query time: 215 msec


;; FROM: roke.uio.no to SERVER: A.ROOT−SERVERS.NET. 198.41.0.4
;; WHEN: Sun Feb 15 01:22:51 1998
;; MSG SIZE sent: 17 rcvd: 436

/var/named/zone/127.0.0
Solo lo stretto necessario, il record obbligatorio SOA, e un record che mette in
corrispondenza 127.0.0.1 con localhost. Entrambi sono richiesti. Non deve esse
nient'altro in questo file. Probabilmente non ci sarà mai bisogno di aggiornare quest
meno che non cambino gli indirizzi del nameserver o hostmaster.

/var/named/root.hints 230
Linux HOWTO − Networking − Sommario

@ IN SOA land−5.com. root.land−5.com. (


199609203 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS land−5.com.

1 PTR localhost.

/var/named/zone/land−5.com
Qui possiamo vedere il record obbligatorio SOA e i record NS richiesti. Si può vede
è presente un nameserver secondario in ns2.psi.net. Questo è come dovrebbe e
bene avere sempre un server secondario fuori dalla vostra rete che faccia da backup
notare anche la presenza di un host principale (master host) chiamato land−5 che
prende cura della maggior parte dei servizi Internet, e questo è fatto tramite i record
CNAME (alternativamente si possono usare i record A).

Come si può vedere dal record SOA, il file di zona comincia con land−5.com, la
persona da contattare è root@land−5.com. Anche hostmaster è spesso utiliz
per il responsabile di zona. Il numero seriale è nel formato standard yyyymmdd
(aaaammgg) con il numero che indica il giorno (todays serial number) a seguire. Qu
forse la sesta versione del file di zona del 20 settembre 1996. Ricordate che il serial
number deve essere incrementato in maniera monotonica, qui c'è solo una cifra per
serial #, così dopo 9 volte che si è editato il file bisogna aspettare il giorno successiv
prima che si possa editarlo di nuovo. Comunque considerate che si possono usare 2

@ IN SOA land−5.com. root.land−5.com. (


199609206 ; serial, todays date
; + todays serial #
8H ; refresh, seconds
2H ; retry, seconds
1W ; expire, seconds
1D ) ; minimum, seconds
NS land−5.com.
NS ns2.psi.net.
MX 10 land−5.com. ; Primary Mail Exchanger
TXT "LAND−5 Corporation"

localhost A 127.0.0.1

router A 206.6.177.1

land−5.com. A 206.6.177.2
ns A 206.6.177.3
www A 207.159.141.192

ftp CNAME land−5.com.


mail CNAME land−5.com.
news CNAME land−5.com.

funn A 206.6.177.2

;
; Workstations

/var/named/zone/land−5.com 231
Linux HOWTO − Networking − Sommario

;
ws−177200 A 206.6.177.200
MX 10 land−5.com. ; Primary Mail Host
ws−177201 A 206.6.177.201
MX 10 land−5.com. ; Primary Mail Host
ws−177202 A 206.6.177.202
MX 10 land−5.com. ; Primary Mail Host
ws−177203 A 206.6.177.203
MX 10 land−5.com. ; Primary Mail Host
ws−177204 A 206.6.177.204
MX 10 land−5.com. ; Primary Mail Host
ws−177205 A 206.6.177.205
MX 10 land−5.com. ; Primary Mail Host
; {Many repetitive definitions deleted − SNIP}
ws−177250 A 206.6.177.250
MX 10 land−5.com. ; Primary Mail Host
ws−177251 A 206.6.177.251
MX 10 land−5.com. ; Primary Mail Host
ws−177252 A 206.6.177.252
MX 10 land−5.com. ; Primary Mail Host
ws−177253 A 206.6.177.253
MX 10 land−5.com. ; Primary Mail Host
ws−177254 A 206.6.177.254
MX 10 land−5.com. ; Primary Mail Host

Esaminando i nameserver di land−5 scoprirete che gli host hanno un nome del tipo
ws_numero. Con le ultime versioni di bind−4 named ha iniziato a porre delle restriz
sui caratteri che potevano essere usati nei nomi di host. In questo HOWTO io ho so
'−' (dash, trattino) con '_' (underline) in modo da uniformarmi alle regole di bind−8
nomi di host.

Un'altra cosa da notare è che le workstation non hanno nomi individuali, ma un pref
seguito dalle ultime due parti del numero IP. Usare delle convenzioni simili può
semplificare significativamente la manutenzione, ma può risultare impersonale e in
potrebbe anche irritare i vostri clienti.

Vediamo anche che funn.land−5.com è un alias per land−5.com, ma ciò è f


tramite un record A, non con un record CNAME. Questo è un buon modo di proced

/var/named/zone/206.6.177
Commenterò questo file più sotto.

@ IN SOA land−5.com. root.land−5.com. (


199609206 ; Serial
28800 ; Refresh
7200 ; Retry
604800 ; Expire
86400) ; Minimum TTL
NS land−5.com.
NS ns2.psi.net.
;
; Servers
;
1 PTR router.land−5.com.
2 PTR land−5.com.

/var/named/zone/206.6.177 232
Linux HOWTO − Networking − Sommario

2 PTR funn.land−5.com.
;
; Workstations
;
200 PTR ws−177200.land−5.com.
201 PTR ws−177201.land−5.com.
202 PTR ws−177202.land−5.com.
203 PTR ws−177203.land−5.com.
204 PTR ws−177204.land−5.com.
205 PTR ws−177205.land−5.com.
; {Many repetitive definitions deleted − SNIP}
250 PTR ws−177250.land−5.com.
251 PTR ws−177251.land−5.com.
252 PTR ws−177252.land−5.com.
253 PTR ws−177253.land−5.com.
254 PTR ws−177254.land−5.com.

La zona inversa costituisce quella fase della configurazione che causa più grane. Es
a ricavare il nome di un host dall'indirizzo IP di una macchina. Esempio: voi siete u
IRC e accettate connessioni dai client IRC. Inoltre siete un server IRC Norvegese a
che queste connessioni provengano da client Norvegesi o da altre nazioni Scandinav
Quando ricevete una richiesta di connessione da un client la libreria C è in grado di
numero IP della macchina che sta tentando la connessione, poiché il numero IP del
contenuto in ogni pacchetto che attraversa la rete. A questo punto potrete chiamare
funzione chiamata gethostbyaddr che ricava il nome di un host a partire dal suo indi
IP. Gethostbyaddr interrogherà un server DNS, il quale attraverserà il DNS in cerca
macchina. Supponiamo che il client si connetta da ws−177200.land−5.com. La libre
presente nel server ricava il numero IP del client che tenta la connessione, in questo
206.6.177.200. Per scoprire il nome di questa macchina bisogna prima scoprire
200.177.6.206.in−addr.arpa. Il server DNS troverà prima i server arpa.
troverà i server in−addr.arpa., seguendo il percorso inverso passando per 206,
6 e alla fine troverà il server responsabile per la zona 177.6.206.in−addr.ar
presso LAND−5. Da questo finalmente si potrà ricavare che in
200.177.6.206.in−addr.arpa c'è un record ``PTR
ws−177200.land−5.com'', e questo significa che il nome associato a
206.6.177.200 è ws−177200.land−5.com. Come è stato detto per la spieg
della ricerca (looking up) di prep.ai.mit.edu, anche questa è leggermente fitti

Riprendiamo l'esempio del server IRC. Il server IRC accetta connessioni solo da pae
Scandinavi, ovvero *.no, *.se, *.dk il nome ws−177200.land−5.com non
corrisponde a nessuno di questi ovviamente, e il server negherà la connessione. Se n
fosse la corrispondenza inversa (reverse mapping) di 206.2.177.200 tramite la
in−addr.arpa il server sarebbe incapace di scoprire il nome e avrebbe dovuto
comparare 206.2.177.200 con *.no, *.se e *.dk, senza trovare nessuna
corrispondenza.

Alcune persone vi diranno che il mapping del lookup inverso è importante solo per
server, o per nulla importante. Non è così: molti server ftp, news, IRC e anche qualc
server http (WEB) non accetteranno connessioni da macchine per le quali non riesco
trovare il nome. E così il mapping inverso diventa di fatto obbligatorio.

/var/named/zone/206.6.177 233
Linux HOWTO − Networking − Sommario

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successivo]
Cos'è OpenPress

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Libri:

Italian crackdown

Open Sou