VPN: differenze tra le versioni
| 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 SHA512Webmobili 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/VPNOra è 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