В продолжение темы интеграции, добавляю статью 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/824


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

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

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

Add your comment now

Please note: JavaScript is required to post comments.