VPN: differenze tra le versioni

Da Webmobili Wiki.
Riga 64: Riga 64:


Copiamo tutti i certificati appena generati nella cartella <code>/etc/openvpn/server/</code>
Copiamo tutti i certificati appena generati nella cartella <code>/etc/openvpn/server/</code>
<syntaxhighlight>
<syntaxhighlight lang="bash">
sudo cp -rp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} /etc/openvpn/server/
sudo cp -rp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} /etc/openvpn/server/
</syntaxhighlight>
</syntaxhighlight>


Configuriamo '''OpenVPN Server'''
Configuriamo '''OpenVPN Server'''
<syntaxhighlight>
<syntaxhighlight lang="bash">
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
cd /etc/openvpn/server/
cd /etc/openvpn/server/
sudo gunzip server.conf.gz
sudo gunzip server.conf.gz
</syntaxhighlight>
Ora editiamo <code>server.conf</code>
con una configurazione simile a questa:
<syntaxhighlight>
port 1317
proto udp
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key  # This file should be kept secret
dh dh.pem
topology subnet
server 10.13.19.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512
</syntaxhighlight>
</syntaxhighlight>



Versione delle 16:17, 23 dic 2021

Una Virtual Private Network (VPN) consente di redirigere in tutto o in parte il proprio traffico internet verso un server VPN, permettendo così l'accesso a reti locali o a servizi remoti protetti da firewall con whitelist sull'indirizzo IP.

Per maggiori informazioni generali, si veda Wikipedia.

Informazioni generali

La VPN aziendale è stata realizzata con OpenVPN, un software open source cross-platform. Il server è implementato da una macchina virtuale (services) basata su Debian; sono disponibili client per Windows, Linux e Android.

Installare e configurare una rete VPN

Per installare una rete VPN, è stata seguita principalmente questa guida OpenVPN.

Installiamo il programma

sudo apt-get install openvpn easy-rsa

Copiamo la cartella di Easy-RSA nei file di conf di openvpn per essere sicuri che un aggiornamento non vada ad intaccare le configurazioni

sudo cp -r /usr/share/easy-rsa /etc/openvpn/

Settiamo i valori default da includere nel certificato

cd /etc/openvpn/easy-rsa
sudo cp vars.example vars
sudo nano vars

Trovare, scommentare e sistemare questi valori

set_var EASYRSA_REQ_COUNTRY    "IT"
set_var EASYRSA_REQ_PROVINCE   "TO"
set_var EASYRSA_REQ_CITY       "Torino"
set_var EASYRSA_REQ_ORG        "Webmobili S.R.L."
set_var EASYRSA_REQ_EMAIL      "info@designbest.com"
set_var EASYRSA_REQ_OU         "Team MESS"

Inizializzare la cartella pki (non so se da root o meno)

sudo ./easyrsa init-pki

Creiamo i certificati principali /etc/openvpn/easy-rsa/pki/ca.crt e /etc/openvpn/easy-rsa/pki/private/ca.key

sudo ./easyrsa build-ca nopass

mettendo come Common Name: Webmobili S.R.L.

Generiamo il Diffie Hellman per l'handshaking della chiave creando /etc/openvpn/easy-rsa/pki/dh.pem

sudo ./easyrsa gen-dh

Per generare certificato e chiave privata del Server OpenVPN server /etc/openvpn/easy-rsa/pki/issued/server.crt and /etc/openvpn/easy-rsa/pki/private/server.key

sudo ./easyrsa build-server-full server nopass

Generate Hash-based Message Authentication Code (HMAC) key, una sicurezza in più che genera /etc/openvpn/easy-rsa/pki/ta.key NON STA FUNZIONANDO - IGNORATO

sudo openvpn --genkey --secret /etc/openvpn/easy-rsa/pki/ta.key

Copiamo tutti i certificati appena generati nella cartella /etc/openvpn/server/

sudo cp -rp /etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,crl.pem,issued,private} /etc/openvpn/server/

Configuriamo OpenVPN Server

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
cd /etc/openvpn/server/
sudo gunzip server.conf.gz


Ora editiamo server.conf con una configurazione simile a questa:

port 1317
proto udp
dev tun
ca ca.crt
cert issued/server.crt
key private/server.key  # This file should be kept secret
dh dh.pem
topology subnet
server 10.13.19.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 8.8.8.8"
client-to-client
keepalive 10 120
tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512

Webmobili Torino

VPN Webmobili Torino
Indirizzo IP del server 89.96.52.243
Porta 1318
Indirizzo locale del server 10.13.18.1
Indirizzo LAN del server 10.13.17.21

Non è attivata la redirezione completa dell'intero traffico del client attraverso la VPN: solo il traffico diretto verso alcuni indirizzi IP viene inviato sulla connessione VPN. Per aggiungere o rimuovere indirizzi da questa lista, bisogna modificare il file /etc/openvpn/openvpn.conf.

Creazione di un nuovo client

Si tratta di creare un client certificato.
Dalla macchina Jarvis

cd /opt/shared/bash
sudo ./vpncreateuser

# 1- Scrivi il tuo nome: digitare nomecognome in minuscolo

# 2- Enter PEM pass phrase scrivere la password e confermare

# 3- Compilare come segue
# !!molto importante!! il campo Common Name deve essere esattamente Webmobili S.R.L. per matchare il server
Country Name: IT
State or Province Name: TO
Locality Name: Torino
Organization Name: Webmobili S.R.L.
Organizational Unit Name: Team MESS
Common Name: Webmobili S.R.L.
Name: NomeCognome
Email Address: email@dominio.est

# 4- invio su challenge password e optional company name

# 5- Digitare y alle 2 domande successive (importante, invio senza digitare equivale a n )

Se tutto è andato bene ci ritroviamo la cartella di configurazione VPN pronta proprio nella Working Directory.
Assegniamo i permessi

sudo chown www-data:www-data Webmobili-nomecognome/ -R
sudo chmod 775 Webmobili-nomecognome/ -R
mv Webmobili-nomecognome /opt/shared/VPN

Ora è pronta.

Cambiamento di Easy-RSA

Hanno aggiornato Easy-RSA, non esiste più la cartella keys, sostituita da pki e le operazioni per generare un client VPN sono cambiate.
https://www.howtoforge.com/tutorial/how-to-install-and-configure-openvpn-server-on-debian-10/
Questo articoletto va migliorato