La risorsa Italiana per pfSense

Latest Posts

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!

14 maggio 2024

Autenticazione Active Directory con pfSense

 

Tra le più interessanti e utili funzioni che offre pfSense c'è l'opportunità di autenticare gli utenti appoggiandosi su back end di tipo LDAP, tipicamente Active Directory.


Ciò permette a un utente di accedere con le proprie credenziali di dominio alla OpenVPN remota o all'interfaccia web del firewall, laddove autorizzato.


Che cos'è LDAP?


LDAP è un protocollo applicativo utilizzato per gestire e accedere a servizi informativi distribuiti di directory. Organizza i dati in modo gerarchico, facilitandone il controllo e la gestione. E' il protocollo su cui Active Directory di Microsoft si appoggia per accedere al proprio database di utenti computer e oggetti.


Configurazione autenticazione LDAP con Active Directory su pfSense

Posizionarsi su System - User Manager - Authentication Servers

Cliccare su Add

Scegliere un Nome Descrittivo: SRV-DC

Type: LDAP

Hostname or IP address: l'ip o l'hostname di un domain controller che il firewall può raggiungere

Porta e protocollo: lasciare di default o impostare su LDAPS se necessario coi relativi parametri


Search Scope: Entire Subtree

Base DN: la base del vostro AD -  es. DC=pfsenseitaly,DC=local

Authentication container: la OU che contine gli utenti da autenticare (utilizzare il tasto "Select a container") - es. OU=Users,DC=pfsenseitaly,DC=local

Extended Query: da flaggare

Query: gruppo precedentemente creato in AD e utilizzato per identificare uno specifico gruppo di utenti autorizzati - es. memberOf=CN=OpenVPN_Auth,OU=Groups,DC=pfsenseitaly,DC=local

Bind credentials: inserire le credenziali di un utente che abbia accesso in lettura al db di AD



Lasciare il resto di default e salvare.


Verifica autenticazione

Posizionarsi su Diagnostics - Authentication
Scegliere il back-end di autenticazione appena creato
Inserire le credenziali di un utente e cliccare su Test




7 maggio 2024

Log Management in pfSense: quali quali informazioni fondamentali ci offrono


Abbiamo visto in precedenza come conservare i log generati da pfSense su un server syslog remoto, ma non ci siamo ancora soffermati ad analizzare quali sono le principali voci che vengono registrate sul nostro firewall.

Ricordiamo che i log di pfSense sono conservati nel percorso /var/log e sono fruibili tramite interfaccia web nel menù Status > System Logs.

Andremo ad analizzare le sezioni più significative

  1. System
  2. Firewall
  3. DHCP
  4. Authentication
  5. OpenVPN e IPsec
  6. Packages 

1. SISTEMA

I log di tipo System a loro volta contengono diverse sottosezioni, queste le principali
  1. General: racchiude tutti gli eventi generati dai processi, da quelli generati dal kernel, all'interfaccia web e a molti altri sottosistemi sia quelli installati di default che alcuni pacchetti aggiuntivi. Si tratta comunque di processi che non producono molte registrazioni, I sottosistemi che generano grosse quantità di log, hanno il loro menù dedicato. Questi log sono utili per monitorare le attività dei principali processi e servizi (start e stop), sicurezza (sshguard), sincronia di membri di un cluster, login via web, comandi di riavvio o eventi legati allo stato dell'UPS se ce n'è uno collegato, e così via 
  2. Gateways: registra gli eventi relativi ai Gateway (in particolare perdita di pacchetti, stato online/offline, latenza dei monitor). Sono utili per il troubleshooting sulla connettività e sul multiwan
  3. Os Boot: riporta l'output della procedura di boot ed è utile per il trobleshooting dell'avvio

2. FIREWALL

I log di questo tipo di default intercettano tutti gli eventi di block svolti dal Packet Filter.
Come configurazione globale o su singole regole è attivabile anche il logging dei pass
Viene segnalata l'azione (block o pass), l'orario, l'interfaccia di origine, la regola matchata, ip e porta di origine e di destinazione e tipo di protocollo (TCP/UDP + flag di extra information).

Sono fondamentali per verificare se c'è un evento di blocco e dovuto a cosa o, viceversa, per capire se il traffico stia effettivamente passando.

L'interpretazione di questi log merita un articolo a parte, che linkeremo appena disponibile

3. DHCP

Quando attivo su una o più interfacce, registrano i log del servizio DHCP server.
Contiene tutte le informazioni necessarie per verificarne il corretto funzionamento (gestione del lease, pool pieno, ecc.)

4. AUTHENTICATION

Contiene le informazioni circa i login riusciti e non, sia al firewall stesso sia per quei servizi per i quali svolge la funzione di back-end di autenticazione (Captive Portal per esempio o le VPN L2TP)
Monitora inoltre lo stato e i cambiamenti di diversi servizi (CARP, sshguard,ecc.)

5. VPN

IpSec e OpenVPN dispongono entrambe di un log dedicato, ognuno dei quali contiene informazioni sulle connessioni in corso e permettono di verificare al livello di dettaglio necessario (la verbosità potrebbe essere necessario cambiarla a livello dell'istanza da monitorare) eventuali problemi sulle connessioni (mancate risposte, certificati scaduti, mismatch di configurazione, configurazioni deprecate, autenticazione riuscita/fallita, ecc.)

6. PACKAGES

Questo log di default è vuoto, ma alcuni pacchetti extra (es. HAProxy) hanno un flag che permette di registrare i propri log, che finiranno in questa sezione.

Il menù dei log di pfSense contiene anche altre voci, ma oggi abbiamo voluto dettagliare maggiormente quelle che riteniamo più importanti.






Nome

Email *

Messaggio *