Squid proxy met NTLM profielen

Pagina: 1
Acties:

  • Aragornwj
  • Registratie: Februari 2002
  • Laatst online: 02-02 10:23
Ik ben nu al een poos aan het rondzoeken op internet maar ik kan hier eigenlijk te weinig informatie over vinden. Om gelijk van wal te steken, dit is het hele verhaal waar ik mee bezig ben.

Ik ben een proxy systeem onder linux aan het bouwen waarbij gebruikers in het netwerk (mensen met een Windows XP machine) van deze proxy gebruik kunnen maken. Ik gebruik de ntlm authenticatie om te controleren hun username/password combo klopt (die van hun NT account) en om te checken of ze lid zijn van een bepaalde groep in de Active Directory (deze bepaald of ze uberhaupt recht hebben op internet). Vervolgens worden ze dan doorgestuurd naar de volgende squid-instance (die cached) en zo op het internet. Hier tussen in moet nog iets van een content-filter-proxy komen, wat dingen als streaming audio/video, warez, pr0n, etc. kan blokkeren. Ik zat hierbij te denken aan DansGuardian, squidGuard oid. Het probleem is nu, er moet een check komen of ze in een bepaalde groep gebruikers zitten (ik noem de groep systeembeheer, magement) om te bepalen of hun content gefilterd moet worden. De noobs op de administratie krijgen dan toegang tot een behoorlijk restricted internet, terwijl systeembeheer :D alles zou moeten kunnen.

Hiervoor zou ik dus meerdere profielen moeten aanmaken (op basis van NTLM en dus hun locatie in de Active Directory) die bepalen of ze langs het content-filter moeten of niet. Het probleem is dat ik op geen enkele manier meerdere profielen kan aanmaken, of weet hoe ik ze moet aanmaken onder Squid. Daarnaast is het me ook niet duidelijk hoe ik een check ik kan bouwen en daarmee een andere parent_proxy op kan geven. Ben al 2 weken aan het zoeken op verschillende sites, goeie howto's en oplossingen gelezen, maar alleen maar 'policy's' die voor iedereen gelden, geen 'profiles' voor verschillende soort gebruikers op basis van NTLM.

Ik hoop dat iemand mij kan uitleggen of dit mogelijk is (onder Squid of een ander pakket), of dat ik echt zelf aan de slag moet om dit te ontwikkeln. Mijn programmeerkennis is aanwezig, maar bij lange na niet van die aard dat ik dit zo uit m'n mouw schud en dat ik er eigenlijk geen tijd voor heb.

MEEHH!!!!


  • capedro
  • Registratie: Oktober 2000
  • Laatst online: 17-12-2025

My weblog


  • Aragornwj
  • Registratie: Februari 2002
  • Laatst online: 02-02 10:23
Het probleem is op zich niet de authenticatie, die heb ik werkende via NTLM, maar de authorisatie, de juiste rechten geven aan een bepaald persoon. Ik kan dus al wel internet verlenen aan mensen die bij ons 'lid' zijn van de internet groep. Dat werkt prima. Ik kan met ntlm_auth een helper protocol gebruiken die dus checkt of ie dus lid is van die groep.
Tot zover geen problemen. Het probleem begint bij het geval dat ik meerdere checks wil maken, voor verschillende groepen.
Zitten ze alleen in de groep 'internet' -> restricted internet (content filtering toegepast)
Zitten ze in de groep 'systeembeheer' (en automatisch ook in de internet groep) -> plain unrestricted internet en dus geen content-filtering

Wat ik nu in squid heb staan is :
code:
1
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp  --require-membership-of=<SID van de internet groep>


Dit is dus voldoende om proxy toegang te verlenen tot de internet groep. Maar ik wil dus meerdere checks kunnen maken en dan doorleiden naar een andere proxy (de content-filtering proxy of de caching proxy)

tekening:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    \-/\/\/\/\/\/\/\-/
    /   Internet     \
    \-\/\/\/\/\/\/\/-/
            |
    -----------------
    | Squid Cache    |
    -----------------
            |
    -----------------
    | Content Filter |
    -----------------
            |
    -----------------
    |   Squid-ntlm   |
    -----------------
           /|\
            |
            |
            |
    -----------------
    |      USER      |
    -----------------


In het geval dat de user dus iemand van systeembeheer is moet squid-ntlm de squid-cache als parent-proxy nemen, in plaats van het content-filter-proxy-ding...

[ Voor 7% gewijzigd door Aragornwj op 07-09-2006 12:40 ]

MEEHH!!!!


  • Keeper of the Keys
  • Registratie: Augustus 2002
  • Laatst online: 14-01 12:20
Ik weet niet zeker of dit ook voor NTLM werkt maar je zou een acl kunnen maken van allowed users oid en dan dubbele access regels hebben (dus als aan voorwaarde X en Y (of !Y) wordt voldaan deny/allow etc.)

  • Aragornwj
  • Registratie: Februari 2002
  • Laatst online: 02-02 10:23
Dat is naar mijn idee mogelijk, maar het lost uiteindelijk mijn vraagstuk niet op. Ik wil aan de hand van die acl dan de content-filter-proxy kunnen overslaan en dus een andere parent-proxy opgeven. Dit kan dan weer niet op basis van een acl (als ik mijn huiswerk goed gedaan heb :))

Daarnaast wil ik meerdere profielen kunnen aanmaken wat content filtering betreft. Van geen, weinig tot veel filtering.

Waar ik wel over heb zitten denken is het maken van een scriptje wat (bijvoorbeeld) elk uur de AD aanspreekt, kijkt wie er in welke groep zit, dit wegschrijft naar een plain-text file of een database en aan de hand van die lijsten het content-filteren regelt. Maar is dit laatste ook mogelijk? Kent er iemand een open-source content filter die werkt op basis van profielen of verschillende restricties voor verschillende gebruikers? Dan content filter moet dus sites kunnen blokeren (blacklisten), streaming audio/video kunnen blokkeren (kijken naar headers), virusscan toepassen (fabrikant maakt voorlopig nog niet uit) en het liefst ook p2p/instant messaging (welke over poort 80 of 443 wordt getunneld) kunnen blokkeren.

Dit laatste mag ook door 2 losse instances/stukken software worden opgelost. Als iemand mij hiermee kan helpen, heeeel graag

//offtopic
Hrrm, kom er nu wel achter dan mijn vraagstuk ineens een heel stuk groter wordt. :)

MEEHH!!!!


  • Keeper of the Keys
  • Registratie: Augustus 2002
  • Laatst online: 14-01 12:20
Op zich zou je je content filter ook via squid kunnen doen, weer met acls, in dat geval is het zo dat squid bij de eerste acl die 'waar' is zal stoppen met het doorlopen van de regels.

Dus als je de regel om de admins alles te laten zien voor alle content filterende regels zet dan zien de admins alles en de rest doorloopt wel alle content filtering.

  • Aragornwj
  • Registratie: Februari 2002
  • Laatst online: 02-02 10:23
Hrrm, op zich is dit wel een idee inderdaad. Ik zal het vandaag eens gaan proberen, bedankt!

MEEHH!!!!

Pagina: 1