[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 131.   WvDial

WvDial (1) è un programma frontale, per sistemi GNU/Linux, per l'uso e la gestione facilitata di pppd allo scopo di realizzare delle connessioni su linea commutata attraverso il modem. WvDial si prende cura di attivare la connessione, sia in presenza di un sistema di autenticazione tradizionale, sia attraverso i protocolli PAP e CHAP, senza bisogno di intervenire nella configurazione dei file /etc/ppp/pap-secrets e /etc/ppp/chap-secrets.

In condizioni normali, WvDial è in grado di configurare quasi completamente il modem, lasciando all'utente l'onere di inserire i propri dati relativi all'utenza remota presso cui si vuole connettere.

131.1   Configurazione automatica

Una volta installato WvDial, se non è già il sistema di gestione dei pacchetti della propria distribuzione a provvedervi, bisogna avviare il programma wvdialconf allo scopo di generare il file di configurazione iniziale: /etc/wvdial.conf. Ci si comporta così (servono i privilegi dell'utente root):

wvdialconf /etc/wvdial.conf

In quel momento non si deve muovere il mouse, o comunque non si deve interagire con alcuna unità che utilizzi una porta seriale. La prima volta, si potrebbe ottenere un rapporto simile a quello seguente, dove si vede che viene individuato un modem nella seconda porta seriale:

Scanning your serial ports for a modem.

Port Scan<*1>: Ignoring ttyS0 because /dev/mouse is a link to it.
ttyS1<*1>: ATQ0 V1 E1 -- OK
ttyS1<*1>: ATQ0 V1 E1 Z -- OK
ttyS1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyS1<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyS1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyS1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 -- OK
ttyS1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 -- OK
ttyS1<*1>: Modem Identifier: ATI -- 5601
ttyS1<*1>: Speed 2400: AT -- OK
ttyS1<*1>: Speed 4800: AT -- OK
ttyS1<*1>: Speed 9600: AT -- OK
ttyS1<*1>: Speed 19200: AT -- OK
ttyS1<*1>: Speed 38400: AT -- OK
ttyS1<*1>: Speed 57600: AT -- OK
ttyS1<*1>: Speed 115200: AT -- OK
ttyS1<*1>: Max speed is 115200; that should be safe.
ttyS1<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 -- OK
Port Scan<*1>: S3   

Found a modem on /dev/ttyS1.
/etc/wvdial.conf<Warn>: Can't read config file /etc/wvdial.conf:
  No such file or directory
ttyS1<Info>: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0"

In condizioni normali, il programma è in grado di individuare il modem e di determinare le sue capacità. Da questo si ottiene un file di configurazione iniziale abbastanza completo, simile a quello seguente:


[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
; Phone = <Target Phone Number>
; Username = <Your Login Name>
; Password = <Your Password>

Data la caratteristica delle linee telefoniche italiane, per cui non esiste il tono di chiamata, è necessario aggiungere il comando ATX3; inoltre, come si intuisce, vanno definite le ultime tre direttive che appaiono opportunamente commentate. In altri termini, il file va modificato più o meno come si vede nell'esempio seguente, dove i dati relativi all'utenza sono ovviamente inventati:

[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
Init3 = ATX3
Phone = 0987 654321
Username = tizio
Password = supersegretissimo

In condizioni normali, è sufficiente avviare l'eseguibile wvdial con i privilegi dell'utente root e la connessione dovrebbe instaurarsi senza altri problemi.

Bisogna considerare che il file /etc/wvdial.conf è unico per tutto il sistema, per cui, è da ritenere che tutto ciò che appare riguardi esclusivamente le utenze remote della persona che ha o può avere localmente i privilegi dell'utente root.

Oltre a questo, c'è da considerare che l'eseguibile wvdial, potrebbe anche funzionare senza i privilegi dell'utente root, ma in tal caso deve avere ugualmente la possibilità di accedere in lettura a tale file. Per questa ragione, il file /etc/wvdial.conf è normalmente accessibile da tutti gli utenti in lettura, cosa che mette allo scoperto i dati riservati per l'utilizzo dell'utenza remota (il nominativo e la parola d'ordine).

Probabilmente, se si intende usare WvDial, conviene togliere tutti i permessi di accesso, esclusi quelli del proprietario, utilizzando poi l'eseguibile wvdial con i privilegi dell'utente root (eventualmente impostando l'eseguibile come SUID-root).

131.2   Configurazione automatica e trasparente di pppd

È importante sapere cosa fa WvDial con la configurazione di pppd, anche se può essere comodo lasciare fare tutto a lui. Ciò consente di capire in che modo va usato e quali possono essere eventualmente le limitazioni.

In condizioni normali, WvDial fa affidamento sul fatto che pppd riconosca l'opzione call, con la quale si seleziona un file di configurazione specifico nella directory /etc/ppp/peers/. Per la precisione, WvDial fa in modo che venga letto il file /etc/ppp/peers/wvdial che si solito dovrebbe trovarsi già lì a seguito della sua installazione.

Oltre a questo, l'eseguibile wvdial crea o modifica autonomamente i file /etc/ppp/pap-secrets e /etc/ppp/chap-secrets, in base alle informazioni sull'utenza che appaiono nel file di configurazione. Per questo, quando viene eseguito, ha bisogno di avere i privilegi dell'utente root, che fortunatamente rimangono inaccessibili agli utenti comuni.

In condizioni normali, precisamente quando è previsto l'uso di una sola utenza remota, sarebbe sufficiente utilizzare l'eseguibile wvdial con i privilegi dell'utente root solo la prima volta, dal momento che le modifiche apportate a questi file non avrebbero bisogno successivamente di essere aggiornate.

Seguendo l'esempio già visto in precedenza, in entrambi i file /etc/ppp/pap-secrets e /etc/ppp/chap-secrets apparirebbe in coda la riga seguente:


tizio   *       supersegretissimo

131.3   Configurazione manuale

La configurazione automatica, con gli aggiustamenti necessari che sono stati mostrati, può essere molto conveniente per un principiante; tuttavia, la configurazione manuale di WvDial consente di aggiungere delle indicazioni molto utili; in particolare permette di definire utenze differenti, da selezionare attraverso argomenti della riga di comando di wvdial.

Il file in questione può contenere righe bianche e vuote, che vengono ignorate, così come sono ignorate le righe che iniziano con un punto e virgola. Per il resto si tratta di direttive, nella forma

attributo = valore_assegnato

che possono essere raggruppate in sezioni precedute dalla dichiarazione

[Dialer nome_della_sezione]

In particolare, come è già stato visto nell'esempio introduttivo, tutte le direttive che non ricadono in sezioni particolari, fanno parte della sezione predefinita, denominata Defaults:


[Dialer Defaults]
...
...

Altre sezioni possono essere dichiarate per definire delle varianti nella configurazione, che poi vengono selezionate semplicemente nominandole nella riga di comando di wvdial. Per la precisione, tutte le sezioni aggiunte ereditano la configurazione della sezione predefinita, aggiungendo o sostituendo delle dichiarazioni particolari. Si osservi l'esempio seguente:


[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
Init3 = ATX3
Phone = 0987 654321
Username = tizio
Password = supersegretissimo

[Dialer treviso]
Phone = 0422 654321

[Dialer venezia]
Phone = 041 654321

[Dialer rimini]
Phone = 0541 654321

In questo caso, come si può intuire, ogni sezione aggiunta serve a definire un numero telefonico differente, lasciando tutti gli altri dati come fissato nella sezione predefinita.

Naturalmente, la possibilità di gestire sezioni aggiuntive permette anche di intervenire su altre variabili, come la configurazione del modem e la modalità di composizione del numero telefonico:


[Dialer silenzioso]
Init4 = ATM0

[Dialer impulsi]
Dial Command = ATDP

Nell'esempio si vede la definizione di due sezioni: la prima permette di aggiungere un'istruzione al modem, in modo che l'altoparlante risulti disattivato completamente; la seconda permette di richiedere espressamente la composizione a impulsi (il vecchio sistema «decadico» dei telefoni a disco).

Segue la descrizione di alcune direttive di configurazione.

Direttiva Descrizione

Inherits = sezione

Consente di ereditare le direttive di un'altra sezione, tenendo conto che la sezione predefinita viene ereditata automaticamente.

Modem = file

Definisce il file di dispositivo relativo alla porta seriale cui è connesso il modem.

Baud = velocità_porta_seriale

Definisce la velocità di comunicazione con il modem attraverso la porta seriale; in altri termini, si tratta della velocità della porta seriale, espressa in bit/s.

Initn = comando_at_per_il_modem

Le direttive da Init1 a Init9 permettono di definire diverse stringhe di inizializzazione del modem, in sequenza. La prima a essere eseguita è la direttiva Init1; di seguito vengono eseguite le altre, fino a un massimo di nove.

Phone = numero_telefonico_da_chiamare

Definisce il numero telefonico per raggiungere il fornitore del servizio.

Dial Command = comando_at_per_il_modem

Il comando AT necessario per iniziare la composizione telefonica. Il comando predefinito è ATDT, per la composizione a toni (multifrequenza).

Login = nominativo_utenza_remota

Il nominativo utente da usare per la connessione remota.

Password = parola_d'ordine

La parola d'ordine da usare per l'autenticazione remota.

PPPD Path = percorso_di_avvio_di_pppd

In caso di necessità, permette di definire il percorso assoluto di pppd. In modo predefinito, viene usato il percorso /usr/sbin/pppd.

Force Address = ip_statico_locale

Se ciò può essere utile, permette di definire l'indirizzo IP statico locale.

Auto Reconnect = {on|off}

Questa opzione, attiva in modo predefinito, serve a ottenere il ripristino della connessione se questa cade per qualche motivo.

131.4   Avvio e funzionamento

WvDial si avvia attraverso l'eseguibile wvdial, il quale funziona in primo piano in modo predefinito:

wvdial --help

wvdial --version

wvdial {sezione...}

In generale, a parte il caso delle opzioni --help e --version, il cui significato è evidente, si usa wvdial da solo o con l'indicazione di uno o più nomi di sezione della configurazione da prendere in considerazione.

Per concludere il funzionamento del programma, si utilizza il segnale di interruzione, che si ottiene normalmente con la combinazione [Ctrl+c]. Segue la descrizione di alcuni esempi.

Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini -- daniele @ swlibero.org

1) WvDial   GNU LGPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome wvdial.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]