我需要从基于Windows的代理迁移到Linux代理。 在旧服务器中,Squid使用mswin_auth.exe根据Active Directory域对用户进行身份验证。因此,我的用户现在在浏览器弹出窗口中输入ntdomain \ username以进行代理身份验证。
在linux Centos服务器中,Squid将使用basic_ldap_auth,在这种情况下,用户不得输入ntdomain。我的用户改变旧习惯会很烦人。有没有办法从输入的用户名中自动删除ntdomain?
在squid.conf中我有
auth_param basic program /usr/lib64/squid/basic_ldap_auth -R -b "dc=ntdomain,dc=parentd,dc=it" -D "CN=squid,OU=Squid,OU=Sede,DC=ntdomain,DC=parentd,DC=it" -W /etc/squid/squid.adpwd -f sAMAccountName=%s -h vfdc1.ntdomain.parentd.it
...
external_acl_type ldap_group %LOGIN /usr/lib64/squid/ext_ldap_group_acl -R -b "dc=ntdomain,dc=parentd,dc=it" -D "CN=squid,OU=Squid,OU=Sede,DC=ntdomain,DC=parentd,DC=it" -W /etc/squid/squid.adpwd -f "(&(objectclass=person) (sAMAccountname=%u)(memberof:1.2.840.113556.1.4.1941:=cn=%g,OU=Squid,OU=Sede,DC=ntdomain,DC=parentd,DC=it))" -h vfdc1.ntdomain.parentd.it -S
提前致谢
答案 0 :(得分:0)
在请求中使用-K选项(从用户名中删除Kerberos域):
external_acl_type ldap_group %LOGIN /usr/lib64/squid/ext_ldap_group_acl -R -K -b "dc=ntdomain,dc=parentd,dc=it" -D "CN=squid,OU=Squid,OU=Sede,DC=ntdomain,DC=parentd,DC=it" -W /etc/squid/squid.adpwd -f "(&(objectclass=person) (sAMAccountname=%u)(memberof:1.2.840.113556.1.4.1941:=cn=%g,OU=Squid,OU=Sede,DC=ntdomain,DC=parentd,DC=it))" -h vfdc1.ntdomain.parentd.it一切都很好。
答案 1 :(得分:-1)
这是我的解决方案:我创建了基于sed的小bash脚本来剥离域并在其中使用squid.conf
auth_param basic program /usr/local/bin/squid_auth
文件/ usr / local / bin / squid_auth是
#!/bin/bash
/usr/bin/sed -u "s/^ve[\\]//i"|/usr/bin/sed -u "s/^ve%5c//i"|/usr/lib64/squid/basic_ldap_auth -R -b "dc=ve,dc=dipvvf,dc=it" -D "CN=squid,OU=Squid,OU=Sede,DC=ve,DC=dipvvf,DC=it" -W /etc/squid/squid.adpwd -f sAMAccountName=%s -h vfdc1.ve.dipvvf.it
域名 ve