Installazione e Configurazione del Web Proxy Squid + Content Filtering in OPNsense

da | Lug 14, 2025

 

In un mondo sempre più connesso, il controllo e la gestione del traffico Internet sono diventati elementi fondamentali per garantire sicurezza, efficienza e produttività all’interno di reti aziendali, scolastiche o domestiche. In questo contesto, OPNsense, una potente distribuzione firewall open source basata su FreeBSD, offre strumenti avanzati per filtrare contenuti e monitorare l’utilizzo della rete.

Tra le sue funzionalità più apprezzate spicca Squid, un proxy web integrato che, insieme a meccanismi di content filtering, consente di implementare un controllo granulare sulla navigazione web. In questo articolo vedremo come installare e configurare il Web Proxy Squid in OPNsense, abilitando al contempo il filtro dei contenuti per bloccare siti indesiderati, migliorare la sicurezza della rete e ottimizzare la banda disponibile.

Se stai cercando una soluzione solida e personalizzabile per il controllo della navigazione, sei nel posto giusto.

PREREQUISITI

Installazione e Configurazione Base di OPNSense

UPDATE DEI PACCHETTI

Accedere all’interfaccia web di OPNSense quindi procedere con l’aggiornamento degli updates

Cliccare su Click to view pending updates

Se ci sono aggiornamenti da fare dovremmo visualizzare una schermata come quella sovrastante. Cliccare Close per proseguire

Andare al fondo della pagina e cliccare Update

Cliccare OK per procedere

ATTENZIONE: la maggior parte delle volte, al termine degli aggiornamenti OPNSense viene riavviato

Attendere qualche istante fino al termine dell’aggiornamento

Se è andato tutto a buon fine dovremmo vedere una schermata come quella sovrastante

INSTALLAZIONE DEL PLUGIN OS-SQUID

A questo punto possiamo procedere con l’installazione del Web Proxy Squid

Sempre dalla sezione firmware selezionare il tab Plugins

Individuare il plugin os-squid come mostrato nell’immagine sovrastante quindi cliccare sul + per installarlo

Se è andato tutto a buon fine dovremmo visualizzare il seguente output:

 

Dalla schermata dei plugins dovremmo visualizzare il plugin installato

CONFIGURAZIONE DEL SERVIZIO SQUID

Sempre dalla web gui selezionare dal menù di sinistra Services

Individuare la voce Squid Web Proxy

Di seguito una descrizione delle opzioni del General Proxy Settings:

Modalità e Aiuto

Advanced mode

: Mostra impostazioni avanzate, utili per utenti esperti che vogliono un controllo fine della configurazione.

Full help: Abilita una descrizione completa delle opzioni nella GUI, utile per comprendere ogni singola voce.

Impostazioni Generali Proxy

Enable proxy

: Attiva il servizio proxy (generalmente Squid). Una volta abilitato, il traffico configurato passerà attraverso questo proxy.

User error pages: Mostra pagine di errore personalizzate e user-friendly per l’utente finale quando si verificano problemi (es. accesso negato, timeout, ecc.).

Porta ICP

ICP port

: (Internet Cache Protocol) Porta usata per comunicazioni tra proxy (es. caching peer). Usata in ambienti con più proxy per cooperazione cache.

Logging Accessi

Enable access logging

: Abilita la registrazione degli accessi (chi accede, a cosa, quando) al proxy.

Access log target: Destinazione dove salvare i log di accesso. Tipicamente su file o sistema remoto (Syslog, ecc.).

File: Specifica che i log di accesso devono essere salvati localmente su file.

Logging Cache/Store

Enable store logging:

Abilita il logging dei dati salvati nella cache. Utile per analizzare cosa viene memorizzato localmente.

Access Log – Esclusioni

Ignore hosts in access.log

: Elenco di host (o IP) da escludere dalla registrazione degli accessi. Utile per evitare log di dispositivi interni o trusted.

DNS Alternativo

Use alternate DNS-servers

: Permette di specificare server DNS alternativi che verranno usati dal proxy invece di quelli di sistema.

Header HTTP

Use Via header:

Include l’intestazione Via nelle richieste HTTP, che mostra il percorso della richiesta (utile per debug o trasparenza, ma può essere disabilitato per privacy).

X-Forwarded-For header handling: Specifica come trattare l’intestazione X-Forwarded-For, che mostra l’IP originale del client.

Default: Lascia il comportamento standard di Squid (di solito aggiunge l’IP del client alla catena di IP).

Identificazione e Privacy

