La risorsa Italiana per pfSense

Latest Posts

11 febbraio 2025

Creare un VPN IPsec per collegare 2 sedi


Il protocollo IPsec è il più diffuso protocollo per creare una connessione VPN site to site ed è presente su pressochè tutti i firewall, garantendo così l'interoperabilità anche tra apparati differenti.

Come funziona IPsec?


In breve una connessione IPsec si articola in 4 punti:

  1. Negoziazione (Fase 1): i due dispositivi che fanno da terminatori della VPN per le rispettive reti negoziano il metodo di crittografia e autenticazione tramite IKE.
  2. Creazione della connessione (Fase 2): viene stabilita una Security Association (SA) e generata una chiave condivisa.
  3. Trasferimento dati: i pacchetti IP vengono cifrati e trasmessi.
  4. Chiusura della connessione: la SA viene terminata alla fine della comunicazione.

Prerequisiti

Per la configurazione di base che vedremo oggi è necessario che i due endpoint dispongano ciascuno di un IP pubblico e che le sottoreti interne da mettere in comunicazione non siano uguali o anche parzialmente sovrapposte.
In caso questi requisiti non siano presenti, nei prossimi articoli studieremo alcune di queste casistiche.

Configurazione

Nella nostra configurazione supporremo di avere due sedi:
1) Milano con IP pubblico 4.3.2.1 e lan con subnet 192.168.0.0/24
2) Roma con IP pubblico 1.2.3.4 e lan con subnet 192.168.1.0/24

Colleghiamoci al firewall della sede di Milano e configuriamo la connessione verso il server di Roma

Accediamo al menù VPN > IPsec
Clicchiamo su Add P1

Inseriamo una descrizione
Selezioniamo l'interfaccia su cui rimanere in ascolto 
Nel remote gateway inseriamo l'ip pubblico della sede di Roma

Inseriamo una chiave condivisa

Selezioniamo gli algoritimi di crittografia secondo gli standard di sicurezza necessari, ad es.

AES256 - SHA512 - DH19

Una configurazione tipica sarà questa: 



Lasciamo invariati gli altri parametri e salviamo.

Troveremo perciò la nostra connessione elencata nella pagina delle IP



Clicchiamo ora su Show Phase 2 e poi su Add P2

Scegliamo una descrizione per questa fase 2 e enseriamo la subnet locale e quella remota da mettere in comunicazione


e configuriamo la parte di sicurezza per la gestione di crittografia e autenticazione coi parametri come in figura (ESP - AES256 - SHA512 - DH 19)


Lasciamo gli altri parametri come proposti e salviamo.

Ci spostiamo ora sul firewall di Roma, dove faremo delle configurazioni identiche facendo attenzione a inserire:

- in fase 1, l'IP pubblico di Milano come remote gateway
- in fase 2, la local la remote subnet invertite

Una volta terminato il lavoro anche sul secondo firewall non ci resta che creare le regole sulle interfacce IPsec di entrambe le sedi per permettere il passaggio del traffico nelle due direzioni.

Ci posizioniamo perciò sul firewall prima di Milano e poi di Roma e creiamo una regola su ciascuno che, per semplicità, permette il passaggio di tutto il traffico:



A questo punto non ci resta che verificare lo stato del collegamento sotto Status > Ipsec e testare la bontà della connessione provando a far comunicare tra loro 2 apparati che risiedono sulle lan delle sedi che abbiamo collegato.


4 febbraio 2025

La Dashboard di pfSense

Esploriamo oggi una delle funzioni maggiormente date per scontate, ma non sempre sfruttate al meglio: la Dashboard

La dashboard di pfSense è l'home page dell'interfaccia web e fornisce una panoramica completa sullo stato e sulle prestazioni del firewall.

La dashboard serve principalmente a:

  • Monitorare lo stato del sistema (utilizzo della CPU, RAM, spazio su disco, uptime).
  • Visualizzare interfacce di rete con indirizzi IP, stato delle connessioni e velocità.
  • Gestire connessioni VPN attive.
  • Controllare i log di sistema e traffico.
  • Accedere rapidamente alle impostazioni di firewall, NAT, regole e diagnostica.
  • Verificare gli aggiornamenti del sistema e dei pacchetti installati.

Per sfruttarla al meglio personalizza e minimizza i widget

