Linux: Amministrazione sistema, Documentazione, HowTo, Tutorial, Recensioni, Manuale, Programmi, Software
LinuxGuide.it - Amministrazione Linux, Documentazione, HowTo, Tutorial, Recensioni, FAQ, Guide, News, Open Source...
Tutorial & HowTo
 Tutorial & HowTo Applicazioni  Applicazioni
 Tutorial & HowTo Internet  Internet
 Tutorial & HowTo Rete  Rete
 
Amministrazione sistema
 Amministrazione sistema Fondamentis  Fondamentis
 Amministrazione sistema Ambiente di sistema  Ambiente di sistema
 Amministrazione sistema Comandi Linux  Comandi Linux
 Amministrazione sistema Boot loader  Boot loader
 Amministrazione sistema Filesystem  Filesystem
 Amministrazione sistema Backup  Backup
 Amministrazione sistema Gruppi e Utenti  Gruppi e Utenti
 Amministrazione sistema Permessi  Permessi
 Amministrazione sistema Archivi e file compressi  Archivi e file compressi
 Amministrazione sistema Pacchetti (rpm, deb...)  Pacchetti (rpm, deb...)
 Amministrazione sistema Periferiche  Periferiche
 Amministrazione sistema Autenticazione utenti  Autenticazione utenti
 Amministrazione sistema Rete  Rete
 Amministrazione sistema Servizi di Rete (Server)  Servizi di Rete (Server)
 Amministrazione sistema Sviluppo  Sviluppo
 
FAQ Linux
 FAQ Linux Amministrazione sistema  Amministrazione sistema
 FAQ Linux Reti e rete  Reti e rete
 FAQ Linux Programmi  Programmi
 FAQ Linux X Window System  X Window System
 FAQ Linux Applicazioni  Applicazioni
 FAQ Linux Stampa  Stampa
 FAQ Linux Editoria  Editoria
 FAQ Linux I Caratteri font  I Caratteri font
 FAQ Linux Immagini  Immagini
 FAQ Linux Masterizzazione  Masterizzazione
 FAQ Linux Audio  Audio
 FAQ Linux Programmazione  Programmazione
 FAQ Linux Hardware  Hardware
 
Recensioni
 Recensioni Anno 2008  Anno 2008
 
Software Linux
Software Linux Giochi  Giochi
Software Linux Grafica  Grafica
Software Linux Internet  Internet
Software Linux Multimedia  Multimedia
Software Linux Rete  Rete
Software Linux Server  Server
Software Linux Sicurezza  Sicurezza
Software Linux Sistema  Sistema
Software Linux Sviluppo  Sviluppo
 
News Letter
Per essere sempre aggiornato!
 
 
RSS Feed
News in tempo reale!
 
Seguici su Facebook
Unisciti al nostro Linux Facebook Group
 
Popular tags
 
 
 
 
 
 
 
Home page Tutorial & HowTo Internet
Cerca:
 Categoria: Tutorial & HowTo > Internet

Linux: Configurazione OpenVPN

 
è stato letto: 2371 volte
voto: 5 / 5
rating:
Vota OK questo articolo Vota KO questo articolo (vota questo articolo)
 
tag: openvpn, zlib, vpn, internet
 
Condividiamo documentazione, howto, info, news, articoli, manuali linux Condividi questo documento su:
 

OpenVPN




Introduzione

OpenVPN, è un "full-featured SSL VPN" Client-to-Server multi utente, il quale implementa estensioni di sicurezza sui livelli  2 e 3 dell'OSI servendosi dei protocolli standard SSL/TLS, con un metodo di autenticazione flessibile basato sui certificati digitali, username/password e permette di controllare gli accessi degli utenti mediante le politiche di firewalling applicate all'interfaccia virtualeVPN del server.
Inoltre supporta  ethernet  bridging,  TCP/UDP  tunnel  transport, trasporto via proxy, supporto  IP addresses dinamico, ottima scalabilità per centinaia o migliaia di utenti, autenticazione utenti via PAM e portabilità per la maggior parte dei sistemi operativi.
Il metodo di autenticazione per la negoziazione del tunnel è bidirezionale, una volta che il server ha autenticato il client, lo stesso client deve poi autenticare il server. Il primo step, nel set-up del tunnell vpn è quello di mettere il canale di comunicazione in sicurezza crittografando i dati,  poi segue la fase di autenticazione attraverso l'uso dei certificati digitali, infine se quest'ultimi risultano validi, avviene lo scambio delle chiavi digitali tra client e server attivando l'adpter virtuale.
Infine il server rilascia un indirizzo ip dinamico per consentire il dialogo sulla nuova rete virtuale.
OpenVPN è in grado di eseguire la compressione dei dati che transitano all'interno del tunnel vpn permettendo così di ridurre il carico sulla rete wan.