Visible Hostname:

Nome host del proxy visibile nelle intestazioni HTTP e nelle pagine di errore.

Administrator’s Email: Indirizzo email dell’amministratore visualizzato nelle pagine di errore del proxy.

Suppress version string: Nasconde la stringa di versione del software proxy nelle intestazioni HTTP. Utile per motivi di sicurezza (evita informazioni a potenziali attaccanti).

Timeout e Formattazione URI

Connection Timeout

: Tempo massimo (in secondi) prima che una connessione venga interrotta per inattività o lentezza.

Whitespace handling of URI: Definisce come il proxy gestisce gli spazi vuoti negli URL.

Default: Segue il comportamento predefinito (di solito codifica o rifiuta URL malformati).

Monitoraggio e Stato

Enable pinger

: Abilita un servizio interno che esegue ping ai server originari per verificarne la disponibilità. Migliora la gestione dei failover o delle risposte lente.

Di seguito una descrizione delle opzioni della Local Cache Settings:

Memoria e Cache RAM

Memory Cache size in Megabytes (es. 256)

: Quantità di RAM dedicata alla cache degli oggetti (es. pagine web, file). Più RAM significa maggiore velocità di risposta per contenuti richiesti frequentemente.

Enable local cache: Abilita la cache su disco (non solo in RAM), permettendo di memorizzare contenuti localmente e servirli anche dopo riavvii o a distanza di tempo.

Cache su Disco

Cache size in Megabytes (es. 100):

Spazio su disco allocato per la cache. Valore troppo basso limita l’efficienza della cache; valore troppo alto occupa spazio eccessivo.

Cache directory location (/var/squid/cache): Percorso sul filesystem dove vengono salvati i dati della cache su disco. Può essere modificato per puntare a un disco dedicato o con più spazio.

Timeout e I/O su Disco

Disk I/O Timeout for Swap Operations (msec):

Tempo massimo (in millisecondi) per operazioni di I/O disco durante il salvataggio (swap) degli oggetti. Valori troppo bassi possono causare timeout; troppo alti rallentano il sistema.

Disk I/O Timeout for Swap Operations (swaps/sec): Frequenza massima di operazioni di swap consentite al secondo. Aiuta a regolare il carico sul disco in caso di cache molto attiva.

Ottimizzazione e Limiti

Cache Database-Record Size (bytes):

Dimensione in byte dei record nel database cache. Ogni oggetto salvato occupa almeno questa quantità di spazio. Un valore ottimale bilancia tra velocità e uso del disco.

Maximum object size (MB): Dimensione massima (in megabyte) di un singolo oggetto che può essere salvato su disco. Es.: se è impostato a 10 MB, un file da 20 MB non verrà memorizzato.

Maximum object size in memory (KB): Dimensione massima (in kilobyte) di un oggetto che può essere salvato in RAM. Serve a evitare che oggetti troppo grandi occupino tutta la cache in memoria.

Modalità Cache in Memoria

Memory cache mode (Default):

Modalità di caching in memoria.

Default: Squid gestisce in automatico.

Altre modalità (se disponibili) potrebbero includere opzioni più aggressive o conservative per scenari specifici.

Cache Specifiche per Sistemi Operativi

Enable Linux Package Cache:

Abilita il caching dei pacchetti dei gestori di pacchetti Linux (come APT, YUM, ecc.). Utile in ambienti con molti dispositivi Linux per evitare di scaricare gli stessi aggiornamenti più volte.

Enable Windows Update Cache: Abilita il caching degli aggiornamenti di Windows (tramite Windows Update). Molto utile in ambienti aziendali o scolastici con molte macchine Windows.

Di seguito una descrizione delle opzioni del Traffic Management Settings:

Enable traffic management: Attiva la gestione del traffico proxy. Quando abilitato, consente di impostare limiti su download/upload, velocità globale o per singolo host.
Utile per:

  • evitare congestioni di rete
  • limitare l’uso eccessivo da parte di alcuni utenti
  • controllare il consumo di banda in ambienti condivisi (es. scuole, uffici)

Maximum download size (kB):

Limita la dimensione massima di un file scaricabile attraverso il proxy. Ad esempio, impostando 50000, un utente non potrà scaricare file oltre i 50 MB.
Utile per:

  • evitare download pesanti (film, ISO, backup)
  • risparmiare banda o storage

Maximum upload size (kB):

Limita la dimensione massima dei file caricabili verso l’esterno (es. tramite form web, upload su cloud). Es.: 10000 impedisce upload oltre i 10 MB.
Utile per:

  • evitare abusi
  • ridurre traffico uscente non autorizzato

