PfSense: Squid + DansGuardian + Captive portal



  • Ho un bel grattacapo da risolvere… e poca esperienza con PfSense.

    SITUAZIONE ATTUALE

    • 1 Server Ubuntu con funzioni di Dhcp, Proxy Squid e Dansguardian
    • 3 tipologie di client (o di accesso ad internet):
    1. CLIENT_LAB
      Proxy: IP server + porta 8080 per filtraggio contenuti con DansGuardian
      IP dei client assegnati dal dhcp, senza richiesta autenticazione

    2. CLIENT_CLASSE
      Proxy: IP server + porta 3128 per autenticazione Squid
      IP dei client statici

    3. WIFI client
      4 Access point che assegnano ip da dhcp del server + filtri mac address

    SITUAZIONE DESIDERATA

    • 1 Server Ubuntu con funzioni di Dhcp
    • 1 Firewall Pfsense (eth1 lan, eth2 wan) con Proxy Squid, Dansguardian e Captive Portal
    • 2 tipologie di client (o di accesso ad internet):
    1. CLIENT_LAB
      Proxy: IP del server, ma traffico rediretto verso lan firewall, che funge così da Dansguardian per il filtro dei contenuti
      IP dei client assegnati da dhcp, senza richiesta autenticazione

    2. CLIENT_CLASSE e WIFI client
      Proxy: IP del server ma traffico rediretto verso lan firewall, che funge così da "autenticatore"
      IP CLIENT_CLASSE statici, IP WIFI client assegnati da dhcp, per

    Ho però alcuni dubbi in merito:
    a) per non far richiedere autenticazione e, allo stesso tempo, filtrare il contenuto della navigazione, gli IP dei CLIENT_LAB vanno aggiunti in PfSense\Services\Proxy server\ACLs sotto "Unrestricted IPs"?
    b) vorrei evitare di aggiungere filtri mac sui 4 access point ma per far questo mi occorre un Captive Portal, che non permette autenticazione con squid, ma solo nessuna, locale (di PfSense) o Radius.
    E' possibile che i CLIENT_CLASSE e i WIFI client prendano ip dal dhcp server ma vengano autenticati da Captive Portal? Per far questo intuisco che vada aggiunto il Radius server e anche configurato Squid con tale autenticazione su PfSense. Non mi è chiaro però che tipo di configurazione occorra e se ciò non influisce su DansGuardian ovvero sulla navigazione filtrata dei CLIENT_LAB.

    Avete qualche idea? Grazie in anticipo per l'attenzione.



  • Ciao,
    ho una configurazione simile in una scuola quindi si può fare e ci sono diversi modi per farla.
    Prima cosa mi chiedo perchè vuoi usare l'IP del server come proxy, non è più semplice far in modo che ogni client parli direttamente con il firewall?
    Seconda cosa utilizzerei 4 VLAN differenti (o se preferisci/puoi attiva 4 interfacce LAN: SERVER, WIFI, LAB e CLASSE)
    Se non hai necessità particolari il dhcp lo farei fare direttamente a pfSense così hai 4 sottoreti ognuna con il suo dhcp ammesso che serva.
    La configurazione che vuoi fare richiede un po'di attenzione e molta pianificazione.
    Ciao



  • Ciao,
    non potrei, credo, perché il firewall ha due sole eth: wan con ip pubblico per il web e lan con ip privato che dialoga tramite switch con il server su altra sottorete rispetto alla lan dei computer.
    L'ideale sarebbe appunto avere più eth su fw, ma non posso montarne per mancanza di spazio e soldi…  
    Ho necessità che il dhcp lo faccia il server perché si tratta di un LTSP Ubuntu. Inoltre gli access point devo montarli per forza su 4 switch diversi, per coprire l'intero edificio.
    Mi sembra che l'unica soluzione sia avere 2 dhcp server che potrebbero convivere solo con mappature statiche degli ip/mac in base alla tipologia client (dhcp server ltsp per i client con pxe da rete, dhcp di pfsense per il resto), ma solo in teoria. Ci sarebbe però un bel traffico di rete...
    Temo di dover rinunciare, all'idea che faccia tutto Pfsense.

    Grazie mille



  • Non puoi fare neanche vlan?
    Per prima cosa io abbandonerei il captiveportal e metterei l'autenticazione su squid così elimini un primo pezzo.
    Per l'autenticazione crercherei se possibile di avere un server radius.
    Ciao



  • Purtroppo non ho molta dimestichezza con le vlan, devo anche verificare che gli switch (di diverse marche e modelli) le supportino.
    Mi sembra che abbandonare il captive portale nella mia situazione sia inevitabile. Peccato per il wifi.
    Squid supporta autenticazione none (nel senso di nessuna ovvero transparent proxy, vero?), local (non mi è chiaro se intenda la propria o quella nativa di pfsense), LDAP e NTDomain (che non userò) e Radius.
    Ma Radius si integra bene con Dansguardian ovvero si interfaccia indipendentemente dal tipo di autenticazione? Lo chiedo perché nella mia rete ho necessità di avere client che non richiedano autenticazione ma siano filtrati da dansguardian (ltsp fatclient con ip dinamico, per gli alunni) e client che richiedano autenticazione ma non siano filtrati (installazioni locali con ip statico, per gli insegnanti), tutti nella stessa sottorete 192.168.1.x.
    Mal che vada potrei tenere la sola autenticazione squid, come ora, ma devo sperimentare in ambiente di test se replica il tutto.
    Provo in questi giorni.
    Grazie per le infos.



  • Ho escluso il captive portal, ma anche Radius perché nella mia situazione dovrebbe bastarmi l'autenticazione squid (local).
    I client prendono ip dal dhcp della eth1 del server che però risiede su altra sottorete rispetto al firewall pfsense:
    Server Ubuntu
    Eth1 192.168.100.1 (dhcp per i client), Eth2 192.168.1.1 (per dialogare con fw pfsense)
    Firewall Pfsense
    Eth1 lan 192.168.1.253 (per dialogare con il server), Eth2 wan x.x.x.x (ip pubblico)

    Per far navigare i client sia senza (porta 8080 filtrata da dansguardian) che con autenticazione squid (porta 3128), come devo fare secondo voi se i client prendono ip della rete 192.168.100.x e non della rete 192.168.1.x del firewall?
    La cosa mi sta facendo, per ora, sclerare…  :-\



  • Ciao,
    il modo più banale è cambiare la subnet in 255.255.0.0 così hai tutta la classe 192.168.0.1 - 192.168.254.254
    Ciao



  • Scusa ma c'è un motivo per cui non fai fare da DHCP server a pfSense? A differenza di altri firewall la sezione DHCP server è anche implementata in modo abbastanza completo..



  • @fabio.vigano:

    Ciao,
    il modo più banale è cambiare la subnet in 255.255.0.0 così hai tutta la classe 192.168.0.1 - 192.168.254.254
    Ciao

    provo così, grazie.

    Mi viene però un dubbio su tale configurazione: se così si "vedono" le due sottoreti fra loro, cosa comporterebbe invece mettere le due eth del server sulla stessa classe? es. eth0 192.168.0.1 e eth1 192.168.0.2. Non è un po' la stessa cosa?



  • @Gabri.91:

    Scusa ma c'è un motivo per cui non fai fare da DHCP server a pfSense? A differenza di altri firewall la sezione DHCP server è anche implementata in modo abbastanza completo..

    ciao,
    perché il server è un ltsp è deve assegnare ip dinamici per far partire i client in modalità fat o thin.



  • Si può fare su DHCP Windows:
    https://help.ubuntu.com/community/UbuntuLTSP/LTSPWindowsDHCP

    Quindi credo funzioni anche su DHCP BSD..



  • @demo:

    @fabio.vigano:

    Ciao,
    il modo più banale è cambiare la subnet in 255.255.0.0 così hai tutta la classe 192.168.0.1 - 192.168.254.254
    Ciao

    provo così, grazie.

    Mi viene però un dubbio su tale configurazione: se così si "vedono" le due sottoreti fra loro, cosa comporterebbe invece mettere le due eth del server sulla stessa classe? es. eth0 192.168.0.1 e eth1 192.168.0.2. Non è un po' la stessa cosa?



  • @Gabri.91:

    Si può fare su DHCP Windows:
    https://help.ubuntu.com/community/UbuntuLTSP/LTSPWindowsDHCP

    Quindi credo funzioni anche su DHCP BSD..

    Credo mi incasinerebbe l'avvio dei fatclient per i servizi nbd e tftp.



  • Escludendo a priori il captive portal, ho impostato il bond del server sulla stessa subnet della lan di pfsense.
    Adesso quindi la subnet è solo una e i client dialogano direttamente con il fw pfsense come proxy.
    Il boot dei fatclient avviene sempre da server ltsp. Ho risolto così anche se non trovo un modo per far autenticare i client wifi che hanno impostazione automatica del proxy. Ma apro un thread a parte per questo.



  • @demo:

    Escludendo a priori il captive portal, ho impostato il bond del server sulla stessa subnet della lan di pfsense.
    Adesso quindi la subnet è solo una e i client dialogano direttamente con il fw pfsense come proxy.
    Il boot dei fatclient avviene sempre da server ltsp. Ho risolto così anche se non trovo un modo per far autenticare i client wifi che hanno impostazione automatica del proxy. Ma apro un thread a parte per questo.

    No, non riesco in alcun modo a far autenticare gli utenti che nel browser hanno impostazione automatica del proxy. In pratica navigano liberamente e senza autenticazione come se squid fosse in transparent mode (e non lo è) e non viene tenuta traccia del traffico nei log.
    Un bel buco sulla sicurezza.
    Già provato con PAC/WPAD ma senza risultato.
    A qualcuno è già successo?