OpenVPN Installazione e configurazione



Похожие документы
OpenVPN: un po di teoria e di configurazione

Servizio Sistemi Informativi SPERIMENTAZIONE DI RETI PRIVATE VIRTUALI CON L'UTILIZZO DI SOFTWARE OPEN SOURCE

Installazione OPENVPN per la gestione degli hotspot D-Star connessi su rete 3G - PARTE 1 - SERVER

Creare connessioni cifrate con stunnel

OpenVPN, come fare VPN con SSL/TLS

Pfsense e OpenVPN. PFSense e OpenVPN VPN PER CLIENT REMOTI

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

CREAZIONE DI UNA VPN UTILIZZANDO OPENVPN, TRA SISTEMI LINUX E WINDOWS.

OpenVPN & Roadwarrior

Installare e configurare OpenVPN: due scenari. Laboratorio di Amministrazione di Sistemi T Massimiliano Mattetti - Marco Prandini

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

NAS 323 Uso del NAS come server VPN

CONFIGURARE IL DISPOSITIVO DI TELEASSISTENZA

La VPN con il FRITZ!Box Parte II. La VPN con il FRITZ!Box Parte II

esercizi su sicurezza delle reti maurizio pizzonia sicurezza dei sistemi informatici e delle reti

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

OpenVPN: un po di teoria e di configurazione

PORTALE CLIENTI Manuale utente

Teleassistenza mediante PCHelpware

Transparent Firewall

Gate Manager. Come accedere alla rete di automazione da un PC (Rete cliente) COME ACCEDERE ALLA RETE DI AUTOMAZIONE DA UN PC (RETE CLIENTE)...

Zeroshell: VPN Lan-to-Lan. Il sistema operativo multifunzionale. creato da

ImporterOne Manuale Export Plugin Prestashop

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Console di Amministrazione Centralizzata Guida Rapida

Firewall e Abilitazioni porte (Port Forwarding)

Licenza per sito Manuale dell amministratore

Il web server Apache Lezione n. 3. Introduzione

INFOCOM Dept. Software Router

2 Configurazione lato Router

La VPN con il FRITZ!Box - parte II. La VPN con il FRITZ!Box Parte II

Standard Nazionale di Comunicazione Mercato Gas

Contenuto del pacchetto

ImporterONE Export Plugin Magento

INSTALLAZIONE PROCEDURA 770/2011

Utilizzo di Certificati SSL e relative implicazioni

Sicurezza nelle reti

Standard Nazionale di Comunicazione Mercato Gas

WINDOWS XP. Aprire la finestra che contiene tutte le connessioni di rete in uno dei seguenti modi:

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

1) GESTIONE DELLE POSTAZIONI REMOTE

Sommario. 1. Cos è SecureDrive Caratteristiche Privacy dei dati: SecureVault... 4

CONFIGURAZIONE PLUGIN MILESTONE-CPS 1.CONFIGURAZIONE CPS

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Mac Application Manager 1.3 (SOLO PER TIGER)

NAS 322 Connessione del NAS ad un VPN

15J0460A300 SUNWAY CONNECT MANUALE UTENTE

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Innanzitutto, esistono diversi modi per realizzare una rete o più reti messe insieme; vi illustro la mia soluzione :

Guida all impostazione. Eureka Web

Configurazione di Outlook Express

UTILIZZO DELLA RETE WIRELESS DIPARTIMENTALE

Firewall, Proxy e VPN. L' accesso sicuro da e verso Internet

Tiesse Software Upgrade NOS. Pubblicazione a cura di: Tiesse s.p.a. via Asti, Area Industriale S. Bernardo Ivrea (TO) Italy

Essere a casa anche in viaggio, che cos'e' e come si crea una VPN

Sommario. Oggetto: Istruzioni configurazione client VPN per piattaforma Mac OSX Data: 25/01/2016 Versione: 1.0

Servizio di accesso remoto con SSL VPN

Gate Manager. Table of Contents. 1 Come spedire una mail dal PLC o HMI. 2 Introduzione. 3 Cosa vi serve per cominciare.

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Utente PEC e Client di Posta tradizionale

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

