A SquidMan egy Mac OS X portja a népszerű és nyílt Squid web proxynak. A következő rövid cikkben nézzük is meg, hogy alapvetően mit és hogyan tudunk beállítani a SquidMan-ben, és hogyan lehet egy Mac OS X Server Open Directory adatbázisához integrálni LDAP-on keresztül.
Sajnos a Mac OS X Server mostani verziói nem integrálnak Squid web proxy-t. Az apache által kínált proxy funkció pedig sokakat nem nyugtat meg. Nézzük meg, mit tudunk összehozni akkor, ha SquidMan alkalmazással akarjuk ezt a hiányosságot megoldani.
Installáció
Először is el kell mennünk a SquidMan hivatalos weboldalára, ide és letölteni az elérhető legfrissebb verziót. Ez jelenleg a 3.0, ami Squid to 3.1.1 verziót tartalmazza.
A DMG file-t mountolni kell, és a Mac OS X rendszereknél megszokott módon drag and drop az /Applications mappába dobni.

A SquidMan egy keretrendszer, ami lényegében egy grafikus beállító framework-öt tartalmaz. Így első induláskor figyelmeztetni fog minket a SquidMan, hogy a squid alrendszer még nincs telepítve. Nem kell megíjjedni, maga a SquidMan is képes erre, csak kattintsunk az OK gombra, és adjuk meg az admin jelszavunkat.


Ezek után a SquidMan futni fog, és vele együtt a squid-ünk is.
Alap beállítási lehetőségek

A SquidMan alapból egy nagyon egyszerű kis ablakot dob fel, ami közli, hogy éppen milyen állapotban van a squid instance, illetve egy gombal leállíthatjuk vagy elindíthatjuk.
Érdekesebb, ha a menüben kiválasztjuk a SquidMan menüpontját.

Tools
Erre a menüpontra kattintva jön elő gyakorlatilag a log nézegető ablak:

Baloldalt hozzáférhetünk az access logokhoz, a system logokhoz, illetve a cache logokhoz. Lentebb pedig beindíthatjuk a logok rotálását, és üríthetjük ki a cache-t.
Squid Messages
Ezalatt a menü alatt a squid futásával kapcsolatos hibákat láthatjuk, bár ez a képernyő automatikusan is megjelenik ha probléma adódik.

Squid Reinstall
Amennyiben bármi gond adódna a squid instance-al, akkor lehetőség van újratelepítésére.
Squid Uninstall
Ha el akarjuk távolítani a SquidMan-t, akkor természetesen a külön feltelepített squid instance-t is el kell távolítanunk. Ez a menüpont arra való.
Preferences

A beállításoknál 5 fül található. Az elsőn (General) tudjuk az alap dolgokat beállítani. Úgy mint: milyen porton hallgasson a squid, milyen hostnévvel szerepeljen, mekkora cache legyen, illetve maximum mekkora elemeket mentsen el. Itt állíthatjuk be a késleltetett indulást és leállást, vagy hogy ha kilépünk a SquidMan-ból, akkor a squid instance is álljon le, vagy fusson tovább a háttérben.

A második menü a parent. Itt lehet konfigurálni, ha a Squid instance is egy Proxy szerveren keresztül tud csak kommunikálni. Erre viszont csak speciális esetekben lehet szükség.

A client részen tudunk címtartományok szerint engedélyezni a hozzáférést a proxy-hoz. Egy egyszerű hostot vagy akár címtartományt is felvehetünk.

A direct menüben lehet megadni azokat a weboldalakat, amelyeket azt szeretnénk, hogy a proxy kikerüljön és direktbe érjünk el.

