dico la mia...

HOME

Riflessioni

Web alternativo

Risorse

e-mail

mappa del sito

<-- precedente

Linux dial-in server QUASI-HOW-TO

Premessa

Questo documento non ha l'intenzione di essere un How-to in piena regola, semmai, come dice il titolo, una potenziale base di partenza per diventarlo. Quindi non segue le regole canoniche degli How-to di Linux, è scritto secondo lo stile e l'esperienza dell'autore.

Scopo del documento

Linux è un ottimo sistema operativo dal punto di vista della funzione "server" e dell'interconnessione a una rete. La caratteristicha intrinseca di avere praticamente già tutto pronto per essere configurato con una connessione di vario tipo (ethernet, slip-ppp, plip, etc..) lo rende estremamente versatile, sebbene a volte la configurazione stessa non sia proprio così facile; d'altra parte per configurare una rete di computer interconnessi in qualche modo è sempre bene avere un minimo di conoscenze a riguardo, sia della teoria delle reti (vedi la Network Administrator Guide), sia di come funziona il sistema operativo in sè.

Questo documento si riferisce particolarmente al problema, o meglio alla necessità, di configurare un pc con sistema operativo Linux, come una macchina che attraverso un modem permette la connessione di un'altra macchina, Linux o con altro s.o., via protocollo TCP/IP, su una connessione di tipo punto-a-punto (PPP).

L'autore quindi non si soffermerà su disquisizioni riguardanti il funzionamento dei protocolli o dei singoli programmi utilizzati, ma indicherà i passi, anche in maniera molto sintetica, per arrivare allo scopo.

Dial-in server: requisiti di base

Per ottenere lo scopo servono:

  • Un pc anche sgangherato (un vecchio 486 va benissimo)
  • Un modem interno o esterno, le cui prestazioni influenzeranno alla fine solo la velocità di trasferimento dei dati
  • Una distribuzione Linux con kernel 2.x (l'autore ha usato una Debian Hamm con kernel monolitico 2.0.34) con supporto per il PPP (ormai tutti i kernel pre-compilati forniti con le varie distribuzioni ce l'hanno)
  • Il programma mgetty
  • Predisposizione a perdere diverso tempo, nel caso in cui qualcosa non vada bene

Installazione di mgetty

mgetty è in pratica quello che getty è per la console: un programma che gestisce il dispositivo di input (in questo caso la seriale sulla quale è connesso il modem) e si occupa della procedura di login. Mentre getty dopo il login fa partire una shell (bash, csh o altro), mgetty nel nostro caso farà partire il demone ppp su quella porta seriale, che costituirà poi il device su cui instaurare connessioni con i protocolli TCP/IP.

Si installa mgetty (ogni distribuzione ha il suo bel pacchetto organizzato .rpm o .tgz o .deb) e si va a mettere le mani sui suoi files di configurazione:

Sul file /etc/mgetty/login.config (questa la posizione sulla Debian) va abilitata l'opzione AutoPPP che permette di far partire a connessione avvenuta. Quindi si inserisce una riga come la seguente:

/AutoPPP/ - a_ppp /usr/sbin/pppd /dev/ttySx

dove ttySx e' la porta del modem usata: ricordarsi che ttyS0 corrisponde alla COM1 in DOS, ttyS1 alla COM2, e così via.

Sul file /etc/mgetty/mgetty.config non occorre inserire nessuna opzione particolare, semmai la velocità della porta che consiglio di mettere minimo al doppio della velocità del modem. Esempio: modem da 14.400 baud, seriale configurata a 38.800.

Configurazione del ppp

Occorre avere installato con Linux anche il pacchetto ppp (che credo tutte le distribuzioni lo installino di base, visto che è indispensabile per una connessione a Internet attraverso un ISP tradizionale).

Quindi sul file /etc/ppp/options vanno abilitate le opzioni valide per le connessioni entranti (in conflitto con eventuali connessioni uscenti, ovvero la configurazione usata per connettersi a un provider Internet):

asyncmap 0
auth 
crtscts 
lock 
modem 
netmask 255.255.255.0 
passive 
+pap 
login 
lcp-echo-interval 30 #o altro a piacere, leggere i manuali di ppp
lcp-echo-failure 4 #o altro a piacere

Sul file /etc/ppp/options.ttySx (ttySx è sempre la porta del modem) vanno inseriti l' indirizzo del pc che fa da server e l'indirizzo del pc client, separati dal carattere "due punti":

#pc.server:pc.client

192.168.0.1:192.168.0.2 #o altri indirizzi a piacere, ma sempre di una stessa rete!

Configurazione dei login e delle password di ingresso

Nel file /etc/ppp/pap-secrets va inserita una riga per permettere a ogni utente l'accesso al ppp:

