同時使用網域使用者和本機使用者進行 Squid 驗證?

同時使用網域使用者和本機使用者進行 Squid 驗證?

我正在開發一個 Squid 代理,它需要針對 Active Directory 網域對使用者進行身份驗證;這工作正常,Samba 已正確設置,並且 Squid 通過 驗證用戶身份ntlm_auth。 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

現在,我需要一種方法來允許沒有網域帳戶的使用者存取。我知道我可以在網域中建立一個「網路使用者」帳戶,但這將允許存取網域資源(檔案共用等),儘管受到限制;我需要一些只允許網路存取的東西。

理想的解決方案是在代理伺服器上使用本機帳戶,可以是 Linux 帳戶,也可以是 Squid 帳戶;我知道 Squid 支援此功能,但我無法使用它兩個都如果網域身份驗證不成功,則進行網域身份驗證和 Squid/本機身份驗證。

這可以做到嗎?如何?

答案1

現在,我需要一種方法來允許沒有網域帳戶的使用者存取。這可以做到嗎?

是的。

如何?

您可以使用「外部」ACL 幫助程序,它允許您推出自己的機制。請參閱Squid wiki「多來源」條目更多細節。這段偽代碼直接從那裡提取:

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 是一些執行實際身份驗證的 perl 腳本,並返回OKorERR作為結果。

答案2

建立受限網域使用者(隔離 OU)。從squid 建立一個允許使用者使用網路的squid LDAP 身份驗證。

相關內容