MANUALE PARCELLA FACILE PLUS INDICE

ICARO Terminal Server per Aprile

Supporto On Line Allegato FAQ

BACKUP APPLIANCE. User guide Rev 1.0

VPN/tunnels (e altro...) Otacon22

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

1. Servizio di accesso remoto con SSL VPN

W2000 WXP WVista W7 Ubuntu 9.10 VPN client - mini howto (ovvero come installare VPN client su quasi tutto)

azienda, i dipendenti che lavorano fuori sede devono semplicemente collegarsi ad un sito Web specifico e immettere una password.

Introduzione. Installare EMAS Logo Generator

Manuale LiveBox WEB ADMIN.

progecad NLM Guida all uso Rel. 10.2

ISTRUZIONI PER L INSTALLAZIONE DEL PROGRAMMA PER L INVIO AUTOMATICO DELLE FATTURE VIA

Sistema di gestione Certificato MANUALE PER L'UTENTE

Registratori di Cassa

Configurazione account per libreria MXOutlook

Corso avanzato di Reti e sicurezza informatica

Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo)

01/05/2013 Istruzioni per l installazione

TERMINALE. Creazione e gestione di una postazione terminale di Eureka

Manuale LiveBox WEB ADMIN.

Iptables. Mauro Piccolo

Configurazione VOIspeed IP6060

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

La sicurezza nel Web

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Laplink FileMover Guida introduttiva

Reti di Telecomunicazione Lezione 7

Laboratorio di Reti Esercitazione N 2-DNS Gruppo 9. Laboratorio di Reti Relazione N 2. Mattia Vettorato Alberto Mesin

Rsync su GNU/Linux e su Windows? (Backup sincronizzato su disco di rete e/o RAID1 su server FreeNAS)

Транскрипт:

OpenVPN Installazione e configurazione Premessa Una VPN (Virtual Private Network) e un modo per collegare in modo sicuro due entità (host, lan) tramite una rete non dedicata pubblica e quindi non sicura (tipicamente Internet), abbattendo quindi i costi delle linee. Lo scopo delle reti VPN è quindi quello di offrire le stesse caratteristiche, in termini di sicurezza, delle linee private ad un costo inferiore sfruttando le reti condivise pubbliche. La sicurezza della tramissione dei dati è ottenuta crittografando gli stessi (tunnel) ed attuando un meccanismi di reciproca autenticazione fra le entità della VPN. Cosa è OpenVPN OpenVPN è un programma per attivare VPN. È usato per creare tunnel crittografati punto-punto fra computer/lan. I suoi punti di forza, oltre ad essere open source, sono il fatto che si appoggia per il proprio funzionamento al pacchetto OpenSSL e pertanto, demandando a quest ultimo tutta la parte di cifratura, può fruttare gli innumerevoli algoritmi offerti da OpenSSL. I metodi di autenticazione sono: mediante chiave condivisa segreta, mediante certificato X509, inoltre è possibile aumentare la sicurezza di ciascuno dei precedenti metodi di autenticazione mediante l uso di username e password. Prerequisiti per OpenVPN L installazione del demone OpenVPN ha bisogno dei seguenti requisiti: OpenSSL (versione la più possibile aggiornata) Compilatore C/C++ (ad esempio Gcc) libreria lzo Installazione libreria LZO (lato server) sito http://www.oberhumer.com/opensource/lzo/download tar xfz lzo-x.y.tar.gz cd lzo-x.y./configure make make check make install Download di OpenVPN (lato server) Per procurarsi OpenVPN occorre scaricarlo dal sito ufficiale http://www.openvpn.net/index.php/downloads.html prelevando la versione stabile più aggiornata (quando questo documento è stato scritto la versione corrente era la 2.0.9). Scaricare e spacchettare quindi il file tar.gz dei sorgenti salvandolo in una cartella locale (ad esempio /usr/local/src), cioè: cd /usr/local/src ; cambiare /usr/local/src con il nome del posto dove si vuole scaricare il software nel caso sia diverso wget http://www.openvpn.net/release/openvpn-x.y.z.tar.gz; sostituire x.y.z con la versione corrente del software tar xfz bind-x.y.z.tar.gz Il risultato dei precedenti comandi sarà la creazione di una nuova cartellina dal nome openvpnx.y.z; entrarvi dentro con il comando: Autore: Gian Piero Borello (gianpiero.borello@infm.it) - Ultima revisione: 26/02/2009 - Pagina 1/7

