Авторизация пользователей на прокси-сервере Squid через Microsoft AD
- Информация о материале
- Категория: Servers (ru)
- Опубликовано: 22.05.2012, 19:01
- Автор: Super User
- Просмотров: 2486
Рассмотрим вариант, когда пользователь будет авторизоваться на нашем прокси-сервере, используя свою доменную учетную запись.
Настройка домена
Пусть у нас есть домен study.local и его контроллер с именем dc-study и IP-адресом 192.168.0.10
Создадим в домене группу inet. Все пользователи, которые в нее будут входить, будут иметь доступ в Интернет. И внесем в нее пользователя student.
Так же нужно создать в домене пользователя, с аккаунтом которого наш прокси-сервер будет обращаться на контроллер домена для проверки учетных данных пользователей. Для этих целей сделаем в нашем домене пользователя squid с паролем squid123
Настройка Squid
Для авторизации пользователя в LDAP, у Squid есть специальный модуль squid_ldap_auth
Для начала проверим, работает ли вообще у нас авторизация в домене
Выполним такую команду, и в следующей строке введем логин и пароль доменного пользователя через пробел:
# /usr/lib/squid3/squid_ldap_auth -u cn -b "cn=Users,dc=study,dc=local" 192.168.0.10
squid squid123
OK
Если в результате вывелось OK — значит все нормально, и можно продолжать проверку.
Далее мы проверим, работает ли определение группы пользователя в домене.
Выполним такую команду, и в следующей строке введем имя пользователя, и группу, принадлежность к которой хотим проверить.
# /usr/lib/squid3/squid_ldap_group -b "dc=study,dc=local" -f "(&(sAMAccountName=%v)(memberOf=CN=%a,CN=Users,dc=study,dc=local))" -D Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. -w "squid123" 192.168.0.10
student inet
OK
И, для проверки, повторим эту же команду, но для другой учетной записи
# /usr/lib/squid3/squid_ldap_group -b "dc=study,dc=local" -f "(&(sAMAccountName=%v)(memberOf=CN=%a,CN=Users,dc=study,dc=local))" -D Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. -w "squid123" 192.168.0.10
administrator inet
ERR
Как мы видим, группа пользователя определяется правильно.
Теперь откроем на редактирование файл /etc/squid3/squid.conf
И опишем наши новые acl
#Параметры авторизации в домене
auth_param basic program /usr/lib/squid3/squid_ldap_auth -u cn -b "cn=Users,dc=study,dc=local" 192.168.0.10
auth_param basic children 5
auth_param basic realm study.local
#Далее пропишем проверку на наличие пользователя в группе (все это записывается в одну строку)
external_acl_type ldapgr children=5 %LOGIN /usr/lib/squid3/squid_ldap_group -b "dc=study,dc=local" -f "(&(sAMAccountName=%v)(memberOf=CN=%a,CN=Users,dc=study,dc=local))" -D Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. -w "squid123" 192.168.0.10
#Затребуем авторизацию
acl auth proxy_auth REQUIRED
#И проверим, есть ли пользователь в группе inet
acl myinet external ldapgr inet
#И далее, в разделе разрешений, пропишем разрешение выхода в интернет пользователям, которые входят в доменную группу inet.
http_access allow myinet
http_access deny all
Перезапустим Squid
#/etc/init.d/squid restart
И можно проверять.
Теперь в интернет смогут выйти только пользователи, которые входят в доменную группу inet.