Squid часто задаються (faq) аутeнтіфікація

Зауваження: представлені тут інформація вірна для версії 2.4.

Користувачі будуть аутентифицироваться, якщо squid налаштований на використання ACL типу proxy_auth (див. Слід. Питання).

Броузер посилає користувальницький запит на аутентифікацію в загловке Authorization.

Якщо Squid отримує запит і якщо список правил http_access містить ACL типу proxy_auth. Squid шукає загловок Authorization. Якщо заголовок присутній, Squid декодує його і витягує ім'я користувача і пароль.

Якщо заголовок відсутній, Squid повертає HTTP-відповідь зі статусом 407 (Proxy Authentication Required). Призначений для користувача агент (броузер) отримує відповідь 407 і просить користувача ввести ім'я та пароль. Ім'я та пароль кодується і посилається в заголовку Authorization для подальших запитів до проксі.

Аутентифікація фактично відбувається поза основним процесу Squid. Коли Squid стартує, він запускаеться кілька процесів аутентифікації. Ці процеси Новомосковскют імена користувачів і паролі зі стандартного введення і видають "OK" або "ERR" на стандартний висновок. Подібна техніка дозволяє вам використовувати велику кількість різних схем аутентифікації, однак ви можете використовувати тільки одну схему в даний момент часу.

Вихідний код Squid йде з декількома типами процесів аутентифікації. включаючи:
  • LDAP: використовує Lightweight Directory Access Protocol
  • NCSA: використовує NCSA-стиль для файлу імен користувачів і паролів.
  • MSNT: використовує Windows NT authentication domain.
  • PAM: використовує Linux Pluggable Authentication Modules scheme.
  • SMB: використовує SMB-північ типу Windows NT або Samba.
  • getpwam: використовує старомодний файл паролів old-fashioned Unix.

Для аутентифікації користувачів вам необхідно зібрати і встановити один з пропонованих модулів аутентифікації, встановити інший. або свій власний.

Ви вказуєте Squid, яку програму аутентифікації використовувати за допомогою опції authenticate_program в squid.conf. Ви вказуєте ім'я програми плюс опції командного рядка якщо необходімо.К наприклад:

Переконайтеся що ваша програма аутентифікації встановлена ​​і працює правильно. Ви можете протестувати її вручну.

Додайте кілька proxy_auth ACL в ваш конфігураційний файл. Наприклад: Термін REQURIED означає, що будь-який аутенентіфіцірований користувач потрапить в ACL на ім'я foo.

Squid надає вам добре структурований контроль, який визначається індивідуальними іменами користувачів. Наприклад: У цьому прикладі користувачам lisa, sarah, joe, і frank дозволено використовувати проксі в будь-який час. Іншим користувачам дозволений доступ тільки в денний час.

Так. Успішні запити аутентифікації кешуються на одну годину за замовчуванням. Це означає (в гіршому випадку), що є можливість для кого-небудь використовувати ваш кеш протягом години після того, як він був видалений з бази аутентифікації.

Ви можете контролювати час закінчення терміну дії пароля за допомогою опції authenticate_ttl.

Squid розміщує паролі відкритим текстом в пам'яті кеша.

Squid передає відкритим текстом ім'я користувача і пароль, коли спілкується з зовнішнім процесом аутентифікації. Зауважте однак, що ці межпроцессовие взаємодії відбуваються по TCP-з'єднань, прив'язаним до loopback-інтерфейсу. Тому не представляється можливим процесам з інших компьюретов "вистежити" трафік аутентифікації.

Кожна програма аутентифікації повинна вибирати власну схему для постійного зберігання паролів та імен користувачів.

Winbind - нове доповнення до Samba, що надає деякі чудові можливості для бюджетів користувачів на основі NT. Для Squid winbind є правильне і ефективне рішення і для basic і для NTLM challenge / response аутентифікації в протиставлення контролеру домену NT.

Потрібно Samba версії 2.2.4 або вище. Samba 2.2.4, 2.2.5 та 3.0a17 вміють працювати з аутентифікатором winbind в Squid 2.5.

Аутентифікація через winbind успішно працює під Linux, FreeBSD і Solaris.

Налаштування Samba

Samba долбжна бути зібрана з такими опціями в configure:

Опціонально, для збірки Samba 2.2.5 можна накласти патч smbpasswd.diff Див. Нижче SMBD and Machine Trust Accounts. щоб визначити чи потрібен вам цей патч.

Тестування Samba winbindd
  1. Відредагуйте ваш smb.conf, щоб winbindd заробив. Як шаблон для секції [global] файлу smbd.conf можна використовувати наступне.
  2. Увійдіть в домен NT як зазначено в керівництві користувача (інформація man) по winbindd для вашої версії Samba.
  3. Тестування фунціональном winbindd.
    • Запустіть nmbd (потрібно, щоб переконається, що все вірно працює).
    • Запустіть winbindd.
    • Перевірте загальну функціональність winbindd за допомогою "wbinfo -t":
    • Перевірте аутентифікацію користувача через winbindd:
    ЗАУВАЖЕННЯ. і plaintext і challenge / response повинні повернути "succeeded." Якщо "challenge / response" не повертають жодного статусу, то значить Samba була зібрана без опції "--with-winbind-auth-challenge" і не може підтримувати ntlm-аутентифікацію.

SMBD і Machine Trust Accounts

Однак в разі, коли хелпер winbind СКВИДов єдиний із запущених компонент Samba, smbd може простоювати. Дійсно, може не бути інших причин запускати smbd взагалі.

UglySolution.pl - це простий скрипт на perl, щоб завантажити smbd, подсоеденіться до розшарений ресурсу Samba з використанням smbclient і сгенирувати досить фальшивої активності, щоб викликати зміну довірчого пароля машини smbd.

Після накладки патча, синтаксис зміни пароля smbpasswd виглядає так:

Налаштування Squid

Squid повинен бути зібраний з такими опціями в configure:

Тестування Squid без аутентифікації

Тестування winbind ntlm helper неможливо з командного рядка, але winbind basic-аутентифікатор може бути протестований як і будь-який інший basic helper: Хелпер повинен повернути "OK", якщо отримав вірні ім'я користувача / пароль.

Додайте наступне, щоб включити і winbind basic і ntlm аутентифікатор. IE буде використовувати ntlm і інші basic:
  • Додайте acl для аутентифікації:
  • Тестування Squid з аутентифікацією

    Перевірте роботу через squid з використанням IE. Якщо ви увійшли в домен, запит пароля не повинен з'явиться.

  • Netscape, mozilla, opera.

    Перевірте роботу з іншими браузерами. Стандартний діалог запиту пароля повинен з'явитися.

    Якщо в access.log немає імені користувача та / або не станься запит пароля в браузері, то установки acl / http_access в squid.conf невірні.