LINUX.ORG.RU
ФорумAdmin

squid, комбинирование акцессов

 ,


0

1

привет, ЛОР.
есть squid c NTLM-авторизацией в Active Directory (win2k8r2).
пользователи на доменных компьютерах нормально авторизуются, ходят через IE, доступ к ресурсам рулится доменными группами, всё замечатально.
понадобилось дать доступ удалённой сети, подключённой к моей сети по VPN, в ней ~30 компьютеров, 5 доменных, остальные не доменные и подключать их к домену не надо, т.е. их нужно «авторизовывать» по IP. соответственно, делаю ACL и соответствующий http_access. кусок конфига:

acl Default_Access dstdomain "/etc/squid/acl/default_access.acl"
acl IA_Full_Access external domain_group IA_Full_Access
acl IA_Default_Access external domain_group IA_Default_Access
acl vnet src 192.168.5.0/24

http_access allow IA_Full_Access all
http_access allow IA_Default_Access Default_Access
http_access allow vlan Default_Access
http_access deny all

если убрать акцессы с AD-группами, то всё работает, если же оставить, то недоменные компьютеры запрашивают авторизацию. если переношу http_access allow vlan Default_Access самым первым правилом, то авторизацию не просит, но компы из этой vpn-сети игнорят AD-группы и авторизовываются по IP, а нужно чтобы авторизовывались NTLM.
как скомбинировать эти две авторизации?

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

если переношу http_access allow vlan Default_Access самым первым правилом, то авторизацию не просит, но компы из этой vpn-сети игнорят AD-группы и авторизовываются по IP

Противоречащие друг другу требования.

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

Если очень хочется «отделить мух от котлет», то Вам следует в удалённой сети разделить членов домена и не членов в разные подсети.

Или же, как вариант, разделить их настройками прокси-сервера в браузере (разделить по IP прокси-сервера или порту):

Вариант 1:

http_port 3128
http_port 8080

acl dom_members myport 3128

Вариант 2:

http_port ip.add.re.ss1:3128
http_port ip.add.re.ss2:3128

acl dom_members myip ip.add.re.ss1

Дальше для обоих одинаково:

http_access allow dom_members IA_Full_Access all
http_access allow dom_members IA_Default_Access Default_Access
http_access allow vlan Default_Access
http_access deny all

Или же с точностью до наоборот, вместо dom_members отделять others и, соответсвенно:

http_access allow others vlan Default_Access
MumiyTroll ★★★
()
Ответ на: комментарий от MumiyTroll

спасибо, это изумительно. не знал что можно так портами рулить, в документации не очевидно об этом написано.

dorsett_case
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.