cd openvpn-x.y.z Compilazione di OpenVPN (lato server) Dopo lo scaricamento si deve effettuare la compilazione e la installazione del software con i seguenti comandi:./configure \ --prefix=/usr/local/openvpn \ --sysconfdir=/etc/openvpn \ --mandir=/usr/local/man make make install NB: lo switch --prefix definisce il percorso dove sarà installato il pacchetto OpenVPN, gli switch -- sysconfig e --mandir definiscono rispettivamente i percorsi dove saranno presenti i file della configurazione ed i manuali del pacchetto. Una volta finita l installazione si può verificare la buona riuscita dell operazione controllando la presenza del file binario openvpn nella directory /usr/local/openvpn/sbin mediante il comando: ls /usr/local/openvpn/sbin/openvpn creiamo infine la directory che conterrà i file di configurazione mkdir /etc/openvpn Generazione del device (lato server) controllare se esiste il device /dev/net/tun, nel caso non esista occorre crearlo usando i seguenti comandi: mknod /dev/net/tun c 10 200 modprobe tun Generazione delle chiavi (lato server) andare nella directory easy-rsa presente nella directory dei sorgenti di openvpn (per noi /usr/local/src/openvpn-x.y.z/easy-rsa) cd easy-rsa editare il file vars assegnando alle direttive KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL i corretti valori corrispondenti all organizzazione a cui si appartiene N.B. nello stesso file (vars) è presente anche la direttiva KEY_SIZE (di default settata a 1024) la quale definisce la dimensione in bit della chiave RSA usata da OpenVPN. Per rendere maggiore la sicurezza della VPN si può aumentare tale valore a 2048. eseguire i seguenti comandi per ottenere i file di CA: Autore: Gian Piero Borello (gianpiero.borello@infm.it) - Ultima revisione: 26/02/2009 - Pagina 2/7

../vars./clean-all./build-ca # il comando cancellerà TUTTO il contenuto della sottodir keys generare il certificato e la relativa chiave del server:./build-key-server server rispondere alle domande e scegliere una password di challenge generare i certificati e le relative chiavi per i client1, client2,, clientn # usare./build-key-pass al posto di./build-key se si vuole che il certificato dei client sia protetto da passphrase./build-key client1./build-key client2./build-key clientn generare i parametri Diffie-Hellman delle chiavi generate./build-dh entrare nella directory keys e generare il file per la autenticazione TLS cd keys /usr/local/openvpn/sbin/openvpn --genkey --secret ta.key Copiare nella directory del server (/etc/openvpn) i seguenti file (i file sono presenti nella sottodirectory keys) ca.crt server.crt server.key dh1024.pem ta.key Copiare sulla macchina client i seguenti file (i file sono presenti nella sottodirectory keys) ca.crt clientx.crt (dove X è 1,2,...,N nell esempio) clientx.key (dove X è 1,2,,N nell esempio) ta.key Script di controllo username/password (lato server) Se si vuole che l utente, che si connette via VPN, sia autorizzato non solo presentando un certificato ma anche tramite una coppia username/password è necessario generare uno script bash che restituisca 0 (username/password corretta) o 1 (errore) confrontando la username/password inviata appunto dall utente stesso con una lista di username/password autorizzate. creare un il file /etc/openvpn/verify.sh con il seguente contenuto: #!/bin/bash username_password[0]="user0:pass0" # sostituire le coppie username/password Autore: Gian Piero Borello (gianpiero.borello@infm.it) - Ultima revisione: 26/02/2009 - Pagina 3/7

