Discussione:VPN del GOLEM

Da GolemWiki.
Versione del 7 mar 2026 alle 22:48 di Giomba (discussione | contributi) (Spostati appunti deprecati sulla VPN del GOLEM con OpenVPN nella pagina di discussione)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Appunti deprecati su OpenVPN per la VPN IPv6 del GOLEM

Golem-template-note-warning.png OpenVPN è in fase di dismissione, perché stai leggendo questo paragrafo? Se sei il sysop dovresti saperlo bene.


Nel tunnel di OpenVPN è presente la prima rete di servizio 2001:470:c844::/64 (con rrrr = 0000). Per il layer 2 viene usato il protocollo interno di OpenVPN.

Per mantenere coerenza nella configurazione dei client di OpenVPN, delle rotte statiche, e per sapere a chi è stata assegnata una determinata sottorete, abbiamo realizzato vpnunit, un piccolo software Python che si occupa di aggiornare i file di configurazione necessari per OpenVPN e le rotte con ip route.

Golem-template-note-warning.png Il file di configurazione qui riportato è una bozza generale di come è impostato il server, ma per l'attuale configurazione in esecuzione si vedano i backup di vpnunit.


Configurazione del server OpenVPN sul VPS server:

port xxxxx
proto udp

dev tun

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
dh /etc/openvpn/keys/dh2048.pem

server 10.0.0.0 255.255.255.0
server-ipv6 2001:470:c844::1/64
ifconfig-ipv6 2001:470:c844::1 2001:470:c844::2

topology subnet

push "route-ipv6 ::/0"
push "route-ipv6 2001:470:c844::/48"

client-config-dir /etc/openvpn/staticclients

comp-lzo
keepalive 10 120
persist-key
persist-tun

user nobody
group nogroup

verb 3
status openvpn-status.log

In particolare:

  • server 10.0.0.0 255.255.255.0 va messo comunque anche se non si intende utilizzare l'IPv4 nel tunnel; è una limitazione (teorica) al numero di indirizzi IPv6 utilizzabili, ma comunque (in pratica) il server scoppierebbe ben prima;
  • ifconfig-ipv6 2001:470:c844::1 2001:470:c844::2 il server OpenVPN sarà accessibile attraverso il tunnel tramite l'indirizzo 2001:470:c844::2
  • push "route-ipv6 ::/0" il server OpenVPN comunica ai client che è il default gateway per l'Internet IPv6; naturalmente, ogni client è libero di usare il gateway che preferisce, ma se non ha connettività IPv6 non potrà far altro che utilizzare questo;
  • push "route-ipv6 2001:470:c844::/48" è necessario comunicare a tutti i client che la nostra rete è raggiungibile per mezzo del server OpenVPN; questo non esclude la possibilità che due reti utente vicine tra loro possano interconnettersi fisicamente e direttamente;

Golem-template-note-reminder.png In teoria basta la sola rotta di default, ma in pratica non funziona (si suppone per come è fatto il protocollo openVPN a livello 2)


Aggiungere un Gateway Utente / Client OpenVPN

Verrà presa ad esempio la configurazione del gateway di officina serverozzo, che, secondo quanto stabilito nei precedenti paragrafi avrà indirizzo 2001:470:c844::200 e inoltrerà i pacchetti da/per la rete 2001:470:c844:200::/60.

Golem-template-note-reminder.png I paragrafi di configurazione manuale del gateway utente sono utili per capire il funzionamento dei vari comandi, ma all'amministratore di rete è proibito effettuare queste operazioni manualmente: si deve usare lo script vpnunit, cha si occupa di creare tutte queste configurazioni a mano, e, siccome si tratta di diversi file sparsi, tenerli aggiornati e coerenti tra loro.


Generare chiave SSL

Seguire la guida VPN del GOLEM per generare le chiavi.

Configurazione del server OpenVPN

Comunicare al client il suo indirizzo IPv6 statico

Sul server OpenVPN, nel file di configurazione del client /etc/openvpn/staticclients/hostname, scrivere le seguenti righe:

ifconfig-ipv6-push 2001:470:c844::200/64
iroute-ipv6 2001:470:c844:200::/60

Rispettivamente per:

  • assegnare indirizzo statico al gateway utente / client openvpn;
  • permettere al client di inoltrare sul tunnel i pacchetti provenienti dalla rete alle sue spalle; questo serve al protocollo di openVPN per il layer 2, altrimenti non vengono fatti passare pacchetti con indirizzo sorgente diverso da quelli della rete di servizio; in alternativa si poteva fare un tunnel tap e utilizzare Ethernet a livello 2;
Inoltrare i pacchetti per la nuova rete

Sul server OpenVPN, impostare la rotta per la nuova rete.

Utilizzare l'apposito script di configurazione /root/route-ipv6.sh e lanciarlo con argomento add:

# ip -6 route add 2001:470:c844:200::/60 via 2001:470:c844::200
Connessione alla VPN con OpenVPN

Golem-template-note-reminder.png Questo file di configurazione contiene indicazioni di massima per il client: da quando abbiamo realizzato lo script vpnunit, il file di configurazione viene prodotto automaticamente, e ingloba anche i file di certificato e chiave in un unico file. L'amministratore di rete può agevolmente scaricarlo e inviarlo all'utente.

Usare questo file di configurazione sul client openvpn:

client
dev tun
proto udp
remote golem.linux.it xxxxx
resolv-retry infinite
nobind

user nobody
group nogroup

ns-cert-type server
ca /etc/openvpn/golem.linux.it/ca.crt
cert /etc/openvpn/golem.linux.it/serverozzo.crt
key /etc/openvpn/golem.linux.it/serverozzo.key

keepalive 30 120
persist-key
persist-tun

comp-lzo

verb 3

Se il client OpenVPN è un nodo foglia della rete, cioè non funge da gateway perché si deve collegare solo lui (es. smartphone), allora c'è già connettività IPv6 e non serve fare altro.

Se invece il client è il gateway della rete IPv6 (es. serverozzo, o il router di casa di uno dei soci che vuole navigare in IPv6), allora bisogna configurarlo come indicato nell'apposita sezione.

Connessione OpenVPN tramite interfaccia grafica

Per effettuare una connessione VPN tramite il gestore di rete grafico NetworkManager, è necessario installare il pacchetto networkmanager-openvpn. La configurazione varia leggermente a seconda del desktop environment utilizzato e della tecnologia VPN.

KDE

  • Aprire le impostazioni di rete tramite l'icona nella barra di stato o direttamente dalle impostazioni di sistema
  • Cliccare su "Aggiungi una nuova connessione"
  • Selezionare openvpn (figura 1)
  • Inserire i 3 certificati nella scheda VPN come specificato nella sezione #File di configurazione client.conf (figura 2)
  • Modificare la porta nel sottomenu Avanzate... (figura 3)
  • Nella scheda IPv4 selezionare Automatico (solo indirizzi) (figura 4)
  • Spuntare le due caselle nel sottomenu Rotte... (figura 5)

Gnome

TODO - anche se in realtà, qualcuno usa GNOME?