Overall bandwidth throttling (kbps):

Imposta un limite massimo di banda per tutto il traffico proxy, sommato. Ad esempio, con 10000 kbps (10 Mbps), tutti gli utenti condividono quel limite complessivo. Utile per garantire che il proxy non saturi l’intera connessione internet.

Per host bandwidth throttling (kbps): Limita la velocità di download/upload per ciascun host/client collegato al proxy. Ad esempio, 1000 kbps limita ogni utente a 1 Mbps.
Serve a:

  • distribuire equamente la banda
  • impedire che singoli utenti monopolizzino la rete

Di seguito una descrizione delle opzioni del Parent Proxy Settings:

Enable Parent Proxy: Attiva l’uso di un proxy “genitore” (Parent Proxy) Il traffico gestito dal proxy locale viene inoltrato a un altro proxy (a monte).
Questo è utile in scenari come:

  • multi-livello di filtraggio (es. primo proxy locale per caching, secondo per content filtering)
  • ambiente aziendale dove l’accesso a internet passa obbligatoriamente da un proxy centrale

Host:

Indirizzo del Parent Proxy (hostname o IP) Es: proxy.azienda.it o 192.168.1.10

Port: Porta TCP su cui il proxy genitore riceve connessioni
Valori comuni:

  • 3128 (default per Squid)
  • 8080, 8000, 8888 (proxy generici)

Enable Authentication:

Abilita l’autenticazione verso il parent proxy Se il proxy a monte richiede credenziali, questa opzione permette di configurarle.

Username / Password: Credenziali usate per l’autenticazione verso il proxy genitore.

⚠️ Queste vengono inviate in chiaro, quindi il collegamento al parent proxy dovrebbe essere trusted o all’interno di rete locale/VPN.

Local Domains: Elenco di domini che devono essere gestiti localmente (non passare al parent proxy) Separati da virgola o riga. Questo serve per evitare che richieste verso servizi interni escano sulla rete esterna. Esempio: .lan, .miodominio.local, .azienda.interna

Local IPs: Lista di indirizzi IP (o subnet) da gestire direttamente, senza passare dal parent proxy.
Es: 192.168.0.0/24, 10.0.0.1

Serve per:

  • evitare che traffico interno venga inoltrato inutilmente
  • migliorare prestazioni e sicurezza

Di seguito una descrizione delle opzioni del General Forwarding Settings:

Proxy Interfaces: Interfacce di rete su cui il proxy sarà attivo.Seleziona qui le interfacce da proteggere/filtrare (es. LAN, Loopback, OPT1, ecc.). Il proxy intercetterà solo il traffico proveniente da queste interfacce.

Proxy Port: Porta TCP su cui ascolta il proxy HTTP. Predefinita: 3128 Da usare nei client se configuri il proxy in modalità manuale (non trasparente).

Enable Transparent HTTP Proxy: Attiva il proxy trasparente per HTTP. Il traffico HTTP (porta 80) verrà intercettato automaticamente, senza configurare il proxy nei browser/client. Richiede una regola NAT di redirect dal firewall (spesso OPNsense lo fa automaticamente).

Enable SSL inspection: Abilita l’intercettazione HTTPS (MITM) tramite ispezione SSL. Intercetta anche il traffico cifrato (HTTPS su porta 443), permettendo filtraggio, log e caching.

ATTENZIONE: Richiede un certificato CA personalizzato, da installare nei client come trusted, altrimenti compariranno errori nei browser.

Log SNI information only: Registra solo le informazioni SNI (Server Name Indication) dai flussi HTTPS. Utile se non vuoi decifrare completamente il traffico SSL, ma vuoi sapere quali domini sono stati contattati. Molto meno invasivo, ma non consente filtraggio su contenuti interni alle pagine.

SSL Proxy Port: Porta sulla quale Squid ascolta per le connessioni HTTPS intercettate. Default: 3129 Usata solo in modalità trasparente con ispezione SSL.

CA to use: Seleziona il certificato CA (autorità certificatrice) da usare per firmare i certificati intercettati. Questo certificato deve essere installato nei client come trusted, altrimenti i browser bloccheranno la connessione per “certificato non valido”.

SSL no bump sites: Elenco di siti o domini da escludere dall’ispezione SSL.

Utilissimo per:

  • Siti sensibili (es. banche, sanità, e-mail)
  • Siti che non tollerano il MITM (es. alcuni usano tecniche anti-inspection)

