La risorsa Italiana per pfSense

27 dicembre 2024

Reinstallare pfSense utilizzando il backup della configurazione

 Abbiamo visto qualche mese fa come installare da zero un pfSense versione 2.7

Come fare però se abbiamo necessità di reinstallare mantenendo le configurazioni?


Creare un backup

Il primo passo per poter fare il restore delle configurazioni è assicurarsi di avere un backup recente utile.

Accedere all'interfaccia web e andare su Diagnostics > Backup & Restore e selezionare "Backup extra data" oltre a quanto già selezionato di default


Cliccare su "Download configuration as XML"


Eseguire la reinstallazione

 Per reinstallare pfSense possiamo utilizzare la guida creata in precedenza: Installare pfSense 2.7


Effettuare il restore della configurazione

Accedere all'interfaccia web tramite le credenziali di default, andare su Diagnostics > Backup & Restore e cliccare "Choose File" dal menù Configuration File sotto la sezione Restore Backup



Cliccare su Restore Configuration e attendere il reboot




24 dicembre 2024

Creare una VPN Site to Site con OpenVPN in pfSense 2.7

 

Riproponiamo oggi la versione aggiornata di uno degli articoli più apprezzati del blog.

Questa volta però abbandoneremo la configurazione basata su chiave condivisa per passare a quella più sicura basata su certificati SSL.

Lo scenario prevede sempre una sede A che fa da server e una sede B che fa da client.

Nella sede A è necessaria la presenza di 1 IP pubblico statico, nella sede B può esserci o non esserci.


Sede A (Server):
LAN: 192.168.0.0/24
IP Pubblico: 1.2.3.4


Sede B (Client):
LAN: 192.168.5.0/24
IP Pubblico: 5.6.7.8


Rete Tunnel VPN: 192.168.254.0/24


1. Creazione della CA e dei Certificati

Accedere all'interfaccia web di pfSense (Sede A).


Navigare su System > Cert. Manager > CAs e cliccare su "Add" e inserire i seguenti parametri:

  • Descriptive Name: OpenVPN_CA
  • Method: Create internal Certificate Authority
  • Key Length: 2048
  • Digest Algorithm: SHA256
  • Common Name: OpenVPN-CA
  • Salvare cliccando su "Save".

Passare alla scheda Certificates e cliccare su "Add" per creare il certificato del server:

  • Method: Create internal Certificate
  • Certificate Authority: OpenVPN_CA
  • Descriptive Name: OpenVPN_Server
  • Common Name: server
  • Type: Server Certificate
  • Key Length: 2048
  • Digest Algorithm: SHA256


Ripetere l'operazione per creare il certificato del client (che sarà utilizzato sulla sede B):

  • Descriptive Name: OpenVPN_Client
  • Common Name: client
  • Type: Client Certificate


2. Configurazione del Server OpenVPN (Sede A)

Navigare su VPN > OpenVPN > Servers e cliccare su "Add" e configurare i seguenti parametri:

  • Server Mode: Peer to Peer (SSL/TLS)
  • Protocol: UDP
  • Device Mode: tun
  • Interface: WAN
  • Local Port: 1194
  • Description: Site-to-Site VPN Server
Cryptographic Settings:
  • TLS Authentication: Spuntare "Use a TLS Key" e generare la chiave cliccando su "Generate TLS Key".
  • Peer Certificate Authority: OpenVPN_CA
  • Server Certificate: OpenVPN_Server
  • Encryption Algorithm: CHACHA20-POLY1305; AES-256-GCM
  • Auth Digest Algorithm: SHA256
  • Hardware Crypto: No Hardware Crypto Acceleration 

Tunnel Settings:

  • Tunnel Network: 192.168.254.0/24
  • Local Network: 192.168.0.0/24
  • Remote Network: 192.168.5.0/24
Salvare e applicare le modifiche


3. Configurazione del Firewall su Sede A

