Доброго всем времени суток.
Сразу к вопросу.
Имеем сервер на FreeBSD, стоит ipfw+pf(не спрашивайте почему такая связка, очень удобно, во всяком случае мне нравится очень), но проблема не в этом.
На борту стоит squid+ntlm+basic аутентификация пользователей из домена(Active Directory). Так же поставил SAMS.
У меня руками прописаны списки запрещенных сайтов и 3 группы пользователей.
Группы пользователей: InetUs, InetVIP, InetFull
Списки запрета доступа: Access.Denied и еще один список, которые разрешает только некоторые сайта из списка запрещенных для определенной группы.
Итак, InetUs - Запрещены все сайты из списка
InetVIP - запрещены все сайта из списка запрещенных, но разрешены некоторые из этого же списка
InetFull - разрешено все.
В Active Directory пользователям назначены группы в зависимости от их разрешений. Из домена авторизация проходит, с SAMS-ом почти разобрался(ну не люблю я подобные вещи, которые работают неизвестно для меня как)
В общем все вроде как работает, юзеры ходят, авторизация и по ntlm и по basic, списки запрета работают.
И вот тут руководство ставит задачу: Нужно, чтобы squid автоматически подтягивал пользователей и записывал в нужную группы на проксе. Т.е. создаем мы нового пользователя в домене, добавляем скажем в группу InetUs и он сразу автоматом появляется в списке юзеров на прокси-сервере. Так же, нужно скажем перенести юзера из одной группы(InetUs) в другую группу(InetVip) и надо чтобы все изменения на проксе произошли автоматом.Теперь подскажите пожалуйста, возможно ли такое или нет?
P.S. Руководство виндузятники, поэтому им сложно объяснить невозможность и я на всякий случай решил поинтересоваться у гуру. Я конечно понимаю, что с костылями и горой скриптов это вохможно, но это не вариант и я понимаю что почти стандартными средствами это не возможно.
Подскажите пожалуйста, очень жду совета гуру.
Глянь вот эту статейку http://macrodmin.blogspot.ru/2012/07/squid-active-directory.... возможно я ошибаюсь,но тебе что-то типо такого и нужно.
Если я правильно понял,то ты хочешь чтоб все изменения по по уровню доступа юзеров происходили путем перемещения их из одной группы в другую в AD?
> Глянь вот эту статейку http://macrodmin.blogspot.ru/2012/07/squid-active-directory....
> возможно я ошибаюсь,но тебе что-то типо такого и нужно.
> Если я правильно понял,то ты хочешь чтоб все изменения по по уровню
> доступа юзеров происходили путем перемещения их из одной группы в другую
> в AD?Да, похоже. Правила я напишу в сквиде, у меня была проблема только автоматом авторизоваться NT-группам, но судя по статье:
acl Full external nt_group Internet_Full
acl Medium external nt_group Internet_Medium
acl Low external nt_group Internet_Low
тег nt_group работает как определение группы, которой принадлежит пользователь.
Попробую обязательно. Сейчас встречный еще один вопрос, а если групп несколько, то как он не перепутается в списке этих групп?
> Попробую обязательно. Сейчас встречный еще один вопрос, а если групп несколько, то
> как он не перепутается в списке этих групп?Все просто, пользователь может занимать только одну группу, т.к. авторизация будет проходить на AD. Squid будет лишь сопоставлять пользователя и группу.
Пробуйте удачи!
>> Попробую обязательно. Сейчас встречный еще один вопрос, а если групп несколько, то
>> как он не перепутается в списке этих групп?
> Все просто, пользователь может занимать только одну группу, т.к. авторизация будет проходить
> на AD. Squid будет лишь сопоставлять пользователя и группу.
> Пробуйте удачи!Немного не понял.
Вот допустим у пользователя есть несколько групп, в которые он входит, т.к. работает на несколько отделов, скажем:
1. Отдел дизайн
2. Отдел клеинта1
3. Креативщик
4. InetUsПолучается, что этот пользователь состоит в 4-х группах. Как тут быть?!
> Немного не понял.
> Вот допустим у пользователя есть несколько групп, в которые он входит, т.к.
> работает на несколько отделов, скажем:
> 1. Отдел дизайн
> 2. Отдел клеинта1
> 3. Креативщик
> 4. InetUs
> Получается, что этот пользователь состоит в 4-х группах. Как тут быть?!Создай в домене отдельные группы непосредственно для интернетов и помести туда сотрудников в зависимости от их потребности в интернетах. Думаю не стоит привязывать существующие группы.
>[оверквотинг удален]
>> Вот допустим у пользователя есть несколько групп, в которые он входит, т.к.
>> работает на несколько отделов, скажем:
>> 1. Отдел дизайн
>> 2. Отдел клеинта1
>> 3. Креативщик
>> 4. InetUs
>> Получается, что этот пользователь состоит в 4-х группах. Как тут быть?!
> Создай в домене отдельные группы непосредственно для интернетов и помести туда сотрудников
> в зависимости от их потребности в интернетах. Думаю не стоит привязывать
> существующие группы.Да, у меня именно так и сдалено. Созданы 3 доп группы: InetUs, InetVIP, InetFull, соответственно с определенными разрешениями для каждой из груп: запрещено все лишнее, частично разрешено личное и все разрешено соответственно.
Каждому из пользователей добавлена одна из групп в зависимости от политики доступа к ресурсам. У меня вопрос в другом, не будет ли конфликтов, если у пользователя несколько групп? Или работает так: Юзает пользователь инет, прокси считывает из домена его группы и перебирает, доходит до первой и проверяет, подпадает ли она под правила или нет, если не находит, то ищет следующую группу. Так?
Итак!
Всем доброго здравия.
Звучал вопрос, в одном из сообщений, как у меня успехи с моей задачей, вот я готов написать.Заработало, что я могу сказать.
В Active Directory:
Созданы 3 дополнительные группы:
InetUs - нельзя запрещенные
InetVIP - нельзя запрещенные, кроме небольшого списка разрешенных
InetFull - Можно все.На FreeBSD сделано следующее:
Ну естественно поднята самба, настроен керберос и конечно же сквид. Описывать полностью конфиги не буду, не к чему, все прекрасно понимают и знают что там написать, а те кто не знают, курите маны или читайте статьи, их полно и все на русском.
В squid.conf были удалены все acl-ы и добавлены следующие:# Авторизация в домене по NTLM и Basic для тех, что не смог авторизоваться по ntlm, так происходит.
auth_param ntlm program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 150
auth_param ntlm keep_alive on
auth_param basic program /usr/local/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 50
auth_param basic realm DeltaPlans's Squid Beast
auth_param basic credentialsttl 8 hours
auth_param basic casesensitive off
..........
# Описываю acl-ы, комментарии излишни, итак все понятно
acl _acl_Access_Denied url_regex -i "/usr/local/etc/squid/regulations/Access.Denied"
acl _acl_Access_Allow_VIP url_regex -i "/usr/local/etc/squid/regulations/Access.Allow.VIP"
acl _sams_local_ip dst "/usr/local/etc/squid/local_ip.sams"
# Получаем группы из AD
external_acl_type nt_group %LOGIN /usr/local/libexec/squid/wbinfo_group.pl
# Описываю acl-ы для групп
acl Full external nt_group InetFull
acl Medium external nt_group InetVIP
acl Low external nt_group InetUs
...........
acl nt_group proxy_auth REQUIRED
...........
# Описываю доступы и запреты групп AD по спискам сайтов
http_access deny Low _acl_Access_Denied
http_access allow Medium _acl_Access_Allow_VIP
http_access deny Medium _acl_Access_Denied
http_access allow Low
http_access allow Medium
http_access allow Full
http_access allow localnet
http_access deny !Safe_ports
...........
Далее все стандартно.
После этого /usr/local/etc/rc.d/squid reload и проверяем, Все работает.
>[оверквотинг удален]
> http_access allow Medium _acl_Access_Allow_VIP
> http_access deny Medium _acl_Access_Denied
> http_access allow Low
> http_access allow Medium
> http_access allow Full
> http_access allow localnet
> http_access deny !Safe_ports
> ...........
> Далее все стандартно.
> После этого /usr/local/etc/rc.d/squid reload и проверяем, Все работает.интересная задумка, вроде все понятно из ващего конфига, но не могу понять, в конечной связке есть ли sams ? если нет, то что значит эта строчка
acl _sams_local_ip dst "/usr/local/etc/squid/local_ip.sams"