# Configurazione di &kppp; per la richiamata

Questo capitolo è basato sul materiale fornito da Martin Häfner, mh@ap-dec717c.physik.uni-karlsruhe.de

## server di richiamata &UNIX; o &Linux;

Questa sezione introduce l'argomento della richiamata in ambito &UNIX; (&Linux;), e come &kppp; può essere configurato per connettersi ad un server di richiamata &UNIX;, specialmente ad un server di richiamata &Linux; basato su script

### Una introduzione alla richiamata

Ci sono molte ragioni per considerare l'utilizzo della richiamata, alcune di queste sono:

- Aumentare la sicurezza della tua rete locale

- Ridurre i costi per i collaboratori esterni

- Controllare le spese telefoniche quando queste sono dichiarate come spese di lavoro

Pensa a qualcuno che si connette al tuo server dial-in, e ne scopre la password. Perché disturbarsi a mantenere un firewall per la tua connessione ad internet se accedere alla tua rete è così facile?

Un software di richiamata, normalmente, risponde, chiede il nome e quindi chiude la chiamata per poi richiamarti al numero che hai impostato nel database del server. Il client (il tuo computer) a questo punto risponde alla richiamata del server e continua, con la chiamata in ingresso, come se nulla fosse accaduto. Il server ora chiede nuovamente il nome utente e la password per verificare che il client sia veramente chi ha detto di essere alla prima chiamata. La connessione ora è stabilita normalmente e pppd viene avviato.

Ora la domanda è come dire al client di rispondere alla richiamata del server. Ti servirà un'applicazione speciale come mgetty? La risposta è no, non ti serve un programma client speciale. Generalmente qualsiasi client può essere usato per accettare connessioni da un server di richiamata, potresti anche usare un semplice programma di terminale come minicom per collegarti!

L'unica cosa da fare è dire al tuo modem di rispondere automaticamente (`AutoAnswer`) quando si accorge che una chiamata (`RING`) sta arrivando. Questo viene fatto con i seguenti comandi da impartire al modem:

    AT&SO=1

Questo dice al modem di rispondere dopo uno squillo (`RING`).

Come un sacco di altri programmi client, &kppp; controlla se la connessione è stata chiusa dal server e di conseguenza chiude la sessione se rileva un `NO CARRIER`. Questo, dunque, è il vero problema durante la configurazione della richiamata. `NO CARRIER` sarà sicuramente rilevato nel momento in cui il server di richiamata chiude la chiamata. Per questa ragione alcuni server di richiamata utilizzano degli speciali programmi per l'autenticazione. Quindi, come risolvi il problema? Basta che imposti il tuo modem per rimanere sempre in uno stato di `CARRIER UP` (il che non causa nessun problema se dici al programma client di chiudere la linea quando finisce la connessione). Puoi fare ciò con i seguenti comandi per il modem:

    AT&C0

Se vuoi verificarne il funzionamento, prima devi usare un qualsiasi programma di terminale come minicom, e chiamare il tuo server di richiamata per vedere ciò che accade.

### la configurazione di &kppp;

Ora che hai visto come in teoria vanno fatte le cose, come fai a settare &kppp; per gestire la connessione?

la procedura è più o meno precisamente la seguente

1. Prima di tutto dì al modem di accettare le connessioni in ingresso e di non fermare la negoziazione quando il server di richiamata chiuderà la chiamata per la prima volta. Puoi aggiungere entrambe queste opzioni nella scheda Modem della configurazione di &kppp;, aggiungendo all'opzione Stringa di chiamata il testo `AT&C0S0=1DT`

   Non ci sono altri cambiamenti da fare nella configurazione di &kppp;. Se incontri problemi nell'inizializzazione e reset del modem controlla la sezione Risoluzione problemi per maggiori informazioni.

2. Pensa per un momento al tuo Server. Ricorda che i sistemi operativi &UNIX;, &Windows; e Macintosh hanno opinioni differenti riguardo a come terminare una riga in un file di testo e quindi, anche nelle procedure di autenticazione. Se ti stai collegando ad un server &Windows; usa `CR/LF`, se ti colleghi ad un server &UNIX;, usa `CR`. Se invece ti stai collegando ad un server Macintosh usa l'opzione `LF`

3. Per queste istruzioni assumiamo che tu stia chiamando un server di richiamata &Linux;, il quale utilizza una procedura di autenticazione generica (non PAP o simili).

   Imposta Via script, come metodo di Autenticazione nella scheda Effettua chiamata della finestra di dialogo di configurazione dell'account, in &kppp;