Andare su Firewall > Rules > WAN e cliccare su "Add" e configurare:

  • Action: Pass
  • Interface: WAN
  • Protocol: UDP
  • Source: Any
  • Destination: WAN Address
  • Destination Port Range: 1194
  • Description: Allow OpenVPN Traffic
  • Salvare e applicare le modifiche.


4. Esportazione e Importazione Certificati Client

Su pfSense (Sede A), navigare su System > Cert. Manager > Certificates.
  • Scaricare il certificato e la chiave privata del client OpenVPN.
  • Importare questi file su pfSense (Sede B) in System > Cert. Manager > Certificates cliccando su "Add" e selezionando "Import an existing certificate".

5. Configurazione del Client OpenVPN (Sede B)

Accedere all'interfaccia web di pfSense (Sede B). Navigare su VPN > OpenVPN > Clients e cliccare su "Add" e configurare i seguenti parametri:

  • Server Mode: Peer to Peer (SSL/TLS)
  • Protocol: UDP
  • Device Mode: tun
  • Interface: WAN
  • Server Host or Address: 1.2.3.4
  • Server Port: 1194
  • Description: Site-to-Site VPN Client
Cryptographic Settings:
  • Peer Certificate Authority: OpenVPN_CA
  • Client Certificate: OpenVPN_Client
  • Encryption Algorithm: CHACHA20-POLY1305; AES-256-GCM
  • Auth Digest Algorithm: SHA256
  • Hardware Crypto: No Hardware Crypto Acceleration
Tunnel Settings:
  • Tunnel Network: 192.168.254.0/24
  • Remote Network: 192.168.0.0/24
Salvare e applicare le modifiche.


6. Verifica della Connessione VPN

Navigare su Status > OpenVPN in entrambe le sedi: se la configurazione è corretta, vedrai la connessione attiva.


 

27 agosto 2024

Log Management in pfSense - Come leggere i log in formato Raw

pfSense di default ci presenta i log in formato parsed, più leggibili ma meno ricchi di informazioni. 

Tramite i Log Raw invece possiamo riuscire a ricavare dati aggiuntivi che ci permettono di analizzare il traffico ed eventuali anomalie in modo più preciso.

Leggere un Log Raw di pfSense può sembrare complicato, ma con un po’ di pratica e una buiona guida che ce li spieghi non è così difficile. In questo articolo scopriremo come interpretarli

Visualizzare i Log Raw

Vai su Status - System Logs.
Seleziona la scheda Firewall.

Nelle impostazioni (icona della chiave inglese), sotto Formatted/Raw Display, scegliere Raw e salvare

Struttura dei Log Raw

I log raw di pfSense sono generalmente formattati come una singola linea di valori separati da virgole. Ecco una panoramica dei campi comuni che potresti trovare:

Timestamp: Data e ora dell’evento.
Hostname: Nome dell’host (non incluso nei log inviati tramite syslog).
Rule Number: Numero della regola che ha generato il log.
Interface: Interfaccia reale (es. em0).
Reason: Motivo dell’entrata nel log (es. match).
Action: Azione intrapresa (es. block, pass).
Direction: Direzione del traffico (in/out).
IP Version: Versione IP (4 per IPv4, 6 per IPv6).
Source IP: Indirizzo IP sorgente.
Destination IP: Indirizzo IP di destinazione.
Protocol: Protocollo (es. TCP, UDP).
Source Port: Porta sorgente.
Destination Port: Porta di destinazione.

Esempio di Log Raw

Un esempio di log raw potrebbe apparire così:

Aug 13 23:11:04 pfSense filterlog: 1000000103,0,,1000000103,em0,match,pass,in,4,0x0,,64,4500,0,DF,6,tcp,60,192.168.1.100,1.2.3.4,443,80,0,PA,123456789,987654321,1024,0,,mss;nop;wscale

Interpretazione del Log

