Авторизация доменных пользователей в SQUID

10 февраля 2009 г.
Posted by Admin
Comments

После прочтения бесчисленной информации о Squid + AD я приступил к реализации задуманного.
Решили остановиться на варианте auth-helprs LDAP, вариант связки Kerberos и Winbind в связи с нестабильностью последнего не вдохновил, да Samba мне ни к чему.
А с помощью LDAP мы будем проверять принадлежит ли пользователь определенной группе без проверки паролей и т.д.
И так:
1. берем Squid ... собираем с ключами:

[root@Proxy squid-2.7.STABLE5]#./configure --prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc/squid \
--enable-delay-pools \
--enable-kill-parent-hack \
--enable-snmp \
--disable-ident-lookups \
--enable-truncate \
--enable-removal-policies=lru,heap \
--enable-gnuregex \
--enable-underscores \
--enable-stacktraces \
--enable-useragent-log \
--enable-referer-log \
--enable-forward-log \
--enable-arp-acl \
--enable-storeio=aufs,diskd,null,ufs \
--enable-htcp \
--enable-ssl \
--disable-carp \
--disable-wccp \
--disable-wccpv2 \
--enable-default-err-language=Russian-1251 \
--enable-follow-x-forwarded-for \
--enable-epoll \
--with-maxfd=16384 \
--enable-auth=basic,ntlm,digest \
--enable-basic-auth-helpers=getpwnam,LDAP,NCSA,PAM,SMB,SASL \
--enable-ntlm-auth-helpers=no_check,SMB,fakeauth \
--enable-digest-auth-helpers=password,ldap \
--enable-external-acl-helpers=ldap_group,unix_group,wbinfo_group \
--enable-linux-netfilter \
--enable-dlmalloc

описывать параметры думаю лишние




2.

 [root@Proxy squid-2.7.STABLE5]# make all && make install 


3. проверяем как работает наш "хелпер"


squid_ldap_auth


[root@Proxy squid]# /usr/libexec/squid_ldap_group -S -R -b "dc=dn,dc=local" -f "(&(sAMAccountName=%v)(memberOf=cn=%a,ou=Group,ou=Servers,dc=dn,dc=local))" -D ldap@dn.local -w "password" AD_SERVER
UserAD IntetGroup
OK


4. и последнее пример конфига:

external_acl_type wbinfo_group ttl=0 %LOGIN /usr/libexec/squid_ldap_group -S -R -b "dc=dn,dc=local" -f "(&(sAMAccountName=%v)(memberOf=cn=%a,ou=Group,ou=Servers,dc=dn,dc=local))" -D ldap@dn.local -w "password" srerver-ad
auth_param basic program /usr/libexec/squid_ldap_auth -R -D ldap@dn.local -w "password" -b "dc=dn,dc=local" -f "sAMAccountName=%s" server-ad auth_param basic children 3 
auth_param ntlm program /usr/libexec/fakeauth_auth DN/srerver-ad
auth_param ntlm children 7
auth_param ntlm keep_alive off
auth_param basic realm Squid proxy-caching Donetsk
auth_param basic credentialsttl 1 hours 
authenticate_ttl 60
seconds acl DN_local proxy_auth REQUIRED 
acl acl_Inet external wbinfo_group IntUsers 
http_access allow DN_local acl_Inet
http_access deny all


Вот и все..., теперь доступ в Интернет только у пользователей кто принадлежит группе IntUsers

Ярлыки: