DNS filter e web proxy su ambiente di 5000 pdl
-
Ciao a tutti
una "chiacchierata" con la community su un tema sempre all'avanguardia e chiedo supporto "a chi è sempre più bravo di te": in un ambiente di 5000 client un enorme collo di bottiglia è attualmente rappresentato da proxy squid + squidguard (fermo a xx anni fa..) con un wpad propagato via GPO.
La macchina squid è abbastanza performante (octacore 16GB RAM / hdd 200GB), nemmeno in transparent mode che rimbalza al firewall il blocco dei siti per IP/DNS, ma non per content filtering.
Vorrei un vostro consiglio, per magari installare pfSense con pfBlocker e Suricata per fare IDS/IDP oppure pi-Hole ma ho visto che pfBlocker è abbastanza simile alla 'moda del momento'
Attualmente come DNS esterni uso OpenDNS, internamente risolve il PDC.
A me piace l'HA di pfSense: cosa mi consigliate? non è male pi-Hole ma non vorrei fosse troppo poco maturo: a me servirebbe una soluzione (non commerciale) DNS e Web filtering con Inspection del traffico SSL/SSH.. ed insomma.. tutto quello che i grossi brand fanno; chiedo troppo?
Devo essere anche conforme alle normative AgID e GDPR/NIS.Vi ringrazio tanto per quello che mi scriverete, anche per un consiglio
Buona serata a tutti -
pfSense è sicuramente in grado di fare quello che chiedi, ci sono i pacchett aggiuntivi per squid con funzione di mitm se lo configuri per ispezionare ssl e squidguard (che puoi analizzare con una span + wireshark + certificato lato client verso squid) ma anche appunto pfblockerng-devel che va infatti molto di moda ultimamente. sulle mie interfacce uso senza problemi suricata che preferisco a snort ma c'e' anche quello se uno vuole, per i dns io uso bind9 su un server dedicato ma puoi configurare dns resolver (unbound) o dns forwarder (dnsmasq) e dirottare le richieste a l tuo PDC o a OpenDNS, non ho esperienza per il pi-hole ma vedo che nel forum inglese lo usano in parecchi ma i post erano prettamente in ambito soho/casalingo ..
non ho idea per le normative forse se chiedi nel forum internazionale ti sanno rispondere, ci sono molti europei
o vedi se qui qualcun altro sa darti chiarimenti in meritodimenticavo HA beh che dire funziona i due si sincronizzano e se il principale per qualche motivo "muore" il pfsense di backup prende il suo posto
l'unica cosa da tenere in considerazione è l'hardware su cui vorresti installarlo, tieni presente che pfSense è basato su freebsd quindi ha un po più di limitazioni per quanto riguarda la compatibilità hardware rispetto ad altri sistemi. io l'ho installato sotto esxi e le schede di rete.. possibilmente intel e non hai problemi
-
Anche io penso di usare Vmware, ho un ambiente di test e produzione; ma anche dei server fisici, ma è l'ultimo dei miei problemi, anche perché poi vorrei fare un altro tipo di approccio, con containers e K8s
Detto questo, mi interessava sapere quanto fosse utile usare ancora nel 2020 squid e squidguard che leggo che sono vecchi, motivo per cui volevo approcciarmi a tecniche più recenti, tipo un filtraggio DNS. Suricata è nativo sul fork OpnSense.. funziona bene anche su pfSense? Va bene anche solo Suricata o mi consigliate anche squid? Meglio in trasparenza o 2 separati per https e http?
Pi hole lo vedo un po' troppo giovane..Grazie per l'aiuto e la risposta
-
io personalmente non ho tutti quegli utenti per cui non uso squid ma 5000 client sono tanti e potrebbe farti ancora comodo la cache di squid. Suricata su pfSense funziona molto bene è costantemente aggiornato e mantenuto da bmeeks come puoi vedere dagli annunci sul forum inglese nella sezione IDS/IPS, è sempre presente e ti risolve eventuali problemi/dubbi rapidamente. Suricata e squid fanno due cose diverse puoi averli tutti e due. non saprei con tutti quegli utenti non ho esperienza magari per questo puoi chiedere nel forum inglese dove c'è più gente esperta, johnpoz è molto molto bravo anche se a volte un po rude ma se lo prendi dal verso giusto ti porta nel palmo della mano alla soluzione. pi hole non lo metterei neanche io in azienda, lo vedo ancora come un giocattolino da casa. pfblockerng invece è sicuramente da tenere in considerazione. comunque visto che hai un ambiente di testing io installere pfSense con squid in trasparente suricata e pfblockerng
-
@kiokoman grazie per le indicazioni
Tentenno ancora su squid perché la maggior parte del traffico oggi è TLS e non sarebbe cache_abile, quindi mi stavo chiedendo a che punto ne valesse la pena avventurarmi con un proxy e quali soluzioni alternative trovare attorno, ma sinceramente, non ne vedo
-
no infatti non ne conosco neanche io per quello io l'ho tolto alla fine
-
@kiokoman said in DNS filter e web proxy su ambiente di 5000 pdl:
no infatti non ne conosco neanche io per quello io l'ho tolto alla fine
e cosa usi?
-
ho solo una trentina di utenti, ho lasciato solo suricata e pfblockerng-devel come pacchetti aggiuntivi
-
@nnicola82 said in DNS filter e web proxy su ambiente di 5000 pdl:
Anche io penso di usare Vmware, ho un ambiente di test e produzione; ma anche dei server fisici, ma è l'ultimo dei miei problemi, anche perché poi vorrei fare un altro tipo di approccio, con containers e K8s
Detto questo, mi interessava sapere quanto fosse utile usare ancora nel 2020 squid e squidguard che leggo che sono vecchi, motivo per cui volevo approcciarmi a tecniche più recenti, tipo un filtraggio DNS. Suricata è nativo sul fork OpnSense.. funziona bene anche su pfSense? Va bene anche solo Suricata o mi consigliate anche squid? Meglio in trasparenza o 2 separati per https e http?
Pi hole lo vedo un po' troppo giovane..Grazie per l'aiuto e la risposta
Ciao, per il test sicuramente va bene vmware, ma per la produzione è meglio una macchina fisica, i motivi sono diversi, i più importanti sono:
- Sei indipendente da vmware e in caso di malfunzionamento dell'infrastruttura sei più libero;
- Maggiore sicurezza, hai connessioni fisiche differenti e non rischi che la violazione di un ambiente comprometta l'altro.
Per quanto riguarda il controllo della navigazione in entrata e uscita noi usiamo pfblocker con una decina di liste pubbliche più una nostra alimentata dal sistema SIEM, a questo ci aggiungiamo SNORT (ma anche suricata va bene)
Per policy di navigazione, il proxy è da eliminare come soluzione, soprattutto se devi implementare un MITM, una porcata che non ho mai potuto digerire. In più squid + squidguard ti ammazza letteralmente la macchina a meno di avere HW ben carrozzato. Ho visto connessioni da 100Mbps non raggiungere nemmeno i 10Mbps
La soluzione più easy sono i filtri basati su DNS, sul mercato ne trovi per tutti i gusti e per tutte le tasche. Unica pecca è che nella quasi totalità dei casi (a meno di avere un client su ogni pc) sei limitato ad un unica policy per tutta la tua rete poichè devi impostare come forwarder i dns di chi ti eroga il servizio.
Se hai voglia di sbatterti un po' ed hai una lista precisa dei siti da bloccare puoi sfruttare sempre pfblocker e costruirti una specie di filtro dns casalingo.Considerazione mia sul controllo della navigazione: nel era in cui chiunque ha in tasca uno smartphone per farsi gli affari suoi, il controllo della navigazione perde di senso o almeno lo perde se uno pensa di bloccare accesso a social, gaming ecc... Rimane il senso e l'importanza di bloccare siti malevoli, ma allora basta l'uso di pfblocker.
In ambito scolastico invece i requisiti sono altri ed in tal caso vale la pena attivare filtri DNS anche perchè di norma la rete degli studenti è semparata da quella ministeriale della segreteria e quindi anche il problema di avere due policy di blocco diverse decade perchè basta applicare il filtro solo alla rete studenti. Considera che in molte scuole hanno proprio un uscita su internet separata per le segreterie.Ciao Fabio
-
Ciao Fabio e grazie anche a te per il supporto!
all'interno dell'azienda (enterprise pubblica amministrazione, non una scuola ma un ambiente molto di moda in questo periodo...) abbiamo un DNS interno (del dominio AD, ovviamente) che utilizza in uscita già OpenDNS (sindacabile, lo so, ma meglio di niente..)
ci sono N tipi di utenti:
i fornitori che arrivano con il loro notebook e devono navigare //ovviamente non in dominio
e - di dominio -
gli utenti 'generici' delle uo che devono navigare solo sulla whitelist aziendale
gli utonti che devono navigare almeno sui siti non vietati ma non su certe categorie (es. social)
e i C-level che devono navigare quasi ovunque (es. anche sui social)per questa situazione un po' particolare, ma comune, sono indeciso sulla strada da percorrere
installerò sicuramente pfSense su HW fisico, in HA: ho solo dei Fujitsu Primergy Rx300 S7 disponibili, provo su quelli
il firewall già c'è, è di un vendor, ma senza IPS configurato (mancano diverse cose in realtà mai implementate) ma lo squid era interno e non avendo le possibilità di manutenerlo/comprare un web gateway, dovrei rifarloSe uso pfBlocker devo cambiare le policy di dominio affinchè i client di rete utilizzino il nuovo DNS che deve poi fare forward a quello di dominio oppure deve andare dopo il DNS interno?
attiverei comunque Suricata (perchè manca IPS sul FW)
e2Guardian invece?chiaramente, dato che alcuni utenti sono amministratori, io devo implementare una soluzione dove anche l'amministratore è obbligato ad usare i DNS aziendali (e/o il proxy)
-
se vuoi usare pfblockerng, devi usare unbound che puoi configurare in forward verso il tuo dns interno quindi i client devono usare il nuovo dns
e2guardian è un accrocchio non supportato e ultimamente dato che è poco aggiornato inizia a creare problemi, del tipo che non funziona più -
@nnicola82
Io quando uso filtri dns faccio il forward da AD verso pfsense che filtra tramite pfblocker o tramite DNS esterni. In questo modo non comprometto il funzionamento di AD.
Sul firewall blocco la possibilità di fare query dns verso l'esterno quindi uno può fare richieste solo ai DC o al firewall e se tenta di andare su altri dns viene rediretto su pfsense.Per quanto riguarda la macchina da usare per pfsense conta molto il processore, la ram solo se hai applicazioni particolari che girano o elevato traffico e poi le schede di rete che a mio avviso dovrebbero essere sempre delle Intel, garantiscono piena compatibilità e prestazioni migliori. Da evitare come la morte le realtek
Per la ram considera che ogni sessione pesa 1k quindi con 4GB hai 4 milioni di sessioni che però non corrispondono al numero di utenti. Per stare tranquillo calcola dalle 10 alle 20 sessioni utente quindi 10/20k utente a questi aggiungi almeno 500 MB per il solo sistema operativo però le variabili in gioco sono molte soprattutto se usi Alias molto corposi (e se usi pfblocker non può essere diversamente). Anche gli alias hanno un peso e soprattutto se fai uso di molte liste ti trovi velocemente con tabelle alias da 500.000 voci.
In una situazione come la tua valuterei l'installazione all'interno della rete di NxFilter (https://nxfilter.org/p3/), questo se installato internamente ti permette policy capillari. E' un filtro DNS, le liste per la categorizzazione dei siti hanno un costo che varia a seconda del fatto che siano quelle prodotte dallo sviluppatore o dal fatto che ti acquisti quelle prodotte da terzi. Il rapporto è 1:3 se non ricordo male 50$/anno quelle prodotte dallo sviluppatore e 150$ quelle di terzi (sul sito trovi i prezzi).
La licenza si basa sul numero di query dns, calcola che un utente medio fa circa 1000 query dns in una giornata, da li puoi partire a fare i tuoi conti per dimesionare filtro e licenza. La licenza base mi sembra sia per 15.000 query dns che loro calcolano per 50 utenti avendo portato il numero medio di richieste per utente a 3000 (sono un po'tante però varia dall'uso di interet che viene fatto). In questo devi fare attenzione ad eventuali server di posta che invece di query ne fanno a tonnellate e rischiano di bruciarti il plafond giornaliero di query
Spero di esserti stato d'aiuto
Ciao Fabio -
@fabio-vigano said in DNS filter e web proxy su ambiente di 5000 pdl:
@nnicola82
Io quando uso filtri dns faccio il forward da AD verso pfsense che filtra tramite pfblocker o tramite DNS esterni. In questo modo non comprometto il funzionamento di AD.
Sul firewall blocco la possibilità di fare query dns verso l'esterno quindi uno può fare richieste solo ai DC o al firewall e se tenta di andare su altri dns viene rediretto su pfsense.Io già uso OpenDNS dopo i dns di dominio
Per quanto riguarda la macchina da usare per pfsense conta molto il processore, la ram solo se hai applicazioni particolari che girano o elevato traffico e poi le schede di rete che a mio avviso dovrebbero essere sempre delle Intel, garantiscono piena compatibilità e prestazioni migliori. Da evitare come la morte le realtek
Realtek anche no!! Ho quei server .. 2x Fujitsu PRIMERGY Primergy RX300 S6, 2,66 GHz, E5640, 12 GB, DDR3-SDRAM
Per la ram considera che ogni sessione pesa 1k quindi con 4GB hai 4 milioni di sessioni che però non corrispondono al numero di utenti. Per stare tranquillo calcola dalle 10 alle 20 sessioni utente..
12/24GB dovrei avere
In una situazione come la tua valuterei l'installazione all'interno della rete di NxFilter (https://nxfilter.org/p3/), questo se installato internamente ti permette policy capillari. E' un filtro DNS, le liste per la categorizzazione dei siti hanno un costo che varia a seconda del fatto che siano quelle prodotte dallo sviluppatore o dal fatto che ti acquisti quelle prodotte da terzi. Il rapporto è 1:3 se non ricordo male 50$/anno quelle prodotte dallo sviluppatore e 150$ quelle di terzi (sul sito trovi i prezzi).
Quindi abbiamo scartato già Squid o un webproxy
per ispezionare HTTPS ? non serve perché uso un DNS filter?
Uso solo Suricata come IPS?Spero di esserti stato d'aiuto
Ciao Fabio
Sicuramente, Grazie -
@nnicola82
Le due macchine dovrebbero andare benissimo.
Ti direi di scartare squid e webproxy perchè se usi il dns filter è meglio.
Come ips puoi usare tranquillamente suricata.
Ciao Fabio -
concordo si, l'unica cosa io avevo suggerito di usare pfsense come server dns anziche l'AD, qui non me ne intendo perchè uso server linux con bind9 e suddivido le reti con le view/acl. faccio quindi una domanda visto che @nnicola82 deve fare soluzioni diverse in base all'utente.
se un utente "amministratore" visita un sito bloccato per gli altri utenti, l'ip viene messo nella cache dell AD quindi poi non c'e' il pericolo che un utente senza permesso che provi a visitare quel sito ottenga l'ip dalla cache del server dns nell AD invece di venire bloccato da pfblockerng ? suppongo dovrà perlomeno svuotare la cache del server dns prima di implementare questa soluzione -
@kiokoman said in DNS filter e web proxy su ambiente di 5000 pdl:
deve fare soluzioni diverse in base all'utente.
se un utente "amministratore" visita un sito bloccato per gli altri utenti, l'ip viene messo nella cache dell AD quindi poi non c'e' il pericolo che un utente senza permesso che provi a visitare quel sito ottenga l'ip dalla cache del server dns nell AD invece di venire bloccato da pfblockerng?come IP intendi l'IP del sito web visitato?
perché l'utente 'amministratore' 'autorizzato' a raggiungere quella categoria di sito oggi potrebbe avere ip 10.10.10.10 perchè in una vlan della struttura, domani potrebbe avere un 10.20.10.5 perchè sotto un altra vlan, perché in un'altra zona dell'azienda.
l'hostname rimane quello, l'ip del client rimane -
@kiokoman le possibili soluzioni per l'impiego di filtri dns sono 3:
- filtro esterno all'azienda. DNS AD forwarda a PFSENSE che forwarda al SERVIZIO. In questo caso hai un unica policy per tutti quindi non puoi differenziare per utente/macchina;
- filtro esterno all'azienda con agente. DNS AD forwarda a PFSENSE che forwarda al SERVIZIO per gli apaprati senza agente, diversamente è l'agente che sioccupa di interrogare AD o SERVIZIO;
- filtro interno all'azienda. DNS SERVIZIO forwarda a DNS AD. In questo caso il servizio normalmente permette policy per utente o per macchina e può essere basato su agente o su scambio di token di autenticazione per riconoscere l'utente che vuole navigare.
In ogni caso in questo tipo di filtri il TTL delle risposte DNS viene abbassato a meno di 1 minuto proprio per permettere di agire sulle regole tempestivamente senza fare flush della cache dei vari client e server. Quind se uno dovesse configurare in modo maldestro il servizio, ammesso che l'admin possa avere una policy tutta sua con meno restrizioni, la risoluzione operata dalle query dell'admin avrebbe vita breve.
Ciao Fabio
-
esatto fabio stavo giusto pensando che con la soluzione 1 non puoi differenziare ma fai una policy unica per tutti
il mio dubbio era appunto: supponiamo che l'utente "amministratore" visiti facebook,se fa la richiesta dns all'AD, l'AD risolve facebook.com e salva il dns nella cache. se un utente non amministratore richiede di andare su facebook e fa la richiesta di risolvere il dns all'AD questo risponde con l'ip che ha nella cache invece che richiedere nuovamente a pfsense e quindi pfblockerng non blocca la richiesta. quindi presumo che tu debba fare anche in modo che ciò non avvenga anche nel dns server abbassando TTL -
Di fatto avviene già perchè:
- nella soluzione 1 tutti gli utenti sono ugali;
- nella soluzione 2 tutto è mutuato da un agente;
- nella soluzione 3 hai il DNS con il servizio di filtering che in automatico abbassa il TTL e quindi non devi toccare il dns AD
Fabio
-
@fabio-vigano said in DNS filter e web proxy su ambiente di 5000 pdl:
Di fatto avviene già perchè:
- nella soluzione 1 tutti gli utenti sono ugali;
- nella soluzione 2 tutto è mutuato da un agente;
non ho la possibilità di installare in questo momento un agente.. siamo in 3 su 5k hosts e nemmeno via GPO, l'impatto sulle PDL in questo momento sarebbe da verificare e da pianificare, sceglierei soluzione "invisibile" anche perché l'agente sarebbe cmq a pagamento, vero?
- nella soluzione 3 hai il DNS con il servizio di filtering che in automatico abbassa il TTL e quindi non devi toccare il dns AD
sarebbe la soluzione migliore per il caso descritto, rispetto alla 1 ma in questa situazione
devo impostare su client non più il dns AD ma pfSense? mi sembrava nel post precedente che mi consigliassi questo scenario
giusto?
grazie! -
Si, puoi usare la soluzione 3 installando in casa una soluzione come nxfilter, nella guida ti spiegano come fare a configurarla in un ambiente AD e come fare a differenziare le policy
Ciao fabio -
@fabio-vigano quindi non devo installare più pfSense e pfBlockerng?
avevo inizialmente escluso nxfilter perché al momento non passano ordini di acquisto