Автор Тема: Создание белого списка средствами Школьного сервера 5 squid+ldap  (Прочитано 2151 раз)

Оффлайн wecheslaw

  • Участник
  • *
  • Сообщений: 99
Задача учеников пускать в интернет но белому списку. Учителей без ограничений. В LDAP заведены группы student, для учеников и teacher, для учителей так же без проблем используется при авторизации в Ружель.
Через веб интерфейс настройки прокси выбран способ аутентификации PAM. Там же всем пользователям доступ куда либо запрещен, авторизованным пользователям доступ запрещен. Далее для пробы, группе student  разрешен доступ на school.yandex.ru, а группе teacher разрешен доступ на rambler.ru. Перезапускаю squid. Вхожу  как учитель и получаю доступ и на school.yandex.ru и на rambler.ru остальное все запрещено. Захожу как ученик ситуация не меняется. Захожу пользователем не принадлежащим ни к одной из описанных групп и все равно ни чего не меняется. Вчера весь день мучился так ни чего и не добился. Причем пробовал как через веб интерфейс так и вручную правил конфиг. В общем пришел к выводу, что разница есть только между авторизованным и неавторизованном доступе. В первом случае пускает на ресурсы являющиеся объединением разрешенных для всех групп. Во втором ни куда.
Кусок конфига полученный с помощью веб интерфейса . Я только заккоментировал лишние группы которые веб интерфейс мне каждый раз пытается описать хотя они не нужны но когда то были тронуты.
acl our_networks src 192.168.0.1/24    # LOCALHOST
# Deny access not form one of "our" IP networks
http_access deny !our_networks
# Domain list for all users
acl all-domains dstdomain .
# Domain list for authenticated users
acl AUTHENTICATED-domains dstdomain .
# Define ACL type to test a system group membership
external_acl_type unix_group %LOGIN /usr/lib/squid/squid_ldap_group -P -B "ou=People,dc=lan" -F "(&(uid=%s)(objectClass=posixAccount))" -b "ou=Group,dc=lan" -f "(&(cn=%g)(objectClass=posixGroup))" -K
# Access policy for the group my_student
#acl my_student-group external unix_group my_student
#acl my_student-domains dstdomain .
#http_access deny AUTHENTICATED my_student-group my_student-domains
# Access policy for the group user
#acl user-group external unix_group user
# Access policy for the group teacher
acl teacher-group external unix_group teacher
acl teacher-domains dstdomain .rambler.ru
http_access allow AUTHENTICATED teacher-group teacher-domains
# Access policy for the group student
acl student-group external unix_group student
acl student-domains dstdomain .school.yandex.ru
http_access allow AUTHENTICATED student-group student-domains
# Access policy for the group mu_teacher
acl mu_teacher-group external unix_group mu_teacher
# Access policy for authenticated users
http_access deny AUTHENTICATED AUTHENTICATED-domains
# Access policy for all users
http_access deny all all-domains

# And finally deny all other access to this proxy
http_access deny all
Система школьный сервер 5 последний раз обновлена вчера. Squid 3.0 А веб интерфейс генерирует конфиг для 2.6. В ручную для конфига 3.0 не знаю как правильно описать подключение к ldap, а копировать с 2.6 наверно смысла нет? .
В чем может быть ошибка? И она заключается в моих действиях? или в чем то другом?
http://gultschool.2x4.ru/files/squid.conf.txt
P.S. Нужно для проверки. Поэтому системы с использованием внешних списков не предлагать.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
В общем-то я в этом не специалист, но советую внимательно почитать http://squid.opennet.ru/FAQ/my/FAQrus-10.html

Оффлайн wecheslaw

  • Участник
  • *
  • Сообщений: 99
ruslandh спасибо. Я в читал этот ресурс раньше. Но зайдя еще раз обратил внимание на совет включить отладку. В результате обнаружил в логах что вообще срабатывает какое то  левое правило. В конфиге я его в явном виде не  нашел. Переписал весь конфиг в ручную. В логах стали появляться знакомые правила. Дальше пошел спать.

Оффлайн adl

  • Участник
  • *
  • Сообщений: 3
В конечном итоге получилось решить проблему - достаточно переписать одну строчку в squid.conf, начинающуюся с "external_acl_type unix_group %LOGIN..."

следующим образом:

external_acl_type unix_group %LOGIN /usr/lib/squid/squid_ldap_group -P -b "ou=Group,dc=my,dc=domain,dc=org" -f "(&(memberUid=%v)(cn=%a))" -v 3 -K

в конце не забыть запретить всем все (deny AUTHENTICATED, deny all) - в бете 5.0.2 этот запрет через web-интерфейс почему-то не ставится, вручную нормально работает.
« Последнее редактирование: 10.01.2011 23:27:03 от adl »