The Linux Networking Overview HOWTO Daniel López Ridruejo, ridruejo@esi.us.es v0.31, 17 settembre 1999 Lo scopo di questo documento è di dare una panoramica alle possibilità di rete del sistema operativo Linux e di fornire puntatori a ulteriori informazioni e dettagli implementativi. Traduzione di Salvatore Passerini(s.passerini@mclink.it). ______________________________________________________________________ Indice Generale 1. Introduzione 2. Linux 2.1 Cos'è Linux? 2.2 Che cosa rende Linux diverso? 3. Protocolli di rete 3.1 TCP/IP 3.2 TCP/IP versione 6 3.3 IPX/SPX 3.4 Suite di protocolli AppleTalk 3.5 WAN Networking: X.25, Frame-relay, ecc... 3.6 ISDN 3.7 PPP, SLIP, PLIP 3.8 Radioamatori 3.9 ATM 4. Hardware di rete supportato 5. Condivisione di file e stampanti 5.1 Ambiente Apple 5.2 Ambiente Windows 5.3 Ambiente Novell 5.4 Ambiente UNIX 6. Internet/Intranet 6.1 E-Mail 6.1.1 Server E-Mail 6.1.2 Accesso remoto alla posta 6.1.3 Mail User Agent 6.1.4 Software per mailing list 6.1.5 Fetchmail 6.2 Server Web 6.3 Browser Web 6.4 Server e client FTP 6.5 Servizio news 6.6 Domain Name System 6.7 DHCP, bootp 6.8 NIS 6.9 Autenticazione 7. Esecuzione remota di applicazioni 7.1 Telnet 7.2 Comandi remoti 7.3 X-Window 7.4 VNC 8. Interconnessioni di rete 8.1 Router 8.2 Bridge 8.3 Mascheramento-IP 8.4 Accounting IP 8.5 Aliasing IP 8.6 Controllo del traffico 8.7 Firewall 8.8 Re-invio su porta (port forwarding) 8.9 Bilanciamento del carico 8.10 EQL 8.11 Proxy Server 8.12 Composizione su richiesta 8.13 Tunnelling, IP mobile e reti private virtuali 9. Gestione della rete (Network Management) 9.1 Applicazioni di gestione della rete 9.2 SNMP 10. Reti aziendali con Linux 10.1 Alta disponibilità 10.2 RAID 10.3 Networking con ridondanza 11. Fonti di informazione 12. Cronologia 13. Ringraziamenti e liberatoria ______________________________________________________________________ 11.. IInnttrroodduuzziioonnee Lo scopo di questo documento è di dare una panoramica delle possibilità di rete del sistema operativo Linux. Sebbene uno dei punti di forza di Linux è il fatto che ci sono moltissime informazioni disponibili praticamente su ogni cosa, molte di 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. 22.. LLiinnuuxx 22..11.. CCooss''èè LLiinnuuxx?? L'autore principale di Linux è Linus Torvalds. Sin dalla sua versione originale, è stato migliorato da un numero 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 modifiche, a patto che mantenga il codice sotto il medesimo copyright. 22..22.. CChhee ccoossaa rreennddee LLiinnuuxx ddiivveerrssoo?? 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 elevati che è potuta essere stata raggiunta solo dopo anni di debug e di test nel progetto Open Source. 33.. PPrroottooccoollllii ddii rreettee Linux supporta molti protocolli di rete diversi: 33..11.. TTCCPP//IIPP 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 33..22.. TTCCPP//IIPP vveerrssiioonnee 66 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 33..33.. IIPPXX//SSPPXX 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 nei sistemi operativi di rete (NOS - Network Operating System) della prima generazione di LAN. Novell ha completato il suo NOS con una suite di applicazioni orientate al business e con utilità di connessione per il lato client. 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, Caldera 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 33..44.. SSuuiittee ddii pprroottooccoollllii AApppplleeTTaallkk 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'implementazione 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. 33..55.. WWAANN NNeettwwoorrkkiinngg:: XX..2255,, FFrraammee--rreellaayy,, eecccc...... 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 per Linux: http://www.secretagent.com/networking/wan.html 33..66.. IISSDDNN Il kernel Linux ha al suo interno il supporto per ISDN. Isdn4linux controlla le schede ISDN per PC e può emulare un modem con l'insieme dei comandi Hayes (i comandi "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 33..77.. PPPPPP,, SSLLIIPP,, PPLLIIPP 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 (Parallel 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. · Linux PPP HOWTO · PPP/SLIP emulator · Informazioni su PLIP possono essere trovate in The Network Administrator Guide 33..88.. RRaaddiiooaammaattoorrii 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. · Amateur radio HOWTO 33..99.. AATTMM 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, emulazione di LAN... · Linux ATM-Linux home page 44.. HHaarrddwwaarree ddii rreettee ssuuppppoorrttaattoo Linux supporta una grande varietà di hardware di rete, compreso molto hardware ormai obsoleto. Alcuni documenti interessanti: · Hardware HOWTO · Ethernet HOWTO 55.. CCoonnddiivviissiioonnee ddii ffiillee ee ssttaammppaannttii La scopo primario di molte reti locali (Local Area Network) basate su PC è di fornire ai propri utenti la condivisione dei servizi di stampa e di accesso ai file. Linux è una grande soluzione ai server aziendali per tali servizi. 55..11.. AAmmbbiieennttee AAppppllee Come evidenziato nelle precedenti sezioni, Linux supporta la famiglia di protocolli Appletalk. Il netatalk di Linux permette ai client Macintosh di vedere i Sistemi Linux come altri Macintosh nella rete, condividere file e usare stampanti connesse ai server 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 55..22.. AAmmbbiieennttee WWiinnddoowwss Samba è una suite di applicazioni che permette a molti Unix (e in particolare a Linux) 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 Windows 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 nei client dei driver di stampa. Funzionando come client permette alla workstation Linux 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" · Samba project home page · Samba HOWTO · Printing HOWTO 55..33.. AAmmbbiieennttee NNoovveellll 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. · IPX HOWTO 55..44.. AAmmbbiieennttee UUNNIIXX La modalità preferenziale per la condivisione dei file in una rete UNIX è tramite NFS. 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 avere 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 66.. IInntteerrnneett//IInnttrraanneett Linux è una grande piattaforma per il funzionamento come Server Internet/intranet. Il termine intranet fa riferimento all'applicazione delle tecnologie di Internet dentro a un azienda, principalmente con lo scopo di distribuire e rendere disponibili informazioni all'interno della società. I 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 successivi. 66..11.. EE--MMaaiill 66..11..11.. SSeerrvveerr EE--MMaaiill Sendmail è di fatto il programma server per la posta elettronica standard per piattaforme UNIX. È robusto, scalabile e, adeguatamente configurato e dotato dell'hardware necessario, può gestire carichi di migliaia di utenti 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. · Sito web di Sendmail · Smail faq · Qmail 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 66..11..22.. AAcccceessssoo rreemmoottoo aallllaa ppoossttaa 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. · Breve confronto tra IMAP e POP (in inglese) HOWTO relativi all'email: · http://metalab.unc.edu/mdw/HOWTO/Mail-HOWTO.html · http://metalab.unc.edu/mdw/HOWTO/mini/Cyrus-IMAP.html 66..11..33.. MMaaiill UUsseerr AAggeenntt In Linux esistono diversi MUA (Mail User Agent), sia grafici che testuali. Fra i più usati ci sono: pine, elm, mutt e Netscape. · Elenco del software relativo all'email · http://metalab.unc.edu/mdw/HOWTO/mini/TkRat.html 66..11..44.. SSooffttwwaarree ppeerr mmaaiilliinngg lliisstt 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/ · Listserv · Majordomo home page 66..11..55.. FFeettcchhmmaaiill 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. · Fetchmail home page 66..22.. SSeerrvveerr WWeebb La maggior parte delle distribuzioni di Linux includono Apache . Apache è il server numero uno in Internet 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 · Web server per Linux 66..33.. BBrroowwsseerr WWeebb 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. · Software browser per Linux · http://metalab.unc.edu/mdw/HOWTO/mini/Public-Web-Browser.html 66..44.. SSeerrvveerr ee cclliieenntt FFTTPP 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/ 66..55.. SSeerrvviizziioo nneewwss 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 con un alto carico sia per siti che ricevono solo pochi newsgroup. · INN home page · Software Linux per le news 66..66.. DDoommaaiinn NNaammee SSyysstteemm 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. · BIND · DNS HOWTO 66..77.. DDHHCCPP,, bboooottpp 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: · DHCP HOWTO 66..88.. NNIISS 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: · NIS HOWTO 66..99.. AAuutteennttiiccaazziioonnee 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: PAM library . · Infine, LDAP in Linux 77.. EEsseeccuuzziioonnee rreemmoottaa ddii aapppplliiccaazziioonnii 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 applicazioni. 77..11.. TTeellnneett 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. · Software relativo a Telnet 77..22.. CCoommaannddii rreemmoottii 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. 77..33.. XX--WWiinnddooww 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. 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: Xfree . Essa è normalmente inclusa nella maggior parte delle distribuzioni Linux. HOWTO correlati: · How-to per applicazioni X remote 77..44.. VVNNCC 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. · Sito web di VNC 88.. IInntteerrccoonnnneessssiioonnii ddii rreettee 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 possibili opzioni sono descritte di seguito. 88..11.. RRoouutteerr Il kernel di Linux ha un supporto integrato per le funzioni di instradamento (routing). 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 macchine configurate per agire principalmente come router: · Multicasting: Permette alla macchina Linux di agire come router per pacchetti IP che hanno diversi indirizzi di destinazione. Ciò è necessario in MBONE, una rete a larga banda alla base di Internet che trasporta diffusioni audio e video. · Regole di routing IP: Normalmente un router decide cosa fare di un pacchetto ricevuto basandosi unicamente sull'indirizzo di destinazione finale del pacchetto ma può anche tener conto dell'indirizzo di provenienza e del dispositivo di rete dal quale gli è pervenuto il pacchetto. Ci sono dei progetti che mirano a costruire un router Linux perfettamente funzionante in un floppy disk: Linux router project 88..22.. BBrriiddggee 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 bridge prodotti da terze parti. Programmi aggiuntivi permettono il filtraggio basato su indirizzi IP, IPX o MAC. HOWTO correlati: · Bridge+Firewall · Bridge 88..33.. MMaasscchheerraammeennttoo--IIPP 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 benissimo 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 a incrementare la sicurezza (in qualche modo la macchina si comporta come un firewall, 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 88..44.. AAccccoouunnttiinngg IIPP 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 di regole in modo che, quando un pacchetto rispecchia un certo modello venga incrementato un contatore oppure tale pacchetto sia accettato, rifiutato ecc... 88..55.. AAlliiaassiinngg IIPP Questa caratteristica del kernel dà la possibilità di assegnare più indirizzi di rete per lo stesso driver di dispositivo di rete a basso livello (ad esempio due indirizzi IP per una 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: · IP Aliasing HOWTO 88..66.. CCoonnttrroolllloo ddeell ttrraaffffiiccoo Il controllore del traffico è un dispositivo di rete virtuale che rende possibile limitare 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 di 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 di 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 88..77.. FFiirreewwaallll Un firewall è un dispositivo che protegge una rete privata dalla parte pubblica (l'intera Internet). È disegnato per controllare il flusso dei pacchetti basandosi sulle informazioni di origine, destinazione, porta e tipo contenute in ogni pacchetto. 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 strumenti, permettono il blocco e la reindirizzazione di ogni tipo di traffico e protocollo. Possono essere adottate diverse politiche attraveso file di configurazione o programmi a interfaccia grafica. · TIS home page · SOCKS · Firewall HOWTO 88..88.. RRee--iinnvviioo ssuu ppoorrttaa ((ppoorrtt ffoorrwwaarrddiinngg)) 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 che 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. I 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 qui 88..99.. BBiillaanncciiaammeennttoo ddeell ccaarriiccoo 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 di 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 qui 88..1100.. EEQQLL EQL è integrato all'interno del kernel Linux. Se esistono due connessioni seriali verso qualche altro computer (solitamente ciò richiede la disponibilità di due modem e di 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 queste 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 88..1111.. PPrrooxxyy SSeerrvveerr 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 è una macchina che riceve le richieste di pagine Web da un'altra macchina (Macchina A). Il proxy ottiene la pagina richiesta e restituisce il risultato alla Macchina A. Il proxy può avere una cache con le pagine richieste, cosicché se un'altra macchina chiede la stessa pagina le viene restituita la copia in cache. Ciò permette l'uso efficiente delle risorse di banda e tempi di risposta minori. Come effetto collaterale, poiché le macchine client 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 un 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. · Apache · Squid 88..1122.. CCoommppoossiizziioonnee ssuu rriicchhiieessttaa 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 è inoperoso per un certo periodo di tempo, fa cadere la connessione. · Diald HOWTO 88..1133.. TTuunnnneelllliinngg,, IIPP mmoobbiillee ee rreettii pprriivvaattee vviirrttuuaallii Il kernel di Linux permette il tunnelling (incapsulamento) di protocolli. Ad esempio si può incapsulare il protocollo IPX dentro il protocollo IP, permettendo la connessione di due reti IPX attraverso un collegamento solo IP. Si può anche fare tunnelling IP-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 è 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 di 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 quale, ogni datagramma è consegnato al nodo mobile. Il Protocollo di Tunneling Punto-Punto (PPTP) è una tecnologia di rete che permette 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 gli utenti possono connettersi con un ISP locale o direttamente a Internet e accedere alla propria rete come se si trovassero sulla propria scrivania. PPTP è un protocollo chiuso e la sua sicurezza è stata recentemente compromessa. Si raccomanda decisamente di utilizzare alternative differenti basate su Linux, dal momento che queste si basano su standard aperti che sono stati attentamente esaminati e testati. · Una implementazione client del PPTP per Linux è disponibile 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 99.. GGeessttiioonnee ddeellllaa rreettee ((NNeettwwoorrkk MMaannaaggeemmeenntt)) 99..11.. AApppplliiccaazziioonnii ddii ggeessttiioonnee ddeellllaa rreettee Esiste un numero impressionate di strumenti focalizzati nella gestione della rete e l'amministrazione remota. Alcuni progetti interessanti per l'amministrazione remota sono linuxconf e webmin: · Webmin · Linuxconf Altri strumenti comprendono i tool per l'analisi del traffici di rete, della sicurezza della rete, di monitoraggio, di configurazione ecc. Un archivio con molti di questi strumenti può essere trovato a Metalab 99..22.. SSNNMMPP 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 1100.. RReettii aazziieennddaallii ccoonn LLiinnuuxx In certe situazioni, è necessario per l'infrastruttura di rete disporre di meccanismi idonei a garantire la disponibilità del servizio per quasi il 100% del tempo. Alcune delle tecniche per ottenere ciò sono descritte nelle seguenti sezioni. La maggior parte del materiale seguente può essere trovata sull'eccellente sito Web Linas: http://linas.org/linux/index.html e su Linux High-Availability how-to 1100..11.. AAllttaa ddiissppoonniibbiilliittàà La ridondanza è usata per prevenire il sistema globale dai singoli punti di guasto. Un server con solo una scheda di rete e un singolo disco SCSI ha due singoli punti di guasto. L'obiettivo è mascherare agli utenti le rotture non previste, in modo che questi possano continuare a lavorare velocemente. Il software per l'alta disponibilità è composto da una serie di script e di strumenti che controllano e scoprono i guasti, muovendo i passi appropriati affinché siano ripristinate le normali operazioni notificando il tutto all'amministratore di sistema. 1100..22.. RRAAIIDD RAID, acronimo di Redundant Array of Inexpensive Disks, è un metodo che permette l'immagazzinamento delle informazioni su più dischi, usando tecniche come lo striping dei dischi (RAID Livello 0) e il mirroring di dischi (RAID Livello 1) per ottenere ridondanza, bassa latenza e/o banda più elevata in lettura e/o scrittura, e la possibilità di recupero delle informazioni dopo la rottura di un disco. Sono stati definiti 6 diversi tipi di configurazioni RAID. Ci sono tre tipi di soluzioni RAID a disposizione degli utenti di Linux: RAID software, box DASD esterni e controller di dischi RAID. · RAID Software: il RAID puramente software implementa i diversi livelli RAID nel codice di gestione dei dischi (dispositivi a blocchi) del kernel. · Soluzioni DASD esterne: i DASD (Direct Access Storage Device) sono box separati dotati di alimentazione propria che forniscono un cabinet/chassis per sistemare i dischi fissi e appaiono a Linux come un altro dispositivo SCSI. Sotto molti aspetti, questi offrono la soluzione RAID più robusta. · Controller di Dischi RAID: i controller per i dischi sono schede da inserire nel bus ISA/EISA/PCI. Proprio come i normali controller, sono attaccatti con un cavo ai dischi fissi. Diversamente dai normali controller per i dischi, i controller RAID implementano RAID nella scheda stessa, effettuanado tutte le operazioni necessario per fornire i diversi 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: · http://linas.org/linux/raid.html 1100..33.. NNeettwwoorrkkiinngg ccoonn rriiddoonnddaannzzaa Sostituzione di indirizzi IP (IPAT). Quando un adattatore di rete si guasta, il suo indirizzo IP dovrebbe essere rilevato da una scheda di rete funzionante, nello stesso o in un altro nodo. Sostituzione di indirizzo MAC: quando avviene una sostituzione di indirizzo IP, bisognerebbe assicurarsi che tutti i nodi della rete aggiornino le proprie cache ARP (che rappresentano la 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.html 1111.. FFoonnttii ddii iinnffoorrmmaazziioonnee 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/ 1122.. CCrroonnoollooggiiaa · 0.31 (17 settembre 1999) Modificato l'indirizzo del progetto router (grazie a John Ellis) e aggiunto un altro collegamento PPTP (grazie a Benjamin Smith) · 0.30 (6 aprile 1999) Inserita sezione su CODA (grazie a Brian Ristuccia ) · 0.2-0.29 Correzioni di bug :-) (si vedano i ringraziamenti al termine di questo documento) · 0.1 (5 giugno 1998) 1133.. RRiinnggrraazziiaammeennttii ee lliibbeerraattoorriiaa 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/lno/ . Daniel Lopez Ridruejo 17 Sept 1999