Avanti Indietro Indice

13. Se il proprio server usa PAP (Password Authentication Protocol)

Se il server al quale ci connette richiede l'autentificazione PAP o CHAP c'è un po' più di lavoro da fare.

Al file delle opzioni precedente, si aggiungano le seguenti righe:


#
# forza pppd a usare il proprio nome utente nell'ISP come 'nome host'
# durante il processo di autentificazione 
name <proprio nome utente nell'ISP>  # si deve modificare questa riga
#
# Se si fa girare un *server* PPP e si ha bisogno di forzare il PAP o 
# il CHAP si tolga il commento alla riga appropriata fra le due che
# seguono. NON usarle se si è un client che si connette ad un server
# PPP (anche se questi usa PAP o CHAP) in quanto dicono al SERVER di
# autentificare se stesso nella propria macchina (e quasi certamente
# non potrà farlo e la connessione fallirà). 
#+chap
#+pap
#
# Se si usano secret CRIPTATI nel file /etc/ppp/pap-secrets, allora
# togliere il commento alla riga che segue.
# Nota: questo NON è la stessa cosa che usare le password MS criptate 
# come si può fare con MS RAS in Windows NT.
#+papcrypt

13.1 Usare MSCHAP

Il RAS di Microsoft Windows NT può essere configurato per usare una variante di CHAP (Challenge/Handshake Authentication Protocol). Nella distribuzione sorgente di PPP, è possibile trovare un file chiamato README.MSCHAP80 che lo discute.

Abilitando il debug di pppd è possibile determinare se il server richiede l'autentificazione usando questo protocollo. Infatti se il server la richiede, si vedrà una riga di questo tipo:


rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]

L'informazione critica è auth chap 80.

Per poter usare MS CHAP, sarà necessario ricompilare pppd per supportarlo. Si vedano le istruzioni nel file README.MSCHAP80 nei sorgenti di PPP per le istruzioni su come compilare e usare questa variante.

Si dovrebbe notare che al momento il codice supporta solo i client PPP Linux che si connettono ad un server MS Windows NT. NON supporta la configurazione di un server PPP Linux che usi MSCHAP80 come autentificazione dei client.

13.2 Il file secrets di PAP/CHAP

Se si usa l'autentificazione pap o chap, allora si deve creare anche il file secrets. Questi sono:


/etc/ppp/pap-secrets
/etc/ppp/chap-secrets

Il proprietario dev'essere l'utente root, il gruppo root e per ragioni di sicurezza i permessi devono essere impostati a 740.

La prima cosa da notare su PAP e CHAP è che sono stati progettati per autenticare computer non utenti.

"Huh? Qual'è la differenza?" Vi chiederete.

Beh, una volta che la propria macchina ha fatto la sua connessione PPP al server, QUALSIASI utente nel proprio sistema può usare quella connessione - non solamente voi. Questo spiega perché è possibile creare una connessione WAN (wide area network) che unisca assieme due LAN (local area networks) usando PPP.

PAP può (e CHAP LO FA) richiedere una autentificazione bidirezionale, ovvero ognuno dei due sistemi richiede all'altro un nome valido e un secret. Comunque, questo NON è il modo nel quale funzionano le connessioni autenticate con PAP per la maggioranza dei server PPP.

Il vostro ISP probabilmente vi avrà assegnato un nome utente e una password per permettervi la connessione al loro sistema e quindi ad Internet. Il provider non è affatto interessato al nome del vostro computer, quindi probabilmente si dovrà usare il proprio nome utente nel proprio ISP come nome per il proprio computer.

Ciò è fatto usando usando l'opzione name nome_utente di pppd. Quindi, se si usa il nome utente assegnato dal proprio ISP, si aggiunga la riga


name nome_utente_nel_proprio_ISP

al proprio file /etc/ppp/options.

Tecnicamente, si dovrebbe in realtà usare user nome_utente_nel_proprio_ISP per PAP, ma pppd è suffientemente intelligente da interpretare name come user se è richiesto l'uso di PAP. Il vantaggio di usare l'opzione name è che è valida anche per CHAP.

Poiché PAP è per l'autentificazione di computer, tecnicamente si dovrebbe specificare anche un nome remoto per il computer. Comunque, poiché molti hanno solo un ISP, si può usare una wildcard (*) per il nome del computer remoto nel file secrets.

