squid通过域认证

为了集中上网管控,领导要求架设一台squid服务器并且要求通过域来验证,上网查了一下,大部分都是需要和samba绑定,觉得很麻烦,所以不想采用,经过努力查找了大量的资料,终于成功实现了squid通过LDAP来与域认证上网。总结如下:环境:操作系统:LINUX AS5 SQUID :squid-2.7.STABLE5.tar.gz LDAP:openldap-2.4.13.tgz 域操作系统:windows server 2003 安装LINUX操作系统就不说了!!!安装SQUID也不说了!!!从安装openldap说起。操作如下: ./configure --without-kerberos --without-cyrus-sasl --without-tls --without-threads --disable-slapd --disable-slurpd --disable-debug --disable-shared 然后: make depend make make install 测试ldap是否正常修改/usr/local/etc/openldap/ldap.conf, BASE DC=gncsnc,DC=com URI ldap://your.gncsnc.com 注释:your.gncsnc.com为域控制器名称。测试ldap与域之间连线是否正常。 /usr/local/bin/ldapsearch -x -W -D "cn=Ning Hao,ou=Bj_Users,dc=gncsnc,dc=com" -b "cn=A,ou=BJ_Users,dc=gncsnc,dc=com" -h your.gncsnc.com 注释:这是通过绑定CN=Ning Hao来查询域帐号A,查询谁都无所谓。会提示输入LDAP password:此处输入的是Ning Hao的域用户密码如果没问题,会显示大量的域用户信息。然后配置SQUID 。有资料说在编译安装SQUID的时候多加一个 --enable-auth-modules=LDAP,但是我个人认为不需要。修改squid.conf,找到:auth_param basic program 在后面加上:/usr/lib/squid/squid_ldap_auth -R -b "dc=gncsnc,dc=com" -D "cn=Ning Hao,ou=Bj_Users,dc=gncsnc,dc=com" -w "password" -f sAMAccountName=%s -h gncsnc.com 其中password为用户Ning Hao的密码,sAMAccountName 是你想验证用户信息的类型,具体可以查看域用户的各种属性。同时可以测试是否可以通过认证,方法如下: [root@proxy logs]# /usr/lib/squid/squid_ldap_auth -R -b "dc=gncsnc,dc=com" -D "cn=Ning Hao,ou=Bj_Users,dc=gncsnc,dc=com" -w "password" -f sAMAccountName=%s -h your.gncsnc.com 然后输入你想查询的用户名 空格 密码,如果提示OK 则证明LDAP与域认证没有问题。设置访问列表,acl ldap proxy_auth REQUIRED 设置访问规则,http_access allow ldap 至此,基本的认证方式就建立起来通过查询/usr/local/squid/var/logs里面的log信息可以查看squid的工作状态。最后简单的介绍一些命令的参数: squid_ldap_auth命令: •The de>-bde> 选项显示了基于LDAP区别于我们域的名称。例如:your.domain.com 将是de>dc=your,dc=domain,dc=comde>。 •The de>-Dde> 选项显示了用户通常是执行 LDAP 的质寻。此实例使用的是内置的管理员用户。然而您也可以使用另一个您选择的用户。 •The de>-wde> 选项的密码适用于用户的the de>-Dde>选项。对于安全的改进您可以在文件里使用de>-Wde> de>/path/to/password_filede> 的语法来代替密码的存储。 •The de>-hde> 选项通常显示了LDAP服务器的连接。 •The de>-Rde> 选项要求Squid连接到Windows的现行目录。 •The de>-fde> 选项通常是LDAP质寻来查找用户的。在以上的例子里,de>sAMAccountName=%sde>,当Squid提示输入用户名时,将要与用户登录Windows上网输入的名称匹配。任何LDAP质寻都可以使用。一个LDAP质寻搜索工具可以有利于帮助获取正确的语法并确保质寻工作的正确性。 •The de>%sde> 代替用户输入他们自己的用户名。 记得重新启动Squid使得这些改变生效。然后测试因特网的访问并确保Squid用户名和密码的提示及如期的鉴定工作。确保用户名立刻出现在Squid日志文件里。

原文地址:https://www.cnblogs.com/studio313/p/1939631.html