Installare OpenVPN Server/ Client su Linux
Se state utilizzando la distro Fedora, eseguite il comando:

# yum -y install openvpn

altrimenti, se non utilizzate Fedora o desiderate compilare i sorgenti, scaricate pure i seguenti sorgenti:


Compilare OpenVPN e LZO

#  tar zxf lzo*
# cd lzo*
#  ./configure && make && make install
# cd ..
#  tar zxf openvpn-version
# cd openvpn-version
#  ./configure && make && make install
# mkdir /etc/openvpn


Creare i certificati/chiavi SSL/TLS
All'interno della directory openvpn-version precedentemente scompattata, troverete una dir denominata easy-rsa contenente alcuni scripts che facilitano la creazione dei certificati/chiavi SSL oppure Consigliamo di scaricare l'archivio easy-rsa da linuxguide.it già testato. 

Seguite poi i seguenti steps:
portatevi sulla dir openvpn-version oppure se avete scaricato l'archivio easy-rsa da linuxguide.it, scompattatelo e andate avanti)

# cp -a easy-rsa /etc/openvpn/
# cd /etc/openvpn/easy-rsa


Export delle variabili
Con un editor di testi o con VI, ricordatevi di modificare le variabili contenute all'interno del file denominato vars contenuto nel file che avete precedentemente scaricato.

Le variabili sicuramente da modificare sono KEY_PROVINCE, KEY_CITY, KEY_ORG,KEY_EMAIL il resto lasciatelo pure com'è
A questo punto per continuare con l'export delle variabili, effettuate un COPIA e INCOLLA delle variabili dal file vars al vostro terminale, quindi:

# cat vars

col mouse, selezionate tutte le righe del file appena visualizzato, copiatele ed incollatele sul terminale.

Adesso possiamo generare i certificati e le chiavi digitali:
# ./clean-all   (questo cancellerà il contenuto della directory keys, quindi se avete già creato i certificati fate attenzione)
# ./build-ca   (questo script genererà il certificato root, vi sarà chiesto poi di inserire un Common Name che dovrà essere specificato lo stesso anche quando creerete il certificato server e client)
# ./build-key server  (questo script genererà il certificato per il server; stesso Common Name del root ca)
# ./build-key client  (questo script genererà il certificato per i clients; Common Name del root ca)
# ./build-dh              (questo script genererà il DIFFIE-HELLMAN necessario per il server)

A questo punto le chiavi ed i certificati sono stati creati, quindi occorre copiarli in "/etc/openvpn/keys":

# cp -a /etc/openvpn/easy-rsa/keys /etc/openvpn/

                                                                                       
Se desiderate aggiungere un maggiore livello di sicurezza che aiuta a bloccare attacchi di tipo DoS e UDP Flooding, è possibile creare una chiave tls col seguente comando, poi copiatela sia sul server che sul client:

# openvpn --genkey --secret ta.key


Trasferimento Certificati e Chiavi sul Client
Copiate i seguenti file ca.crt, client.crt, client.key e ta.key per i client:

# mkdir client_keys
# cp ca.crt client.crt client.key ta.key dh1024.pem client_keys

Creiamo un archivio tar

# tar czf client_keys.tar.gz client_keys/

oppure zip(per i clients windows)

# zip client_keys.zip  client_keys/*

Trasferiamo via  ssh sul client linux, l'archivio contenente le chiavi:

# scp client_keys.tar.gz utente@ip_address_client:/home/utente

Oppure trasferitelo su un device rimovibile(floppy, pen-drive o altro)

