Vai al contenuto

Nuovo peer WireGuard per un impianto

Tipo: modifica su pfSense (prod). Si esegue solo dentro un'attività approvata (per esempio MDM-002 per i box di prova).

Fonte: procedura scritta di Michele (raw/michele/UBUNTU - MDM/, ricevuta il 30/10/2026). Contesto della rete in pfsense-rete-vpn.md.

Le chiavi private, la PresharedKey e le configurazioni dei peer non vanno scritte in questa documentazione né in un repository. La configurazione completa di un peer si consegna solo all'impianto che la usa.

Prerequisiti

  • Accesso al pannello di pfSense dalla VPN (http://172.16.16.1/).
  • Un PC Windows con il client WireGuard, usato solo per generare la coppia di chiavi del nuovo peer.
  • L'elenco degli IP già assegnati in 172.16.16.0/24, per scegliere il primo libero (oggi lo stesso dato è nel database del Raspberry di Michele e nei peer di pfSense: sorgenti-dati-installazioni.md).

1. Generare le chiavi

Nel client WireGuard di Windows: freccia accanto ad Aggiungi tunnel → Aggiungi tunnel vuoto (oppure CTRL + N). Il client genera chiave privata e pubblica. Copiare la chiave pubblica.

2. Creare il peer su pfSense

VPN → WireGuard → Peers → Add Peer:

Campo Valore
Tunnel tun_wg0 (WG_VPN, la VPN degli impianti)
Description nome del cliente
Keep Alive 25
Public Key chiave pubblica del passo 1
Pre-shared Key Generate: una chiave nuova per il peer, da riportare nella configurazione del client
Allowed IPs il primo IP libero in 172.16.16.0/24, in ordine progressivo

Save Peer, poi Apply Changes in alto a destra.

3. Scrivere la configurazione del client

Completare nel client Windows il tunnel vuoto con questo modello e salvarlo come MyVPN.conf:

[Interface]
PrivateKey = <chiave privata generata dal client>
Address = <IP assegnato al passo 2>/24
DNS = 8.8.8.8
MTU = 1412

[Peer]
PublicKey = <chiave pubblica del tunnel tun_wg0, da pfSense>
PresharedKey = <chiave generata su pfSense al passo 2>
AllowedIPs = 172.16.16.1/32, 172.16.16.253/32, 172.16.16.254/32
Endpoint = receiver1.protexia24.com:51420
PersistentKeepalive = 25
  • AllowedIPs limita il tunnel a pfSense, ServerIT (.253) e .254: il box non manda nel tunnel traffico verso gli altri impianti. Non è un controllo del firewall: vedi pfsense-rete-vpn.md.
  • L'endpoint usa il nome receiver1.protexia24.com, che deve continuare a puntare all'IP pubblico della VPN (185.31.66.186).

4. Installare la configurazione sul PC Ubuntu

sudo apt-get update
sudo apt-get install wireguard
sudo cp MyVPN.conf /etc/wireguard/MyVPN.conf
sudo systemctl enable --now wg-quick@MyVPN
sudo wg show        # deve mostrare il peer con un "latest handshake" recente

Se dopo l'avvio del tunnel i nomi non si risolvono più (problema noto su Ubuntu con systemd-resolved):

sudo rm /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved.service

Verificare con nslookup o ping verso un dominio.

5. Controllo automatico della VPN

Sui PC con il progetto televigilanza-mdm (scheda) uno script controlla il tunnel ogni 5 minuti e avvisa la centrale:

  1. Verificare il nome del tunnel con sudo wg show.
  2. Verificare che esistano /var/www/html/controls/vpn.sh e /var/www/html/controls/api/alert.php.
  3. sudo chmod +x /var/www/html/controls/vpn.sh
  4. crontab -e e aggiungere:
#WG VPN Controls
*/5 * * * * /bin/bash /var/www/html/controls/vpn.sh

6. Dopo la creazione

  • Annotare l'IP assegnato nell'inventario degli impianti (T0.5).
  • Verificare dalla centrale che il nuovo IP risponda.

Limiti noti

  • L'IP si sceglie a mano: due impianti con lo stesso IP sono già successi (un indirizzo duplicato nel database del Raspberry).
  • Il DNS del tunnel è 8.8.8.8, un servizio esterno.
  • La procedura dipende da un PC Windows solo per generare le chiavi: si può fare anche con wg genkey sul PC Ubuntu, ma non è la procedura in uso.