Squid + MsAD

Fórumok

Van egy egyszerü proxy. Egy dolga lenne, hogy authentikáljon AD-ból. Viszont nem teszi:

http_port 3128 transparent

cache_dir ufs /var/spool/squid3 7000 16 256
error_directory /usr/share/squid3/errors/Hungarian
cache_peer x.y.z.s parent 3128 3128 default

auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b "DC=example,DC=org" -D "CN=ldapuser,OU=LINUX,DC=example,DC=org" -w 'xxdxxdxx' -f sAMAccountName=%s -h win2k3.example.org
auth_param basic children 2
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 2 hours

acl auth proxy_auth REQUIRED

acl localhost src 127.0.0.1/32
acl manager proto cache_object
http_access allow manager localhost

http_access allow auth
http_access deny all

-----------
A squid3 modulja, a squid_ldap_auth külön ugyanezzel a paraméterezéssel elindítva (a squid felhasználója alól), tökéletesen müködik, végzi a dolgát. Viszont ha a squid hívja meg, a cache.log fájlban a következö hibaüzenet jelenik meg:

squid_ldap_auth: WARNING, could not bind to binddn 'Invalid credentials'

, és az authentikáció nem is történik meg. A jelszót újra kéri a kliens.

Hozzászólások

Első tippem: írj egy egyszerű szkriptet (shell, python, stb.), ami kiírja a kapott paramétereket egy szövegfájlba. A squid.conf-ba a squid_ldap_auth helyére írd be a szkript elérési útját. Nézd meg, milyen paramétereket kapott és utána futtasd le a squid_ldap_auth alkalmazást a kapott pataméterekkel, a squid felhasználó nevében.

Közzéttettem egy viszonylag egyszerü scriptet:
while read line;
do
echo $line | /usr/lib/squid3/squid_ldap_auth ... ... ...
done

Ezt megadtam a basic auth programjának, és láss csodát müködik.
Kérdem én miért?
Mondjuk most öröm van, csak nem értem. Munkatársam annyit mondott: Debian ...

OFF
Először a munkatársadnak üzenem: nem a Debian tehet erről, hanem te tehetsz róla. Ez alapján a kollégád korlátoltnak tűnik nekem. :)
ON

Nem pont ilyen szkriptre gondoltam. Amit te írtál az az STDIN-ről olvas be sorokat, amiket visszaír a kimenetre. Ezt simán a /bin/cat meghívása is tudja. lásd: http://pastebin.com/sDhY0A2b

Én ilyen szkriptre gondoltam: http://pastebin.com/zzEPX0bK
Ez számozva írja ki a paramétereket egy text fájlba.

szerk.: A szkripted alapján az a sejtésem, hogy a jelszót nem veszi át/kapja meg a squid_ldap_auth. Ha nem adsz meg neki a command line-ba jelszót, akkor a squid_ldap_auth az STDIN-ről kéri, nem? A szkripted pedig képes arra, hogy a squid_ldap_auth STDIN-jére továbbítson sorokat.

Transzparens müködéssel nem fog tudni auth-olni se a proxy, se a böngészö. (lásd: http://wiki.squid-cache.org/Features/Authentication#Authentication_in_i… )
Sajnos be kell rakni a böngészöbe a proxy beállításokat.
A transzparens proxy mehet mellette másik porton, amivel tilthatod a "kerülö úton" történö netezést, vagy csak néhány weboldalt.

Ebbe a problémába már én is belefutottam :(
De azért group policy-val és a fenti transparent móddal mellett megoldható a dolog.

A transparent elüzése nem oldotta meg a problémát. Ugyanúgy nem hajlandó beengedni.