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 Sources

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Feedback

Linux HOWTO − Networking 234


Manutenzione
Mantenerlo operativo

C'è un altro compito di manutenzione che dovete fare sui named, oltre a quello di te
operativi. Consiste nel mantenere aggiornato il file root.hints. Il modo più sem
è usare dig, fate partire dig senza argomenti, otterrete root.hints in accordo col
quello che c'è sul vostro server. Poi fate una richiesta a uno dei root server elencati c
dig @rootserver. Vedrete che l'output somiglierà terribilmente al file
root.hints. Salvatelo in un file (dig @e.root−servers.net . ns
>root.hints.new) e rimpiazzate il vecchio root.hints con questo.

Ricordate di fare reload di named dopo aver rimpiazzato il cache file.

Questo script mi è stato mandato da Al Longyear, può essere fatto partire


automaticamente per aggiornare root.hints, impostate una riga nel crontab che
faccia partire una volta al mese e dimenticatelo. Lo script assume che il vostro sistem
posta funzioni e che l'alias di posta `hostmaster' sia definito. Dovrete editarlo perché
conformi alle vostre esigenze.

#!/bin/sh
#
# Update the nameserver cache information file once per month.
# This is run automatically by a cron entry.
#
# Original by Al Longyear
# Updated for bind 8 by Nicolai Langfeldt
# Miscelanious error−conditions reported by David A. Ranch
# Ping test suggested by Martin Foster
#
(
echo "To: hostmaster <hostmaster>"
echo "From: system <root>"
echo "Subject: Automatic update of the root.hints file"
echo

PATH=/sbin:/usr/sbin:/bin:/usr/bin:
export PATH
cd /var/named

# Are we online? Ping a server at your ISP


case `ping −qnc 1 some.machine.net` in
*'100% packet loss'*)
echo "The network is DOWN. root.hints NOT updated"
echo
exit 0
;;
esac

dig @e.root−servers.net . ns >root.hints.new 2>&1

case `cat root.hints.new` in


*NOERROR*)
# It worked
:;;

Manutenzione 235
Linux HOWTO − Networking − Sommario

*)
echo "The root.hints file update has FAILED."
echo "This is the dig output reported:"
echo
cat root.hints.new
exit 0
;;
esac

echo "The root.hints file has been updated to contain the followin
information:"
echo
cat root.hints.new

chown root.root root.hints.new


chmod 444 root.hints.new
rm −f root.hints.old
mv root.hints root.hints.old
mv root.hints.new root.hints
ndc restart
echo
echo "The nameserver has been restarted to ensure"
echo "that the update is complete."
echo "The previous root.hints file is now called
/var/named/root.hints.old."
) 2>&1 | /usr/lib/sendmail −t
exit 0

Qualcuno di voi potrebbe aver notato che il file root.hints è disponibile anche
da Internic. Per favore, non usate ftp per aggiornare root.hints, il metodo sopra
descritto è molto più amichevole per la rete, e per Internic.

[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

Linux HOWTO − Networking 236


La cattedrale e il bazaar
Convertire dalla versione 4 alla versione
Colonizzare la noosfera

Il calderone magico Questa era originariamente una sezione sull'uso di bind 8, scritta da Davie E. Smith
(dave@bureau42.ml.org). L'ho rivista in modo da conformarla al nuovo nome della
Libri: sezione.

Italian crackdown Non c'è molto. Eccetto che per l'uso di named.conf al posto di named.boot, tutto è
Open Sources identico. E bind8 è fornito con uno script perl che converte i file vecchio stile nel nu
Esempio di named.boot (vecchio stile) per un name server che fa solo da cache
MediaMorfosi
(caching−only):
GTK+/GNOME
sviluppo applicazioni
directory /var/named
Linux HOWTO: Installazione e configurazione cache . root.hints
primary 0.0.127.IN−ADDR.ARPA 127.0.0.zone
Risorse primary localhost localhost.zone

Feedback Dalla linea di comando, nella directory bind8/src/bin/named (si assume che abbiate
distribuzione dei sorgenti. Se avete il pacchetto dei binari lo script sarà da qualche
parte, comunque non so esattamente dove dovrebbe stare. −ed−), digitate:

./named−bootconf.pl < named.boot > named.conf

Il quale crea named.conf:

// generated by named−bootconf.pl

options {
directory "/var/named";
};

zone "." {
type hint;
file "root.hints";
};

zone "0.0.127.IN−ADDR.ARPA" {
type master;
file "127.0.0.zone";
};

zone "localhost" {
type master;
file "localhost.zone";
};

Questo script funziona per tutto ciò che potrebbe stare dentro un file named.boot
sebbene non aggiunga tutti i miglioramenti e le nuove opzioni di configurazione che
bind8 supporta. Qui c'è un named.conf più completo, che fa le stesse cose ma ch
appena più efficiente.

// This is a configuration file for named (from BIND 8.1 or later).


// It would normally be installed as /etc/named.conf.
// The only change made from the `stock' named.conf (aside from thi

Convertire dalla versione 4 alla versione 8 237


Linux HOWTO − Networking − Sommario

// comment :) is that the directory line was uncommented, since I


// already had the zone files in /var/named.

options {
directory "/var/named";
datasize 20M;
};

zone "localhost" IN {
type master;
file "localhost.zone";
};

zone "0.0.127.in−addr.arpa" IN {
type master;
file "127.0.0.zone";
};

zone "." IN {
type hint;
file "root.hints";
};

Trovate questo file nella distribuzione di bind8, nella directory bind8/src/bin/named


insieme a copie dei file di zona, che possono essere prese e usate immediatamente.

I formati dei file di zona e root.hints sono identici, così come i comandi per
aggiornarli.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Linux HOWTO − Networking 238


Colonizzare la noosfera

Il calderone magico Domande e risposte


Libri: Per favore leggete questa sezione prima di scrivermi in email.
Italian crackdown
9. Il mio named vuole il file named.boot
Open Sources
State leggendo l'HOWTO sbagliato. Leggete per favore la vecchia versione
MediaMorfosi
HOWTO, che tratta bind 5, presso http://www.math.uio.no/~janl/DNS/
GTK+/GNOME
sviluppo applicazioni
1. Come si usa il DNS dall'interno di un Firewall?
Linux HOWTO: Installazione e configurazione
Un indizio: forward only; probabilmemte avrete bisogno anche della r
Risorse
query−source port 53;
Feedback

all'interno della parte ``options'' del file named.conf come suggerito nell
sezione−esempio [*] (Un name server caching only.)
8. Come fare in modo che il DNS distribuisca un servizio attraverso gli indiriz
tipo www.sito.occupato per ottenere un effetto di bilanciamento, o sim

Create numerosi record A per www.sito.occupato e usate bind 4.9.3 o


Poi sarà bind a far ruotare le risposte. Non funziona con le precedenti versio

7. Voglio impostare il DNS su una intranet (chiusa). Cosa devo fare?

Cancellerete il file root.hints e farete solo i file di zona. Questo signifi


non dovrete aggiornare i file di hint tutte le volte.

2. Come si imposta un name server secondario (slave)?

Se il server primario/master ha indirizzo 127.0.0.1 mettete una linea come q


named.conf del vostro secondario:

zone "linux.bogus" {
type slave;
file "sz/linux.bogus";
masters { 127.0.0.1; };
};

Potrete elencare numerosi master server alternativi, la zona può essere copia
lista masters, separata da ';'.
3. Vorrei bind in esecuzione quando mi disconnetto dalla rete.

Ci sono quattro articoli che riguardano questo:

♦ Specifico per bind 8, Adam L. Rice mi ha mandato questa email, su


funzionare tranquillamente il DNS su una macchina dial−up:

Ho scoperto che con le ultime versioni di BIND questo [<em/m


file, −ed/] non è più necessario. C'è una direttiva "forward

Domande e risposte 239


Linux HOWTO − Networking − Sommario

quella "forwarders" che controlla come queste vengono


usate. L'impostazione di default è "forward first", la quale
chiede a ognuno dei forwarder, e poi se il tentativo fallisc
da sola a fare il lavoro seguendo un normale approccio. Ques
implica un normale comportamento di gethostbyname() e impieg
quantità spropositata di tempo quando il link non è attivo.
"forward only" è l'impostazione scelta, allora BIND si blocc
non riesce a ottenere una risposta dai forwarders, e gethost
si ferma immediatamente. Quindi in questo caso non c'è bisog
smanettare con i file di /etc e di far ripartire il server.

Per quanto mi riguarda, ho solo aggiunto le linee

forward only;
forwarders { 193.133.58.5; };

nella sezione opzioni { } del mio file named.conf. Tutto ciò


veramente bene. L'unico svantaggio è che questo riduce un so
incredibilmente complicato per il DNS allo stato di una stup
In un certo senso, io vorrei solo far fuzionare una stupida
posto del DNS, ma ciò non sembra essere altro che un pezzo d
disponibile per Linux.

♦ Ho ricevuto questa mail da Ian Clark <ic@deakin.edu.au> dove egl


affronta il problema:

Faccio partire named sulla mia macchina che fa servizio di '


(mascheramento). Ho due file root.hints, uno chiamato root.h
contiene i veri nomi dei root server e l'altro chiamato root
che contiene...

−−−−
; root.hints.fake
; this file contains no information
−−−−

Quando vado off line copio il file root.hints.fake su root.h


faccio ripartire named.

Quando vado on line copio root.hints.real su root.hints e fa


ripartire named.

Tutto ciò viene eseguito da ip−down e ip−up rispettivamente.

La prima volta che faccio una richiesta (query) off line, na


avendo dettagli su di essa lascia una riga simile a questo m

Jan 28 20:10:11 hazchem named[10147]: No root nameserver for

con la quale posso convivere.

Questo per me funziona certamente. Posso usare il nameserver


macchina locali quando sono fuori dalla rete senza il ritard
timeout per i nomi di dominio esterni e mentre sono collegat
le richieste (query) per i domini esterni funzionano normalm

♦ Ho ricevuto anche informazioni su come bind intergisce con NFS e


portmapper su una macchina generalmente offline da Karl−Max W

Domande e risposte 240


Linux HOWTO − Networking − Sommario

Sono abituato a eseguire il mio named su tutte le mie macchi


solo occasionalmente sono connesse a Internet via modem. Sol
nameserver fa da cache, esso non ha un'area di autorità e ch
qualunque cosa ai nameserver del file root.cache. Come è pra
con Slackware, viene fatto partire prima di nfsd e mountd.

Con una delle mie macchine (un notebook Libretto 30), avevo
che qualche volta avrei voluto fare il mount di essa da un a
connesso alla mia rete locale, ma la maggior parte delle vol
funzionava. Avevo lo stesso effetto usando indistintamente P
scheda ethernet PCMCIA o il PPP su una interfaccia seriale.

Dopo qualche supposizione e esperimento scoprii che apparent


named incasinava il processo di registrazione con portmapper
e mountd devono fare all'avvio (faccio partire questi demoni
come al solito). Eseguire named dopo nfsd e mountd elimina c
questo problema.

Anche se non ci sono svantaggi da attendersi da una sequenza


modificata, vorrei consigliare a tutti di farla in questo mo
potenziali problemi.

♦ Infine, ci sono delle informazioni stile HOWTO su questo argomen


Mr. DNS at http://www.acmebw.com/askmrdns/#linux−dialup. Sic
proposito di bind 4, dovrete adattare quello che dice a bind 8.
6. Il caching name server memorizza la sua cache? C'è un modo per controllar
dimensione della cache?

La cache è completamente immagazzinata in memoria, non verrà mai scritta


nessuna occasione. Ogni volta che si blocca named (con il comando 'kill') la
La cache non è controllabile in alcun modo. Named la gestisce in accordo a
semplice regola e basta. Non potete controllare la cache o la sua dimensione
modo per nessuna ragione. Se questo non vi andasse bene potrete sempre ce
modificare named andando ad agire sul codice sorgente di esso. Non è com
un'operazione raccomandabile.

5. Named salva la cache fra un riavvio e l'altro? Posso fare in modo che la salv

No, named non salva la cache quando si ferma. Questo significa che la cach
ricostituita ogni volta che fermate e fate ripartire named. Non c'è modo di sa
in un file. Se questo non vi andasse bene potrete sempre cercare di modifica
andando ad agire sul codice sorgente di esso. Non è comunque un'operazion
raccomandabile.

4. Come si ottiene un dominio? Io vorrei impostare il mio dominio chiamato (


linux−rules.net. Come posso avere il dominio che vorrei mi fosse as

Contattate per favore il vostro provider di servizi di rete. Loro sapranno aiu
Sappiate che in molte parti del mondo ci sarà bisogno di pagare per avere u

[Precedente] [Sommario] [Succes

Domande e risposte 241


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 242


Come diventare un grande
amministratore DNS
Documentazione e strumenti

Esiste della vera documentazione. Sia online che su carta


stampata. La lettura di buona parte di essa è necessaria per
fare il passo dall'amministratore DNS a tempo perso a quello a
tempo pieno. Su carta stampata il libro è DNS and BIND di C.
Liu and P. Albitz edito dalla O'Reilly & Associates,
Sebastopol, CA, ISBN 0−937175−82−X. Io l'ho letto, è
eccellente, anche se basato su bind 4, ma questo non è un
grosso problema. C'è anche una sezione sul DNS sul libro
TCP/IP Network Administration, di Craig Hunt edito dalla
O'Reilly..., ISBN 0−937175−82−X. Un altro ``must'' per la
Buona amministrazione DNS (e buono per qualsiasi altra
cosa) è Zen and the Art of Motorcycle Maintenance (Lo Zen e
l'arte della manutenzione della motocicletta) di Robert M.
Pirsig :−) Disponibile come ISBN 0688052304 e altri.

Online troverte della roba presso http://www.dns.net/dnsrd/


(DNS Resources Directory), http://www.isc.org/bind.html;
una FAQ, un manuale di riferimento (BOG; Bind Operations
Guide) oltre che documenti, definizioni di protocolli e trucchi
(hacks) sul DNS (di questi, la maggior parte, se non tutti, e
alcune delle RFC elencate sotto, sono anche contenuti nella
distribuzione di bind). Io non ho letto tutto, e infatti non sono
un amministratore DNS a tempo pieno. Arnt Gulbrandsen
invece ha letto la BOG ed è rimasto meravigliato da essa :−).
Il newsgroup comp.protocols.tcp−ip.domains è relativo al
DNS. Inoltre come aggiunta a tutto questo ci sono numerose
RFC sul DNS, le più importanti sono probabilmente queste:

RFC 2052 A. Gulbrandsen, P. Vixie, A DNS RR for specifying


the location of services (DNS SRV), ottobre 1996

RFC 1918 Y. Rekhter, R. Moskowitz, D. Karrenberg, G. de


Groot, E. Lear, Address Allocation for Private Internets,
29/02/1996.

RFC 1912 D. Barr, Common DNS Operational and


Configuration Errors, 28/02/1996.

RFC 1912 Errors B. Barr Errors in RFC 1912, this is


available at
http://www.cis.ohio−state.edu/ barr/rfc1912−errors.html

RFC 1713 A. Romao, Tools for DNS debugging, 03/11/1994.

Come diventare un grande amministratore DNS 243


Linux HOWTO − Networking − Sommario

RFC 1712 C. Farrell, M. Schulze, S. Pleitner, D. Baldoni,


DNS Encoding of Geographical Location, 01/11/1994.

RFC 1183 R. Ullmann, P. Mockapetris, L. Mamakos, C.


Everhart, New DNS RR Definitions, 08/10/1990.

RFC 1035 P. Mockapetris, Domain names − implementation


and specification, 11/01/1987.

RFC 1034 P. Mockapetris, Domain names − concepts and


facilities, 11/01/1987.

RFC 1033 M. Lottor, Domain administrators operations


guide, 11/01/1987.

RFC 1032 M. Stahl, Domain administrators guide,


11/01/1987.

RFC 974 C. Partridge, Mail routing and the domain system,


01/01/1986.

Abstract:

Questo documento intende descrivere come ottenere, installare


e configurare il software di ``enhanced IP firewalling chains''
per Linux, e alcune idee su come si potrebbe usarlo.
Traduzione a cura di Giovanni Bortolozzo borto at
pluto.linux.it.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Abstract: 244
Open Source Definition

GNU General Public License Introduzione


La cattedrale e il bazaar
Questo è il Linux IPCHAINS−HOWTO; si veda la Sezione
Colonizzare la noosfera [*] (Dove?) l'indirizzo del sito principale, che contiene
Il calderone magico l'ultima versione. Si dovrebbe leggere anche il Linux
NET−3−HOWTO. L'IP−Masquerading HOWTO, il
Libri: PPP−HOWTO, l'Ethernet−HOWTO e il Firewall HOWTO
possono essere altre letture interessanti (come d'altronde lo
Italian crackdown possono essere le FAQ di alt.fan.bigfoot).
Open Sources
Se interessa il filtraggio dei pacchetti (packet filtering), si
MediaMorfosi
legga la Sezione [*] (Perché?), la Sezione [*] (Come?) e si dia
GTK+/GNOME un'occhiata ai titoli nella sezione [*] (IP Firewalling Chains).
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Se si sta operando la conversione da ipfwadm, si legga la


Sezione [*] (Introduzione), la sezione [*] (Come?) e le
Risorse appendici nella sezione [*] (Differenze tra ipchains e
ipfwadm) e nella sezione [*] (L'uso dello script
Feedback `ipfwadm−wrapper').

Cos'è?
Il Linux ipchains è una riscrittura del codice di firewalling
IPv4 di Linux (il quale era stato rubato principalmente da
BSD) e una riscrittura di ipfwadm, che a sua volta era,
almeno penso, una riscrittura del ipfw di BSD. È richiesto
per amministrare il filtraggio dei pacchetti IP nelle versioni
del kernel di Linux 2.1.102 e superiori.

Perché?
Il vecchio codice di firewalling di Linux non gestisce i
frammenti (fragment), ha contatori a 32 bit (almeno su Intel),
non permette di specificare protocolli diversi da TCP, UDP e
ICMP, non può rendere atomiche grosse modifiche, non può
specificare regole inverse, ha qualche scemata e può risultare
duro da manipolare (rendendolo propenso a errori utente).

Come?
Attualmente il codice fa parte del kernel a partire dalla
versione 2.1.102. Per la serie dei kernel 2.0, è necessario
scaricare una patch dalla pagina Web. Se il proprio kernel 2.0
è più recente della patch disponibile, una patch più vecchia
dovrebbe andare bene lo stesso; questa parte del kernel 2.0 è
piuttosto stabile (per esempio, la patch per il kernel 2.0.34
funziona bene sul kernel 2.0.35). Poiché la patch per il 2.0 è
incompatibile con le patch ipportfw e ipautofw, non

Introduzione 245
Linux HOWTO − Networking − Sommario

raccomando di applicarla a meno che non si abbia veramente


bisogno di alcune delle funzionalità che offre ipchains.

Dove?
La pagina ufficiale è
http://www.rustcorp.com/linux/ipchainsThe Linux IP Firewall
Chains Page

Esiste una mailing list per le segnalazioni di bug, discussione,


sviluppo e uso. È possibile associarsi alla mailing list inviando
un messaggio contente la parola ``subscribe'' a
ipchains−request a rustcorp.com. Per inviare mail alla lista si
usi `ipchains' invece di `ipchains−request'.

[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

MediaMorfosi

GTK+/GNOME

Dove? 246
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Fondamenti di packet filtering


Risorse
Cos'è?
Feedback
Tutto il traffico attraverso una rete è inviato sotto forma di pacchetti. Per esempio,
(facciamo conto sia lungo 50k) fa sì che si ricevano 36 o più pacchetti da 1460 byte
numeri).

L'inizio di ogni pacchetto specifica dove deve andare, da dove viene, il tipo di pacch
Questa parte iniziale del pacchetto è detta header (intestazione). Il resto del pacchet
solitamente è detto body (corpo).

Alcuni protocolli, come TCP, usato per il traffico Web, mail e login remoti, usano i
inviare un qualsiasi pacchetto con i dati reali, sono scambiati diversi pacchetti di im
che dicono «Voglio connettermi», «OK» e «Grazie». Poi sono scambiati i pacchetti

Un filtro di pacchetti (packet filter) è un pezzo di software che guarda l'intestazione


destino dell'intero pacchetto. Potrebbe decidere di proibire (deny) il pacchetto (cioè
mai stato ricevuto), accettare (accept) il pacchetto (lasciare che il pacchetto prosegu
(simile a proibire, ma comunica inoltre alla fonte del pacchetto quello che ha fatto).

Sotto Linux, il filtraggio dei pacchetti è contenuto all'interno del kernel e ci sono alc
fare con i pacchetti, ma il principio generale è sempre quello di guardare le intestazi

Perché?
Controllo. Sicurezza. Vigilanza.

Controllo:
quando si usa una macchina Linux per connettere la propria rete interna a u
l'opportunità di permettere un certo tipo di traffico e di proibirne dell'altro. P
pacchetto contiene l'indirizzo della destinazione del pacchetto, e quindi si p
verso una certa parte della rete esterna. Un altro esempio: uso Netscape per
pagina ci sono avvisi pubblicitari di doubleclick.net e Netscape spreca il mi
Dicendo al filtro dei pacchetti di non permettere alcun pacchetto da o verso
quel problema (anche se penso ci siano modi migliori per risolverlo).

Sicurezza:
quando la propria macchina Linux è la sola cosa tra il caos di Internet e la p
sapere che si può limitare quel che viene a bussare alla propria porta. Per es
cosa di uscire dalla propria rete, ma certamente non si è ben disposti verso i
provenienti da estranei maliziosi. Un altro esempio: si può voler evitare che
macchina, anche se tutti gli account hanno una password; oppure si vuole (c
semplice osservatore in Internet e non un server (volente o nolente): sempli
connettersi, facendo sì che il filtro dei pacchetti rifiuti tutti i pacchetti entran

Vigilanza:
talvolta una macchina mal configurata in una rete locale decide di emettere

Fondamenti di packet filtering 247


Linux HOWTO − Networking − Sommario

dire al filtro dei pacchetti di informarvi se succede qualcosa di anormale; fo


forse si è solo curiosi per natura.

Come?
Un kernel con il filtraggio dei pacchetti

È necessario un kernel che possieda al suo interno il nuovo supporto per le ``IP firew
possibile sapere se il kernel attualmente in esecuzione ce l'ha cercando il file `/proc/

Se così non è, è necessario compilare un kernel che supporti le catene firewall IP. P
kernel desiderato. Se si possiede un kernel versione 2.1.102 o superiore non si avrà
kernel). Altrimenti si applichi la patch scaricabile dalla pagina Web suddetta e si eff
dettagliatamente nel seguito. Se non si sa come farlo, niente panico: si legga il Kern

Le opzioni di configurazione che sarà necessario impostare per i kernel della serie 2

CONFIG_EXPERIMENTAL=y
CONFIG_FIREWALL=y
CONFIG_IP_FIREWALL=y
CONFIG_IP_FIREWALL_CHAINS=y

Per i kernel delle serie 2.1 o 2.2:

CONFIG_FIREWALL=y
CONFIG_IP_FIREWALL=y

Lo strumento ipchains dialoga con il kernel e lo istruisce su quali pacchetti filtra


programmatori, o particolarmente curiosi, questo è il solo modo con cui si controlle

ipchains

Il programma ipchains inserisce e cancella regole dalla sezione di filtraggio dei


qualsiasi cosa si imposti, sarà persa al riavvio; si veda la sezione [*] (Rendere perm
assicurarsi che siano rispristinate all'avvio successivo di Linux.

ipchains sostituisce ipfwadm, usato per il vecchio codice di Firewall IP. Nel si
di script molto utili:

ftp://ftp.rustcorp.com/ipchains/ipchains−scripts−1.1.2.tar.gzftp://ftp.rustcorp.com/ip

Questo pacchetto contiene uno script shell chiamato ipfwadm−wrapper che perm
pacchetti come lo si faceva prima. Probabilmente non si dovrebbe usare questo scrip
veloce per aggiornare un sistema che usa ipfwadm (è più lento, non controlla gli a
necessario proseguire la lettura di questo HOWTO.

Si veda l'appendice [*] (Differeze tra ipchains e ipfwadm) e l'appendice [*] (Usare l
maggiori dettagli.

Come? 248
Linux HOWTO − Networking − Sommario

Rendere permanenti le regole

La configurazione corrente del firewall è immagazzinata nel kernel e quindi sarà pe


script `ipchains−save' e `ipchains−restore' per rendere permanenti le regole. Per far
(come root) si lanci:

# ipchains−save > /etc/ipchains.rules


#

Si crei uno script come il seguente:

#! /bin/sh
# Script per controllare il filtraggio dei pacchetti

# Se non ci sono regole, non fa niente.


[ −f /etc/ipchains.rules ] || exit 0

case "$1" in
start)
echo −n "Attivazione del filtraggio dei pacchetti:"
/sbin/ipchains−restore < /etc/ipchains.rules || exit 1
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "."
;;
stop)
echo −n "Disattivazione del filtraggio dei pacchetti:"
echo 0 > /proc/sys/net/ipv4/ip_forward
/sbin/ipchains −X
/sbin/ipchains −F
/sbin/ipchains −P input ACCEPT
/sbin/ipchains −P output ACCEPT
/sbin/ipchains −P forward ACCEPT
echo "."
;;
*)
echo "Uso: /etc/init.d/packetfilter {start|stop}"
exit 1
;;
esac

exit 0

Ci si assicuri che sia eseguito abbastanza presto nella procedura di avvio. Nel mio c
simbolico chiamato `S39packetfilter' nella directory `/etc/rcS.d' (così sarà eseguito p

[Precedente] [Sommario]

Copyright © 1995−2000 Apogeo srl, Milano

Rendere permanenti le regole 249


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 250


Instradamento, masquerading,
portforwarding, ipautofw...
Questo HOWTO è sul filtraggio dei pacchetti. Ciò significa decidere quando un
pacchetto dovrebbe avere o meno il permesso di passare. Comunque, essendo
Linux il campo giochi degli hacker, si vorrà probabilmente fare qualcosina di
più.

Un problema è che lo stesso strumento (``ipchains'') è usato per controllare


anche il masquerading e il proxy trasparente, sebbene queste siano
concettualmente diverse dal filtraggio dei pacchetti (l'implementazione corrente
di Linux innaturalmente le fonde insieme, dando l'impressione che siano
strettamente collegate).

Il masquerading e il proxy sono trattati da altri HOWTO, mentre le


caratteristiche auto forwading e port forwarding sono controllate da altri
strumenti, ma poiché la gente continua a domandarmene, includerò un insieme
di scenari comuni e indicherò quando ognuno possa essere applicato. I meriti di
sicurezza di ciascuna configurazione non saranno qui discussi.

Le tre linee guida di Rusty al masquerading


Si assume che la propria interfaccia esterna si chiami `ppp0'. Si usi ifconfig per
scoprire qual è e si aggiusti il tutto a proprio gusto.

# ipchains −P forward DENY


# ipchains −A forward −i ppp0 −j MASQ
# echo 1 > /proc/sys/net/ipv4/ip_forward

Promozione gratuita: WatchGuard


I firewall si possono anche comprare. Uno eccellente è il FireBox della
WatchGuard. È eccellente perché mi piace, è sicuro, è basato su Linux e anche
perché quelli della WatchGuard sovvenzionano il mantenimento di ipchains e
del nuovo codice di firewall (atteso per il 2.3). In breve, la WatchGuard mi sta
pagando da mangiare mentre lavoro per voi. Quindi vi invito a considerare i loro
prodotti.

http://www.watchguard.comhttp://www.watchguard.com

Configurazioni comuni di firewall


Supponiamo di gestire il dominio littlecorp.com. Si ha una rete interna e una
sola connessione in dialup (PPP) verso Internet (firewall.littlecorp.com che è
1.2.3.4). Si usa Ethernet nella propria rete locale e la propria macchina
personale si chiama ``myhost''.

Instradamento, masquerading, portforwarding, ipautofw... 251


Linux HOWTO − Networking − Sommario

Questa sezione illustrerà diversi arrangiamenti comuni. Li si legga attentamente,


perché sono subdolamente diversi uno dall'altro.

Rete privata: proxy tradizionale

In questo scenario, i pacchetti provenienti dalla rete privata non passeranno mai
su Internet e viceversa. Gli indirizzi IP della rete privata dovranno essere
assegnati secondo le Private Network Allocations del RFC1597 (cioè 10.*.*.*,
172.16.*.* o 192.168.*.*).

Il solo modo nel quale ci si potrà mai connettere a Internet è di connettersi al


firewall, che è la sola macchina in entrambe le reti che può uscire dalla rete
locale. Per far questo si può eseguire un programma (nel firewall) detto proxy
(ci sono proxy per FTP, accesso al Web, telnet, RealAudio, Usenet News e altri
servizi). Si veda il Firewall HOWTO.

Qualsiasi servizio che si vuole sia accessibile da Internet deve essere nel
firewall (si veda anche Servizi interni limitati [*] nel seguito).

Esempio: permettere l'accesso Web dalla rete privata a Internet

1. Alla rete privata sono assegnati gli indirizzi 192.168.1.*, e in particolare


a myhost è assegnato il 192.168.1.100 e all'interfaccia Ethernet del
firewall il 192.168.1.1.
2. Nel firewall è installato e configurato un proxy Web (es. ``squid''), ed è
in funzione sulla porta 8080.
3. Il Netscape sulla rete privata è configurato per usare la porta 8080 del
firewall come proxy.
4. Nel rete privata non serve sia configurato il DNS.
5. Il DNS deve essere configurato sul firewall.
6. Nella rete privata non dev'essere configurato nessun instradamento
predefinito (gateway).

Netscape su myhost legge http://slashdot.org.

1. Netscape si connette alla porta 8080 del firewall usando la porta 1050
su myhost. Chiede la pagina Web di ``http://slashdot.org''.
2. Il proxy cerca il nome ``slashdot.org'' e ottiene 207.218.152.131. Apre
una connessione con quell'indirizzo IP (usando la porta 1025
sull'interfaccia esterna del firewall) e chiede al server web (porta 80) la
pagina Web.
3. Come il proxy riceve la pagina Web dalla sua connessione con il server
Web, copia i dati nella connessione del Netscape.
4. Netscape mostra la pagina.

Dal punto di vista di slashdot.org, la connessione è fatta dalla porta 1025 di


1.2.3.4 (l'interfaccia PPP del firewall) verso la porta 80 di 207.218.152.131
(slashdot.org). Dal punto di vista di myhost, è fatta dalla porta 1050 di
192.168.1.100 (myhost) verso la porta 8080 di 192.168.1.1 (l'intefaccia Ethernet
del firewall).

Rete privata: proxy tradizionale 252


Linux HOWTO − Networking − Sommario

Rete privata: proxy trasparente

In questo scenario i pacchetti dalla rete privata non traversano mai Internet e
viceversa. Gli indirizzi IP della rete privata dovranno essere assegnati secondo
le Private Network Allocations del RFC1597 (ie. 10.*.*.*, 172.16.*.* or
192.168.*.*).

Il solo modo nel quale ci si potrà mai connettere a Internet è di connettersi al


firewall, che è la sola macchina in entrambe le reti che può uscire dalla rete
locale. Per far questo si può eseguire un programma (nel firewall) detto proxy
trasparente; il kernel invia i pacchetti al proxy trasparente invece di mandarli
fuori (ie. imbastardisce l'instradamento).

Il proxy fatto in modo trasparente significa che ai client non serve sapere che c'è
un proxy coinvolto.

Qualsiasi servizio che si vuole sia accessibile da Internet deve essere nel
firewall (si veda anche Servizi interni limitati [*] nel seguito).

Esempio: permettere l'accesso Web dalla rete privata a Internet

1. Alla rete privata sono assegnati gli indirizzi 192.168.1.*, e in particolare


a myhost è assegnato il 192.168.1.100 e all'interfaccia Ethernet del
firewall il 192.168.1.1.
2. Nell firewall è installato un proxy Web trasparente (credo esistano delle
patch per squid per permettergli di funzionare in questo modo, oppure si
usi ``transproxy'') ed è in funzione sulla porta 8080.
3. Usando ipchains al kernel è detto di redirigere al proxy le connessioni
dirette alla porta 80.
4. Netscape nella rete privata è configurato per connettersi direttamente.
5. Nella rete privata dev'essere configurato il DNS (ovvero si deve
eseguire anche un server DNS oltre al proxy sul firewall).
6. Nella rete privata dev'essere configurato l'instradamento predefinito
(gateway), in modo da inviare i pacchetti al firewall.

Netscape su myhost legge http://slashdot.org.

1. Netscape cerca il nome ``slashdot.org'' e ottiene 207.218.152.131.


Allora apre una connessione verso quell'indirizzo IP usando la porta
locale 1050 e chiede la pagina Web al server Web (porta 80).
2. Come i pacchetti da myhost (porta 1050) verso slashdot.org (porta 80)
passano attraverso il firewall, sono rediretti al proxy trasparente in
attesa sulla porta 8080. Il proxy trasparente apre una connessione
(usando la porta locale 1025) verso la porta 80 di 207.218.152.131 (che
è dove stavano andando i pacchetti originali).
3. Come il proxy riceve la pagina Web dalla sua connessione con il server
web, copia i dati nella connessione del Netscape.
4. Netscape mostra la pagina.

Rete privata: proxy trasparente 253


Linux HOWTO − Networking − Sommario

Dal punto di vista di slashdot.org, la connessione è fatta dalla porta 1025 di


1.2.3.4 (l'interfaccia PPP del firewall) verso la porta 80 di 207.218.152.131
(slashdot.org). Dal punto di vista di myhost, è fatta dalla porta 1050 di
192.168.1.100 (myhost) verso la porta 80 di 207.218.152.131, ma in realtà sta
dialogando con il proxy trasparente.

Rete privata: masquerading

In questo scenario i pacchetti dalla rete privata non passano mai su Internet e
viceversa. Gli indirizzi IP della rete privata dovranno essere assegnati secondo
le Private Network Allocations del RFC1597 (cioè 10.*.*.*, 172.16.*.* o
192.168.*.*).

Invece di usare un proxy, usiamo una speciale caratteristica del kernel detta
``masquerading''. Il masquerading riscrive i pacchetti non appena passano per il
firewall, così sembra sempre che provengano dal firewall stesso. Poi riscrive le
risposte in modo che sembri provengano dalle fonti originali.

Il masquerading ha moduli separati per gestire protocolli ``banali'', come FTP,


RealAudio, Quake, ecc. Per protocolli veramenente difficili da gestire, la
funzione di ``auto forwarding'' (inoltro automatico) ne può gestire alcuni
automaticamente impostando il port forwarding per l'insieme delle porte a loro
relative: si veda ``ipportfw'' (kernel 2.0) o ``ipmasqadm'' (kernel 2.1).

Qualsiasi servizio che si vuole sia accessibile da Internet deve essere nel
firewall (si veda anche Servizi interni limitati [*] nel seguito).

Esempio: permettere l'accesso Web dalla rete privata a Internet

1. Alla rete privata sono assegnati gli indirizzi 192.168.1.*, e in particolare


a myhost è assegnato il 192.168.1.100 e all'interfaccia Ethernet del
firewall il 192.168.1.1.
2. Il firewall è impostato per ``mascherare'' qualsiasi pacchetto
proveniente dalla rete privata e destinato alla porta 80 di un host
Internet.
3. Netscape è configurato per connettersi direttamente.
4. Nella rete privata dev'essere configurato correttamente il DNS.
5. Il firewall dovrà essere l'instradamento predefinito (gateway) per la rete
privata.

Netscape su myhost legge http://slashdot.org.

1. Netscape cerca il nome ``slashdot.org'', e ottiene 207.218.152.131.


Allora apre una connessione verso quell'indirizzo IP usando la porta
locale 1050 e chiede la pagina Web al server Web (porta 80).
2. Come i pacchetti da myhost (porta 1050) verso slashdot.org (porta 80)
passano attraverso il firewall, sono riscritti per apparire provenienti
dall'interfaccia PPP del firewall (porta 65000). Il firewall ha un
indirizzo Internet valido (1.2.3.4) e quindi i pacchetti di risposta
provenienti da slashdot.org vengono correttamente instradati indietro.

Rete privata: masquerading 254


Linux HOWTO − Networking − Sommario

3. Come i pacchetti da slashdot.org (port 80) verso firewall.littlecorp.com


(porta 65000) arrivano, sono riscritti per andare alla porta 1050 di
myhost. Questa è la vera magia del masquerading: si ricorda quando
riscrive pacchetti uscenti e così può riscriverli non appena arrivano le
risposte.
4. Netscape mostra la pagina.

Dal punto di vista di slashdot.org, la connessione avviene dalla porta 65000 di


1.2.3.4 (l'interfaccia PPP del firewall) verso la porta 80 di 207.218.152.131
(slashdot.org). Dal punto di vista di myhost, la connessione è fatta dalla porta
1050 di 192.168.1.100 (myhost), verso la porta 80 di 207.218.152.131
(slashdot.org).

Rete pubblica

In questo scenario la propria rete personale è parte di Internet: i pacchetti


possono fluire senza modifiche tra le due reti. Gli indirizzi IP della rete interna
devono essere assegnati richiedendo un blocco di indirizzi IP, in modo che il
resto della rete sappia come raggiungerla. Ciò implica una connessione
permanente.

In tal caso, il filtraggio dei pacchetti è usato per decidere quali pacchetti
possono essere inoltrati tra la propria rete e il resto di Internet, per esempio, per
restringere il resto di Internet al solo accesso alla propri server Web interni.

Esempio: Permettere l'accesso web dalla rete privata verso Internet.

1. Alla propria rete interna è assegnato un blocco di indirizzi IP che si è


richiesto (diciamo 1.2.3.*).
2. Il firewall è impostato per permettere tutto il traffico.
3. Netscape è configurato per connettersi direttamente.
4. Nella propria rete dev'essere configurato il DNS.
5. Il firewall dovrà essere l'instradamento predefinito (gateway) per la rete
privata.

Netscape su myhost legge http://slashdot.org.

1. Netscape cerca il nome ``slashdot.org'' e ottiene 207.218.152.131. Apre


poi una connessione verso quel indirizzo IP usando la porta locale 1050
e chiede la pagina al server Web (porta 80).
2. I pacchetti passano attraverso il proprio firewall, proprio come passano
attraverso diversi altri router tra myhost e slashdot.org.
3. Netscape mostra la pagina.

C'è solo una connessione: dalla porta 1050 di 1.2.3.100 (myhost) verso la porta
80 di 207.218.152.131 (slashdot.org).

Rete pubblica 255


Linux HOWTO − Networking − Sommario

Servizi interni limitati

Ci sono un po' di trucchi che si possono usare per permettere a Internet di


accedere ai propri servizi interni, piuttosto che far girare i servizi sul firewall.
Funzioneranno solo con un approccio basato su proxy o masquerading per le
connessioni esterne.

L'approccio più semplice è di usare un ``dirottatore'' che non è altro che un


proxy dei poveri, che attenende la connessione su una data porta e poi apre una
connessione a una porta fissa di un host interno copiando i dati tra le due
connessioni. Un esempio è il programma ``redir''. Dal punto di vista di Internet,
la connessione è fatta verso firewall. Dal punto di vista del server interno la
connessione è fatta dall'interfaccia interna del firewall al server.

Un altro approccio (che richiede un kernel 2.0 con la patch per ipportfw, oppure
un kernel 2.1 o più recente) è di usare il port forwarding del kernel.
Quest'ultimo fa lo stesso lavoro di ``redir'' ma in modo diverso: il kernel riscrive
i pacchetti mentre passano, cambiando il loro indirizzo di destinazione e la porta
per indirizzarli verso l'host interno e la relativa porta. Dal punto di vista di
Internet, la connessione è fatta verso il firewall. Dal punto di vista del server
interno è fatta una connessione diretta tra l'host Internet e il server.

Ulteriori informazioni sul masquerading


David Ranch ha scritto un eccellente nuovo HOWTO sul masquerading, che ha
parecchi argomenti in comune con questo HOWTO. Attualmente lo si può
trovare a
http://www.ecst.csuchico.edu/~dranch/LINUX/index−LINUX.html#ipmasq

Presto mi aspetterei di trovarlo sotto il patrocinio del Linux Documentation


Project, a http://www.metalab.unc.edu/LDPhttp://www.metalab.unc.edu/LDP.

L'home page ufficiale del Masquerading è a


http://ipmasq.cjb.nethttp://ipmasq.cjb.net

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Servizi interni limitati 256


Glossario IP Firewall Chains
Linux−FAQ Questa sezione descrive tutto quello che bisogna veramente sapere per costruire un
pacchetti che incontri le proprie esigenze.
Documenti:

Open Source Definition Come passano i pacchetti attraverso i filtri


GNU General Public License
Il kernel parte con tre elenchi di regole; questi elenchi sono detti firewall chains (ca
La cattedrale e il bazaar
firewall) o semplicemente chains (catene). Le tre catene predefinite sono chiamate
Colonizzare la noosfera rispettivamente input (ingresso), output (uscita) e forward (inoltro). Quando arriva
pacchetto (supponiamo, attraverso la scheda Ethernet) il kernel usa la catena input
Il calderone magico
decidere il suo destino. Se sopravvive a quel passo, allora il kernel decide dove man
Libri: sucessivamente il pacchetto (ciò è detto routing (intradamento)). Se è destinato a un
macchina, consulta la catena forward. Alla fine, appena prima che il pacchetto es
Italian crackdown consulta la catena output.
Open Sources
Una catena è una lista di regole. Ogni regola dice «se l'intestazione del pacchetto è
MediaMorfosi allora questo è quello che si deve fare con il pacchetto». Se il pacchetto non soddisf
GTK+/GNOME una regola, allora viene consultata la successiva regola nella catena. Alla fine, se no
sviluppo applicazioni altre regole da consultare, il kernel guarda la policy (tattica) della catena per decide
Linux HOWTO: Installazione e configurazione
In un sistema conscio delle problematiche di sicurezza, questa tattica dice al kernel
proibire il pacchetto.
Risorse
Per gli amanti dell'arte ASCII, la figura riportata nella pagina accanto mostra il perc
Feedback completo di un pacchetto entrante in una macchina. Nel paragrafo che segue è ripor
descrizione di ogni stadio.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| ACCEPT/ lo interf
v REDIRECT _______
−−> C −−> S −−> ______ −−> D −−> ~~~~~~~~ −−>|forward|−−−−> _______
h a |input | e {Routing } |Chain | |output
e n |Chain | m {Decision} |_______| −−−>|Chain
c i |______| a ~~~~~~~~ | | −>|_______
k t | s | | | | |
s y | q | v | | |
u | v e v DENY/ | | v
m | DENY/ r Local Process REJECT | | DENY/
| v REJECT a | | | REJECT
| DENY d −−−−−−−−−−−−−−−−−−−−− |
v e −−−−−−−−−−−−−−−−−−−−−−−−−−−−−
DENY

Checksum
Questo è il test per verificare che il pacchetto non sia in qualche modo corro
è rifiutato.

Sanity
In realtà c'è una verifica di integrità del pacchetto prima di ogni catena firew
quello della catena input è il più importante. Alcuni pacchetti malformati po
confondere il codice per il controllo delle regole, e quindi sono qui rifiutati

IP Firewall Chains 257


Linux HOWTO − Networking − Sommario

avviene è stampato un messaggio nel syslog).

input chain
È la prima catena firewall contro la quale viene testato il pacchetto. Se il ve
catena non è DENY o REJECT, il pacchetto prosegue.

Demasquerade
Se il pacchetto è una risposta (reply) a un precedente pacchetto ``mascherat
``demascherato'' e passa direttamente alla catena output. Se non si usa L'I
Masquerading si cancelli questo percorso dal diagramma.

Routing decision
Il codice di instradamento esamina il campo di destinazione per decidere se
pacchetto deve andare a un processo locale (si veda Local process qui sotto
a una macchina remota (si veda forward chain più avanti)

Local process
Un processo in esecuzione sulla macchina può ricevere pacchetti dopo il pa
Routing Decision, e può inviare pacchetti (che passano per il passo Routing
poi attraversano la catena output).

lo interface
Se i pacchetti provenienti da un processo locale sono destinati a un processo
attraverseranno la catena output con il campo interfaccia impostato a `lo', e
ritorneranno attraverso la catena input sempre con interfaccia impostato a `l
L'interfaccia lo è solitamente chiamata interfaccia loopback.

local
Se il pacchetto non era stato creato da un processo locale, allora viene esam
catena forward, altrimenti il pacchetto va verso la catena output.

forward chain
Questa catena è attraversata da qualsiasi pacchetto che provi a passare attrav
macchina per andare verso un'altra.

output chain
Questa catena è attraversata da qualsiasi pacchetto un attimo prima di essere
fuori.

Usare ipchains

Per prima cosa si controlli di avere la versione di ipchains a cui fa riferimento quest
documento:

$ ipchains −−version
ipchains 1.3.9, 17−Mar−1999

Si noti che io raccomando la 1.3.4 (che non ha le opzioni lunghe, come `−sport'), o l
superiori; queste sono molto stabili.

Usare ipchains 258


Linux HOWTO − Networking − Sommario

ipchains ha una pagina man piuttosto dettagliata (man ipchains), e se servono u


dettagli o particolari, si può dare un'occhiata all'interfaccia di programmazione (man
oppure al file net/ipv4/ip_fw.c nei sorgenti dei kernel 2.1.x, che sono (ovvia
fonti più autorevoli.

Nel pacchetto sorgente c'è pure una eccellente scheda di riferimento rapido di Scott
PostScript(TM) sia in formato A4 che US Letter.

Ci sono parecchie cose diverse che si possono fare con ipchains. Per prima cosa
operazione per gestire intere catene. Si parte con tre catene predefinite input, out
forward che non possono essere cancellate.

1. Creare una nuova catena (−N).


2. Cancellare una catena vuota (−X).
3. Cambiare la tattica per una catena predefinita (−P).
4. Elencare le regole in una catena (−L).
5. Svuotare una catena delle sue regole (−F).
6. Azzerare i contatori di pacchetti e byte per tutte le regole in una catena (−Z)

Ci sono diversi modi per manipolare le regole in una catena:

1. Aggiungere una nuova regola a una catena (−A).


2. Inserire in una posizione specifica una nuova regola in una catena (−I).
3. Rimpiazzare una regola in una qualche posizione in una catena (−R).
4. Cancellare da una posizione specifica una regola da una catena (−D).
5. Cancellare da una catena la prima regola corrispondente (−D).

Ci sono alcune operazioni per il masquerading che, in mancanza di un posto miglior


metterle, sono in ipchains:

1. Elenca le connessioni attualmente mascherate (−M −L).


2. Imposta i valori di timeout del masquerading (−M −S) (si veda anche Non p
impostare i timeout del masquerading! [*]).

La funzione finale (e forse la più utile) permette di controllare cosa succederebbe a


pacchetto se volesse passare attraverso una data catena.

Operazioni su una sola regola

Questa è la ragione di sussistenza di ipchains: la manipolazione delle regole. Molto


probabilmente si useranno i commandi di aggiunta (−A) e cancellazione (−D). Gli a
l'inserimento e −R per il rimpiazzo) sono semplici estensioni di questi concetti.

Ogni regola specifica un insieme di condizioni che il pacchetto deve soddisfare, e co


pacchetto le soddisfa (un ``obiettivo''). Per esempio, si possono voler proibire tutti i
ICMP provenienti dall'indirizzo 127.0.0.1. Quindi in questo caso le nostre condizion
protocollo deve essere ICMP e che l'indirizzo di provenienza deve essere 127.0.0.1.
obiettivo è `DENY'.

Operazioni su una sola regola 259


Linux HOWTO − Networking − Sommario

127.0.0.1 è l'interfaccia `loopback', presente anche se non si possiede una vera conn
rete. Si può usare il programma `ping' per generare tali pacchetti (semplicemente inv
pacchetto ICMP di tipo 8 (echo request) al quale tutti gli host cooperativi dovrebber
obbligatoriamente con un pacchetto ICMP di tipo 0 (echo reply)). Ciò lo rende molt
test.

# ping −c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms

−−− 127.0.0.1 ping statistics −−−


1 packets transmitted, 1 packets received, 0% packet loss
round−trip min/avg/max = 0.2/0.2/0.2 ms
# ipchains −A input −s 127.0.0.1 −p icmp −j DENY
# ping −c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes

−−− 127.0.0.1 ping statistics −−−


1 packets transmitted, 0 packets received, 100% packet loss
#

Si può vedere che il primo ping ha successo (il `−c 1' dice a ping di inviare un solo p

Poi si è aggiunta alla catena `input' una regola che specifica che per i pacchetti prov
127.0.0.1 (`−s 127.0.0.1') con protocollo ICMP (`−p ICMP') si dovrà saltare a DENY
DENY').

Poi si è verificata la nostra regola, usando un secondo ping. Ci sarà una pausa prima
programma si stanchi di aspettare una risposta che non arriverà mai.

Si può cancellare la regola in due modi. Per prima cosa, poiché sappiamo che è la so
nella catena input, possiamo usare la cancellazione in base alla posizione, come in

# ipchains −D input 1
#

per cancellare la regola numero 1 nella catena input.

Il secondo modo è di ricopiare il comando −A precedente, sostituendo −A con −D. C


quando si ha una complessa catena di regole e non si vuole star lì a contarle per scop
quella che si vuole cancellare è la 37−esima. In tal caso useremo:

# ipchains −D input −s 127.0.0.1 −p icmp −j DENY


#

La sintassi di −D deve avere esattamente le stesse opzioni del comando −A (o −I op


ci sono molte regole identiche nella stessa catena, viene cancellata solo la prima.

Specificare il filtraggio

Si è visto l'uso di `−p' per specificare il protocollo e di `−s' per specificare l'indirizzo
provenienza, ma ci sono altre opzioni che si possono usare per specificare le caratte
pacchetto. Quel che segue è un compendio esaustivo.

Specificare il filtraggio 260


Linux HOWTO − Networking − Sommario

Specificare gli indirizzi di provenienza e destinazione

Gli indirizzi IP di provenienza (−s) e destinazione (−d) possono essere specificati in


modi. Il modo più comune è di usare il nome completo, come `localhost' o `www.lin
Il secondo modo è di specificare l'indirizzo IP, come ad esempio `127.0.0.1'.

Il terzo e il quarto modo permettono di specificare un gruppo di indirizzi IP, come a


`199.95.207.0/24' o `199.95.207.0/255.255.255.0'. Entrambi specificano un qualsias
IP tra 192.95.207.0 e 192.95.207.255 estremi inclusi; le cifre dopo `/' dicono quali p
dell'indirizzo IP sono significative. I valori predefiniti sono `/32' o `/255.255.255.25
(corrispondenti a tutti gli indirizzi IP). Per specificare nessun indirizzo IP può essere
come segue:

# ipchains −A input −s 0/0 −j DENY


#

Questa cosa è raramente usata, in quanto il suo effetto è lo stesso che non specificar
l'opzione `−s'.

Specificare una negazione

Molte opzioni, tra le quali `−s' e `−d', possono avere gli argomenti preceduti da `!' (p
`not') per effettuare la corrispondenza con indirizzi NON uguali a quelli dati. Per es
localhost' corrisponde a qualsiasi pacchetto non proveniente da localhost.

Specificare un protocollo

Il protocollo può essere specificato con l'opzione `−p'. Il protocollo può essere un nu
conoscono i valori numeri dei protocolli IP) o un nome per i casi speciali di `TCP', `
`ICMP'. Non è importante come è scritto: vanno bene sia `tcp' che `TCP'.

I nomi dei protocolli possono essere preceduti da un `!' per negarli, con ad esempio

Specificare porte UDP e TCP

Nei casi particolari nei quali è specificato TCP o UDP come protocollo, ci può esser
argomento aggiuntivo che indica la porta TCP e UDP, oppure un intervallo (inclusiv
(si veda anche Non posso impostare i timeout del masquerading! [*] nel seguito). U
è rappresentato usando un carattere `:', come ad esempio `6000:6010', che copre 11
porte da 6000 a 6010 estremi compresi. Se è omesso il margine inferiore, il valore p
0. Se è omesso quello superiore, il suo valore predefinito è 65535. Quindi per specif
connessioni TCP provenienti da porte inferiori alla 1024, la sintassi potrebbe essere
0.0.0.0/0 :1023'. I numeri di porta possono essere specificati anche attraverso il nom
`www'.

Si noti che la specificazione può essere preceduta da un `!', che la nega. Quindi per
qualsiasi pacchetto TCP TRANNE i pacchetti WWW, si potrebbe specificare

−p TCP −d 0.0.0.0/0 ! www

È importante realizzare che la specifica

Specificare il filtraggio 261


Linux HOWTO − Networking − Sommario

−p TCP −d ! 192.168.1.1 www

è molto diversa da

−p TCP −d 192.168.1.1 ! www

La prima specifica qualsiasi pacchetto TCP verso la porta WWW su qualsiasi macc
la 192.168.1.1. La seconda specifica qualsiasi connessione TCP verso qualsiasi port
192.168.1.1 tranne la porta WWW.

Per finire, questo caso indica né la porta WWW e nemmeno 192.168.1.1:

−p TCP −d ! 192.168.1.1 ! www

Specificare tipo e codice ICMP

Anche ICMP permette argomenti opzionali, ma poiché ICMP non ha le porte (ICMP
e un codice) hanno un significato diverso.

Possono essere specificati come nomi ICMP (si usi ipchains −h icmp per la li
dopo l'opzione `−s', oppure come tipo e codice ICMP numerici, dove il tipo segue l'
e il codice segue l'opzione `−d'.

I nomi ICMP sono piuttosto lunghi: basta usare solamente abbastanza lettere da ren
distinguibile da ogni altro.

Di seguito una piccola tabella dei più comuni pacchetti ICMP:

Numero Nome Richiesto da

0 echo−reply ping
3 destination−unreachable qualsiasi traffico TCP/UDP.
5 redirect per l'instradamento, se non sta
girando il demone di instradamento
8 echo−request ping
11 time−exceeded traceroute

Si noti che i nomi ICMP al momento non possono essere preceduti da `!'.

NON NON NON si blocchino tutti i messaggi ICMP di tipo 3! (si veda Pacchetti IC
avanti).

Specificare un'interfaccia

L'opzione `−i' specifica il nome di un interfaccia. Un'interfaccia è il dispositivo fisi


entra o esce il pacchetto. Si può usare il comando ifconfig per avere un elenco d
interfacce che al momento sono `sù' (al momento funzionano).

L'interfaccia per i pacchetti in arrivo (i pacchetti che stanno attraversando la catena


considerata essere l'interfaccia dalla quale entrano. Logicamente, l'interfaccia per i p
partenza (i pacchetti che stanno attraversando la catena output) è l'interfaccia dall
usciranno. Anche l'interfaccia per i pacchetti che passano per la catena forward è

Specificare il filtraggio 262


Linux HOWTO − Networking − Sommario

dalla quale usciranno; a me sembra una decisione piuttosto arbitraria.

È perfettamente lecito specificare un'interfaccia che al momento non esiste; la regol


mai soddisfatta finché l'interfaccia non viene attivata. Ciò è estremamente utile per l
connessioni PPP in dial−up (solitamente l'interfaccia ppp0) e simili.

Come caso speciale, un nome di intefaccia che termina con un `+' corrisponderà a tu
interfacce (che esistano o meno) che iniziano con quella stringa. Per esempio, per sp
una regola che corrisponda a tutte le interfacce PPP, può essere usata l'opzione −i

Il nome dell'interfaccia può essere preceduto da un `!' per far sì che sia soddisfatta d
interfacce che NON corrispondono all'interfaccia (o alle interfacce) specificata.

Specificare solo pacchetti TCP SYN

Talvolta è utile permettere connessioni TCP in una direzione, ma non nell'altra. Per
può voler permettere connessioni verso un server WWW esterno ma non le conness
server.

L'approccio ingenuo sarebbe quello di bloccare i pacchetti TCP provenienti da serve


Sfortunantamente, le connessioni TCP richiedono per funzionare che i pacchetti pos
in entrambe le direzioni.

La soluzione è di bloccare solo i pacchetti usati per richiedere una connessione. Que
sono chiamati pacchetti SYN (ok, tecnicamente sono pacchetti con il flag SYN imp
campi FIN e ACK non attivati, ma li chiameremo lo stesso pacchetti SYN). Non pe
solamente questi pacchetti, si possono fermare i tentativi di connessione.

Per questo viene usata l'opzione `−y': è valida solamente per regole che specificano
loro protocollo. Per esempio, per specificare un tentativo di connessione TCP da 19

−p TCP −s 192.168.1.1 −y

Ancora una volta, questa opzione può essere negata precedendola con un `!' che sign
pacchetti tranni quelli per iniziare la connessione.

Gestire i frammenti

Qualche volta un pacchetto è troppo grande per starci tutto intero in un filo. Quando
succede, il pacchetto è diviso in frammenti (fragments), e inviato come pacchetti m
L'altro capo della connessione riassembla i frammenti per ricostruire il pacchetto int

Il problema con i frammenti è che alcune delle specificazioni suddette (in particolar
d'origine, porta di destinazione, tipo ICMP, codice ICMP o flag SYN TCP) richiedo
kernel sbirci nella parte iniziale del pacchetto, che è contenuta solo nel primo framm

Se la propria macchina è la sola connessione a una rete esterna, allora si può dire al
riassemblare tutti i frammenti che gli passano attraverso, compilando il kernel con l
IP: always defragment posta a `Y'. Ciò risolve il problema in maniera pulit

Specificare il filtraggio 263


Linux HOWTO − Networking − Sommario

Diversamente, è importante capire come sono trattati i frammenti dalle regole di filt
Qualsiasi regola di filtraggio che chieda informazioni che non si hanno non verrà so
Ciò significa che il primo frammento è trattato come qualsiasi altro pacchetto. Non
invece il secondo e i successivi frammenti. Quindi una regola −p TCP −s 192.1
www (che specifica una porta d'origine `www') non sarà mai soddisfatta da un framm
(tranne il primo). E neppure la regola opposta −p TCP −s 192.168.1.1 ! w

Comunque, si può specificare una regola specifica per il secondo e i successivi fram
usando l'opzione `−f'. Ovviamente in questa regola per i frammenti è illegale specifi
porta TCP o UDP, un tipo o un codice ICMP oppure l'opzione per il SYN TCP.

È pure legale specificare che una regola non si applica al secondo e ai successivi fra
facendo precedere `−f' da `!'.

Solitamente è considerata una cosa sicura lasciar passare il secondo e i successi fram
poiché il filtraggio avrà effetto sul primo frammento e quindi impedirà la ricostruzio
di destinazione. Comunque, sono noti alcuni bug che permettono il crash di macchin
semplicemente inviandogli frammenti.

Una nota per i capoccioni della rete: i pacchetti malformati (pacchetti TCP, UDP o I
troppo corti affinché il codice di firewalling possa leggere le porte o il codice e tipo
trattati come frammenti. Solo i frammenti TCP che iniziano alla posizione 8 sono es
scartati dal codice di firewall (dovrebbe apparire un messaggio nel syslog se succed

Come esempio, la regola seguente scarterà qualsiasi frammento diretto a 192.168.1.

# ipchains −A output −f −d 192.168.1.1 −j DENY


#

Effetti collaterali del filtraggio

OK, quindi ora si conoscono tutti i modi con i quali si può creare una regola che cor
un pacchetto. Se un pacchetto soddisfa una regola, succedono le seguenti cose:

1. Il contatore di byte per quella regola è incrementato della dimensione del pa


(intestazione e tutto il resto).
2. È incrementato il contatore di pacchetti per quella regola.
3. Se la regola lo richiede, il pacchetto è registrato.
4. Se la regola lo richiede, è cambiato il campo Type Of Service del pacchetto
5. Se la regola lo richiede, il pacchetto è marcato (non nei kernel della serie 2.
6. È esaminata la regola obiettivo per decidere cosa fare dopo al pacchetto.

Per varietà, le esaminerò in ordine di importanza.

Specificare un obiettivo

Un obiettivo dice al kernel cosa farne di un pacchetto che soddisfa una regola. ipch
(penso `jump−to' − salta a) per la specifica dell'obiettivo. Il nome dell'obiettivo deve
corto di 8 caratteri, ed è importante come è scritto: ``RETURN'' e ``return'' sono com
diversi.

Effetti collaterali del filtraggio 264


Linux HOWTO − Networking − Sommario

Il caso più semplice è quando non è specificato alcun obiettivo. Questo tipo di regol
detta regola di `accounting' − contabilità) è utile con contare semplicemente un certo
pacchetto. Che questa regola sia o meno soddisfatta, semplicemente il kernel esamin
successiva nella catena. Per esempio, per contare il numero di pacchetti da 192.168.
fare così:

# ipchains −A input −s 192.168.1.1


#

(Usando `ipchains −L −v' si possono vedere i contatori di byte e pacchetti associati


regola).

Esistono sei obiettivi speciali. I primi tre, ACCEPT, REJECT e DENY sono piuttosto
ACCEPT permette che il pacchetto passi. DENY scarta il pacchetto come non fosse m
ricevuto. REJECT scarta il pacchetto, ma (se non è un pacchetto ICMP) genera una
ICMP per la sorgente per dirle che la destinazione non è raggiungibile.

Quella dopo, MASQ dice al kernel di mascherare il pacchetto. Affinché ciò funzioni,
kernel dev'essere compilato con il supporto per l'IP Masquerading. Per i dettagli si v
Masquerading−HOWTO e l'appendice [*] (Differenze tra ipchains e ipfwadm). Que
è valido solo per pacchetti che attraversano la catena forward.

L'altro obiettivo principale è REDIRECT che dice al kernel di inviare un pacchetto a


locale anziché alla sua destinazione. Può essere specificato solo per regole che spec
o UDP come loro protocolli. Facoltativamente, può essere specificata una porta (nom
numero) dopo `−j REDIRECT' che farà sì che quel pacchetto sia dirottato a quella p
porta anche se era indirizzato ad un'altra porta. Questo obiettivo è valido solo per pa
attraversano la catena input.

L'obiettivo finale speciale è RETURN che è identico all'uscita immediata dalla caten
Impostare la tattica [*] nel seguito).

Qualsiasi altro obiettivo indica una catena definita dall'utente (come descritto in Op
intere catene [*] nel seguito). Il pacchetto inizierà ad attraversare le regole in quella
quella catena non decide il destino del pacchetto, allora, una volta che è terminata la
della catena, si riprende dalla regola successiva nella catena corrente.

È ora di un altro po' di arte ASCII. Si considerino due catene (sciocche): input (la
predefinita) e Test (una catena definita dall'utente).

`input' `Test'
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−−−−−−−−−−−−−−
| Regola1: −p ICMP −j REJECT | | Regola1: −s 192.168.1.1
|−−−−−−−−−−−−−−−−−−−−−−−−−−−−| |−−−−−−−−−−−−−−−−−−−−−−−−−−
| Regola2: −p TCP −j Test | | Regola2: −d 192.168.1.1
|−−−−−−−−−−−−−−−−−−−−−−−−−−−−| −−−−−−−−−−−−−−−−−−−−−−−−−−−
| Regola3: −p UDP −j DENY |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Si consideri un pacchetto TCP proveniente da 192.168.1.1 e destinato a 1.2.3.4. Ent


catena input e viene controllato rispetto a Regola1: non la soddisfa. Soddisfa inve
il cui obiettivo è Test. Quindi la successiva regola a essere esaminata è la prima di

Effetti collaterali del filtraggio 265


Linux HOWTO − Networking − Sommario

Regola1 in Test è soddisfatta ma non specifica un obiettivo, quindi Regola2 è la p


essere esaminata. Questa non è soddisfatta e si è così raggiunta la fine delle catena.
ritorna alla catena input, dove si è appena esaminata Regola2 e quindi ora si esam
Regola3, che non viene soddisfatta.

Quindi il percorso del pacchetto è:

v ___________________________
`input' | / `Test' v
−−−−−−−−−−−−−−−−−−−−−−−−−−|−−/ −−−−−−−−−−−−−−−−−−−−−−−−−|−
| Regola1 | /| | Regola1 |
|−−−−−−−−−−−−−−−−−−−−−−−−−|/−| |−−−−−−−−−−−−−−−−−−−−−−−−|−
| Regola2 / | | Regola2 |
|−−−−−−−−−−−−−−−−−−−−−−−−−−−−| −−−−−−−−−−−−−−−−−−−−−−−−−v−
| Regola3 /−−+___________________________/
−−−−−−−−−−−−−−−−−−−−−−−−−−|−−−
v

Si veda la sezione [*] (Come organizzare le proprie regole di firewall) per alcuni me
usare efficacemente le catene definite dall'utente.

Registrazione dei pacchetti

Questo è un effetto collaterale che può avere una regola che viene soddisfatta: usand
`−l' si può far sì che il pacchetto che la soddisfa sia registrato. Solitamente questa co
vuole per i pacchetti di routine, ma è una caratteristica utile se si vogliono cercare e
eccezionali.

Il kernel registra questa informazione come segue:

Packet log: input DENY eth0 PROTO=17 192.168.2.1:53 192.168.1.1:102


L=34 S=0x00 I=18 F=0x0000 T=254

Questo messaggio di registrazione è pensato per essere conciso e contiene informaz


utili solo ai guru del networking, ma può essere utile anche al resto di noi. Si suddiv

1. `input' è la catena che contiene la regola soddisfatta dal pacchetto, che ha ca


messaggio di log.
2. `DENY' è quanto la regola dice di fare del pacchetto. Se è `−' allora la regol
effetto sul pacchetto (una regola di accounting).
3. `eth0' è il nome dell'interfaccia. Poiché la catena era la input, indica che il p
entrato da `eth0'.
4. `PROTO=17' indica che il pacchetto era con protocollo 17. Un elenco dei p
dato in `/etc/protocols'. I più comuni sono 1 (ICMP), 6 (TCP) e 17 (UDP).
5. `192.168.2.1' indica che l'indirizzo IP di provenienza era 192.168.2.1.
6. `:53' indica che porta di provenienza era la porta 53. Cercando in `/etc/servi
che questa è la porta `domain' (probabilmente è una risposta DNS). Per UD
questo numero è la porta di provenienza. Per ICMP, è il tipo ICMP. Per gli
65535.
7. `192.168.1.1' è l'indirizzo IP di destinazione.
8. `:1025' indica che la porta di destinazione era la 1025. Per UDP e TCP ques
la porta di destinazione. Per ICMP è il codice ICMP. Per gli altri, sarà 6553

Effetti collaterali del filtraggio 266


Linux HOWTO − Networking − Sommario

9. `L=34' indica che il pacchetto era lungo 34 byte.


10. `S=0x00' indica il campo Type of Service (lo si divida per 4 per ottenere il T
Service usato da ipchains).
11. `I=18' è l'ID IP.
12. `F=0x0000' è l'offset a 16 bit del frammento più i flag. Un valore che comin
o `0x5' indica che il bit `Don't Fragment' è impostato. `0x2' or `0x3' indican
impostato il bit `More Fragments'; sono da aspettarsi altri frammenti dopo d
resto del numero è l'offset, diviso per 8, di questo frammento.
13. `T=254' è il `Time To Live' (tempo di vita) del pacchetto. È diminuito di un
hop, e solitamente parte a 15 o 255.
14. `(#5)' ci può essere un numero finale tra parentesi nei kernel più recenti (for
2.2.9). È il numero della regola che ha causato la registrazione del pacchetto

Nei sistema Linux standard, questo output del kernel è catturato da klogd (il demon
registrazione del kernel) che lo passa poi al syslogd (il demone di registrazione di si
file `/etc/syslog.conf' controlla il comportamento di syslogd, specificando una destin
ogni `facility' (nel nostro caso la facility è ``kernel'') e `livello' (per ipchains, il livell
``info'').

Per esempio, il mio /etc/syslog.conf (Debian) contiene due righe corrispondenti a `k

kern.* −/var/log/kern.log
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none −/var/log/messages

Indica che i messaggi sono duplicati in `/var/log/kern.log' e in `/var/log/messages'. P


dettagli, si veda `man syslog.conf'.

Manipolare il `Type of Service'

Nell'intestazione IP ci sono quattro bit raramente usati, detti bit Type of Service (TO
servizio). Influenzano il modo in cui sono trattati i pacchetti; i quattro bit sono ``Mi
Delay'' (ritardo minimo), ``Maximum Throughput'' (massima velocità di trasmission
``Maximum Reliability'' (massima affidabilità) e ``Minimum Cost'' (minimo costo).
di questi bit è permesso di essere impostato. Rob van Nieuwkerk, l'autore del codice
``maltrattamento'' TOS, ne parla in questi termini:

Per me è importante specialmente il ``Minimum Delay''. L'ho attivato per i


pacchetti ``interattivi'' nel mio router (Linux) a monte. Io sono dietro una
connessione modem a 33k6. Linux assegna priorità ai pacchetti in 3 code. I
questo modo ottengo accettabili prestazioni interattive mentre faccio dei me
download (potrebbe andare ancora meglio se non ci fosse una coda così gra
nel driver della seriale, ma ora la latenza è mantenuta sotto gli 1.5 secondi).

Nota: ovviamente, non si ha controllo sui pacchetti in arrivo; si può controllare la pr


solamente dei pacchetti che lasciano la propria macchina. Per negoziare le priorità c
capo della connessione, deve essere usato un protocollo tipo RSVP (non so niente in
quindi non chiedete a me).

Effetti collaterali del filtraggio 267


Linux HOWTO − Networking − Sommario

L'uso più comune è di impostare le connessioni di controllo di telnet e ftp a ``Minim


e quelle dati FTP a ``Maximum Throughput''. Ciò può essere fatto come segue:

ipchains −A output −p tcp −d 0.0.0.0/0 telnet −t 0x01 0x10


ipchains −A output −p tcp −d 0.0.0.0/0 ftp −t 0x01 0x10
ipchains −A output −p tcp −s 0.0.0.0/0 ftp−data −t 0x01 0x08

L'opzione `−t' accetta altri due parametri aggiuntivi, entrambi in esadecimale. Quest
permettono di far giochetti complessi con i bit TOS: con la prima maschera è fatto l
TOS correnti del pacchetto, e poi del risultato viene fatto lo XOR con la seconda. Se
confuso, allora si usi semplicemente la tabella seguente:

Nome del TOS Valore Uso Tipico

Minimum Delay 0x01 0x10 ftp, telnet


Maximum Throughput 0x01 0x08 ftp−data
Maximum Reliability 0x01 0x04 snmp
Minimum Cost 0x01 0x02 nntp

Andi Kleen puntualizza quanto segue:

Forse potrebbe essere utile aggiungere riferimenti al paramentro txqueuelen


ifconfig alla discussione dei bit TOS. La lunghezza predefinita della coda d
dispositivo, regolata per le schede ethernet, per i modem è troppo lunga e fa
che lo schedulatore a 3 bande (le cui code sono basate sui TOS) funzioni in
maniera meno che ottimale. È una buona idea impostarla a un valore tra 4 e
per le connessioni via modem o ISDN a canale b singolo. Questo è un probl
dei kernel 2.0 e 2.1, ma mentre nei 2.1 esiste un'opzione di ifconfig (nei
nettools recenti), nei 2.0 è necessaria una patch ai sorgenti dei device driver

Quindi, per vedere i massimi benefici dalla manipolazione dei TOS nella connessio
modem, si usi `ifconfig $1 txqueuelen' nel proprio script /etc/ppp/ip−up. Il numero d
dipende dalla velocità del modem e dalla dimesione del buffer nel modem; Andi ci
ancora la direzione da seguire:

Il miglior valore per una data configurazione si determina sperimentalmente


la coda è troppo corta in un router allora saranno scartati i pacchetti.
Naturalmente si traggono benefici anche senza la riscrittura dei TOS, solo c
la riscrittura dei TOS aiuta a dare beneficio ai programmi non cooperativi (t
i programmi standard di Linux sono cooperativi).

Marcare un pacchetto

Ciò permette una complessa e potente iterazione con la nuova implementazione di `


Service' di Alexey Kuznetsov e con il forwading basato sulla marcatura degli ultimi
serie 2.1. Darò maggiori informazioni non appena ne verrò in possesso. Questa opzi
ignorata nei kernel della serie 2.0.

Operazioni su un'intera catena

Una caratteristica molto utile di ipchains è la possibilità di raggruppare regole colleg


catene. Si possono chiamare le catene come si vuole a meno che il nome non sia in

Effetti collaterali del filtraggio 268


Linux HOWTO − Networking − Sommario

le catene (input, output e forward) o gli obiettivi (MASQ, REDIRECT, ACCE


REJECT o RETURN) predefiniti. Suggerisco di evitare in toto l'uso di etichette in m
quanto le potrei usare per estensioni future. Il nome della catena può essere lungo fi
caratteri.

Creare una nuova catena

Suvvia creiamo una nuova catena! Poiché sono un tipo con un sacco di immaginazio
chiamerò test.

# ipchains −N test
#

Tutto qua. Ora le si possono mettere dentro le regole come spiegato in precedenza.

Cancellare una catena

Anche cancellare una catena è semplice.

# ipchains −X test
#

Perché `−X'? Beh, tutte le altre lettere buone erano già occupate.

Ci sono un paio di restrizioni sulla cancellazione di una catena: deve essere vuota (s
Operazione con intere catene [*] nel seguito) e non deve essere l'obiettivo di nessun
Non è possibile cancellare nessuna delle tre catene predefinite.

Svuotare una catena

C'è un modo semplice per svuotare una catena di tutte le regole, usando il comando

# ipchains −F forward
#

Se non si specifica una catena, allora saranno svuotate tutte le catene.

Elencare le regole in una catena

Si possono elencare tutte le regole in una catena usando il comando `−L' (list).

# ipchains −L input
Chain input (refcnt = 1): (policy ACCEPT)
target prot opt source destination por
ACCEPT icmp −−−−− anywhere anywhere any
# ipchains −L test
Chain test (refcnt = 0):
target prot opt source destination por
DENY icmp −−−−− localnet/24 anywhere any
#

Il valore di `refcmt' mostrato per test è il numero di regole che hanno test come
obiettivo. Deve essere zero (e la catena essere vuota) prima che si possa cancellarla.

Effetti collaterali del filtraggio 269


Linux HOWTO − Networking − Sommario

Se è omesso il nome della catena, sono elencate tutte le catene, anche quelle vuote.

Ci sono tre opzioni che possono accompagnare `−L'. L'opzione `−n' (numeric) è mo
quanto previene ipchains dal tentativo di ricercare gli indirizzi IP, che (se si usa
come fanno molti) causerà parecchio ritardo se il proprio DNS non è configurato co
o si sono filtrate tutte le richieste DNS. Inoltre fa sì che le porte siano mostrate com
piuttosto che con i loro nomi.

L'opzione `−v' mostra tutti i dettagli delle regole, come i contatori di pacchetti e byt
maschere TOS, l'interfaccia e la marcatura dei pacchetti. Diversamente questi valori
omessi. Per esempio:

# ipchains −v −L input
Chain input (refcnt = 1): (policy ACCEPT)
pkts bytes target prot opt tosa tosx ifname mark
10 840 ACCEPT icmp −−−−− 0xFF 0x00 lo

source destination ports


anywhere anywhere any

Si noti che i contatori di pacchetti e byte sono mostrati usando i suffissi `K', `M' o `G
rispettivamente per 1000, 1000000 e 1000000000. Usando l'opzione `−x' (espandi i
verranno mostrati i numeri interi, senza preoccuparsi di quanto grandi siano.

Azzerare i contatori

È utile poter azzerare i contatori. Ciò può essere fatto con l'opzione `−Z' (zero count
esempio:

# ipchains −v −L input
Chain input (refcnt = 1): (policy ACCEPT)
pkts bytes target prot opt tosa tosx ifname mark
10 840 ACCEPT icmp −−−−− 0xFF 0x00 lo
source destination ports
anywhere anywhere any
# ipchains −Z input
# ipchains −v −L input
Chain input (refcnt = 1): (policy ACCEPT)
pkts bytes target prot opt tosa tosx ifname mark
0 0 ACCEPT icmp −−−−− 0xFF 0x00 lo
source destination ports
anywhere anywhere any
#

Il problema con questo approccio è che talvolta serve sapere il valore dei contatori u
prima di azzerarli. Nell'esempio precedente, tra i comandi `−L' e `−Z' potrebbero es
degli altri pacchetti. Per questa ragione, si possono usare `−L' and `−Z' assieme, per
contatori mentre li si legge. Sfortunatamente, se si fa così, non si può operare su una
catena: si devono mostrare e azzerare tutte le catene in una volta.

# ipchains −L −v −Z
Chain input (policy ACCEPT):
pkts bytes target prot opt tosa tosx ifname mark
10 840 ACCEPT icmp −−−−− 0xFF 0x00 lo

Effetti collaterali del filtraggio 270


Linux HOWTO − Networking − Sommario

source destination ports


anywhere anywhere any

Chain forward (refcnt = 1): (policy ACCEPT)


Chain output (refcnt = 1): (policy ACCEPT)
Chain test (refcnt = 0):
0 0 DENY icmp −−−−− 0xFF 0x00 ppp0
localnet/24 anywhere any
# ipchains −L −v
Chain input (policy ACCEPT):
pkts bytes target prot opt tosa tosx ifname mark
10 840 ACCEPT icmp −−−−− 0xFF 0x00 lo

source destination ports


anywhere anywhere any
Chain forward (refcnt = 1): (policy ACCEPT)
Chain output (refcnt = 1): (policy ACCEPT)
Chain test (refcnt = 0):
0 0 DENY icmp −−−−− 0xFF 0x00 ppp0
localnet/24 anywhere any
#

Impostare la tattica

Si è visto cosa succede quando un pacchetto raggiunge la fine di una catena predefin
si è discusso come un pacchetto cammina attraverso una catena in Specificare un ob
In questo caso, la tattica (policy) di una catena determina il destino del pacchetto. S
catene predefinite (input, output e forward) hanno delle tattiche, poiché se u
cade fuori dalla fine di una catena definita dall'utente, la traversata riprende nelle ca
precedente.

La tattica può essere una qualsiasi dei primi quattro obiettivi speciali: ACCEPT, DEN
o MASQ. MASQ è valida solamente per la catena `forward'.

Inoltre è importante notare che un obiettivo RETURN in una regola in una delle cate
predefinite è utile per stabilire esplicitamente la tattica di una catena quando un pacc
soddisfa una regola.

Operazioni sul masquerading

Ci sono diversi parametri per l'IP Masquerading con i quali si può giocare. Sono ing
ipchains perché non valeva la pena scrivere uno strumento separato (anche se qu
cambierà).

Il comando per il masquerading IP è `−M', e può essere combinato con `−L' per mos
l'elenco delle connessioni attualmente mascherate, o con `−S' per impostare i param
masquerading.

Il comando `−L' può essere accompagnato da `−n' (mostra i numeri invece dei nomi
delle porte) o `−v' (mostra i delta nelle sequenze di numeri per le connessioni masch
caso importi qualcosa).

Il comando `−S' dovrebbe essere seguito da tre valori di timeout in secondi: per le s

Effetti collaterali del filtraggio 271


Linux HOWTO − Networking − Sommario

per le sessioni TCP dopo un pacchetto FYN e per i pacchetti UDP. Se non si vuole c
uno di questi tre valori, semplicemente si specifichi `0' come valore.

I valori predefiniti sono elencati in `/usr/src/linux/include/net/ip_masq.h', e rispettiv


15 minuti, 2 minuti e 5 minuti.

Il valore più comune da cambiare è il primo, per FTP (si veda Incubi da FTP [*] più

Si noti il problema nell'impostazione dei timeout descritto in Non riesco a impostare


del masquerading! ([*]).

Controllare un pacchetto

Talvolta si vuole vedere cosa succede quando un certo pacchetto entra nella propria
ad esempio per fare il debug delle catene firewall. ipchains ha il comando `−C' p
permetterlo, che usa le stesse routine che usa il kernel per la diagnosi dei pacchetti r

Si specifica su quale catena verificare il pacchetto facendo seguire l'argomento di `−


suo nome. Mentre il kernel inizia la trasversata sempre dalla catena input, outpu
forward, per gli scopi di test si ha il permesso di cominciare la traversata da quals

I dettagli del `pacchetto' sono specificati usando le stessa sintassi usata per specifica
firewall. In particolare, sono obbligatori un protocollo (`−p'), un indirizzo di proven
un indirizzo di destinazione (`−d') e un'interfaccia (`−i'). Se il protocollo è TCP o UD
devono essere specificati un unico indirizzo di provenienza e un unico indirizzo di d
mentre devono essere specificati un tipo e un codice ICMP per il protocollo ICMP (
non sia specificata l'opzione `−f' per indicare una regola sui frammenti, nel qual cas
opzioni sono illegali).

Se il protocollo è TCP (e non è specificata l'opzione `−f' ), può essere specificata l'o
per indicare che il pacchetto di test avrà il bit SYN impostato.

Ecco un esempio di verifica di un pacchetto SYN TCP dalla porta 60000 di 192.168
porta www di 192.168.1.2, in arrivo sull'interfaccia eth0 e che entra nella catena `in
è la classica inizializzazione di una connessione WWW):

# ipchains −C input −p tcp −y −i eth0 −s 192.168.1.1 60000 −d

cm229 192.168.1.2 www cm

packet accepted
#

Più regole in una volta sola e controllare cosa succede

Talvolta una unica riga di comando può aver effetto su più regole. Ciò capita in due
La prima: se si può specifica un nome di host che viene risolto (usando il DNS) in d
indirizzi IP, ipchains si comporterà come se si fossero digitati più comandi, uno
combinazione di indirizzi.

Controllare un pacchetto 272


Linux HOWTO − Networking − Sommario

Quindi se il nome di host `www.foo.com' viene risolto in tre indirizzi IP, e il nome d
`www.bar.com' viene risolto in due indirizzi IP, allora il comando `ipchains −A inpu
−s www.bar.com −d www.foo.com' aggiungerà sei regole alla catena input.

Un altro modo per far sì che ipchains effettui azioni multiple è di usare l'opzione
(bidirezionale). Questa opzione fa sì che ipchains si comporti come se si fosse d
volte il comando, la seconda volta scambiando gli argomenti di `−s' e `−d'. Quindi p
l'inoltro sia da che per 192.168.1.1, si potrebbe fare quanto segue:

# ipchains −b −A forward −j reject −s 192.168.1.1


#

Personalmente, non gradisco molto l'opzione `−b'; se si vuole qualcosa di più utile s
ipchains−save ([*]) più avanti.

L'opzione `−b' può essere usata con i comandi di inserimento (`−I'), cancellazione (`
non le varianti che accettano un numero di regola), aggiunta (`−A') e verifica (`−C')

Un'altra opzione utile è `−v' (verbose) che mostra esattamente quel che ipchains
con il comando dato. È utile se si ha a che fare con comandi che possono evere effe
regole. Per esempio, controlliamo il comportamento dei frammenti tra 192.168.1.1 e
192.168.1.2.

# ipchains −v −b −C input −p tcp −f −s 192.168.1.1 −d 192.168.1.2 −


tcp opt −−−f− tos 0xFF 0x00 via lo 192.168.1.1 −> 192.168.
* −> *
packet accepted
tcp opt −−−f− tos 0xFF 0x00 via lo 192.168.1.2 −> 192.168.
* −> *
packet accepted
#

Un utile esempio
Ho una connessione PPP in dialup (−i ppp0). Mi scarico le news (−p TCP −s
news.virtual.net.au nntp) e la posta (−p TCP −s mail.virtual.n
pop−3) ogni volta che mi connetto. Uso il metodo FTP di Debian per aggiornare re
la mia macchina (−p TCP −y −s ftp.debian.org.au ftp−data). Navig
attraverso il proxy del mio ISP mentre tutta la roba precedente è in funzione (−p T
proxy.virtual.net.au 8080), ma odio le pubblicità da doubleclick.net nel
Archive (−p TCP −y −d 199.95.207.0/24 e −p TCP −y −d
199.95.208.0/24).

Non mi preoccupo della gente che prova a fare ftp nella mia macchina mentre sono
TCP −d $LOCALIP ftp), ma non voglio che nessuno da fuori pretenda di avere
indirizzo IP della mia rete interna (−s 192.168.1.0/24). Ciò è comunemente d
spoofing, e c'è un modo migliore per proteggersi nei kernel 2.1 e superiori: si veda C
proteggersi dall'IP spoofing? ([*]).

Questa configurazione è piuttosto semplice, perché attualmente non ci sono altre ma


mia rete interna.

Un utile esempio 273


Linux HOWTO − Networking − Sommario

Non voglio che nessun processo locale (per esempio Netscape, lynx ecc.) si connett
doubleclick.net:

# ipchains −A output −d 199.95.207.0/24 −j REJECT


# ipchains −A output −d 199.95.208.0/24 −j REJECT
#

Ora voglio impostare le priorità in diversi pacchetti in uscita (non ne vedo l'utilità d
pacchetti in ingresso). Poiché ho parecchie di questo regole, ha senso metterle tutte
catena, chiamata ppp−out.

# ipchains −N ppp−out
# ipchains −A output −i ppp0 −j ppp−out
#

Ritardo minimo per il traffico Web e per telnet.

# ipchains −A ppp−out −p TCP −d proxy.virtual.net.au 8080 −t 0x01 0


# ipchains −A ppp−out −p TCP −d 0.0.0.0 telnet −t 0x01 0x10
#

Minimo costo per i dati ftp, nntp e pop−3:

# ipchains −A ppp−out −p TCP −d 0.0.0.0/0 ftp−data −t 0x01 0x02


# ipchains −A ppp−out −p TCP −d 0.0.0.0/0 nntp −t 0x01 0x02
# ipchains −A ppp−out −p TCP −d 0.0.0.0/0 pop−3 −t 0x01 0x02
#

Ci sono alcune restrizioni sui pacchetti in ingresso dall'interfaccia ppp0: creo una ca
chiamata `ppp−in':

# ipchains −N ppp−in
# ipchains −A input −i ppp0 −j ppp−in
#

Ora, nessun pacchetto in ingresso da ppp0 dovrebbe affermare un indirizzo di prov


192.168.1.*, e quindi li registro e li proibisco:

# ipchains −A ppp−in −s 192.168.1.0/24 −l −j DENY


#

Permetto l'ingresso solo di pacchetti UDP per il DNS (eseguo un caching nameserve
tutte le richieste a 203.29.16.1, quindi mi aspetto risposte DNS solo da loro), ftp ent
ritorno di dati ftp (che dovrebbero andare solo verso una porta sotto la 1023, non ve
X11 attorno a 6000).

# ipchains −A ppp−in −p UDP −s 203.29.16.1 −d $LOCALIP dns −j ACCEP


# ipchains −A ppp−in −p TCP −s 0.0.0.0/0 ftp−data −d $LOCALIP

cm229 1024:5999 −j ACCEPT cm

# ipchains −A ppp−in −p TCP −s 0.0.0.0/0 ftp−data −d $LOCALIP 6010:

cm229 −j ACCEPT cm

Un utile esempio 274


Linux HOWTO − Networking − Sommario

# ipchains −A ppp−in −p TCP −d $LOCALIP ftp −j ACCEPT


#

Per finire, vanno bene i pacchetti local−to−local:

# ipchains −A input −i lo −j ACCEPT


#

ora, la mia tattica di default per la catena input è DENY, quindi qualsiasi altra cosa
scartata:

# ipchains −P input DENY


#

NOTA: non imposterei le mie catene in questo ordine, in quanto i pacchetti potrebb
mentre le imposto. La cosa più sicura è di impostare per prima cosa la tattica a DEN
inserire le regole. Naturalmente, se le proprie regole richiedono ricerche DNS per ri
nomi di host, potrebbero esserci problemi.

Usare ipchains−save

Impostare le catene firewall proprio nel modo in cui le si vuole, e poi provare a rico
comandi usati in modo da porterlo fare anche la volta successiva è una cosa penosa.

ipchains−save è uno script che legge l'impostazione corrente delle catene e la s


file. Per ora vi lascio in fremente attesa di scoprire cosa fa ipchains−restore.

ipchains−save può salvare una catena o tutte le catene (se non è specificato un
catena). La sola opzione attualmente permessa è `−v' che stampa le regole (in stderr
salva. Per le catene input, output e forward è salvata anche la tattica.

# ipchains−save > my_firewall


Saving `input'.
Saving `output'.
Saving `forward'.
Saving `ppp−in'.
Saving `ppp−out'.
#

Usare ipchains−restore

ipchains−restore ripristina le catene salvate con ipchains−save. Accetta


opzioni: `−v' che descrive ogni regola che viene aggiunta, e `−f' che forza lo svuotam
catene definite dall'utente se esistono, come descritto nel seguito.

Se nell'input è trovata una catena definita dall'utente, ipchains−restore contro


già. Se esiste, sarà chiesto se la catena debba essere svuotata (ripulita da tutte le rego
debba saltare il ripristino di questa catena. Se si specifica `−f' in riga di comando, no
chiesto niente; la catena sarà ripulita.

Per esempio:

Usare ipchains−save 275


Linux HOWTO − Networking − Sommario

# ipchains−restore < my_firewall


Restoring `input'.
Restoring `output'.
Restoring `forward'.
Restoring `ppp−in'.
Chain `ppp−in' already exists. Skip or flush? [S/f]? s
Skipping `ppp−in'.
Restoring `ppp−out'.
Chain `ppp−out' already exists. Skip or flush? [S/f]? f
Flushing `ppp−out'.
#

[Precedente] [Sommario] [Successiv

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

MediaMorfosi

GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione

Risorse

Linux HOWTO − Networking 276


Feedback
Miscellanea
Questa sezione contiene tutte le informazioni e le FAQ che non sono riuscito a siste

Come organizzare le proprie regole firewall


Questa domanda richiede qualche riflessione. Si può provare a organizzarle per ottim
numero di verifiche di regole per i pacchetti più comuni) o per incrementare la gesti

Se si ha una connessione intermittente, diciamo una connessione PPP, si può voler i


catena input a `−i ppp0 −j DENY' al boot del sistema, e poi mettere qualcosa di sim

# Ricrea la catena `ppp−in'.


ipchains−restore −f < ppp−in.firewall

# Sostituisce la regola DENY con un salto alla catena di gestione p


ipchains −R input 1 −i ppp0 −j ppp−in

Lo script ip−down potrebbe essere così:

ipchains −R input 1 −i ppp0 −j DENY

Cosa non filtrare


Ci sono alcune cosette di cui bisogna essere consci prima di cominciare a filtrare tut

Pacchetti ICMP

I pacchetti ICMP sono usati (tra le altre cose) per indicare fallimenti negli altri proto
particolare i pacchetti `destination−unreachable' (destinazione irraggiungibile). Bloc
non si riceveranno mai gli errori `Host unreachable' o `No route to host'; qualsiasi co
una riposta che non arriverà mai. Ciò è irritante, ma raramente fatale.

Un problema peggiore è la regola dei pacchetti ICMP nel MTU discovery. Tutte le b
quella di Linux) usano MTU discovery per provare a capire quale sia il pacchetto pi
destinazione senza essere frammentato (la frammentazione abbassa le prestazioni, s
occasionalmente persi dei frammenti). MTU discovery lavora inviando pacchetti co
inviando poi pacchetti più piccoli se riceve un pacchetto ICMP che indica ``Fragme
(`fragmentation−needed'). Questo è un pacchetto tipo `destination−unreachable', e s
non riduce l'MTU e le prestazioni saranno abissali o non esistenti.

Si noti che è comune bloccare tutti i messaggi redirect ICMP (tipo 5); possono esser
l'instradamento (sebbene gli stack IP buoni hanno delle protezioni), e quindi sono sp

Connessioni TCP al DNS (nameserver)

Se si sta provando a bloccare tutte le connessioni TCP in uscita, si ricordi che il DN


risposta dal server supera i 512 byte, il client usa una connessione TCP (ancora dire
i dati.

Miscellanea 277
Linux HOWTO − Networking − Sommario

Ciò può essere una trappola perché il DNS `praticamente funzionerà' se si disabilita
se lo si fa possono capitare strani lunghi ritardi e altri occasionali problemi DNS.

Se le proprie interrogazioni DNS sono sempre dirette alla stessa fonte esterna (sia d
nameserver in /etc/resolv.conf oppure usando un caching nameserver in
permettere solo le connessioni TCP alla porta domain di quel nameserver dalla por
un caching nameserver) o da una porta più alta (> 1023) se si sta usando /etc/res

Incubi da FTP

FTP presenta un classico problema del filtraggio dei pacchetti. FTP ha due modalit
modalità attiva e quella più recente è detta modalità passiva. I Web browser solita
mentre i programmi per FTP a riga di comando solitamente usano la modalità attiva

In modalità attiva, quando il sito remoto vuole inviare un file (oppure anche il risult
una connessione TCP verso la macchina locale. Ciò significa che non si possono fil
rompere l'FTP attivo.

Se si ha la possibilità di usare la modalità passiva, allora bene; la modalità passiva c


server, anche per i dati in ingresso. Altrimenti, è raccomandabile permettere connes
superiori alla 1024 ma non tra 6000 e 6010 (la 6000 è usata per X−Window).

Filtrare i Ping della Morte


La macchine Linux sono ora immuni ai famosi Ping della Morte, che implicano l'in
illegalmente grande che fa andare in overflow i buffer nello stack TCP del ricevente

Se si vogliono proteggere macchine che potrebbero essere ancora vulnerabili, sempl


ICMP. Normalmente i pacchetti ICMP non sono abbastanza grandi da richiedere fra
romperà niente se non i grossi ping. Ho sentito (non confermato) che ad alcuni siste
frammento di un pacchetto ICMP fuori misura per corromperli, e quindi non è racco
frammento.

Sebbene i programmi exploit che ho visto usano tutti ICMP, non c'è ragione per non
un protocollo sconosciuto) per questi attacchi, e quindi bloccare i frammenti ICMP
temporanea.

Filtrare Teardrop e Bonk


Teardrop e Bonk sono due attacchi (rivolti principalmente contro macchine Microso
sovrapposizione dei frammenti. Le opzioni sono di far sì che il proprio router Linux
disabilitare tutti i frammenti verso le macchine vulnerabili.

Filtrare i Fragment Bomb


Si dice che alcuni stack TCP meno affidabili hanno problemi a gestire un grande nu
quando non ricevono mai tutti i frammenti. Linux non ha questo problema. Si posso
interrompe pure il loro uso legittimo) oppure compilare il kernel attivando `IP: alwa
macchina Linux è il solo instradamento possibile per questi pacchetti).

Incubi da FTP 278


Linux HOWTO − Networking − Sommario

Cambiare le regole firewall


Ci sono alcune questioni temporali coinvolte nella modifica delle regole firewall. Se
lasciar passare pacchetti mentre si fanno le modifiche. L'approccio più semplice è il

# ipchains −I input 1 −j DENY


# ipchains −I output 1 −j DENY
# ipchains −I forward 1 −j DENY

... fare le modifiche ...

# ipchains −D input 1
# ipchains −D output 1
# ipchains −D forward 1
#

Ciò scarta tutti i pacchetti per la durata delle modifiche.

Se le proprie modifiche sono ristrette a una sola catena, si potrebbe creare una nuov
sostituire (`−R') la regola che punta alla vecchia catena con quella che punta a quell
vecchia catena. Questo rimpiazzo sarà atomico.

Come proteggersi dall'IP spoofing?


L'IP spoofing è una tecnica nella quale un host invia pacchetti che affermano proven
filtraggio dei pacchetti prende decisioni basandosi su questo indirizzo di provenienz
di pacchetti un po' stupidi. È usato anche per nascondere l'identità dell'attaccante us
della Morte e simili (non ci si preoccupi se non si sa cosa sono).

Il miglior modo per proteggersi dall'IP spoofing è chiamato Source Address Verific
provenienza), ed è fatto dal codice di instradamento e non dal firewall. Si cerchi il f
/proc/sys/net/ipv4/conf/all/rp_filter. Se esiste, allora attivare il S
avvio è la giusta soluzione. Per farlo, si inseriscano le righe seguenti da qualche par
inizializzazione, prima che sia inizializzata qualsiasi interfaccia di rete:

# Questo è il metodo migliore: attivare il Source Address Verificat


# ed avere così la protezione dallo spoof protection su tutte le
# intefacce correnti e future.
if [ −e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
echo −n "Setting up IP spoofing protection..."
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
echo "done."
else
echo PROBLEMS SETTING UP IP SPOOFING PROTECTION. BE WORRIED.
echo "CONTROL−D will exit from this shell and continue system start
echo
# Start a single user shell on the console
/sbin/sulogin $CONSOLE
fi

Se non si può fare così, si possono inserire manualmente delle regole per proteggere
conoscenza su qualsiasi interfaccia. I kernel 2.1 automaticamente rifiutano i pacche

Cambiare le regole firewall 279


Linux HOWTO − Networking − Sommario

indirizzi 127.* (riservati per l'interfaccia loopbak locale lo).

Per esempio, facciamo il caso che ci siano tre interfacce: eth0, eth1 e ppp0. Pos
conoscere l'indirizzo e la netmask delle interfacce. Diciamo che eth0 sia attaccata
255.255.255.0, eth1 sia attaccata alla rete 10.0.0.0 con netmask 255.0.0.0 e che pp
permesso qualsiasi indirizzo tranne quelli riservati come indirizzi IP privati). Inserir

# ipchains −A input −i eth0 −s ! 192.168.1.0/255.255.255.0 −j DENY


# ipchains −A input −i ! eth0 −s 192.168.1.0/255.255.255.0 −j DENY
# ipchains −A input −i eth1 −s ! 10.0.0.0/255.0.0.0 −j DENY
# ipchains −A input −i ! eth1 −s 10.0.0.0/255.0.0.0 −j DENY
#

Questo approccio non è buono quanto l'approccio con il Source Address Verificatio
devono cambiare le regole firewall.

Se si usa un kernel della serie 2.0, si può voler proteggere anche l'interfacia loopbac

# ipchains −A input −i ! lo −s 127.0.0.0/255.0.0.0 −j DENY


#

Progetti avanzati
Ho scritto una libreria (`libfw') che funziona nello spazio utente, inclusa nei sorgent
Chains 1.3 e superiori di copiare un pacchetto nello spazio utente (usando l'opzione
IP_FIREWALL_NETLINK).

Il valore marcato può essere usato per specificare il paramentro Quality of Service p
fare l'inoltro di porta dei pacchetti. Non li ho mai usati, ma se si vuole scrivere qualc

Usando questa libreria possono essere implementate nello spazio utente cose come l
termine dynamic firewalling). Un'altra idea interessante è il controllo dei pacchetti s
in un demone nello spazio utente. Questo dovrebbe essere abbastanza facile.

SPF: Stateful Packet Filtering

ftp://ftp.interlinx.bc.ca/pub/spfftp://ftp.interlinx.bc.ca/pub/spf è il sito del progetto S


tracking delle connessioni nello spazio utente. Aggiunge significante sicurezza per s

Attualmente c'è poca documentazione, ma ecco qui un post nella mailing list nel qu

> Credo che faccia esattamente quello che voglio: installare un reg
> temporanea di "arretramento" ("backward" rule) per permettere
> l'ingresso dei pacchetti come fossero una risposta a una richiest
> in uscita.

Yup, è esattamente quello che fa. Più è capito il protocollo, più


regola di "arretramento" funziona bene. Attualmente ha il supporto
(vado a memoria, quindi scusate qualsiasi errore o omissione) per F
(sia attivo che passivo, in ingresso e in uscita), RealAudio,
traceroute, ICMP e ICQ basilare (ingresso da un server ICQ e
connessioni TCP dirette, ma non c'è ancora il supporto per le
connessioni TCP dirette secondarie per altre cose come il

Progetti avanzati 280


Linux HOWTO − Networking − Sommario

trasferimento di file, ecc.).

> È un rimpiazzo per ipchains o un supplemento?

È un supplemento. Penso a ipchains come al motore per permettere o


impedire ai pacchetti di viaggiare attraverso la macchina Linux. S
è il pilota che monitorizza costantemente il traffico e dice a
ipchains come cambiare le sue tattiche per rispondere ai cambiament
nel traffico.

L'ftp−data hack di Michael Hasenstein

Michael Hasenstein della SuSE ha scritto una patch per il kernel che aggiunge a ipc
ftp. Attualmente può essere trovata a
http://www.csn.tu−chemnitz.de/ mha/patch.ftp−data−2.gzhttp://www.csn.tu−chemn

Estensioni future
Il firewalling e il NAT sono in fase di riprogetto per il 2.3. I piani e le discussioni so
liste netdev e ipchains−dev. Queste estensioni dovrebbero chiarire parecchie questio
il firewalling e il masquerading non dovrebbero essere così difficili), e permetterann
maggiormente flessibile.

[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

L'ftp−data hack di Michael Hasenstein 281


Libri:

Italian crackdown
Problemi comuni
Open Sources
ipchains −L si pianta!
MediaMorfosi

GTK+/GNOME Probabilmente si stanno bloccando le ricerche DNS; alla fine andrà in timeout. Si pr
sviluppo applicazioni a passare l'opzione `−n' a ipchains, che sopprime la risoluzione dei nomi.
Linux HOWTO: Installazione e configurazione
Masquerading/Forwarding non funziona!
Risorse
Ci si assicuri che sia abilitato l'inoltro dei pacchetti (nei kernel recenti è disabilitato
Feedback
default, il che significa che i pacchetti non proveranno mai ad attraversare la catena
`forward'). Si può venirne a capo digitando (come root):

# echo 1 > /proc/sys/net/ipv4/ip_forward


#

Se funziona, lo si può mettere da qualche parte nei propri script di avvio così che sia
abilitato ogni volta; ovviamente è meglio impostare il proprio firewall prima di lanc
questo comando, altrimenti c'è l'opportunità che scappino un po' di pacchetti.

−j REDIR non funziona!


Si devono permettere i pacchetti di inoltro (si veda sopra) affinché funzioni il
dirottamento; diversamente il codice di instradamento scarterà i pacchetti. Quindi se
sta usando solamente il dirottamento e non si usa il forwading, è bene essere consci
questa cosa.

Si noti che REDIR (sebbene sia nella catena input) non ha effetto sulle connessioni
un processo locale.

Non funzionano i caratteri jolly nelle interfacce!


C'è un bug nelle versioni 2.1.102 e 2.1.103 del kernel (e in alcune vecchie patch che
prodotto) che faceva fallire i comandi ipchains che utilizzavano caratteri jolly per
specificare interfacce (ad esempio −i ppp+).

Ciò è stato corretto nei kernel recenti e nella patch per il 2.0.34 presente sul sito web
Può essere pure corretto a mano nei sorgenti del kernel modificando la riga 63 (più
meno) di include/linux/ip_fw.h:

#define IP_FW_F_MASK 0x002F /* All possible flag bits mask */

Dovrebbe essere ``0x003F''. Lo si corregga e si ricompili il kernel.

TOS non funziona!


Questo è stato un mio errore: l'impostazione del campo Type of Service nei kernel d
2.1.102 al 2.1.111 in realtà non faceva niente. Questo problema è stato corretto nel

Problemi comuni 282


Linux HOWTO − Networking − Sommario

2.1.112.

Non funzionano ipautofw e ipportfw!


Per i 2.0.x, è vero; non ho il tempo per creare e mantenere una patch enorme per
ipchains e ipautofw/ipportfw.

Per i 2.1.x, si scarichi l'ipmasqadm di Juan Ciarlante da


http://juanjox.linuxhq.com/http://juanjox.linuxhq.com/ e lo si usi esattamente come
sarebbe usato ipautofw o ipportfw, tranne per il fatto che invece di ipportf
si usa ipmasqadm portfw, e invece di ipautofw si usa ipmasqadm autof

xosview si è rotto!
Si aggiorni alla versione 1.6.0 o superiore, che non richiede nessuna regola firewall
i kernel 2.1.x. Sembra che anche la release 1.6.1 abbia questo problema; lo si segnal
all'autore (non è un mio errore!).

Segmentation Fault con `−j REDIRECT'!


Questo era un bug in ipchains versione 1.3.3. Si aggiorni.

Non riesco ad impostare i timeout del


masquerading!
Ciò è vero (per i kernel 2.1.x) fino al 2.1.123. Nel 2.1.124, il tentativo di impostare
timeout del masquerading provoca un blocco del kernel (si modifichi return in re
= nella riga 1328 di net/ipv4/ip_fw.c). Nel 2.1.125, funziona tutto.

Voglio dei firewall IPX!


E così molti altri, sembra. Il mio codice gestisce solo IP, sfortunatamente. D'altra pa
c'è anche qualcosa di buono: le cose per scrivere un firewall IPX ci sono tutte! Basta
semplicemente scrivere il codice; sarò felice di aiutare dove possibile.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Non funzionano ipautofw e ipportfw! 283


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 284


Un esempio più serio
Questo esempio è estratto dal tutorial scritto da me e Michael Neuling apparso in
LinuxWorld nel Marzo 1999; non è il solo modo per risolvere il problema in esame
probabilmente è il più semplice. Spero lo si trovi interessante.

La situazione
• Rete interna con il masquerading (con diversi sistemi operativi) che chiame
``GOOD''.
• Server esposti in una rete separata (chiamata ``DMZ'' per Demilitarized Zon
Zona Demilitarizzata).
• Connessione PPP a Internet (detta ``BAD'').

Rete Esterna (BAD)


|
|
ppp0|
−−−−−−−−−−−−−−−
| 192.84.219.1| Rete dei Server (DMZ)
| |eth0
| |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| |192.84.219.250 | | |
| | | | |
|192.168.1.250| | | |
−−−−−−−−−−−−−−− −−−−−−−− −−−−−−− −−−−−−−
| eth1 | SMTP | | DNS | | WWW |
| −−−−−−−− −−−−−−− −−−−−−−
| 192.84.219.128 192.84.219.129 192.84.218
|
Rete Interna (GOOD)

Scopi
Macchina per il filtraggio dei pacchetti:

PING da/per qualsiasi rete


Questo è veramente utile per sapere se una macchina è attiva.

TRACEROUTE da/per qualsiasi rete


Ancora, utile per la diagnostica.

Accesso DNS
Rende ping e DNS più utili.

All'interno di DMZ:

Mail server

• SMTP verso l'esterno


• Accetta SMTP dall'interno e dall'esterno

Un esempio più serio 285


Linux HOWTO − Networking − Sommario

• Accetta POP−3 dall'interno

Name Server

• Invia richieste DNS all'esterno


• Accetta richieste DNS dall'interno, dall'esterno e dalla macchina per il filtra
pacchetti.

Server Web

• Accetta connessioni HTTP dall'interno e dall'esterno


• Accesso rsync dall'interno

Rete interna:

Permettere WWW, ftp, traceroute, ssh verso l'esterno


Queste sono cose abbastanza standard da permettere: alcuni iniziano perme
fare tutto alla rete interna, ma qui saremo un po' più restrittivi.

Permettere connessioni SMTP verso il mail server


Ovviamente vogliamo poter inviare mail verso l'esterno.

Permettere connessioni POP−3 verso il mail server


Questo è il modo per leggere la propria posta.

Permettere connessioni DNS verso il name server


Vogliamo essere in grado di cercare i nomi esterni dei siti per il WWW, ftp
traceroute e ssh.

Permettere connessioni rsync verso il server Web


Questo è il modo per sincronizzare il server web esterno con quello interno.

Permettere connessioni WWW verso il server Web


Ovviamente, vogliamo poterci connettere al nostro server Web esterno.

Permettere il ping verso la macchina per il filtraggio dei pacchetti


Questa è una pura cortesia: significa che si può controllare se la macchina f
giù.

Prima del filtraggio dei pacchetti


• Anti−spoofing.

Poiché non c'è nessun instradamento asimmetrico, semplicemente si può att


l'anti−spoofing per tutte le interfacce.

# for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 >


#
• Impostare le regole di filtraggio per proibire (DENY) tutto.

Prima del filtraggio dei pacchetti 286


Linux HOWTO − Networking − Sommario

Si permetterà ancora il traffico locale su loopback, ma verrà proibito tutto il

# ipchains −A input −i ! lo −j DENY


# ipchains −A output −i ! lo −j DENY
# ipchains −A forward −j DENY
#
• Configurare le interfacce.

Solitamente ciò è fatto negli script di boot. Ci si assicuri che i passi precede
fatti prima che vengano configurate le interfacce, per prevenire l'infiltrazion
pacchetti prima di aver impostato le regole.

• Inserire moduli di masquerading per ciascun protocollo. Si devono inserire


di masquerading per FTP, in modo che funzioni l'FTP sia attivo che passivo
rete interna.

# insmod ip_masq_ftp
#

Filtraggio dei pacchetti per i pacchetti di passagg


Con il masquerading, la cosa migliore è filtrare nella catena forward.

Si suddivida la catena forward in diverse catene utente a seconda delle interfacce di


provenienza/destinazione; ciò suddivide il problema in tronconi gestibili più facilme

ipchains −N good−dmz
ipchains −N bad−dmz
ipchains −N good−bad
ipchains −N dmz−good
ipchains −N dmz−bad
ipchains −N bad−good

Una cosa comune da fare è di accettare (ACCEPT) errori ICMP standard, e quindi s
una catena solo per loro.

ipchains −N icmp−acc

Impostare i salti dalla catena forward

Sfortunatamente, è nota solamente (nella catena forward) l'interfaccia d'uscita. Quin


scoprire da quale interfaccia sia entrato un pacchetto useremo l'indirizzo di provenie
(l'anti spoofing previene indirizzi contraffatti).

Si noti che si registra qualsiasi cosa che non soddisfa una di queste regole (ovviame
non dovrebbe mai succedere).

ipchains −A forward −s 192.168.1.0/24 −i eth0 −j good−dmz


ipchains −A forward −s 192.168.1.0/24 −i ppp0 −j good−bad
ipchains −A forward −s 192.84.219.0/24 −i ppp0 −j dmz−bad
ipchains −A forward −s 192.84.219.0/24 −i eth1 −j dmz−good
ipchains −A forward −i eth0 −j bad−dmz
ipchains −A forward −i eth1 −j bad−good

Filtraggio dei pacchetti per i pacchetti di passaggio 287


Linux HOWTO − Networking − Sommario

ipchains −A forward −j DENY −l

Definire la catena icmp−acc

I pacchetti che siano degli errori ICMP sono accettati, altrimenti il controllo passerà
catena chiamante.

ipchains −A icmp−acc −p icmp −−icmp−type destination−unreachable −j

cm229 ACCEPT cm

ipchains −A icmp−acc −p icmp −−icmp−type source−quench −j ACCEPT


ipchains −A icmp−acc −p icmp −−icmp−type time−exceeded −j ACCEPT
ipchains −A icmp−acc −p icmp −−icmp−type parameter−problem −j ACCEP

Da Good (interno) a DMZ (server)

Restrizioni della rete interna:

• Permettere WWW, ftp, traceroute, ssh verso l'esterno


• Permettere SMTP verso il Mail server
• Permettere POP−3 verso il Mail server
• Permettere DNS verso il Name server
• Permettere rsync verso il Web server
• Permettere WWW verso il Web server
• Permettere il ping alla macchina filtro

Si potrebbe fare il masquerading dalla rete interna nella DMZ, ma qui non si farà. P
nessuno nella rete interna dovrebbe provare a fare cose brutte, registriamo qualsiasi
pacchetto che venga proibito.

ipchains −A good−dmz −p tcp −d 192.84.219.128 smtp −j ACCEPT


ipchains −A good−dmz −p tcp −d 192.84.219.128 pop−3 −j ACCEPT
ipchains −A good−dmz −p udp −d 192.84.219.129 domain −j ACCEPT
ipchains −A good−dmz −p tcp −d 192.84.219.129 domain −j ACCEPT
ipchains −A good−dmz −p tcp −d 192.84.218.130 www −j ACCEPT
ipchains −A good−dmz −p tcp −d 192.84.218.130 rsync −j ACCEPT
ipchains −A good−dmz −p icmp −j icmp−acc
ipchains −A good−dmz −j DENY −l

Da Bad (esterno) a DMZ (server)

• Restrizioni di DMZ:
♦ Mail server
◊ SMTP verso l'esterno
◊ Accetta SMTP da interno ed esterno
◊ Accetta POP−3 dall'interno
♦ Name server
◊ Invia DNS verso l'esterno
◊ Accetta DNS da interno, esterno e dalla macchina per il fi
dei pacchetti
♦ Web server

Definire la catena icmp−acc 288


Linux HOWTO − Networking − Sommario

◊ Accetta HTTP da interno e esterno


◊ Accesso rsync dall'interno
• Cose permesse dalla rete esterna verso DMZ
♦ Non si registrano le violazioni, in quanto possono succedere.

ipchains −A bad−dmz −p tcp −d 192.84.219.128 smtp −j ACCEPT


ipchains −A bad−dmz −p udp −d 192.84.219.129 domain −j ACCEP
ipchains −A bad−dmz −p tcp −d 192.84.219.129 domain −j ACCEP
ipchains −A bad−dmz −p tcp −d 192.84.218.130 www −j ACCEPT
ipchains −A bad−dmz −p icmp −j icmp−acc
ipchains −A bad−dmz −j DENY

Da Good (interno) a Bad (esterno)

• Restrizioni della rete interna:


♦ Permettere WWW, ftp, traceroute, ssh verso l'esterno
♦ Permettere SMTP verso il Mail server
♦ Permettere POP−3 verso il Mail server
♦ Permettere DNS verso il Name server
♦ Permettere rsync verso il Web server
♦ Permettere WWW verso il Web server
♦ Permettere il ping alla macchina filtro
• Molti permettono qualsiasi cosa dalla rete interna verso quella esterna. Qua
facciamo un po' i fascisti.
♦ Registrazione delle violazioni.
♦ FTP passivo gestito dal modulo del masquerading

ipchains −A good−bad −p tcp −−dport www −j MASQ


ipchains −A good−bad −p tcp −−dport ssh −j MASQ
ipchains −A good−bad −p udp −−dport 33434:33500 −j MASQ
ipchains −A good−bad −p tcp −−dport ftp −−j MASQ
ipchains −A good−bad −p icmp −−icmp−type ping −j MASQ
ipchains −A good−bad −j REJECT −l

Da DMZ a Good (interno)

• Restrizioni della rete interna:


♦ Permettere WWW, ftp, traceroute, ssh verso l'esterno
♦ Permettere SMTP verso il Mail server
♦ Permettere POP−3 verso il Mail server
♦ Permettere DNS verso il Name server
♦ Permettere rsync verso il Web server
♦ Permettere WWW verso il Web server
♦ Permettere il ping alla macchina filtro
• Se si fa il masquerading dalla rete interna verso la DMZ, semplicemente si
qualsiasi pacchetto che proviene nell'altro senso. Ovvero, si permettano solo
pacchetti che possono essere parte di una connessione già stabilita.

ipchains −A dmz−good −p tcp ! −y −s 192.84.219.128 smtp −j ACCEPT


ipchains −A dmz−good −p udp −s 192.84.219.129 domain −j ACCEPT
ipchains −A dmz−good −p tcp ! −y −s 192.84.219.129 domain −j ACCEPT
ipchains −A dmz−good −p tcp ! −y −s 192.84.218.130 www −j ACCEPT
ipchains −A dmz−good −p tcp ! −y −s 192.84.218.130 rsync −j ACCEPT

Da Good (interno) a Bad (esterno) 289


Linux HOWTO − Networking − Sommario

ipchains −A dmz−good −p icmp −j icmp−acc


ipchains −A dmz−bad −j DENY −l

Da DMZ a Bad (esterno)

• Restrizioni di DMZ:
♦ Mail server
◊ SMTP verso l'esterno
◊ Accetta SMTP da interno ed esterno
◊ Accetta POP−3 dall'interno
♦ Name server
◊ Invia DNS verso l'esterno
◊ Accetta DNS da interno, esterno e dalla macchina per il fi
dei pacchetti
♦ Web server
◊ Accetta HTTP da interno e esterno
◊ Accesso rsync dall'interno

ipchains −A dmz−bad −p tcp −s 192.84.219.128 smtp −j ACCEPT


ipchains −A dmz−bad −p udp −s 192.84.219.129 domain −j ACCEPT
ipchains −A dmz−bad −p tcp −s 192.84.219.129 domain −j ACCEPT
ipchains −A dmz−bad −p tcp ! −y −s 192.84.218.130 www −j ACCEPT
ipchains −A dmz−bad −p icmp −j icmp−acc
ipchains −A dmz−bad −j DENY −l

Da Bad (esterno) a Good (interno)

• Non si permette niente (non mascherato) dalla rete esterna verso quella inte

ipchains −A bad−good −j REJECT

Filtraggio dei pacchetti per la macchina Linux stessa

• Se si vuole usare il filtraggio dei pacchetti sui pacchetti in ingresso alla mac
stessa, è necessario fare il filtraggio sulla catena input. Si crei una catena pe
interfaccia di destinazione:

ipchains −N bad−if
ipchains −N dmz−if
ipchains −N good−if
• Creare dei salti a queste:

ipchains −A input −d 192.84.219.1 −j bad−if


ipchains −A input −d 192.84.219.250 −j dmz−if
ipchains −A input −d 192.168.1.250 −j good−if

Interfaccia di Bad (esterno)

• Macchina per il filtraggio dei pacchetti:


♦ PING verso ogni rete
♦ TRACEROUTE verso ogni rete
♦ Accesso DNS

Da DMZ a Bad (esterno) 290


Linux HOWTO − Networking − Sommario

• L'interfaccia esterna riceve risposte anche per i pacchetti ``mascherati'' oltre


ICMP per questi e a risposte al PING.

ipchains −A bad−if −i ! ppp0 −j DENY −l


ipchains −A bad−if −p TCP −−dport 61000:65096 −j ACCEPT
ipchains −A bad−if −p UDP −−dport 61000:65096 −j ACCEPT
ipchains −A bad−if −p ICMP −−icmp−type pong −j ACCEPT
ipchains −A bad−if −j icmp−acc
ipchains −A bad−if −j DENY

Interfaccia di DMZ

• Restrizioni della macchina per il filtraggio dei pacchetti:


♦ PING verso ogni rete
♦ TRACEROUTE verso ogni rete
♦ Accesso DNS
• L'interfaccia DMZ riceve risposte DNS, risposte al ping ed errori ICMP.

ipchains −A dmz−if −i ! eth0 −j DENY


ipchains −A dmz−if −p TCP ! −y −s 192.84.219.129 53 −j ACCEP
ipchains −A dmz−if −p UDP −s 192.84.219.129 53 −j ACCEPT
ipchains −A dmz−if −p ICMP −−icmp−type pong −j ACCEPT
ipchains −A dmz−if −j icmp−acc
ipchains −A dmz−if −j DENY −l

Interfaccia di Good (interno)

• Restrizioni della macchina per il filtraggio dei pacchetti:


♦ PING verso ogni rete
♦ TRACEROUTE verso ogni rete
♦ Accesso DNS
• Restrizioni della rete interna:
♦ Permettere WWW, ftp, traceroute, ssh verso l'esterno
♦ Permettere SMTP verso il Mail server
♦ Permettere POP−3 verso il Mail server
♦ Permettere DNS verso il Name server
♦ Permettere rsync verso il Web server
♦ Permettere WWW verso il Web server
♦ Permettere il ping alla macchina filtro
• L'interfaccia interna riceve ping, risposte al ping e errori ICMP.

ipchains −A good−if −i ! eth1 −j DENY


ipchains −A good−if −p ICMP −−icmp−type ping −j ACCEPT
ipchains −A good−if −p ICMP −−icmp−type pong −j ACCEPT
ipchains −A good−if −j icmp−acc
ipchains −A good−if −j DENY −l

Per finire
• Cancellare le regole di bloccaggio:

ipchains −D input 1
ipchains −D forward 1

Filtraggio dei pacchetti per la macchina Linux stessa 291


Linux HOWTO − Networking − Sommario

ipchains −D output 1

[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 292


Appendice: differenze tra ipchains e
ipfwadm
Alcune di queste modifiche sono il risultato di modifiche nel kernel, e altre dipendo
fatto che ipchains sembra differente da ipfwadm.

1. Molti argomenti sono stati rimappati: le maiuscole ora indicano un comand


minuscole indicano un'opzione.
2. Sono supportate catene arbitrarie e quindi anche le catene predefinite ora ha
nome invece di essere solamente un opzione (es. `input' invece di `−I').
3. L'opzione `−k' non c'è più: si usi `! −y'.
4. L'opzione `−b' inserire/aggiunge/cancella veramente due regole, piuttosto ch
singola regola `bidirezionale'.
5. L'opzione `−b' può essere passata a `−C' per fare due verifiche (una in ogni
direzione).
6. L'opzione `−x' a `−l' è stata rimpiazzata da `−v'.
7. Non sono più supportate porte di provenienza e destinazione multiple. Sper
l'essere in grado di negare un intervallo di porte venga in aiuto in questi cas
8. Le interfacce possono essere specificate solamente attraverso il nome (non
l'indirizzo). Comunque, la vecchia semantica è stata silenzionamente cambi
kernel della serie 2.1.
9. I frammenti sono esaminati, non lasciati passare automaticamente.
10. Sono state rimosse le catene specifiche per l'accounting.
11. Possono essere testati protocolli arbitrari su IP.
12. Il vecchio comportamente del SYN e ACK matching (che in precedenza era
ignorato per i pacchetti non TCP) è cambiato; l'opzione SYN non è valida p
regole non specifiche per il TCP.
13. I contatori sono ora a 64 bit su macchine a 32 bit, non più a 32 bit.
14. Ora sono supportate le opzioni inverse.
15. Ora sono supportati i codici ICMP.
16. Sono supportati i caratteri jolly nella specifica dell'interfaccia.
17. Ora è controllata l'integrità delle manipolazioni TOS: il vecchio codice del k
sileziosamente bloccava le manipolazioni (illegali) del bit TOS `Must Be Z
ipchains ora restituisce un errore se ci si prova, come anche per gli altri casi
illegali.

Tabella di riferimento rapido


[Gli argomenti dei comandi sono in MAIUSCOLO, mentre gli argomenti delle opzi
minuscolo]

Una cosa da notare, il masquerading è specificato da `−j MASQ'; è completamente d


da `−j ACCEPT', e non è trattato come un mero effetto collaterale, diversamente da
fa ipfwadm.

===================================================================
| ipfwadm | ipchains | Note
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −A [both] | −N acct | Crea una catena `acct'

Appendice: differenze tra ipchains e ipfwadm 293


Linux HOWTO − Networking − Sommario

| |& −I 1 input −j acct | e fa sì che i pacchetti


| |& −I 1 output −j acct | in ingresso e in uscita
| |& acct | la traversino.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −A in | input | Una regola senza tattica
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −A out | output | Una regola senza tattica
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −F | forward | Si usi questo come [cate
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −I | input | Si usi questo come [cate
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −O | output | Si usi questo come [cate
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −M −l | −M −L |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −M −s | −M −S |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −a tattica | −A [catena] −j TATTICA | (si veda anche −r e −m).
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −d tattica | −D [catena] −j TATTICA | (si veda anche −r e −m).
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −i tattica | −I 1 [catena] −j TATTICA| (si veda anche −r e −m).
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −l | −L |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −z | −Z |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −f | −F |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −p | −P |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −c | −C |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −P | −p |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −S | −s | Accetta solo una porta o
| | | intervallo.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −D | −d | Accetta solo una porta o
| | | intervallo.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −V | <nessuna> | Si usi −i [nome].
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −W | −i |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −b | −b | Crea 2 regole.
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −e | −v |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −k | ! −y | Non funziona finché non
| | | si specifica anche −p tc
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −m | −j MASQ |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −n | −n |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −o | −l |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −r [redirpt] | −j REDIRECT [redirpt] |

Appendice: differenze tra ipchains e ipfwadm 294


Linux HOWTO − Networking − Sommario

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −t | −t |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −v | −v |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −x | −x |
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
| −y | −y | Non funziona finché non
| | | si specifica anche −p tc
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

Esempi di traduzione di comandi ipfwadm


• Vecchio comando: ipfwadm −F −p deny − Nuovo comando: ipchains −P fo
DENY
• Vecchio comando: ipfwadm −F −a m −S 192.168.0.0/24 −D 0.0.0.0/0 − Nu
comando: ipchains −A forward −j MASQ −s 192.168.0.0/24 −d 0.0.0.0/0
• Vecchio comando: ipfwadm −I −a accept −V 10.1.2.1 −S 10.0.0.0/8 −D 0.0
Nuovo comando: ipchains −A input −j ACCEPT −i eth0 −s 10.0.0.0/8 −d 0

(Si noti che questi non sono equivalenti specificando l'interfaccia tramite l'indirizzo
il nome di interfaccia. In questa macchina 10.1.2.1 corrisponde a eth0).

[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:

Esempi di traduzione di comandi ipfwadm 295


Italian crackdown

Open Sources Appendice: usare lo script


MediaMorfosi ipfwadm−wrapper
GTK+/GNOME
sviluppo applicazioni Lo script shell ipfwadm−wrapper dovrebbe essere un
Linux HOWTO: Installazione e configurazione plug−in di rimpiazzo di ipfwadm per compatibilità
all'indietro con ipfwadm 2.3a.
Risorse
La sola caratteristica che non posso veramente gestire è
Feedback l'opzione `−V'. Quando è usata, è mostrato un avviso. Se è
usata anche l'opzione `−W', l'opzione `−V' è ignorata.
Altrimenti, lo script prova a trovare il nome di interfaccia
associato con quell'indirizzo, usando ifconfig. Se fallisce
(come nel caso di un'interfaccia non attiva) allora uscirà con
un messaggio d'errore.

Questo avviso può essere soppresso o cambiando il `−V' in un


`−W', oppure direzionando lo standard output dello script a
/dev/null.

Se si trova un qualsiasi errore nello script, o una qualsiasi


differenza tra il vero ipfwadm e questo script, invito a
segnalarmi il bug: si invii un'email a ipchains@rustcorp.com
con ``BUG−REPORT'' nel subject. Prego si segnali la
versione del vecchio ipfwadm (ipfwadm −h), la versione
di ipchains (ipchains −version) e quella dello script
ipfwadm wrapper script (ipfwadm−wrapper −version).
Si invii anche l'output di ipchains−save. Grazie in
anticipo.

Se si mischia ipchains con questo script


ipfwadm−wrapper lo si fa a proprio rischio e pericolo.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Appendice: usare lo script ipfwadm−wrapper 296


Linux−FAQ
Appendice: ringraziamenti
Documenti:

Open Source Definition


Molte grazie a Michael Neuling, che ha scritto la prima cosa
rilasciabile del codice IP chains mentre lavorava per me. Mi
GNU General Public License scuso pubblicamente per aver respinto la sua idea del
La cattedrale e il bazaar result−caching, che Alan Cox propose un po' dopo e
finalmente mi sono deciso a implementare, rendendomi conto
Colonizzare la noosfera
dell'errore che avevo commesso.
Il calderone magico
Grazie ad Alan Cox per il suo supporto tecnico via email 24
Libri: ore su 24 e il suo incoraggiamento.
Italian crackdown
Grazie a tutti gli autori del codice ipfw e ipfwadm,
Open Sources specialmente a Jos Vos. Come nani sulle spalle dei giganti...
MediaMorfosi
Ciò vale anche per Linus Torvalds oltre che a tutti gli hacker
del kernel e dello userspace.
GTK+/GNOME
sviluppo applicazioni
Un ringraziamento ai diligenti beta tester e cacciatori di bug,
Linux HOWTO: Installazione e configurazione specialmente a Jordan Mendelson, Shaw Carruthers, Kevin
Moule, Dr. Liviu Daia, Helmut Adams, Franck Sicard, Kevin
Risorse Littlejohn, Matt Kemner, John D. Hardin, Alexey Kuznetsov,
Leos Bitto, Jim Kunzman, Gerard Gerritsen, Serge Sivkov,
Feedback
Andrew Burgess, Steve Schmidtke, Richard Offer, Bernhard
Weisshuhn, Larry Auton, Ambrose Li, Pavel Krauz, Steve
Chadsey, Francesco Potortì e Alain Knaff.

Abstract:

Scopo di questo documento è descrivere come ottenere,


installare e configurare diversi strumenti disponibili per
utilizzare il protocollo IPX per kernel Linux. Revisione e
manutenzione della traduzione italiana: Andrea Girotto
(andrea.girotto@usa.net).

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Appendice: ringraziamenti 297


Glossario
Introduzione a questo
Linux−FAQ
documento
Documenti:
Questo è il Linux IPX−HOWTO. Insieme a questo, è
Open Source Definition
consigliabile leggere (o aver letto) anche il documento
GNU General Public License NET−3−HOWTO di Linux.
La cattedrale e il bazaar

Colonizzare la noosfera
Modifiche dalla versione precedente
Il calderone magico
Cambio di autore Sentiti ringraziamenti a Terry Dawson per
avermi ceduto questo documento e congratulazioni per essere
Libri:
diventato padre :−).
Italian crackdown
Aggiunte Aggiunta una breve spiegazione di IPX: un
Open Sources
tentativo di risposta alle numerose confuse domande poste
MediaMorfosi sulle liste di discussione.
GTK+/GNOME
sviluppo applicazioni Correzioni/ggiornamenti Nuova versione di ncpfs che
supporta login NDS. Si tratta di beta test e potrebbe essere
Linux HOWTO: Installazione e configurazione
proibita nel proprio paese in seguito all'uso di una tecnologia
Risorse
coperta da registrazione.

Feedback Aggiunta del supporto dei permessi (trustee permission) del


server in mars_nwe. Ancora in beta test.

Introduzione
Paragonata ad altri sistemi operativi di tipo Unix
l'implementazione di rete del kernel di Linux è innovativa. La
possibilità di seguire un nuovo approccio nello sviluppo del
kernel, ha consentito il supporto (previa compilazione) di
diversi protocolli non TCP/IP. Il protocollo IPX è uno di
questi.

Il kernel Linux supporta solamente il protocollo IPX. Non è


ancora in grado di gestire protocolli come IPX/RIP, SAP o
NCP, che sono implementati da altro software come
documentato in questo HOWTO.

Il supporto IPX fu sviluppato originariamente da Alan Cox


(alan@lxorguk.ukuu.org.uk) ed è stato significativamente
accresciuto da Greg Page (greg@caldera.com).

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Introduzione a questo documento 298


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 299


Avvertenza
L'autore non conosce e non può conoscere tutto lo scibile sul
software di rete per Linux. Si prega di accettare e considerare
il fatto che questo documento probabilmente contiene errori.
Per informazioni più dettagliate e accurate, è necessario
leggere i file README inclusi con ogni software descritto. Si
tenterà di mantenere questo documento il più possibile esatto e
aggiornato. Le versioni del software corrispondono a quelle
disponibili al momento in cui si scrive.

Né l'autore, né gli sviluppatori del software descritto sono in


grado di offrire protezione nei confronti delle vostre azioni.
Qualora il software, anche se configurato come descritto in
questo documento, dovesse causare dei problemi alla rete, la
responsabilità è solo vostra. Questo avvertimento è dovuto al
fatto che il disegno e la configurazione di una rete IPX non
sempre sono semplici e talvolta possono sorgere interazioni
indesiderate con altri router o file server, causati da errori in
fase di progettazione o configurazione. L'inserimento di
questo avvertimento è stato richiesto da coloro che hanno
imparato la lezione sulla propria pelle.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Open Source Definition

GNU General Public License

La cattedrale e il bazaar

Colonizzare la noosfera

Il calderone magico

Avvertenza 300
Libri: Documentazione
Italian crackdown
Questo documento presume che si sappia compilare un kernel Linux con le opzioni
Open Sources e che si conoscano i tool di rete basilari come ifconfig e route. Per maggiori i
MediaMorfosi
rimanda al documento NET−3−HOWTO, che descrive proprio questi argomenti.

GTK+/GNOME Altri documenti HOWTO, che potrebbero essere utili sono i seguenti.
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Ethernet−HOWTO


Descrive i dettagli di configurazione di un dispositivo Ethernet per Linux.
Risorse
PPP−HOWTO
Feedback
Il supporto IPX è disponibile a partire dalle versioni 2.2.0d dell'implementa
Linux.

Nuove versioni di questo documento


Se questa copia del documento ha più di due mesi, si raccomanda caldamente di otte
versione. Il supporto di rete per Linux è in continua evoluzione, pertanto anche ques
viene modificato molto spesso.

Risorse internazionali

L'ultima versione rilasciata di questo documento può sempre essere ottenuta tramite

ftp:/sunsite.unc.edu/pub/Linux/docs/HOWTO/IPX−HOWTO>/ o:
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other−formats

Tramite il World Wide Web dal http://sunsite.unc.edu/LDP/linux.htmlLinux Docum


Web Server, alla pagina: http://sunsite.unc.edu/LDP/HOWTO/IPX−HOWTO.htmlI
direttamente da me, <kevin@pricetrak.com>. In alternativa, possono essere u
newsgroups: comp.os.linux.networking, comp.os.linux.answers e

Risorse italiane

Questo documento e altri correlati sono disponibili presso i siti Ftp (ftp.pluto.linux.i
PLUTO (http://www.pluto.linux.it).

Feedback
Si prega di inviare direttamente all'autore ogni commento (in inglese, NdT), aggiorn
suggerimento, all'indirizzo <kevin@pricetrak.com>. Prima verrà ricevuta un
prima sarà possibile aggiornare e correggere questo documento. Se dovessero esserc
favore scrivere direttamente all'autore in quanto molto raramente legge i gruppi di d

Documentazione 301
Linux HOWTO − Networking − Sommario

Mailing list
Esiste una mailing list per la discussione dei diversi pacchetti di software Linux IPX
documento. È possibile iscriversi inviando un messaggio a: listserv@sh.cvut.cz con
linware'' nel corpo del messaggio. Per comunicare con la lista si deve scrivere a:
linware@sh.cvut.cz. L'autore consulta regolarmente questa lista.

L'archivio della mailing list si trova all'indirizzo


http://www.kin.vslib.cz/hypermail/linware/www.kin.vslib.cz, /hypermail/linware/.

[Precedente] [Sommario] [Suc

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

Mailing list 302


Feedback
Alcuni dei termini utilizzati in
questo documento
Si useranno spesso i termini client e server. Si tratta di
concetti molto specifici, tuttavia in questo documento si è
leggermente generalizzata la loro definizione, assegnandogli il
seguente significato:

client
Macchina o programma che inizia un'azione o una
connessione allo scopo di ottenere l'utilizzo di servizi
o di dati.

server
Macchina o programma che accetta connessioni in
entrata da macchine remote ed è in grado di fornire a
esse servizi o dati.

Queste definizioni non sono completamente esatte, tuttavia


forniscono un modo per distinguere gli estremi dei sistemi
peer to peer come SLIP o PPP, i quali, di fatto, non hanno veri
e propri client e server. Altri termini che si troveranno sono i
seguenti.

Bindery
Il bindery è un database specializzato in grado di
memorizzare su un fileserver Novell informazioni
riguardo la configurazione della rete. I client di rete
possono interrogare il bindery per ottenere
informazioni circa i servizi disponibili,
l'instradamento (routing) e altre informazioni utente.

Tipo di trama (frame type)


Termine utilizzato per descrivere il protocollo
utilizzato per trasportare i datagrammi IPX (e IP)
lungo i segmenti di una rete di tipo ethernet. I quattro
più comuni sono:

Ethernet_II
È una versione riveduta dello standard
ethernet DIX originale. A Novell è stato
assegnato un identificativo di protocollo
formale e questo significa che IPX e IP
possono coesistere in un ambiente
Ethernet_II. Questo protocollo viene
comunemente utilizzato in ambienti Novell e
si tratta di una buona scelta.

802.3

Alcuni dei termini utilizzati in questo documento 303


Linux HOWTO − Networking − Sommario

È un protocollo I.E.E.E. che definisce un


meccanismo CSMA/CD (Carrier Sense
Multiple Access with Collision Detection). Si
basa sullo standard Ethernet DIX originale,
con una modifica rilevante: l'identificativo di
protocollo (type field) è stato convertito in
una lunghezza di campo (length field). Questo
è il motivo per cui IPX non dovrebbe essere
eseguito con questo protocollo. IEEE 802.3 è
stato progettato per trasportare solo frame
IEEE 802.2 ma esistono implementazioni che
lo utilizzano per trasportare direttamente i
frame e di fatto funzionano. Si consiglia di
evitarlo a meno che non si stia tentando di
interagire con una rete già configurata per
esso.

802.2
È un protocollo I.E.E.E. che definisce un
insieme di procedure di Controllo Logico dei
Link (Logical Link Control). Fornisce un
modo semplice per consentire la coesistenza
di protocolli differenti, tuttavia è piuttosto
limitato. Novell utilizza un Service Address
Point non ufficiale (una sorta di identificativo
di protocollo) ma dal momento che anche tutti
gli altri lo utilizzano, questo non ha ancora
rappresentato un problema.

SNAP
acronimo di Sub Network Access Protocol.
Questo protocollo è progettato per funzionare
su 802.3 e 802.2. Espande le capacità di 802.2
e fornisce una compatibilità con i tipi di frame
esistenti Ethernet ed Ethernet_II IPX

IPX
Internet Packet eXchange: protocollo utilizzato da
Novell Corporation per fornire un supporto
internetworking per i loro prodotti NetWare(tm). IPX
ha funzionalità simili al protocollo IP utilizzato in
TCP/IP.

Indirizzo di rete IPX


Numero che identifica univocamente una particolare
rete IPX. La notazione comune per questo indirizzo è
in esadecimale. Un esempio può essere:
0x23a91002.

Rete interna IPX

Alcuni dei termini utilizzati in questo documento 304


Linux HOWTO − Networking − Sommario

Rete IPX virtuale, poiché non corrisponde a una rete


fisica. Viene utilizzata per fornire un'identificazione e
un indirizzamento univoco per un host IPX.
Solitamente, è utile per identificare gli host IPX che
esistono in più di una rete fisica IPX come i fileserver.
L'indirizzo è codificato nella stessa forma di una rete
IPX fisica.

RIP
Routing Information Protocol: protocollo utilizzato
per propagare automaticamente gli instradamenti
(route) di rete in una rete IPX. È funzionalmente
simile al RIP utilizzato in TCP/IP.

NCP
NetWare Core Protocol: protocollo di filesystem di
rete (networked filesystem) progettato da Novell
Corporation per il loro prodotto NetWare(tm).
Funzionalmente equivale a NFS utilizzato in TCP/IP.

SAP
Service Advertisement Protocol: protocollo progettato
da Novell Corporation per pubblicizzare i servizi di
rete in un ambiente NetWare(tm).

Indirizzo hardware
Numero che identifica in modo univoco un host
all'interno di una rete fisica. Ne sono esempio gli
Indirizzi Ethernet. Un indirizzo Ethernet viene
generalmente codificato con sei valori esadecimali
separati da un carattere "due punti" es.:
00:60:8C:C3:3C:0F.

instradamento (route)
È il percorso seguito dai pacchetti attraverso la rete
per raggiungere la propria destinazione.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Alcuni dei termini utilizzati in questo documento 305


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 306


Breve discussione sulla
topologia di rete IPX
Questa è una spiegazione estremamente semplice per persone
che non conoscono IPX. Reti estese probabilmente violano
molte delle regole indicate, In reti IPX complesse si dovrebbe
sempre consultare l'amministratore di rete.

La rete IPX si risolve intorno a uno schema di reti numerate,


diversamente da IP che pone maggior enfasi sulle interfacce.
Una rete è una collezione di materiale connesso allo stesso
segmento LAN e che usa lo stesso tipo di trama. Diffenti tipi
di trama sullo stesso segmento LAN sono trattati come reti
separate.

Ciascuna rete deve allocare un numero che sia univoco


nell'intera interconnessione. Normalmente questo compito è
assolto dal server Netware(tm), ma può essere facilmente
svolto da Linux. Ai client IPX viene dato questo numero dal
server all'atto di partire, a loro è solo richiesto di conoscere il
corretto tipo di trama.

L'instradamento tra reti è normalmente effettuato ponendo due


schede di rete sullo stesso server. Questo server mantiene
tramite il protocollo RIP una tabella di instradamento per
l'interconnessione. Periodicamente i server si scambiano
questa tabella di instradamento. In breve tempo ciascun server
'scopre' la topologia dell'intera rete.

Se si desidera usare solo i servizi di un server Netware


esistente, si può usare ipx_configure (sezione 7.1) per
definire automaticamente le interfacce IPX tramite richieste
broadcast cercando un server. Se fallisce, o se si desidera
fornire servizi IPX, sarà necessario definire manualmente le
interfacce usando ipx_interface o mars_nwe.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Breve discussione sulla topologia di rete IPX 307


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 308


I file correlati a IPX nel
filesystem /proc
All'interno del filesystem /proc sono presenti molti file
correlati al supporto IPX di Linux:

/proc/net/ipx_interface
Contiene informazioni circa le interfacce IPX
configurate sulla macchina. Tali interfacce potrebbero
essere state configurate manualmente, oppure rilevate
e configurate automaticamente.

/proc/net/ipx_route
Contiene una lista di percorsi esistenti nella tabella di
instradamento IPX. Potrebbero essere stati aggiunti
manualmente, oppure automaticamente tramite un
demone di instradamento IPX.

/proc/net/ipx
Contiene una lista di socket IPX attualmente aperti
per un utilizzo sulla macchina.

[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

I file correlati a IPX nel filesystem /proc 309


Libri: I tool IPX di Greg Page
Italian crackdown
Greg Page (greg@caldera.com) della Caldera Incorporated, ha
Open Sources scritto molti strumenti per la configurazione IPX e ha fornito
MediaMorfosi
miglioramenti per il supporto IPX.

GTK+/GNOME I miglioramenti nel kernel consentono di configurare Linux come un


sviluppo applicazioni
bridge o router pienamente funzionale. Il supporto IPX migliorato è
Linux HOWTO: Installazione e configurazione già presente nella distribuzione del kernel pertanto, probabilmente,
lo possedete già. I tool di configurazione forniscono la possibilità di
Risorse impostare i dispositivi di rete per supportare IPX, l'instradamento
IPX e altre facilitazioni sotto Linux. I tool di rete IPX per Linux
Feedback
sono disponibili presso: sunsite.unc.edu,
/pub/Linux/system/filesystems/ncpfs/ipx.tgz.

I tool IPX in maggior dettaglio


ipx_interface
Viene utilizzato per aggiungere, cancellare o controllare
manualmente la capacità di IPX verso un dispositivo di rete
esistente. Normalmente si tratta di un dispositivo di rete
Ethernet per esempio, eth0. Almeno un'interfaccia IPX
deve essere definita come interfaccia primaria; si ottiene
con l'opzione −p di questo comando. Ad esempio, per
abilitare il dispositivo Ethernet eth0 come interfaccia
primaria IPX utilizzando il tipo di frame IEEE 802.2 e
l'indirizzo di rete IPX 39ab0222, si utilizza il comando:

# ipx_interface add −p eth0 802.2 0x39ab0222

Se il tipo di trama differisce da quello dei server


NetWare(tm) sulla rete, essi di proposito ignoreranno il
computer. Se il tipo di trama è corretto ma il numero di rete
differisce, essi ignoreranno comunque il computer ma
segnaleranno frequentemente il fatto sulla console NetWare
del server. L'ultima situazione è certo che suscita rimproveri
dal proprio amministratore NetWare e potrebbe disabilitare i
client NetWare esistenti.

Se il sistema restituisce un messaggio di errore mentre si


esegue questo programma e non è ancora stato configurato
TCP/IP, allora sarà necessario avviare manualmente
l'interfaccia eth0 utilizzando il comando:

# ifconfig eth0 up

ipx_configure
Abilita o disabilita la configurazione automatica delle
interfacce e l'impostazione dell'interfaccia primaria.

I tool IPX di Greg Page 310


Linux HOWTO − Networking − Sommario

−auto_interface
consente di impostare se i dispositivi di rete
debbano essere configurati automaticamente come
dispositivi IPX oppure no.

−auto_primary
consente di impostare se il software IPX debba
selezionare automaticamente un'interfaccia primaria
oppure no. Si sono riscontrati problemi usando
questa opzione con client Windows 95 connessi alla
rete.
Un esempio tipico consiste nell'abilitare sia la
configurazione automatica delle interfacce che
l'impostazione automatica di quella primaria, tramite:

# ipx_configure −auto_interface=on −auto_primary=on

ipx_internal_net
Consente di configurare o ``deconfigurare'' un indirizzo di
rete interna. Tale indirizzo è opzionale, ma se viene
configurato rappresenterà sempre l'interfaccia primaria. Per
impostare l'indirizzo di rete IPX ab000000 sul nodo IPX
1, si utilizzerà il comando:

# ipx_internal_net add 0xab000000 1

ipx_route
Consente di modificare manualmente la tabella di
instradamento IPX. Ad esempio, per aggiungere un percorso
alla rete IPX 39ab0222 tramite un router il cui numero di
nodo è 00608CC33C0F sulla rete IPX 39ab0108, si può
utilizzare il comando:

# ipx_route add 0x39ab0222 0x39ab0108 0x00608CC33C0F

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux HOWTO − Networking 311


Linux−FAQ Configurazione della macchina Linux
Documenti: come router IPX
Open Source Definition Se ci si trova nella situazione di dover interconnettere diversi segmenti IPX, è
GNU General Public License necessario utilizzare un router. In ambiente Novell ci sono due tipi di informazioni
che devono essere diffuse all'interno della rete. Si tratta di ``network routing
La cattedrale e il bazaar
information'' propagate utilizzando Novell RIP, e ``service advertisement
Colonizzare la noosfera information'' propagate utilizzando Novell SAP. Affinché un router sia utile nella
Il calderone magico
maggior parte delle situazioni, è necessario che supporti entrambi i protocolli.

Libri: Linux fornisce supporto per entrambi i protocolli e si può facilmente fare in modo
che funzioni come un router completamente conforme a Novell.
Italian crackdown

Open Sources Il supporto IPX per il kernel gestisce il percorso dei pacchetti IPX attraverso le
interfacce, secondo le regole codificate all'interno della tabella di instradamento
MediaMorfosi
IPX. Linux ha bisogno di un programma per implementare RIP e SAP di Novell
GTK+/GNOME per assicurare che la tabella di instradamento IPX sia compilata correttamente e
sviluppo applicazioni aggiornata periodicamente al fine di riflettere eventuali cambiamenti dello stato
Linux HOWTO: Installazione e configurazione della rete.

Risorse Volker Lendecke (lendecke@namu01.gwdg.de) ha sviluppato un demone di


instradamento per questo scopo: ipxripd. Il pacchetto menzionato successivamente
Feedback mars_nwe include un demone di instradamento alternativo.

È possibile trovare ipxripd presso sunsite.unc.edu,


/pub/Linux/system/filesystems/ncpfs/ipxripd−0.7.tgz o presso il sito privato di
Volker ftp.gwdg.de, /pub/linux/misc/ncpfs/ipxripd−0.7.tgz.

I passi da seguire per configurare una macchina Linux affinché si comporti come
router sono:

1. Compilare il kernel con il supporto IPX, Ethernet e /proc.


2. Ottenere, compilare e installare il programma demone ipxd.
3. Avviare il nuovo kernel e assicurarsi che ognuna delle schede Ethernet sia
stata correttamente rilevata e che non esistano conflitti di hardware.
4. Abilitare il protocollo IPX su ciascuna delle interfacce utilizzando il
comando ipx_interface precedentemente descritto (vedere
ipx_interface [*]).
5. Eseguire il programma demone ipxd.

Si consideri la semplice rete illustrata di seguito:

IPX Addr: 0x01000000 802.2


|−−−−−−−−−−−−−−−−−−−−−−−−−−|
|
\_________________________
\ Linux Router
IPX Addr: 0x02000000 802.2 \
|−−−−−−−−−−−−−−−−−−−−−−−−−−| \ eth0/−−−−−−−−−−−\
| \−−====| |

Configurazione della macchina Linux come router IPX 312


Linux HOWTO − Networking − Sommario

\_________________________ | IPX route |


\
eth1| Table |
IPX Addr: 0x03000000 etherII \−−−−====| ^ |
|−−−−−−−−−−−−−−−−−−−−−−−−−−| | | |
| eth2| IPXd |
\______________________________/====| |
| SAPd |
IPX Addr: 0x04000000 etherII eth3| |
|−−−−−−−−−−−−−−−−−−−−−−−−−−| /====| |
| | \___________/
\______________________________/

La configurazione per la rete sopra riportata corrisponde a:

# ipx_interface add eth0 802.2 0x0100000000


# ipx_interface add eth1 802.2 0x0200000000
# ipx_interface add eth2 etherii 0x0300000000
# ipx_interface add eth3 etherii 0x0400000000
# ipxd

Dopo aver atteso qualche istante, controllando il file /proc/net/ipx_route,


dovrebbe essere possibile osservare la presenza dei percorsi IPX rilevanti per la
propria configurazione e di tutti quelli acquisiti da altri router nella rete.

È necessario configurare una rete interna?


Novell ha una caratteristica denominata rete interna, che viene utilizzata per
semplificare l'instradamento nelle situazioni in cui un host è connesso a più
dispositivi di rete. Può essere utile in caso di un fileserver connesso a più reti,
poiché imposta un solo percorso come indicazione per raggiungere il server,
indipendentemente dalla rete su cui si sta lavorando.

In caso di una configurazione senza un fileserver e nella quale la macchina agisca


solo da router IPX, la questione non è altrettanto semplice. Si è notato che la
configurazione per IPX/PPP funziona ``meglio'' se viene implementata anche una
rete interna.

È un'operazione semplice da fare ma può richiedere la ricompilazione del kernel.


È importante rispondere ``Y'', mentre si esegue make config, alla richiesta:

...
...
Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] y
...
...

Per configurare l'interfaccia della rete interna, utilizzare il comando


ipx_internal_net descritto in precedenza nel paragrafo relativo agli
strumenti di rete ([*]). La precauzione principale da prendere, consiste
nell'assicurarsi che l'indirizzo IPX assegnato sia univoco nella rete e quindi che
nessun'altra macchina, o rete, lo stia utilizzando.

È necessario configurare una rete interna? 313


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 314


Configurazione della propria macchina
Linux come client NCP
È probabile che gli utenti di reti a tecnologia mista, comprendente protocolli IP e
IPX, prima o poi desiderino che la propria macchina Linux possa accedere a dati
memorizzati in un file server Novell sulla rete. Novell offre da tempo un pacchetto
NFS per i propri file server in grado di consentire questa funzione; tuttavia, nel caso
di una piccola installazione, o se solo un ristretto numero di persone è interessato a
tale funzionalità, non è facile giustificare il costo del pacchetto commerciale.

Volker Lendecke lendecke@namu01.gwdg.de ha scritto un modulo che consente di


montare volumi Novell sul file system Linux senza richiedere alcun prodotto
addizionale per il file server. Volker ha denominato il pacchetto ncpfs e ha tratto le
informazioni necessarie principalmente dal libro ``Netzwerkprogrammierung in C''
di Manfred Hill e Ralf Zessin (ulteriori dettagli sul libro sono contenuti nel file
README del pacchetto ncpfs).

Il software consente a Linux di emulare una normale stazione di lavoro Novell per
servizi di file. Include anche una piccola utility che consente di stampare le code
Novell (questo argomento è documentato nel paragrafo relativo al Client di Stampa
[*]). Il pacchetto ncpfs è in grado di lavorare con file server Novell a partire dalla
versione 3.x, mentre non funziona con Novell 2.x. Il client ncpfs funziona anche co
prodotti strettamente compatibili con Novell, ma sfortunatamente alcuni, pur
dichiarandosi compatibili, non lo sono a sufficienza. Per utilizzare ncpfs con Novel
4.x, è preferibile configurare il fileserver per operare in modalità di emulazione
bindery. Il supporto NDS è una aggiunta piuttosto recente alla versione beta di ncpf
e per di più in certi paesi è proibito a causa dell'inclusione di tecnologia protetta da
brevetto.

Come ottenere ncpfs


L'ultimo pacchetto ncpfs fu progettato per versioni del kernel fino alla 1.2.13 o
superiore alla 1.3.71 (questo include la versione 2.x.x). Se il kernel in uso non rientr
in queste categorie, è necessario eseguire un aggiornamento, operazione descritta in
dettaglio nel Kernel−HOWTO.

Il pacchetto ncpfs può essere ottenuto tramite ftp anonimo con il sito di Volker
presso ftp.gwdg.de in /pub/linux/misc/ncpfs/ oppure sunsite.unc.edu in
/pub/Linux/system/filesystems/ncpfs

o siti mirror. La versione attuale nel momento in cui si scrive questo documento è:
ncpfs−2.0.11.tgz oppure ncpfs−2.2.0.tgz che aggiunge il supporto
NDS.

Compilazione di ncpfs per il kernel 1.2.13


Compilazione di un kernel con supporto Ethernet e IPX

Configurazione della propria macchina Linux come client NCP 315


Linux HOWTO − Networking − Sommario

La prima cosa da fare è assicurarsi che il proprio kernel sia stato compilato
con l'abilitazione al supporto IPX. Nella versione di kernel 1.2.13 basta
assicurarsi di aver risposto "Y" alla domanda The IPX protocol, com
illustrato nel seguito:

...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled)
(CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...

Ovviamente è necessario includere il driver relativo per la propria scheda


Ethernet. Per maggiori dettagli, si dovrebbe consultare l'Ethernet−HOWTO

A questo punto è possibile procedere alla compilazione del kernel. Al


termine potrebbe essere necessario eseguire lilo per installarlo.

Esecuzione del comando tar per il software ncpfs

# cd /usr/src
# tar xvfz ncpfs−2.0.10.tgz
# cd ncpfs

Controllo del Makefile


Se si desidera utilizzare kerneld per caricare automaticamente il modulo
ncpfs, è necessario togliere il commento alla riga che si riferisce a
KERNELD all'interno del Makefile. Se non si conosce il significato di
questa azione, si dovrebbe leggere Kernel−HOWTO per familiarizzare con
la configurazione del modulo kernel.

Esecuzione di make per il software ncpfs


Il software dovrebbe poter essere compilato correttamente senza che siano
necessari ulteriori configurazioni, tramite il comando:

# make

Copia dei tool IPX, se non ancora presenti


Al termine dell'esecuzione di make, tutti gli strumenti necessari dovrebbero
trovarsi nella directory ncpfs/bin. È possibile utilizzare il comando:

# make install

per installare i tool in directory scelte da Volker. Se si sta lavorando su un


sistema basato su ELF, si dovrà eseguire nuovamente ldconfig −v per
assicurarsi che venga trovata la libreria condivisa.

Copia del modulo ncpfs.o se necessario

Configurazione della propria macchina Linux come client NCP 316


Linux HOWTO − Networking − Sommario

Se si sta eseguendo la compilazione di un kernel 1.2.*, al termine


dell'esecuzione di make, si troverà un file denominato ncpfs.o nella director
ncpfs/bin. Si tratta del modulo di kernel ncpfs, che dovrebbe essere
copiato in luogo utile. Sul sistema debian dell'autore, è stato copiato nella
directory /lib/modules/1.2.13/fs ed ncpfs aggiunto al file
/etc/modules in modo che venga eseguito automaticamente all'avvio de
sistema. Per una diversa distribuzione, si dovrebbe scoprire dove sono
localizzati i moduli per copiarlo in quella locazione; in ogni altro caso
semplicemente copiarlo nella directory /etc. Per caricare i moduli
manualmente, è necessario utilizzare il comando:

# insmod ncpfs.o

Come compilare ncpfs per i kernel 1.3.71++/2.0.*


Per l'ultima versione di ncpfs, si dovrebbe utilizzare un kernel 1.3.71 o successivo;
questo include i kernel 2.0.*.

Se si ha intenzione di utilizzare un kernel di versione 1.3.71 o successivo, allora il


codice del kernel ncpfs è stato incluso nella distribuzione standard. È sufficiente
rispondere ``Y'' alla domanda:

Networking options −−−>


...
...
<*> The IPX protocol
...
Filesystems −−−>
...
...
<*> NCP filesystem support (to mount NetWare volumes)
...

A questo punto è necessario seguire le istruzioni per la compilazione dei kernel


1.2.*, in modo da costruire i tool; tuttavia non ci sarà un file modulo da installare.

Configurazione e utilizzo di ncpfs


Configurazione del software di rete IPX
Esistono due modi per configurare il software di rete IPX. È possibile
configurare manualmente tutte le informazioni di rete IPX, oppure lasciare
che il software determini da solo delle impostazioni ragionevoli, tramite il
comando:

# ipx_configure −−auto_interface=on −−auto_primary=on

Questo comando dovrebbe funzionare nella maggior parte dei casi, ma se ci


non accade, si invita a leggere il paragrafo [*] (Tools di IPX) per configurar
il software manualmente. Si sono notati problemi nell'usare questo comando
su reti in cui erano presenti client Windows 95.

Come compilare ncpfs per i kernel 1.3.71++/2.0.* 317


Linux HOWTO − Networking − Sommario

Collaudo della configurazione


Dopo la configurazione della rete IPX, dovrebbe essere disponibile il
comando slist che elenca tutti i fileserver Novell presenti:

# slist

Se il comando slist fornisce un messaggio del tipo: ``ncp_connect:


Invalid argument'' significa che il kernel probabilmente non supporta
IPX. Controllare che sia stato effettivamente avviato il kernel appropriato.
Quando si avvia il sistema, i messaggi di startup dovrebbero contenere
informazioni riferite a IPX e ncpfs. Se, nonostante tutto, il comando
slist non elenca i file server, allora si dovrebbe utilizzare il metodo
manuale per la configurazione della rete.

Montare un volume Novell(R)


Se il software di rete IPX funziona correttamente, si dovrebbe essere in
grado di montare un volume file server Novell all'interno del file system
Linux. Il comando ncpmount viene utilizzato per questo scopo, e richiede
la specifica delle seguenti informazioni:

1. Nome del fileserver.


2. Identificativo di login nel fileserver. Se esiste, deve essere
specificata anche una password.
3. Il punto di mount, ossia dove si desidera montare la condivisione. S
tratterà di una directory esistente sulla macchina.
Esiste un comando equivalente ncpumount per smontare un file system
NCP precedentemente montato. I file system NCP saranno smontati in mod
corretto se si esegue un normale shutdown della macchina; pertanto non
bisogna preoccuparsi di eseguire il comando npcumount manualmente
prima di arrestare il sistema con halt oppure shutdown.

Esempio di comando per montare il file server ACCT_FS01, con login


guest, senza password, corrispondente alla directory /mnt/Accounts:

# ncpmount −S ACCT_FS01 /mnt/Accounts −U guest −n

Si noti l'utilizzo dell'opzione −n per indicare che il login non richiede alcun
password. Stesso login con password secret avrebbe forma:

# ncpmount −S ACCT_FS01 /mnt/Accounts −U guest −P secret

Se non si specifica né l'opzione −n, né −P, allora il sistema richiederà una


password.

Verifica del mount


Se l'esecuzione è terminata con successo, tutte le unità accessibili all'utente
specificato durante il login, saranno elencate come directory sotto il punto d
mount. Dovrebbe anche essere possibile percorrere la struttura delle
directory per trovare altri file. Alternativamente si può usare l'opzione −V
per montare un singolo volume.

Come compilare ncpfs per i kernel 1.3.71++/2.0.* 318


Linux HOWTO − Networking − Sommario

NCP non fornisce uid (identificativo utente) o gid (identificativo di gruppo)


per la proprietà dei file, tutti i file avranno le autorizzazioni e le proprietà
assegnate alla directory che rappresenta il punto di mount, condizionate dai
permessi concessi dal server Novell. È necessario tenerne conto quando si
effettuano condivisioni tra utenti Linux.

Configurazione per l'esecuzione automatica dei mount


Se si ha la necessità di avere un mount NCP permanente, è possibile
configurare i comandi precedentemente descritti all'interno di file rc, in
modo che vengano eseguiti all'avvio del sistema. Nel caso in cui la
distribuzione utilizzata non fornisca un metodo per configurare IPX (come
Debian), si consiglia di impostare i comandi nel file /etc/rc.local, se
esiste. È possibile utilizzare comandi del tipo:

#
# Avvio del filesystem NCP
/sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o

# Configurazione della rete IPX


ipx_configure −−auto_interface=on −−auto_primary=on

# login all'Accounting fileserver


ncpmount −S ACCT_FS01 /mnt/Accounts −U guest −n

Un altro metodo di configurazione consiste nell'elencare nel file


$HOME/.nwclient i mount NCP temporanei o specifici per l'utente che
verranno eseguiti regolarmente. È possibile memorizzare specifiche in mod
da impostarle senza doverle indicare ogni volta. Il formato è molto semplice

# Il primo inserimento rappresenta il server "preferenziale"


# verrà utilizzato ogni volta non sia specificato esplicitam
# un server.
# Login utente TERRY fileserver DOCS_FS01 con password "pass
DOCS_FS01/TERRY password
#
# Login utente Guest al fileserver ACCT_FS01 senza password.
ACCT_FS01/GUEST −

Per attivare questi mount si può utilizzare il comando:

$ ncpmount /home/terry/docs

per montare DOCS_FS01 con login TERRY sotto la directory


/home/terry/docs. Si noti che è stato utilizzato il fileserver
DOCS_FS01 perché non ne è stato specificato alcun altro nel comando di
mount. Se fosse stato utilizzato il comando:

$ ncpmount −S ACCT_FS01 /home/terry/docs

allora sarebbe stato montato il fileserver ACCT_FS01 con login GUEST.

Come compilare ncpfs per i kernel 1.3.71++/2.0.* 319


Linux HOWTO − Networking − Sommario

Nota: affinché questo meccanismo funzioni, l'autorizzazione per il file


$HOME/.nwclient deve essere 0600. Potrebbe essere necessario
utilizzare il comando:

$ chmod 0600 $HOME/.nwclient

Se anche degli utenti non root devono essere autorizzati a utilizzare questo
meccanismo, allora il comando npcmount deve essere Set Userid Root. N
consegue che potrebbe essere necessario attribuirgli le autorizzazioni:

# chmod 4755 ncpmount

Collaudo dell'utility nsend.


Il pacchetto include anche un utility per inviare messaggi a utenti Novell. Il
suo nome è nsend e viene utilizzato come di seguito riportato:

# nsend rod hello there

invia il messaggio ``hello there'' a un utente con login ``rod'' sul file server
``primario'' (ossia il primo che appare nel proprio file .nwclient). È
possibile specificare un altro file server con la stessa sintassi descritta per il
comando ncpmount.

[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 320


Libri:

Italian crackdown
Configurazione della macchina Linux com
Open Sources
server NCP
MediaMorfosi
Sono disponibili due pacchetti che consentono a Linux di fornire le funzionalità di u
GTK+/GNOME server Novell. Entrambi permettono di condividere file sulla propria macchina Linu
sviluppo applicazioni
utenti che utilizzano il software client NetWare di Novell. Gli utenti possono fare in
Linux HOWTO: Installazione e configurazione che dei file system appaiano come dischi locali sulle proprie macchine, proprio com
farebbero con un reale file server Novell. Utilizzandoli entrambi, è possibile renders
Risorse di quale dei due meglio soddisfa le proprie esigenze.

Feedback
Il pacchetto mars_nwe
Martin Stover (mstover@freeway.de) ha sviluppato mars_nwe per consentire a Lin
fornire ai client NetWare sia servizi di file, che servizi di stampa.

Il nome mars_nwe significa Martin Stovers Netware Emulator.

Capacità di mars_nwe

mars_nwe implementa un sottoinsieme del più completo NCP Novell per servizi di
bindery basati su dischi o anche di stampa. Probabilmente contiene errori, tuttavia
attualmente viene utilizzato da molte persone, pertanto il numero di errori è in conti
diminuzione man mano che vengono rilasciate nuove versioni.

Come ottenere mars_nwe

È possibile ottenere mars_nwe da ftp.gwdg.de /pub/linux/misc/ncpfs/ o da sunsite.u


/pub/Linux/system/filesystems/ncpfs/.

La versione nel momento in cui questo documento viene scritto è:


mars_nwe−0.98.pl10.tgz.

Come compilare il pacchetto mars_nwe

Compilazione di un kernel con supporto Ethernet e IPX


Con un kernel di versione 1.2.13 è sufficiente assicurarsi di aver risposto ``Y
domanda: The IPX protocol e ``N'' alla domanda: Full internal
network, come di seguito descritto:

...
...
The IPX protocol (CONFIG_IPX) [n] y
...
...
Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n
...
...

Configurazione della macchina Linux come server NCP 321


Linux HOWTO − Networking − Sommario

In kernel più recenti viene adottato un processo simile ma il testo del messa
potrebbe essere leggermente diverso.

È anche necessario includere il driver appropriato per la propria scheda Eth


Maggiori dettagli sono presenti in Ethernet−HOWTO.

Dopo di che è possibile procedere con la compilazione del kernel. Ricordar


volta terminata l'operazione, di eseguire lilo per installarlo.

Esecuzione del comando tar per il pacchetto mars_nwe

# cd /usr/src
# tar xvfz mars_nwe−0.99.pl10.tgz

Esecuzione del comando make per mars_nwe


Si tratta di un'operazione molto semplice. Il primo passo consiste nell'esegu
semplicemente make, che creerà un file config.h. Assicurarsi della pres
file e modificarlo se necessario. Il file consente di impostare oggetti come, p
esempio, le directory di installazione o il numero massimo di sessioni e unit
server sarà in grado di supportare. Gli inserimenti veramente importanti da
sono:

FILENAME_NW_INI locazione del file di inizializzazio


PATHNAME_PROGS percorso in cui trovare i programmi
eseguibili di supporto
PATHNAME_BINDERY percorso a cui indirizzare i file "b
PATHNAME_PIDFILES directory in cui scrivere i file "pi
MAX_CONNECTIONS numero massimo di connessioni simult
ammesse
MAX_NW_VOLS numero massimo di unità che mars_nwe
supportare
MAX_FILE_HANDLES_CONN numero massimo file aperti per conne
WITH_NAME_SPACE_CALLS se si desidera supportare i client n
INTERNAL_RIP_SAP se si desidera che mars_nwe fornisca
routing rip/sap
SHADOW_PWD se si utilizzano shadow password.

Le impostazioni predefinite dovrebbero andare bene, tuttavia è sempre meg


controllare. Una volta fatto, con i comandi

# make
# make install

si eseguiranno la compilazione dei server e l'installazione nelle directory


appropriate. Verrà anche installato il file di configurazione /etc/nwserv

Configurazione del server


La configurazione è piuttosto semplice: consiste nel modificare il file
/etc/nwserv.conf. Il formato di questo file a prima vista appare enigm
ma in realtà è molto lineare. Il file contiene diverse istruzioni di configurazi
composte da una sola riga. Ogni riga è delimitata da spazi bianchi e inizia c
numero che indica l'argomento da impostare. Tutti i caratteri che seguono u
sono considerati un commento, e pertanto ignorati. Martin fornisce un esem

Configurazione della macchina Linux come server NCP 322


Linux HOWTO − Networking − Sommario

pacchetto, e di seguito viene riportato un altro semplificato per offrire una p


alternativa.

# VOLUMI (max. 5)
# Solo il volume SYS è obbligatorio. La directory contenente il vol
# SYS deve contenere le directory: LOGIN, PUBLIC, SYSTEM, MAIL.
# L'opzione "n" ignora le lettere maiuscole/minuscole.
# L'opzione "k" converte tutti i nomi di file all'interno di richie
# NCP in lettere minuscole.
# L'opzione "m" marca il volume come rimovibile (utile, ad esempio,
# per cdrom).
# L'opzione "r" imposta il volume come a sola lettura.
# L'opzione "o" indica che il volume è un fs montato singolarmente.
# L'opzione "P" consente di utilizzare i comandi come file.
# L'opzione "O" consente l'utilizzo del namespace OS/2.
# L'opzione "N" consente l'utilizzo del namespace NFS.
# È predefinito l'uso delle maiuscole.
# Sintassi:
# 1 <Nome del Volume> <Percorso del Volume> <Opzioni>

1 SYS /home/netware/SYS/ # SYS


1 DATA /home/netware/DATA/ k # DATA
1 CDROM /cdrom kmr # CDROM

# NOME DEL SERVER


# Se non impostato, hostname Linux sarà convertito in lettere maius
# e utilizzato. È opzionale, se non configurato verrà utilizzato
# l'hostname.
# Sintassi:
# 2 <Nome del Server>

2 LINUX_FS01

# INDIRIZZO DI RETE INTERNA


# L'Indirizzo di Rete Interna IPX rappresenta una caratteristica ch
# semplifica il routing IPX per host che possiedono porte su più di
# una rete IPX.
# Sintassi:
# 3 <Internal Network Address> [<Node Number>]
# oppure:
# 3 auto
#
# Se si utilizza "auto", verrà utilizzato il proprio indirizzo IP h
# NOTA: questo potrebbe essere pericoloso, pertanto assicurarsi di
# assegnare alla propria rete un numero univoco.
# Gli indirizzi sono esadecimali a 4byte (è necessario che inizino
# con 0x).

3 0x49a01010 1

# DISPOSITIVI DI RETE
# Questa riga configura la propria rete IPX. Se la propria rete IPX
# è già stata configurata, questo inserimento è superfluo. Corrispo
# all'utilizzo di ipx_configure/ipx_interface prima di attivare
# il server. Sintassi:
# 4 <Numero di Rete IPX > <nome del device> <frametype> [<tic
# Frame types: ethernet_ii, 802.2, 802.3, S
4 0x39a01010 eth0 802.3 1

Configurazione della macchina Linux come server NCP 323


Linux HOWTO − Networking − Sommario

# SALVATAGGIO DEGLI INSTRADAMENTI IPX DOPO LO SPEGNIMENTO DEL SERVE


# Sintassi:
# 5 <flag>
# 0 = non salvare i route, 1 = salvare i route

5 0

# VERSIONE NETWARE
# Sintassi:
# 6 <versione>
# 0 = 2.15, 1 = 3.11

6 1

# GESTIONE DELLA PASSWORD


# i client Novell DOS reali supportano una caratteristica per cript
# la password quando viene modificata. È possibile scegliere se si
# desidera che il proprio server supporti o meno questa caratterist
# Sintassi:
# 7 <flag>
# dove <flag> può essere:
# 0 per forzare la codifica della password. (I client non pos
# modificare la password)
# 1 forza la codifica della password, consente la modifica de
# password non criptate.
# 7 consente password non criptate ma non password vuote.
# 8 consente password non criptate, comprese password vuote.
# 9 per password completamente non criptate
# (non funziona con OS/2).

7 1

# DIRITTI GID e UID MINIMALI


# abilitazioni utilizzate per connessioni senza login. Tali
# abilitazioni saranno utilizzate per i file nella propria
# connessione di server primarie.
# Sintassi:
# 10 <gid>
# 11 <uid>
# <gid> <uid> provengono da /etc/passwd, /etc/groups

10 200
11 201

# PASSWORD DEL SUPERVISORE


# Può essere rimosso dopo aver avviato il server per la prima volta
# Il server cripterà questa informazione nel file bindery dopo la
# sua esecuzione. Si dovrebbe evitare di utilizzare l'utente "root"
# al contrario èconsigliabile usare un altro account per amministra
# il fileserver mars.
# Questa riga viene letta e criptata all'interno dei file bindery
# del server, pertanto è necessario che esista la prima volta che s
# avvia il server per assicurarsi che la password non venga scopert
#
# Sintassi:
# 12 <Login del Supervisore> <Username Unix> [<password>]

12 SUPERVISOR terry secret

# ACCOUNT UTENTE

Configurazione della macchina Linux come server NCP 324


Linux HOWTO − Networking − Sommario

# Questo associa login NetWare ad account Unix. Le password sono


# opzionali.
# Sintassi:
# 13 <Login Utente> <Username Unix> [<password>]

13 MARTIN martin
13 TERRY terry

# CONFIGURAZIONE DI LAZY SYSTEM ADMIN


# Se esiste un grande numero di utenti e non è possibile utilizzare
# mappe di utenti individuali di tipo 13, è possibile mappare
# automaticamente i login a mars_nwe con nomi di utenti Linux.
# TUTTAVIA, attualmente non esiste un modo per fare uso di password
# di login Linux, pertanto, tutti gli utenti configurati in questo
# utilizzeranno la password impostata in questo punto. Si consiglia
# non farlo, a meno che la sicurezza non sia un optional.
# Sintassi:
# 15 <flag> <password comune>
# <flag> : 0 − non mappare gli utenti automaticamente
# 1 − mappa automaticamente gli utenti non configur
# 99 − mappa automaticamente tutti gli utenti.

15 0 duzzenmatta

# CONTROLLO
# se si imposta questo flag mars_nwe si assicurerà automaticamente
# dell'esistenza di certe directory.
# Sintassi:
# 16 <flag>
# <flag> può essere 0 per no, o 1 per sì.

16 0

# CODE DI STAMPA
# Questo associa le stampanti NetWare alle stampanti Unix. Le direc
# per le code devono essere create manualmente prima di tentare
# la stampa. Le directory per le code NON sono code lpd.
# Sintassi:
# 21 <nome della coda> <directory della coda> <unix_print_cmd

21 EPSON SYS:/PRINT/EPSON lpr −h


21 LASER SYS:/PRINT/LASER lpr −Plaser

# FLAG DI DEBUG
# Normalmente non sono necessari, ma possono essere utili se si sta
# eseguendo il debug di un problema.
# Sintassi:
# <debug_item> <debug_flag>
#
# 100 = IPX KERNEL
# 101 = NWSERV
# 102 = NCPSERV
# 103 = NWCONN
# 104 = start NWCLIENT
# 105 = NWBIND
# 106 = NWROUTED
# 0 = disabilita il debug, 1 = abilita il debug

100 0

Configurazione della macchina Linux come server NCP 325


Linux HOWTO − Networking − Sommario

101 0
102 0
103 0
104 0
105 0
106 0

# ESECUZIONE DI NWSERV IN BACKGROUND E UTILIZZO DEL FILE DI LOG


# Sintassi:
# 200 <flag>
# 0 = esegue NWSERV in foreground e non utilizza il file di l
# 1 = esegue NWSERV in background e utilizza il file di log

200 1

# NOME DEL FILE DI LOG


# Sintassi:
# 201 <file di log>

201 /tmp/nw.log

# SCRITTURA SUL FILE DI LOG IN CODA O IN SOVRASCRITTURA


# Sintassi:
# 202 <flag>
# 0 = scrive aggiungendo in coda ad un file di log esistente
# 1 = sovrascrive un file di log esistente

202 1

# TEMPO DI SPEGNIMENTO DEL SERVER


# Questa riga imposta quanto tempo deve passare dallo spegnimento d
# server per lo spegnimento effettivo del server.
# Sintassi:
# 210 <tempo>
# in secondi (il valore predefinito è 10)

210 10

# INTERVALLO DI ROUTING BROADCAST


# Esprime il tempo in secondi tra broadcast del server
# Sintassi:
# 211 <tempo>
# in secondi (il default è 60)

211 60

# INTERVALLO DI ROUTING LOGGING


# Imposta quanti broadcast avvengono prima di effettuare la
# registrazione delle informazioni di rete.
# Sintassi:
# 300 <numero>

300 5

# FILE DI LOG DEL ROUTING


# Imposta il nome del file di registrazione del routing
# Sintassi:
# 301 <nomefile>

301 /tmp/nw.routes

Configurazione della macchina Linux come server NCP 326


Linux HOWTO − Networking − Sommario

# APPEND/SOVRASCRITTURA DEL FILE DI LOG DEL ROUTING


# Imposta se si desidera scrivere aggiungendo in coda su un file di
# log esistente, oppure se si vuole sovrascriverlo.
# Sintassi:
# 302 <flag>
# <flag> 0 per append, 1 per creazione/sovrascrittura

302 1

# TEMPO DI GUARDIA
# Imposta il tempo per messaggi di guardia in grado di assicurare c
# la rete sia ancora viva.
# Sintassi:
# 310 <valore>
# <valore> = 0 − invia sempre dei messaggi
# < 0 − (−ve) per disabilitare i messaggi
# > 0 − invia messaggi quando il traffico di rete
# scende al di sotto di "n" ticks

310 7

# STATION FILE
# Imposta il nome per i station file che determinano per quali
# macchine il fileserver si comporterà come fileserver primario.
# La sintassi di questo file è descritta nella directory "examples"
# del codice sorgente.
# Sintassi
# 400 <nomefile>

400 /etc/nwserv.stations

# GESTIONE DEL GET NEAREST FILESERVER


# Imposta la gestione delle richieste "Get Nearest Fileserver" SAP.
# Sintassi:
# 401 <flag>
# <flag> può essere: 0 − disabilita le richieste "Get Nearest
# Fileserver".
# 1 − Il file "stations" contiene le stazi
# da escludere.
# 2 − Il file "stations" contiene le stazi
# da includere.

401 2

Avviamento del server


Se il server è stato configurato in modo tale da aspettarsi che programmi est
configurino la rete o forniscano funzionalità di instradamento, allora tali pro
devono essere eseguiti prima di avviare il server. Invece, supponendo che il
sia stato configurato affinché esso stesso configuri le interfacce e fornisca i
di instradamento, sarà sufficiente il solo comando:

# nwserv

Collaudo del server


Per controllare un server bisognerebbe in primo luogo collegarsi da un clien
NetWare sulla propria rete. Quindi impostare un CAPTURE dal client ed ese

Configurazione della macchina Linux come server NCP 327


Linux HOWTO − Networking − Sommario

una stampa. Se entrambe queste operazioni hanno successo, allora il server


funzionante.

Il pacchetto lwared
Ales Dryak (A.Dryak@sh.cvut.cz) ha sviluppato lwared per consentire a Linux di
come fileserver basato su NCP.

Ales ha chiamato il pacchetto lwared, abbreviazione per LinWare Daemon.

Capacità di lwared

Il server lwared è in grado di fornire un sottoinsieme delle funzionalità complete d


Novell. Comprende la messaggistica ma non fornisce alcuna funzionalità di stampa.
Attualmente non funziona molto bene con client Windows 95 o Windows NT. Il ser
lwared si basa sulla presenza di programmi esterni per costruire e aggiornare le ta
instradamento e SAP di IPX. Client che non si comportano correttamente possono c
problemi al server. È importante sottolineare che le funzionalità di traduzione dei fil
non sono state incluse.

Il server funziona per shell NETX e VLM NetWare.

Come ottenere lwared

Il pacchetto lwared può essere compilato per qualsiasi kernel successivo al 1.2.0,
è consigliata la versione 1.2.13 poiché in tal modo non sono necessari patch per il k
Alcune delle funzionalità IPX sono cambiate con kernel di versione 1.3.*: questo si
che sono necessari patch specifici per fare in modo che lwared funzioni correttam
Esistono patch appropriati per i nuovi kernel, pertanto se si deve utilizzare un kerne
dovrebbe essere possibile avere lwared correttamente funzionante.

Il pacchetto lwared può essere ottenuto tramite ftp anonimo da: klokan.sh.cvut.cz
/pub/linux/linware/ o da: sunsite.unc.edu /pub/Linux/system/network/daemons o sit
La versione al momento in cui questo documento viene scritto è:
lwared−0.95.tar.gz.

Compilazione di lwared

Esecuzione del comando tar per il pacchetto lwared


Qualcosa del tipo:

# cd /usr/src
# tar xvpfz lwared−0.95.tar.gz

Compilazione di un kernel con supporto Ethernet e IPX


Coloro che utilizzano un kernel alpha 1.3.*, dovrebbero passare alla v
1.3.17 o superiore poiché le patch supportate sono state create per questa ve
kernel 1.3.* più vecchi della versione 1.3.17 richiederanno una installazione
manuale delle patch (il file INSTALL contenuto nel pacchetto riporta alcun

Il pacchetto lwared 328


Linux HOWTO − Networking − Sommario

informazioni su come eseguire questa operazione). Per installare le patch su


kernel 1.3.17 si può digitare il comando:

# make patch

Il passo successivo all'applicazione delle patch, consiste nell'assicurarsi che


eseguita la compilazione del kernel con abilitazione del supporto IPX. In un
di versione 1.2.13 è sufficiente aver risposto ``Y'' alla domanda: ``The IP
protocol'', come illustrato nell'esempio che segue:

...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...

In kernel più recenti il procedimento è analogo, tuttavia il testo del messagg


potrebbe essere leggermente diverso.

Inoltre, è necessario includere il driver appropriato per la propria scheda Eth


Maggiori informazioni in l'Ethernet−HOWTO.

A questo punto è possibile procedere con la compilazione del kernel. Non s


dimentichi di eseguire lilo una volta terminata l'operazione.

Compilazione e installazione di lwared


Per compilare lwared controllare in primo luogo, e modificare se necessa
server/config.h. Il file contiene diverse impostazioni che guideranno
comportamento del server. I valori predefiniti dovrebbero essere corretti, tu
dovrebbe controllare che le directory specificate per i file di log corrisponda
impostazioni del proprio sistema.

# make depend
# make
# make install

Può accadere che il comando ``make depend'' sembri non trovare il file
float.h sul sistema, tuttavia dovrebbe funzionare comunque. Può anche
che, effettuando la compilazione con gcc 2.6.3 sia necessario modificare la

#include <net/route.h>

con

#include <net/if_route.h>

all'interno di /lib/ipxkern.c poiché, talvolta questo file ha un nome d

Il pacchetto lwared 329


Linux HOWTO − Networking − Sommario

Il comando ``make install'' tenterà di installare il server e i programmi


demone di routing all'interno della directory /usr/sbin, il programma
lwpasswd in /usr/bin, i programmi di utilità IPX in /sbin e infine, l
di manuale verranno installate nella directory /usr/man. Se qualcuna di q
locazioni non fosse disponibile nel sistema, sarà necessario modificare il
Makefile per impostare le directory destinazione.

Configurazione e utilizzo di lwared

Configurazione della rete IPX


La prima cosa da fare consiste nella configurazione delle interfacce Etherne
supportare le reti IPX supportate dal proprio server. È necessario conoscere
indirizzi di rete IPX per ciascuno dei propri segmenti LAN, quale dispositiv
Ethernet (eth0, eth1 ecc.) si trova su ciascun segmento, quale tipo di tram
(802.3, EtherII ecc.) viene utilizzata da ogni segmento LAN e quale in
di Rete Interna deve essere utilizzato dal proprio server (fondamentale se il
offre servizi a più di un segmento LAN). Esempio di configurazione per un
su due segmenti dissimili con indirizzi di rete IPX 23a91300 e 23a9130
indirizzo di rete interna bdefaced:

# ipx_internal_net add BDEFACED 1


# ipx_interface add eth0 802.3 23a91300
# ipx_interface add eth1 etherii 23a91301

Avvio dei demoni di instradamento


Il kernel instrada i pacchetti IPX come pure per IP, tuttavia sono richiesti
programmi aggiuntivi per gestire l'aggiornamento delle tabelle. Nel caso di
sono necessari due demoni, entrambi supportati da lwared: ipxripd ges
informazioni di instradamento e ipxsapd le informazioni di SAP. Per avv
demoni è sufficiente specificare la locazione in cui devono scrivere i propri
messaggi di log:

# ipxripd /var/adm/ipxrip
# ipxsapd /var/adm/ipxsap

Configurazione del server lwared


È necessario eseguire la configurazione manuale di due file per consentire i
server lwared. Tali file sono:

/etc/lwpasswd
In questo file vengono memorizzate le informazioni di account dell
Il programma lwpasswd è utilizzato per mantenerlo aggiornato. L
forma più semplice del file /etc/lwpasswd è:

ales:
terryd:
guest:

Si tratta di una semplice lista di identificativi di login, seguiti dal ca


``:'' e dalla versione criptata della password. Due importanti avvert
sono: l'assenza di password criptate significa che non ne esiste alcu

Configurazione e utilizzo di lwared 330


Linux HOWTO − Networking − Sommario

utenti LinWare devono avere un account per Linux quindi ogni uten
presente nel file /etc/lwpasswd deve apparire anche in
/etc/passwd; l'utente root è l'unico in grado di modificare le p
di un altro utente LinWare come di seguito indicato:

# lwpasswd rodg
Changing password for RODG
Enter new password:
Re−type new password:
Password changed.

/etc/lwvtab
Si tratta delle tabelle relative al volume LinWare e in esse sono
memorizzate le informazioni su directory da rendere disponibili agl
LinWare (la natura del file è simile a quella di /etc/exports di
Un semplice esempio del suo formato è:

SYS /lwfs/sys
DATA /lwfs/data
HOME /home

Il nome del Volume è seguito da spazi bianchi seguiti dalle director


da esportare. Ci deve essere almeno una riga relativa al volume SY
affinché un server possa avviarsi. Se si desidera che i propri utenti D
siano in grado di utilizzare il proprio server LinWare come server p
allora deve essere installata una struttura standard per il volume SY
la directory che viene esportato come volume SYS. Dal momento c
copyright di questi file appartiene a Novell Corporation, è necessari
possedere una licenza per il loro utilizzo. Se gli utenti utilizzeranno
server Novell come server primario, allora la licenza non è necessar

Avvio del server lwared


lwared viene avviato tramite il comando:

# lwared

Se il server è stato avviato come mostrato, il nome del server LinWare dipe
dalla risposta dell'hostname Linux. Se si desidera un nome diverso, è possi
indicarlo esplicitamente. Ad esempio, il comando:

# lwared −nlinux00

avvia il server con nome linux00.

Collaudo del server lwared


La prima cosa da controllare è la presenza del proprio server LinWare nell'e
fornito dal comando slist (eseguito su un client DOS della propria rete).
programma slist è presente nel volume SYS di un fileserver Novell, pert
essere eseguire solo da una macchina già collegata. Se l'esito è negativo, co
che ipxsapd e lwared siano entrambi in esecuzione. Al contrario, se l'es
positivo, si tenti la connessione al server e il mount di un volume, tramite:

Configurazione e utilizzo di lwared 331


Linux HOWTO − Networking − Sommario

C:> attach linux00/ales


...
...
C:> map l:=linux00/data:
C:> l:

A questo punto dovrebbe essere possibile lavorare con il nuovo disco propr
con qualsiasi altro disco. Le abilitazioni ai file corrisponderanno a quelle
dell'account a Linux parallelo al proprio login LinWare.

[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 332


Configurazione della macchina
Linux come client di stampa
Novell
Il pacchetto npcfs contiene due piccoli programmi che consentono di
indirizzare una stampa dalla propria macchina Linux verso una
stampante collegata a un server di stampa Novell. Il comando nprint
permette spedire un file a una coda di stampa Netware. Il comando
pqlist fornisce la lista delle code di stampa disponibili.

Per ottenere e installare questi comandi, è sufficiente seguire le


istruzioni relative al client NCP descritte in precedenza.

Entrambi i comandi richiedono che siano forniti il proprio username e


password, qundi per facilitare le operazioni, a volte si preferisce
realizzare qualche shell script. Un esempio per i comandi potrebbe
essere:

# pqlist −S ACCT_FS01 −U guest −n


# nprint −S ACCT_FS01 −q LASER −U guest −n filename.txt

La sintassi per il login è simile a quella del comando ncpmount. Negli


esempi sopra riportati si assume che il fileserver ACCT_FS01 abbia un
account ``guest'' senza password, che esista una coda di stampa di nome
LASER e che l'utente ``guest'' sia in grado di eseguire stampe su di essa.

Nella macchina Linux dell'autore c'è un corto shell script per ciascuna
stampante Novell. Questo può essere usato come filtro di stampa per
consentire la stampa usando lo spooler standard di Linux.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Configurazione della macchina Linux come client di stampa Novell 333


Documenti:

Open Source Definition


Configurazione di una macchina Linux co
GNU General Public License
print server Novell
La cattedrale e il bazaar
Il pacchetto npcfs contiene un programma che consente alla macchina Linux di
Colonizzare la noosfera comportarsi come un server di stampa su una rete NetWare. Per sapere come ottene
Il calderone magico
eseguire la compilazione di tale programma, seguire le istruzioni contenute nel para
relativo al Client NetWare ([*]). Alternativamente, il supporto è incluso nel pacchet
Libri: mars_nwe.

Italian crackdown
Prerequisiti
Open Sources

MediaMorfosi La configurazione è piuttosto semplice ma si basa sul fatto che la configurazione di


sia già stata completata e sia funzionante sotto Linux. Questo argomento è trattato p
GTK+/GNOME
sviluppo applicazioni
dettaglio all'interno del Printing−HOWTO

Linux HOWTO: Installazione e configurazione


Configurazione
Risorse
Quando si ha a disposizione una configurazione di stampa funzionante, e l'utility ps
Feedback è stata compilata e installata, è necessario aggiungere dei comandi per avviarla all'in
dei propri file rc.

Il comando da utilizzare dipende da come si desidera che funzioni, tuttavia nella sua
più semplice il comando sarà del tipo:

# pserver −S ACCT_01 −U LASER −P secret −q LASERJET

Questo comando richiede all'utility pserver di effettuare un login al file server AC


con username ``LASER'' e password ``secret'' e di prelevare dei job dalla coda di st
LASERJET. Quando viene ricevuto un job di stampa, il comando predefinito lpr l
al demone di stampa Linux. La coda di stampa deve già essere definita sul fileserve
username deve avere privilegi per la coda.

Alternativamente, sarebbe stato possibile utilizzare qualsiasi comando Linux per ac


stampare il job. L'opzione −c consente di specificare il corretto comando di stampa
esempio, il comando:

# pserver −S ACCT_01 −U LASER −P secret −q LASERJET −c "lpr −Plaser

avrebbe il medesimo risultato dell'esempio precedente, ma il job verrebbe inviato al


configurazione laserjet del printcap in luogo di quella predefinita.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Configurazione di una macchina Linux come print server Novell 334


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 335


Panoramica sui comandi
utente e di amministrazione di
ncpfs
Le versioni più recenti del pacchetto ncpfs di Volker
includono diversi comandi utente e di amministrazione. I tool
sono installati come parte del processo di installazione di
ncpfs, pertanto se non fossero disponibili, si consiglia di
seguire le istruzioni contenute nel paragrafo relativo ai Client
Novell ([*]) per eseguire compilazione ed installazione.

Informazioni dettagliate sono presenti all'interno del manuale;


tuttavia, nel seguito viene riportata una breve descrizione dei
comandi.

Comandi utente
ncopy
Network Copy − copia file in modo efficiente tramite
l'utilizzo di una funzione NetWare in luogo di
eseguire una copia attraverso la rete.

nprint
Network Print − stampa un file indirizzato a una coda
di stampa Netware di un server Netware.

nsend
Network Send − invia messaggi ad altri utenti su un
server Netware.

nwbols
List Bindery Objects − elenca informazioni di bindery
di un server Netware.

nwboprops
List Properties of a Bindery Object − elenca le
proprietà di un oggetto bindery Netware.

nwbpset
Set Bindery Property − imposta le proprietà di un
oggetto bindery Netware.

nwbpvalues
Print Netware Bindery Objects Property Contents −
stampa il contenuto di un oggetto bindery Netware.

nwfsinfo

Panoramica sui comandi utente e di amministrazione di ncpfs 336


Linux HOWTO − Networking − Sommario

Fileserver Information − stampa le informazioni di


base di un server Netware.

nwpasswd
Netware Password − modifica la password di utenti
Netware.

nwrights
Netware Rights − visualizza i diritti associati a un
determinato file o directory.

nwuserlist
Userlist − fornisce l'elenco di utenti collegati a un file
server Netware.

pqlist
Print Queue List − visualizza il contenuto di una coda
di rete Netware.

slist
Server List − visualizza un elenco di file server
Netware conosciuti.

Strumenti per la gestione


nwbocreate
Create a Bindery Object − crea un oggetto bindery
Netware.

nwborm
Remove Bindery Object − cancella un oggetto bindary
Netware.

nwbpadd
Add Bindery Property − imposta il valore di una
proprietà esistente di un oggetto bindary Netware.

nwbpcreate
Create Bindery Property − crea una nuova proprietà
per un oggetto bindary Netware esistente.

nwbprm
Remove Bindery Property − elimina una proprietà di
un oggetto bindary Netware.

nwgrant
Grant Trustee Rights − assegna diritti di
amministrazione a una directory su un file server
Netware.

Strumenti per la gestione 337


Linux HOWTO − Networking − Sommario

nwrevoke
Revoke Trustee Rights − rimuove diritti di
amministrazione da una directory su un fileserver
Netware.

[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 338


Configurazione di PPP per reti con
supporto IPX
Le nuove versioni per il demone PPP pppd di Linux consentono il
trasporto dei pacchetti IPX attraverso un collegamento seriale PPP. È
necessaria almeno la versione ppp−2.2.0d del demone. Si faccia
riferimento al PPP−HOWTO per informazioni dettagliate su dove
trovarlo. Quando si compila pppd è necessario abilitare il supporto IPX
aggiungendo le due righe seguenti:

IPX_CHANGE = 1
USE_MS_DNS = 1

al file:
/usr/src/linux/pppd−2.2.0f/pppd/Makefile.linux.

IPX_CHANGE
configura il supporto IPX all'interno di PPP.

USE_MS_DNS
abilita le macchine Microsoft Windows 95 a eseguire Name
Lookups.

L'unica particolarità per farlo funzionare consiste nella configurazione.

Esistono diversi modi per farlo, tuttavia ne verranno descritti solo due,
entrambi non ancora verificati. Pertanto, si consideri questo paragrafo
come sperimentale, e chiunque ottenga dei risultati positivi è invitato a
comunicarlo.

Configurazione di un server IPX/PPP


Innanzi tutto, è necessario configurare la propria macchina Linux come
server IP/PPP. Si tratta di un'operazione tutt'altro che difficile. Ancora
una volta, si invita a seguire le istruzioni contenute in PPP−HOWTO e
si otterranno i risultati desiderati. Dopo di che sono sufficienti modifiche
minime per fare in modo che IPX funzioni con la stessa configurazione.

Primi passi

Uno dei primi passi consiste nella configurazione della propria


macchina Linux come router IPX come descritto in un paragrafo
precedente. Non sarà necessario utilizzare il comando ipx_route per
l'interfaccia ppp poiché pppd stesso effettuerà la configurazione come
viene fatto per IP. Nel momento in cui il demone ipxd entra in
funzione, rileverà automaticamente ogni nuova interfaccia IPX e
propagherà instradamenti per ognuna di esse. In tal modo, i propri host
dialup potranno essere automaticamente visti da altre macchine al

Configurazione di PPP per reti con supporto IPX 339


Linux HOWTO − Networking − Sommario

momento della loro connessione.

Progettazione

Quando la macchina lavora come server, sarà propria responsabilità


assegnare indirizzi di rete a ciascuna delle connessioni PPP nel
momento in cui vengono stabiliti. È molto importante sapere che ogni
connessione PPP sarà una rete IPX e avrà indirizzo di rete IPX univoco.
Questo significa che è necessario decidere come saranno allocati gli
indirizzi e la loro corrispondenza. Una semplice convenzione consiste
nell'allocare un indirizzo di rete IPX a ogni dispositivo seriale che
supporterà IPX/PPP. È possibile allocare gli indirizzi di rete IPX in
relazione all'identificativo di login dell'utente connesso, tuttavia in
genere non esistono particolari motivi per farlo.

Nel seguito si suppone che questo sia stato fatto, e che vengano usati
due dispositivi seriali (modem). Gli indirizzi assegnati in questo
esempio sono:

device IPX Network Address


−−−−−− −−−−−−−−−−−−−−−−−−−
ttyS0 0xABCDEF00
ttyS1 0xABCDEF01

Configurazione di pppd per il server

Si esegua la configurazione del file /etc/ppp/options.ttyS0 nel


modo seguente:

ipx−network 0xABCDEF00
ipx−node 2:0
ipxcp−accept−remote

e quella del file /etc/ppp/options.ttyS1:

ipx−network 0xABCDEF01
ipx−node 3:0
ipxcp−accept−remote

Questi comandi richiederanno a pppd di allocare alla connessione, nel


momento in cui viene stabilita, gli indirizzi di rete IPX appropriati, di
impostare il numero di nodo locale a 2 o 3 e lascerà che il nodo remoto
sovrascriva il proprio numero di nodo con quello che esso stesso
conosce. Si noti che ognuno degli indirizzi è composto da cifre
esadecimali e che 0x è necessario all'inizio dell'indirizzo di rete, ma non
all'inizio dell'indirizzo del nodo. Esistono altri metodi per configurare le
stesse informazioni. Disponendo di un solo modem, è sufficiente
modificare il file /etc/ppp/options. In alternativa, queste
informazioni possono essere passate a pppd tramite righe di comando.

Progettazione 340
Linux HOWTO − Networking − Sommario

Verifica della configurazione del server

Per verificare la configurazione è necessario avere a disposizione un


client del cui funzionamento si sia certi. Quando il chiamante compone
il numero, si collega e pppd viene avviato, esso assegnerà l'indirizzo di
rete, comunicherà al client il numero di nodo del server e negozierà il
numero di nodo del client. Una volta completata questa operazione, e
dopo che ipxd abbia rilevato la nuova interfaccia, il client dovrebbe
essere in grado di stabilire le connessioni con gli host remoti.

Configurazione di un client IPX/PPP


Durante la configurazione di un client, il fatto di configurare o meno la
propria macchina Linux come router IPX dipende dall'avere o meno una
LAN locale che si desidera funzioni come un router IPX. Se si sta
collegando una singola macchina (standalone) a un server IPX, non è
necessario eseguire ipxd come descritto. Una configurazione di questo
tipo è molto più semplice poiché non devono essere configurati diversi
dispositivi seriali.

Configurazione di pppd per il client

La configurazione più semplice è quella che consente al server di fornire


tutte le informazioni circa la configurazione della rete IPX. Tale
configurazione sarà compatibile con quella del server sopra descritta. È
necessario aggiungere alcune opzioni al proprio file
/etc/ppp/options:

ipxcp−accept−network
ipxcp−accept−remote
ipxcp−accept−local

Queste opzioni richiedono a pppd di comportarsi in modo


completamente passivo e di accettare tutti i dettagli di configurazione
dal server. Potrebbero essere forniti dei valori di default per i server che
non forniscono dettagli aggiungendo le righe relative a ipx−network
e ipx−node in modo analogo a quanto descritto per la configurazione
del server.

Verifica del client IPX/PPP

Per verificare il client è necessario collegarsi a un server del cui


funzionamento si sia certi. Dopo aver attivato il collegamento e dopo
che pppd sia stato avviato, dovrebbe essere possibile vedere i dettagli
IPX configurati sul proprio dispositivo ppp0 se si esegue il comando
ifconfig. Allo stesso modo, dovrebbe essere possibile utilizzare
ncpmount.

Non è certa la necessità di aggiungere manualmente gli instradamenti


IPX in modo da poter raggiungere fileserver distanti. Se qualche lettore

Verifica della configurazione del server 341


Linux HOWTO − Networking − Sommario

è in grado di dare dei suggerimenti, sarebbero estremamente graditi.

[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 342


Il tunnel IPX su IP
Molto frequentemente si verifica la situazione in cui due Reti Locali
(LAN) Novell sono in collegamento tramite un'unica connessione IP.
In questo caso ad esempio, com'è possibile, giocare a DOOM per
DOS in più giocatori? Andreas Godzina (ag@agsc.han.de) è in grado
di fornire una risposta che consiste in ipxtunnel.

ipxtunnel incapsula pacchetti IPX con datagrammi TCP/IP, in


modo che possano essere trasportati con una connessione TCP/IP.
ipxtunnel resta in ascolto e quando rileva un pacchetto IPX, lo
ingloba in un datagramma TCP/IP e lo instrada verso l'indirizzo IP
remoto specificato. Affinché questo i procedimento funzioni, la
macchina verso cui viene instradato l'IPX incapsulato deve
necessariamente avere in esecuzione un copia della stessa versione di
ipxtunnel.

Come ottenere ipxtunnel


ipxtunnel può essere ottenuto da sunsite.unc.edu
/pub/Linux/system/network/daemons o siti mirror.

Compilare ipxtunnel
È possibile eseguire la compilazione di ipxtunnel tramite i comandi:

# cd /usr/src
# tar xvfz .../ipxtunnel.tgz
# cd ipxtunnel
# make

Configurazione di ipxtunnel
La configurazione di ipxtunnel è molto semplice. Si supponga che
la macchina di un amico sia gau.somewhere.com e che la propria
macchina sia denominata gim.sw.edu. ipxtunnel utilizza il file di
configurazione /etc/ipxtunnel.conf, che consente di
specificare la porta UDP predefinita da utilizzare per la connessione
TCP/IP alla quale verranno inviati i dati incapsulati, e su quali delle
proprie interfacce locali ipxtunnel dove stare in ascolto e
consegnare pacchetti IPX.

Una configurazione molto semplice è riportata nell'esempio che


segue:

#
# /etc/ipxtunnel.conf per gim.sw.edu
#
# Porta UDP da utilizzare: (valore predefinito 7666)
port 7777

Il tunnel IPX su IP 343


Linux HOWTO − Networking − Sommario

#
# Macchina remota a cui inviare i pacchetti IPX:
# (nessun valore predefinito)
remote gau.somewhere.com
#
# Interfacce locali su cui restare in ascolto di IPX:
# (valore predefinito eth0)
interface eth0
interface eth1

Ovviamente, l'altra macchina possiederà un file di configurazione


simile che definisce questa macchina come host remoto.

Verifica e utilizzo di ipxtunnel


ipxtunnel si comporta come un ponte (bridge) IPX, quindi le reti
IPX che si trovano a entrambi gli estremi della connessione
dovrebbero essere parti della stessa. Andreas non ha mai verificato il
funzionamento di ipxtunnel in un ambiente davvero in grado di
supportare servizi di file Novell, pertanto se qualche lettore dovesse
realizzarlo è pregato di far sapere ad Andreas gli esiti della prova.

Se ipxtunnel funziona, è possibile l'avvio delle macchine DOOM


a entrambi gli estremi della connessione in modalità IPX. Le due
macchine dovrebbero essere in grado di vedersi. Andreas ha utilizzato
questo codice solo su linee a buona velocità e quindi non è in grado di
fare affermazioni sulle prestazioni con connessioni a bassa velocità.
Ancora una volta, si invita a comunicare successi o insuccessi.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Open Source Definition

Verifica e utilizzo di ipxtunnel 344


GNU General Public License

La cattedrale e il bazaar Supporto commerciale IPX


Colonizzare la noosfera per Linux
Il calderone magico

Network Desktop di Caldera


Libri:

Italian crackdown La società Caldera Inc. produce una distribuzione di Linux


che caratterizza un insieme di miglioramenti supportati
Open Sources
commercialmente, incluso il pieno supporto funzionale ai
MediaMorfosi client NetWare Novell. La distribuzione di base è la ben nota
Red Hat Linux Distribution e Caldera vi ha aggiunto il proprio
GTK+/GNOME
sviluppo applicazioni prodotto ``Network Desktop''. Il supporto NetWare fornisce
un client con piene caratteristiche NetWare Novell costruito
Linux HOWTO: Installazione e configurazione
sulla tecnologia della Novell Corporation. Il client fornisce
Risorse
pieno accesso ai fileserver 3.x e 4.x e include
caratteristiche come NetWare Directory Service (NDS) e
Feedback crittografia RSA.

È possibile ottenere ulteriori informazioni e ordinare dei


dettagli da: Caldera Inc Web Server
(http://www.caldera.com/).

Se si lavora in un ambiente Netware 4.x e/o NDS, il Caldera


Netware Client rappresenta l'unica soluzione disponibile.

Se un'applicazione ``industriale'' è critica per il supporto


Novell, allora sarebbe opportuno dare un'occhiata al prodotto
della Caldera.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Supporto commerciale IPX per Linux 345


Open Source Definition

GNU General Public License Alcune domande frequenti


La cattedrale e il bazaar (FAQ)
Colonizzare la noosfera
Dove si può trovare il software IPX per Linux supportato
Il calderone magico
commercialmente?
Libri:
La Caldera Corporation offre un client con licenza e con pieno
Italian crackdown supporto Netware 3.x e 4.x. È possibile ottenere informazioni
a riguardo dal Caldera Inc Web Server
Open Sources
(http://www.caldera.com/).
MediaMorfosi

GTK+/GNOME Il software IPX lavora con Arcnet/Token Ring/ ecc...?


sviluppo applicazioni

Linux HOWTO: Installazione e configurazione


Il software IPX è in grado di lavorare con le interfacce Arcnet
e Token Ring. Non si hanno ancora notizie di tentativi con
Risorse AX.25. La configurazione è la stessa che per ethernet, tranne
la necessità di sostituire i nomi di dispositivi appropriati in
Feedback luogo di ``eth0'' e gli appositi indirizzi hardware dove
necessario.

Come si configura più di un'interfaccia?

Se la propria macchina contiene più di un'interfaccia, non si


dovrebbe usare la configurazione ``plug'n'play'', ma si
dovrebbe utilizzare il comando ipx_interface per
configurare ciascuna di esse manualmente.

Come scegliere gli indirizzi IPX?

Il networking IPX è simile, ma non identico, al networking IP.


La differenza principale consiste nel modo di utilizzo degli
indirizzi. IPX non utilizza il concetto di ``subnetworking'',
pertanto l'ordinamento delle associazioni esistenti tra indirizzi
di rete e reti è differente. Le regole sono molto semplici:

• Ogni indirizzo di rete IPX deve essere univoco su una


rete geografica. Questo include gli Indirizzi di Rete
Interna. Molte organizzazioni che utilizzano IPX su
una rete geografica avranno una sorta di
indirizzamento standard che è utile seguire.
• Ogni indirizzo di host su una rete individuale deve
essere univoco. Questo significa che ogni host su
ciascuna rete IPX deve avere un indirizzo assegnato in
modo univoco. Nel caso di una rete ethernet è molto
semplice, dal momento che le schede stesse hanno un
indirizzo univoco. Nel caso di IPX/PPP bisogna
assicurarsi di allocare indirizzi univoci a tutti gli host
della rete, indipendentemente dall'estremo delle
connessioni ai quali sono collegati. Non è necessario

Alcune domande frequenti (FAQ) 346


Linux HOWTO − Networking − Sommario

che gli indirizzi degli host siano univoci lungo una


rete geografica, dal momento che l'indirizzo di rete
viene utilizzato insieme all'indirizzo dell'host per
identificarlo in modo univoco.

Quali sono i tipi di trama da utilizzare?

Esistono molti ``frame type'' sui quali è possibile eseguire


IPX. I più comuni sono descritti nel paragrafo [*] (termini
comuni) di questo documento (alla voce: tipo di frame [*]). Se
si sta installando la propria macchina su una rete esistente, si
dovrebbero utilizzare quelli che sono già in uso per avere la
possibilità di interagire con gli altri host della rete, ma se
l'installazione avviene su una rete completamente nuova e si
desidera gestire traffico sia IPX, sia IP, allora deve essere
utilizzato il frame type Ethernet_II.

Le macchine Windows95 possono interferire con


l'autorilevamento del tipo di frame?

Apparentemente sembra accadere. Si suggerisce di utilizzare


la configurazione manuale (e si tratta comunque del metodo
migliore) del tipo di frame in luogo di quella automatica.

Perché appare il messaggio `invalid argument' durante la


configurazione di IPX?

Probabilmente non è in esecuzione un kernel in grado di


supportare IPX. Le possibili soluzioni consistono nel
ricompilare il proprio kernel in modo da abilitare il supporto,
oppure controllare nuovamente di aver utilizzato lilo per
installare e avviare il nuovo kernel.

Perché appare il messaggio `package not installed' durante


la configurazione di IPX?

Probabilmente non è in esecuzione un kernel in grado di


supportare IPX. Le possibili soluzioni consistono nel
ricompilare il proprio kernel in modo da abilitare il supporto,
oppure controllare nuovamente di aver utilizzato lilo per
installare e avviare il nuovo kernel.

Perché appare il messaggio `IPX support not in kernel' da


pppd?

Probabilmente IPX è stato compilato come modulo senza


assicurarsi di averlo caricato prima di avviare pppd.

Come eseguire l'esportazione NFS di un filesystem NCP


montato?

Alcune domande frequenti (FAQ) 347


Linux HOWTO − Networking − Sommario

L'utilizzo di NFS per esportare un filesystem NCP richiede


che il suo collegamento sia stato eseguito utilizzando l'opzione
ncpmount −V. Questa opzione consente di montare un solo
volume di un fileserver anziché di tutti i volumi
contemporaneamente. In questo modo, il proprio demone NFS
consentirà di esportare tale file system con le solite modalità.

Perché il comando `slist' non funziona se la rete interna


contiene mars_nwe?

È necessario abilitare ``get nearest server''. Ossia, la riga 401


nel file /etc/nwserv.conf dovrebbe essere 0 a meno che
non esistano particolari motivi per non voler rispondere a ``get
nearest servers''. Se si desidera solamente che il comando
``slist'' funzioni senza rispondere a ogni richiesta ``get
nearest server'', includere i propri numeri di rete interna e di
nodo nel file /etc/nwserv.stations, quindi impostare
la riga 401 nel file /etc/nwserv.conf con il valore 2.

Il pacchetto ncpfs funziona con mars_nwe?

Il codice di Martin e Volker sta lentamente iniziando a


convergere. Versioni recenti di mars_nwe contengono
un'opzione che consente il funzionamento con ncpfs. È
necessario abilitare WITH_NAME_SPACE_CALLS nel file
mars_nwe config.h.

Esiste software per MSDOS gratuito funzionante con


mars_nwe?

Martin possiede un pacchetto distribuito insieme a


mars_nwe che offre supporto client DOS gratuito per il
server mars_nwe. È disponibile nello stesso sito del server,
con nome mars_dosutils−0.01.tgz. Include codice sorgente in
C, compilabile con Borland(tm) C, per programmi come
slist.exe, login.exe, map.exe ecc.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Alcune domande frequenti (FAQ) 348


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 349


Copyright
The IPX−HOWTO, a guide to software supporting the IPX protocol for
Linux. Copyright (c) 1995 Terry Dawson.

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the:

Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,


USA.

L'unica licenza valida è quella originale in lingua inglese.


Di seguito ne trovate una traduzione abbastanza fedele che
però non ha alcun valore legale.

IPX−HOWTO
(http://www.pluto.linux.it/ildp/HOWTO/IPX−HOWTO.htmltraduzione
italiana), guida al supporto software del protocollo IPX per Linux.
Copyright (c) 1995 Terry Dawson.

Questo HOWTO è gratuito; può essere distribuito e/o modificato sotto i


termini della GNU General Public License come pubblicato dalla
Free Software Foundation; sia la versione 2 della Licenza, sia
ogni altra versione successiva.

Questa documentazione viene distribuita con la speranza che possa essere


utile, ma SENZA ALCUNA GARANZIA, senza neanche la garanzia implicita
di COMMERCIABILITA' o IDONEITA' PER UNO SCOPO
PARTICOLARE. Si faccia riferimento alla GNU General Public
License per ulteriori dettagli.

Copia della GNU General Public License dovrebbe essere allegata


a questa documentazione; se così non fosse, scrivere a:

Free Software Foundation, Inc., 675 Mass Ave, Cambridge,


MA 02139, USA.

Copyright 350
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 351


Varie e ringraziamenti
Terry Dawson
<terry@perf.no.itg.telstra.com.au> per il
documento originale.

David E. Storey (dave@tamos.gmu.edu) e Volker Lendecke


(lendecke@namu01.gwdg.de) entrambi hanno dato una
grande assistenza fornendomi informazioni per questo
documento. Gilbert Callaghan (gilbert@pokey.inviso.com),
David Higgins (dave@infra.com) e Chad Robinson
(chadr@brtgate.brttech.com) hanno contribuito alle
informazioni sulla configurazione di IPX/PPP. Bennie Venter
(bjv@Gil−galad.paradigm−sa.com) ha contribuito fornendo
utili informazioni relative ai tipi di frame. Christopher Wall
(vergil@idir.net) ha fornito utili suggerimenti per migliorare
la leggibilità e il layout del documento. Anche Axel Boldt
(boldt@math.ucsb.edu) ha contribuito con utili suggerimenti.
Erik D. Olson (eriko@wrq.com) ha fornito utili informazioni
sulla configurazione di PPP per IPX. Brian King
(root@brian.library.dal.ca) ha contribuito al paragrafo delle
domande frequenti.

``NetWare'' è un marchio registrato (registered trademark) di


Novell Corporation.

``Caldera'' è un marchio registrato (registered trademark) di


Caldera Corporation.

Saluti Kevin Thorpe.

<kevin@pricetrak.com>

Abstract:

Questo documento descrive come impostare una intranet


usando Linux come server per collegare insieme Unix,
Netware, NT e Windows. Quindi, semplicemente stabilendo la
connessione al vostro sistema Linux avrete accesso trasparente
a tutte le piattaforme. Vengono fornite spiegazioni dettagliate
su come installare HTTP utilizzando il server NCSA e come
collegarsi a esso da client TCP/IP della Novell, Microsoft
Windows 3.1, WFWG, Win95 e WinNT e MacTCP sul
PowerMac della Apple. Traduzione italiana e manutenzione:
Jose Luis Scanferlato (jls@acm.org).

[Precedente] [Sommario] [Successivo]

Varie e ringraziamenti 352


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 353


Introduzione
In parole semplici, intranet è un termine descrittivo che viene usato per
l'utilizzo delle tecnologie di Internet all'interno di un ente aziendale, piuttosto
che per la connessione esterna alla rete globale Internet. Questa
implementazione viene svolta in modo tale da distribuire le risorse
informatiche di una organizzazione in modo trasparente e direttamente sulla
scrivania di ogni individuo con minimo costo, tempo e fatica. Questo
documento intende spiegare in parole semplici come impostare un'intranet
usando strumenti software liberamente disponibili oppure che hanno un costo
minimo.

Questo documento assume che sappiate già come installare TCP/IP sul vostro
server Linux e come collegarlo fisicamente alla vostra LAN usando una
scheda di rete Ethernet. Si presuppone che abbiate inoltre le conoscenze
basilari dei sistemi Netware, WinNT e Mac. La configurazione del server
Netware è stata illustrata usando come base la versione 3.1x. Potete anche
usare INETCFG per ottenere lo stesso risultato. Dal lato client, la discussione
riguarda Windows 3.1x, Windows for Workgroups, Windows 95, WinNT e
Apple PowerMac.

Negli esempi useremo gli indirizzi delle rete private (RFC−1918) 172.16.0.0 e
172.17.0.0. Potete scegliere altri indirizzi a seconda delle vostre esigenze.

Server Server Server


Linux Netware WFWG/WinNT
172.16.0.1 172.16.0.2 172.16.0.3
| | | 172.16.0.0
−−−−−−+−−−−−+−−−−−+−−−−−−−−+−−+−−−−−−−−−−−−−−
| | 172.16.0.254
W/S 1 Router
172.16.0.5 | 172.17.0.254
|
−−−−−−−−−−+−−−−−−−+−−−−−−−−
172.17.0.0 |
W/S 2
172.17.0.5

Cosa serve
Prima di tentare di installare, dovete procurarvi il seguente software.

• Il software del server HTTP che potete prelevare da OneStep NCSA


HTTPd Downloader sulla pagina
http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html.
• Il client Netware della Novell, disponibile da
http://support.novell.com/ (I file TCP/IP vengono distribuiti insieme
al client).
• Il client TCP/IP della Microsoft, disponibile da
http://www.microsoft.com/
• Il client Apple MacTCP, disponibile da http://www.apple.com/

Introduzione 354
Linux HOWTO − Networking − Sommario

• Un WWW Browser come Netscape da http://home.netscape.com/ o


MS Internet Explorer da http://www.microsoft.com/ o NCSA Mosaic
da
http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/NCSAMosaicHome.html

Nuove versioni di questo documento


L'ultima versione (in italiano) di questo documento, sarà sempre reperibile
nell'area WWW e FTP dell'Italian Linux Documentation Project
(rispettivamente http://www.pluto.linux.it/ildp/ e
ftp://ftp.pluto.linux.it/pub/ildp/ per la rete commerciale, e
http://ildp.psy.unipd.it e ftp://ftp.psy.unipd.it/pub/pluto/ildp/ per la rete GARR
e loro mirror elencati nel file ftp://ftp.pluto.linux.it/pub/pluto/MIRRORS.

L'ultima versione (in inglese) di Linux Intranet Server HOWTO sarà


periodicamente inviata sui newsgroup comp.os.linux.announce e
comp.os.linux.help, ed è anche disponibile sui vari siti FTP dedicati a Linux,
compreso sunsite.unc.edu.

L'ultima versione (in inglese) di questo documento è disponibile in formato


HTML a http://www.inet.co.th/cyberclub/karnadp/http.html.

Critiche e commenti
Se avete delle domande o commenti su questo documento, potete contattare
via E−mail Pramod Karnad, all'indirizzo karnad@indiamail.com.
Suggerimenti, critiche e posta sono sempre benvenuti. Se trovate degli errori
in questo documento, fatemelo sapere in modo di correggerli in una versione
successiva. Grazie.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Nuove versioni di questo documento 355


Open Source Definition

GNU General Public License Installazione del server HTTP


La cattedrale e il bazaar
Quando prelevate il software avete due opzioni: ottenere i sorgenti e
Colonizzare la noosfera compilarli, oppure prendere gli eseguibili precompilati. Da NCSA sono
Il calderone magico disponibli gli eseguibili precompilati per Linux (ELF), ma non per versioni
più vecchie.
Libri:

Italian crackdown
Preparativi per il prelievo del software
Open Sources Il server della NCSA vi guiderà attraverso i passi delle diverse opzioni di
MediaMorfosi configurazione, e preparerà i vari file per Voi. Ma prima di tentare il
prelievo di HTTPd preparatevi a rispondere alle seguenti domande
GTK+/GNOME
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione


Il sistema operativo

Risorse Prima, dovete scegliere tra prelevare i sorgenti e la versione pre−compilata


del software. Se il vostro sistema non compare nei menu, allora dovrete
Feedback prelevare i sorgenti di default e compilarlo Voi stessi.

Per verificare la versione di Linux che state usando, digitate il seguente


comando

linux:~$ uname −a

La risposta del comando sarà simile a questa

linux:~$ uname −a
Linux linux 2.0.29 #4 Tue Sep 13 04:05:51 CDT 1994 i586
linux:~$

La versione di Linux è 2.0.29.

I rimanenti parametri possono essere specificati prima del prelievo oppure


configurati più tardi modificando il file srm.conf nella cartella
/usr/local/etc/httpd/conf. I nomi delle direttive attuali che
appaiono nel file httpd.conf sono racchiuse tra parentesi quadre.
L'unica eccezione è la direttiva DocumentRoot che compare nel file
srm.conf

Tipo di processo (ServerType)

Questo specifica come verrà eseguito il server HTTPd sul vostro sistema. Il
metodo consigliato è ``standalone''. In questo modo il demone HTTP sarà
costantemente in esecuzione. Se scegliete di caricare HTTPd sotto
#`¨inetd#`¨, l'eseguibile del server verrà ricaricato in memoria a ogni
richiesta, il che può rallentare il vostro sistema.

Installazione del server HTTP 356


Linux HOWTO − Networking − Sommario

Porta abbinata (Port)

Questo specifica a quale porta viene abbinato il demone HTTPd per


rispondere alle richieste HTTP sul vostro sistema. Se potete entrare come
``root'', usate 80 come default. Altrimenti usate qualsiasi valore compreso
tra 1025 e 65535.

Identificativo utente del server (User)

Questo è lo user id che il server assumerà quando risponde alle richieste ed


accede ai file. Questa domanda è significativa solo se il vostro server viene
eseguito come ``standalone''. Se non avete i diritti di root, usate
semplicemente il vostro nome di utente. Se siete l'amministratore del
sistema, potete creare un utente speciale in modo di controllare i diritti di
accesso ai file.

Identificativo di gruppo del server (Group)

Questo è il group id che il server utilizzerà quando risponde alle richieste ed


accede ai file. Come per l'identificativo utente del server, è significativo
solo quando il server gira in modo ``standalone''.

Se non avete i diritti di root, usate semplicemente il nome del vostro gruppo
primario. Per trovare il nome del gruppo, usate il comando groups.

Indirizzo di posta elettronica dell'amministratore del


server (ServerAdmin)

Questo è l'indirizzo di posta elettronica dell'utente al quale si dovrebbe


inviare i messaggi di segnalazione dei problemi sul server. Potete mettere la
vostra e−mail personale.

Cartella di ubicazione del server (ServerRoot)

Questa è la cartella dove risiede il server all'interno del vostro sistema. Se


avete i diritti di root, usate la cartella consigliata
/usr/local/etc/httpd. Se non avete i diritti di root, scegliete una
sottocartella all'interno della propria cartella personale. Potete sapere il
percorso della vostra cartella personale con il comando pwd.

Ubicazione dei file HTML (DocumentRoot)

Questo è il posto dove si trovano i file HTML che saranno serviti.


L'ubicazione predefinita è /usr/local/etc/httpd/htdocs. Potete
in ogni caso impostarlo come la cartella personale dell'utente speciale che
avete scelto come utente server (User), o una sottocartella della vostra
cartella individuale se non potete effettuare il login come root.

Porta abbinata (Port) 357


Linux HOWTO − Networking − Sommario

In caso di dubbio, usate le impostazioni predefinite. Adesso che avete


risposto alle domande sopra elencate, potete scaricare HTTPd della NCSA
dall'indirizzo http://hoohoo.ncsa.uiuc.edu/docs/setup/OneStep.html.
Dovreste anche leggere la documentazione di HTTPd reperibile da
http://hoohoo.ncsa.uiuc.edu/docs/ prima di qualsiasi tentativo di
installazione. Se intendete compilare i sorgenti, allora dovete modificare i
makefile in tutte le sottocartelle dei percorsi support, src,
cgi−src. Se la vostra versione di Linux si trova tra quelle supportate,
allora dovrete soltanto digitare make linux sulla cartella principale, cioè
/usr/local/etc/httpd.

Compilazione di HTTPd
La compilazione è semplice, basta digitare make linux al prompt dei
comandi dalla cartella radice del server. Nota: Gli utenti di versioni
pre−ELF di Linux dovranno rimuovere il commento dalla linea #define
NO_PASS nel file portability.h e impostare DBM_LIBS= −ldbm
nel Makefile prima di compilare HTTPd.

[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

Compilazione di HTTPd 358


Open Sources

MediaMorfosi Test del funzionamento di


GTK+/GNOME
sviluppo applicazioni
HTTPd
Linux HOWTO: Installazione e configurazione Dopo aver installato HTTPd, effettuare il login come root e
lanciare il programma digitando httpd & (si assume che l'abbiate
Risorse installato come standalone). Verificate se compare nella lista dei
processi con il comando ps. Il modo più semplice di provare
Feedback
HTTPd è usando telnet. Al prompt dei comandi di Linux digitate:

linux:~$ telnet 172.16.0.1 80

dove 80 è la porta di default di HTTP. Se avete impostato il


parametro ``Port'' con un valore diverso, allora sostituite quel
valore. La risposta che riceverete sarà simile a questa:

Trying 172.16.0.1...
Connected to linux.mydomain.
Escape character is '^]'.

Adesso digitando qualsiasi carattere e premendo Invio, avrete una


risposta simile alla seguente:

HTTP/1.0 400 Bad Request


Date: Wed, 10 Jan 1996 10:24:37 GMT
Server: NCSA/1.5
Content−type: text/html

<HEAD><TITLE>400 Bad Request < /TITLE> < /HEAD>


<BODY><H1>400 Bad Request < /H1>
Your client sent a query that this server could
not understand.<P>
Reason: Invalid or unsupported method.<P>
< /BODY>

A questo punto siamo pronti per collegarci a questo server


utilizzando un altro PC e un Browser WWW.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Test del funzionamento di HTTPd 359


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

Test del funzionamento di HTTPd 360


Collegamento al server Linux
Per favore osservate nel diagramma illustrato nel capitolo [*] (Introduzione) lo sche
d'indirizzamento usato. La workstation 1 (W/S1) si trova sulla rete 172.16.0.0 e può
accedere direttamente al server Linux mentre la workstation 2 (W/S2) si trova sulla
172.17.0.0 e ha bisogno di usare il gateway (router) 172.17.0.254 per raggiungere il
Linux. Le informazioni caratteristiche di questo gateway devono essere impostate d
la configurazione dei clienti solo su W/S2. Netware fa riferimento al gateway come
'ip_router'.

Userò W/S2 per illustrare come configurare i client. Per configurare W/S1 occorre s
cambiare l'indirizzo IP da 172.17.0.5 a 172.16.0.5 e ignorare tutti i riferimenti al
gateway/router.

Se non avete un router potete saltare la seguente sezione e procedere con i paragrafi

• [*] (Configurazione del server Netware) se usate un server Netware.


• [*] (Configurazione dei client MS Windows) se usate un client Microsoft.

Configurazione del server Linux


Potete saltare questa sezione se non state usando un router.

Il server Linux deve essere configurato per riconoscere il router e quindi permettere
workstation 2 di raggiungere il server Web. Per questo occorre effettuare il login su
Linux come root, e quindi digitare

route add gw default 172.16.0.254

Per usare il gateway automaticamente ogni volta che viene riavviato il server Linux
il file /etc/rc.d/rc.inet1 e modificate la linea contenente la definizione del
gateway impostandola a GATEWAY = "172.16.0.254". Controllate che la line
definisce il gateway non sia commentata.

ALTERNATIVA: potete aggiungere degli instradamenti alle reti dall'altra parte del
Potrebbe essere fatto come segue

route add −net 172.17.0.0 gw 172.16.0.254

Per aggiungere questo instradamento ogni volta che riavviate Linux, aggiungete il
comando al file /etc/rc.d/rc.local.

Configurazione del server Netware


Per configurare il server Netware sono richiesti i diritti del Supervisor o almeno del
Console operator. Se non li avete, provate a chiedere al vostro Amministratore di Re
aiutarvi con la configurazione. Dal server abilitate sulla LAN il tipo di trama Ethern
digitando (oppure includendo) i seguenti comandi nel file AUTOEXEC.ncf.

Collegamento al server Linux 361


Linux HOWTO − Networking − Sommario

load NE2000 frame=Ethernet_II name=IPNET


load TCPIP
bind IP to IPNET addr=172.16.0.2 mask=FF.FF.FF.0

A seconda della configurazione del vostro sistema potrebbe essere necessario specif
slot oppure il numero della scheda durante il caricamento del driver NE2000 (eg: lo
NE2000 slot=3 frame=.....).

Configurazione dei client Netware


Sui PC avete le scelte di Win3.1, WFWG e Win95. La procedura d'installazione è d
tra Win95 e le versioni precedenti se state usando i client a 32 bit di Microsoft o No
usate i client a 16 bit, la procedura sarà la stessa e quindi potete seguire le istruzioni
configurazione per Windows 3.x. Per installare il client a 32 bit per Win95 saltate
direttamente alla sezione [*] (Windows 95).

Windows 3.x

Se state usando Win3.1 o WFWG potete installare il client Netware (VLMs) ed alcu
aggiuntivi che sono forniti sul dischetto di TCP/IP, vale a dire TCPIP.exe, VTCPIP.
WINSOCK.dll e WLIBSOCK.dll.

Notate che il file WINSOCK.dll è diverso da quelli forniti con Win95 e Trumpet. In
il Client Netware con il supporto per Windows. Copiate VTCPIP.386, WINSOCK.d
WLIBSOCK.dll sotto la cartella SYSTEM e TCPIP.exe sotto la cartella NWCLIEN
Quindi modificate il file STARTNET.bat nella cartella NWCLIENT come segue:

lsl
ne2000 −−−> il driver per la vostra scheda di rete
c:\windows\odihlp.exe −−−−> se state usando WFWG
ipxodi
tcpip −−−> aggiungete questa linea
nwip −−−> se state usando Netware/IP
vlm

Create una sottocartella, diciamo NETTCP e copiate lì dentro i file HOSTS, NETWO
PROTOCOLS e SERVICES da /etc presente sul vostro server Linux oppure la ca
SYS:ETC sul vostro server Netware. Editate la copia del file HOSTS e aggiungete
linea per il vostro nuovo server Linux. Questo rende possibile identificare il vostro s
Linux come http://linux.mydomain/ invece di http://172.16.0.1/
vostro browser WWW.

127.0.0.1 localhost
172.16.0.1 linux.mydomain

Editate il file NET.cfg nella cartella NWCLIENT

Link Driver NE2000


port 300
int 3
MEM D0000
FRAME Ethernet_802.2

Configurazione dei client Netware 362


Linux HOWTO − Networking − Sommario

; −−−− aggiungete queste linee −−−−

FRAME Ethernet_II

Protocol TCPIP
PATH TCP_CFG C:\NET\TCP
ip_address 172.17.0.5
ip_netmask 255.255.255.0
ip_router 172.17.0.254 −−−> aggiungete l'indirizzo del vos
−−−> gateway solo se dovete usarlo
−−−> raggiungere il vostro server H

Link Support
MemPool 6192 −−−> il minimo è 1024. Provate altri valori
Buffers 10 1580 −−−> anche questo può essere tarato

;−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
; Potete aver bisogno di aggiungere linee come queste se state
; usando Netware/IP

NWIP
NWIP_DOMAIN_NAME mydomain
NSQ_BROADCAST ON
NWIP1_1 COMPATIBILITY OFF
AUTORETRIES 1
AUTORETRY SECS 10

Editate il file SYSTEM.ini sotto la cartella WINDOWS e aggiungete una linea per
VTCPIP.386

[386Enh]
.....
network=*vnetbios, vipx.386, vnetware.386, VTCPIP.386
.....

Riavviate il PC, eseguite STARTNET.bat e quindi potete usare il vostro browser fav
per accedere le vostre pagine Web. Non avete bisogno di effettuare il login su Netw
nemmeno di eseguire TCPMAN (nel caso usiate il Trumpet Winsock).

Windows 95

Questa sezione spiega come installare il client a 32 bit sotto Win95. Come prima co
bisogna installare quanto segue:

• Client per reti Netware (della Microsoft o Novell)


• Protocollo Microsoft TCP/IP
• Scheda di rete

Per cominciare l'installazione, cliccate sull'icona Risorse del computer, Pannello di


controllo, Rete. Cliccate su Aggiungi. Si aprirà una finestra di dialogo con le voci: C
Scheda, Protocollo e Servizio. Per installare il Client per reti Novell:

1. Doppio clic su Client


2. Clic su Microsoft oppure Novell
3. Doppio clic su Client per reti Netware

Windows 95 363
Linux HOWTO − Networking − Sommario

Per installare il protocollo TCP/IP:

1. Doppio clic su Protocollo


2. Clic su Microsoft
3. Doppio clic su TCP/IP

Windows 95 installa di default molti altri protocolli automaticamente. Se non vi ser


potete rimuoverli selezionandoli e quindi premendo il bottone Rimuovi. Tipicament
Win95 installa i protocolli NetBEUI e IPX/SPX. Potete eliminare il protocollo NetB
ma avrete bisogno di IPX/SPX se desiderate effettuare il login sul server Netware.

Per configurare TCP/IP, cliccate su TCP/IP, quindi su Proprietà e finalmente sulla s


dell'indirizzo IP.

• Impostate l'indirizzo IP nell'apposita casella di testo a 172.17.0.5 e la Subne


a 255.255.255.0.
• Selezionate la scheda Gateway.
• Impostate l'indirizzo del vostro gateway (router) nella casella Nuovo gatewa
172.17.0.254.
• Cliccate sul pulsante Aggiungi.

L'indirizzo del gateway dovrebbe adesso comparire nella finestra dei gateway instal
Adesso cliccate su OK.

Vi verrà richiesto di riavviare il computer. Dopo il riavvio, sarà possibile usare il br


per collegarsi al vostro server HTTP.

Configurazione dei client MS Windows


Se intendete usare un client Microsoft per accedere alla vostra rete, questa sezione d
come installare il protocollo TCP/IP per

• [*] (Windows for Workgroups (WFWG))


• [*] (Windows 95)
• [*] (Windows NT 4.0)

Nota: Per individuare il vostro server Linux come http://linux.mydomain/


di http://172.16.0.1/ dal vostro browser WWW e da tutti i comandi dalla In
è necessario editare il file hosts, aggiungendo una linea per ognuno dei vostri hos
(Netware, Unix, WinNT). I sistemi MS Windows hanno il file HOSTS file nella car
WINDOWS oppure WINDOWSSYSTEM a seconda della versione. Editate questo file e
aggiungete una linea per il vostro server Linux come segue:

127.0.0.1 localhost
172.16.0.1 linux.mydomain

172.16.0.2 netware.mydomain
172.16.0.3 winNT.mydomain
172.16.0.5 ws_1

Configurazione dei client MS Windows 364


Linux HOWTO − Networking − Sommario

Windows for Workgroups

Questa sezione spiega come installare il client a 32 bit sotto WFWG. Per cominciar
potete prelevare il driver TCP/IP per Windows dal sito Microsoft. La versione corre
3.11b ed è disponibile da ftp://ftp.microsoft.com come tcp32b.exe. Accertatevi
caricato Win32s prima di tentare di caricare il driver TCP/IP−32bit.

Dopo aver decompresso i file di TCP/IP su una cartella temporanea (diciamo C:TE
verificate che sotto la cartella WINDOWSSYSTEM non esista una copia del file
OEMSETUP.INF. Se c'è, rinominatela. Quindi copiate il file OEMSETUP.INF file
cartella TEMP sulla cartella WINDOWSSYSTEM. Se in precedenza avevate caricato
qualsiasi altro stack TCP/IP sul vostro calcolatore, rimuoveteli prima di proseguire.

Per eseguire o modificare le impostazioni di rete:

• cliccare sul pulsante Reti;


• cliccare Installare la rete di Microsoft Windows;
• scegliere il supporto per reti aggiuntive (se richiesto);
• cliccare OK.

Se adesso vi viene chiesto di specificare la vostra scheda di rete, selezionate quella


appropriata. Se non è così, allora

• cliccate sul pulsante Adattatore di rete;


♦ selezionate una scheda (ad esempio NE2000);
♦ cliccate OK;
• cliccate il pulsante Protocollo;
♦ selezionate il protocollo MS TCP/IP−32
♦ cliccate OK

Adesso è il momento di configurare il protocollo TCP/IP. Potete sempre riconfigura


evidenziando il protocollo TCP/IP visualizzato nella lista degli adattatori di rete e
cliccando il pulsante Configura.

• Impostate l'indirizzo IP a 172.17.0.5


• Impostate la Subnet Mask box a 255.255.255.0
• Impostate l'indirizzo IP del gateway (router) nella casella del gateway di de
172.17.0.254

Cliccate OK. Vi sarà chiesto di riavviare il computer. Dopo il riavvio, sarà possibile
il browser per collegarsi al server HTTP.

Windows 95

Questa sezione spiega come installare il client Microsoft a 32 bit sotto Win95. Prim
necessario installare quanto segue:

• Client per reti Microsoft


• Protocollo Microsoft TCP/IP
• Scheda di rete

Windows for Workgroups 365


Linux HOWTO − Networking − Sommario

Per cominciare l'installazione, cliccate sull'icona Risorse del computer, Pannello di


controllo, Rete. Cliccate su Aggiungi. Si aprirà una finestra di dialogo con le voci: C
Scheda, Protocollo e Servizio. Per installare il client per Reti Microsoft:

1. Doppio clic su Client


2. Clic su Microsoft
3. Doppio clic su Client per reti Microsoft

Per installare il protocollo TCP/IP:

1. Doppio clic su Protocollo


2. Clic su Microsoft
3. Doppio clic su TCP/IP

Windows 95 di default installa alcuni protocolli automaticamente. Rimuovete quelli


necessari tramite il pulsante ``Rimuovi''. Tipicamente Win95 installa il protocollo
Microsoft NetBEUI.

Per configurare TCP/IP, cliccate su TCP/IP, cliccate su Proprietà, cliccate sulla sche
``Indirizzo IP''. Impostate il vostro indirizzo IP nella casella 'Specifica l'indirizzo IP
172.17.0.5. Impostate Subnet mask a 255.255.255.0.

Selezionate la scheda Gateway. Impostate l'indirizzo del vostro gateway (router) nel
casella 'Nuovo gateway' a 172.17.0.254. Cliccate il pulsante Aggiungi. Adesso l'ind
del gateway dovrebbe apparire nell'elenco dei gateway installati. Adesso cliccate OK

Dovreste ricevere l'indicazione di riavviare. Fatelo. Adesso dovreste essere in condi


usare il browser per collegarvi al vostro server HTTP.

Windows NT

Questa sezione spiega come installare il client TCP/IP per WinNT 4.0. Avviate il Pa
di controllo/Rete. Selezionate la scheda `Schede di rete'. Cliccate su Aggiungi per
aggiungere una nuova scheda di rete (se non avete una).

Scegliete la scheda di rete appropriata. Per aggiungere i protocolli Selezionate la sch


Protocolli. Cliccate su Aggiungi e selezionate il protocollo TCP/IP. Cliccate su OK

Vi sarà chiesto di configurare lo stack del protocollo TCP/IP. Potete sempre riconfig
selezionando il protocollo TCP/IP e cliccando il pulsante ``Proprietà''.

• Selezionate la scheda 'Indirizzo IP'


• Barrate la casella 'Specificare un indirizzo IP'
• Nella casella dell'indirizzo IP digitate 172.17.0.5
• Nella casella della Subnet Mask digitate 255.255.255.0
• Nella casella Default gateway, impostate l'indirizzo IP del vostro gateway (
a 172.17.0.254

Cliccate su OK. Il computer richiederà il riavvio. Adesso potete usare qualsiasi brow
collegarvi al vostro server HTTP.

Windows NT 366
Linux HOWTO − Networking − Sommario

Configurazione di TCP/IP sul Macintosh


Se state usando un Macintosh per accedere alla vostra rete, allora questa sezione spi
come installare MacTCP per i PowerMac.

Nota: Per rendere possibile l'indirizzamento del server Linux come


http://linux.mydomain/ invece di http://172.16.0.1/ dal browser W
browser e da tutta la vostra intranet dovete modificare il file hosts. Il formato del
hosts è diverso da quello usato da Unix. Il file hosts del Mac è basato su RFC−10
Potete aggiungere più linee anche per ognuno dei vostri host (Netware, Unix, WinN
MacOS tiene il suo file HOSTS nella cartella Preferences folder sotto Sys
folder. Aprite questo file e aggiungete una linea per il vostro server Linux come

linux.mydomain A 172.16.0.1

netware.mydomain A 172.16.0.2
winNT.mydomain A 172.16.0.3
ws_1 A 172.16.0.5

MacTCP

Questa sezione spiega come installare MacTCP. Come prima cosa dovete prelevare
MacTCP dal sito Apple, oppure installarli dall'Internet Connection CD. Per configu
MacTCP, cliccate su Apple Menu/ Control Panels/ TCP/IP. Sullo schermo modifica
l'impostazione 'Connect via:' a 'Ethernet'

Modificate la voce 'Configure' impostandolo a 'Manually'

• Nella finestra dell'indirizzo IP digitate 172.17.0.5


• Nella finestra della Subnet Mask digitate 255.255.255.0
• Nella finestra Router address impostate l'indirizzo del vostro gateway (route
172.17.0.254

Cliccate su OK. Adesso dovreste essere in grado di collegarvi al server HTTP con il
browser.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Configurazione di TCP/IP sul Macintosh 367


Glossario Impostazione dell'intranet
Linux−FAQ Una intranet non può essere completa senza condividere le risorse sulle diverse piat
Avrete bisogno di supporto per altri filesystem in modo di poter accedere ai dati con
Documenti:
essi. Questo documento fornisce istruzioni per collegare Linux con i seguenti filesy
Open Source Definition
popolari.

GNU General Public License • [*] (Filesystem NCP per Netware)


La cattedrale e il bazaar • [*] (Filesystem SMB per Windows)
• [*] (Filesystem NFS per Unix)
Colonizzare la noosfera

Il calderone magico Questi filesystem possono essere compilati insieme al kernel di Linux oppure aggiu
moduli, a seconda dalla versione di Linux. Se non avete molta familiarità nella
Libri: compilazione del kernel, fate riferimento ai documenti Kernel HOWTO
http://sunsite.unc.edu/mdw/HOWTO/Kernel−HOWTO.html e Module HOWTO
Italian crackdown
http://sunsite.unc.edu/mdw/HOWTO/Module−HOWTO.html per compilare il kerne
Open Sources moduli.
MediaMorfosi

GTK+/GNOME
NCPFS
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione


Per condividere i file sul server Netware occorre il supporto per NCP (ncpfs). NCPF
funziona con le versioni del kernel 1.2.x e 1.3.71 o superiori. Non funziona con ness
Risorse kernel di versione precedente alla 1.3.x. Non può accedere i database NDS di Netwa
ma è in grado di usare il bindery. Se state usando Netware 4.x, potete abilitare il sup
Feedback per il bindery per contenitori specifici usando il comando Set Bindery Conte
console come segue:

set Bindery Context = CORP.MYDOM;WEBUSER.MYDOM

Nell'esempio di sopra, due contenitori hanno il supporto per il bindery abilitato.

Vi occorrerà scaricare le NCP filesystem utilities utilizzando l'URL


ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/ncpfs.tgz (attualmente
ncpfs−2.0.10) da Sunsite.

Installazione

Per installare le utility ncpfs, digitate

zcat ncpfs.tgz | tar xvf −

per espandere i file sotto la loro propria cartella. In questo caso avrete una cartella
ncpfs−2.0.10. Posizionatevi su questa cartella ncpfs prima di proseguire con
l'installazione. Leggete il file README e modificate il Makefile se necessario.

L'installazione di ncpfs dipende dalla versione del kernel che state usando. Per i ker
dovete soltanto digitare 'make'. Successivamente, digitando 'make install' si installer
eseguibili e le pagine del manuale.

Impostazione dell'intranet 368


Linux HOWTO − Networking − Sommario

Se state usando il kernel 1.3.71 o più recente, potreste aver bisogno di ricompilare il
In questi casi, la porzione kernel di ncpfd è già inclusa nell'albero radice dei sorgent
controllare se il kernel deve essere ricompilato digitate

cat /proc/filesystems

Dovrebbe visualizzare una riga indicando che il kernel conosce ncpfs.

Se ncpfs non compare, potete sia ricompilare il kernel che aggiungere ncpfs come m
Per ricompilare il kernel digitate 'make config' e alla domanda sul

The IPX protocol (CONFIG_IPX) [N/y/?]

semplicemente rispondete 'y'. Probabilmente non avrete bisogno della rete interna c
che vi verrà chiesta in seguito. Una volta che il kernel è stato correttamente installat
riavviate, controllate /proc/filesystems e se tutto è in ordine continuate con
l'installazione delle ncpfs utilities. Ritornate alla cartella che contiene i file ncpfs sca
digitate 'make'. Dopo che la compilazione è finita, digitate 'make install' per installa
eseguibili e le pagine del manuale.

Montare NCPFS

Per verificare l'installazione digitate

ipx_configure −−auto_interface=on −−auto_primary=on

e dopo una decina di secondi

slist

Dovreste essere in grado di vedere un elenco di server Netware. Adesso siete pronti
condividere i file del server Netware.

Supponete che abbiamo bisogno di accedere a dei file HTML nalla cartella
homehtmldocs del volume VOL1: sul server MYDOM_NW. Vi suggerisco di cr
nuovo utente, diciamo 'EXPORT' con password 'EXP123' su questo server, al quale
appropriati diritti d'accesso a questa cartella usando SYSCON oppure NWADMIN.

Sul server Linux create una nuova cartella /mnt/MYDOM_NW. Quindi digitate il co

ncpmount −S MYDOM_NW −U EXPORT −P EXP123 /mnt/MYDOM_NW

per montare il filesystem Netware. Digitando il comando

ls /mnt/MYDOM_NW/vol1/home/htmldocs

vi mostrerà un elenco di tutti i file presenti in MYDOM_NW/VOL1:HOMEHTMLDOCS


(usando la notazione file di Netware). Se avete problemi, siete pregati di leggere il
documento IPX HOWTO da http://sunsite.unc.edu/mdw/HOWTO/IPX−HOWTO.h
ulteriori delucidazioni sul sistema IPX.

Montare NCPFS 369


Linux HOWTO − Networking − Sommario

SMBFS
Per condividere file sul server Windows avrete bisogno del supporto per SMB (smb

Dovete scaricare le utility per il filesystem SMB da


ftp://sunsite.unc.edu/pub/Linux/system/filesystems/smbfs/smbfs.tgz (attualmente
smbfs−2.0.1) da Sunsite.

Installazione

Per installare le utility smbfs, digitate

zcat smbfs.tgz | tar xvf −

per espandere i file dentro la propria cartella. In questo caso avrete una cartella
smbfs−2.0.1. Posizionatevi su questa cartella prima di proseguire con l'installaz
Leggete il file README e modificate il Makefile se necessario.

L'installazione di smbfs dipende dalla versione del kernel che state usando. Per i ker
dovete soltanto digitare 'make'. Successivamente, digitando 'make install' si installer
eseguibili e le pagine del manuale.

Se state usando il kernel 2.0 o più recente, potreste aver bisogno di ricompilare il ke
questi casi, la porzione kernel di ncpfd è già inclusa nell'albero radice dei sorgenti. P
controllare se il kernel deve essere ricompilato digitate

cat /proc/filesystems

Dovrebbe mostrare una riga dicendo che il kernel conosce smbfs.

Se smbfs non compare, potete sia ricompilare il kernel che aggiungere smbfs come
Per ricompilare il kernel dovreste digitare 'make config' e quando vi viene chiesto se
desiderate aggiungere il supporto per il filesystem SMB semplicemente rispondete d
Una volta che il kernel è correttamente installato, riavviate, verificate
/proc/filesystems e se tutto è in ordine procedete con l'installazione delle ut
smbfs. Ritornate alla cartella che contiene i file di smbfs che avete scaricato, e digit
'make'. Dopo che la compilazione è finita, digitate 'make install' per installare le var
e le pagine del manuale.

Montare SMBFS

A mo' di esempio, assumiamo che il server WinNT si chiami `MYDOM_NT' e cond


una cartella C:PUBHTMLDOCS con il nome di condivisione 'HTMLDOCS' senza n
password. Sulla macchina Linux create una nuova cartella /mnt/MYDOM_NT. Quin
digitate il comando

smbmount //MYDOM_NT/HTMLDOCS /mnt/MYDOM_NT −n

per montare il filesystem SMB condiviso da Windows. Se non funziona, provate co

SMBFS 370
Linux HOWTO − Networking − Sommario

smbmount //MYDOM_NT/COMMON /mnt/MYDOM_NT −n −I 172.16.0.3

Digitando il comando

ls /mnt/MYDOM_NT

Vi mostrerà un elenco di tutti i file presenti su MYDOM_NTPUBHTMLDOCS (usando


notazione per i nomi di file di Windows).

NFS
Prima di tutto, occorre un kernel con il filesystem NFS sia compilato che disponibil
modulo.

Supponete di avere un host Unix sul quale gira NFS con il nome MYDOM_UNIX e
indirizzo IP uguale a 172.16.0.4. Potete verificare quali sono le cartelle che sono esp
(condivise) da questo host digitando il comando

showmount −e 172.16.0.4

Una volta che conoscete le cartella esportate, potete montarle con un adeguato coma
mount. Vi suggerisco di creare una cartella sotto `/mnt', diciamo 'MYDOM_UNIX'
usarla come punto di montaggio.

mount −o rsize=1024,wsize=1024 172.16.0.4:/pub/htmldocs /mnt/MYDOM_

I valori per rsize e wsize possono aver bisogno di essere modificati a seconda del vo
ambiente.

Se avete dei problemi, siete pregati di leggere il documento NFS HOWTO da


http://sunsite.unc.edu/mdw/HOWTO/NFS−HOWTO.html per ulteriori delucidazion
sistema NFS.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

NFS 371
Documenti: Accesso al sito Web
Open Source Definition
Adesso che avete configurato il server HTTP, i client, e connesso il
GNU General Public License server Linux ad altri server, potete fare alcuni piccoli cambiamenti al
La cattedrale e il bazaar
server Linux per permettere l'accesso ai file system direttamente dal
browser.
Colonizzare la noosfera

Il calderone magico Accesso ai filesystem montati


Libri:
Per accedere alle cartelle montate nelle vostre pagine HTML avete due
Italian crackdown metodi:
Open Sources
• Create un collegamento in DocumentRoot
MediaMorfosi (/usr/local/etc/httpd/htdocs) per fare riferimento
alla cartella montata come segue
GTK+/GNOME
sviluppo applicazioni
ln −s /mnt/MYDOM_NW/vol1/home/htmldocs netware
Linux HOWTO: Installazione e configurazione oppure

Risorse ln −s /mnt/MYDOM_NT winNT


oppure
Feedback
ln −s /mnt/MYDOM_UNIX unix
• editate il file srm.conf nella cartella
/usr/local/etc/httpd/conf e aggiungete un nuovo
alias.

# Alias NomeFinto NomeReale


Alias /icons/ /usr/local/etc/httpd/icons/

# alias per il server Netware


Alias /netware/ /mnt/MYDOM_NW/vol1/home/htmldocs/
Alias /winNT/ /mnt/MYDOM_NT/
Alias /unix/ /mnt/MYDOM_UNIX

Quindi riavviate il demone HTTPd. Potete accedere ai documenti sul


server Netware riferendovi a essi come
http://linux.mydomain/netware/index.htm per i file
Netware ed in notazioni simili per gli altri.

Collegamento a Internet
A questo punto potete collegare la vostra intranet a Internet per avere
accesso a E−mail e tutte le buone cose che potete trovare là fuori.
Spiegazioni più dettagliate per stabilire il collegamento con il vostro
Internet Provider possono essere trovate sui documenti ISP Hookup
HOWTO (in Inglese) da
http://sunsite.unc.edu/mdw/HOWTO/ISP−Hookup−HOWTO.html e
Diald mini HOWTO su
http://sunsite.unc.edu/mdw/HOWTO/mini/Diald.

Accesso al sito Web 372


Linux HOWTO − Networking − Sommario

Altri utilizzi
Un server HTTP può essere usato in un ufficio per dare accesso
trasparente alle informazioni disponibili presso diversi server, su
diverse postazioni e cartelle. I dati possono essere semplici documenti
Word, fogli elettronici Lotus o complesse basi di dati.

L'applicazione di questa tecnologia viene tipicamente utilizzata come


segue:

• Pubblicazione di documenti istituzionali.

Questi documenti possono essere notizie, relazioni annuali,


mappe, risorse aziendali, listino prezzi, letteratura informativa
sui prodotti, e qualsiasi altro documento che possa avere un
determinato valore all'interno dell'organizzazione.

• Accesso a ricerche su elenco.

Accesso veloce all'elenco telefonico dell'istituzione e simile.


Questi dati possono essere mirrorati in un sito Web, oppure
tramite script CGI, il server Web può funzionare come un
gateway che fa da back−end a programmi già esistenti o nuovi.
Questo significa che usando lo stesso meccanismo di accesso
standard, le informazioni possono rendersi disponibili con
maggior larghezza in un modo più semplice. Questo significa
che può essere usato per creare un'interfaccia con RDBMS
come Oracle e SyBase per generare informazioni in tempo
reale. Ecco un elenco di siti con queste caratteristiche.

♦ Accesso Web −
http://cscsun1.larc.nasa.gov/~beowulf/db/web_access.html
♦ Gateway CGI −
http://www.w3.org/hypertext/WWW/RDBGate/Overview.html
• Pagine istituzionali/dipartimentali/individuali.

Man mano che la cultura all'interno delle Istituzioni cambia


sino al punto nel quale ogni Dipartimento si muove verso i
propri obbiettivi individuali, la tecnologia Intranet fornisce il
trasporto ideale per comunicare le nuove informazione ai
Dipartimenti ed Individui. Potenti motori di ricerca forniscono
i mezzi per trovare il gruppo o la persona che conosce le
risposte alle continue domande che sorgono nel corso di ogni
giornata di lavoro.

• Programmi semplici per gruppi di lavoro.

Con il supporto dei moduli HTML, i siti possono fornire


pagine di adesione, inchieste e semplice pianificazione delle
attività.

Altri utilizzi 373


Linux HOWTO − Networking − Sommario

• Distribuzione del software.

Gli amministratori possono usare la Intranet per distribuire


aggiornamenti software immediatamente quando arrivano le
richieste degli utenti che accedono dalla rete locale. Questo
può essere fatto grazie a Java, che permette la creazione e
distribuzione trasparente di oggetti su richiesta piuttosto che
soltanto dati e programmi. Questo è veramente possibile con
più facilità nelle nuove versioni di Linux che hanno il supporto
Java pronto per l'uso.

• Posta elettronica.

Con l'arrivo di nuovi prodotti per la gestione della posta


elettronica su una Intranet, con metodi semplici e standard per
allegare documenti, suoni, immagini e altri documenti
multimediali, la posta elettronica rafforza la sua posizione
come il metodo standard de facto per comunicare tra individui.
La posta è essenzialmente una comunicazione tra individuo e
individuo, oppure tra individuo e piccolo gruppo. Diversi
strumenti software sono disponibili su piattaforme Linux per
disporre un sistema di gestione della posta elettronica come
sendmail, pop3d, imapd.

• Interfaccia utente.

La tecnologia intranet sta evolvendo in modo così veloce che


gli strumenti software disponibili, in particolar modo HTML,
possono essere usati per cambiare significativamente il modo
nel quale interagiamo con i sistemi. Con HTML potete
costruire una Interfaccia limitata solo dall'immaginazione del
progettista. La bellezza di usare le intranet per un'interfaccia è
la semplicità. Cliccando su di un hiperlink vi può portare a
un'altra pagina, che a sua volta può far suonare una sveglia,
eseguire una procedura di fine anno, o qualsiasi altra cosa
fattibile da un programma.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Altri utilizzi 374


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 375


Altre cose da fare
Ecco un elenco di altre cose interessanti che si possono fare
con il vostro server Intranet Linux. Tutto il software proposto
è freeware o shareware.

• Esplorare il server Linux utilizzando le Risorse di


Rete in Win95/ NT; configurare un WINS come un
server NBT. Guardate la pagina Web di SAMBA su
http://lake.canberra.edu.au/pub/samba/samba.html
• Implementare un motore di ricerca sulla vostra
Intranet. Collegatevi a ht://Dig su
http://htdig.sdsu.edu/
• Usare CUSeeMe configurando un riflettore locale.
Fate riferimento alla loro pagina alla Cornell
University http://cu−seeme.cornell.edu/
• Installare una Conferenza Web. Usate COW da
http://thecity.sfsu.edu/COW/
• Disporre una basi dati SQL. Fate riferimento alla
Home Page di mSQL su http://Hughes.com.au/
• Installare un server FTP, Gopher, Finger, Bootp sul
server Netware. Prelevateli da http://mft.ucs.ed.ac.uk/
• Emulare un server Netware. Date un'occhiata alle
NCP Utilities da
ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/

Se trovate altre cose interessanti da fare con il vostro server


intranet Linux, siete pregati di contattarmi via e−mail.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Altre cose da fare 376


Open Source Definition

GNU General Public License Riconoscimenti e note legali


La cattedrale e il bazaar

Colonizzare la noosfera
Ringraziamenti
Il calderone magico Ringrazio il personale della NCSA per avermi fornito
un'ottima documentazione, David Anderson e tutti gli altri che
Libri: hanno provato questo HOWTO ed inviato i loro commenti. I
Italian crackdown
dettagli su Netware/IP sono una cortesia di Romel Flores
(rom@mnl.sequel.net).
Open Sources

MediaMorfosi Copyright
GTK+/GNOME
sviluppo applicazioni This document is copyrighted © 1996,1997 Pramod Karnad
Linux HOWTO: Installazione e configurazione and distributed under the following terms:

Risorse • Linux HOWTO documents may be reproduced and


distributed in whole or in part, in any medium
Feedback physical or electronic, as long as this copyright notice
is retained on all copies. Commercial redistribution is
allowed and encouraged; however, the author would
like to be notified of any such distributions.
• All translations, derivative works, or aggregate works
incorporating any Linux HOWTO documents must be
covered under this copyright notice. That is, you may
not produce a derivative work from a HOWTO and
impose additional restrictions on its distribution.
Exceptions to these rules may be granted under
certain conditions; please contact the Linux HOWTO
coordinator at the address given below.
• If you have questions, please contact Tim Bynum, the
Linux HOWTO coordinator, at
linux−howto@sunsite.unc.edu Finger for phone
number and snail mail address.

L'unica licenza valida è quella originale in


lingua inglese. Di seguito ne trovate una
traduzione abbastanza fedele che però non ha
alcun valore.

Questo documento è copyright © 1996,1997 Pramod Karnad e


distribuito con le seguenti condizioni:

• I documenti Linux HOWTO possono essere riprodotti


e distribuiti totalmente o parzialmente, su qualsiasi
mezzo fisico o elettronico, a condizione che questo
avviso rimanga in tutte le copie. Distribuzioni
commerciali sono permesse ed incoraggiate;
comunque l'autore vorrebbe essere notificato di ogni

Riconoscimenti e note legali 377


Linux HOWTO − Networking − Sommario

tipo di distribuzione
• Tutte le traduzioni, prodotti derivati e aggiuntivi che
contengano qualsiasi documento Linux HOWTO
dovranno essere coperti da questo copyright. Cioè,
non potete produrre un documento derivato da un
HOWTO e imporre restrizioni aggiuntive sulla
distribuzione. Eccezioni a queste regole possono
essere concesse sotto certe condizioni; siete pregati di
contattare il coordinatore dei Linux HOWTO
all'indirizzo sottostante.
• Se avete delle domande, siete pregati di contattare
Tim Bynum, coordinatore dei Linux HOWTO,
linux−howto@sunsite.unc.edu

Abstract:

Questo documento descrive come usare Linux per collegarsi a


un Internet Service Provider tramite una connessione TCP/IP
via modem. Oltre alla procedura basilare di chiamata e
attivazione del collegamento, si descrive anche la gestione
della posta e delle news. Traduzione italiana e manutenzione:
Jose Luis Scanferlato (jls@acm.org).

[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

Abstract: 378
Libri: Introduzione
Italian crackdown
Questa descrizione è stata fatta per rispondere alcune delle domande di coloro che in
Open Sources usare Linux per collegarsi ai rispettivi ISP (Internet Service Provider) tramite colleg
MediaMorfosi
Per aiutare anche i meno esperti, si è tentato di coprire la maggior parte dei problem
GTK+/GNOME creerà inevitabilmente un certo grado di sovrapposizione con altri documenti Howto
sviluppo applicazioni
LDP. Questi documenti dovrebbero essere consultati per un maggiore approfondime
Linux HOWTO: Installazione e configurazione

La maggior parte della documentazione esistente è diretta a utenti con una certa esp
Risorse principianti avranno spesso problemi ad individuare le informazioni significative.
Feedback
Per semplificare, negli esempi che seguiranno, verranno usate le seguenti informazi

• User name: dirk


• Password: PrettySecret
• Internet service provider: acme.xz
• Email server: mail.acme.xz
• News server: news.acme.xz
• Name server: 193.212.1.0
• Numero di telefono: 12345678

Il nostro dirk chiamerà il suo computer roderick. roderick

Tutti i riferimenti della tabella precedente dovrebbero naturalmente essere sostituiti


all'Internet Provider che si desidera usare. Spesso, un minimo di cambiamenti sarà s
che hanno più Internet Provider. Mi piacerebbe essere informato sui problemi che ri

Copyright
Copyright (c) 1996,1997,1998 by Egil Kvaleberg. Questo documento può essere dis
condizioni stabilite dalla licenza LDP da http://sunsite.unc.edu/LDP/COPYRIGHT.

Disconoscimento
L'autore non si assume nessuna responsabilità sul contenuto di questo documento. U
e tutto quanto a vostro proprio rischio.

Una delle molte possibili configurazioni verrà descritta. Nel mondo Linux, normalm
modi di ottenere una cosa. I paragrafi contenenti suggerimenti alternativi sono contr
ALTERNATIVA: Tenete anche in considerazione che i riferimenti FTP spesso cam
arrivano nuove versioni.

Saranno descritti soltanto programmi che sotto certe condizioni (per quanto ne so Io
o valutati per scopi privati. La maggior parte dei programmi sono disponibili con i r
condizioni GNU o simile. GNU

Introduzione 379
Linux HOWTO − Networking − Sommario

Traduzioni
Oltre a questa, sono disponibili traduzioni di questo documento nelle seguenti lingu

Tedesco, da Cristoph Seibert:


http://tech.appl−opt.physik.uni−essen.de/LinuX/german−howto/DE−ISP−Verbindu

Coreano, da Kidong Lee:


http://www.postech.ac.kr/~cessi/howto/ISP−Hookup/ISP−Hookup−HOWTO.html

Francese, da Eric Jacoboni: http://www.minet.net/linux/HOWTO−fr/ISP−Hookup−

Polacco, da Piotr Pogorzelski: URL TBA

Norvegese: http://www.kvaleberg.com/no−linux.html

Nuove versioni di questo documento


L'ultima versione (in italiano) di questo documento, sarà sempre reperibile nell'area
dell'Italian Linux Documentation Project (rispettivamente http://www.pluto.linux.it/
ftp://ftp.pluto.linux.it/pub/ildp/ per la rete commerciale, e http://ildp.psy.unipd.it e
ftp://ftp.psy.unipd.it/pub/pluto/ildp/ per la rete GARR e loro mirror elencati nel file
ftp://ftp.pluto.linux.it/pub/pluto/MIRRORS.

L'ultima versione (in inglese) di Linux ISP Hookup HOWTO sarà periodicamente in
comp.os.linux.answers, ed è anche disponibile sui vari siti FTP dedicati a Linux, co
sunsite.unc.edu.

L'ultima versione (in inglese) di questo documento è disponibile in formato HTML


http://www.kvaleberg.com/ISP−Hookup−HOWTO.html

Commenti
Ogni commento, segnalazione di errore, informazioni aggiuntive e critiche di ogni t
indirizzati a:

egil@kvaleberg.no

http://www.kvaleberg.com/

[Precedente] [Sommario] [

Copyright © 1995−2000 Apogeo srl, Milano

Traduzioni 380
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 381


Come mi collego al resto del mondo?
Si assumerà che avete installato il software essenziale di rete della vostra
distribuzione Linux, e che avete definito quale porta seriale verrà usata come
/dev/modem /dev/modem.

La configurazione predefinita normalmente permetterà l'accesso diretto a


/dev/modem soltanto all'utente root.

Per collegarsi ad un Internet Provider direttamente tramite un account di tipo shell,


e per sperimentare con le sequenze di connessione, potete usare il programma
minicom minicom. È molto semplice da usare.

La configurazione basilare
La configurazione del sistema da usare in rete dovrebbe essere fatta da root.
Prima di continuare, assicuratevi che il file /etc/hosts.deny /etc/hosts.deny contenga
la seguente linea:

ALL: ALL

Ma normalmente vorreste autorizzare voi stessi, quindi aggiungete la seguente linea


al file /etc/hosts.allow /etc/hosts.allow:

ALL: LOCAL

Oppure:

ALL: 127.0.0.1

Notate che quanto segue è valido solo per un collegamento PPP con indirizzo IP
dinamico. Nel caso abbiate una connessione fissa, ci saranno alcune differenze.

È carino avere un nome associato al sistema, un nome che l'utente può scegliere a
piacere. Scrivete questo nome nel file /etc/HOSTNAME /etc/HOSTNAME:

roderick

Il passo successivo è specificare il name server in /etc/resolv.conf /etc/resolv.conf:

search .
nameserver 193.212.1.0

Il name server name server deve essere specificato con un indirizzo IP numerico, e
sarà diverso per ogni ISP. Se necessario, potete avere fino a tre server, uno per
linea. I server verranno interrogati nella sequenza in cui sono elencati.

Se volete utilizzare nomi come miosistema come abbreviazione di


miosistema.acme.xz, dovete sostituire la prima linea con:

Come mi collego al resto del mondo? 382


Linux HOWTO − Networking − Sommario

search acme.xz

search

Un minimo di configurazione è anche richiesto nel file /etc/hosts /etc/hosts.


Normalmente dovrebbe bastare così:

127.0.0.1 localhost
0.0.0.0 roderick

localhost Ovviamente, quelli che hanno un indirizzo IP fisso, dovranno sostituire


0.0.0.0 con l'indirizzo reale.

Allo stesso modo, un /etc/networks /etc/networks minimale è:

loopback 127.0.0.0
localnet 0.0.0.0

loopback localnet

Dovreste anche impostare il vostro dominio esterno in /etc/mailname


/etc/mailname:

acme.xz

Il nome utente e la password dell'account presso l'Internet Provider si deve


specificare in /etc/ppp/pap−secrets /etc/ppp/pap−secrets

dirk * PrettySecret

Per i provider che usano CHAP invece di PAP il file da modificare è


/etc/ppp/chap−secrets /etc/ppp/chap−secrets.

Finalmente, la parte fondamentale riguardante la procedura stessa di connessione


deve essere specificata prima che PPP possa essere iniziato. Questo viene fatto
nello script /etc/ppp/chatscript /etc/ppp/chatscript:

TIMEOUT 5
"" ATZ
OK ATDT12345678
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT WAITING
TIMEOUT 45
CONNECT ""
TIMEOUT 5
"name:" ppp

OK ATDT ATZ TIMEOUT ABORT CONNECT

Alcuni dettagli devono essere in qualche maniera tarati. Ovviamente, il primo da


modificare è il numero telefonico indicato sulla terza linea. Altri dovranno

Come mi collego al resto del mondo? 383


Linux HOWTO − Networking − Sommario

sostituire la stringa di inizializzazione del modem ATZ con qualcosa di più adatto al
modem che stanno utilizzando. L'ultima linea indica che ci si aspetta un prompt che
finisce per name:, e che la risposta dovrebbe essere ppp quando arriva. Altri
sistemi possono richiedere altre procedure di login.

La composizione del numero telefonico e l'avvio del protocollo PPP vengono


eseguiti con il seguente comando:

exec pppd connect \


'chat −v −f /etc/ppp/chatscript' \
−detach crtscts modem defaultroute \
user dirk \
/dev/modem 38400

pppd chat connect /etc/ppp/chatscript detach crtscts modem defaultroute


/dev/modem A questo punto, dovremmo essere online, e rimanere collegati fino a
quando il processo viene terminato tramite ctrl−C. ctrl−C Tutti i messaggi
riguardanti la connessione verranno aggiunti ai log di sistema. Per leggerli, digitate:

tail /var/adm/messages

tail /var/adm/messages oppure

dmesg

dmesg

Mentre PPP è su, avrete accesso diretto a Internet e potete usare programmi come
ftp, ncftp, rlogin, telnet, finger ecc. Tutti questi programmi sono parte del software
standard di rete.

Altre informazioni riguardanti PPP sono disponibili da:

/usr/lib/ppp/README.linux

/usr/lib/ppp/README.linux−chat

Per concludere, qualche parola aggiuntiva sulla sicurezza. Il file /etc/inetd.conf


/etc/inetd.conf elenca tutti i servizi che il vostro sistema offre all'esterno. Con il file
/etc/hosts.deny /etc/hosts.deny che abbiamo descritto, nessun tipo di accesso
esterno sarà permesso. Per coloro che ne avranno bisogno, l'accesso deve essere
esplicitamente autorizzato nel file /etc/hosts.allow /etc/hosts.allow. Il traffico locale
può essere permesso da:

ALL: LOCAL

Guardate anche man 5 hosts_access. hosts_access

Un piccolo particolare: esiste una certa confusione sui nomi dei protocolli POP.
Una definizione in /etc/services /etc/services compatibile con praticamente tutto è:

pop2 109/tcp pop−2 # PostOffice V.2

Come mi collego al resto del mondo? 384


Linux HOWTO − Networking − Sommario

pop3 110/tcp pop−3 pop # PostOffice V.3

ALTERNATIVA: Invece di chatscript chatscript, si potrebbe utilizzare dip dip,


che è molto più flessibile. Ma non insieme a diald diald.

ALTERNATIVA: Quei fortunati che hanno una connessione TCP/IP permanente,


per esempio tramite Ethernet possono tranquillamente ignorare tutto su PPP e
piuttosto concentrarsi sulla configurazione della scheda di rete.

ALTERNATIVA: Altri che non hanno la possibilità di usare PPP, ma possono


invece utilizzare SLIP, per il quale esiste un supporto simile a quello di PPP.
Un'altra possibilità è UUCP. Altri ancora potrebbero dover affidare lo scambio
della posta e delle news tramite SOUP. Una descrizione di quest'ultimo può essere
trovata a: ftp://ftp.sol.no/user/bjorn/Linux−offline.tgz

Il programma TERM è un'altra opzione. Fate riferimento al documento


Term−HOWTO.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


[Precedente] [Sommario] [Successi
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 385


MediaMorfosi

GTK+/GNOME Come faccio a navigare?


sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Se pensate che il testo è la cosa più importante potreste usare il browser Lynx. È dis

Risorse ftp://sunsite.unc.edu/pub/Linux/system/Network/info−systems/lynx−2.3.bin2.tar.gz

Feedback Se avete installato X potete anche usare uno dei vari browser grafici. Chimera può e
a:

ftp://sunsite.unc.edu/pub/Linux/system/Network/info−systems/chimera−1.65.bin.EL

http://www.unlv.edu/chimera/

Mosaic

ftp://sunsite.unc.edu/pub/Linux/system/Network/info−systems/Mosaic−2.7b1−aout.

ftp://ftp.NCSA.uiuc.edu/Web/Mosaic/Unix/binaries/2.6

Netscape (aka. Mozilla)

ftp://sunsite.unc.edu/pub/Linux/system/Network/info−systems/netscape−v11b3.tar.g

ftp://ftp.cs.uit.no/pub/www/netscape

Questi browser sono costantemente disponibili in nuove ed in vari modi eccitanti ve

L'uso e valutazione di questi programmi è soggetto a certe condizioni. Siete pregati


osservarle.

[Precedente] [Sommario] [Successi

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Come faccio a navigare? 386


Open Source Definition

GNU General Public License Come faccio a inviare e ricevere posta


La cattedrale e il bazaar elettronica?
Colonizzare la noosfera
Prima di tutto, verificate che sendmail sendmail sia installato. Sendmail smista la po
Il calderone magico
interna ed esterna, bufferizzando la posta in uscita fino al momento in cui è possibil
Libri:
inoltrarla.

Italian crackdown Sendmail si basa sulla configurazione che trova in /etc/sendmail.cf /etc/sendmail.cf.
Un esempio adatto per gli utenti di un Internet Provider può essere trovato a:
Open Sources
ftp://ftp.sol.no/user/egilk/sendmail.cf. Questo esempio è basato su procmail procma
MediaMorfosi come agente di consegna, ma può essere modificato facilmente per usare deliver
GTK+/GNOME deliver.
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione


È certamente necessario avere un indirizzo di dominio ufficiale per la posta in uscit
cosa che viene specificata in sendmail.cf sendmail.cf:
Risorse
# come chi mi maschero (null per non mascherarsi)
DMacme.xz
Feedback

DM mascheramento Questo suppone che il nome utente in locale è lo stesso che ave
presso l'Internet Provider. Se avete un nome differente, basta specificare il nome
completo:

DMdick@acme.xz

Sendmail è adesso configurato per spedire direttamente al destinatario. Per evitare


lunghi e ripetuti collegamenti in quei casi dove la connessione presso il destinatario
lenta e irregolare, è di solito conveniente usare il vostro Internet Provider come
ritrasmettitore (relay host). Questo può essere specificato da DS:

# "Smart" relay host (può essere null)


DSmail.acme.xz

Ricordatevi che sendmail è un po' permaloso con i caratteri di tabulazione presenti i


sendmail.cf sendmail.cf. Potete usare l'editor vi vi per assicurarvi che i tabulatori
rimangano intatti.

La ricezione della posta elettronica può essere effettuata con il protocollo POP3, che
può essere lanciato ogni volta che si stabilisce la connessione. Uno script per testare
questo è

sendmail −q
popclient −3 −v mail.acme.xz −u dirk −p "PrettySecret" \
−k −o /usr/spool/mail/dirk

popclient Questo script può essere lanciato dopo che la connessione PPP è stata
attivata. Ricordatevi che questo script è solo di prova, quindi conviene assicurarsi ch
la mailbox non venga toccata durante la sua esecuzione. L'opzione −k, che sta per
kept, indica che la posta rimane disponibile nella mailbox del vostro Internet Provid
e della quale voi ne ricevete una copia. Certamente, conviene disabilitare questa

Come faccio a inviare e ricevere posta elettronica? 387


Linux HOWTO − Networking − Sommario

opzione una volta che avete la certezza che funziona correttamente.

State attenti che la password verrà mostrata sulla linea di comando. Notate anche ch
popclient sta diventando obsoleto, e che dovreste considerare invece l'uso di fetchm
fetchmail.

Una versione migliore e più sicura di questo script può essere prelevata da:
ftp://ftp.sol.no/user/egilk/pop−script.tar.gz

Questa versione dello script richiede che venga isntallato anche procmail procmail,
questo è qualcosa di cui non vi pentirete mai. È già compreso nelle maggiori
distribuzioni, altrimenti potete prelevarlo da:
ftp://sunsite.unc.edu/pub/Linux/system/Mail/mailhandlers/procmail−3.10−2.tar.gz

Procmail è uno strumento semplice e flessibile che può gestire la posta elettronica in
ingresso in base ad una grande varietà di criteri. Inoltre, è in grado di effettuare cert
operazioni automaticamente come per esempio messaggi di risposta durante le
vacanze.

Notate che quando usate procmail direttamente come in questo caso la situazione è
leggermente diversa da come viene descritta nella documentazione di procmail. Il
.forward non è richiesto, e non avete neanche bisogno di .procmailrc. Quest'ultimo
necessario solo se volete ordinare la posta.

Come interfaccia utente per leggere e spedire posta elettronica potete adottare
programmi come pine pine oppure elm elm.

ALTERNATIVA: Fetchmail è diventato recentemente una alternativa migliorata d


popclient. L'ultima versione è disponibile da:
ftp://ftp.ccil.org/pub/esr/fetchmail/fetchmail−3.3.tar.gz

ALTERNATIVA: Per un normale utente con accesso telefonico ad un Internet


Provider, non è realmente necessario avere il demone sendmail attivo. Per ridurre le
richieste di risorse, e altri possibili problemi, conviene commentare il lancio di
sendmail, che di solito si trova nel file /etc/rc.d/rc.M (varia a seconda della
distribuzione che state usando).

ALTERNATIVA: Al posto di sendmail potete usare il più semplice smail smail.


Troverete una buona descrizione di questo programma (come di tante altre cose
menzionate in questo documento) nella Linux Network Administrator's Guide.

ALTERNATIVA: Esiste anche un pacchetto di macro m4 per costruire un file


/etc/sendmail.cf /etc/sendmail.cf. Per una installazione semplice potrebbe essere
sufficiente modificare una configurazione già esistente.

ALTERNATIVA: Ci sono altri programmi più semplici ma meno flessibili per


gestire la posta. Pine, per esempio, può funzionare in modo standalone se configura
adeguatamente. Può anche essere possibile usare nuove versioni di alcuni browser
Web.

Come faccio a inviare e ricevere posta elettronica? 388


Linux HOWTO − Networking − Sommario

ALTERNATIVA: Tanti sono molto entusiasti di utilizzare Emacs anche per la


gestione della posta e delle news. Ulteriori informazioni possono essere trovate a:
http://www.ifi.uio.no/~larsi/

ALTERNATIVA: Un sostituto di popclient è pop−perl5. È disponibile da:


ftp://sunsite.unc.edu/pub/Linux/System/Mail/pop−perl5−1.1.tar.gz

[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 389


News
Come faccio a configurare un news−reader
online?
news−reader Mentre il collegamento PPP è attivo, sarà possibile leggere le
news online. Ci sono diversi programmi disponibili, due delle alternative
semplici sono rtin rtin e trn trn.

Per iniziare a leggere le news, il più delle volte l'unica cosa necessaria in
termini di configurazione è impostare NNTPSERVER (di solito una volta e
tutte nel file .profile .profile):

export NNTPSERVER=news.acme.xz

Per avere l'indirizzo del mittente (campo From), alcuni programmi possono
richiedere:

export NNTP_INEWS_DOMAIN=acme.xz

NNTP_INEWS_DOMAIN

Come faccio a configurare un news−reader


offline?
news−reader Per essere in grado di leggere le news offline e quindi risparmiare
sulla bolletta del telefono e ottenere una maggiore flessibilità, è necessario
predisporre in qualche modo un news−spool locale. Questo richiede un po' di
configurazione ed anche una certa quantità di spazio disco dedicata. Dopo
l'installazione iniziale, le cose dovrebbero più o meno girare da sole, con
qualche intervento ogni tanto.

In seguito verranno descritte due diverse soluzioni.

Come faccio a configurare C News?


Questa soluzione è basata sul server delle news C News ed il protocollo NNTP.
C News è stato originariamente progettato per una configurazione diversa, ma è
abbastanza flessibile di adattarsi anche alla nostra situazione. Si potrebbe anche
usare il più recente INN come server delle news, ma potrebbe richiedere un po'
più di risorse. In ogni caso, fate attenzione a non installare entrambi, dato che
non convivono facilmente.

È cruciale che tutta la gestione delle news venga fatta dall'utente news, e che
tutti i file di configurazione si trovino nella cartella /usr/lib/news /usr/lib/news.
Se avete già effettuato il login come root, potete digitare su news; cd.

News 390
Linux HOWTO − Networking − Sommario

I file di configurazione più importanti sono:

• active active è un elenco dei newsgroup attivi. Viene aggiornato su


richiesta dal comando addgroup addgroup, per esempio addgroup
comp.os.linux.networking y.
• organization organization dovrebbe semplicemente indicare quello che
desiderate nel campo Organization: dei vostri articoli, per esempio:

Dirk Gently's Holistic Detective Agency

• mailname mailname dovrebbe nel nostro esempio essere impostato a


acme.xz.
• whoami whoami è impostato con il nome del vostro sito nel thread
Path:. Nella impostazione qui descritta, usando newsx newsx, questo
nome non uscirà mai dal vostro sistema, quindi potete impostare questo
nome come volete a condizione che non sia già in uso. In questo
esempio useremo roderick.
• Il file sys sys controlla lo scarico e ulteriore distribuzione delle news.
Assumeremo che il nostro Internet Provider aggiunga acme.xz al
Path, e che questa è la nostra unica fonte di news. L'esempio dato in
realtà dice che accetteremo qualsiasi cosa in arrivo, e che invieremo
soltanto delle news fresche verso acme.xz che sono state originate nel
nostro sito. In questa configurazione semplificata, si assume che tutti i
gruppi arriveranno da una singola fonte. /all specifica la
distribuzione, e deve essere indicata. La lettera F dice che (i puntatori
ai) nuovi articoli in uscita saranno raccolti in un file.

ME:all/all::
acme/acme.xz:all,!junk/all:FL:

• Una cartella da creare per le news in uscita, nel nostro caso:

mkdir /var/spool/news/out.going/acme

• mailpaths mailpaths controlla i posting nei gruppi moderati, anche se


questo compito viene normalmente lasciato all'Internet Provider.

C News necessita di un certo grado di manutenzione giornaliera, ma questo può


essere indicato una volta per tutte tramite il comando crontab −e crontab
eseguito dall'utente news. La seguente impostazione può essere modificata
secondo le esigenze:

# mantieni i batch entrante e uscente


10,40 * * * * /usr/lib/newsbin/input/newsrun

# scadenza delle news, una volta al giorno


30 0 * * * /usr/lib/newsbin/expire/doexpire

# monitoraggio ed eventuali report


00 2 * * sat /usr/lib/newsbin/maint/addmissing
40 3 * * * /usr/lib/newsbin/maint/newswatch
50 3 * * * /usr/lib/newsbin/maint/newsdaily

News 391
Linux HOWTO − Networking − Sommario

newsrun newsrun sposta gli articoli in ingresso e uscita (ogni mezz'ora),


doexpire doexpire cancellerà gli articoli man mano che scadono (ogni notte alle
00:30), mentre gli ultimi tre comandi eseguono varie procedure di supervisione
e correzione di errori.

Occorre anche effettuare un po' di pulizia in caso di riavvio del sistema. Come
utente root, aggiungete la seguente linea al file /etc/rc.d/rc.local:

su news −c /usr/lib/newsbin/maint/newsboot

Le news possono essere raccolte da un server NNTP tramite il programma


NewsX, NewsX che può essere prelevato da
ftp://sunsite.unc.edu/pub/Linux/system/news/transport/newsx−0.9.tar.gz oppure
da ftp://ftp.sol.no/user/egilk/newsx−0.9.tar.gz

Configurare NewsX è abbastanza semplice. L'installazione è un caso classico


di:

make
su
make install
exit

Con le impostazioni appena descritte, tutto quello che resta da fare è creare i
gruppi che desiderate leggere usando il comando addgroup addgroup.

Per scaricare degli articoli, l'utente news deve eseguire i seguenti comandi (si
assume che il collegamento tramite PPP o simile è già su):

newsrun
newsx acme news.acme.xz
newsrun

newsrun

L'opzione −d permette visualizzare continuamente dei messaggi sullo schermo.


Per ulteriori informazioni, rivolgetevi alla documentazione di NewsX.

NewsX si prenderà cura di inviare le news in uscita.

Per controllare la cancellazione degli articoli man mano che scadono, è


necessario un file explist. I commenti spiegano le nostre intenzioni:

# conserva lo storico per 14 giorni, nulla oltre i 120 giorni


/expired/ x 14 −
/bounds/ x 0−1−120 −

# conserva questi per due mesi


comp.sources,comp.os.linux.all x 60 −

# il rumore viene buttato via subito


junk,control x 2 −

News 392
Linux HOWTO − Networking − Sommario

# predefinito: 14 giorni, nessuna archiviazione


all x 14 −

ALTERNATIVA: In uno news−spool piccolo, normalmente non è necessario


il newsgroup control. Il traffico è enorme in confronto alla possibile
convenienza. Il punto è che gli articoli saranno cancellati, e che i gruppi
possono essere creati automaticamente. Per assicurarsi che i messaggi di
controllo che contengono newgroup non causino disordini, un file chiamato
newgroupperm newgroupperm specifica quello che permetteremo:

comp.os.linux tale@uunet.com yv
all any nq

In questo esempio, tutti i gruppi sotto la gerarchia comp.os.linux verrano creati


(y), e che l'utente news sarà notificato (v). Tutto il resto verrà ignorato (n) in
completo silenzio (q). L'ultima linea è sufficiente se volete creare tutto i gruppi
manualmente.

ALTERNATIVA: Al posto di NewsX potete usare suck.

Come faccio a configurare Leafnode?


Una soluzione completamente differente è installare il pacchetto integrato
leafnode leafnode. Questo permette la gestione di tutte le operazioni richieste
per un news spool personale, ed è facile da configurare. È disponibile da
http://www.troll.no/freebies/leafnode.html

Per quanto riguarda C News, tutta la manutenzione delle news dovrebbe essere
realmente eseguita dall'utente news.

La cartella di lavoro di leafnode è /usr/lib/leafnode. Per installare, digitare:

cd /usr/lib/leafnode
tar −xzvf leafnode−0.8.tgz
cd leafnode−0.8
make
su
make install

Osservate in quanto segue che il prefisso /usr/local/sbin andrebbe sostituito da


/usr/sbin se avete installato leafnode da un pacchetto.

Mentre siete ancora nei panni di root, modificate la linea che controlla NNTP
nel file /etc/inetd.conf /etc/inetd.conf:

nntp stream tcp nowait news /usr/sbin/tcpd


/usr/local/sbin/leafnode

Attivatelo con:

killall −HUP inetd

Come faccio a configurare Leafnode? 393


Linux HOWTO − Networking − Sommario

Ritornate come utente news digitando exit. Nel file /usr/lib/leafnode/config


/usr/lib/leafnode/config modificate la linea che definisce il server NNTP. Nel
nostro caso:

server = news.acme.xz

Leafnode sarà autosufficente aggiungendo il seguente comando tramite


crontab −e come utente news:

# scadenza delle news, una volta al giorno


0 4 * * * /usr/local/sbin/texpire

texpire

Anche lo scambio delle news viene fatto dall'utente news con il seguente
comando (assumendo che PPP è attivo):

/usr/local/sbin/fetch

fetch

Quelli che desiderano leggere le news dovrebbero seguire la ricetta descritta in


Come faccio a configurare un newsreader online?, eccetto che nella
configurazione del server delle news si deve definire localmente, cioè:

export NNTPSERVER=localhost

Questo sarebbe tutto quanto serve. Il primo fetch trasferirà l'elenco dei
newsgroup disponibili. In seguito, leafnode prenderà nota dei gruppi che
vengono richiesti dagli utenti, e si adatterà a questo la volta successiva che
viene attivato.

Si rende noto che leafnode ha qualche problema laddove sono richieste


particolari autorizzazioni per NNTP.

ALTERNATIVA: Al posto di leafnode potete usare nntpcache, disponibile da


ftp://ftp.suburbia.net/pub/nntpcache/nntpcache.tgz.

ALTERNATIVA: Un'altra alternativa è usare il newsreader slrn slrn insieme al


pacchetto slrn− pull slrn−pull. Il newsreader va compilato abilitando l'opzione
spool.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Come faccio a configurare Leafnode? 394


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 395


Come faccio ad automatizzare la procedu
di connessione?
La gestione automatica della posta e delle news è abbastanza facile sotto Linux.

Come primo e principale passo, si deve creare uno script /usr/lib/ppp/ppp−on


/usr/lib/ppp/ppp−on per iniziare il collegamento con l'Internet Provider. Spesso, bas
riga con il seguente comando:

/usr/sbin/pppd

pppd Altri particolari vengono definiti nel file /etc/ppp/options /etc/ppp/options:

connect "/usr/lib/ppp/chat −v −f /etc/ppp/chatscript"


crtscts
modem
defaultroute
asyncmap 00000000
user dirk
/dev/modem 38400

Per chiudere il collegamento, usate la versione predefinita di /usr/lib/ppp/ppp−off


/usr/lib/ppp/ppp−off.

Dopo aver verificato il funzionamento di questi script, si devono scrivere altri script
eseguiranno le diverse operazioni. Lo script per prelevare la posta è già stato descrit
precedentemente, ed assumeremo che si trova nel file /home/dirk/pop.

Uno script per lo scambio della posta può essere messo in /root/mail:

#! /bin/sh
#
# scambia posta elettronica
# 10 minuti di timeout:
TIMEOUT=600
DT=10

# lancia sendmail:
sendmail −q &

# preleva la posta:
su dirk −c /home/dirk/pop

# attendi la fine di sendmail:


t=0
while ! mailq | grep −q "Mail queue is empty"; do
t=$[$t+$DT]
if [ $t −gt $TIMEOUT ] ; then
echo "sendmail −q timeout ($TIMEOUT).."
exit 1
fi
sleep $DT
done

Come faccio ad automatizzare la procedura di connessione? 396


Linux HOWTO − Networking − Sommario

exit 0

Lo script per lo scambio delle news può essere messo nel file /usr/lib/news/news:

#!/bin/sh
#
# scambio delle news
# viene eseguita come utente news:
cd /usr/lib/news

#aggiorna il batch di uscita (C News):


/usr/lib/newsbin/input/newsrun < /dev/null

#scambia le news:
/usr/lib/newsbin/newsx acme news.acme.xz

#e svuota il batch in ingresso:


/usr/lib/newsbin/input/newsrun < /dev/null

Adesso manca soltanto uno script per mettere insieme i diversi pezzi, e che può esse
messo nel file /root/news+mail:

#!/bin/sh
#
# scambio della posta e delle news
# viene eseguito come utente root
#
if ! /usr/lib/ppp/ppp−on; then
exit 1
fi
trap "/usr/lib/ppp/ppp−off" 1 2 3 15

#scambio della posta e news:


/root/mail &
su news −c ~news/news
wait

#chiude il collegamento
/usr/lib/ppp/ppp−off

#aggiorna il batch in ingresso (C News):


su news −c /usr/lib/newsbin/input/newsrun < /dev/null &

exit 0

È abbastanza semplice modificare lo script precedente per attivare la connessione so


quando c'è della posta o delle news da spedire. Supponiamo di chiamarlo
/root/news+mail.cond /root/news+mail.cond, e teniamo presente che il nome dello s
delle news in uscita deve essere aggiornato di conseguenza:

#!/bin/sh
#
# scambio della posta e delle news, solo se ci sono messaggi in usc
# (C News spool)
if [ −s /var/spool/news/out.going/acme/togo ] ||
! ( mailq | grep −q "Mail queue is empty"); then
/root/news+mail
fi

Come faccio ad automatizzare la procedura di connessione? 397


Linux HOWTO − Networking − Sommario

L'unica cosa che manca è specificare quando dovrebbe accadere tutto ciò. Questo vi
fatto usando il comando crontab −e crontab come root. Assumendo che intend
effettuare sempre lo scambio della posta e delle news alle 07:00 del mattino, e
successivamente ogni 4 ore ma solo se ci sono messaggi da spedire

00 7 * * * /root/news+mail
00 11,15,19,23 * * * /root/news+mail.cond

Verificate separatamente il corretto funzionamento di ogni componente prima di co


insieme. Successivamente potreste aggiungere molte altre operazioni, come per esem
sincronizzare la data e ora (usando ntpdate ntpdate), l'aggiornamento automatico
(mirroring) di file WWW e FTP gestiti localmente verso il vostro Internet Provider
make e ftp).

ALTERNATIVA: A seconda delle vostre preferenze, potete impostare le procedur


contrario. Ogni volta che la connessione PPP viene attivata, verrà eseguito anche lo
/etc/ppp/ip−up /etc/ppp/ip−up. E potete aggiungere in questo script qualunque incan
sia necessario per effettuare lo scambio della posta e delle news. Usate man pppd
ulteriori dettagli.

ALTERNATIVA: È anche possibile attivare automaticamente il collegamento PPP


volta che viene rilevato traffico di rete. Questa è in molti aspetti la soluzione più ele
ma dipende molto di una buona configurazione onde evitare frequenti (e costosi)
collegamenti. Altre informazioni possono essere trovate a
http://www.dna.lth.se/~erics/diald.html.

L'utility diald è disponibile da


ftp://sunsite.unc.edu/pub/Linux/system/network/serial/diald−0.16.tar.gz.

In questo sito potete anche trovare altre variazioni sul tema dei collegamenti PPP.

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Linux−FAQ

Documenti:

Linux HOWTO − Networking 398


Open Source Definition

GNU General Public License Parole finali


La cattedrale e il bazaar

Colonizzare la noosfera
Altre cose che dovrei sapere?
Il calderone magico • I diversi messaggi di errore nel sistema vengono
normalmente gestiti tramite la posta interna. Per
Libri: assicurarsi che questi messaggi siano letti, dovreste
Italian crackdown
creare un file /etc/aliases /etc/aliases. Ricordatevi del
comando newaliases ogni volta che modificate
Open Sources questo file. Un esempio che dovrebbe coprire la
MediaMorfosi maggior parte delle eventualità è:
GTK+/GNOME
PostMaster: root
sviluppo applicazioni
ftp: root
Linux HOWTO: Installazione e configurazione news: root
usenet: root
Risorse FaxMaster: root
fax: root
WebMaster: root
Feedback MAILER.DAEMON: root

PostMaster

• Molti programmi per Linux sono reperibili da


SunsiteSunsite, che normalmente è molto carico. Ma
ci sono molti mirror quindi ogni volta che trovate un
riferimento a ftp://sunsite.unc.edu/pub/Linux/
dovreste cercare un mirror più vicino a Voi, per
esempio ftp://ftp.nvg.unit.no/pub/linux/sunsite/.
• Nel caso stiate migrando da Yarn, dovrebbe essere
possibile convertire le sue cartelle in cartelle standard
usando il programma yarn2mf disponibile a
ftp://ftp.sol.no/user/egilk/yarn2mf.zip

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Linux HOWTO − Networking


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

Glossario

Parole finali 399


Linux−FAQ Informazioni specifiche su alcuni Interne
Documenti: Provider
Open Source Definition Alcune informazioni più dettagliate su alcuni Internet Provider sono disponibili da u
GNU General Public License siti:
La cattedrale e il bazaar
Demon Internet
Colonizzare la noosfera

Il calderone magico
ftp://ftp.demon.co.uk/pub/unix/linux/Demon/slack3.0.help.tgz

Libri: Netcom

Italian crackdown http://www.netcom.com/bin/webtech/NetCruiser/Operating_Systems/Linux/linux.cfg


Open Sources
PowerTech, Telenor Online, Telia PowerTech Telenor Online Telia
MediaMorfosi

GTK+/GNOME http://www.kvaleberg.com/no−isp.html
sviluppo applicazioni

Linux HOWTO: Installazione e configurazione Stanford

Risorse http://www−leland.stanford.edu/~wkn/Linux/network/network.html

Feedback MCI

http://www.kvaleberg.com/linux−mci.html

SISCOM

http://www.siscom.net/support/linux_setup.htm

AOL non è disponibile dato che utilizza un protocollo proprietario.

Se avete delle informazioni su un Internet Provider non elencato qui, siete pregati d

Dove posso imparare di più?


Il libro intitolato Linux Network Administrator's Guide di Olaf Kirch del Linux Doc
Project è abbastanza obbligatorio per chiunque intenda configurare e mantenere qua
relazionata con TCP/IP e Internet
(ftp://sunsite.unc.edu/pub/Linux/docs/linux−doc−project/network−guide/nag−1.0.as

La documentazione di ogni pacchetto software vi fornirà tutta l'informazione che Vi


almeno un riassunto. Le pagine man sono il primo posto dove guardare. Provate com

man pppd

Potete anche trovare della documentazione su alcuni programmi sotto la cartella /us
anche se non sempre è bene strutturata.

Informazioni specifiche su alcuni Internet Provider 400


Linux HOWTO − Networking − Sommario

I seguenti HOWTO sono di particolare interesse:

• Installation−HOWTO per trovare delle informazioni basilari.


• NET−2−HOWTO è una descrizione molto completa sull'installazione e co
del software di rete. Molto di questo sarà già pronto se state usando una dist
standard di Linux come Slackware, Red Hat o Debian). Ma molte sezioni su
configurazione e risoluzione dei problemi valgono veramente la pena di leg
• Mail−HOWTO spiega come configurare i vari tool. Come appena detto, m
sarà già pronto se avete installato una distribuzione standard di Linux.
• News−HOWTO spiega come configurare uno spool delle news convenzion
• Tiny−News documenta un pacchetto alternativo per la gestione delle news.
• PPP−HOWTO contiene una buona descrizione dei problemi che potete tro
connessioni PPP.
• Serial−HOWTO contiene tutto quello che Vi serve per configurare le porte
• Mail−Queue Vi racconta come configurare sendmail per accodare sempre l
remota ma inoltrare immediatamente la posta locale.

Red Hat ha una mailing list sull'argomento PPP. Per abbonarsi occorre inviare un m
redhat−ppp−list−request con il subject

subscribe

Ringraziamenti
Le informazioni raccolte in questo documento provengono da diverse fonti. Ringraz
persone che direttamente o indirettamente hanno contribuito:

Adam Holt <holt@graphics.lcs.mit.edu>


Arne Coucheron <arneco@oslonett.no>
Arne Riiber <riiber@oslonett.no>
Arnt Gulbrandsen <agulbra@troll.no>
Bjorn Steensrud <bjornst@powertech.no>
Gisle Hannemyr <gisle@a.sn.no>
Hans Amund Rosbach <haro@sesam.dnv.no>
Hans Peter Verne <hpv@ulrik.uio.no>
Harald T Alvestrand <Harald.T.Alvestrand@uninett.no>
Harald Terkelsen <Harald.Terkelsen@adm.hioslo.no>
Haavard Engum <hobbes@interlink.no>
James Youngman <JYoungman@vggas.com>
Johan S. Seland <johanss@sn.no>
John Phillips <john@linux.demon.co.uk>
Jorn Lokoy <jorn@oslonett.no>
Kenneth Tjostheim <kenneth.tjostheim@asplanviak.no>
Kjell M. Myksvoll <kjell.myksvoll@fou.telenor.no>
Kjetil T. Homme <kjetilho@math.uio.no>
Michael Meissner <meissner@cygnus.com>
N J Bailey <N.J.Bailey@leeds.ac.uk>
Nicolai Langfeldt <janl@math.uio.no>
Ove Ruben R Olsen <Ove.R.Olsen@ub.uib.no>
R. Bardarson <ronb@powernet.net>
Steinar Fremme <steinar@fremme.no>
Sverre H. Huseby <sverrehu@ifi.uio.no>
Trond Eivind Glomsrod <teg@stud.imf.unit.no>
Tommy Larsen <tommy@mix.hive.no>
Yves Bellefeuille <yan@storm.ca>

Ringraziamenti 401
Linux HOWTO − Networking − Sommario

[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

Risorse

Feedback

Linux HOWTO − Networking 402


Informazioni sul documento
...
ISP−Hookup−HOWTO

This document was generated using the LaTeX2HTML


translator Version 96.1−h (September 30, 1996) Copyright ©
1993, 1994, 1995, 1996, Nikos Drakos, Computer Based
Learning Unit, University of Leeds.

The command line arguments were:


latex2html −split 1 −ascii_mode −t Linux
HOWTO HOWTO2.tex.

The translation was initiated by root on Sat Feb 5 16:29:23


CET 2000

[Successivo] [Su] [Precedente] [Sommario]

[Precedente] [Sommario] [Successivo]

Copyright © 1995−2000 Apogeo srl, Milano

Informazioni sul documento ... 403


Open Source, definizione | Apogeonline

● Home
● Chi siamo
● Catalogo libri
● Contatti
● Feed
● Help

La referenza: Per una maggiore trasparenza sulle leggi italiane legate alla Rete Video
Registrazione/Accesso La Tua Spesa

● Linux-Unix
● Mac Os
● Windows
● Università
● Ebook
● OpenPress
● |

Cerca

Apogeonline Google Book Search

● Linguaggi e Programmazione
● Telefonia e Wireless
● Sistemi operativi
● Editoria digitale
● Diritto e tecnologie
● Computer formazione e lavoro
● Web e Internet
● Free Software

http://www.apogeonline.com/openpress/op_definition (1 of 7)31/08/2010 13.55.22


Open Source, definizione | Apogeonline

● Mondo e Tecnologia

● Economia
● Discipline aziendali
● Matematica e Statistica
● Ingegneria
● Informatica
● Scienze umane

Metallica e la filosofia

di William Irwin

Prezzo: 22.00 Euro

Una filosofia radicata nella contemporaneità e nella quotidianità, che riscopre le idee e i testi dei grandi
del passato attraverso la riflessione sui problemi e le parole di oggi.

● ECDL
● Pratiche Filosofiche
● Urra

Newsletter gratuita
Inserisci il tuo indirizzo e-mail:

http://www.apogeonline.com/openpress/op_definition (2 of 7)31/08/2010 13.55.22


Open Source, definizione | Apogeonline

Net TV

di Tommaso Tessarolo

Prezzo: 13.00 Euro

NET TV: nel prossimo futuro assisteremo a una vera rivoluzione delle regole del fare e del fruire della
TV, con la possibilità per tutti di entrare in gioco.

News sul tuo sito


Vuoi avere le news di Apogeonline sempre aggiornate sul tuo sito? È semplicissimo: scopri come

Open Source, definizione


.

The open source definition


http://www.apogeonline.com/openpress/op_definition (3 of 7)31/08/2010 13.55.22
Open Source, definizione | Apogeonline

Open Source non significa solamente accesso al codice sorgente. I termini di distribuzione di un
programma open-source devono rispettare i criteri seguenti.

1. Libera ridistribuzione

La licenza non può limitare nessuna delle parti nella vendita o nella fornitura di software come
componente di una distribuzione di software aggregati, contenente programmi provenienti da fonti
diverse. La licenza non può richiedere il pagamento di una royalty o di diritti per tale rivendita.

2. Codice sorgente

Il programma deve includere il codice sorgente, e deve consentire la distribuzione sia sotto forma di
codice sorgente sia in forma compilata. Nei casi in cui un prodotto non venga distribuito con il codice
sorgente, deve esserci la possibilità, ben pubblicata, di scaricare il codice sorgente via Internet senza
costi aggiuntivi. Il codice sorgente deve essere la forma privilegiata in cui in programmatore
modificherà il programma. Codice sorgente deliberatamente nascosto non è ammesso. Forme mediate,
come l'output di un preprocessore non sono ammesse.

3. Prodotti derivati

La licenza deve consentire l'attuazione di modifiche e di prodotti derivati, consentendo inoltre la loro
distribuzione sotto gli stessi termini di licenza del software originale.

4. Integrità del codice sorgente dell'autore

La licenza può imporre limitazioni sulla distribuzione del codice sorgente in forma modificata solamente
se la licenza consente la distribuzione di file “patch” insieme al codice sorgente con lo scopo di
modificare il programma durante l'esecuzione del build. La licenza deve consentire esplicitamente la
distribuzione di software realizzato a partire dal codice sorgente modificato. La licenza può richiedere
che i prodotti derivati portino un nome o un numero di versione diverso dal software originale.

5. Nessuna discriminazione verso singoli o gruppi

La licenza non deve porre discriminazioni verso qualsiasi persona o gruppo di persone.

6. Nessuna discriminazione verso campi di applicazione

La licenza non deve porre limitazioni sull'uso del programma in un particolare campo di applicazione.
Per esempio, non può impedire l'uso del programma in una azienda o per la ricerca genetica.

7. Distribuzione della licenza

I diritti allegati al programma devono applicarsi a tutti coloro a cui viene ridistribuito il programma,

http://www.apogeonline.com/openpress/op_definition (4 of 7)31/08/2010 13.55.22


Open Source, definizione | Apogeonline

senza la necessità di applicare una licenza supplementare per queste parti.

8. La licenza non deve essere specifica per un prodotto

I diritti allegati al programma non devono dipendere dal fatto che il programma faccia parte di una
distribuzione particolare. Se il programma viene estratto da tale distribuzione e usato o distribuito nei
termini della licenza del programma, tutte le parti a cui il programma viene ridistribuito devono avere gli
stessi diritti garantiti in occasione della distribuzione originale del software.

9. La licenza non deve contaminare gli altri programmi

La licenza non deve porre limitazioni su altro software che venga distribuito insieme con il software in
licenza. Per esempio, la licenza non deve asserire che tutti gli altri programmi distribuiti sullo stesso
supporto devono essere software open source.

10. Conformità della licenza e della certificazione

Qualsiasi programma che faccia uso di licenze certificate come conformi alla Open Source Definition
può utilizzare il marchio registrato Open Source, e il codice sorgente può essere dichiarato
esplicitamente di pubblico dominio. Nessun altro programma o licenza è certificato per fare uso del
marchio registrato Open Source.

(Le informazioni seguenti non sono parte della Open Source Definition e possono subire variazioni nel
corso del tempo).

La GNU GPL, la LGPL, la licenza BSD, la licenza X Consortium, l'Artistic, la MPL e la QPL sono
esempi di licenze che consideriamo conformi alla Open Source Definition. Per sottoporre a
certificazione una licenza, scrivere a certification@opensource.org. Incoraggiamo caldamente l'utilizzo
di licenze già certificate dall'elenco precedente, dal momento questo consente l'uso del marchio Open
Source senza bisogno di sottoporre a revisione la licenza. Si prega di riportare eventuali abusi del
marchio Open Source a: mark-misuse@opensource.org.

Cronologia delle modifiche

1.0 Identica a DFSG tranne per l'aggiunta di MPL e QPL alla clausola 10.

1.1 Aggiunta LGPL alla clausola 10.

1.2 Aggiunto “pubblico dominio” alla clausola 10.

1.3 Modificato il titolo della clausola 10 e separato l'elenco delle licenze, con l'aggiunta di materiale
sulle procedure.

1.4 Esplicitata l'esigenza del codice sorgente per il software di pubblico dominio.

http://www.apogeonline.com/openpress/op_definition (5 of 7)31/08/2010 13.55.22


Open Source, definizione | Apogeonline

Bruce Perens scrisse la prima bozza di questo documento come “The Debian Free Software Guidelines”,
perfezionandola mediante i commenti degli sviluppatori Debian in una conferenza in posta elettronica
durata un mese nel giugno 1997. Rimosse quindi i riferimenti specifici a Debian per creare la “Open
Soure Definition”.

Top ten libri


La classifica delle vendite di questo sito durante l'ultimo mese.

1. Mac OS X Leopard
2. ECDL Il manuale con Atlas Syllabus 5.0
3. ECDL Mettiti alla prova... reloaded
4. Photoshop CS3 Guida completa
5. Introduzione all'analisi qualitativa delle equazioni differenziali ordinarie
6. Sviluppare applicazioni web con PHP e MySQL
7. iPhone
8. AutoCAD 2009
9. Algebra lineare
10. Sviluppare applicazioni web con Rails

Ultimi articoli

09 Dic | Federico Fasce

SkypeIn: è legittimo in Italia?

05 Dic | Federico Fasce

Sulla proposta dell'IP unico

04 Dic | Federico Fasce

Berlusconi e le regole della Rete

03 Dic | Federico Fasce

Nokia schiera l'anti iPhone

http://www.apogeonline.com/openpress/op_definition (6 of 7)31/08/2010 13.55.22


Open Source, definizione | Apogeonline

02 Dic | Federico Fasce

Ci vediamo su World of Warcraft

01 Dic | Federico Fasce

La tappa italiana di Joi Ito

29 Nov | Serena Romio

Apogeonline Bit Comics # 27.1

28 Nov | Antonio Sofi

Wikipedia, Europeana e la conoscenza creativa

28 Nov | Roberto Venturini

Quei messaggi a casaccio di Vodafone

28 Nov | Federico Fasce

Il garante in Second Life

Tutti gli articoli >>

http://www.apogeonline.com/openpress/op_definition (7 of 7)31/08/2010 13.55.22


Licenza GPL | Apogeonline

● Home
● Chi siamo
● Catalogo libri
● Contatti
● Feed
● Help

La referenza: Per una maggiore trasparenza sulle leggi italiane legate alla Rete Video
Registrazione/Accesso La Tua Spesa

● Linux-Unix
● Mac Os
● Windows
● Università
● Ebook
● OpenPress
● |

Cerca

Apogeonline Google Book Search

● Linguaggi e Programmazione
● Telefonia e Wireless
● Sistemi operativi
● Editoria digitale
● Diritto e tecnologie
● Computer formazione e lavoro
● Web e Internet
● Free Software

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (1 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

● Mondo e Tecnologia

● Economia
● Discipline aziendali
● Matematica e Statistica
● Ingegneria
● Informatica
● Scienze umane

Metallica e la filosofia

di William Irwin

Prezzo: 22.00 Euro

Una filosofia radicata nella contemporaneità e nella quotidianità, che riscopre le idee e i testi dei grandi
del passato attraverso la riflessione sui problemi e le parole di oggi.

● ECDL
● Pratiche Filosofiche
● Urra

Newsletter gratuita
Inserisci il tuo indirizzo e-mail:

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (2 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

Net TV

di Tommaso Tessarolo

Prezzo: 13.00 Euro

NET TV: nel prossimo futuro assisteremo a una vera rivoluzione delle regole del fare e del fruire della
TV, con la possibilità per tutti di entrare in gioco.

News sul tuo sito


Vuoi avere le news di Apogeonline sempre aggiornate sul tuo sito? È semplicissimo: scopri come

Licenza GPL
.

Licenza pubblica generica (GPL) del progetto


http://www.apogeonline.com/openpress/gnu_gen_pub_lic (3 of 12)31/08/2010 13.56.06
Licenza GPL | Apogeonline

GNU
Questa è una traduzione italiana non ufficiale della Licenza Pubblica Generale GNU. Non è pubblicata
dalla Free Software Foundation e non ha valore legale nell'esprimere i termini di distribuzione del
software che usa la licenza GPL. Solo la versione originale in inglese della licenza ha valore legale. Ad
ogni modo, speriamo che questa traduzione aiuti le persone di lingua italiano a capire meglio il
significato della licenza GPL.

This is an unofficial translation of the GNU General Public License into Italian. It was not published by
the Free Software Foundation, and does not legally state the distribution terms for software that uses the
GNU GPL – only the original English text of the GNU GPL does that. However, we hope that this
translation will help Italian speakers understand the GNU GPL better.

LICENZA PUBBLICA GENERICA (GPL) DEL PROGETTO GNU

Versione 2, Giugno 1991

Copyright © 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA

Traduzione curata dal gruppo Pluto e da ILS, ultimo aggiornamento, 30 luglio 1998.

Tutti possono copiare e distribuire copie letterali di questo documento di licenza, ma non è lecito
modificarlo.

Preambolo

Le licenze per la maggioranza dei programmi hanno lo scopo di togliere all'utente la libertà di
condividerlo e di modificarlo. Al contrario, la Licenza Pubblica Generica GNU è intesa a garantire la
libertà di condividere e modificare il free software, al fine di assicurare che i programmi siano “liberi”
per tutti i loro utenti. Questa Licenza si applica alla maggioranza dei programmi della Free Software
Foundation e ad ogni altro programma i cui autori hanno scelto questa Licenza. Alcuni altri programmi
della Free Software Foundation sono invece coperti dalla Licenza Pubblica Generica per Librerie.
Chiunque può usare questa Licenza per i propri programmi.

Quando si parla di “free software”, ci si riferisce alla libertà, non al prezzo. Le nostre Licenze (la GPL e
la LGPL) sono progettate per assicurarsi che ciascuno abbia la libertà di distribuire copie del free
software (e farsi pagare per questo, se vuole), che ciascuno riceva il codice sorgente o che lo possa
ottenere se lo desidera, che ciascuno possa modificare il programma o usarne delle parti in nuovi
programmi “liberi” e che ciascuno sappia di potere fare queste cose.

Per proteggere i diritti dell'utente, abbiamo bisogno di creare delle restrizioni che vietino a chiunque di

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (4 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

negare questi diritti o di chiedere di rinunciarvi. Queste restrizioni si traducono in certe responsabilità
per chi distribuisce copie del software e per chi lo modifica.

Per esempio, chi distribuisce copie di un Programma coperto da GPL, sia gratis sia in cambio di un
compenso, deve dare ai destinatari tutti i diritti che ha ricevuto. Deve anche assicurarsi che i destinatari
ricevano o possano ricevere il codice sorgente. E deve mostrar loro queste condizioni di Licenza, in
modo che conoscano i loro diritti.

Proteggiamo i diritti dell'utente in due modi: (1) proteggendo il software con un copyright, e (2)
offrendo una Licenza che offre il permesso legale di copiare, distribuire e/o modificare il Programma.

Infine, per proteggere ogni autore e noi stessi, vogliamo assicurarci che ognuno capisca che non ci sono
garanzie per i programmi coperti da GPL. Se il Programma viene modificato da qualcun altro e
ridistribuito, vogliamo che gli acquirenti sappiano che ciò che hanno non è l'originale, in modo che ogni
problema introdotto da altri non si rifletta sulla reputazione degli autori originari.

Infine, ogni programma libero è costantemente minacciato dai brevetti sui programmi. Vogliamo evitare
il pericolo che chi ridistribuisce un Programma libero ottenga brevetti personali, rendendo perciò il
Programma una cosa di sua proprietà. Per prevenire questo, abbiamo chiarito che ogni prodotto
brevettato debba essere distribuito per il libero uso da parte di chiunque, o non distribuito affatto.

Seguono i termini e le condizioni precisi per la copia, la distribuzione e la modifica.

LICENZA PUBBLICA GENERICA GNU

TERMINI E CONDIZIONI PER LA COPIA, LA DISTRIBUZIONE E LA MODIFICA

0. Questa Licenza si applica a ogni Programma o altra opera che contenga una nota da parte del
detentore del copyright che dica che tale opera puo` distribuita sotto i termini di questa Licenza
Pubblica Generica. Il termine “Programma” nel seguito indica ognuno di questi programmi o
lavori, e l'espressione “lavoro basato sul Programma” indica sia il Programma sia ogni opera
considerata “derivata” in base alla legge sul Copyright: cioe` un lavoro contenente il programma
o una porzione di esso, sia letteralmente sia modificato e/o tradotto in un'altra lingua; da qui in
avanti, la traduzione è in ogni caso considerata una “modifica”. Vengono ora elencati i diritti dei
detentori di licenza.

Attività diverse dalla copiatura, distribuzione e modifica non sono coperte da questa Licenza e
sono al di fuori della sua influenza. L'atto di eseguire il programma non viene limitato, e l'output
del programma è coperto da questa Licenza solo se il suo contenuto costituisce un lavoro basato
sul Programma (indipendentemente dal fatto che sia stato creato eseguendo il Programma). In
base alla natura del Programma il suo output puo` essere o meno coperto da questa Licenza.
1. È lecito copiare e distribuire copie letterali del codice sorgente del Programma così come viene
ricevuto, con qualsiasi mezzo, a condizione che venga riprodotta chiaramente su ogni copia una

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (5 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

appropriata nota di copyright e di assenza di garanzia; che si mantengano intatti tutti i riferimenti
a questa Licenza e all'assenza di ogni garanzia; che si dia a ogni altro destinatario del Programma
una copia di questa Licenza insieme al Programma.

È possibile richiedere un pagamento per il trasferimento fisico di una copia del Programma, è
anche possibile a propria discrezione richiedere un pagamento in cambio di una copertura
assicurativa.
2. È lecito modificare la propria copia o copie del Programma, o parte di esso, creando perciò un
lavoro basato sul Programma, e copiare o distribuire queste modifiche e questi lavori sotto i
termini del precedente punto 1, a patto che anche tutte queste condizioni vengano soddisfatte:
a. Bisogna indicare chiaramente nei file che si tratta di copie modificate e la data di ogni
modifica.
b. Bisogna fare in modo che ogni lavoro distribuito o pubblicato, che in parte o nella sua
totalità derivi dal Programma o da parti di esso, sia globalmente utilizzabile da terze parti
secondo le condizioni di questa licenza.
c. Se di solito il programma modificato legge comandi interattivamente quando eseguito,
bisogna fare in modo che all'inizio dell'esecuzione interattiva usuale, stampi un messaggio
contenente una appropriata nota di copyright e di assenza di garanzia (oppure che
specifichi il tipo di garanzia che si offre). Il messaggio deve inoltre specificare agli utenti
che possono ridistribuire il programma nelle condizioni qui descritte e deve indicare come
reperire questa licenza. Se però il programma di partenza è interattivo ma normalmente
non stampa tale messaggio, non occorre che un lavoro derivato lo stampi.
Questi requisiti si applicano al lavoro modificato nel suo complesso. Se sussistono parti
identificabili del lavoro modificato che non siano derivate dal Programma e che possono essere
ragionevolmente considerate lavori indipendenti, allora questa Licenza e i suoi termini non si
applicano a queste parti quando vengono distribuite separatamente. Se però queste parti vengono
distribuite all'interno di un prodotto che è un lavoro basato sul Programma, la distribuzione di
questo prodotto nel suo complesso deve avvenire nei termini di questa Licenza, le cui norme nei
confronti di altri utenti si estendono a tutto il prodotto, e quindi ad ogni sua parte, chiunque ne sia
l'autore.

Sia chiaro che non è nelle intenzioni di questa sezione accampare diritti su lavori scritti
interamente da altri, l'intento è piuttosto quello di esercitare il diritto di controllare la
distribuzione di lavori derivati o dal Programma o contenenti esso.

Inoltre, se il Programma o un lavoro derivato da esso viene aggregato ad un altro lavoro non
derivato dal Programma su di un mezzo di immagazzinamento o di distribuzione, il lavoro non
derivato non deve essere coperto da questa licenza.
3. è lecito copiare e distribuire il Programma (o un lavoro basato su di esso, come espresso al punto
2) sotto forma di codice oggetto o eseguibile sotto i termini dei precedenti punti 1 e 2, a patto che
si applichi una delle seguenti condizioni:
a. Il Programma sia corredato dal codice sorgente completo, in una forma leggibile dal
calcolatore e tale sorgente deve essere fornito secondo le regole dei precedenti punti 1 e 2

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (6 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

su di un mezzo comunemente usato per lo scambio di programmi.


b. Il Programma sia accompagnato da un'offerta scritta, valida per almeno tre anni, di fornire
a chiunque ne faccia richiesta una copia completa del codice sorgente, in una forma
leggibile dal calcolatore, in cambio di un compenso non superiore al costo del
trasferimento fisico di tale copia, che deve essere fornita secondo le regole dei precedenti
punti 1 e 2 su di un mezzo comunemente usato per lo scambio di programmi.
c. Il Programma sia accompagnato dalle informazioni che sono state ricevute riguardo alla
possibilità di avere il codice sorgente. Questa alternativa è permessa solo in caso di
distribuzioni non commerciali e solo se il programma è stato ricevuto sotto forma di
codice oggetto o eseguibile in accordo al precedente punto B. @end enumerate
Per “codice sorgente completo” di un lavoro si intende la forma preferenziale usata per
modificare un lavoro. Per un programma eseguibile, “codice sorgente completo” significa tutto il
codice sorgente di tutti i moduli in esso contenuti, piu` ogni file associato che definisca le
interfacce esterne del programma, piu` gli script usati per controllare la compilazione e
l'installazione dell'eseguibile. In ogni caso non è necessario che il codice sorgente fornito includa
nulla che sia normalmente distribuito (in forma sorgente o in formato binario) con i principali
componenti del sistema operativo sotto cui viene eseguito il Programma (compilatore, kernel, e
cosi` via), a meno che tali componenti accompagnino l'eseguibile.

Se la distribuzione dell'eseguibile o del codice oggetto è effettuata indicando un luogo dal quale
sia possibile copiarlo, permettere la copia del codice sorgente dallo stesso luogo è considerata
una valida forma di distribuzione del codice sorgente, anche se copiare il sorgente è facoltativo
per l'acquirente.
4. Non è lecito copiare, modificare, sublicenziare, o distribuire il Programma in modi diversi da
quelli espressamente previsti da questa Licenza. Ogni tentativo di copiare, modificare,
sublicenziare o distribuire il Programma non è autorizzato, e farà terminare automaticamente i
diritti garantiti da questa Licenza. D'altra parte ogni acquirente che abbia ricevuto copie, o diritti,
coperti da questa Licenza da parte di persone che violano la Licenza come qui indicato non
vedranno invalidare la loro Licenza, purché si comportino conformemente ad essa.
5. L'acquirente non è obbligato ad accettare questa Licenza, poiché non l'ha firmata. D'altra parte
nessun altro documento garantisce il permesso di modificare o distribuire il Programma o i lavori
derivati da esso. Queste azioni sono proibite dalla legge per chi non accetta questa Licenza;
perciò, modificando o distribuendo il Programma o un lavoro basato sul programma, si indica nel
fare ciò l'accettazione di questa Licenza e quindi di tutti i suoi termini e le condizioni poste sulla
copia, la distribuzione e la modifica del Programma o di lavori basati su di esso.
6. Ogni volta che il Programma o un lavoro basato su di esso vengono distribuiti, l'acquirente riceve
automaticamente una licenza d'uso da parte del licenziatario originale. Tale licenza regola la
copia, la distribuzione e la modifica del Programma secondo questi termini e queste condizioni.
Non è lecito imporre restrizioni ulteriori all'acquirente nel suo esercizio dei diritti qui garantiti.
Chi distribuisce programmi coperti da questa Licenza non è comunque responsabile per la
conformità alla Licenza da parte di terze parti.
7. Se, come conseguenza del giudizio di una corte, o di una imputazione per la violazione di un
brevetto o per ogni altra ragione (anche non relativa a questioni di brevetti), vengono imposte

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (7 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

condizioni che contraddicono le condizioni di questa licenza, che queste condizioni siano dettate
dalla corte, da accordi tra le parti o altro, queste condizioni non esimono nessuno
dall'osservazione di questa Licenza. Se non è possibile distribuire un prodotto in un modo che
soddisfi simultaneamente gli obblighi dettati da questa Licenza e altri obblighi pertinenti, il
prodotto non puo` essere affatto distribuito. Per esempio, se un brevetto non permettesse a tutti
quelli che lo ricevono di ridistribuire il Programma senza obbligare al pagamento di diritti, allora
l'unico modo per soddisfare contemporaneamente il brevetto e questa Licenza è di non distribuire
affatto il Programma.

Se parti di questo punto sono ritenute non valide o inapplicabili per qualsiasi circostanza, deve
comunque essere applicata l'idea espressa da questo punto; in ogni altra circostanza invece deve
essere applicato il punto 7 nel suo complesso.

Non è nello scopo di questo punto indurre gli utenti ad infrangere alcun brevetto ne` ogni altra
rivendicazione di diritti di proprietà, né di contestare la validità di alcuna di queste
rivendicazioni; lo scopo di questo punto è solo quello di proteggere l'integrità del sistema di
distribuzione dei programmi liberi, che viene realizzato tramite l'uso della licenza pubblica.
Molte persone hanno contribuito generosamente alla vasta gamma di programmi distribuiti
attraverso questo sistema, basandosi sull'applicazione fedele di tale sistema. L'autore/donatore
può decidere di sua volontà se preferisce distribuire il software avvalendosi di altri sistemi, e
l'acquirente non può imporre la scelta del sistema di distribuzione.

Questo punto serve a rendere il più chiaro possibile ciò che crediamo sia una conseguenza del
resto di questa Licenza.
8. Se in alcuni paesi la distribuzione e/o l'uso del Programma sono limitati da brevetto o dall'uso di
interfacce coperte da copyright, il detentore del copyright originale che pone il Programma sotto
questa Licenza può aggiungere limiti geografici espliciti alla distribuzione, per escludere questi
paesi dalla distribuzione stessa, in modo che il programma possa essere distribuito solo nei paesi
non esclusi da questa regola. In questo caso i limiti geografici sono inclusi in questa Licenza e ne
fanno parte a tutti gli effetti.
9. All'occorrenza la Free Software Foundation può pubblicare revisioni o nuove versioni di questa
Licenza Pubblica Generica. Tali nuove versioni saranno simili a questa nello spirito, ma potranno
differire nei dettagli al fine di coprire nuovi problemi e nuove situazioni.

Ad ogni versione viene dato un numero identificativo. Se il Programma asserisce di essere


coperto da una particolare versione di questa Licenza e “da ogni versione successiva”,
l'acquirente può scegliere se seguire le condizioni della versione specificata o di una successiva.
Se il Programma non specifica quale versione di questa Licenza deve applicarsi, l'acquirente può
scegliere una qualsiasi versione tra quelle pubblicate dalla Free Software Foundation.
10. Se si desidera incorporare parti del Programma in altri programmi liberi le cui condizioni di
distribuzione differiscano da queste, è possibile scrivere all'autore del Programma per chiederne
l'autorizzazione. Per il software il cui copyright è detenuto dalla Free Software Foundation, si
scriva alla Free Software Foundation; talvolta facciamo eccezioni alle regole di questa Licenza.
La nostra decisione sarà guidata da due scopi: preservare la libertà di tutti i prodotti derivati dal

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (8 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

nostro free software e promuovere la condivisione e il riutilizzo del software in generale.


11. NON C'E` GARANZIA

POICHE' IL PROGRAMMA È CONCESSO IN USO GRATUITAMENTE, NON C'È


GARANZIA PER IL PROGRAMMA, NEI LIMITI PERMESSI DALLE VIGENTI LEGGI. SE
NON INDICATO DIVERSAMENTE PER ISCRITTO, IL DETENTORE DEL COPYRIGHT E
LE ALTRE PARTI FORNISCONO IL PROGRAMMA “COSI' COM'È”, SENZA ALCUN
TIPO DI GARANZIA, NE` ESPLICITA NE` IMPLICITA; CIO' COMPRENDE, SENZA
LIMITARSI A QUESTO, LA GARANZIA IMPLICITA DI COMMERCIABILITÀ E
UTILIZZABILITÀ PER UN PARTICOLARE SCOPO. L'INTERO RISCHIO CONCERNENTE
LA QUALITÀ E LE PRESTAZIONI DEL PROGRAMMA E` DELL'ACQUIRENTE. SE IL
PROGRAMMA DOVESSE RIVELARSI DIFETTOSO, L'ACQUIRENTE SI ASSUME IL
COSTO DI OGNI MANUTENZIONE, RIPARAZIONE O CORREZIONE NECESSARIA.
12. NE' IL DETENTORE DEL COPYRIGHT NE` ALTRE PARTI CHE POSSONO MODIFICARE
O RIDISTRIBUIRE IL PROGRAMMA COME PERMESSO IN QUESTA LICENZA SONO
RESPONSABILI PER DANNI NEI CONFRONTI DELL'ACQUIRENTE, A MENO CHE
QUESTO NON SIA RICHIESTO DALLE LEGGI VIGENTI O APPAIA IN UN ACCORDO
SCRITTO. SONO INCLUSI DANNI GENERICI, SPECIALI O INCIDENTALI, COME PURE
I DANNI CHE CONSEGUONO DALL'USO O DALL'IMPOSSIBILITÀ DI USARE IL
PROGRAMMA; CIO' COMPRENDE, SENZA LIMITARSI A QUESTO, LA PERDITA DI
DATI, LA CORRUZIONE DEI DATI, LE PERDITE SOSTENUTE DALL'ACQUIRENTE O
DA TERZE PARTI E L'INABILITÀ DEL PROGRAMMA A LAVORARE INSIEME AD
ALTRI PROGRAMMI, ANCHE SE IL DETENTORE O ALTRE PARTI SONO STATE
AVVISATE DELLA POSSIBILITÀ DI QUESTI DANNI.

FINE DEI TERMINI E DELLE CONDIZIONI

Appendice: come applicare questi termini ai nuovi programmi

Se si sviluppa un nuovo programma e lo si vuole rendere della maggiore utilità possibile per il pubblico,
la cosa migliore da fare è rendere tale programma free software, cosicché ciascuno possa ridistribuirlo e
modificarlo sotto questi termini.

Per fare questo, si inserisca nel programma la seguente nota. La cosa migliore da fare è mettere la nota
all'inizio di ogni file sorgente, per chiarire nel modo più efficiente possibile l'assenza di garanzia; ogni
file dovrebbe contenere almeno la nota di copyright e l'indicazione di dove trovare l'intera nota.

<una riga per dire in breve il nome del programma e cosa fa> Copyright (C) 19aa <nome dell'autore>

Questo programma è free software; è lecito redistribuirlo e/o modificarlo secondo i termini della Licenza
Pubblica Generica GNU come è pubblicata dalla Free Software Foundation; o la versione 2 della licenza
o (a propria scelta) una versione successiva.

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (9 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

Questo programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza
neppure la garanzia implicita di NEGOZIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE
SCOPO. Si veda la Licenza Pubblica Generica GNU per avere maggiori dettagli.

Ognuno dovrebbe avere ricevuto una copia della Licenza Pubblica Generica GNU insieme a questo
programma; in caso contrario, si scriva alla Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
MA 02139, Stati Uniti.

Si aggiungano anche informazioni su come si può essere contattati tramite posta elettronica e cartacea.

Se il programma è interattivo, si faccia in modo che stampi una breve nota simile a questa quando viene
usato interattivamente:

Orcaloca versione 69, Copyright (C) 19aa <nome dell'autore> Orcaloca non ha ALCUNA GARANZIA;
per i dettagli si digiti “show g”. Questo è free software, e ognuno è libero di ridistribuirlo sotto certe
condizioni; si digiti “show c” per dettagli.

Gli ipotetici comandi “show g” e “show c” mostreranno le parti appropriate della Licenza Pubblica
Generica. Chiaramente, i comandi usati possono essere chiamati diversamente da “show g” e “show c” e
possono anche essere selezionati con il mouse o attraverso un menu`; in qualunque modo pertinente al
programma.

Se necessario, si dovrebbe anche far firmare al proprio datore di lavoro (se si lavora come
programmatore) o alla propria scuola, se si e` studente, una “rinuncia al copyright” per il programma.
Ecco un esempio con nomi fittizi:

Yoyodinamica SPA rinuncia con questo documento ad ogni interesse al copyright del programma
“Orcaloca” (che svolge dei passi di compilazione) scritto da Giovanni Smanettone.

<firma di Primo Tizio>, 1 April 1999 Primo Tizio, Presidente

I programmi coperti da questa Licenza Pubblica Generica non possono essere incorporati all'interno di
programmi proprietari. Se il proprio programma è una libreria di funzioni, può essere più utile
permettere di collegare applicazioni proprietarie alla libreria. Se si ha questa intenzione consigliamo di
usare la Licenza Generica Pubblica GNU per Librerie (LGPL) al posto di questa Licenza.

Top ten libri


La classifica delle vendite di questo sito durante l'ultimo mese.

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (10 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

1. Mac OS X Leopard
2. ECDL Il manuale con Atlas Syllabus 5.0
3. ECDL Mettiti alla prova... reloaded
4. Photoshop CS3 Guida completa
5. Introduzione all'analisi qualitativa delle equazioni differenziali ordinarie
6. Sviluppare applicazioni web con PHP e MySQL
7. iPhone
8. AutoCAD 2009
9. Algebra lineare
10. Sviluppare applicazioni web con Rails

Ultimi articoli

09 Dic | Federico Fasce

SkypeIn: è legittimo in Italia?

05 Dic | Federico Fasce

Sulla proposta dell'IP unico

04 Dic | Federico Fasce

Berlusconi e le regole della Rete

03 Dic | Federico Fasce

Nokia schiera l'anti iPhone

02 Dic | Federico Fasce

Ci vediamo su World of Warcraft

01 Dic | Federico Fasce

La tappa italiana di Joi Ito

29 Nov | Serena Romio

Apogeonline Bit Comics # 27.1

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (11 of 12)31/08/2010 13.56.06


Licenza GPL | Apogeonline

28 Nov | Antonio Sofi

Wikipedia, Europeana e la conoscenza creativa

28 Nov | Roberto Venturini

Quei messaggi a casaccio di Vodafone

28 Nov | Federico Fasce

Il garante in Second Life

Tutti gli articoli >>

http://www.apogeonline.com/openpress/gnu_gen_pub_lic (12 of 12)31/08/2010 13.56.06


Windows | Apogeonline

● Home
● Chi siamo
● Catalogo libri
● Contatti
● Feed
● Help

La referenza: Per una maggiore trasparenza sulle leggi italiane legate alla Rete Video
Registrazione/Accesso La Tua Spesa

● Linux-Unix
● Mac Os
● Windows
● Università
● Ebook
● OpenPress
● |

Cerca

Apogeonline Google Book Search

● Linguaggi e Programmazione
● Telefonia e Wireless
● Sistemi operativi
● Editoria digitale
● Diritto e tecnologie
● Computer formazione e lavoro
● Web e Internet
● Free Software

http://www.apogeonline.com/categorie/Windows (1 of 11)31/08/2010 13.56.30


Windows | Apogeonline

● Mondo e Tecnologia

● Economia
● Discipline aziendali
● Matematica e Statistica
● Ingegneria
● Informatica
● Scienze umane

Metallica e la filosofia

di William Irwin

Prezzo: 22.00 Euro

Una filosofia radicata nella contemporaneità e nella quotidianità, che riscopre le idee e i testi dei grandi
del passato attraverso la riflessione sui problemi e le parole di oggi.

● ECDL
● Pratiche Filosofiche
● Urra

Newsletter gratuita
Inserisci il tuo indirizzo e-mail:

http://www.apogeonline.com/categorie/Windows (2 of 11)31/08/2010 13.56.30


Windows | Apogeonline

Net TV

di Tommaso Tessarolo

Prezzo: 13.00 Euro

NET TV: nel prossimo futuro assisteremo a una vera rivoluzione delle regole del fare e del fruire della
TV, con la possibilità per tutti di entrare in gioco.

News sul tuo sito


Vuoi avere le news di Apogeonline sempre aggiornate sul tuo sito? È semplicissimo: scopri come

Windows
.

Ultima uscita
http://www.apogeonline.com/categorie/Windows (3 of 11)31/08/2010 13.56.30
Windows | Apogeonline

Visual Basic 10
di Enrico Amedeo

Uscita: Maggio 2010

Pagine: 216

Formato: 12 X 19,5

Prezzo: 7.90 Euro

ISBN: 88-503-2942-3

Collana: Pocket

Un piccolo tascabile per scoprire il linguaggio Visual Basic ed entrare nel mondo della programmazione
Microsoft .NET. Scritto da un programmatore per programmatori, alle prime armi e non.

vai alla scheda completa

http://www.apogeonline.com/categorie/Windows (4 of 11)31/08/2010 13.56.30


Windows | Apogeonline

Windows 7
di Paolo Poli

Pagine: 72

Prezzo: 6.50 Euro

Scheda informativa

Lavorare e divertirsi con Windows 7: 72 pagine ricche di immagini per scoprire in modo immediato
tutte le potenzialità del sistema operativo Microsoft.

Windows 7
di Riccardo Meggiato

Pagine: 360

Prezzo: 29.00 Euro

Scheda informativa

Riccardo Meggiato racconta Windows 7 aiutando il lettore a esplorarne gli aspetti più curiosi, le
funzionalità più efficaci e gli strumenti più evoluti per il lavoro e il divertimento

Windows 7
http://www.apogeonline.com/categorie/Windows (5 of 11)31/08/2010 13.56.30
Windows | Apogeonline

di Marco Ferrero

Pagine: 264

Prezzo: 7.90 Euro

Scheda informativa

Torna il tascabile di Apogeo sul grande sistema operativo di casa Microsoft: Windows 7. 264 pagine per
scoprire il modo "Seven" di usare il PC.

L'investigatore informatico 2
di Riccardo Meggiato

Pagine: 192

Prezzo: 7.90 Euro

Scheda informativa

Un libro di informatica atipico: un racconto nel mondo delle investigazioni informatiche. Perché
l'informatica, anche quella più difficile, si può imparare con facilità e persino divertendosi.
L'investigatore informatico è qui per questo...

Applicazioni aziendali con Excel

http://www.apogeonline.com/categorie/Windows (6 of 11)31/08/2010 13.56.30


Windows | Apogeonline

di Francesco Borazzo, Roberto Candiotto

Pagine: 256

Prezzo: 19.00 Euro

Scheda informativa

Una guida passo passo alle funzionalità avanzate di Excel, indispensabili per chi, in azienda o per studio,
si trova a costruire modelli complessi o ad analizzare grandi quantità di dati

Windows XP in sicurezza
di Mario Pascucci

Pagine: 200

Prezzo: 0.00 Euro

Scheda informativa

Il rilascio di Vista non ha ancora mandato in pensione Windows XP. Consapevole di questo Mario
Pascucci, con l'aiuto di NoBug, ha deciso di offrire ai lettori di Apogeo un ebook, dove l'esperienza del
professionista è messa a disposizione dell'utente

Internet? Dovrebbe essere più stupida


di Roberto Venturini

http://www.apogeonline.com/categorie/Windows (7 of 11)31/08/2010 13.56.30


Windows | Apogeonline

Se una buona metà degli italiani non usa la Rete un motivo ci sarà. Non è che se li vogliamo a bordo
dobbiamo ripensare a un'internet meno intelligente e ricca?

Apogeonline Bit Comics # 26.3


di Simone Terenziani

La vignetta della settimana. Un autore al mese, quattro strip per raccontare la tecnologia. Il terzo
appuntamento con Simone Terenziani e il suo omino naif alle prese con la tecnologia

Fra sconcerto e magia, il browser che indovina il


sesso
di Maurizio Boscarol

Davvero basta un javascript su una pagina web per scoprire la nostra storia di navigazione? E davvero
sono disponibili statistiche sul profilo demografico dei diversi siti? Quale affidabilità hanno questi
sistemi? Siamo andati in cerca di risposte

Mojave, esperimento o marketing?


di Federico Fasce

Quel che si dice in Rete. Microsoft lancia un esperimento a metà tra psicologia e marketing per

http://www.apogeonline.com/categorie/Windows (8 of 11)31/08/2010 13.56.30


Windows | Apogeonline

dimostrare che Vista, in fondo, non è così male. Ma le critiche, soprattutto riguardo all'etica, non tardano
ad arrivare

Contrordine, PowerPoint non è il male


di Andrea Bagatta

I software per le presentazioni multimediali, e in particolare quello diffusissimo di Microsoft, sono


spesso sotto attacco. Banalizzano i discorsi, schematizzano la realtà, instupidiscono le persone. Davvero
un banale programma ha tutto questo potere?

Il nuovo mercato degli Umpc


di Simone Messina

L'Asus Eee Pc ha aperto un segmento in cui ora produttori di computer e componenti fanno a gara nel
lanciare nuove soluzioni. Sono gli Ultra Mobile Pc, prodotti di nicchia su misura per chi necessita di
prestazioni essenziali e massima portabilità

L'addio di Bill
di Federico Fasce

Quel che si dice in Rete. Bill Gates lascia definitivamente il comando di Microsoft. E la Rete ne ricorda
successi e fallimenti, mentre Steve Ballmer si commuove. Ma il momento per Redmond non è

http://www.apogeonline.com/categorie/Windows (9 of 11)31/08/2010 13.56.30


Windows | Apogeonline

tranquillo, e forse si sta chiudendo un'era

Internet ci rende stupidi?


di Antonio Sofi

Quinta di copertina: come la Rete sta cambiando la nostra esperienza cognitiva (in peggio?) - quindi
Firefox Davide contro Explorer Golia, internet e politica e le start-up tecnologiche

Google, amore e gelosia


di Antonio Sofi

Quinta di copertina: tutto gira intorno a Mountain View - Yahoo! resiste a Microsoft, fa arrabbiare gli
azionisti e fa accordi con Google sulla pubblicità, mentre Firefox prospera e Jobs naviga in solitaria

Si aprono i lucchetti
di Federico Fasce

Quel che si dice in Rete. L'apertura è la nuova strada. La Girl Geek Dinner a Milano. Bastano 1.000 fan.
Explore 8, è la volta buona per gli standard?

http://www.apogeonline.com/categorie/Windows (10 of 11)31/08/2010 13.56.30


Windows | Apogeonline

Pagina dei risultati: 1 23456789101112131415 >>

http://www.apogeonline.com/categorie/Windows (11 of 11)31/08/2010 13.56.30


Linux-Unix | Apogeonline

● Home
● Chi siamo
● Catalogo libri
● Contatti
● Feed
● Help

La referenza: Per una maggiore trasparenza sulle leggi italiane legate alla Rete Video
Registrazione/Accesso La Tua Spesa

● Linux-Unix
● Mac Os
● Windows
● Università
● Ebook
● OpenPress
● |

Cerca

Apogeonline Google Book Search

● Linguaggi e Programmazione
● Telefonia e Wireless
● Sistemi operativi
● Editoria digitale
● Diritto e tecnologie
● Computer formazione e lavoro
● Web e Internet
● Free Software

http://www.apogeonline.com/categorie/Linux-Unix (1 of 9)31/08/2010 13.57.27


Linux-Unix | Apogeonline

● Mondo e Tecnologia

● Economia
● Discipline aziendali
● Matematica e Statistica
● Ingegneria
● Informatica
● Scienze umane

Metallica e la filosofia

di William Irwin

Prezzo: 22.00 Euro

Una filosofia radicata nella contemporaneità e nella quotidianità, che riscopre le idee e i testi dei grandi
del passato attraverso la riflessione sui problemi e le parole di oggi.

● ECDL
● Pratiche Filosofiche
● Urra

Newsletter gratuita
Inserisci il tuo indirizzo e-mail:

http://www.apogeonline.com/categorie/Linux-Unix (2 of 9)31/08/2010 13.57.27


Linux-Unix | Apogeonline

Net TV

di Tommaso Tessarolo

Prezzo: 13.00 Euro

NET TV: nel prossimo futuro assisteremo a una vera rivoluzione delle regole del fare e del fruire della
TV, con la possibilità per tutti di entrare in gioco.

News sul tuo sito


Vuoi avere le news di Apogeonline sempre aggiornate sul tuo sito? È semplicissimo: scopri come

Linux-Unix
.

Ultima uscita
http://www.apogeonline.com/categorie/Linux-Unix (3 of 9)31/08/2010 13.57.27
Linux-Unix | Apogeonline

Android
di Massimo Carli

Uscita: Febbraio 2010

Pagine: 576

Formato: 16,8 X 24

Prezzo: 39.00 Euro

ISBN: 88-503-2921-0

Collana: Guida Completa

La guida alla programmazione per Android, il sistema operativo open source per dispositivi mobili
basato su Linux e garantito da Google

vai alla scheda completa

Linux Ubuntu

http://www.apogeonline.com/categorie/Linux-Unix (4 of 9)31/08/2010 13.57.27


Linux-Unix | Apogeonline

di B. Mako Hill, J. Bacon, I. Krsti•, D. J. Murphy, J. Jesse, P. S

Pagine: 416

Prezzo: 35.00 Euro

Scheda informativa

Dall'esperienza di membri autorevoli del progetto Ubuntu, un manuaale dedicato a chi vuole scoprire e
imparare a usare questa distribuzione Linux che, per potenza e semplicità, non fa certo rimpiangere i
concorrenti Windows e Mac.

Linux Ubuntu
di B. Mako Hill, J. Bacon, C. Burger, J. Jesse, I. Krsti•

Pagine: 240

Prezzo: 7.90 Euro

Scheda informativa

Seconda edizione del manuale tascabile dedicato a Ubuntu, la vera grande alternativa su base GNU/
Linux nel panorama dei sistemi operativi. Per conoscerne le potenzialità e cominciare a utilizzarlo.

Linux Server per l'amministratore di rete


di Silvio Umberto Zanzi

http://www.apogeonline.com/categorie/Linux-Unix (5 of 9)31/08/2010 13.57.27


Linux-Unix | Apogeonline

Pagine: 432

Prezzo: 35.00 Euro

Scheda informativa

Terza edizione, ampliata e aggiornata, del fortunato manuale di Silvio Zanzi dedicato a chi guarda con
interesse alle soluzioni professionali offerte dal mondo Linux. Tutto quello che serve e solo quello che
serve per rendere più competitiva un'azienza

Linux Ubuntu la guida ufficiale seconda edizione


di B. Mako Hill, J. Bacon, I. Krsti•, D. J. Murphy, J. Jesse, P. S

Pagine: 416

Prezzo: 35.00 Euro

Scheda informativa

Questo volume, il manuale ufficiale del progetto Ubuntu, è dedicato a chi vuole scoprire e imparare a
usare questa distribuzione Linux che, in virtù della sua potenza e semplicità, sta conquistando una base
di consensi sempre più ampia.

Apogeonline Bit Comics # 26.3


di Simone Terenziani

http://www.apogeonline.com/categorie/Linux-Unix (6 of 9)31/08/2010 13.57.27


Linux-Unix | Apogeonline

La vignetta della settimana. Un autore al mese, quattro strip per raccontare la tecnologia. Il terzo
appuntamento con Simone Terenziani e il suo omino naif alle prese con la tecnologia

Apogeonline Bit Comics # 25.2


di Giulia Sagramola

La vignetta della settimana. Un autore al mese, quattro strip per raccontare la tecnologia. Il secondo
appuntamento con il bianco tecnologico e sorridente di Giulia Sagramola

Il nuovo mercato degli Umpc


di Simone Messina

L'Asus Eee Pc ha aperto un segmento in cui ora produttori di computer e componenti fanno a gara nel
lanciare nuove soluzioni. Sono gli Ultra Mobile Pc, prodotti di nicchia su misura per chi necessita di
prestazioni essenziali e massima portabilità

Sempre più Linux nel telefono cellulare


di Simone Messina

Dopo OpenMoko, si attende l'arrivo di Android (Google) e Ubuntu Mobile. Un segmento che potrebbe
puntare al 30% del mercato nel giro di qualche anno

http://www.apogeonline.com/categorie/Linux-Unix (7 of 9)31/08/2010 13.57.27


Linux-Unix | Apogeonline

KDE fa il salto ed esce da Linux


di Vincenzo Ciaglia

Che Linux stesse guadagnando consensi era risaputo, ma che arrivasse a confrontarsi con Windows e
Mac sul loro stesso territorio è una novità a modo suo sorprendente

Internet è un elettrodomestico
di Antonio Sofi

Quinta di copertina: internet è ormai nelle case e nelle cose di tutti i giorni (ma attenzione: si può
rompere!) - quindi portabilità dei social network glocali, Linux e Yahoo!

Libera il telefono: il matrimonio tra Linux e


cellulare
di Simone Messina

Quello dei sistemi operativi aperti in dispositivi mobili di ultima generazione è un mercato in crescita.
L'esperienza di OpenMoko

http://www.apogeonline.com/categorie/Linux-Unix (8 of 9)31/08/2010 13.57.27


Linux-Unix | Apogeonline

Zimbra, collaborazione open source per tutti


di Giovanni Barbieri

Un pacchetto di applicazioni basato sul codice libero sfida i giganti delle suite per la collaborazione e la
messaggistica aziendale

Eldy, l’eldorado digitale per la terza età


di Francesca Cappennani

Dalla comunità Linux, un sistema operativo creato per facilitare al massimo l’uso del Pc anche agli over
50

Dalla Corea (del Sud) con furore


di Roberto Venturini

La città Linux, il paradiso dei cellulari: la Corea investe forte per diventare un leader mondiale nell'high
tech. E noi, che cosa faremo da grandi?

.
Pagina dei risultati: 1 234567

http://www.apogeonline.com/categorie/Linux-Unix (9 of 9)31/08/2010 13.57.27

Potrebbero piacerti anche