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- Відредагуйте ваш smb.conf, щоб winbindd заробив. Як шаблон для секції [global] файлу smbd.conf можна використовувати наступне.
- Увійдіть в домен NT як зазначено в керівництві користувача (інформація man) по winbindd для вашої версії Samba.
- Тестування фунціональном winbindd.
- Запустіть nmbd (потрібно, щоб переконається, що все вірно працює).
- Запустіть winbindd.
- Перевірте загальну функціональність winbindd за допомогою "wbinfo -t":
- Перевірте аутентифікацію користувача через winbindd:
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:Тестування Squid з аутентифікацією
Перевірте роботу через squid з використанням IE. Якщо ви увійшли в домен, запит пароля не повинен з'явиться.
Перевірте роботу з іншими браузерами. Стандартний діалог запиту пароля повинен з'явитися.
Якщо в access.log немає імені користувача та / або не станься запит пароля в браузері, то установки acl / http_access в squid.conf невірні.