Эта документация основана на статье Д.Новикова "Авторизация Windows- пользователей в SQUID на основе их доменных аккаунтов"
Оригинал: http://www.artmagic.ru/labs/sqlandwin.shtml

## Инсталляция и настройка SQUID

### Установка и конфигурация SQUID.

Скачайте и разархивируйте исходные коды SQUID:

tar xvfz squid-2.x.tar.gz

Серевер SQUID нужно скомпилировать с поддержкой схем авторизации и модулем winbind, для этого запустите файл конфигурации с параметрами:

--enable-auth="ntlm,basic"
--enable-basic-auth-helpers="winbind"
--enable-ntlm-auth-helpers="winbind"
Если вы планируете использовать ncsa аутентификацию, добовать ее в параметр --enable-auth

Кроме того, SQUID поставляется с файлами заголовков определенной версии SAMBA.
Если у ваша версия SAMBA не совпадает, необходимо при конфигурировании добавить следующую строку:

--with-samba-sources=путь,

где путь - путь к заголовкам вашей версии SAMBA.

Возможно, наиболее правильным решением является в любом случае собирать SQUID с файлами заголовков той версии SAMBA, что установлена в вашей системе.

далее компилируем и инсталлируем SQUID:

make
make install SQUID может беспечивать доступ пользователей:

- по IP адресам пользователей
- с NCSA авторизацие пользователй
- с авторизацией в домене Windows (NTLM авторизация)
  Рассмотрим их подробнее.

  ### Конфигурируем SQUID на работу с NTLM авторизацией в домене Windows NT 4

  Для того, чтобы SQUID мог авторизоватьпользователей в домене Windows, необходимо установить и настроить SAMBA :

  Далее проверяем авторизатор SQUIDа на работу с winbind. Для этого нужно запустить:
  /usr/lib/squid/wb_auth -d
  И ввести вручную домен+имя пароль (через пробел).

  Если все работает корректно, то буден выдан ответ:

  /wb_auth[91945](wb_basic_auth.c:129): Got 'dmn XXXXX' from squid (length: 10)
  /wb_auth[91945](wb_basic_auth.c:55): winbindd result: 1
  /wb_auth[91945](wb_basic_auth.c:58): sending 'OK' to squid

  в файл /etc/squid/squid.conf добавляем строки:
  auth_param ntlm program /usr/lib/squid/wb_ntlmauth
  auth_param ntlm children 5
  auth_param ntlm max_challenge_reuses 0
  auth_param ntlm max_challenge_lifetime 2 minutes
  auth_param basic program /usr/local/squid/libexec/wb_auth
  auth_param basic children 5
  auth_param basic realm Squid proxy-caching web server
  auth_param basic credentialsttl 2 hours

  Причем важно чтобы NTLM авторизация шла первой, иначе будет применяться авторизация basic, и IE будет спрашивать пароль.

  ### Конфигурируем SQUID на работу с NTLM авторизацией в домене Windows 2000 и выше

  Для того, чтобы SQUID мог авторизоватьпользователей в домене Windows 2000, необходимо установить и настроить SAMBA:

  Разработчики SQUID рекомендуют использовать с Samba3 (Active Directory) хелпер, идущий в составе samba3:
  ntlm_auth.

  Далее проверяем авторизатор SQUIDа на работу с winbind. Для этого нужно запустить:
  /path/to/ntlm_auth --helper-protocol=squid-2.5-basic

  И ввести вручную домен+имя пароль (через пробел).

  Если все работает корректно, то буден выдан ответ:

  [2007/08/28 16:11:41, 3] utils/ntlm_auth.c:check_plaintext_auth(292)
  NT_STATUS_OK: Success (0x0)
  OK

  в файл /etc/squid/squid.conf добавляем строки:

  auth_param ntlm program /path/to/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
  auth_param ntlm children 5
  auth_param ntlm max_challenge_reuses 0
  auth_param ntlm max_challenge_lifetime 2 minutes
  auth_param basic program /path/to/ntlm_auth --helper-protocol=squid-2.5-basic
  auth_param basic children 5
  auth_param basic realm Squid proxy-caching web server
  auth_param basic credentialsttl 2 hours

  Причем важно чтобы NTLM авторизация шла первой, иначе будет применяться авторизация basic, и IE будет спрашивать пароль.

  ### Конфигурируем SQUID на авторизацию пользователей через LDAP в Active Directory

  Проверяем авторизатор SQUIDа на работу с Active Directory. Для этого нужно запустить:

  /usr/lib/squid/squid_ldap_auth -u cn -b "cn=Users,dc=your,dc=domain" ldapserver
  И ввести вручную имя пароль (через пробел).

  Если все работает корректно, то буден выдан ответ:
  OK

  в файл /etc/squid/squid.conf добавляем строки:

  auth_param ntlm program /usr/lib/squid/squid_ldap_auth -u cn -b "cn=Users,dc=your,dc=domain" ldapserver
  auth_param ntlm children 5
  auth_param ntlm max_challenge_reuses 0
  auth_param ntlm max_challenge_lifetime 2 minutes
  auth_param basic program /usr/lib/squid/squid_ldap_auth -u cn -b "cn=Users,dc=your,dc=domain" ldapserver
  auth_param basic children 5
  auth_param basic realm Squid proxy-caching web server
  auth_param basic credentialsttl 2 hours

  Внимание!!! настройка работы с AD довольно сложная штука, по-этому если что-то не получается не пишите сразу мне письма, а попытайтесь почитать документацию в интернете

  ### Конфигурируем SQUID на работу с ncsa авторизацией

  в файл /etc/squid/squid.conf добавляем строки:
  auth_param basic program /usr/libexec/ncsa_auth /etc/squid/ncsa.sams
  auth_param basic children 5
  auth_param basic realm Squid proxy-caching web server
  auth_param basic credentialsttl 2 hours
  Внимание!!! NTLM и NCSA авторизация одновременно работать не могут. используйте их раздельно.

  ### Установка редиректора

  Если Вы хотите, чтобы при работе прокси сервера вырезались графические объекты (баннеры и исчетчики), необходимо настроить работу SQUID с редиректором.
  SAMS автоматически не прописывает редиректор в squid.conf. Почему? Возможно вы хотите использовать другой редиректор, навязывать что-то нехочу.
  Добавьте в squid.conf строку
  redirect_program /path/to/redirector
  Подробно о настройке редиректора читайте здесь

  ### Файл squid.conf

  ### Дополнительная информация:

  Реконфигурированием прокси-сервера squid занимается демон samsdaemon.
  Реконфигурирование прокси-сервера squid происходит путем изменения файла squid.conf и подачей сигнала squid на реконфигурацию.

  При внесении изменений в squid.conf samsdaemon привязывается к тэгам начала разделов, например
  # TAG: acl
  Наличие этих тэгов необходимо!!!
  Кроме того, sams добавляет только те настройки, которые необходимы для работы пользователей, зарегистрированных в SAMS.
  acl типа acl all src 0.0.0.0/0.0.0.0 и прочие не вносятся и не удаляются.
  Если вы создали какие-то свои настройки для sams в squid.conf, чтобы они не уничтожались при реконфигурировании, поставьте после ваших правил знак комментария # (решетка). samsdaemon не удаляет строки где есть знак #.