username_password[1]="user1:pass1" username_password[2]="user2:pass2" username_password[3]="user3:pass3" log_file="/var/log/openvpn.log" if [[! $username ]] [[! $password ]]; then echo "No username or password: $*" exit 1 fi for (( i = 0 ; i < ${#username_password[@]} ; i++ )) do if [[ "$username:$password" == ${username_password[$i]} ]]; then echo `date` User $username logged in >> $log_file exit 0 fi done echo `date` $username/$password are unknown >> $log_file exit 1 File di configurazione (lato server) creare un il file /etc/openvpn/server.conf con il seguente contenuto: local IP_SERVER port 1194 proto udp dev tun ca /etc/openvpn/ca.crt cert /etc/openvpn/server.crt key /etc/openvpn/server.key dh /etc/openvpn/dh1024.pem server 10.20.30.0 255.255.255.0 # IP server - utile se si ha più di una scheda eth sul server # porta openvpn # protocollo openvpn # device openvpn # certificato CA # certificato server # chiave server # Diffie hellman file # rete VPN (il server è 10.20.30.1, i client da 2 in poi) ifconfig-pool-persist /etc/openvpn/ipp.txt # i client avranno ogni volta lo stesso IP ;push "route 192.168.10.0 255.255.255.0" # rotta verso lan dietro al server VPN (NECESSARIA se si vuole raggiungere un servizio NON presente non nel server VPN) ;push "route 192.168.10.5 255.255.255.255" # rotta verso host dietro al server VPN (NECESSARIA se si vuole raggiungere un servizio NON presente non nel server VPN) auth-user-pass-verify /etc/openvpn/verify.sh via-env # obbligo check username/password keepalive 10 120 tls-server tls-auth /etc/openvpn/ta.key 0 cipher BF-CBC ;cipher AES-128-CBC ;cipher AES-256-CBC ;cipher DES-EDE3-CBC comp-lzo # heartbeat in secondi fra server e client # lato server criptazione TLS # autenticazione HMAC sul layer TLS # crittazione traffico - Blowfish (default) # crittazione traffico AES 128 (più sicuro) # crittazione traffico AES 256 (più sicuro) # crittazione traffico - Triple-DES (più sicuro) # traffico trasmesso in modo compresso Autore: Gian Piero Borello (gianpiero.borello@infm.it) - Ultima revisione: 26/02/2009 - Pagina 4/7

max-clients 5 user nobody group nobody/nogroup persist-key persist-tun # numero client contemporanei # user del demone # gruppo del demone # controlli di sicurezza per evitare accessi non autorizzati a risorse # che saranno isolate quando il demone farà il downgrade uid/gid log-append /var/log/openvpn.log verb 3 # file di log # verbosità del log touch /var/log/openvpn.log chmod 666 /var/log/openvpn.log Creazione del file di log (lato server) Attivazione dell IP forwarding (lato server) Tale operazione serve solo se vogliamo permettere ai client VPN di accedere a servizi presenti su macchine poste dietro al VPN server. Se si vuole solo far raggiungere il server VPN non accorre. echo 1 > /proc/sys/net/ipv4/ip_forward Avvio della VPN (lato server) /usr/local/openvpn/sbin/openvpn --config /etc/openvpn/server.conf & tale comando può essere messo in esecuzione automatica all avvio mediante /etc/rc.local Regole di firewall (lato server) la VPN generata da OpenVPN gira usando le schede di rete virtuali di tipo tun (che a loro volta si appoggiano ad una scheda fisica di tipo eth su protocollo UDP e porta 1194 a meno di scegliere altri protocolli/porte). Di conseguenza è necessario: Abilitare in ingresso il traffico proveniente dall interfaccia ethx, protocollo UDP, porta 1194 iptables -A INPUT -i ethx -m udp -p udp --dport 1194 -j ACCEPT Abilitare in uscita il traffico destinato alla precedente interfaccia (solo se il firewall NON è stateful) iptables -A OUTPUT -o ethx -m udp -p udp --dport 1194 -j ACCEPT Se il servizio da raggiungere (per esempio HTTP) è presente nello STESSO server su cui gira il servizio di VPN occorre allora: Abilitare in ingresso i tipi di traffico che si vogliono fare passare provenienti dall interfaccia tunx (nell esempio di regola attiviamo il servizio HTTP) iptables -A INPUT -i tunx dport 80 -j ACCEPT Abilitare in uscita i tipi di traffico destinato alla precedente interfaccia (solo se il firewall NON è stateful) Autore: Gian Piero Borello (gianpiero.borello@infm.it) - Ultima revisione: 26/02/2009 - Pagina 5/7

iptables -A OUTPUT -o tunx sport 80 -j ACCEPT Se invece si vuole fare raggiungere un servizio presente (per esempio IMAP) su un server (per esempio 192.168.0.4) della lan DIVERSO dal quello su cui gira il servizio di VPN raggiungibile tramite la scheda ethx (per esempio eth1) del server VPN occorre allora: Attivare una regola di forward del traffico proveniente dall interfaccia tunx da/per la scheda di rete eth1. iptables -A FORWARD i tun0 o eth1 j ACCEPT iptables -A FORWARD i eth0 o tun1 j ACCEPT per ulteriore sicurezza si potrebbe far transitare solo il traffico da/per il server 192.168.0.4 da/per porta 143 iptables -A FORWARD i tun0 o eth1 d 192.168.0.4 dport 143 j ACCEPT iptables -A FORWARD i eth0 o tun1 s 192.168.0.4 sport 143 j ACCEPT Abilitare una regola di mascheramento del traffico proveniente dalla rete gestita dall interfaccia tunx (cioè 10.20.30.0/24) verso la scheda di rete ethx (nell esempio eth1). iptables -A POSTROUTING -s 10.20.30.0/24 -o eth1 -j MASQUERADE Installare OpenVPN GUI for Windows Download di OpenVPN (lato client) wget http://openvpn.se/files/install_packages/openvpn-x.y.z-gui-k.w.j-install.exe controllare che il servizio dhcp sia funzionate (importante) nella directory c:\programmi\openvpn\config dovrebbero essere presenti i seguenti file: ca.crt clientx.crt (dove X è 1,2,,N nell esempio) clientx.key (dove X è 1,2,,N nell esempio) ta.key File di configurazione (lato client) creare un file dal nome nome_del_server.ovpn (per esempio server.ovpn) con il seguente contenuto: local IP_CLIENT port 1194 proto udp dev tun ;dev-node MyTap ;route-method exe ;route-delay 2 ca ca.crt cert client1.crt key client1.key # IP client - utile se si ha più di una scheda eth sul client # porta openvpn # protocollo openvpn # device openvpn # se la macchina è XP potrebbe servire # se la macchina è VISTA potrebbe servire # se la macchina è VISTA potrebbe servire # certificato CA # certificato server # chiave server Autore: Gian Piero Borello (gianpiero.borello@infm.it) - Ultima revisione: 26/02/2009 - Pagina 6/7

client remote server.fqn auth-user-pass ns-cert-type server tls-client tls-auth ta.key 1 tls-remote server.fqn cipher BF-CBC ;cipher AES-128-CBC ;cipher AES-256-CBC ;cipher DES-EDE3-CBC comp-lzo persist-key persist-tun verb 3 # client della VPN # IP/nome fqn server della VPN # richiesto invio username/password # controllo che il certificato offerto dal server di tipo "server" # lato client criptazione TLS # autenticazione HMAC sul layer TLS # il CN del server VPN nel certificato SSL deve essere server.fqn # crittazione traffico - Blowfish (default) # crittazione traffico AES 128 (più sicuro) # crittazione traffico AES 256 (più sicuro) # crittazione traffico - Triple-DES (più sicuro) # traffico trasmesso in modo compresso # controlli di sicurezza per evitare accessi non autorizzati a risorse # che saranno isolate quando il demone farà il downgrade uid/gid # verbosità del log Autore: Gian Piero Borello (gianpiero.borello@infm.it) - Ultima revisione: 26/02/2009 - Pagina 7/7