Timestamp: Aug 13 23:11:04 - Data e ora dell’evento.
Hostname: pfSense - Nome dell’host.
Rule Number: 1000000103 - Numero della regola.
Interface: em0 - Interfaccia reale.
Reason: match - Motivo dell’entrata nel log.
Action: pass - Azione intrapresa.
Direction: in - Direzione del traffico.
IP Version: 4 - IPv4.
Source IP: 192.168.1.100 - Indirizzo IP sorgente.
Destination IP: 1.2.3.4 - Indirizzo IP di destinazione.
Protocol: tcp - Protocollo.
Source Port: 443 - Porta sorgente.
Destination Port: 80 - Porta di destinazione.

Strumenti Utili

grep: Puoi usare grep per filtrare i log e trovare informazioni specifiche. 
Ad esempio: grep "192.168.1.100" /var/log/filter.log

clog: Per versioni precedenti di pfSense, puoi usare clog per leggere i file di log binari: clog /var/log/filter.log


20 agosto 2024

Creare Regole di NAT in pfSense - Parte 1

NAT IN PFSENSE


Il Network Address Translation (NAT) è una tecnica utilizzata per modificare gli indirizzi IP nei pacchetti di rete mentre transitano attraverso un router o un firewall. pfSense offre potenti funzionalità di NAT che possono essere configurate per gestire sia il traffico in entrata (inbound) che quello in uscita (outbound).
NAT InbounD.

NAT INBOUND


Il NAT Inbound, noto anche come Port Forwarding, consente di reindirizzare il traffico proveniente dall’esterno verso un indirizzo IP interno specifico. 

Questo è utile quando si desidera rendere accessibili servizi interni, come un server web, agli utenti esterni.

Configurazione del NAT Inbound su pfSense

Navigare su Firewall - NAT: Selezionare la scheda “Port Forward”.

Aggiungere una nuova regola: Cliccare su “Add” per creare una nuova regola di port forwarding.

Configurare i dettagli della regola:

Interface: Selezionare l’interfaccia WAN.
Protocol: Scegliere il protocollo (TCP).
Destination: Selezionare “WAN address”.
Destination Port Range: Inserire la porta esterna
Redirect Target IP: Inserire l’indirizzo IP interno del server
Redirect Target Port: Inserire la porta interna
Salvare e applicare le modifiche: Cliccare su “Save” e poi su “Apply Changes”.

Esempio di NAT Inbound


Supponiamo di avere un server web interno con l’indirizzo IP 192.168.1.100 e di voler rendere accessibile il sito web tramite HTTPS su Internet. La configurazione della regola di port forwarding sarà la seguente:



NAT Outbound


Il NAT Outbound, noto anche come Source NAT, controlla come gli indirizzi IP interni vengono tradotti quando il traffico esce dalla rete locale verso Internet. Questo è utile per nascondere gli indirizzi IP interni e utilizzare un singolo indirizzo IP pubblico.

Configurazione del NAT Outbound su pfSense


Navigare a Firewall - NAT: Selezionare la scheda “Outbound”.

Selezionare la modalità di NAT Outbound: Scegliere tra Automatic, Hybrid, o Manual.
  • Automatic: pfSense gestisce automaticamente le regole di NAT Outbound.
  • Hybrid: Consente di aggiungere regole manuali mantenendo quelle automatiche.
  • Manual: Tutte le regole devono essere configurate manualmente.
Aggiungere una nuova regola (se in modalità Hybrid o Manual):

Interface: Selezionare l’interfaccia WAN.
Source: Inserire l’indirizzo IP del dispositivo interno
Source Port Range: Lasciare vuoto per tutte le porte.
Destination: Inserire l’indirizzo IP di destinazione
Translation / target: Selezionare “Interface address”.
Salvare e applicare le modifiche: Cliccare su “Save” e poi su “Apply Changes”.

Esempio di NAT Outbound


Supponiamo di avere un centralino con l’indirizzo IP 192.168.1.120 che deve contattare un SIP provider con l’indirizzo IP pubblico 1.2.3.4 presentandosi con un IP pubblico diverso da quello su cui è attestata l'interfaccia WAN del firewall. La configurazione della regola di NAT Outbound sarà la seguente:



13 agosto 2024

Come aggiornare pfSense con fix e minor update


