同时使用域用户和本地用户进行Squid身份validation?

我正在开发一个Squid代理,它需要根据Active Directory域对用户进行身份validation; 这工作正常,桑巴已正确设置和Squid通过ntlm_authvalidation用户。 squid.conf中的相关行:

 auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param ntlm children 5 auth_param ntlm keep_alive on acl Authenticated proxy_auth REQUIRED http_access allow Authenticated http_access deny all 

现在,我需要一种方法来允许访问没有域帐户的用户。 我知道我可以在域中创build一个“互联网用户”帐户,但是这将允许访问(尽pipe是有限的)域资源(文件共享等)。 我需要一些只允许访问Internet的东西。

理想的解决scheme是使用代理服务器上的本地帐户,Linux帐户或Squid帐户; 我知道Squid支持这个,但是如果域authentication是不成功的,我不能使用域authentication和Squid /本地authentication。

可以这样做吗? 怎么样?

现在,我需要一种方法来允许访问没有域帐户的用户。 可以这样做吗?

是。

怎么样?

您可以使用“外部”ACL辅助程序,它允许您推出自己的机制。 有关更多详细信息,请参阅Squid wiki“Multiple Source”条目 。 这一点伪代码直接从那里解除:

 auth_param basic program /usr/local/bin/my-auth.pl external_acl_type myAclType %SRC %LOGIN %{Proxy-Authorization} /usr/local/bin/my-acl.pl acl MyAcl external myAclType http_access allow MyAcl 

…其中my-auth.pl是一个执行实际身份validation的perl脚本,并返回OKERR作为结果。

创build一个受限制的域用户(孤立的OU)。 从鱿鱼,创build一个鱿鱼ldap身份validation,将允许用户使用互联网。