La dashboard è composta da widget che possono essere aggiunti, rimossi o riorganizzati.
Vai su "Dashboard" > "Aggiungi widget" e seleziona quelli più utili per te

Sui miei pfSense non mancano mai:

  • System Information con le info generali più rilevanti
  • Traffic Graph che mi da informazioni sull'uso della banda in tempo reale 
  • i due widget Gateways e Interfaces, che mi segnalano stato e velocità delle connessioni
  • Disks: che mi segnala lo stato del disco
  • Service status, che monitora i servizi
  • i due widget OpenVPN e Ipsec che mi descrivono lo stato delle connessioni remote 

Un altro widget secondo me davvero utile è Pictures, che permette di caricare un'immagine: la utilizzo per distinguere le diverse sedi in modo da avere un riscontro immediato quando un cliente ha più firewall e non commettere errori di identificazione della macchina su cui sto lavorando (es. quando le sedi sono in diversi paesi, carico la bandiera)



28 gennaio 2025

URL Alias in pfSense

Per chiudere la panoramica sugli alias che ci ha accompagnato in queste ultime settimane andiamo ad analizzare una tipologia di alias molto utile, che è quella delle URL Tables: posso caricare su un sito web, in una pagina raggiungibile dal firewall (pubblica o privata) un txt con un elenco di URL o IP e il sistema sarà in grado di fare il fetch di tutti i valori contenuti, utilizzandoli all'interno delle regole.

Questo permette di avere alias dinamici basati sul contenuto del file di cui viene fatto il retrieve.

Applicazioni interessanti possono essere quelle per creare regole di blocco sfruttando blacklist pubbliche, piuttosto che regole di permit basate su elenchi custom che andiamo a inserire in un txt online.

Vediamo i passi per creare una regola sfruttando questa funzionalità:

Creiamo l'alias di tipo URL Table (IPs): Firewall > Alias > URLs > Add





Verifichiamo che il sistema sia in grado di fare il fetch degli IP presenti su quella pagina web: Diagnostics - Tables - Selezioniamo l'Alias appena creato:



Scorrendo la pagina sono elencate tutte le entry presenti che possono essere anche in numero molto alto (gli Alias URL Table supportano oltre 30k indirizzi)

Andiamo ora a creare una regola ad hoc per vietare l'accesso a questi ip dalla LAN



Allo stesso modo potremo pubblicare dei file con un elenco di IP consentiti e creare regole che permettano l'accesso a specifici servizi in base agli IP sorgenti in esso contenuti.

Questa funzionalità spesso è utile quando vanno mantenute aggiornate in automatico liste di ip molto lunghe o spesso variabili e sopratutto liste di ip di fornitori di servizi terzi che pubblicano direttamente un url contenenti le liste di ip aggiornate al variare del loro indirizzi.

17 gennaio 2025

La nomenclatura degli Alias in pfSense

 La scorsa settimana abbiamo visto a cosa servono gli Alias.

Oggi voglio condividere con voi la nomenclatura che utilizzo per mantenerli ordinati:

  • Prefisso
IP_ = per gli IP
P_ = per le porte
NET_ = per liste di subnet
FQDN_ = per liste di FQDN
URL_ = per liste di IP/Porte/… scaricati da URL
  • Subnet di riferimento per IP o Subnet
  • Nome dell’alias
Ottenendo quindi questa forma: PREFISSO_SUBNET_NOME

Esempi possono essere:

IP_LAN_SRV_WEB_01
P_VOIP_UDP
NET_VOIP_IP_PHONE
URL_GOOGLE

Nella scelta dei nomi il trattino alto e lo spazio non sono utilizzabili, andremo quindi ad usare _

8 gennaio 2025

Utilizzare gli Alias in pfSense

Gli Alias in pfSense sono dei placeholders per IP, Network, Porte e FQDN

Rappresentano uno strumento molto utile al fine di migliorare la comprensione delle regole che creiamo e la loro modifica in modo massivo.

Per gestire gli Alias dobbiamo posizionarci su Firewall > Alias


E' consigliato stabilire una nomenclatura standard per mantenere ordine e leggibilità

Cliccando su Add possiamo aggiungere un Alias assegnadogli un nome secondo la nomenclatura stabilita, scegliendo il tipo (host, port, ip table, ecc) ed inserendone infine i valori.




