Squid + PAM

Hallo Liste.

Ich versuche seit einigen Stunden erfolglos, Squid mit
PAM-Authentifikation zu konfigurieren.
Vorhanden sind ein kleines Lan (192.168.168.0/24) mit einigen fixen
Hosts (Adressen im Bereich 192.168.168.129 - 192.168.168.253) und der
Möglichkeit, Notebooks anzuschließen (bekommen per DHCP Adressen
192.168.168.1 - 192.168.168.126).
Alle Clients müssen für Webzugriffe den Proxy (auf 192.168.168.254,
debian sarge, ist außerdem Gateway, Firewall etc.) verwenden. Die fixen
Hosts dürfen ohne Authentifikation ins WWW, Notebooks nicht.

aus squid.conf:
auth_param digest program /usr/lib/squid/pam_auth -1
auth_param digest children 5
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 50
auth_param basic program /usr/lib/squid/pam_auth -1
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on
acl ourclients src 192.168.168.128/255.255.255.128
acl mobileclients src 192.168.168.0/255.255.255.128
acl auth_users proxy_auth REQUIRED
http_access allow ourclients
http_access allow mobileclients auth_users
http_access deny all

/etc/pam.d/squid:
@include common-auth
@include common-account

/etc/pam.d/common-auth:
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass

/etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so

Diese Konfiguration funktioniert so weit, dass Notebooks nach
Benutzername und Passwort gefragt werden, die fixen Hosts nicht. Leider
werden die eingegebenen Zugangsdaten aber nicht akzeptiert.
Versuche ich, /usr/lib/squid/pam_auth (unter dem selben Account, unter
dem squid läuft) auszuführen, dann werden richtige Zugangsdaten erkannt.

Hat jemand von euch eine Vermutung, wo der Fehler sein könnte?

Danke,
  Benjamin

Benjamin Gufler wrote:

Hallo Liste.

Ich versuche seit einigen Stunden erfolglos, Squid mit
PAM-Authentifikation zu konfigurieren.
Vorhanden sind ein kleines Lan (192.168.168.0/24) mit einigen fixen
Hosts (Adressen im Bereich 192.168.168.129 - 192.168.168.253) und der
Möglichkeit, Notebooks anzuschließen (bekommen per DHCP Adressen
192.168.168.1 - 192.168.168.126).
Alle Clients müssen für Webzugriffe den Proxy (auf 192.168.168.254,
debian sarge, ist außerdem Gateway, Firewall etc.) verwenden. Die
fixen Hosts dürfen ohne Authentifikation ins WWW, Notebooks nicht.

aus squid.conf:
auth_param digest program /usr/lib/squid/pam_auth -1
auth_param digest children 5
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 50
auth_param basic program /usr/lib/squid/pam_auth -1
auth_param basic children 5
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on
acl ourclients src 192.168.168.128/255.255.255.128
acl mobileclients src 192.168.168.0/255.255.255.128
acl auth_users proxy_auth REQUIRED
http_access allow ourclients
http_access allow mobileclients auth_users
http_access deny all

/etc/pam.d/squid:
@include common-auth
@include common-account

/etc/pam.d/common-auth:
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass

/etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so

Diese Konfiguration funktioniert so weit, dass Notebooks nach
Benutzername und Passwort gefragt werden, die fixen Hosts nicht.
Leider werden die eingegebenen Zugangsdaten aber nicht akzeptiert.
Versuche ich, /usr/lib/squid/pam_auth (unter dem selben Account, unter
dem squid läuft) auszuführen, dann werden richtige Zugangsdaten erkannt.

Hat jemand von euch eine Vermutung, wo der Fehler sein könnte?

Lösung hab' ich keine, aber eine Alternative.

Wie ich aus deiner pam Konfiguration schliesse, benutzt du --
wahrscheinlich -- auch LDAP.

Wir benutzen hier LDAP sowohl zur Athentikation als auch zur
Authorisierung.
Und das sieht so aus:

auth_param basic program /opt/squid/libexec/squid_ldap_auth -R -h
localhost -s sub -b "ou=people,o=sgv,dc=sgv" -f
"(&(objectClass=SambaSamAccount)(uid=%s))" -u dn

external_acl_type ldap_group %LOGIN /opt/squid/libexec/squid_ldap_group
-R -d -h localhost -s sub -B "ou=people,o=sgv,dc=sgv" -F
"(&(objectClass=sambaSamAccount)(uid=%s))" -b "o=permissions,dc=sgv" -f
"(&(objectClass=groupOfNames)(member=%v)(cn=%a))"

acl full_access external ldap_group internet_access

Damit könntest du die pam umgehen.

max