Loggatevi sul client linux seguendo tale procedura:

# mkdir -p /etc/openvpn/keys
# cd /home/utente
# tar zxf client_keys.tar.gz
# mv client_keys/* /etc/openvpn/keys

Adesso che le chiavi sono state create e trasferite sul client, proseguiamo con i files configurazione Server e Client.


File di configurazione lato Server
Copiate/Scaricate il seguente file di configurazione all'interno della directory /etc/openvpn sul server, adattandolo alle vostre esigenze.
  

##### LinuxGUIDE.it - OpenVPN Server #####
# il punto e virgola(;) serve per commentare/disabilitare la direttiva
# Avvio del servizio in modalità daemon
daemon
# Porta d'ascolta per il servizio 1194 di default
port 1194
# Protocollo di trasporto TCP, potete utilizzare anche UDP.
proto tcp
# Il device 'tun' crea tunnel IP routed, mentre 'tap' crea un tunnel ethernet bridged
dev tun
# Certificati digitali
# Certificate Authority o root  certificate
ca /etc/openvpn/keys/ca.crt
# Certificato server
cert /etc/openvpn/keys/server.crt
# Chiave server
key /etc/openvpn/keys/server.key
# Diffie hellman parameters
dh /etc/openvpn/keys/dh1024.pem
# range VPN, assicuratevi che la rete 10.8.0.0/24 non sia già una rete        
# utilizzata all'interno della vostra organizzazione.
server 10.8.0.0 255.255.255.0
# La direttiva push route abilita i clients a raggiungere la rete dichiarata
# Supponiamo di voler permettere ai clients vpn di comunicare con le reti      
# 192.168.10.0/24 e 172.16.10.0/24
push "route 192.168.10.0 255.255.255.0"
push "route 172.16.10.0 255.255.255.0"
# O utilizzate push route OPPURE push redirect-gateway
# push redirect-gateway, configura sui clients vpn, questo server, come Default 
# Gateway, abilitando i clients a raggiungere tutte le reti visibili dal server!
# Sia che utilizziate la direttiva push route o gateway, ricordatevi sempre di
# modificare le tabelle di routing sul vostro default gateway, aggiungendo il   
# range della vpn per consentire che le altre reti la possano raggiungere.
# Se non volete mettere le mani sui vostri default gateway(routers o altro)
# potete sceglire in alternativa di implementare il NAT su questo server in   
# maniera tale che tutti i clients vengano mascherati dall'ip address di questo server.
# Per la configurazione del NAT, vai alla sezione Networking > NAT di linuxguide.it
# push "redirect-gateway" è commentato dal punto e virgola, pertanto non attivo.
;push "redirect-gateway"
# La seguente direttiva cominica ai clients vpn I server dns e wins disponibili
;push "dhcp-option DNS 10.8.0.1"
;push "dhcp-option WINS 10.8.0.1"
# La seguente direttiva abilita i clients a vedere ogni altro. Di default il client vede soltanto il server. Decommentare, per attivare la direttiva.
;client-to-client
# Keepalive, esegue un ping ogni 10 secondi e se nell'intervallo di 120 secondi
# il peer remoto non risponde si presume che il peer è down.
keepalive 10 120
#HMAC firewall, blocca eventuali attacchi DoS/UDP port flooding
tls-auth /etc/openvpn/keys/ta.key 0 # l'ultimo parametro dovrebbe essere 1 sui client 0             sui server
# Algoritmi di crittografia, client e server devono utilizzare lo stesso algoritmo
cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
# Compressione dati sul link VPN. Se attivato qui attiarlo anche sul client.
comp-lzo
# Numero max di connessioni
;max-clients 100
# Prova a riservare alcuni stati nelle fasi di restart
persist-key
persist-tun
# File di log in /var/log
status openvpn-status.log
log         openvpn.log
;log-append  openvpn.log  # scrive i logs in append
verb 3      # livello di verbosità dei logs

Infine per avviare il servizio eseguite il comando:
# cd /etc/openvpn
# openvpn --config server.conf
Oppure

se volete gestire il servizio con init, scaricate il file di init cliccando qui  e copiatelo all'interno di /etc/init.d rinominadondolo in openvpn