* pc.server "" -

per il login, i vari utenti useranno gli account che già esistono o che dovranno essere creati con il solito comando useradd

Altre configurazioni di sistema

Sul file /etc/hosts (la mappa locale che risolve i nomi convenzionali dati alle varie macchine in indirizzi numerici) vanno mappati i nomi e gli indirizzi usati:

127.0.0.1 localhost #questo c'è di default

192.168.0.1 pc.server

192.168.0.2 pc.client

Nel file /etc/networks va mappata la rete locale che si crea durante la connessione oltre alla rete "virtuale" localnet:

127.0.0.0. localnet

192.168.0.0 rete.mia #sbizzarritevi con i nomi di dominio!!

Sul file /etc/inittab (lo script che viene eseguito al boot) va inserita una riga in modo da far partire mgetty sulla porta ttySx usata dal modem, in modo respawn (se il demone muore, poi resuscita, ma non è uno zombie!) quindi occorre che ci sia una riga tipo:

T1:23:respawn:/sbin/mgetty -x5 -s 57600 ttySx

Mettete questa riga dopo quelle inserite per getty, siate ordinati!. Da notare che 57600 può essere aumentato a velocità superiori, specialmente se si ha un modem veloce, e ricordatevi di sostituire ttySx con ttyS1, 2, ecc. (la porta del modem).

Faccio notare inoltre a cosa serve "T1" e "23" : T1 è semplicemente un identificativo, per cui assicuratevi che non ci sia un'altra riga abilitata con lo stesso nome. 23 - intesi come 2 e 3 - sono i runlevel sui quali viene abilitata la riga in questione, per cui in questo caso mgetty parte sia nel runlevel 2 che nel runlevel 3. Se si usa una connessione a un ISP (provider Internet), consiglio di prepararsi uno script nel quale vengono gestiti la sostituzione dei files di configurazione del ppp, e in cui si fa lo switch di runlevel; in questo caso di solito il runlevel normale è il 2, per cui mgetty potreste inserirlo nel 3 (e di solito sono uguali come tipo di servizi avviati).

A questo punto, al boot di Linux, mgetty attende una chiamata sulla sua porta e con l'opzione AutoPPP fa partire il PPP non appena la connessione è andata in porto. Poi il PPP negozia il login (opzione login) e la password (opzione +pap) automaticamente andando a controllare direttamente il file delle password di Linux (quello degli utenti normali). Se tutto va bene facendo un ifconfig dovreste trovare oltre a l0 (il device di loopback) anche un ppp0 con indirizzo 192.168.0.1 .

Se qualcosa va male, calma e pazienza: andate a vedere cosa è successo analizzando i vari log di sistema sulla directory /var/log : diventano utilissimi in questo caso.

Configurazione del client

Sull' accesso remoto di Win95 (il pc da cui ci si connette) va inserito solamente il login, la password, e il numero di telefono!. Vanno abilitati i protocolli internet (TCP-IP, PPP), e non serve indicare nessun DNS o gateway di sorta. Naturalmente l'unico indirizzo a cui ci si può connettere è quello del pc.server: 192.168.0.1 . La configurazione di Linux è la stessa usata per un qualsiasi ISP. Se si ha installato un server http (apache, o il più semplice dhttpd tanto per non configurare niente ) ci si fa il proprio sito web locale.

Autore:

Davide Cecconello - 6 Maggio 2000

davide.cecconello@libero.it

Riferimenti di documentazione utili:

Tutti i passi per poter connettere il vostro box linux alla rete: http://www.pluto.linux.it/ildp/altri/PPP-LinuxIT-HOWTO

Un primo approccio al setup del PAP per chiamare un ISP che rifiuti di fornire supporto tecnico all'utente Linux: http://www.pluto.linux.it/ildp/altri/PAP-HOWTO.html

Come connettere il proprio PC Linux ad un server PPP, come usare PPP per connettere assieme due LAN; fornisce un metodo per impostare il proprio computer Linux come server PPP : http://www.pluto.linux.it/ildp/HOWTO/PPP-HOWTO.html

Linux Network Administrators' Guide, Lars Wirzenius: ftp://metalab.unc.edu/pub/Linux/docs/LDP/network-guide/

Appunti Linux appunti per un desiderio di informatica libera: http://www.pluto.linux.it/ildp/AppuntiLinux/

Appunti Linux: MODEM, PORTE SERIALI, CONNESSIONI PUNTO-PUNTO E CONNETTIVITÀ CON ALTRI SISTEMI http://www.pluto.linux.it/ildp/AppuntiLinux/AL-7.20.109.html


HTTP://digilander.iol.it/dicolamia - webmaster: davide.cecconello@libero.it