Авторизация в Squid по учётным записям из AD

Доброго времени суток.
Есть относительно крупная сеть (супермаркет), построенная на Active Directory. В планах поставить прокси-сервер с Gentoo на борту (в качестве самого прокси выбран сквид). Вопрос заключается в следующем: существует ли возможность авторизовывать пользователей на прокси, основываясь на используемой учётной записи из AD?
Поясню на примере. Есть компьютер Com1. Он в качестве шлюза использует ip 192.168.1.1, где стоит сквид. За Com1 работают пользователи AD User и Manager. User-у положено 120kb скорости, Manager-у 512kb.
IP-адреса раздаются по DHCP, на рабочих компьютерах Windows XP Pro
Специфика некоторых приложений, используемых на предприятии, такова, что в них невозможно указать настройки дли работы через прокси. То есть нужно, чтобы сквид понимал, какой пользователь к нему обращается.
Такое вообще реально? Если нет, то может быть есть другой способ реализации подобной системы?

Конечно же. SAMS.

Конечно же. SAMS и NTLM.

Не грусти, товарищ! Всё хорошо, beautiful good!

winterheart

winterheart написал(а):
Конечно же. SAMS и NTLM.

Далеко не все приложения умеют NTLM. Поэтому идентифицировать придется и по IP

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Спасибо большое за наводку,

Спасибо большое за наводку, будем постигать.

Истин имперских звезда засияет.

Мой кусочек рабочего

Мой кусочек рабочего /etc/squid/squid.conf

# Авторизация
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 30
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
#auth_param basic blankpassword on
#auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
#auth_param ntlm children 10

# внешняя ACL для разруливания по группам
external_acl_type nt_group ttl=60 %LOGIN /usr/local/bin/wbinfo_group.pl



#
# Пользователи по группам домена
#

# пользователи у которых просто интернет - с ограничениями
acl inet_users external nt_group squid
acl low_users external nt_group squid_low
acl high_users external nt_group squid_high
acl vip_users external nt_group squid_vip
# Все пользователи домена
acl my_domain proxy_auth REQUIRED

Всё делалось по рекомендациям с Гугла. :-) Потому особо не вникал. Всё работает.
Естественно на машине должна быть настроена и запущена Самба, а сама машина введена в домен. "Хитрый" файл wbinfo_group.pl тоже искался в Гугле.

#!/usr/bin/perl -w
#
# external_acl helper to Squid to verify NT Domain group
# membership using /usr/bin/wbinfo
#
# This program is put in the public domain by Jerry Murdock
# <jmurdock@itraktech.com>. It is distributed in the hope that it will
# be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Author:
#   Jerry Murdock <jmurdock@itraktech.com>
# Исправленно для Gentoo:
#   Lavrik Evgenij aka PK
#
# Version history:
#   2002-07-05 Jerry Murdock <jmurdock@itraktech.com>
#               Initial release
#

# external_acl uses shell style lines in it's protocol
require 'shellwords.pl';

# Disable output buffering
$|=1;

sub debug {
        # Uncomment this to enable debugging
        print STDERR "@_\n";
}

#
# Check if a user belongs to a group
#
sub check {
        local($user, $group) = @_;
        $groupSID = `/usr/bin/wbinfo -n "$group"`;
#        chop  $groupSID;
        # because wbinfo -n also returns the group number
        $groupSID = substr($groupSID,0,index($groupSID," ",0));
        $groupGID = `/usr/bin/wbinfo -Y "$groupSID"`;
        chop $groupGID;
#       &debug( "User:  -$user-\nGroup: -$group-\nSID:   -$groupSID-\nGID:   -$groupGID-");
        return 'OK' if(`/usr/bin/wbinfo -r \Q$user\E` =~ /^$groupGID$/m);
        return 'ERR';
}
#
# Main loop
#
while (<STDIN>) {
        chop;
        &debug ("Got $_ from squid");
        ($user, $group) = &shellwords;
        $ans = &check($user, $group);
        &debug ("Sending $ans to squid");
        print "$ans\n";
}

Суть ясна, дальше будем

Суть ясна, дальше будем разбираться. А есть возможность не настраивать параметры прокси на клиентских компьютерах? То есть чтобы пользователям шлюзом указать сервер со сквидом, и на этом всё закончилось?

Истин имперских звезда засияет.

Да есть, называется PAC -

Да есть, называется PAC - http://www.lissyara.su/articles/freebsd/trivia/proxy_auto_configuration/

Working on Gentoo Linux for Asus P535 and Qtopia :-)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".