Formato:

.paypal.com
.intesa.it
.google.com

Number of Squid workers: Numero di processi Squid da avviare. Default: 1 Aumenta in base a CPU core o numero di utenti per migliorare prestazioni.

SSL cache size: Dimensione della cache SSL (in MB) per oggetti decifrati. Più grande = maggiore riutilizzo e velocità su contenuti già visti.

SSL cert workers: Numero di processi dedicati alla generazione dei certificati SSL intercettati. Default: 5 Se hai molti utenti o picchi di traffico HTTPS, aumentarlo può migliorare le prestazioni e ridurre i ritardi.

Allow interface subnets: Permette alle subnet delle interfacce selezionate di accedere al proxy. Se disattivato, solo gli IP esplicitamente permessi potranno accedere. Serve per limitare l’uso del proxy solo a determinati segmenti di rete.

Di seguito una descrizione delle opzioni dell’ FTP Proxy Settings:

FTP Proxy Interfaces: Interfacce di rete su cui attivare il proxy FTP. Seleziona una o più interfacce (es. LAN, OPT1, ecc.) su cui il traffico FTP verrà intercettato. Solo il traffico proveniente da queste interfacce sarà sottoposto al controllo del proxy FTP.

FTP Proxy Port: Porta su cui ascolta il proxy FTP. Default: 2121. I client FTP devono connettersi a questa porta se il proxy viene utilizzato in modalità manuale (cioè, non trasparente).

Enable Transparent Mode: Abilita la modalità trasparente per FTP. Il traffico FTP (porta 21) viene intercettato automaticamente, senza bisogno di configurare manualmente i client.

⚠️ Richiede una regola di NAT (port forwarding/redirect) per funzionare correttamente, che spesso viene generata automaticamente da OPNsense.

Note importanti sul proxy FTP:

Il protocollo FTP è piuttosto vecchio e insicuro, quindi il proxy serve a:

  • Isolare e controllare connessioni attive/passive
  • Effettuare logging e auditing
  • Migliorare compatibilità NAT/firewall

⚠️ FTP con SSL (FTPS) non può essere ispezionato da proxy trasparenti (è cifrato punto-punto)

Di seguito una descrizione delle opzioni dell’ Access Control List:

Allowed Subnets: Sottoreti autorizzate a usare il proxy. Solo gli IP o subnet specificati qui potranno accedere a internet tramite proxy.

Esempio: 192.168.1.0/24, 10.0.0.0/8

NOTA BENE: Se lasci vuoto: tutti gli IP delle interfacce abilitate sono autorizzati.

Unrestricted IP addresses: IP che bypassano completamente tutte le restrizioni del proxy. Nessun filtro, lista nera o limite si applica a questi IP. Utile per dispositivi amministrativi, server o utenti “trusted”.

Banned host IP addresses: Elenco di IP vietati. Questi client non possono accedere a internet tramite il proxy. Viene negato l’accesso a tutte le destinazioni. Esempio: dispositivi compromessi, studenti puniti, ecc.

Whitelist access for banned hosts: Permette agli IP bannati di accedere solo ad alcuni siti inseriti nella whitelist. Se abilitato, gli IP in “Banned host IP addresses” potranno accedere solo a siti della whitelist, niente altro.

Whitelist: Elenco di domini/URL sempre consentiti, anche se sono nella blacklist. Ha priorità più alta della blacklist.

Formato: uno per riga

.google.com
.scuola.edu

Blacklist: Elenco di domini/URL sempre bloccati. Ha effetto su tutti gli utenti, tranne quelli in “Unrestricted IP addresses”. Es.: social, streaming, torrent, ecc.

Block browser/user-agents: Blocca accesso in base al campo “User-Agent” delle richieste HTTP. Puoi limitare l’accesso a browser particolari o applicazioni sospette.

Esempi comuni da bloccare:

curl
wget
python-requests
Mozilla/4.0

Block specific MIME type reply: Blocca le risposte che contengono specifici tipi MIME (contenuti). Utile per impedire il download di certi file (es. video, zip, eseguibili).

Esempi da bloccare:

application/x-msdownload
video/mp4
application/zip

Google GSuite restricted: Applica restrizioni per ambienti Google Workspace Education. Richiede che i client siano configurati con l’header X-GoogApps-Allowed-Domains.

YouTube Filter: Filtra YouTube tramite modalità restrittive forzate:

Opzioni: None, Moderate, Strict: Funziona forzando i parametri della modalità Restricted in YouTube.

