Эта документация основана на статье Д.Новикова "Авторизация 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 не удаляет строки где есть знак #.