4. Adesso devi creare lo script di login. La modifica di script di login è una delle utilissime funzioni di &kppp;. Puoi trovarla nella scheda Script di accesso nella finestra di dialogo Modifica account.

   In questo esempio l'utente `userxyz` ha bisogno del seguente script per essere richiamato. Il server di richiamata ha già una tabella di nomi e dei rispettivi numeri di telefono, così, per questioni di sicurezza, puoi scegliere il numero di telefono al quale essere richiamato tramite un alias.

   Per ogni linea, scegli il criterio dal menu a tendina che si trova nella parte sinistra della finestra di dialogo e digita l'azione da eseguire nella casella di testo alla sua destra. Premi il pulsante Aggiungi per aggiungere le singole linee allo script. Puoi inserire una linea nel mezzo dello script utilizzando il pulsante Inserisci, e con Rimuovi puoi eliminare una linea se hai commesso qualche errore.

   Il tuo script dovrebbe risultare più o meno come questo (senza i commenti, che qui sono le linee che iniziano con #)

       Expect       ogin:           # Ricorda che facciamo un normale accesso da terminale
       ID           ""              # kppp invia il nome utente che hai configurato
       nella finestra principale
       Expect       for userxyz:    # mostra una lista di numeri dalla quale scegliere dove essere richiamato
       Send         userxyz-home    # l'utente ha scelto di essere richiamato al
       suo numero di casa
       Expect       ogin:           # Ora si è nel vivo del processo di richiamata
       con una nuova connessione e quindi con un nuovo accesso.
       ID
       Expect       assword:        # Ora manda la password
       Expect       >            # Aspetta per il prompt dei comandi (il
       prompt può variare)
       Send         start_ppp       # questo comando fa partire il demone pppd

   Dopo aver atteso la richiesta di accesso, l'utente manda il suo ID e aspetta per una lista di numeri disponibili, quindi dice al server quale di questi numeri deve essere usato per essere richiamato. &kppp; può aprire una finestra di dialogo per la scelta di questi numeri, se il luogo dal quale chiedi la richiamata cambia spesso ⪚ sei un agente di commercio e ti sposti da hotel ad hotel. Ora il server è in attesa di nome utente e password, ma nel frattempo chiude la chiamata e ti richiama al numero scelto. Le informazioni di accesso sono inviate e &kppp; aspetta per il prompt dei comandi e quindi avvia un piccolo script (che qui chiamiamo `start_ppp` con il quale avvia pppd sul server.

   lo script `start_ppp` può risultare qualcosa di simile:

       #!/bin/sh
       stty -echo
       exec /usr/sbin/pppd -detach silent modem

   Sicuramente la configurazione di un server PPP non è negli scopi di questo documento. Per informazioni più dettagliate consultare le pagine di manuale (man pages) di pppd.

Tutte le altre relative configurazioni, come quelle di pppd oppure quelle IP, funzionano normalmente. Non sono pertanto richiesti software particolari per prendere la linea.

La richiamata con &kppp; e altri programmi come mgetty o faxgetty, possono funzionare sulla stessa porta seriale. Non ci sono problemi con le chiamate in ingresso, perché &kppp; crea un file speciale (detto lock file) che dirà alle altre applicazioni che la linea in quel momento è usata da un'altra applicazione (in questo caso &kppp;).

### Risoluzione dei problemi

Ci sono alcuno problemi conosciuti, dati dall'utilizzo di &kppp; in modalità di richiamata:

- Quando il modem è stato configurato per rispondere automaticamente, è necessario resettarlo quando si chiude la connessione, altrimenti lui continuerà a rispondere alla linea alla quale è connesso, il che non è una buona idea se la linea in questione è la vostra linea principale.

- &kppp; ha qualche problema quando condivide una linea con altri programmi come mgetty. se mgetty è in esecuzione sulla stessa linea, &kppp; non riesce ad inizializzare correttamente il modem.

- &kppp; non è in grado di chiedere all'utente alcuni tipi di istruzioni durante un accesso basato su script. Sfortunatamente, utilizzando lo script di esempio di cui sopra, &kppp; chiede il nome utente anche la seconda volta che il server di richiamata la richiede. Puoi risolvere il problema impostando la tua userid all'interno dello script (soluzione non molto elegante e pratica, ma funziona).

## Richiamata RAS con &Windows; NT

&Windows; NT utilizza un sistema completamente differente da quello descritto sopra. NT ha bisogno di una estensione al protocollo PPP, chiamata CBCP (Call Back Control Protocol). Pppd supporta questo protocollo ma dovresti ricompilarlo. Se qualcuno sia mai riuscito con una connessione ad un server di richiamata NT, per favore, ce lo faccia sapere.