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 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. 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 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; 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 bottone 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 quì sono le linee che iniziano con #) Expect ogin: # Ricorda che utilizziamo il login generico 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 login. 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 login, 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 passoword, ma nel frattempo chiude la chiamata e ti richiama al numero scelto. Le informazioni di login sono inviate e &kppp; aspetta per il prompt dei comandi e quindi avvia un piccolo script (che quì 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. Una descrizione eccellente di un server di richiamata può essere trovata all'indirizzo http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback 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 login 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). Risorse internet per programmi server Server di richiamata basati su &Linux; disponibili in molti posti. Il famoso mgetty è un programma molto potente ed è anche capace di gestire connessioni in richiamata. Una descrizione di come configurare mgetty per questa funzione la puoi trovare su http://www.dyer.demon.co.uk/slug/tipscrip.htm, di Colin McKinnon, colin@wew.co.uk. Esiste anche un pacchetto pronto all'uso per &Linux; su http://www.icce.rug.nl/docs/programs/callback/callback.html. Questo pacchetto è gestito da Frank B. Brokken, frank@icce.rug.nl. Essendo la configurazione di questo certamente non semplice, ho scritto una piccola introduzione sul suo utilizzo su http://ap-dec717c.physik.uni-karlsruhe.de/~mh/callback/ che contiene anche una introduzione sulla richiamata in generale. Richiamata <acronym>RAS</acronym> 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.