Oltre agli update di versione e sottoversione, (da 2.6 a 2.7, oppure da 2.7 a 2.7.2) pfSense offre la possibilità di applicare dei fix per la risoluzione di bug e vulnerabilità tramite un pacchetto aggiuntivo chiamato System Patches.

Questo pacchetto è uno di quelli che consigliamo di installare sempre e di mantenere monitorato: ogni volta che risulta da aggiornare, significa che sono stati rilasciati uno o più aggiornamenti minori.

Ecco cosa fare quindi per installarlo, mantenerlo aggiornato ed applicare i fix:

Installazione: posizionarsi su System - Package Manager - Available Packages  e cercare "patch"


Cliccare su install e attendere il termina dell'installazione.

Applicazione : posizionarsi poi su System - Patches e cliccare su Apply All Recomanded  in fondo alla pagina per attivare tutte le patch.

Riavviare il firewall o il servizio coinvolto o ricaricare il filtro (di fianco a ogni patch è spiegato cosa serve fare per renderla subito operativa)




5 giugno 2024

Creare regole di firewall in pfSense - parte 1

Le regole del firewall in pfSense sono fondamentali per controllare il traffico tra le reti ad esso connesse, che siano esse reti Internet (WAN)  o reti locali (LAN).

Le caratteristiche principali delle regole di firewall in pfSense sono:

  1. Azione: Ogni regola può avere un’azione specifica:
    • Pass: Permette al traffico di passare attraverso il firewall.
    • Block: Scarta il traffico senza inviare alcuna risposta.
    • Reject: Scarta il traffico e invia un messaggio al mittente indicando che la connessione è stata rifiutata
  2. Interfaccia: Specifica l’interfaccia su cui applicare la regola. La regola è sempre applicata in ingresso all'interfaccia in questione. In altre parole, le regole dell’interfaccia LAN si applicano al traffico proveniente dalla rete locale (LAN), mentre le regole dell’interfaccia WAN si applicano al traffico proveniente da Internet.
  3. Versione TCP/IP: Puoi specificare se la regola si applica solo a IPv4, IPv6 o entrambi.
  4. Protocollo: Indica il protocollo, ad esempio, TCP, UDP o ICMP.
  5. Origine e destinazione: Le regole possono specificare sia l’indirizzo IP che la porta/e di origine che quelli di destinazione. Ad esempio, puoi consentire il traffico solo da un indirizzo IP specifico verso il centralino VoIP sulla VLAN fonia.
  6. Ordine di valutazione: Le regole vengono valutate dall’alto verso il basso. La prima regola corrispondente viene applicata. L’ordine delle regole è perciò fondamentale affinchè il firewall si comporti come desiderato.
  7. Negazione implicita: Se non c’è una regola corrispondente, il traffico viene implicitamente negato. 

Ecco alcuni esempi:

1. Regola per permettere il traffico da Internet verso un web server interno posizionato nella LAN:

   - Web Server:
     - Nome della regola: "Permetti traffico HTTPS al Web Server"
     - Interfaccia: WAN
     - Protocollo: TCP
     - Porte: 80 (HTTP) e 443 (HTTPS)
     - Origine: Qualsiasi
     - Destinazione: Indirizzo IP del web server nella LAN
     - Azione: Pass







2. Regola che rigetta il traffico RDP dalla VLAN Users alla VLAN Server:
     - Nome della regola: "Blocco traffico RDP tra VLAN Users e VLAN Server"
     - Interfaccia: VLAN Users
     - Protocollo: TCP
     - Porta: 3389 (RDP)
     - Origine: VLAN Users
     - Destinazione: VLAN Server
     - Azione: Reject






E' possibile poi specificare ulteriori parametri per controllare in modo ancor più  granulare le regole (gateway da utlizzare, limiter, logging, ecc.), è possibile aggregare IP, subnet o porte tramite alias e molto altro ancora che scopriremo negli articoli delle prossime settimane.

Stay tuned!

Nome

Email *

Messaggio *