PPTP continua ad essere il protocollo VPN in cui più spesso mi imbatto, nel mondo Microsoft ma anche nel mondo unix-like. In generale le configurazioni VPN sono una piccola opera d’arte: ci sono centinaia di parametri di cui tener conto e altrettante configurazioni possibili. Quando una VPN da problemi è facile che si tratti di una vera e propria “gatta da pelare”. Tanto vale “pelarla” con gli strumenti giusti.
Il migliore amico del problem solver è il log file. Guardiamoci dentro e leggiamo attentamente, non necessariamente alla ricerca di un errore il quale non è detto che si manifesti esplicitamente. Riporto un esempio recentissimo:
*** NetworkManager[921]: <info> Starting VPN service ‘pptp’…
*** NetworkManager[921]: <info> VPN service ‘pptp’ started (org.freedesktop.NetworkManager.pptp), PID 3877
*** NetworkManager[921]: <info> VPN service ‘pptp’ appeared; activating connections
*** NetworkManager[921]: <info> VPN plugin state changed: 1
*** NetworkManager[921]: <info> VPN plugin state changed: 3
*** NetworkManager[921]: <info> VPN connection ‘TEST VPN’ (Connect) reply received.
*** pppd[3878]: Plugin /usr/lib/pppd/2.4.5/nm-pptp-pppd-plugin.so loaded.
*** pppd[3878]: pppd 2.4.5 started by root, uid 0
*** pptp[3883]: nm-pptp-service-3877 log[main:pptp.c:314]: The synchronous pptp option is NOT activated
*** pptp[3889]: nm-pptp-service-3877 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 ‘Start-Control-Connection-Request’
*** pptp[3889]: nm-pptp-service-3877 log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
*** pptp[3889]: nm-pptp-service-3877 log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
*** pppd[3878]: Using interface ppp0
*** tuxicity pppd[3878]: Connect: ppp0 <–> /dev/pts/2
*** NetworkManager[921]: SCPlugin-Ifupdown: devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
*** NetworkManager[921]: SCPlugin-Ifupdown: device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.
*** pptp[3889]: nm-pptp-service-3877 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 ‘Outgoing-Call-Request’
*** pptp[3889]: nm-pptp-service-3877 log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
*** pptp[3889]: nm-pptp-service-3877 log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer’s call ID 43392).
*** pppd[3878]: CHAP authentication succeeded
*** kernel: [ 6154.097690] PPP BSD Compression module registered
*** kernel: [ 6154.135569] PPP Deflate Compression module registered
*** pppd[3878]: LCP terminated by peer (MPPE required but peer negotiation failed)
*** pptp[3889]: nm-pptp-service-3877 log[pptp_read_some:pptp_ctrl.c:544]: read returned zero, peer has closed
*** pptp[3889]: nm-pptp-service-3877 log[callmgr_main:pptp_callmgr.c:258]: Closing connection (shutdown)
*** pptp[3889]: nm-pptp-service-3877 log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 ‘Call-Clear-Request’
*** pptp[3889]: nm-pptp-service-3877 log[pptp_read_some:pptp_ctrl.c:544]: read returned zero, peer has closed
*** pptp[3889]: nm-pptp-service-3877 log[call_callback:pptp_callmgr.c:79]: Closing connection (call state)
*** pppd[3878]: Modem hangup
*** pppd[3878]: Connection terminated
Trovato il problema? Allora cerchiamo con Mr. Google e capiamo cosa è successo. Fortunatamente PPTP è ben documentato e alla pagina http://pptpclient.sourceforge.net/howto-diagnosis.phtml del sito troviamo buona parte degli errori e relativa diagnosi. Nonostante io non ami particolarmente PPTP bisogna apprezzare la quantità di documentazione a disposizione, ottimo ausilio alla diagnosi dei problemi.
Non limitiamoci a guardare i log del cliente, anche i logs dei server che erogano il servizio VPN possono contenere informazioni utili alla diagnosi di un problema (ammesso che il server sia in vostra gestione).
Ultima nota: incentivate l’uso di VPN per l’accesso ai servizi “delicati”, anche se il servizio prevede nativamente un sistema di autenticazione. Un esempio banale è la posta elettronica aziendale: limitarsi ad esporla in IMAP o in POP3 è una pratica poco sicura. Un buon livello di “blindatura” è l’esposizione della sola porta 25 per la ricezione della posta dall’esterno e l’accesso ai servizi del mail server solo tramite sessione VPN. Paranoia? Noi la chiamiamo sicurezza ;-)