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.