chkconfig --add openvpn   (per registrare il nuovo servizio)
chkconfig openvpn on 345  (per attivare il servizio all'avvio del sistema)
/etc/init.d/openvpn start  (per avviare il servizio)
/etc/init.d/openvpn stop  (per stoppare il servizio)

 

File di configurazione lato LINUX Client
Copiate/Scaricate il seguente file di configurazione all'interno della directory /etc/openvpn sul client, adattandolo alle vostre esigenze. 

##### LinuxGUIDE.it - OpenVPN Linux Client #####
# il punto e virgola(;) serve per commentare/disabilitare la direttiva
# Avvia l'applicazione come client vpn
client
# Protocollo di trasporto TCP, potete utilizzare anche UDP.
proto tcp
# Il device 'tun' crea tunnel IP routed, mentre 'tap' crea un tunnel ethernet bridged
# I clients Windows vogliono il device Tap
;dev tup    # se il client è windows
dev tun     # se il client è linux
# IP address/hostname e numero di porta del Server
remote 192.168.4.100 1194
#
resolv-retry infinite
nobind
# Le direttive user e group vanno dichiarate soltanto per i clients linux
user nobody
group nobody
# Certificati digitali
# Certificate Authority o root  certificate
ca /etc/openvpn/keys/ca.crt
# Certificato client
cert /etc/openvpn/keys/client.crt
# Chiave client
key /etc/openvpn/keys/client.key
#HMAC firewall, blocca eventuali attacchi DoS/UDP port flooding
tls-auth /etc/openvpn/keys/ta.key 1   #l'ultimo parametro dovrebbe essere 1 sui client 0 sui server
# Algoritmi di crittografia, client e server devono utilizzare lo stesso algoritmo
cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
# Compressione dati sul link VPN. Se attivato qui attiarlo anche sul client
comp-lzo
# Prova a riservare alcuni stati nelle fasi di restart
persist-key
persist-tun
verb 3      # livello di verbosità dei logs


Infine per avviare il client eseguite il comando:
# cd /etc/openvpn
# openvpn --config client.conf

Installare OpenVPN Client su Windows
Scaricate openvpn-gui.exe dal sito www.openvpn.net ed installatelo.
Copiate all'interno della directory C\:Programmi\OpenVPN\config, il File di Configurazione di esempio e I Certificati Digitali precedentemente creati.

File di configurazione lato Windows Client

##### LinuxGUIDE.it - OpenVPN Windows Client #####
# il punto e virgola(;) serve per commentare/disabilitare la direttiva
# Avvia l'applicazione come client vpn
client
# Protocollo di trasporto TCP, potete utilizzare anche UDP.
proto tcp
# Il device 'tun' crea tunnel IP routed, mentre 'tap' crea un tunnel ethernet bridged
# I clients Windows vogliono il device Tap
;dev tup    # se il client è windows
dev tun     # se il client è linux
# IP address/hostname e numero di porta del Server
remote 192.168.4.100 1194
#
resolv-retry infinite
nobind
# Le direttive user e group vanno dichiarate soltanto per i clients linux
;user nobody
;group nobody
# Certificati digitali
# Certificate Authority o root  certificate
ca ca.crt
# Certificato client
cert client.crt
# Chiave client
key client.key
#HMAC firewall, blocca eventuali attacchi DoS/UDP port flooding
tls-auth ta.key 1   #l'ultimo parametro dovrebbe essere 1 sui client 0 sui server
# Algoritmi di crittografia, client e server devono utilizzare lo stesso algoritmo
cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
# Compressione dati sul link VPN. Se attivato qui attiarlo anche sul client.
comp-lzo
# Prova a riservare alcuni stati nelle fasi di restart
persist-key
persist-tun
verb 3      # livello di verbosità dei logs

avviate il client cliccando col pulsante destro del mouse sul file di configurazione.

 
 
 
Ultimo aggiornamento: 2009-06-25 10:32:35
 
 
 
 
Lascia un commento
no obbligatorio, non sarà mai mostrato

 
 
»Home | About | Legale | Privacy | Pubblicità | Contatti