SLIP/PPP Emulator HOWTO a cura di Irish Versione 3.0 (aggiornata al 8/7/97) ____________________________________________________________ Indice Generale 1. Introduzione 2. Come funziona un emulatore? 2.1 Cos'è il TIA? 2.2 Cos'è lo SLiRP? 2.3 Che dire di Term? 2.4 Che dire del vero SLIP/PPP? 2.5 Ne ho abbastanza! Come inizio? 3. Preparare la vostra macchina Linux 3.1 Compilare il vostro kernel 3.2 Editare qualche file in /etc 3.3 DIP 3.4 PPP 4. E ora? 4.1 Posta 4.2 News 4.3 Mosaic/Netscape 5. Miscellanea 5.1 Riferimenti ______________________________________________________________________ 11.. IInnttrroodduuzziioonnee Questo documento descriverà come riuscire a far connettere la vostra macchina Linux ad un sito qualunque usando un emulatore SLIP/PPP, ad esempio SLiRP o TIA. Non mi assumo nessuna responsabilità per il vostro utilizzo di queste informazioni, ma le correzioni sono benvenute. Non proverò a descrivere tutto quello che può essere fatto su questa connessione dopo che è stata stabilita, ma farò riferimento ad altri documenti o siti che conterranno le informazioni più importanti. Fatto questo, cominciamo! 22.. CCoommee ffuunnzziioonnaa uunn eemmuullaattoorree?? È importante capire come funziona in generale un emulatore SLIP/PPP, per rendersi conto dei suoi limiti. Innanzitutto, non è necessario che installiate l'emulatore sulla vostra macchina. L'emulatore gira soltanto sul vostro host remoto. È richiesta l'installazione dei protocolli TCP/IP e SLIP o PPP nel kernel sulla vostra macchina (cose che tra un po' approfondiremo), e di qualche client. Ecco cosa succede: voi spedite delle richieste di rete dalla vostra macchina al vostro host remoto attraverso il collegamento SLIP/PPP. L'emulatore le cattura e le invia in generale fuori sulla Rete. Poi i dati in ingresso vengono mandati indietro dalla Rete al vostro account sull'host remoto, dove l'emulatore le cattura e le invia indietro sul collegamento SLIP/PPP alla vostra macchina. Sicché, alla Rete sembra come se voi steste operando dal vostro account sull'host remoto, ma a voi appare come se foste davvero connessi proprio alla Rete. Come potete vedere, ciò può confondere la roba che è in arrivo dalla Rete. Ad esempio, talk non funziona con un emulatore, perché la richiesta in ingresso di talk cerca di lanciare il demone talk sull'host remoto, non sul vostro. L'altra profonda differenza tra un emulatore ed un vero SLIP/PPP è che NON vi viene assegnato un indirizzo IP univoco; ricordate, state soltanto convertendo un dialup account in una connessione SLIP/PPP. 22..11.. CCooss''èè iill TTIIAA?? "The Intenet Adaptor" (L'Adattatore Internet ndt) è stato scritto dai genietti di marketplace.com. Ora hanno smesso di lavorarci sopra e lo considerano un prodotto 'maturo'. L'ultima versione è la 2.05; se avete intenzione di utilizzare TIA, procuratevi per cortesia questa versione. NNOOTTAA Secondo le ultime voci, sono disponibili ora soltanto licenze per siti. 22..22.. CCooss''èè lloo SSLLiiRRPP?? Si tratta di un programma freeware, coperto dalla GNU Public License. Al momento ne è uscita una beta, ed è molto stabile. Sfoggia un po' di funzionalità in più rispetto a TIA, ed è (a quanto dicono) più accomodante sulle risorse dell'host. Disponibile dappertutto presso i siti FTP su Linux. 22..33.. CChhee ddiirree ddii TTeerrmm?? Se non avete l'accesso di root presso la vostra macchina per una ragione o per un'altra, e non potete convincere qualcuno che ce l'ha ad installare SLIP e dip, allora non avrete molte possibilità tranne l'utilizzo di Term. Se ne volete sapere di più su Term, per favore leggete l'HOWTO su Sunsite. 22..44.. CChhee ddiirree ddeell vveerroo SSLLIIPP//PPPPPP?? Hey, oggigiorno un sacco di posti stanno offrendo del vero SLIP/PPP per dialup non dedicate a prezzi ragionevoli. Se ve lo potete permettere o ne sentite il bisogno, prendetelo. La Cosa Vera è sempre migliore dell'emulazione. Comunque uno dei vantaggi di un emulatore è la sicurezza; funziona come un firewall impenetrabile, e usandolo siete corazzati abbastanza, esattamente come il vostro provider. Dovrete tuttavia pagare per questo vantaggio, l'emulazione è più lenta e non supporta appieno tutti i protocolli. Ancora, e concludo, l'emulazione è sufficiente per la maggior parte delle persone ed è una buona maniera di collegarsi alla Rete/Internet. 22..55.. NNee hhoo aabbbbaassttaannzzaa!! CCoommee iinniizziioo?? Va bene, ci stiamo arrivando, ma prima c'è qualche informazione di cui avete bisogno, ed un paio di spiegazioni. Innanzitutto, avete bisogno di ottenere l'indirizzo IP del vostro provider, se non lo avete già. Potete ottenerlo scrivendo 'who' al prompt di shell presso di loro, o leggendo il loro /etc/hosts, o anche soltanto chiedendoglielo. Mentre ve lo procurate, prendete l'indirizzo IP dell'host POP/SMTP e del server NNTP (se non sapete cosa sono queste cose, fidatevi di me e chiedetele lo stesso, ne avrete bisogno). In secondo luogo, fatemi spiegare velocemente qualcosa sull'hostname e sul nome di dominio. L'hostname è la prima parte di un nome delle macchine, il dominio è la sua parte restante. Più o meno così: nomehost.dominio.nome (una divisione in quattro sarebbe nomehost.do.minio.nome). Insieme essi formano un Fully Qualified Domain Name o FQDN (Nome di Dominio Pienamente Qualificato ndt). Il nome della vostra macchina Linux viene conservato in /etc/HOSTNAME, e sì, potete cambiarlo. Infatti, per favore fatelo (se state usando Slackware, sarà per default "darkstar.frop.org"). Basta editare il file /etc/HOSTNAME per essere qualunque cosa vogliate - ricordate, se state usando un emulatore, allora siete praticamente invisibile per la Rete in generale, sicché potete essere creativi. Comunque, se state progettando di ottenere prima o poi una vera connessione SLIP/PPP, probabilmente vorrete adattarvi ad essere un sub-host del vostro provider. Ad esempio, se il vostro provider è "info.superhiway.com", il dominio è "superhiway.com" e il nome dell'host è "info". Allora potreste essere sia "offramp.info.superhiway.com" che soltanto "offramp.superhiway.com". Funzionerebbero entrambi, ed in entrambi i casi il vostro hostname è "offramp". 33.. PPrreeppaarraarree llaa vvoossttrraa mmaacccchhiinnaa LLiinnuuxx In due parole, ecco di cosa avete bisogno. Spiegherò le prime tre cose approfonditamente. · Compilare il vostro kernel per includere SLIP e TCP/IP · Editare qualche file in /etc · Installare e configurare dip · Installare pppd (facoltativo, solo per PPP) Avrete anche bisogno di prendere un appropriato emulatore binario per il vostro host remoto e di installarlo. SLiRP è disponibile presso Sunsite e altri siti FTP su Linux. Tutte le informazioni importanti per TIA sono disponibili presso il sito principale di TIA. Fatto! Cominciamo. 33..11.. CCoommppiillaarree iill vvoossttrroo kkeerrnneell Se non l'avete mai fatto, allora dovreste farlo. E dovreste leggere prima le FAQ, ma non vi preoccupate, è facile. Se volete, mi potete spedire una e-mail e vi darò una mano. Darò per scontato che sappiate farlo, per amore di brevità. Quando fate il 'make config', cercate "Network Devices". Mettete 'y', naturalmente, poi mettete 'y' a SLIP, CSLIP, (o PPP) e TCP/IP e 'n' a tutto il resto, a meno che non abbiate delle schede ethernet oppure abbiate bisogno di qualche altro protocollo per qualcos'altro. _S_e _n_o_n _l_o _f_a_t_e_, _n_o_n _f_u_n_z_i_o_n_e_r_à_! Terminate la compilazione e l'installazione del nuovo kernel, poi, 33..22.. EEddiittaarree qquuaallcchhee ffiillee iinn //eettcc Questi file inizializzeranno i vostri percorsi verso il vostro host remoto. /etc è la directory per le configurazioni del sistema. Sostituite tutto quello che è tra virgolette con i valori appropriati, naturalmente (ma non inserite le virgolette, servono da promemoria). Ci sono tre file che dovete cambiare e sono: · /etc/hosts: # La riga successiva deve essere ESATTAMENTE come questa. 127.0.0.1 localhost # Notate che al termine delle prossime due voci l'hostname viene # ripetuto. # Questa abbreviazone è un alias, ed è necessaria per la prima voce. # Se siete su una LAN, avrete bisogno di sostituire il vostro # indirizzo IP nella prima riga qui sotto. 192.0.2.1 "vostrohostname.dominio.nome vostrohostname" "XXX.XXX.XX.XX" "hostnameremoto.dominio.nome hostnameremoto" · /etc/host.conf: order hosts, bind multi on · /etc/resolv.conf: domain "vostrodominio.nome" # La riga successiva di solito usa lo stesso indirizzo IP remoto che è # presente in /etc/hosts nameserver "XXX.XXX.XX.XX" · Per usare un server NNTP, inserite questa riga in /etc/profile: export NNTPSERVER="hosts.remoto.nntpnomeserver" 33..33.. DDIIPP DIP (Dialup Internet Protocol) è ciò che userete per chiamare l'host remoto, lanciare l'emulatore e convertire la linea in un SLIP/PPP. È presente nel pacchetto "N" della Slackware, insieme ad un sacco di client e di utility, qualcuna delle quali potreste anche volerla installare =). È anche disponibile presso Sunsite in un singolo file .tar Una volta installato, avrete bisogno di uno script dip. Qui c'è un esempio, basta inserire la roba giusta dove stanno le virgolette (ma non inserite le virgolette, servono solo da promemoria). ----------TAGLIA QUI-------------------------------- main: get $local "vostrohostname.dominio.nome" get $remote "hostnameremoto.dominio.nome" # La vostra porta qui port cua"?" # Usate 115200 per i modem 28.8 speed 57400 reset # non usate gli spazi nella vostra stringa di comando AT! init AT "string of commands" wait OK 5 # Questo farà richiamare. Se non funziona, giocate con il tempo di attesa # (ascoltate il vostro modem). Se non funziona ancora, scrivetemi. # _Guardate anche la nota alla fine dello script re: error codes._ dial: dial "phonenumber" print Dialing... if $errlvl != 0 goto error # Potreste aver bisogno di cambiare questo tempo di attesa per # adattarlo al vostro modem wait BUSY 20 if $errlvl == 0 goto dial login: print Connected and Logging in... # Questo "wait" e "send" mi fa superare i miei host Annex. _Cambiatelo # per il vostro sito!_ wait ==> 60 send 4\n wait ogin: 60 if $errlvl != 0 goto login_error1 send "LOGIN"\n wait assword: 60 if $errlvl != 0 goto login_error2 send "PASSWORD"\n loggedin: wait "SYSTEM PROMPT" 60 if $errlvl != 0 goto shell_error print Logged in! send "emulator startup command"\n wait "emulator startup response" 60 if $errlvl != 0 goto emu_error # Il valore raccomandato di mtu è 1500, ma questo è più veloce in modo # interattivo. L'ftp potrebbe essere più lento, sicché modificatelo a # piacere. get $mtu 296 default done: print CONNECTED to $remote with address $rmtip mode CSLIP goto exit error: print Dialing Error login_error1: print No Login login_error2: print No Password prompt shell_error: print No shell prompt emu_error: There was a problem starting the emulator exit: # Questo provocherà un errore quando si usa il flag -v, ma funziona # quando lo lanciate normalmente (termina dip ad un prompt locale). \r -------------TAGLIA QUI----------------------------- Dip fa notare che versioni più recenti di dip non ritornano i codici dello status del modem (BUSY, NO CONNECT, etc.), al loro posto usano dei numeri. Ecco una tabella: · 0 = OK · 1 = CONNECT · 2 = ERROR · 3 = BUSY · 4 = NO CARRIER Questo dovrebbe rendere la vostra sezione di composizione telefonica somigliante a questo: dial: dial "phonenumber" print Dialing... if $errlvl != 0 goto error wait 1 20 if $errlvl != 1 goto dial Ringrazio Lee Olds (lee@eskimo.com) per questa parte. \n = nuova linea, \r = a capo. Potreste aver bisogno di uno dei due (o di entrambi) nei posti giusti. Se quelli forniti non funzionano, fate degli esperimenti. Una nota sul modo in cui sono scritti il "wait" e i "send". Se non risulta chiaro dall'esempio, ecco cosa sta succedendo: · wait ogin: 60 (lo script aspetterà per 60 secondi che il remoto invii 'ogin:'. Quando lo ottiene, lo script va avanti. Se non gli arriva, allora andrà avanti dopo una sospensione di 60 secondi.) · if $errlvl != 0 goto login_error1 (tutta questa riga è opzionale) (se lo script sta andando avanti perché ha ottenuto quello che stava aspettando, questo viene saltato. Se lo script continua perché è scaduto il tempo, andrà dove gli dite di andare ('login_error1' in questo caso)) · send "LOGIN"\n (DIP invierà 'LOGIN' ed un carattere di nuova riga) Potete inserire dei comandi di pausa se ne avete bisogno, in questo modo: "sleep 10" Questo metterà in pausa lo script per 10 secondi. Dopo aver scritto questo file, rinominatelo, diciamo, come remote.dip ed inseritelo in /root. Poi, come root, avviate 'dip remote'. Usate il flag -v la prima volta per fare un debug ('dip -v remote'), questo flag vi mostrerà tutti i passi che dip compie. Dip si avvierà soltanto come root, ma c'è un modo per farlo partire da un account utente. Per ora, se avete bisogno di questa informazione, chiedetemela. Posso inserirla in questo file più in là, se la vogliono abbastanza persone. Se il dip emette subito un segnale d'errore, provate a togliere i commenti dallo script. 33..44.. PPPPPP Quanto detto sopra vi fa navigare con il CSLIP, il che è davvero un'ottima cosa la maggior parte delle volte. È davvero facile farlo funzionare, dal momento che il protocollo è supportato al livello del kernel - soltanto accertatevi che stia lì e che funzioni. Comunque, qualcuno di voi vorrà il PPP, per motivi che soltanto voi potete dire. Non vi dirò qui come installarlo, esiste un altro intero HOWTO scritto apposta. Quello che farò è dirvi cosa c'è da capire quando si usa il PPP con un emulatore. Innanzitutto, nell'ultima versione del DIP si afferma che potete usarlo per lanciare il PPP e potete farlo, MA fa partire soltanto il demone PPP - nessun flag, niente. Sicché se volete usare DIP per lanciare il PPP, assicuratevi di inserire tutte le informazioni di avvio nel file /etc/ppp/options, altrimenti non funzionerà. Parlando del file delle opzioni, una delle cose che DEVONO essere presenti al suo interno a prescindere da come lanciate il pppd è questa: '192.0.2.1:XXX.XXX.XX.XX'. Che è 'indirizzoIPlocale:indirizzoIPremoto'. Ne avete bisogno perché di norma il pppd può riempire da solo questa riga vuota, ma non ci riesce se si connette ad un emulatore. Assicuratevi di prendere l'ultima release del pacchetto pppd e la più grande. Sembra che recentemente ci siano state alcune versioni che avevano qualche problema. Infine, a meno che non abbiate una buona ragione per usare il PPP, o vogliate soltanto imparare come funziona, non ne avete veramente bisogno. Ho sperimentato entrambi e non ho notato nessuna differenza di prestazione con il set standard dei client. Naturalmente, il Vostro Chilometraggio Può Variare. :) 44.. EE oorraa?? Hey, se è andato tutto bene, ora siete connessi ad Internet! Provate un 'telnet remotehostname' (ricordate quella abbreviazione nel vostro file host?). Dovreste ottenere il prompt remoto di login del telnet. Continuate, provatelo! Ora potete usare telnet/FTP/ecc. dappetutto sulla Rete dalla vostra macchina locale. Come? La vostra macchina sta utilizzando quella remota come un nameserver per risolvere gli indirizzi (resolv.conf). Sperimentate, scoprite cosa funziona e cosa no. Non potrete usare i servizi che non siano già attivati sul vostro host remoto! Ad esempio, se il vostro server non permette i telnet, è probabile che neanche voi possiate farlo. Perché? Perché l'emulatore sta soltando trasferendo quello che è già disponibile. 44..11.. PPoossttaa L'ovvia soluzione non grafica è Pine, che si può scaricare dall'Università di Washington. La mia scelta per il 'Miglior Programma di Posta, Basato su X ' va a XFmail. Al momento ne è uscita la beta, e va forte. Facile da installare; non ha bisogno di un sistema locale di posta installato (ma funzionerà con gli spool locali) perché ha in sè il POP - basta con popclient/fetchpop! Facile da usare; completamente personalizzabile dalla GUI. Supporta anche il MIME. Prendetelo dal sito principale di The XFmail. 44..22.. NNeewwss Il News Reader testuale SLRN è in tutta onestà semplice da installare e di facile utilizzo. È un vero NNTP newsreader, il che significa che _n_o_n _è _n_e_c_e_s_s_a_r_i_o _n_e_s_s_u_n _t_r_a_s_p_o_r_t_o _l_o_c_a_l_e _d_i _n_e_w_s per farlo funzionare (non è necessario che installiate Cnews o INN). È necessario, naturalmente, che abbiate accesso ad un server NNTP, ma questo servizio è fornito dalla maggior parte degli ISP. È un programma testuale, ma usa i colore ed ha il supporto per il mouse, e funziona bene in una finestra rxvt. Il News Reader KNews, funzionante in X, è quasi perfetto. Come per il precedente SLRN, non è necessario alcun trasporto locale, ma necessita di un server NNTP. Vale quanto meno un'occhiata. 44..33.. MMoossaaiicc//NNeettssccaappee Ovviamente, avrete bisogno che X sia attivo per farlo funzionare, ma si tratta semplicemente di scaricare via FTP il file binario, spacchettarlo, ed installarlo. 55.. MMiisscceellllaanneeaa Se ho dimenticato qualcosa, o avete ancora delle domande, io leggo la mia posta quotidianamente. Questo articolo viene aggiornato abbastanza regolarmente, perciò tornate a controllarlo piuttosto spesso (cambierò i numeri della versione). Naturalmente, più contribuite, più informazioni saranno inserite qui, perciò non esitate a dirmi qualunque cosa avete da offrire. Se voleste avere un aiuto, o state sperimentando dei problemi con il vostro setup, vi aiuterò, _m_a _d_o_v_e_t_e _i_n_v_i_a_r_m_i _l_e _s_e_g_u_e_n_t_i _i_n_f_o_r_m_a_z_i_o_n_i: 1. Una copia dei vostri tre file /etc. 2. Una copia dell'output prodotto dal vostro script, lanciato con la -v flag (_p_e_r _f_a_v_o_r_e togliete la vostra password da lì!). Anche se non avete nessuna aggiunta da fare, ma avete usato questo documento con successo, PER FAVORE SCRIVETEMI. Voglio sapere quanto in realtà risulta utile quello che ho scritto. 55..11.. RRiiffeerriimmeennttii Sunsite è il sito FTP di sunsite.unc.edu, una autentica pletora di ogni cosa su Linux, comprese quasi tutte le FAQ, gli HOWTO e i README scritti. Marketplace.com è il sito principale del TIA, l'unico posto dove è disponibile. Io sono Irish, irish@eskimo.com, disponibile per commenti su Linux praticamente ogni giorno, quando non sto coccolando il mio gatto o abbracciando mio figlio. Documentazione tradotta da Francesco Rana Questo HOWTO è disponibile nei seguenti posti: · http://www.eskimo.com/ irish · ftp://ftp.eskimo.com/u/i/irish · ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/TIA