Non è male notare anche che molti ISP usano banchi di modem multipli connessi a differenti server terminali, ognuno con un nome diverso, ma ai quali si ACCEDE (a rotazione) da un unico numero. Può essere quindi un po' difficile in alcuni casi sapere qual'è il nome del computer remoto in quanto dipende a quale server terminale ci si connette!

13.3 Il file secrets di PAP

Il file /etc/ppp/pap-secrets è qualcosa di simile a


# Secrets per l'autentificazione usando PAP
# client        server       secret     indirizzi_IP_locali_accettabili

I quattro campi sono delimitati da spazi bianchi e l'ultimo può essere vuoto (il che è probabilmente quello che si vuole per l'allocazione di indirizzi IP dinamica e probabilmente anche per quella statica da parte del proprio ISP).

Supponiamo che il proprio ISP assegni il nome utente fred e la password flintstone, si dovrà aggiungere l'opzione name fred in /etc/ppp/options[.ttySx] e modificare il file /etc/ppp/pap-secrets come segue


# Secrets per l'autentificazione usando PAP
# client        server  secret          indirizzi_IP_locali_accettabili
fred              *    flintstone

Questo file dice per il nome di macchina locale fred (che si è detto di usare a pppd anche se non è il nome locale della propria macchina) e per QUALSIASI server, bisogna usare la password (secret) flintstone.

Si noti che non c'è bisogno di specificare un indirizzo IP locale, a meno che non si voglia FORZARE un indirizzo IP statico particolare. Anche se si prova, è abbastanza difficile che funzioni in quanto la maggior parte dei server PPP (per ragioni di sicurezza) non permettono al sistema remoto di impostare il numero IP che gli stanno per dare.

13.4 Il file secrets di CHAP

Ciò richiede di avere metodi di autentificazione mutua, ovvero si deve permettere alla propria di macchina di autentificare il server remoto E al server remoto di autentificare la propria macchina.

Quindi, se la propria macchina è fred ed il sistema remoto è barney, la propria macchina dovrebbe usare name fred remotename barney e la macchina remota dovrebbe usare name barney remotename fred nei rispettivi file /etc/ppp/options.ttySx.

Il file /etc/chap-secrets per fred dovrebbe assomigliare a


# Secrets per l'autentificazione usando CHAP
# client        server  secret            indirizzo IP locale accettabile
fred            barney  flintstone
barney          fred    wilma

e per barney


# Secrets per l'autentificazione usando CHAP
# client        server  secret            indirizzo IP locale accettabile
barney          fred    flintstone
fred            barney  wilma

Si noti in particolare che entrambe le macchine devono avere voci per l'autentificazione bidirezionale. Ciò permette alla macchina locale di autentificarsi presso il server E a quella remota di autentificarsi in quella locale.

13.5 Gestione di connessioni multiple autentificate con PAP

Alcuni possono connettersi a più di un server che usa PAP. Finché il proprio nome utente è diverso su ogni macchina alla quale ci si vuole connettere, questo non è un problema.

Comunque, molti utenti hanno lo stesso nome utente su due (o più o anche su tutti i) sistemi sui quali si connettono. Ciò causa un problema nella corretta selezione della riga appropriata da /etc/ppp/pap-secrets.

Come ci si potrebbe aspettare, PPP fornisce un meccanismo per risolverlo. PPP permette di impostare un 'nome assunto' per la terminazione remota della connessione (il server) usando l'opzione remotename di pppd.

Si supponga di connettersi a due server PPP usando il nome utente fred. Allora si imposterà il proprio /etc/ppp/pap-secrets a qualcosa così


fred    pppserver1      barney
fred    pppserver2      wilma

Ora, per impostare la connessione a pppserver1 si dovrebbe usare name fred remotename pppserver1 nel proprio ppp-options mentre per pppserver2 name fred remotename pppserver2.

Poiché è possibile selezionare il file delle opzioni del ppp da usare con pppd usando l'opzione file nomefile, si può creare uno script per connettersi ad ognuno dei propri server PPP, prendendo correttamente il file delle opzioni da usare e quindi selezionando l'opzione remotename giusta.


Avanti Indietro Indice