Captive portal + radius + squid + lightsquid
-
salve a tutti vi descrivo l'attuale situazione
pfsense 1.2 full
captive portal attivo con autenticazione RADIUS
free RADIUS installato
proxy SQUID installato in trasparent
lightsquid per estrarre i log del proxyil problema è: i log dello SQUID hanno al posto del nome l'inidirizzo IP del computer che naviga ed invece dovrei avere il nome dell'utente inserito nel server radius che il CP utilizza per l'autenticazione, come posso fare? è possibile incrociare i log del CP e delle SQUID così da avere la situzione tipo: "Pinco Pallino ha navigato qui il giorno tot" e non "192.168.1.2 ha navigato qui il giorno tot"…nn so se sono stato chiaro.
grazie a tutti.
-
Aspetta un attimo … scusa se l'autentificazione la fai fare al servizio di Captive Portal e non a Squid ovviamente questo non ne sapra' nulla della parte di autentificazione in quanto sono due servizi ben distinti con gestioni differenti (Captive serve per ridirigere il traffico su una determinata pagina dove solitamente c'è una richiesta di pwd --> se ok --> naviga [] Squid in parte fa la stessa (soprattutto se in trasparent!) ma non sa prima cos'è successo per cui non ha idea di che utente è stato utilizzato per Captive).
Differente è se abiliti l'autentificazione su SQUID allora qui si potrai vedere nel log non solo l'ip ma anche l'utente che è stato usato per autentificare quel determinato UID su quel PC.In oltre da quello che mi ricordo i log del captive di pf sono mooolto mooolto scarni (motivo per il quale tanti abilitano SQUID).
Incrociarli ovviamente è possibile ... a manina ... gli importi in un DB e ti fai le tue Query.
Che altro dire ... se trovi un altrà soluzione ovviamente faccelo sapre.
Ciaoz.-
Matteo
-
il problema è: i log dello SQUID hanno al posto del nome l'inidirizzo IP del computer che naviga ed invece dovrei avere il nome dell'utente inserito nel server radius che il CP utilizza per l'autenticazione, come posso fare? è possibile incrociare i log del CP e delle SQUID così da avere la situzione tipo: "Pinco Pallino ha navigato qui il giorno tot" e non "192.168.1.2 ha navigato qui il giorno tot"…nn so se sono stato chiaro.
Ho scritto un applicazione per gestire il billing/logging del captive portal, non posso pubblicarla in quanto il lavoro è stato fatto per terzi ma posso dirti l'approccio che ho seguito per quanto riguarda i log.
Rispetto alla tua architettura non sono utilizzati nè squid nè di conseguenza lightsquid, l'autenticazione avviene anche in questo caso su radius+sql.
Un demone lanciato allo startup sorveglia l'evoluzione di:
a) log di pf, quello che ottieni con il comando/usr/sbin/clog /var/log/filter.log
b) log del captive portal
/usr/sbin/clog /var/log/portalauth.log
Si poteva usare direttamente tcpdump ma ho ritenuto che fosse più leggero leggere quanto già prodotto dal sistema tramite clog. Nota… non è corretto utilizzare "cat" per leggere i log di pfsense.
Dal parsing di questi file abbiamo tutto il necessario ed opportunamente elaborato, scartando anche tutto quello che non serve, viene scritto in un db ad-hoc. I dati estesi dell'utente vengono letti direttamente dal radius server partendo da quanto ottenuto dai log.
Attenzione che sulle installazioni monitorate ho potuto riscontrare, come previsto, che la tabella di log arriva a milioni di record in pochi giorni. Serve una rotazione.Giusto in questi giorni partendo dalla stessa applicazione sto loggando anche gli eventi che rappresentano potenziali violazioni con l'obiettivo di disabilitare i relativi mac creando regole al volo o gli account radius a seconda del caso.
-
Wow IAX … non puoi propio postare nulla di quella "applicazione" ... un vero pecatto ... sarebbe un plug-in fantastico.
Stò facendo qualcosa di simile pure io ... ma proprio perchè lo faccio a gratis non posso dedicargli tutto il tempo che vorrei per cui è li che attenre una fine.Spero tu possa "rivelare" qualche altro dettaglio su questo "deamon".
Ciaoz.-
Matteo -
@Ma.S.Caos.-:
Spero tu possa "rivelare" qualche altro dettaglio
Vedo di rifletterci… la versione attuale sicuramente no anche perchè ha troppi legami con le loro personalizzazioni del radius e mi costerebbe lavoro aggiuntivo "scollare".
La primissima, che non è un daemon bsd nativo ma uno script php lanciato all'avvio e mandato in backgound, posso rilasciarla pubblicamente sempre dopo aver rimosso le parti più specifiche della commessa. Rimarrebbe comunque efficace per quanto riguarda il log.
Vedo di lavorarci sù nei primi giorni di agosto dopo aver chiuso le scadenze lavorative. -
Ottimo resta sotto inteso che se ti serve una mano sono disponibile … in php non sono molto forte (meglio gli script da shell e C o C++) :D
Attendo NEW :D
Ciaoz.-
Matteo
-
aspettiamo con ansia anche altre dritte!! tipo il cambio password per gli utenti!!!
buon lavoro ragazzi