connessione_statica_tra_due_server_openvpn

Si presuppongono due installazioni di PfSense funzionanti (occhio alla compatibilità delle versioni, possibilmente sarebbe meglio identiche). In questa situazione prevederemo comunque un server e un client, anche se la connessione sarà permanente: il server genererà i certificati per sé e per il client, quest'ultimo si limiterà ad importare quelli a lui assegnati.

Operazioni sul server

CA e certificati

Per generare i certificati dovremo generare prima una autorità certificativa (da ora CA) che li validerà, andare in system/cert manager e poi nella tab “CAs” e riempire in maniera appropriata i campi di questa pagina: metodo: interna codice paese : è importante selezionare il proprio la mail è convenzionale ma dev'essere la stessa che useremo successivamente per i certificati (così come per tutti gli altri campi)

Creata la CA passeremo ai certificati veri e proprii andando sulla tab “certificates” e creeremo i certificati per il server e il o i client, cliccando su “+”. Il certificato da creare sarà di tipo “interno” (i dati saranno precompilati), selezionando la CA appena creata. Si noti che la discriminante è il CN (Common name), che quindi è bene annotarsi.

Ultima operazione è l'esportazione dei certificati, in pratica si generano dei file di testo i cui contenuti andranno inseriti nel client. I file da esportare sono: il certificato della CA, quello del client, e la sua chiave privata. Per fare ciò bisogna selezionare “export ca”, “export cert” e “export key”, rispettivamente.

Creazione della VPN

Ora dobbiamo mettere in piedi la VPN, per farlo dobbiamo andare in VPN/openvpn e selezionare la tab “server” e riempire opportunamente i campi:

server mode: in questo caso “peer to peer SSL/TLS” (remote access è tipo dial in) prot: “udp” int: “wan” porta: 1194 (default: ovviamente sono possibili altre porte, l'importante è ricordarsi di aprire le porte sul FW di PfSense e su ogni altro presente nella rete) TLS auth: meglio deselezionarlo peer CA: è quella di prima col suo CN peer cert revocation: disabilitato server certificate: selezionare il certificato dalla description (cercare quello del server) dh: 1024 encryption alg: dipende dall'HW usato….se è un pc meglio selezionare il più basso x evitare cpu overload (BFCBC 128), nell'alix c'è una cpu dedicata (e usiamo AES 128) HW crypto: te lo rileva da solo, selezioni quello + adatto… tunnel network: la rete dei peer vpn redirect: autoesplicativo (AE) local network: la rete “dietro” il server OpenVPN remote network: la rete dietro il client OpenVPN concurrent: AE compression: facoltativo TOS: fac. Duplicate: AE Advanced conf: p.es. push di un'altra rete dietro al server (invio rotte): es: push “route x.x.x.x m.m.m.m”; push etc (eventuali rotte aggiuntive)

Si noti che esiste la sezione “client specific overrides”, nella quale si possono: indicare configurazioni particolari per client individuali, che sono identificati con il common name (CN) del certificato (ri)mettere il CN per identificare il client reindicare la rete dei peer

Infine, nella sezione “client settings” ci sono 5 campiche sono + o - AE, ma è indispensabile , nella sezione advanced, il comando iroute con la rete remota x.x.x.x m.m.m.m (uguale alla rete remota nelle impostazioni generali della vpn) e specificare l'indirizzo del client sulla rete peer col comando ifconfig-push x.x.x.x (una sorta di dhcp) y.y.y.y (IP del gateway, ossìa il server)

Si noti che in system log/openvpn… per vedere l'ESIT dell'operazione…se vuoi vedere meglio metti sulle impostazioni avanzate server “verb 5”

Operazioni sul client

Sull'altra installazione di PfSense con OpenVPN la trafila è più o meno la stessa, si devono installare i certificati e mettere in piedi l'altro capo della connessione.

Importazione certificati

CA sul menù a tendina “method” sceglieremo “import an existing…” e punteremo al certificato della CA esportato prima, per poi riempire gli altri campi coerentemente a quanto fatto sul server (sezioni certificate data e c. private key). Lo stesso faremo nella sezione “client” con la key obbligatoria.

Creazione della VPN

Nella tab “client” della sezione “openvpn” troveremo varii campi: i primi 4 sono uguali al server:local port vuota, server host: ip/nome del server, porta server: 1194, (ma vale quanto detto a proposito del server: nel FW di client e server esisterà una sezione openvpn nella quale mettere le regole pr l'accesso alle 2 reti dietro i pfsense), il resto vuoto, TLS abilitato solo tra 2 pfs identici (sia sul client che sul server) “sennò desisti” (Enzo Turco in “Miseria e nobiltà” (1954) di Mario Mattoli) ca: quella che hai importato client certificate: quella importata (entrambi si selezinano con la description) Encryption alg: dev'essere uguale al server HW: come per il server dipende da quello che c'è

Nella sezione “Tunnel settings” abbiamo: tunnel network: è la rete peer remote network: meglio lassare vuoto, tanto ci pensa il server (local network) il resto si auto esplica (compressione è uguale al server)

Attenzione: nelle config avanzate è indispensabile il comando ns-cert-type server che serve a verificare se il certificato del server è di …un server… quindi server alla fine potrebbe essere sostiuito da client,ma non nel ns caso…

Si noti che da entrambi i capi si può gestire il servizio nella sezione status/services, spegnendo e riavviando la vpn generale o le singole vpn

In conclusione su pfsense openvpn c'è già tutto per fare vpn tra 2 pfsense, se invece il client è qualcos'altro allora…si installa un pacchetto opnvpn client export utility (crea una tab client export con la quale ti scarichi un eseguibile col quale si installa il client configurato)

su ubuntu invece del network manager si usa KVpnc

Ma questo lo vedremo in un'altra sezione.