User Tools

Site Tools


doc:appunti:linux:sa:openvpn_easy_rsa

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:openvpn_easy_rsa [2023/09/19 10:41] – [Configurazione del server] niccolodoc:appunti:linux:sa:openvpn_easy_rsa [2024/01/12 10:24] – [Configurazione del server] niccolo
Line 43: Line 43:
 set_var EASYRSA_REQ_OU         "My Organizational Unit" set_var EASYRSA_REQ_OU         "My Organizational Unit"
  
-set_var EASYRSA_CA_EXPIRE      3650 +set_var EASYRSA_CA_EXPIRE      3653 
-set_var EASYRSA_CERT_EXPIRE    1080+set_var EASYRSA_CERT_EXPIRE    1826
 </file> </file>
  
Line 52: Line 52:
  
 <code> <code>
-./easyrsa build-ca+./easyrsa build-ca nopass
 </code> </code>
  
-Viene chiesta una **passphrase**, che servirà in futuro a firmare i certificati rilasciati da questa CA (è in effetti la password necessaria a sbloccare la chiave privata della CA). Eventualmente è possibile aggiungere il parametro **nopass**, per evitare di dover digitare una password in tutte le operazioni seguenti, in tal caso la sicurezza è garantita dal fatto che solo root può accedere alla cartella **easy-rsa**.+Omettendo il parametro **nopass** viene chiesta una //passphrase//, che servirà in futuro a firmare i certificati rilasciati da questa CA (è in effetti la password necessaria a sbloccare la chiave privata della CA). Con il parametro **nopass** si evita di dover digitare una password in tutte le operazioni seguentila sicurezza è garantita dal fatto che solo root può accedere alla cartella **easy-rsa**.
  
 Durante questo passaggio viene chiesto il **Common Name** della certification authority, in generale si può identificare il CN con il nome host della macchina che gestisce l'infrastruttura PKI. Durante questo passaggio viene chiesto il **Common Name** della certification authority, in generale si può identificare il CN con il nome host della macchina che gestisce l'infrastruttura PKI.
  
