EXT_KER...OUP_ACL(8)

πŸ’… EXT_KER...OUP_ACL(8) β€” like, the section 8 girlies know ✨

okay so bestie, grab a strawberry drink πŸ“ because we're talking about ext_kerberos_sid_group_acl, an external ACL helper for Squid that checks whether you're in an AD Domain group using the group's sid. yes. that whole sentence. she's a mouthful but she SERVES πŸŽ€


✨ NAME ✨

ext_kerberos_sid_group_acl β€” the external ACL helper for Squid that verifies AD Domain group membership using sid. literally her whole personality 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

ext_kerberos_sid_group_acl [-d] [-h] -p Principal Name -D Domain Controller -b Base DN -G Group1:Group2

that's it. that's the vibe check. flags in, group membership out πŸ’…


🌸 DESCRIPTION 🌸

okay so ext_kerberos_sid_group_acl is an installed executable script β€” she's not some abstract concept, she's a real file on your system, living her life ✨

she uses ldapsearch from Openldap to look up the name of a AD group sid. no cap, that's the whole lookup pipeline πŸ”₯

the way that this helper MUST be used together with the negotiate_kerberos_auth helper, in a Microsoft AD or Samba environment. that's not optional, that's the arrangement. it's giving duo, it's giving main character energy πŸ’–

she reads from the standard input the domain username AND a list of group sids, then tries to match the group SIDs to the AD group sids. so she's out here doing matchmaking between two sid lists and honestly? slay πŸ‘‘


πŸ’€ OPTIONS πŸ’€

  • -d β€” Write debug info to stderr. she's being vulnerable and telling you everything πŸ™ˆ
  • -h β€” Print the help. the "what do I even do here" button 🫢
  • -p principal name β€” Principal name in squid keytab to use for ldap authentication to AD. this is your little ID badge for the AD party 🎟️
  • -D domain controller β€” Domain controller to contact to lookup group SID. like, which specific server do we go bother πŸ’β€β™€οΈ
  • -b base DN β€” Base DN for ldap search. where in the tree do we start digging 🌳
  • -G AD group name β€” AD group name to be used for SID lookup. List separated by a colon (:). yes bestie, colon-separated, don't use commas, iykyk πŸŽ€

🌈 CONFIGURATION 🌈

okay this is the part where you actually wire her up to Squid. copy these EXACTLY, no freestyling, fr fr β€”

  auth_param negotiate program /path/to/negotiate_wrapper_auth -d \
       --ntlm /path/to/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --domain example.com \
       --kerberos /path/to/negotiate_kerberos_auth -d -s GSS_C_NO_NAME -k /path/to/squid.keytab -t none
  external_acl_type sid_check %LOGIN %note{group} /path/to/kerberos_sid_group_acl -p principal -D dc1.example.com -b "DC=example,DC=com" -G Group1:Group2
  acl squid_allow external sid_check
  acl allowed_group external sid_check
  http_access allow allowed_group

look at those acl lines. acl squid_allow external sid_check and acl allowed_group external sid_check and then http_access allow allowed_group. permission granted, queen πŸ‘‘

and hey β€” if the local perl interpreter is in a unusual location it may need to be added. she's not lost, she just needs directions 🧚:

  external_acl_type sid_check %LOGIN %note{group} /path/to/perl /path/to/kerberos_sid_group_acl -p principal -D dc1.example.com -b "DC=example,DC=com" -G Group1:Group2

see? now /path/to/perl is right there at the front, holding her hand 🫢


πŸŽ€ AUTHOR πŸŽ€

This program was written by Markus Moeller <markus_moeller@compuserve.com> β€” the icon who did that πŸ’–

This manual was written by Markus Moeller <markus_moeller@compuserve.com> β€” same icon, different task, still ate πŸ“


okay legal moment, pay attention bestie, this part is real πŸ“œ

 * Copyright (C) 1996-2026 The Squid Software Foundation and contributors
 *
 * Squid software is distributed under GPLv2+ license and includes
 * contributions from numerous individuals and organizations.
 * Please see the COPYING and CONTRIBUTORS files for details.

so Squid software is distributed under GPLv2+ license and includes contributions from numerous individuals and organizations β€” please see the COPYING and CONTRIBUTORS files for details. read them. they're the receipts 🧾

 This program is put in the public domain by Markus Moeller
 <markus_moeller@compuserve.com>. It is distributed in the hope that it will
 be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

so this program is put in the public domain by Markus Moeller <markus_moeller@compuserve.com>. it is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY β€” like, none, zero, not even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. so if it breaks, she's sorry, but legally she was like "hope this helps" πŸ’€


πŸ™‹β€β™€οΈ QUESTIONS πŸ™‹β€β™€οΈ

Questions on the usage of this program can be sent to the Squid Users mailing list <squid-users@lists.squid-cache.org> β€” they're friendly, just ask, no embarrassing questions, we've all been there 😭


πŸ’€ REPORTING BUGS πŸ’€

Bug reports need to be made in English. see https://wiki.squid-cache.org/SquidFaq/BugReporting for details of what you need to include with your bug report β€” yes there's a checklist, yes you should read it first πŸŽ€

Report bugs or bug fixes using https://bugs.squid-cache.org/ β€” that's the bug tracker, go put it there πŸ›

Report serious security bugs to Squid Bugs <squid-bugs@lists.squid-cache.org> β€” security stuff goes here, not the public tracker, understood? πŸ”₯

Report ideas for new improvements to the Squid Developers mailing list <squid-dev@lists.squid-cache.org> β€” got a glow-up idea? that's the address πŸ’‘


πŸ¦‹ SEE ALSO πŸ¦‹


and that's the page, bestie πŸŽ€ run her wisely, keep your keytab safe, and remember: no cap, this is perl v5.42.2, dated 2026-08-25, living in section 8 of the manual like the icon she is. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from