Archivio categoria: Software

Virtualizzazione, una rivoluzione nell’informatica

Sarà capitato a tutti i programmatori di pronunciare una di queste frasi “un attimo fa funzionava” oppure “l’ho appena provato sul mio computer e funziona” questo perchè lo sviluppatore scrive e prova le proprie applicazioni sulla propria macchina che per l’appunto è una macchina “da sviluppatore” sempre aggiornata e con le ultime versioni di tutti i programmi, poi appena l’applicazione approda sul pc di un cliente, che la maggior parte delle volte non sà nemmeno cos’è un aggiornamento, arrivano gli inevitabili crash.

Per evitare questo i programmatori provano le proprie applicazioni su più macchine ma per farlo devono copiare l’applicazione installarla e testarla e questo provoca un considerevole dispendio di tempo. Da qualche anno con l’aumento di potenza e prestazioni dei pc hanno preso piede dei nuovi software: i software di virtualizzazione che permettono la ripartizione delle risorse hardware e quindi la creazione di “macchine virtuali” su cui installare diversi sistemi operativi e mantenerli in esecuzione contemporaneamente.

Ecco la soluzione: installare più sistemi operativi “virtuali” e fare i test su di essi, ad esempio su possono installare windows xp, windows 2000 e windows vista e testare il comportamento di un programma con i diversi sistemi operativi, questa tecnica ha anche un’altro vantaggio: le prime versioni di un’applicazione possono contenere degli errori (bug) e può capitare che l’applicazione de-stabilizzi l’intero sistema operativo, in questo caso basta riavviare la macchina virtuale bloccata senza dover riavviare il pc.

Un altro vantaggio è per chi sviluppa applicazioni che devono comunicare tra loro, in passato per testare queste applicazioni era necessario avere più pc collegati in rete, ora basta un solo pc con più macchine virtuali installate e si potrà testare il funzionamento di tutti i software che comunicano tramite rete.

La virtualizzazione può essere anche utilizzata per “alleggerire” il sistema operativo di uno sviluppatore, infatti se lo sviluppo viene svolto su di una “macchina virtuale” nel momento in cui questa viene spenta il sistema operativo principale non risente di tutti i programmi che sono stati installati nella macchina virtuale. In questo caso “l’ambiente di sviluppo” sarà interamente contenuto nella macchina virtuale dando l’ulteriore vantaggio che consiste nel poter spostare la macchina virtuale su altri pc che hanno installato il software di virtualizzazione e quindi avere il proprio “ambiente di sviluppo a portata di mano”.

Free download manager

Oggi vorrei parlarvi di un piccolo programma che ho iniziato ad usare circa un anno fa, e che ha stravolto le mie abitudini di navigazione.

Attualmente non c’è competizione per Free Download Manager considerando i vari strumenti di cui è dotato. Tutti i gadget che vorresti fossero a tua disposizione mentre navighi sono presenti, ed è quindi possibile assumere il controllo totale su tutto che riguarda i propri downloads, ad iniziare da dove viene salvato e quando il download stesso deve avvenire. Il programma stesso si descrive come il download manager del “Web 2.0″, giustificando ciò con una collezione di funzionalità interessanti, che incoraggiano a lasciare commenti sui file che avete scaricato in modo da fornire informazioni utili agli utenti che dopo voi vorrano scaricare lo stesso file.

Ovviamente FDM non si limita ai download di tipo standard. Infatti è dotato di client BitTorrent, in modo da consentire il download di questi tipi di file, anche se dovrete acconsetire all’upload in caso vorreste utilizzare questa funzionalità. Possiede persinmo un convertitore per video Flash, e quindi è possibile salvare video di YouTube e  persino visualizzarne un’anteprima durante il download del video stesso.

Il programma effettua un monitoraggio di Internet Explorer e Firefox in maniera automatica. Infatti è possibile impostare tre modalità di funzionamento differenti, ciascuna dei quali imposta un certo limite alle risorse di banda che verranno utilizzate. In particolare, monitorando l’attività dei vostri broser, FDM è ingrado di rallentare i vostri download se intendete dare priorità al vostro traffico di pagine Internet.