Gli Alias sono utilizzabili in modo annidato e per contenere più valori contemporaneamente.

Possono essere utilizzati in diversi punti della configurazione per creare regole e si autocompletano e autovalidano: se inizio a scrivere il nome di un alias in un campo, il sistema mi suggerisce con l'autocompletamento tutti i nome che matchano, ma solo se sono alias compatibili con quella tipologia di campo (es. un Port Alias mi sarà proposto solo in un campo dove va indicata una porto o un port range).


2 gennaio 2025

Gestire lo spegnimento pilotato di una appliance pfSense tramite NUT con UPS APC


Quando si installa pfSense su una macchina fisica conviene proteggerlo dagli sbalzi o le mancanze di corrente tramite un UPS.

Oggi vediamo come gestire questo tipo di configurazione in uno scenario in cui il pfSense è collegato a un UPS della APC.

L'UPS APC è dotato di scheda di rete per la gestione remota via web (NMC2 o NMC3).


I passi da seguire sono i seguenti:

  1. Installazione del pacchetto NUT su pfSense
  2. Configurazione dell'SNMP sulla Network Card dell'UPS
  3. Conifgurazione utente per lo shutdown sulla Network Card dell'UPS 
  4. Configurazione del NUT su pfSense 


Eccoli nel dettaglio


Installazione del pacchetto NUT su pfSense

Da System > Package Manager > Available Packages > cercare e installare il pacchetto NUT


Configurazione dell'SNMP sulla Network Card dell'UPS

Loggarsi via web sulla Network Card e attivare l'SNMP v1 e configurare l'accesso in lettura al firewall:

  • Configuration > Network > SNMPv1 > Access > Abilitare
  • Configuration > Network > SNMPv1 > Access Control > Creare la community e inserire l'ip del firewall


Configurazione utente per lo shutdown sulla Network Card dell'UPS

Loggarsi via web sulla Network Card e crreare l'utente dedicato

  • Configuration > Security > Local Users > Management > Add User
  1. Enable:​ Si
  2. Username: shutdown
  3. Password: sceglierne una sicura e univoca
  4. User Type: device
  5. Descrizione: utente per shutdown firewall
  6. Next - Apply


Configurazione del NUT su pfSense 

Una volta preparato tutto lato Network Card, non ci resta che configurare il pacchettoNUT che troviamo sotto Services > UPS

Services > UPS > UPS Settings

  • UPS Type: Remote snmp
  • UPS NAme: il nome dell'ups a cui ci colleghiamo
  • Enable Notifications: Si


  • Remote IP address: IP dell'UPS


  • Extra Arguments to driver (optional):


mibs = auto

community = nome_community_snmp_UPS

snmp_version = v1

pollfreq = 30


ignorelb


override.battery.charge.warning = XX  //stimare dal runtime e poi verificare col test di shutdown. E' la soglia di warning pre shutdown calcolata in % della carica della batteria dell'UPS


override.battery.charge.low = YY  //stimare dal runtime e poi verificare col test di shutdown. Questa è la % di carica dell'UPS raggiunta la quale parte lo shutdown del firewall



  • In Advanced


Additional configuration lines for upsmon.conf:


NOTIFYFLAG ONLINE SYSLOG+EXEC

NOTIFYFLAG ONBATT SYSLOG+EXEC

NOTIFYFLAG LOWBATT SYSLOG+EXEC

NOTIFYFLAG FSD SYSLOG+EXEC

NOTIFYFLAG COMMOK SYSLOG+EXEC

NOTIFYFLAG COMMBAD SYSLOG+EXEC

NOTIFYFLAG SHUTDOWN SYSLOG+EXEC

NOTIFYFLAG REPLBATT SYSLOG+EXEC

NOTIFYFLAG NOCOMM SYSLOG+EXEC

NOTIFYFLAG NOPARENT SYSLOG+EXEC


SHUTDOWNCMD "/sbin/shutdown -p +0






  • Additional configuration lines for upsd.users


shutdown  //lo username dell'utente creato sulla network card (es. "shutdown")

password = la password dell'utente "shutdown"

upsmon slave



Al termine della configurazione è opportuno testarne la bontà e validare le soglie percentuali con un test di spegnimento programmato.

Nome

Email *

Messaggio *