ext_file_userip_acl(8)

πŸ’– NAME πŸ’–

okay so bestie, welcome to ext_file_userip_acl β€” a manual page for the manual page, meta ik 😭

ext_file_userip_acl β€” restrict users to certain IP addresses, using a text file backend. no cap.

also it's got a version, bestie: Version 1.0 ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

ext_file_userip_acl [-dh] [-f file name ]

that's it. that's the whole vibe. short but iconic πŸ‘‘


🌸 DESCRIPTION 🌸

so ext_file_userip_acl is an installed binary. it's an external helper for the Squid external acl scheme β€” like, it does a job for Squid, it's not the whole main character, it's the bestie who shows up with the aux cord πŸ”₯

the way it works is genuinely so simple: it reads a pair made of an IP address and a username on STDIN, and then it matches that pair against a configuration file. that's the whole function. match, then vibe check, then answer. periodt πŸ’…


✨ OPTIONS ✨

  • -d β€” write debug info to stderr. for when you need to see what's going on behind the scenes πŸ‘€
  • -f file β€” configuration file to load. this is the file it's checking against, so like, pick a good one πŸŽ€
  • -h β€” display the binary help and command line syntax info using stderr. when in doubt, ask the binary, she'll tell you πŸ’–

πŸŽ€ CONFIGURATION πŸŽ€

the squid.conf configuration for the external ACL should be:

external_acl_type type-name %SRC %LOGIN
/path/to/ext_file_userip_acl -f /path/to/config.file

if the helper program finds a matching username/ip in the configuration file, it returns OK ✨ otherwise it returns ERR πŸ’€ no middle ground, no grey area, it's giving binary honesty.

the configuration file format is as follows:

ip_addr[/netmask]   username|@group|ALL|NONE

where ip_addr is a dotted quad format IP address, and the netmask must be in dotted quad format too. dotted quad twice, bestie, don't get it twisted 🌈

when the second parameter is prefixed with an @, the program will lookup the /etc/group file entry for the specified username. cute little shortcut 🧚

there are other two directives, ALL and NONE, which mean "any user on this IP address may authenticate" or "no user on this IP address may authenticate". yes, lowercase ALL and NONE are the whole mood here.


πŸ’œ AUTHOR πŸ’œ

this program was written by Rodrigo Campos <rodrigo@geekbunker.org>

this manual was written by Rodrigo Campos <rodrigo@geekbunker.org> and Amos Jeffries <amosjeffries@squid-cache.org>

shoutout to the authors, they ate and left no crumbs 🫢


 * 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.

this program and documentation is copyright to the authors named above.

distributed under the GNU General Public License (GNU GPL) version 2 or later (GPLv2+). legal girlies know the rules ⭐


😭 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 nice, they don't bite, go ask 🌸


πŸ’€ REPORTING BUGS πŸ’€

bug reports need to be made in English. bestie please, English only, it's required.

see https://wiki.squid-cache.org/SquidFaq/BugReporting for details of what you need to include with your bug report.

  • report bugs or bug fixes using https://bugs.squid-cache.org/
  • report serious security bugs to Squid Bugs <squid-bugs@lists.squid-cache.org>
  • report ideas for new improvements to the Squid Developers mailing list <squid-dev@lists.squid-cache.org>

security bugs = serious email, ideas = dev list. don't mix them up πŸ™ˆ


🌈 SEE ALSO 🌈


okay bestie that's the whole page fr fr πŸ¦‹ go forth and restrict those IPs responsibly. this was the System Manager's Manual edition of ext_file_userip_acl(8), version 1.0, and the footer energy is exactly that: ext_file_userip_acl(8) πŸ’…βœ¨ love u, bye πŸŽ€