Le cose che FDM non riesce a fare sono poche, anzi pochissime, perciò se desiderate assumere il controllo totale dei vostri download, FDM è un’aggiunta indispensabile al vostro arsenale di programmi.

Monitorare il traffico di rete con SNMP e mrtg

Può essere utile tenere sott’occhio la banda usata dalla nostra connessione adsl, soprattutto per motivi di sicurezza, infatti si potrebbe scoprire di avere un virus dall’aumento di banda utilizzata oppure scoprire qualche eventuale intruso nella nostra rete (con i router wireless accade sempre più spesso)

Se il vostro router supporta il protocollo SNMP (Simple Network Management Protocol) potrete ottenere dei grafici simili a questo:

Requisiti:

Scompattiamo l’archivio contenente lo script mrtg in c:\Programmi\ in modo tale da avere la cartella mrtg-2.16.2 dentro programmi, ora se l’installazione di AcrtivePerl è andata a buon fine possiamo controllare l’effettivo funzionamento dello script:
Apriamo il Prompt dei comandi di windows e digitiamo:

cd C:\Programmi\mrtg-2.16.2\bin
perl mrtg

Otteniamo:

Usage: mrtg <config-file>

mrtg-2.16.2 – Multi Router Traffic Grapher

Copyright 1995-2006 by Tobias Oetiker
Licensed under the Gnu GPL.

If you want to know more about this tool, you might want
to read the docs. You can find everything on the
mrtg website:

http://oss.oetiker.ch/mrtg/

Lo script è funzionante, ora bisogna creare il file di configurazione:
digitare il seguente comando:
perl cfgmaker public@192.168.1.1 --global "WorkDir: c:\temp" --output mrtg.cfg

dove 192.168.1.1 è l’indirizzo del router, public è la community string del protocollo SNMP settata sul router (di solito public è quella predefinita), c:\temp è la cartella dove verranno generati i file con i grafici. Dopo ever eseguito questo comando se tutto andrà a buon fine verrà creato il file mrtg.cfg nella cartella bin.
In questo file sono definite tutte le interfacce di rete presenti nel router, per aumentare la leggibilità delle pagine generate è consigliabile aprire il file mrtg.cfg e modificare le direttive Title e PageTop relative ad ogni interfaccia rilevata (es. Title[192.168.1.1_1]: Traffic Analysis for 1 in  Title[192.168.1.1_1]: Traffic Analysis for eth0 nel caso di eth0)

Per fare un pò di ordine trà i grafici generati si può utilizzare il seguente comando per creare un indice:
perl indexmaker --output="c:\temp\index.html" mrtg.cfg
dove c:\temp\index.html è il percorso del file html che farà da indice

A questo punto rimane solo da esegure lo script con il file di configurazione appena generato, digitamo il comando:
perl mrtg mrtg.cfg

L’esecuzione di questo comando le prime 2 volte darà degli errori (è normale). Ora nella cartella C:\temp si potrà notare la presenza di diversi file, se apriamo il file index.html otteniamo una pagina con i grafici della banda utilizzata calcolata ogni 5 minuti, cliccando su uno di essi otteniamo anche i grafici generati dai dati rilevati ogni mezz’ora, ogni 2 ore e ogni giorno in modo da ottenere rispettivamente un grafico giornaliero, uno settimanale, uno mensile e uno annuale.

Per continuare a far aggiornare i grafici si dovrebbe ripetere l’ultimo comando ogni 5 minuti per sempre, naturalmente questo si può fare in maniera automatica inserendo la seguente direttiva nel file di configurazione mrtg.cfg:
RunAsDaemon: yes
e digitando:
start /Dc:\programmi\mrtg-2.16.2\bin wperl mrtg --logging=eventlog mrtg.cfg

Se si dispone di un server web installato basta sostiturire a C:\temp la document root del server web per rendere i propri grafici accessibili da internet

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