Allowed destination TCP port: Porte TCP alle quali il proxy consente il traffico in uscita. Default: include le più comuni (80, 443, 21, 1025-65535 ecc.) Puoi rimuovere o aggiungere altre in base alle policy.

ATTENZIONE: limitare troppo può rompere servizi legittimi.

Allowed SSL ports: Porte consentite per le connessioni SSL (HTTPS) attraverso il proxy. Default: 443 Se usi servizi su porte non standard (es. 8443), aggiungile manualmente.

Di seguito una descrizione delle opzioni dell’ ICAP Settings:

Enable ICAP: Abilita l’uso di server ICAP esterni. Quando attivato, il proxy invia le richieste (o le risposte) web a un server ICAP per analisi/modifica.
Tipici usi:

  • Antivirus su traffico HTTP/HTTPS
  • Rimozione di contenuti vietati (es. pornografia, pubblicità)
  • Ispezione o modifica delle richieste (es. in ambienti aziendali/scolastici)

Request Modify URL:

Indirizzo ICAP del servizio che modifica/intercetta le richieste in uscita. Formato: icap://<IP>:<porta>/servizio

Esempio:

icap://192.168.1.100:1344/reqmod

Response Modify URL: Indirizzo ICAP del servizio che modifica/intercetta le risposte dal server web. Utile per controllare contenuti in arrivo (es. scansione antivirus, rimozione banner).

Default Options TTL (es. 60): Tempo in secondi di validità delle opzioni ICAP negoziate con il server. Determina ogni quanto Squid aggiorna le info dal server ICAP. Valore predefinito consigliato: 60.

Send Client IP: Invia l’indirizzo IP del client al server ICAP. Utile per logging, auditing o politiche basate sull’IP. Aggiunto come intestazione X-Client-IP.

Send Username: Invia il nome utente autenticato (se presente) al server ICAP. Molto utile se usi autenticazione proxy e vuoi fare policy o logging per utente.

Encode Username: Codifica il nome utente (base64) prima di inviarlo al server ICAP. Aggiunge un minimo livello di offuscamento (non sicurezza), usato da alcuni ICAP server.

Username Header: Nome del campo header HTTP usato per inviare l’username. Default: X-Username Puoi cambiarlo in base a come il server ICAP si aspetta di riceverlo.

Enable Preview: Invia una “preview” (anteprima) del contenuto al server ICAP prima di inviare tutto il corpo. Permette al server di decidere se accettare o bloccare la richiesta prima di processarla tutta. Riduce carico e latenza per contenuti che verranno scartati.

Preview Size (es. 1024): Dimensione dell’anteprima (in byte) inviata al server ICAP. Valori tipici: 1024–4096 Se il contenuto è più piccolo, viene inviato tutto.

Exclusion List: Lista di URL o domini da escludere dal trattamento ICAP. Serve per evitare che contenuti critici o problematici vengano modificati.

Esempi:

.microsoft.com
.google.com
/login

Di seguito una descrizione delle opzioni dell’ Authentication Settings:

Authentication Method: Metodo di autenticazione da usare per il proxy.

Local Database: usa gli utenti configurati localmente su OPNsense (System > Access > Users). Altri metodi possibili (non elencati ma disponibili) includono: LDAP, RADIUS, Active Directory, ecc.

Enforce Local Group: Restringe l’accesso solo agli utenti appartenenti a uno specifico gruppo locale. Esempio: se selezioni admins, solo gli utenti nel gruppo admins possono autenticarsi e usare il proxy. Utile per creare gruppi distinti come students, teachers, guests, ecc.

Authentication Prompt: Messaggio personalizzato che viene mostrato nel popup di autenticazione. Es.: “Autenticazione richiesta – Scuola X” Può aiutare a informare l’utente del motivo della richiesta di login.

Authentication TTL (hours): Durata della sessione di autenticazione in ore. Dopo questo tempo, l’utente dovrà autenticarsi di nuovo. Es.: 4 = login valido per 4 ore. Valori più brevi aumentano la sicurezza, ma possono essere fastidiosi per l’utente.

Authentication Processes: Numero di processi paralleli dedicati all’autenticazione. Default: spesso 5 o 10 Aumenta questo valore se hai molti utenti simultanei che devono autenticarsi. Se il valore è troppo basso, gli utenti potrebbero subire ritardi nel login.

Di seguito una descrizione delle opzioni dell’ SNMP Agent Settings:

