domenica, Novembre 24, 2024

PPP: Introduzione

prezzemolo
prezzemolo
Certificato Cisco CCNA, IOS Security Specialist studia per ultimare la CCNP Security. Programma utilizzando VB6, PHP e MySQL. Affezionato utilizzatore di Debian GNU/Linux, si occupa di gestione rete e sicurezza presso il Compartimento di Polizia delle Comunicazioni di Palermo. Ha ultimato da poco il percorso formativo "Penetration Testing with BackTrack" di Offensive-Security e spera di potere conseguire presto la certificazione OSCP.

Introduzione

PPP è uno dei protocolli più utilizzati nelle connessioni di tipo WAN poiché possiede diverse caratteristiche che lo rendono uno strumento semplice e versatile. Possiamo utilizzare questo protocollo sulle interfacce fisiche sia di tipo seriale (Sincrone, Asincrone, HSSI) che ISDN.
Nel PPP distinguiamo tre componenti principali:

  • LCP – Link Control Protocol, componente utilizzato per stabilire, configurare e testare la connessione a livello data-link;
  • NCP – Network Control Protocol, famiglia di protocolli utilizzata per stabilire e configurare uno o più protocolli di rete;
  • Multiple protocols – Un metodo per il trasporto di più protocolli di rete sullo stesso link fisico.


Tramite LCP è possibile configurare le seguenti opzioni:

  • Autenticazione – Il chiamante deve fornire i dati di autenticazione che lo autorizzano ad effettuare il collegamento. Le due alternative sono PAP e CHAP
  • Compressione – Questa opzione permette di aumentare l’effettivo throughput sulla connessione PPP, il protocollo stesso decomprimerà il frame alla destinazione. Due sistemi di compressione disponibili nei router Cisco sono Stacker e Predictor
  • Controllo Errore – Grazie all’utilizzo delle opzioni Quality e Magic Number il meccanismo di rilevamento dell’errore verifica la qualità e l’affidabilità del collegamento.
  • Richiamata (Callback) – Per aumentare la sicurezza è possibile utilizzare la funzione di callback. Il client effettua la chiamata iniziale, chiedendo di essere richiamato. Il router risponde alla chiamata iniziale effettuando a sua volta una chiamata al client, in base alla istruzioni della sua configurazione.

Sessione

Al fine di instaurare una comunicazione in un collegamento punto-punto, PPP attraversa quattro fasi distinte:

  • Il nodo di origine del collegamento PPP, invia dei frames LCP per configurare e stabilire il collegamento a livello data-link.
  • Il collegamento viene testato per determinare se la qualità è sufficiente per sostenere i protocolli di rete. Ricordiamo che questa fase è opzionale.
  • Il nodo di origine invia dei frames NCP per scegliere e configurare i protocolli di rete da utilizzare (IP, IPX, AppleTalk …)
  • Il collegamento rimane configurato per le comunicazioni fino a quando i frames LCP o NCP lo chiudono oppure interviene un evento esterno.

Ci sono tre classi di frames LCP:

  • Link-estabilishment, usati per stabilire e configurare il collegamento;
  • Link-termination, usati per terminare il collegamento;
  • Link-maintenance, usati per gestire il collegamento ed effettuare il debug.

Autenticazione

In una sessione PPP, la fase di autenticazione è opzionale. Se utilizzata, questa fase precede quella di configurazione del protocollo di rete. Le opzioni disponibili per l’autenticazione sono PAP e CHAP, il secondo è preferibile in termini di sicurezza.

PAP utilizza un metodo semplice di autenticazione. Dopo che si è stabilito il link fra i due nodi, il router che deve autenticarsi invia in chiaro una coppia di dati composta da username e password, il sito remoto verifica la correttezza dei dati e replica con un messaggio di tipo Accept (se i dati sono corretti) o Reject (errore nell’autenticazione e caduta del link) concludendo un processo indicato come 2-Way Handshake.

CHAP utilizza un metodo più robusto per l’autenticazione. Stabilito il link fra i due nodi, il router locale invia un messaggio di “challenge” al nodo remoto. Questi risponde con un valore calcolato tramite un algoritmo non reversibile (tipicamente l’MD5 Message Digest) basato sulla password ed il messaggio di “challenge”. Il router locale verifica se il valore ricevuto è uguale a quello atteso. In caso positivo l’autenticazione è accettata, viceversa la connessione viene terminata immediatamente. Altra particolarità consiste nel fatto che questo controllo di autenticazione a differenza del PAP, viene eseguito anche durante la connessione e non solo nella fase iniziale.

Di seguito è riportato un semplice esempio che utilizza il protocollo ppp e l’autenticazione chap.

Laboratorio

Per realizzare il laboratorio in figura ho utilizzato:
Laboratorio PPP

  • 2 Router Cisco con interfaccia seriale
  • 2 Cavi V35 -DTE
  • 2 Modem DCE-3 Teleco TD 604T
  • 2 Cavi V35 -DTE
  • 1 Cavo RJ11 (modificato per il collegamento dei due modem DCE-3)

Configurazione per il router tux

Router>enable
Router#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname tux
tux(config)#service password-encryption 
tux(config)#no ip domain lookup 
tux(config)#enable secret class
tux(config)#username net password mylink
tux(config)#interface serial 0
tux(config-if)#ip address 172.16.0.1 255.255.255.252
tux(config-if)#encapsulation ppp
tux(config-if)#ppp authentication chap
tux(config-if)#no shutdown 
tux(config-if)#exit
tux(config)#line console 0
tux(config-line)#logging synchronous 
tux(config-line)#password ccisco
tux(config-line)#login
tux(config-line)#line vty 0 4
tux(config-line)#password lcisco
tux(config-line)#login
tux(config-line)#line aux 0
tux(config-line)#password acisco
tux(config-line)#login

Configurazione per il router net

Router>enable
Router#configure terminal 
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#hostname net
net(config)#service password-encryption 
net(config)#no ip domain lookup 
net(config)#enable secret class
net(config)#username tux password mylink
net(config)#interface serial 0
net(config-if)#ip address 172.16.0.2 255.255.255.252
net(config-if)#encapsulation ppp
net(config-if)#ppp authentication chap
net(config-if)#no shutdown 
net(config-if)#exit
net(config)#line console 0
net(config-line)#logging synchronous 
net(config-line)#password ccisco
net(config-line)#login
net(config-line)#line vty 0 4
net(config-line)#password lcisco
net(config-line)#login
net(config-line)#line aux 0
net(config-line)#password acisco
net(config-line)#login 

N.B. Possiamo utilizzare un cavo V35-DTE ed uno V35-DCE in sostituzione dei due modem DCE-3 (o direttamente un cavo cross), in questo caso una delle due seriali va configurata come DCE aggiungendo questi comandi:

Router#configure terminal 
Router(config)#interface serial 0
Router(config)#clock rate 64000

Articoli correlati

Noleggia una Tesla per il tuo evento ICT!

Categorie