-Di tutti i file creati, i più importanti sono **./pki/ca.crt** e **./pki/private/ca.key** che sono rispettivamente il certificato della CA (pubblico) e la relativa chiave privata. Oltre a quelli, sempre nella directory **./pki/**, ci sono le direcotry per contentere le revokation lists, ecc.+Di tutti i file creati, i più importanti sono **./pki/ca.crt** e **./pki/private/ca.key** che sono rispettivamente il certificato della CA (pubblico) e la relativa chiave privata. Oltre a quelli, sempre nella directory **./pki/**, ci sono le direcotry per contentere le revocation lists, ecc.
  
 ===== Generazione di certificato e chiave per il server ===== ===== Generazione di certificato e chiave per il server =====
Line 97: Line 97:
  
 <file> <file>
 +#---------------------------------------------------------------
 +# OpenVPN configuration for Easy-RSA server.
 +#---------------------------------------------------------------
 verb 3 verb 3
 status /var/log/openvpn/openvpn-status.log status /var/log/openvpn/openvpn-status.log
-port 1194+lport 1194
 proto udp proto udp
 dev tun dev tun
Line 106: Line 109:
 key  /etc/openvpn/easy-rsa/pki/private/server.key key  /etc/openvpn/easy-rsa/pki/private/server.key
 dh   /etc/openvpn/easy-rsa/pki/dh.pem dh   /etc/openvpn/easy-rsa/pki/dh.pem
-# If you revoke some certificate, you need the Certificate Revokation List:+# If you revoke some certificate, you need the Certificate Revocation List:
 crl-verify /etc/openvpn/easy-rsa/pki/crl.pem crl-verify /etc/openvpn/easy-rsa/pki/crl.pem
  
Line 121: Line 124:
 ifconfig-pool-persist ipp.txt ifconfig-pool-persist ipp.txt
 push "route-gateway 10.9.8.1" push "route-gateway 10.9.8.1"
 +# Route only the the local LAN.
 push "route 192.168.0.0 255.255.255.0" push "route 192.168.0.0 255.255.255.0"
 +# Route all the traffic through the VPN.
 +#push "redirect-gateway autolocal"
  
 keepalive 10 120 keepalive 10 120
Line 134: Line 140:
 explicit-exit-notify 1 explicit-exit-notify 1
 </file> </file>
 +
 +Finché non si è revocato alcun certificato, il file **easy-rsa/pki/crl.pem** non esiste (vedi più avanti), in tal caso è necessario commentare l'opzione ''crl-verify''.
  
 Nella configurazione sopra viene allocato un pool di indirizzi IP per la configurazione dinamica dei client (opzione **ifconfig-pool**), inoltre si dispone una directory dove creare dei file personalizzati per ciascun client (opzione **client-config-dir**). Nei file personalizzati si potrà ad esempio inserire l'opzione **ifconfig-push** per forzare un IP statico ad un determinato client (nota bene, l'IP statico deve essere fuori dal pool dinamico). Nella configurazione sopra viene allocato un pool di indirizzi IP per la configurazione dinamica dei client (opzione **ifconfig-pool**), inoltre si dispone una directory dove creare dei file personalizzati per ciascun client (opzione **client-config-dir**). Nei file personalizzati si potrà ad esempio inserire l'opzione **ifconfig-push** per forzare un IP statico ad un determinato client (nota bene, l'IP statico deve essere fuori dal pool dinamico).
Line 188: Line 196:
 pull pull
 remote 10.0.1.189 1194 remote 10.0.1.189 1194
 +# Routing is pushed by the server.
 +#route-gateway dhcp
 +# Route only the remote LAN.
 +#route 192.168.1.0 255.255.255.0 vpn_gateway
 +# Route all the internet traffic through the VPN.
 +#redirect-gateway autolocal
 remote-cert-tls server remote-cert-tls server
 resolv-retry infinite resolv-retry infinite
Line 267: Line 281:
 </file> </file>
  
-Quindi è necessario **creare la nuova revokation list**, altrimenti il client potrà sempre utilizzare il certificato:+Quindi è necessario **creare la nuova Certificate Revocation List**, altrimenti il client potrà sempre utilizzare il certificato:
  
 <code> <code>
Line 273: Line 287:
 </code> </code>
  
-Viene aggiornato il file **pki/crl.pem** con la nuova Certificate Revokation List, assicurarsi quindi che il file di configurazione del server abbia l'opzione **crl-verify** che punta a questo file.+Viene aggiornato il file **pki/crl.pem** con la nuova Certificate Revocation List, assicurarsi quindi che il file di configurazione del server abbia l'opzione **crl-verify** che punta a questo file. 
 + 
 +Per vedere il **contenuto** della CRL e la sua **scadenza** si usa il comando: 
 + 
 +<code> 
 +openssl crl -in pki/crl.pem -noout -text 
 +</code> 
 + 
 +Nel'opportuna sezione si potranno leggere delle righe del tipo: 
 + 
 +<file> 
 +Revoked Certificates: 
 +    Serial Number: 31185709CFD614AD3F87526A386B06CF 
 +        Revocation Date: Sep 19 10:45:13 2023 GMT 
 +</file> 
 + 
 +Poichè la CRL ha una scadenza è necessario un cronjob che periodicamente la rinnovi (il tempo di vita predefinito è di 180 giorni). Ecco ad esempio uno script adeguato: 
 + 
 +<code bash> 
 +#!/bin/sh 
 +# Generate a new Certificate Revocation List into the EasyRSA directory. 
 +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
 +cd /etc/openvpn/easy-rsa 
 +./easyrsa gen-crl 
 +</code>
  
 ===== Web References ===== ===== Web References =====
doc/appunti/linux/sa/openvpn_easy_rsa.txt · Last modified: 2024/01/24 15:39 by niccolo