Enable SNMP Agent: Abilita l’agente SNMP su OPNsense. Una volta attivato, il sistema risponderà alle richieste SNMP su una porta specifica, permettendo il monitoraggio remoto di:

  • utilizzo CPU, RAM, dischi
  • interfacce di rete
  • stato dei servizi
  • uptime, ecc.

SNMP Port:

Porta su cui l’agente SNMP ascolta le richieste. Default SNMP è 161, ma qui è impostata 3401 (probabilmente per evitare conflitti o per motivi di sicurezza). Il sistema di monitoraggio remoto dovrà essere configurato per interrogare OPNsense su questa porta.

SNMP Password: Community string SNMP (chiamata anche “password”, ma è simile a un nome utente pubblico). In SNMPv1/v2c è usata per autenticare l’accesso (non criptata). public è il valore predefinito più comune, ma è altamente raccomandato cambiarlo per motivi di sicurezza.

⚠️ Note di sicurezza:

SNMPv1 e v2c non cifrano i dati, quindi non usare su reti insicure. Usa una porta non standard (come 3401, già impostata) e cambia la community string (public) in qualcosa di robusto. Se possibile, filtrare con firewall quali IP possono accedere all’agente SNMP.

Di seguito una descrizione delle opzioni del Proxy Auto-Config sezione Rules.

Questa sezione serve a costruire regole condizionali per generare automaticamente un file proxy.pac personalizzato. Ogni regola PAC specifica quando e quale proxy usare in base a criteri come dominio, IP, tipo di traffico, ecc.

Ecco il dettaglio di ciascuna opzione:

Enabled: Attiva o disattiva la singola regola. Se disabilitata, la regola viene ignorata nella generazione del file PAC.

Description: Campo descrittivo per identificare la regola. Non ha effetti funzionali, ma è utile per organizzare le regole (es. Blocca Facebook, Proxy per utenti LAN, ecc.).

Matches: Criteri su cui si basa la regola. Qui puoi specificare valori da confrontare, come:

  • Host (es. .facebook.com, youtube.com)
  • URL (es. contiene /video/)
  • Client IP o myIpAddress()
  • Day/time, ecc.

Il contenuto di questo campo viene tradotto in una funzione JavaScript nel file PAC.
Esempi di match validi:

Join Type: Specifica come combinare più condizioni di match.
Valori:

  • And: tutte le condizioni devono essere vere
  • Or: almeno una condizione deve essere vera

Match Type:

Definisce il comportamento della regola:

  • If: se le condizioni sono vere, applica il proxy indicato
  • Unless: se le condizioni NON sono vere, applica il proxy

Serve a gestire regole inverse, tipo “usa il proxy eccetto per questi domini”

Proxies: Specifica quale proxy usare quando la regola è vera.
Formato:

PROXY 192.168.1.1:3128

oppure DIRECT per bypassare il proxy

Puoi anche usare più proxy in fallback:

PROXY 192.168.1.1:3128; PROXY 10.0.0.1:3128; DIRECT

Di seguito una descrizione delle opzioni del Proxy Auto-Config sezione Proxies.

Nella sezione “Proxies” del modulo Proxy Auto-Config (PAC) di OPNsense, puoi definire un elenco di proxy utilizzabili dalle regole PAC. Questo ti consente di riutilizzare proxy con nomi descrittivi e gestire facilmente configurazioni con uno o più proxy, fallback, o selezioni condizionali.

Ecco la descrizione dettagliata di ciascuna opzione:

Name: Nome identificativo del proxy, che viene usato nelle regole PAC. Deve essere unico e descrittivo, per esempio:

  • DefaultProxy
  • NoProxy
  • ProxySedeB

Questo nome verrà poi selezionato nelle regole (sezione “Rules”) nella voce Proxies.

Description: Campo opzionale per scrivere una descrizione leggibile (non usata tecnicamente). Serve per chiarire lo scopo o la posizione del proxy, ad esempio:

  • Proxy principale sede A
  • Accesso diretto per domini locali
  • Proxy di backup aziendale

Proxy Type:

Specifica il tipo di connessione che sarà generata nel file PAC:

Proxy: usa un proxy HTTP Genera una riga come: PROXY 192.168.1.1:3128

Direct: non usare alcun proxy, connessione diretta Genera: DIRECT

SOCKS: usa un proxy SOCKS (es. SOCKS 10.0.0.1:1080) Genera: SOCKS <host>:<port> (usato raramente in ambienti classici)

URL: Indirizzo del proxy da usare, in formato:

host:port (senza protocollo)

Esempi:

