La risorsa Italiana per pfSense

Visualizzazione post con etichetta Configurazione. Mostra tutti i post
Visualizzazione post con etichetta Configurazione. Mostra tutti i post

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.


 

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:



7 marzo 2024

OpenVPN Server su pfSense 2.7


Una delle funzionalità più utilizzate e più apprezzate di pfSense è la possibilità di fare da terminatore per la OpenVPN.

Abbiamo già descritto come creare un Server OpenVPN in diversi articoli precedenti (OpenVPN Server su pfSense 2.3, l'ultimo), ma vogliamo riprendere l'argomento, in quanto col passare del tempo e delle versioni sono cambiati gli algoritmi supportati e anche alcune delle funzionalità offerte dal configuratore.

In questo articolo prendiamo in considerazione la configurazione di un server pfSense come terminatore per una VPN Road Warrior, che permetta agli utenti remoti di collegare il proprio pc, da ovunque si trovino, alla rete aziendale.
Per autenticarsi saranno necessari un certificato SSL + username e password.
Il backend di autenticazione sarà il database locale del firewall stesso.

La configurazione che vedremo in seguito è effettuata su un pfSense 2.7.2

Gli step da effettuare sono i seguenti:
  • Creazione dei certificati (CA - Server - User)
  • Configurazione del server OpenVPN
  • Configurazione dell'interfaccia virtuale
  • Impostazione regole di firewall
  • Export della configurazione del client

Creazione dei certificati

Creazione del certificato della CA

Portarsi nel menù System > Cert Manager > CAs
Cliccare su Add
Compilare in modo preciso i campi sotto ripotati per la creazione del nostro certificato
  • Descriptive Name: Nome del certificato
  • Method: Create an internal Certificate Authority
  • Key length: 4096
  • Digest Algorithm: sha512
  • Lifetime: 3650 days (10 anni)
  • Country Code:
  • State or Province:
  • City:
  • Organization:
  • Email Address:
  • Common Name: internal-ca


Cliccare su Save    

Creazione del certificato Server

Portarsi nel menù System > Cert Manager > Certificates
Cliccare su Add
Compilare in modo preciso i campi sotto ripotati per la creazione del nostro certificato
  • Method: Create an internal Certificate
  • Descriptive Name: Nome del certificato
  • Certificate Authority: la CA creata in precedentza
  • Key length: 4096
  • Digest Algorithm: sha512
  • Lifetime: 3650 days (10 anni)
  • Common Name: nome dns firewall
  • Country Code:
  • State or Province:
  • City:
  • Organization:
  • Email Address:
  • Certificate Type: Server Certificate
Cliccare su Save


Creazione della Certificate Revocation List

A questo punto è buona prassi creare anche  una Certificate Revocation List che tornerà utile nel momento in cui ci sarà da invalidare dei certificati.

Portarsi nel menù System > Cert Manager > Certificate Revocation
Cliccare su Add or Import CRL in corrispondenza del nome del certificato della nostra CA
 
Compilare in modo preciso i campi sotto riportati per la creazione del nostro certificato
  • Certification Authority: la CA creata in precedentza
  • Method: Create an internal Certificate Revocation List
  • Descriptive Name: CRL
  • Lifetime: 730 days
  • Serial: 0
Cliccare su Save


Creazione del certificato User

Portarsi nel menù System > Cert Manager > Certificates
Cliccare su Add
Compilare in modo preciso i campi sotto riportati per la creazione del nostro certificato
  • Method: Create an internal Certificate
  • Descriptive Name: Nome del certificato (per esempio lo username dell'utente)
  • Certificate Authority: la CA creata in precedentza
  • Key length: 4096
  • Digest Algorithm: sha512  
  • Lifetime: 3650 days (10 anni)
  • Common Name: lo username dell'utente
  • Distinguished Name:
  • Country Code:
  • State or Province:
  • City:
  • Organization:
  • Email Address:
  • Certificate Type: User Certificate
Se si utilizzano utenti locali al firewall la creazione del certificato può essere fatta contestualmente alla creazione dell'utente cliccando sulla voce apposita



Configurazione del server OpenVPN

Portarsi nel menù VPN > OpenVPN > Server

Cliccare su Add

Impostare i seguenti campi:
  • Description: il nome descrittivo
  • Server Mode: Remote Access (SSL/TSL + User Auth)
  • Selezioniamo i backend di autenticazione

  • Device Mode: tun
  • Protocol: UDP
  • Interface: WAN (interfaccia su cui viene fatto il bind)
  • Local Port: 1194
  • TLS authentication: YES
  • Automatically generate a shared TLS authentication key: YES
  • Peer Certificate Authority: Selezionare il certificato della CA appena creato
  • Peer Certificate Revocation List: Selezionare  la CRL appena creata
  • Server Certificate: Selezionare il certificato del server appena creato
  • DH Parameters Length: 4096 bits
  • Encryption algorithm: CHACHA20-POLY1305 + AES-256-GCM
  • Auth digest algorithm: SHA256 (256-bit)
  • Hardware Crypto: selezionare una eventuale scheda di accelerazione
  • Certificate Depth: One (Client+Server)
  • Flaggare Strict User-CN Matching
  • Flaggare Enforce key usage
  • Tunnel Network: Inserire una subnet per il tunnel, non usare subnet già in uso.
  • Ipv4 Local network(s): inserire le subnet locali raggiugibili tramite la VPN separandole con virgola
  • Allow Compression: Refuse any non-stub compression
  • Topology: One IP address per client
  • Configurare eventuali impostazioni relative a DNS default domain, server DNS, NTP, NetBIOS secondo le proprie esigenze
Cliccare su Save

Configurazione dell'interfaccia virtuale

Per poter utilizzare il tunnel VPN come gateway nelle roules o per creare rotte statiche, è necessario assegnare al tunnel VPN un interfaccia virtuale.
  • Portarsi nel menù Interfaces > (assign
  • Nella colonna Network port selezionare ovpns1 (REMOTE ACCESS)
  • Cliccare su Add per aggiungere la nuova interfaccia
  • Cliccare sul nome della nuova interfaccia, tipicamente optx
  • Nell'interfaccia effettuare le seguenti modifiche:
    • Enable: Yes
    • Description: OPENVPN_REMOTE



Cliccare su Save

Impostazione regole di firewall

A questo punto non ci resta che configurare il firewall affinchè permetta il traffico verso la wan sulla porta 1194 UDP per ricevere le connessioni dai client OpenVPN e creare le regole sull'interfaccia virtuale per permettere il traffico tra i client e il site della vpn.

Portarsi sul menù Firewall > Rules > WAN
Cliccare su Add
E compilare i seguenti campi:
  • Action: Pass
  • Protocol: UDP
  • Destination Port Range: From OpenVPN to OpenVPN  
Cliccare su Save

Portarsi sul menù Firewall > Rules > OPENVPN_REMOTE
Cliccare su Add
E compilare i seguenti campi:
  • Action: Pass
  • Protocol: Any
  • Source: Any  
  • Destination: Any 
Cliccare su Save (questa regola fa passare tutto il traffico verso le subnet raggiungibili in VPN, restringere le regole secondo necessità).



Export della configurazione del client

Per esportare la configurazione da inserire nel client OpenVPN sul proprio device, installare il pacchetto aggiuntivo openvpn-client-export

Una volta installato posizionarsi su VPN > OpenVPN > Client Export 
Scaricare il file di configurazione cliccando sul tasto Most Clients di fianco al nome dell'utnete di nostro interesse








28 febbraio 2024

Abilitare FTP Client Proxy su pfSense

Il FTP Client Proxy su pfSense è uno strumento che offre vantaggi di sicurezza e gestione per le connessioni FTP.

Funziona come intermediario tra il client e il server FTP, intercettando le richieste FTP e gestendo separatamente le connessioni di dati e di controllo. 
I principali vantaggi di una sua implementazione sono:
 
  • NAT traversal: Facilita la gestione delle connessioni in presenza di NAT
  • Sicurezza: L'FTP Proxy Client può fornire un livello aggiuntivo di sicurezza agendo come un punto di controllo per monitorare e filtrare il traffico FTP in base alle politiche di sicurezza dell'azienda;
  • Controllo degli accessi: Può essere utilizzato per controllare e limitare gli accessi agli utenti FTP. Ad esempio, è possibile configurarlo per consentire solo determinati indirizzi IP o utenti autorizzati a connettersi ai server FTP interni;
  • Logging: L'FTP Proxy Client registra le attività FTP, consentendo agli amministratori di rete di monitorare e analizzare il traffico per identificare eventuali problemi di sicurezza o anomalie;
  • Riduzione del carico di lavoro: In ambienti con un alto volume di traffico FTP, l'FTP Proxy Client può ridurre il carico sui server FTP interni, gestendo in modo efficiente le connessioni e ottimizzando le risorse di rete;
  • Supporto per protocolli FTP attuali e legacy: Può essere configurato per supportare sia il tradizionale protocollo FTP (File Transfer Protocol) che le sue varianti più sicure come FTPS (FTP over SSL/TLS) e SFTP (SSH File Transfer Protocol).


Gli step di installazione e configurazione sono i seguenti:

  • Installare il package da System à Package Manager à Avaiable Packages
  • Individuare il Package: FTP_Client_Proxy


  • Una volta installando andare su à Services à FTP Client Proxy
  • Posizionarsi su Local Interface à Selezionare l’interfaccia locale sul quale applicare questo package (la/le LAN/VLAN desiderate): in questo caso lo applichiamo su un interfaccia di Bridge.


  • Flaggare Early Firewall Rule per posizionare le regole FTP in cima al set di regole per ignorare i blocchi espliciti; aiuta inoltre a consentire l’FTP passivo verso destinazioni arbitrarie
  • Flaggare Rewrite Source to Port 20
  • Abilitare le Log Connection per avere una traccia all’interno dei log.

1 gennaio 2018

pfSense ed i vantaggi di ZFS

Una delle novità più importanti introdotte dalla versione 2.4 di pfSense, è il supporto per il filesystem ZFS.
In molti hanno ritenuto quest'innovazione di poco conto sottovaluando le potenzialità e le peculiarità di questo potente e moderno filesystem. Probabilmente questo è dovuto alla scarsa conoscenza di ZFS.


16 agosto 2017

Monitorare l'UPS con NUT da pfSense

Spesso mi capita di trovare installazioni dove l'UPS è presente, ma non è in alcun modo gestito. Cosa succede in queste situazioni in caso di black-out? La risposta è semplice, l'UPS serve solo a ritardare gli effetti del black-out. Se la corrente non torna in tempo, le batterie dell'ups si esauriscono, l'UPS si spegne e tutti i sistemi che dovrebbe proteggere vengono spenti bruscamente.

28 settembre 2016

21 agosto 2016

pfSense e 10 GbE

Il 10 Gigabite Ethernet o 10 GbE risale al, 2002 ma solo negli ultimi anni ha visto una maggiore diffusione ed una riduzione dei prezzi dei dispositivi capaci di gestire tali velocità rendendolo alla portata anche degli utenti finali.
In quest'articolo vedremo come attivare connessioni 10 GbE in pfsense, quali accorgimenti adottare, quale hardware può supportare tali velocità e quando ha realmente senso.

18 maggio 2016

27 aprile 2016

Aggiornare senza farsi male - parte 2°

L'aggiornamento di pfSense ad una nuova release è sempre un operazione semplice ma allo stesso tempo critica.
Nel precedente articolo abbiamo visto come procedere nell'upgrade di pfSense da una versione 2.3 BETA o RC alla versione 2.3 stabile mentre in questo affronteremo l'aggiornamento alla 2.3 da una precedente versione.

13 aprile 2016

23 luglio 2015

Abilitare il supporto TRIM in pfSense

Le memorie SSD si stanno abbassando notevolmente di prezzo favorendo una rapida diffusione. Anche su sistemi pfSense posono essere impiegate con succeso sia per ridurre i consumi energetici ed il calore dissipato sia per aumentare le prestazioni in alcune tipologie d'installazioni. Per impiegare correttamente questo tipo di emorie è necessario mettere in atto qualche piccolo accorgimento per allungarne la vita.

21 aprile 2015

Configurare pfSense per l'accesso ad un server FTP

Configurare correttamente pfSense per garantire l'accesso ad un server FTP è abbastanza semplice ma in alcuni casi può trasformarsi in un vero e proprio bagno di sangue. Per averne la conferma basta fare una veloce ricerca con google o semplicemente visitare il forum ufficiale di pfSense per scoprire che in molti sono rimasti vittime di questo semplice e vecchio protocollo.
In quest'articolo cercheremo di capire quali sono le insidie che si nascondono dietro questo servizio e come configurarlo in modo corretto pfSense.

19 febbraio 2015

pfSense e VoIP

Chi gestisce reti è costretto prima o poi a scontrarsi con il Voice Over IP che è divenuto causa di molti mal di testa per gli amministratori di rete. In quest'articolo vedremo alcuni semplici accorgimenti per configurare correttamente pfSense e ridurre al minimo i problemi quando siamo in presenza di VoIP basato su protocollo SIP.

26 gennaio 2015

28 giugno 2014

24 aprile 2014

Creare con Linux una chiavetta USB per l'installazione di pfSense

Per installare pfSense esistono diversi modi, sicuramente quello più pratico consiste nell'avviare l'installazione da una chiavetta USB. L'uso della chiavetta USB consente di effettuare il boot su praticamente il 90% dei dispositivi, aggiornare e riutilizzare la chiavetta per ogni nuova release senza contare che potete portarla sempre con voi.

27 novembre 2013

pfSense nel cloud - parte 2

Nel precedente articolo abbiamo visto come configurare pfSense in ambiente cloud quando non si ha a disposizione la possibilità di connettersi all'interfaccia di gestione lato LAN. 
Sicuramente è un metodo interessante ma si può fare di meglio perché nessuno ci vieta di creare un bel template OVF di una macchina virtuale da poter impiegare ogni volta che ce ne sia bisogno senza dover armeggiare con la modifica manuale del file di configurazione.

15 novembre 2013

pfSense nel cloud - parte 1

La diffusione del Cloud Computing ha fatto si che pfSense, grazie alle doti di stabilità e professionalità, si sia guadagnato uno dei primi posti tra le soluzioni firewall più utilizzate in ambiente cloud. 
Giusto per citare alcuni Cloud Service Provider che mettono a disposizione pfSense come soluzione firewall troviamo: cloud.it, assocloud.it, claranet.com, fuseapp.com ecc...
In molti casi il Service Provider fornisce un template già preconfigurato che necessità di pochi interventi per essere reso operativo ma, può capitare di non avere a disposizione un templete pronto all'uso e di dover adoperarsi per configurare la propria soluzione partendo dall'installazione base.

25 agosto 2013

Drop vs Reject

Questo articolo non sarà specificatamente applicabile a pfSense, ma piuttosto ai firewalls in genere.
Molti firewalls hanno come impostazione predefinita il drop silente dei pacchetti al posto del reject per le regole di negazione del traffico. Ma qual è la differenza? E' veramente meglio il drop del reject?
Se non vi siete mai posti la domanda la risposta vi sorprenderà! Quindi non perdiamo altro tempo ed incominciamo.

Categories

Alta Affidabilità (6) Autenticazione (11) Backup (2) Captive Portal (5) Configurazione (33) Content Filter (5) Firewall (5) IDS (1) Load Balancing (4) NAT (4) Networking (2) Sondaggi (8) Traffic Shaper (1) Troubleshooting (8) VLAN (3) VPN (20) Varie (32) Virtual IP (2) WiFi (5)

Nome

Email *

Messaggio *