Tag Archive for Guide

Perché OpenVPN continua a non fuzionare nonostante tu abbia seguito questi semplici passaggi?


OpenVPN è un programma VPN rilasciato con licenza GPL e permette di creare reti private virtuali tra client situati in reti separate.

Per questa guida si terrà in considerazione una rete virtuale formata da un Server e 3 Client:

Installiamo OpenVPN su tutti i pc

  • Server:
    Bisogna generare le chiavi e i relativi certificati che verranno utilizziati per criptare il traffico nella VPN:
    Nella directory dove è stato installato OpenVPN è presente la cartella easy-rsa che contiene i vari script necessari per la creazione delle chiavi e i certificati per il server ed ogni client.
    Generare chiave e certificato della Certificate Authority (CA):
    Quindi apriamo il prompt dei comandi di windows e digitiamo i seguenti comandi:
    cd C:\Programmi\OpenVPN\easy-rsa
    init-config.bat
    vars.bat
    clean-all.bat
    build-ca.bat

    Inseriamo tutte le informazioni richieste dallo script build-ca.bat (Sono informazioni che verranno inserite nel certificato, l’unica necessaria è: il Common Name in questo caso ho usato “server”):

    C:\Programmi\OpenVPN\easy-rsa>build-ca.bat
    Loading 'screen' into random state - done
    Generating a 1024 bit RSA private key
    ..............++++++
    .........++++++
    writing new private key to 'keys\ca.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [FortFunston]:
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server's hostname) []:server
    Email Address [mail@host.domain]:

    Possiamo notare che con l’ultimo comando è stata creata una cartella “keys” contenente la chiave e il certificato della certificate authority (CA)
    Generare chiave e certificato per il server:
    Digitiamo il comando:
    build-key-server.bat server

    Otteniamo:

    C:\Programmi\OpenVPN\easy-rsa>build-key-server.bat server
    Loading ‘screen’ into random state – done
    Generating a 1024 bit RSA private key
    .++++++
    ……………++++++
    writing new private key to ‘keys\server.key’
    —–
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter ‘.’, the field will be left blank.
    —–
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [FortFunston]:
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server’s hostname) []:server
    Email Address [mail@host.domain]:

    Please enter the following ‘extra’ attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from openssl.cnf
    Loading ‘screen’ into random state – done
    Check that the request matches the signature
    Signature ok
    The Subject’s Distinguished Name is as follows
    countryName           :P RINTABLE:’US’
    stateOrProvinceName   :P RINTABLE:’CA’
    localityName          :P RINTABLE:’SanFrancisco’
    organizationName      :P RINTABLE:’FortFunston’
    commonName            :P RINTABLE:’server’
    emailAddress          :IA5STRING:’mail@host.domain’
    Certificate is to be certified until Sep 15 11:02:56 2018 GMT (3650 days)
    Sign the certificate? [y/n]:y

    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated

    Abbiamo generato la chiave e il certificato per il server
    Generare chiave e certificato per i client:
    Digitiamo i comandi:
    build-key.bat client1
    build-key.bat client2
    build-key.bat client3

    Come per gli script precedenti inserire almeno il Common Name quando richiesto (inserire ad esempio: “client1″, “client2″, “client3″)
    Generare i parametri Diffie Hellman
    Digitiamo il comando:build-dh.bat
    Ora abbiamo la cartella keys con le chiavi e i relativi certificati dei diversi host:

    Nome file
    Necessario a
    Descrizione Segreto
    ca.crt server e tutti i client Certificato CA Principale NO
    ca.key server Chiave CA Principale SI
    dh{n}.pem server Parametri Diffie Hellman NO
    server.crt server Certificato Server NO
    server.key server Chiave Server SI
    client1.crt client1 Certificato Client1 NO
    client1.key client1 Chiave Client1 SI
    client2.crt client2 Certificato Client2 NO
    client2.key client2 Chiave Client2 SI
    client3.crt client3 Certificato Client3 NO
    client3.key client3 Chiave Client SI


    Bisogna distribuire le chiavi e i certificati ai vari client secondo questa tabella, quindi nel caso del client1 i file da trasferire sono:  client1.crt, client1.key e ca.crt
    Creazione file di configurazione per il server:
    Per creare questo file di configurazione si può utilizzare il file server.ovpn presente nella cartella “sample-config” e modificare le direttive ca, cert, key e dh presenti al suo interno scrivendo il path comleto dei file ed infine spostare il file nella cartella config, nel mio caso:


    # (see “pkcs12″ directive in man page).
    ca C:\Programmi\OpenVPN\easy-rsa\keys\ca.crt
    cert C:\Programmi\OpenVPN\easy-rsa\keys\server.crt
    key C:\Programmi\OpenVPN\easy-rsa\keys\server.key # This file should be kept secret

    # Diffie hellman parameters.
    # Generate your own with:
    # openssl dhparam -out dh1024.pem 1024
    # Substitute 2048 for 1024 if you are using
    # 2048 bit keys.
    dh C:\Programmi\OpenVPN\easy-rsa\keys\dh1024.pem

    # Configure server mode and supply a VPN subnet

    A questo punto il server è configurato, cliccando con il tasto destro sul file server.ovpn e selezionando “Start OpenVPN on this config file” è possibile avviare il server

  • Client
    Creazione file di configurazione per il client:
    Dopo aver trasferito i file chiave e i certificati sui relativi client bisogna creare il file di configurazione del client, anche in questo caso si può utilizzare il file client.ovpn presente in “sample-config” impostando la direttiva “remote my-server 1194″ sostituendo my-server con l’ip del server e settando le direttive “ca”,”cert” e “key” col path dei relativi file. Come nel caso del server il file di configurazione và spostato nella cartella config e si può avviare il client OpenVPN cliccando con il tasto destro sul file client.ovpn e selezionando “Start OpenVPN on this config file”

Si ricorda che in caso di utilizzo di firewall o router con NAT abilitato bisogna aprire la porta UDP 1194, per un riferimento completo alle funzionalità e le direttive di configurazione di OpenVPN si consiglia di leggere il Manuale