192.168.1.1:3128

proxy.scuola.local:8080

Lascia vuoto se scegli Direct come tipo

Di seguito una descrizione delle opzioni del Proxy Auto-Config sezione Proxies.

La sezione “Matches” nel modulo Proxy Auto-Config (PAC) di OPNsense serve per definire condizioni di confronto (match conditions), che possono essere riutilizzate nelle regole PAC. Queste condizioni determinano quando una determinata regola deve essere applicata.

Ogni “Match” definisce una condizione che può essere temporale, di rete, di URL o di dominio, e viene poi associata a una regola nel file .pac.

Ecco una spiegazione completa delle opzioni:

Name: Nome univoco per identificare il criterio di confronto (match). Verrà selezionato nella sezione “Rules” per costruire una condizione. Esempio: BloccoSocial, SoloOrariScolastici, AccessoInterno

Description: Descrizione facoltativa, utile per capire lo scopo del match. Es.: Blocca accesso a social network nelle ore di lezione.

Negate: Se attivo, inverte la condizione. Se il match è vero, viene considerato falso, e viceversa. Esempio: se URL Matches “*.facebook.com” è vero, con Negate diventa falso → quindi la regola si applica agli altri siti.

Match Type: Seleziona il tipo di condizione che vuoi creare. Le opzioni più comuni:

URL Matches: Verifica se l’URL richiesto corrisponde a un pattern (wildcard).

Esempio:

*facebook.com*
*.youtube.com/watch*

Host Pattern: Confronta il solo nome host della richiesta (senza path).

Esempio:

*.tiktok.com
login.google.com

URL Pattern
Confronta l’intero URL completo.

Esempio:

https://*.facebook.com/photo*

Network: Verifica se l’indirizzo IP del client rientra in una subnet.

Esempio:

192.168.1.0/24

Domain Level From / To: Permette di filtrare i domini in base alla profondità del nome a dominio.

  • .com ha livello 1
  • facebook.com ha livello 2
  • photos.facebook.com ha livello 3

Puoi usarlo per filtrare solo nomi brevi o lunghi (es. *.edu, ma non *.sub.edu).

Beginning Hour / Last Hour: Definisce un intervallo orario giornaliero in cui il match è valido. Esempio: 8–14 → regola attiva solo durante l’orario scolastico.

From Month / To Month: Intervallo di mesi in cui il match è attivo. Esempio: da Settembre a Giugno = periodo scolastico.

From Day / To Day: Intervallo di giorni della settimana per cui vale la condizione. Esempio: da Lunedì a Venerdì → esclude sabato/domenica.

Di seguito una descrizione delle opzioni del Remote Access Control Lists.

Nella sezione Remote Access Control Lists > Blacklist di OPNsense (usata con Squid proxy + ACLs), puoi configurare una blacklist remota da scaricare automaticamente e usare per bloccare siti, domini o categorie di contenuti.

Ecco una spiegazione dettagliata di ciascuna opzione:

Enabled: Attiva o disattiva l’uso di questa blacklist remota. Se disattivata, l’ACL non sarà scaricata né applicata. Utile per testare blacklist diverse o disattivarle temporaneamente.

Filename: Nome locale del file o archivio da scaricare. Usato come identificatore interno.

Tipico: shallalist.tar.gz, urlblacklist.tar.gz, ecc.

OPNsense estrarrà e leggerà i dati da questo file.

URL: Indirizzo da cui scaricare la blacklist.

Deve essere un link diretto a un file (es. .tar.gz, .zip, ecc.).

Ecco alcune blacklist URL gratuite compatibili con Squid (su OPNsense), spesso usate per il filtraggio di contenuti web. Queste blacklist sono solitamente in formato adatto (es. domains, urls, o regex) per l’integrazione con Squid.

1. Shallalist.de (molto usata)
URL: http://www.shallalist.de/Downloads/shallalist.tar.gz

  • Contiene categorie come: adult, gambling, hacking, ads, ecc.
  • Formato: compatibile con SquidGuard

2. Université Toulouse (UT1) Blacklists
URL: http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz

  • Più aggiornata di Shallalist
  • Categorie simili, ma con struttura più pulita

3. Mesd.k12.or.us
URL: http://ftp.mesd.k12.or.us/pub/squidGuard/contrib/blacklists.tar.gz

  • Meno aggiornata, ma utile per ambienti scolastici

4. SquidBlacklist.org (parzialmente gratuito)
URL: http://www.squidblacklist.org/downloads/squidblacklist.tar.gz

  • Accesso gratuito limitato – versioni premium disponibili

