Моя статья: 
 Оригинал на 
http://sams.perm.ru/pages/catx.html    L-SSSR-MAPL-W 
 Linux, Sams, Samba, Squid, Rejik, MySql, Apache, PHP, LDAP, Win2K   
 (Версия 0.7)   
 Автор: HITMAN   
 Цель: Необходимо сделать учет трафика и лимиты пользователей прокси сервера Squid, доступ пользователей определять согласно группы на Win2K AD.   
 Системы: Slackware-Current-20060726, Windows 2003 Server,    
 Компоненты: sams-20060417, apache_1.3.36, krb5-1.5, heimdal-0.7.2, mysql-5.0.22, openldap-2.3.24, php-5.1.4, rejik-3.2.1, samba-3.0.23a, squid-2.6.STABLE1.   
 УСТАНОВКА    
 В принципе подойдет любой более менее нормальный Linux дистрибутив, обязательно наличие компилятора gcc желательно версии 3.4.6 Ставим linux, удаляем стандартные компоненты приведенные выше если таковые имеются, чтобы не возникло конфликта.  
 Скачиваем компоненты по ссылкам выше. Все скачанные компоненты ложим в /usr/src   
 Ставим krb5-1.5:   
 cd /usr/src  
 tar xvf krb5-1.5-signed.tar  
 tar xvzf krb5-1.5.tar.gz  
 cd krb5-1.5/src  
 ./configure --enable-shared  
 make  
 make install    
 Ставим heimdal-0.7.2:   
 cd /usr/src  
 tar xvzf heimdal-0.7.2.tar.gz  
 cd heimdal-0.7.2  
 ./configure  
 make  
 make install    
 Прописываем путь к библиотекам Heimdal в файле /etc/ld.so.conf добавляем строчку:   
 /usr/heimdal/lib   
 Набираем комманду ldconfig   
 Ставим openldap-2.3.24:   
 cd /usr/src  
 tar xvzf openldap-2.3.24.tgz  
 cd openldap-2.3.24  
 ./configure --prefix=/usr \  
 --enable-cache  
 make  
 make install     
 Ставим mysql-5.0.22:   
 Заводим в системе пользователя mysql и группу mysql.  
 cd /usr/src  
 tar xvzf mysql-5.0.22.tar.gz  
 cd mysql-5.0.22  
 ./configure --prefix=/usr/local/mysql \  
 --localstatedir=/usr/local/mysql/data \  
 --with-mysqld-user=mysql \  
 --without-debug \  
 --with-charset=utf8 \  
 --with-extra-charsets=all \  
 --enable-assembler \  
 --with-big-tables \  
 --enable-thread-safe-client \  
 --with-openssl  
 make  
 make install     
 Прописываем путь к библиотекам MySql в файле /etc/ld.so.conf добавляем строчку:   
 /usr/local/mysql/lib/mysql   
 Набираем комманду ldconfig   
 Ставим samba-3.0.23a:   
 cd /usr/src  
 tar xvzf samba-3.0.23a.tar.gz  
 cd samba-3.0.23a/source  
 ./configure --enable-static=no \  
 --enable-shared=yes \  
 --with-fhs \  
 --with-acl-support=yes \  
 --with-automount \  
 --prefix=/usr \  
 --localstatedir=/var \  
 --bindir=/usr/bin \  
 --sbindir=/usr/sbin \  
 --with-lockdir=/var/cache/samba \  
 --sysconfdir=/etc \  
 --with-configdir=/etc/samba \  
 --with-privatedir=/etc/samba/private \  
 --with-swatdir=/usr/share/swat \  
 --with-mysql-prefix=/var/local/mysql \  
 --with-ldap \  
 --with-ads \  
 --with-smbmount \  
 --with-quotas \  
 --with-syslog \  
 --with-utmp \  
 --with-libsmbclient \  
 --with-winbind \  
 --with-winbind-auth-challenge  
 make  
 make install   
 Ставим apache_1.3.36:   
 cd /usr/src  
 tar xvzf apache_1.3.36.tar.gz  
 cd apache_1.3.36  
 ./configure --prefix=/usr/local/apache \  
 --enable-module=all \  
 --enable-module=ssl \  
 --enable-module=so \  
 --disable-module=auth_dbm \  
 --with-perl=/usr/bin/perl  
 make  
 make install   
 Ставим php-5.1.4:   
 cd /usr/src  
 tar xvjf php-5.1.4.tar.bz2  
 cd php-5.1.4  
 ./configure --with-mysql=/usr/local/mysql \  
 --with-mod_charset \  
 --with-openssl \  
 --enable-ftp \  
 --enable-inline-optimization \  
 --enable-magic-quotes \  
 --enable-mbstring \  
 --enable-mm=shared \  
 --enable-safe-mode \  
 --enable-track-vars \  
 --enable-trans-sid \  
 --enable-wddx=shared \  
 --enable-xml \  
 --with-dom \  
 --with-gd \  
 --with-apxs=/usr/local/apache/bin/apxs \  
 --with-snmp \  
 --with-ldap \  
 --with-gettext \  
 --with-ttf=yes \  
 --with-zlib \  
 --with-xml \  
 --enable-force-cgi-redirect \  
 --with-kerberos \  
 --enable-discard-path \  
 --enable-fastcgi --with-xmlrpc  
 make  
 make install    
 Ставим squid-2.6.STABLE1:   
 Заводим в системе пользователя squid и группу squid.   
 cd /usr/src  
 tar xvjf squid-2.6.STABLE1.tar.bz2  
 cd squid-2.6.STABLE1  
 ./configure --prefix=/usr/local/squid \  
 --enable-carp \  
 --enable-icmp \  
 --enable-delay-pools \  
 --enable-snmp \  
 --enable-arp-acl \  
 --enable-htcp \  
 --enable-forw-via-db \  
 --enable-cache-digests \  
 --enable-linux-netfilter \  
 --with-large-files \  
 --enable-default-err-language=Russian-1251 \  
 --with-samba-sources=/usr/src/samba-3.0.23a \  
 --enable-auth=ntlm,basic \  
 --enable-external-acl-helper=ldap_group \  
 --enable-basic-auth-helpers=LDAP  
 make  
 make install   
 Ставим rejik-3.2.1:   
 cd /usr/src  
 tar xvzf redirector-3.2.1.tgz  
 cd redirector-3.2.1  
 Правим Makefile с помощю чего угодно vi, vim, joe.  
 Должно получится так  
 INSTALL_PATH=/usr/local/rejik3  
 SQUID_USER=squid  
 SQUID_GROUP=squid  
 make  
 make install    
 Ставим sams-20060417:   
 cd /usr/src  
 tar xvzf sams-20060417.tar.gz  
 cd sams  
 ./configure --prefix=/usr/local/sams \  
 --with-httpd-locations=/var/local/apache/htdocs \  
 --with-mysql-includes=/var/local/mysql/include/mysql \  
 --with-mysql-libpath=/var/local/mysql/lib/mysql  
 make  
 make install   
 На этом подготовка системы закончена, далее переходим к конфигурации системы.        
 КОНФИГУРАЦИЯ   
 KRB5:   
 cd /etc  
 touch krb5.conf    
 Правим krb5.conf чтобы получилось так:   
 [libdefaults] 
 default_realm = YOUR.DOMAIN 
 clockskew = 300 
 v4_instance_resolve = false 
 v4_name_convert = { 
 host = { 
 rcmd = host 
 ftp = ftp 
 } 
 plain = { 
 something = something-else 
 } 
 }   
 [realms] 
 YOUR.DOMAIN = { 
 kdc = ip.of.domain.controller:88 
 admin_server = ip.of.domain.controller:749 
 }   
 [domain_realm] 
 .your.domain = YOUR.DOMAIN  
 your.domain = YOUR.DOMAIN   
 MySQL:   
 Устанавливаем базы MySQL коммандой:   
 /usr/local/mysql/bin/mysql_install_db   
 Устанавливаем права на папку баз данных   
 chown -R mysql:mysql /usr/local/mysql/data   
 Запускаем MySQL   
 /usr/local/mysql/share/mysql/mysql.server start   
 Поставте новый пароль на пользователя root в MySQL коммандой:   
 /usr/local/mysql/bin/mysqladmin -u root password 'new-password'   
 Samba:   
 cd /etc/samba   
 touch smb.conf   
 Правим smb.conf чтобы получилось так:    
 workgroup = your  
 realm = your.domain  
 netbios name = proxy  
 server string =  
 winbind separator = +  
 winbind use default domain = yes  
 winbind uid = 10000-20000  
 winbind gid = 10000-20000  
 winbind enum users = yes  
 winbind enum groups = yes  
 max log size = 50  
 security = domain  
 password server = nameofyourpdc  
 encrypt passwords = yes  
 dos charset = CP866  
 unix charset = KOI8-R  
 nt acl support = yes  
 nt status support = yes  
 local master = no  
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192   
 Выставляем права для NTLM коммандой:   
 chown -R root:squid /var/cache/samba/winbindd_privileged      
 Важно не забудьте добавить на linux запись в файл hosts   
 linux:   
 /etc/hosts добавить строчки:   
 ip.address.of.proxy proxy.your.domain proxy   
 ip.address.of.pdc nameofpdc.yourdomain nameofpdc   
 windows:     
 Заводим пользователя в Active Directory, пользователь должен иметь администраторские права (adminuser).   
 Добавляем машину в домен командами:   
 kinit -p "adminuser"     
 net join   
 Запускаем samba следующими командами:   
 smbd  
 nmbd  
 winbindd   
 Проверяем работоспособность командами:     
 wbinfo -t (Должно выдать checking the trust secret via RPC calls succeeded)  
 wbinfo -p (Должно выдать Ping to winbindd succeeded on fd 4)  
 wbinfo -u (Должна вывести список пользоватей)  
 wbinfo -g (Должна вывести список групп)   
 Squid:   
 Заходим в /usr/local/squid/etc и правим файл squid.conf   
 Добавляем строки:   
 cache_dir ufs /var/spool/squid 3000 16 256   
 cache_access_log /var/log/squid/access.log   
 cache_log /var/log/squid/cache.log   
 cache_store_log /var/log/squid/store.log   
 pid_filename /var/run/squid/squid.pid   
 hosts_file /etc/hosts   
 redirect_program /usr/local/rejik3/redirector /usr/local/rejik3/redirector.conf   
 redirect_children 30   
 auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="your+Internet"  
 auth_param ntlm children 15  
 auth_param ntlm max_challenge_reuses 0  
 auth_param ntlm max_challenge_lifetime 2 minutes  
 auth_param ntlm use_ntlm_negotiate off   
 acl proxyusers proxy_auth REQUIRED  
 http_access allow proxyusers   
 В параметрах авторизации your и Internet обозначают первая часть названия вашего домена AD your.domain, а Internet обозначает группу пользователей в AD имеющих доступ к интернету. Т.е. вы явно не хотите чтобы все пользователи в AD имели доступ к Интернету, по этому кого надо добавляете в группу Internet и только они смогут им пользоваться.   
 Создаем папки и выставляем права:   
 mkdir /var/spool/squid  
 chown -R squid:squid /var/spool/squid  
 mkdir /var/log/squid  
 chown -R squid:squid /var/log/squid  
 mkdir /var/run/squid  
 chown -R squid:squid /var/run/squid  
 chown -R squid:squid /usr/local/rejik3   
 Создаем кэш Squid:   
 /usr/local/squid/sbin/squid -z   
 Запускаем Squid:   
 /usr/local/squid/sbin/squid   
 SAMS:   
 Запускаем скрипт создания mysql пользователя для SAMS   
 /usr/src/sams/mysql/create_sams_user   
 Правим /etc/sams.conf должно получится примерно так:   
 [client]  
 SQUID_DB=squidlog  
 SAMS_DB=squidctrl  
 MYSQLHOSTNAME=localhost  
 MYSQLUSER=sams 
 MYSQLPASSWORD=qwerty 
 SQUIDCACHEFILE=access.log  
 SQUIDROOTDIR=/usr/local/squid/etc  
 SQUIDLOGDIR=/var/log/squid  
 SAMSPATH=/usr/local/sams  
 SQUIDPATH=/usr/local/squid/sbin  
 RECODECOMMAND=/usr/bin/iconv -f KOI8-R -t 866 %finp > %fout  
 LDAPSERVER=ip.of.your.pdc  
 LDAPBASEDN=YOUR.DOMAIN  
 LDAPUSER=adminuser  
 LDAPUSERPASSWD=adminuserpassword 
 LDAPUSERSGROUP=Internet  
 REJIKPATH=/usr/local/rejik3   
 Инсталлируем базы SAMS:   
 /usr/src/sams/mysql/create_sams_db   
 /usr/src/sams/mysql/create_squid_db   
 Apache&PHP:   
 Правим файл /usr/local/apache/conf/httpd.conf   
 Добавляем строки:   
 LoadModule php5_module libexec/libphp5.so   
 В диркетиве <IfModule mod_dir.c> добавляем index.php   
 В директиве <IfModule mod_mime.c> добавляем    
 AddType application/x-httpd-php .php .php3 .p .phtml   
 Копируем файл настроек php   
 cp /usr/src/php-5.1.4/php.ini-dist /usr/local/lib/php.ini   
 Редактируем /usr/local/lib/php.ini   
 Включаем   
 register_globals = On   
 Запускаем apache командой   
 /usr/local/apache/bin/apachectl start   
 rc.local:   
 Делаем автозапуск для всего что мы настроили 
 
    Правим файл /etc/rc.d/rc.local   
 Добавляем строчки:   
 /usr/local/mysql/share/mysql/mysql.server start  
 /usr/sbin/smbd  
 /usr/sbin/nmbd  
 /usr/sbin/winbindd  
 /usr/local/apache/bin/apachectl start  
 /usr/local/sams/bin/samsdaemon  
 /usr/local/squid/sbin/squid   
 Создаем symlinks на необходимые программы   
 ln -s /usr/local/squid/sbin/squid /usr/sbin/squid  
 ln -s /usr/local/sams/bin/samsdaemon /usr/bin/samsdaemon  
 ln -s /usr/local/sams/bin/sams /usr/bin/sams  
 ln -s /usr/local/sams/bin/samsf /usr/bin/samsf  
 ln -s /usr/local/sams/bin/samsredir /usr/bin/samsredir   
 Crontab:   
 crontab -e   
 Добавляем строки:   
 #SAMS  
 */1 * * * * /var/local/sams/bin/sams >/dev/null 2>&1  
 0 0 1 * * /var/local/sams/bin/sams -c >/dev/null 2>&1   
 На этом конфигурация системы закончена.   
 Настройка SAMS   
 cd /usr/local/sams/share/sams/src   
 В файле usersbuttom_1_domain.php в 2 местах и в файле usersbuttom_1_useradd.php надо заменить строку    
 $userlist=`$WBINFOPATH/wbinfo -u > data/userlist`;    
 на   
 $userlist=`/path_to/ldapsearch -x -h ldap.server.ip -p 389 -D user@your.domain -w Password -b "dc=your,dc=domain" -LLL "(memberOf= CN=GroupName,CN=Users,DC=your,DC=domain)" sAMAccountName |grep sAMAccountName|cut -d " " -f 2 > data/userlist`;    
 Фильтр "(memberOf= CN=GroupName,CN=Users,DC=your,DC=domain)", а именно параметр CN надо подгонят в соответствии с вашим AD для этого рекомендую для начала проанализировать свой AD с помощью какого нибдуь LDAP браузера.   
 Открываем браузер   
 вводим адрес 
http://ip.of.your.proxy/sams/    попадаем в веб интерфейс настроек SAMS.   
 Авторизуемся, заходим в SAMS, Администрирование SAMS, нажимаем Настройка SAMS.   
 Считать трафик: Полный   
 Преобразовывать DNS имена: поставить галочку   
 Уровень детализации записей в журнале: 9   
 Домен по умолчанию: your   
 Способ аутентификации пользователя: NTLM ( User )   
 Включить использование домена пользователя: убрать галочку   
 Домен пользователя в access.log записывть: Без изменения   
 Имя пользователя в access.log записывать: Без изменения   
 Используемый сепаратор: снять все галочки   
 Перекодировать имена пользователей домена: Убрать галочку   
 Настройка samsdaemon   
 Проверять наличие команды на реконфигурирование squid каждые: 1   
 Обрабатывать логи SQUID: Убрать галочку   
 Редиректор: Rejik   
 Нажать сохранить изменения   
 Далее выбираем слева Пользователи   
 Нажимаем Загрузить всех пользователей домена   
 Выбираем всех и нажимаем добавить.   
 Все готово!   
 Все пожелания, возражения, несогласия, и т.д. просьба посылать на HITMAN   
 Статья будет периодически обновляться и исправляться    
 2006 HITMAN