Uso di ppp per l'autenticazione degli utenti su una infrastruttura wireless aperta
(RFC) Questo documento si propone di realizzare una politica comune di configurazione degli apparati in tutte le situazioni in cui uno o più utenti della rete volessero condividere la proprio connettività internet con un sottoinsieme degli utenti presenti nella rete comunitaria.
Per raggiungere questo scopo diverse soluzioni sono praticabili. Nonostante la premessa ppp viene considerato il miglior modo per AUTENTICARE i singoli utenti mantenendo un basso overhead sul protocollo di comunicazione e rendendo quindi la configurazione più generale possibile e utilizzabile anche su sistemi con scarse risorse quali i sistemi embedded.
Panoramica ppp
PPP è un protocollo di livello data-link il quale supporta autenticazione, compressione e error detect. Sono previsti due metodi di autenticazione Password authentication protocol (PAP) e Challenge-Handshake Authentication Protocol (CHAP)
Per i nostri scopi solo il CHAP è utilizzabile per un'autenticazione che possiamo ritenere minimamente sicura, la compressione inoltre potrebbe rivelarsi deleteria diminuendo il throughput effettivo su dispositivi con risorse limitate.
Da RFC1334:
- PAP is not a strong authentication method. Passwords are sent over
- the circuit "in the clear", and there is no protection from playback or repeated trial and error attacks. The peer is in control of the frequency and timing of the attempts. Any implementations which include a stronger authentication method (such as CHAP, described below) MUST offer to negotiate that method prior to PAP.
Nel seguito del documento si analizzerano le configurazioni server/client su sistemi linux Debian-Ubuntu/Openwrt.
Server Debian/Ubuntu
Installare pppd: sudo aptitude install pptpd
Modificare il file /etc/pptpd.conf aggiungendo localip:
localip 192.168.2.1 remoteip 192.168.2.3-238,192.168.2.50
Modificare il file /etc/ppp/chap-secret aggiungendo una riga per ogni utente:
# client server secret IP addresses pippo * pluto * paperino * pareroga 10.0.0.6
(Usare delle passwd migliori ;D)
Riavviare pptp sudo /etc/init.d/pptpd restart
Vedi anche http://www.howtogeek.com/51237/setting-up-a-vpn-pptp-server-on-debian/
Server OpenWrt
Installare e abilitare pptp:
opkg install pptpd /etc/init.d/pptpd enable /etc/init.d/pptpd start
In /etc/pptpd.conf modificare l'ip del server, ad esempio:
localip 192.168.2.1
In /etc/ppp/chap-secrets aggiungere gli utenti come spiegato per Debian.
A questo punto puoi configurare il routing/nat per i tuoi utenti oppure un proxyarp aggiungendo l'opzione proxyarp in /etc/ppp/options.pptpd
Vedi anche http://wiki.openwrt.org/doc/howto/vpn.server.pptpd
Client Debian/Ubuntu
Vedi https://help.ubuntu.com/community/VPNClient
Client OpenWrt
Installare pptp: opkg update && opkg install ptp
Se si ha LuCi installato si può scegliere di installare luci-proto-pptp
Modificare il file /etc/config/network aggiungendo il seguente blocco:
config 'interface' 'vpn' option 'ifname' 'pptp-vpn' option 'proto' 'pptp' option 'username' 'pippo' #nel nostro esempio option 'password' 'pluto' option 'server' '10.0.0.1' #l'ip del server option 'keepalive' '10' option 'ipaddr' '192.168.2.5' option 'netmask' '255.255.255.0'
Lanciare /etc/init.d/network restart per applicare la configurazione.
Vedi anche http://wiki.openwrt.org/doc/howto/vpn.client.pptp
Client Windows
Dal Pennello di controllo-> Connessioni di Rete
Sceglie Crea una nuova connessione. Connessione alla rete aziendale scegliere Avanti > Scegliere Connessione VPN scegliere Avanti > Inserire un nome per esempio "Internet da Gianni" Inserire l'ip del server pptp di riferimento.
Configurare la connessione appena creata: tag: PPPoE configuration for user auth in a open wireless infrastructure
Discussione
Versione iniziale claudyus il maggio 2012