Avanti Indietro Indice

26. Configurare un server PPP

Come già detto, ci sono molti modi per farlo. Quel che presento è il modo nel quale io lo faccio (usando una scheda seriale multiporta della Cyclades) e un insieme di linee telefoniche a selezione rotativa.

Se non vi piace il metodo qui presentato, sentitevi liberi di farlo a modo vostro. Avrei comunque piacere di includere altri metodi nelle versioni future di questo HOWTO. Quindi, vi invito ad inviarmi i vostri commenti e metodi!

Si noti, che questa sezione tratta solamente la configurazione di Linux come server PPP. Non ho intenzione di includere (mai) informazioni sulla configurazione di speciali terminal servers o altro.

Inoltre, devo ancora fare esperimenti con le shadow password (ma lo farò prima o poi). Le informazioni qui presentate quindi NON comprendono tutti gli ammenicoli che sono richiesti dalla shadow suite.

26.1 Compilazione del kernel

Si applicano ancora tutte le considerazioni precedenti sulla compilazione del kernel e sulla relazione tra la versione del kernel e quella di pppd. Questa sezione assume che si siano già lette le sezioni precedenti di questo documento!

Per un server PPP, si DEVE includere l'IP forwarding nel proprio kernel. Si possono voler includere anche altre caratteristiche (come IP firewall, accounting ecc ecc).

Se si usa una scheda seriale multiporta, ovviamente si devono anche includere nel kernel i driver necessari!

26.2 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 accredito e messa in conto (accounting e charging).

Abbiamo un firewall tra il nostro sito ed Internet, e ciò restringe alcuni accessi agli utenti 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 sito (una volta che sia in possesso di un account valido naturalmente) è:

Il server usa un file /etc/ppp/options.ttyXX per ognuna delle porte d'ingresso 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 pppd). 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 modem di riattaccare, portando giù, nello stesso tempo, la connessione PPP.

26.3 Procurarsi il software che serve

Sarà necessario il software seguente:

26.4 Configurare un accesso standard (accesso shell)

Prima di poter configurare il proprio server PPP, la propria macchina Linux dev'essere in grado di gestire accessi standard di dial up.

Questo howto NON tratta la configurazione di questo. Si veda la documentazione del getty scelto e il Serial HOWTO per informazioni in proposito.

26.5 Impostare i file delle opzioni di PPP

Bisognerà impostare un /etc/ppp/options generico con le opzioni comuni per tutte le porte di dial up. Le opzioni da noi usate sono:


asyncmap 0
netmask 255.255.254.0
proxyarp
lock
crtscts
modem

Nota: noi NON usiamo nessun instradamento (ovvio) ed in particolare non c'è l'opzione defaultroute. La ragione di ciò è che tutto quello che è richiesto di fare (come server PPP) è di instradare i pacchetti dal client PPP verso la propria LAN/Internet e di instradare i pacchetti dalla propria LAN ed oltre verso il client.

Tutto ciò che serve per far questo è un instradamento di tipo host verso la macchina client e l'uso dell'opzione 'proxyarp' di pppd.

L'opzione 'proxyarp' imposta (sorpresa) una voce di proxy ARP nelle tabella ARP del 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 PPP, ma non la si può usare se si fa l'instradamento tra due LAN: si devono usare gli appositi instradamenti di rete i quali non possono usare proxy ARP.

Quasi certamente si vorrà fornire un'allocazione dinamica di numeri IP agli utenti in dial up. Ciò lo si può fare allocando un numero IP per ognuna delle porte di dial up. Ora si 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 viene usato per quella porta. Per esempio


kepler:slip01

In particolare, si noti che si possono usare nomi host validi in questo file (ho scoperto che ricordo solamente i numeri IP delle macchine e dei dispositivi critici nella mia rete - i nomi sono molto più significativi!).

26.6 Impostare pppd per permettere agli utenti di eseguirlo (con successo)

Poiché l'avvio di una connessione PPP implica la configurazione di un dispositivo del kernel (un'interfaccia di rete) e la manipolazione della tabella di instradamento del kernel, sono richiesti privilegi particolari, in pratica i pieni privilegi di root.

Fortunatamente, pppd è stato progettato per essere eseguito in modo sicuro in setuid a 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/pppd

Se non lo si fa, gli utenti non saranno in grado di attivare la loro connessione ppp.

26.7 Impostare un alias globale per pppd

Per poter semplificare le cose ai nostri utenti PPP, abbiamo creato un alias globale (in /etc/bashrc) cosicché con un semplice comando possano lanciare ppp sul server una volta fatto il login.

Questi può essere una cosa del tipo


alias ppp="exec /usr/sbin/pppd -detach"

Quello che fa è

Quando un utente fa il login in questo modo, apparirà nell'output del comando 'w' come


  6:24pm  up 3 days,  7:00,  4 users,  load average: 0.05, 0.03, 0.00
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!


Avanti Indietro Indice