Username (optional):

Se l’URL della blacklist richiede autenticazione HTTP, puoi inserire qui il nome utente.

Alcuni servizi commerciali forniscono accesso protetto (es. urlblacklist.com).

Password (optional): La password associata all’username, se richiesta dal servizio blacklist remoto.

Categories (if available): Se la blacklist è suddivisa per categorie (es. “social”, “ads”, “porn”, “gambling”), puoi selezionare solo quelle che ti interessano.

OPNsense scaricherà tutte le categorie ma userà solo quelle indicate.

Se lasci vuoto, verranno usate tutte le categorie disponibili.

SSL Ignore Cert: Ignora errori nel certificato SSL del sito remoto durante il download della blacklist.

⚠️ Utile solo per testing o server interni con certificati self-signed.

Sconsigliato in produzione, perché può essere insicuro.

Description: Campo descrittivo facoltativo. Serve solo per identificare visivamente la blacklist nel pannello di controllo. Es.: Blacklist Shallalist, Lista siti vietati studenti, ecc.

Di seguito una descrizione delle opzioni del Remote Access Control Lists.

Di seguito una descrizione dell’ opzione Support.

Il pulsante “Reset all generated content (cached files and certificates included) and restart the proxy” in OPNsense, all’interno della configurazione del proxy (Squid), esegue una pulizia completa dei dati generati automaticamente dal proxy, seguita da un riavvio del servizio.

In dettaglio, questo pulsante:

  • Cancella tutti i contenuti generati automaticamente, inclusi:
  • File di cache su disco (oggetti memorizzati dal proxy)
  • Certificati SSL dinamici generati durante l’ispezione HTTPS (se l’ispezione SSL è attiva)
  • File PAC generati dinamicamente (se presenti)
  • File di configurazione temporanei
  • Riavvia il servizio proxy (Squid)
  • Applica da zero la configurazione corrente
  • Ricostruisce le directory di cache e gli oggetti interni

⚠️ Attenzione: Tutti i contenuti in cache andranno persi → può causare lentezza temporanea nei primi accessi, poiché tutto dovrà essere riscaricato da internet.

Se usi SSL Inspection, i certificati generati per i siti visitati verranno eliminati → verranno rigenerati alla prossima visita.

Non cancella blacklist/whitelist configurate manualmente, ma resetta le cache ad esse collegate.

CONFIGURAZIONE DEL PROXY SUI CLIENT

Per prima cosa, aprire le Impostazioni del sistema cliccando sul menu Start e poi sull’icona dell’ingranaggio, oppure premendo i tasti Windows + I.

Una volta dentro le impostazioni, selezionare la voce “Rete e Internet” dalla colonna di sinistra e poi clicca su “Proxy” nel menu che appare a destra.

Nella schermata del proxy troverai due sezioni: quella per la configurazione automatica tramite script (PAC) e quella per la configurazione manuale.

Se si sta usando un file PAC (fornito da un server OPNsense), puoi attivare l’opzione “Usa script di configurazione”, inserire l’URL del file (come http://192.168.1.1/proxy.pac), e salvare.

Questo farà sì che il sistema decida in automatico, secondo le regole contenute nel file, quando usare il proxy.

Se invece si vuol configurare il proxy manualmente, scorrere più in basso e attiva l’opzione “Usa un server proxy”.

A quel punto inserire l’indirizzo IP del proxy (che corrisponde all’IP del tuo OPNsense sulla rete LAN, ad esempio 192.168.1.1) e la porta su cui il proxy ascolta, che di solito è 3128 per HTTP.

Dopo aver inserito questi dati, clicca su Salva.

Se il proxy richiede autenticazione, la prima volta che apri il browser ti verrà chiesto di inserire il nome utente e la password.

Una volta fatto, la connessione passerà attraverso il proxy, e OPNsense potrà registrare, filtrare o limitare il traffico in base alle regole che hai configurato.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Servizi ICT
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore
  • Angelo Lauria  Autore
  • Edoardo Prot  Autore
  • Davide D’Urso  Autore
Raffaele Chiatto

Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi. Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare. Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.

Related Post

Installazione e Configurazione Base di OPNSense

  Nel panorama delle soluzioni firewall open source, OPNsense si distingue per la sua combinazione di potenza, flessibilità e facilità d’uso. Basato su FreeBSD e con un'interfaccia grafica moderna e intuitiva, OPNsense è una scelta eccellente sia per ambienti...

leggi tutto

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione