Creare una rete privata virtuale con OpenVPN

Al giorno d’oggi le reti private virtuali sono uno strumento fondamentale per chi lavora in remoto o chi vuole accedere in modo sicuro a risorse esterne senza dover esporre i servizi direttamente sulla rete pubblica. La VPN permette di creare una vera e propria LAN dedicata in cui far accedere solo i dispositivi considerati Trusted, o consente l’accesso a reti già esistenti attraverso sistemi di autenticazione, cifratura o accesso selettivo.

Tra le varie soluzioni esistenti ricopre un ruolo fondamentale la PPTP, ben supportata dai sistemi Apple (compresi iPad ed iPhone), su Android e dai sistemi Windows grazie ad un’integrazione nativa. Questa soluzione, oltre ad essere ormai datata, presenta diverse lacune dal punto di vista della sicurezza, ed inoltre si basa su un tunnel GRE (protocollo IP 47) per il traffico dati punto-punto, soluzione che spesso costringe a configurazioni particolari sopratutto nel caso in cui sia necessario stabilire più VPN sulla stessa macchina.

Una delle soluzioni più utilizzate oggi in campo enterprise è l’IPSec. In realtà con il termine IPSec si intende tutta una serie di strumenti utilizzati per cifrare, certificare e rendere sicuro il traffico all’interno di reti generiche, ma l’utilizzo più diffuso si ha nella creazione di VPN. Il sistema è largamente supportato da router/firewall hardware come Cisco o Juniper e sui sistemi Windows è presente un client nativo che consente di creare tunnel con protocollo L2TP/IPSec. Nei sistemi operativi Linux è necessaria l’installazione di software dedicati come OpenSWAN. La tecnologia è molto robusta dal punto di vista della sicurezza ma è più complessa rispetto ad altre soluzioni e richiede una configurazione molto articolata per un corretto funzionamento.

Al giorno d’oggi si stanno diffondendo diverse soluzioni proprietarie che fanno uso di client specifici installati sul sistema operativo. Se da un lato questa soluzione rende più semplice la connessione, dall’altro complica il libero utilizzo del computer perché i client installati sono in grado di configurare ogni aspetto del sistema operativo, comprese le regole di routing, DNS e firewall. Queste configurazioni sono necessarie per le VPN che di fatto inseriscono i PC direttamente nelle reti aziendali.

Una delle soluzioni più sicure, efficaci, meno invasive e sopratutto OpenSource è OpenVPN. Questo sistema, che ultimamente si sta diffondendo anche grazie a delle personalizzazioni commerciali spesso fornite con firewall hardware, fa uso di una soluzione mista tra un driver kernelspace ed un demone userspace. Di fatto il driver crea un’interfaccia di rete virtuale che può dialogare con le altre interfacce degli altri nodi per mezzo del demone in esecuzione.

La soluzione comprende autenticazioni per mezzo di certificati SSL fino a 4096 bit e può utilizzare sistemi di cifratura come l’AES-256. Il traffico dati tra un demone e l’altro può avvenire per mezzo di connessioni TCP o UDP, con porte completamente configurabili. Uno dei punti di forza di questa tecnologia è quello di poter lavorare sia in modalità “tun” che in modalità “tap”. La prima stabilisce una connessione punto punto in Layer3 ISO/OSI, mentre la seconda stabilisce un link su Layer2 ISO/OSI consentendo di creare un vero e proprio Switch di rete virtuale al quale ogni client accede e si collega.

Ho iniziato una piccola guida per la creazione di una VPN semplice da configurare. Potete trovarla nella pagina dedicata.

Telecom Italia e IPv6 su ADSL Alice

Girando su internet ho trovato questo articolo dove viene descritto come abilitare la connessione IPv6 nativa su ADSL Telecom.

In sostanza è sufficiente inserire delle credenziali di accesso particolari per l’autenticazione della PPPoE:
Username: adsl@alice6.it
Password: IPV6@alice6

In questo modo il sistema, oltre ad il classico indirizzo IPv4, vi assegna un indirizzo IPv6 da usare per la navigazione.

Il vostro modem deve supportare il protocollo IPv6 (io uso un router con OpenWRT) per gestire la cosa in automatica, in alternativa è necessario creare una connessione PPPoE nel proprio PC. Maggiori informazioni si trovano in questa guida ufficiale.

Linux live boot problem with KMS

The Linux Kernel support for modern video cards nowadays improves day by day, thanks to the great work in Open Source drivers. A new graphic system for Linux Kernel was introduced several years ago to support higher resolutions and deeper color space directly into the kernel-space rather than user-space, allowing fast virtual terminal switch and better video/monitor support. This system is called “Kernel ModeSetting”.

But sometimes the system fails to proper recognize how to setup the video card starting from the very boot sequence. The system may hangs during MKS-enabling and frame buffer module loading, especially booting in live systems.

In case of problems, Kernel Modesetting can be disabled in boot time editing the Kernel Command Line from your bootloader (lilo or grub) by simply adding this flag:

In this way your kernel will boot in standard VGA screen resolution allowing at least the usage of a standard console for data recovery or system backup.