В продолжение темы интеграции, добавляю статью SQUID + AD через LDAP.

Домен сервер на Windows Server 2008, Шлюз на FreeBSD 8.0, SQUID версия 2.7.STABLE7.

Как бы, мягко выражаясь, я потратил несколько дней, для того чтобы получить данную связку, а всё из-за чего — не правильность мышления на первом этапе разработаки данного способа, примеров вылаживаемых в интернете и небольшой невнимательности.
А когда, я сел и сказал себе, всё.. я зделаю это — я сделал то что задумал.. Ну и как всегда, для молодых записываю релультат решения.

Варианты с самбой или Kerberos меня не устраивали, сразу я подумал скрестить squid с AD через уже поднятый на Windows Server 2008 Radius, а потом решил не городить лишнее, а использовать уже отработанный механизм — SQUID + LDAP.

Я предполагаю что squid у вас уже установлен и его осталось только донастроить, если это не так — то устанавливаем его:

# cd /usr/ports/www/squid
# make config
В появившейся менюшке оставляем всё по умолчанию и убеждаемся в пристуствии поддержки LDAP.
# make install clean
# cd /usr/local/etc/squid
# mcedit squid.conf

И там вписываем вот такую строку:

auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -f "(&(objectclass=person)(sAMAccountName=%s)(memberOf=CN=InternetAccess,OU=Groups,OU=building-1,DC=domain,DC=pp,DC=ua))" -R -b "OU=Users,OU=building-1,DC=domain,DC=pp,DC=ua" -D "sel_ldap@domain.pp.ua" -w "password" -h pdc.domain.pp.ua -v 3 -p 389
auth_param basic children 3
auth_param basic realm Please enter your domain credentials
auth_param basic credentialsttl 80 minutes
acl ldapusers proxy_auth REQUIRED
http_access allow ldapusers

Теперь заходим в Управление Группами и пользователями в Active Directory и в описанном организационном юните создаём группу «InternetAccess» и пользователя sel_ldap без особых привелегий (нам он нужен только для выборки из LDAP).

Итак, что бы разобраться, как оно работает, привожу для примера скрин:

Uos for Squid

Если вы хотите разрешить всём пользователем в интернет, то можно сделать такую комбинацию:

auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -f "sAMAccountName=%s" -R -b "DC=domain,DC=pp,DC=ua" -D "sel_ldap@domain.pp.ua" -w "password" -h pdc.domain.pp.ua -v 3 -p 389

На этом этапе можно остановится, запускаем squid и проверяем.


# squid -D

Пробуем… Непускает, теперь добавляем пользователя в группу «InternetAccess» и ещё раз проверяем — вуаля!!! Всё работает..

Теперь удаляем его из этой группы и спустя 80 минут он уже не получит никакого интернета 🙂

Данный пример актуален для использования в учебных заведениях с учётом, что пары идут 80 минут 😉

А на самом деле, можно поставить любое число времени в параметре «auth_param basic credentialsttl 80 minutes» и получить, хоть на одну минуту доступ, при условии, что пользователь был добавлени и удалён из группы «InternetAccess».

PS. Чем меньше будет этот параметр — тем чаще будет затрагиваться LDAP сервер, поэтому подумайте хватит ли у вас мощьностей на ваше количество пользователей и грамотно подберите эту цифру.

В общем практикуйтесь.. LDAP действительно мощьная штука…

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=824


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

You must be logged in to post a comment.