A template az utolsó, de talán a legfontosabb rész. Ez a tényleges squid konfigurációs állomány. Egészen pontosan egy template-je, mert bizonyos információk változóként vannak jelölve benne, amik helyére az előzőekben beállított értékek fognak behelyettesítődni. Amennyiben valami egyedivel szeretnénk kiegészíteni a squid instance-t, akkor azt itt kell megtennünk. Viszont ügyeljünk arra, mit írunk ide, hisz amennyiben helytelen, vagy feldolgozhatatlan adatok kerülnek itt megadásra, akkor nem fog elindulni maga a squid. Talán pont ezért van egy restore to default gomb, amellyel vissza lehet állni a biztos, alap konfigurációs állományra.
Egyedi Access Controll Mac OS X Server Open Directory-el
Amennyiben már rendelkezünk Open Directory serverrel, akkor használjuk az abban található centralizált információkat.
Először is hozzunk létre a Workgroup Manager segítségével egy új felhasználói csoportot. Ez nálam proxy névre hallgat. Ezt a csoportot könnyen adminisztrálhatjuk, egyszerűen bővíthetjük, vagy csökkenthetjük a tagokat, ezzel a proxy szerverünk hozzáférését is beállítva.
Ha ez megvan, akkor már csak a squid-ot kell felkészíteni arra, hogy az Open Directory-nk LDAP adatbázisát használja. Ehhez két binárisra van szükségünk, amit sajnos a SquidMan nem tartalmaz. Valaki vagy fordít egy squid-et Mac OS X-re, és külön ezt a két file-t kinyeri, vagy én a szükséges két file-t feltöltöm ide.
Egy squid_ldap_auth és squid_ldap_group állományokról van szó. Ezeket másoljuk valamilyen olyan helyre, ahol a proxy szerverünk elérheti. Én az /usr/sbin könyvtárat választottam, de lehet akármi más is.
Ezek után menjünk a SquidMan templates részére és a template-hoz adjuk hozzá a következő sorokat:
auth_param basic program /usr/sbin/squid_ldap_auth -b „cn=users,dc=test,dc=hu” ldap.serverunk.hostneve.tld
auth_param basic children 5
auth_param basic realm Your Organisation Name
auth_param basic credentialsttl 5 minutes
external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -b „cn=groups,dc=test,dc=hu” -f „(&(memberuid=%v)(cn=proxy))” -h ldap.serverunk.hostne.tld
acl proxy_ldap external ldap_group proxy
http_access allow proxy_ldap
Akkor most nézzük szépen mi, micsoda. Az auth_param részek az authentikációért felelősek. Elsőként meg kell adnunk a scriptet, amit használni fogunk az azonosításhoz. Annak pedig az Open Directory DN-jét, illetve utána maga a LDAP server hostnevét vagy IP-jét.
A többi paraméter az azonosítás idejét, számosságát határozza meg, illetve az azonosítskor kiírt realm nevét.
Az external_acl_type sorban definiáljuk a második script segítségével, hogy hogyan határozzuk meg azokat akik illeszkednek majd eme szabályokra. Először is meg kell adnunk azt a DN-t, ahol a csoportokat tároljuk, majd azt, hogy ezeken belül hol találhatóak majd a felhasználók. Ez található a -f után. Az én esetemben a csoport neve proxy volt, viszont ha valaki más, másik csoportnevet adott meg, akkor itt a cn= után a saját csoport nevét írja be. Majd a végén itt is kell az LDAP server hostneve vagy IP-je.
Mielőtt élesbe kipróbálnánk a squid-el, a fenti két script futását kipróbálhatjuk simán terminálba is kiadva. Ilyenkor egy üres sort kapunk. Ide írjuk be a felhasználónevet hagyjunk egy szóközt majd a jelszót. Ha a minden jól működik akkor a script OK-ét fog kírni nekünk. Ha valami baj van, akkor errot kapunk.
Az ACL sor azért felelős, hogy a squid ezt az LDAP metódust egy szabályként ismerje és kezelje.
A http_access allow-al pedig engedélyezzük azt, hogy amennyiben, valaki helyesen tudja a csoportja által azonosítani magát, akkor hozzáférést kapjon a proxy szerverhez. Fontos hogy ez a sor a http_access deny all sor felett szerepeljen a konfigban.
Teszteljük le
Ha minden jól működik, akkor a proxy szerverünk el is fog indulni. Adjuk meg a tetszőleges böngészőnknek, hogy használja ezt a proxy-t, majd próbáljunk behozni egy weboldalt. Egy hasonló ablakot kell kapnunk:

Amennyiben itt megadjuk az Open Directory felhasználó nevünket és jelszavunkat, és a megfelelő csoportban is szereplünk, akkor a squid máris kiszolgálja a weboldal kérésünket. Ellenkező esetben valamilyen hozzáférési hibát kell kapnunk.
Összefoglalás
A SquidMan által egyszerűen össze lehet dobni akár komolyabb squid konfigurációkat is. Az alap beállításokat viszonylag egyszerűen meg lehet benne oldani, és teret enged a konfiguráció módosításához is. Sajnos nagy hátránya, hogy automatikusan nem tud a rendszer bootolásakor elindulni. Így sajnos csak úgy lehet valami hasonló eredményt elérni, ha automatikusan belépetünk egy felhasználót a Mac OS X-be, és ennek a felhasználónak az automatikusan induló programjai közé felvesszük a SquidMan-t is.