CLI man page:
safesquid-auth(7)Configure authentication switches in Access restrictions. Configure the directory in Integrate LDAP. New users: finish First configuration (IP allow) before adding auth.
Three mechanisms
- Kerberos / SSO — Global setting in Access restrictions. When enabled, the browser can sign in with Kerberos Single Sign-On — users do not type credentials in Access entries. Requires a valid keytab at
/usr/local/safesquid/security/HTTP.keytaband correct domain setup. - System authentication — Per-entry setting. The browser prompts for username and password; SafeSquid validates through PAM (
/etc/pam.d/safesquid) and optionally LDAP. Use when Kerberos / SSO is off. - User name / Password (entry) — Fixed credentials on an Access row when neither Kerberos / SSO nor System authentication is used for that entry. Fine for a lab admin account; avoid for large user populations.
Which should I choose?
- Active Directory domain, browsers joined — prefer Kerberos / SSO
- No SSO yet, local or LDAP passwords — System authentication on Allow entries
- Single test account — entry User name / Password
Kerberos / SSO
The Web UI shows Kerberos / SSO (internal tagntlm).
- When enabled, SafeSquid offers Negotiate (GSSAPI/Kerberos) on authenticated connections.
- After success, the username comes from the Kerberos ticket and is logged in Detailed logs.
- When
SUBSCRIPTION_EXPIREDis set, some modules (Application Signatures, SSqore) skip processing — see Subscription. - If the keytab is missing at startup, Negotiate is not offered even when the UI setting is on.
System authentication
Enable System authentication on an Access Restrictions entry (internal tagpamauth). For each login attempt SafeSquid tries, in order:
- Password cache (recent successful or failed attempts)
- PAM — typically local Unix accounts via
pam_unix - LDAP bind — when Integrate LDAP is configured and the user DN is known
PASSWORD_CACHE_SIZE and PASSWORD_CACHE_EXPIRE_TIME in startup.ini. View entries under Reports → Password Cache.
Entry username and password
- Kerberos / SSO off, System authentication off — set User name and Password on the entry; the challenge must match exactly.
- System authentication on — list allowed usernames (regex allowed); leave Password blank so PAM or LDAP checks the secret.
- Kerberos / SSO on — leave credentials blank on entries; the browser handles sign-in.
Integrate LDAP
- Add and enable at least one LDAP servers entry.
- Confirm users and groups in LDAP Entries.
- Use LDAP Profiles on Access Restrictions or other policy rows.
When is a login prompt shown?
SafeSquid challenges the browser when the matching Access entry has:- Kerberos / SSO enabled globally and Negotiate has not succeeded yet, or
- System authentication enabled, or
- User name filled in on the entry.
Username without a prompt
SafeSquid can assign a username when:- Kerberos / SSO succeeds
- An IP-to-user map applies (for example VPN clients)
- The client already sent matching Basic credentials for a fixed User name / Password entry
Where authentication runs
Authentication runs early in the pipeline (after Time Profiler and Request Types, before Speed Limits and content filters). Until it completes, SafeSquid may reply with HTTP 407 (proxy) or 401 withProxy-Authenticate or WWW-Authenticate. After success, Access rights, Bypass, and User Groups from the matching entry are applied.
Common problems
- Repeated login prompts — Check Kerberos / SSO, SPN, keytab, and clock skew. Clear Password Cache.
- Valid user denied — Confirm Allow list match, LDAP Profiles, Interface, and IP. In Detailed logs look for access-related
filter_name. - PAM failures — Review
/etc/pam.d/safesquid. Native log lines start withpam:. - LDAP failures — Enable LDAP in LOG_LEVEL. Verify Integrate LDAP and LDAP Entries.
See also
CLI:man safesquid-auth
