Squid, kerberos і ldap

[Ред] Ідентифікація користувачів

[Ред] Принцип роботи протоколу Kerberos (схематично)

Squid, kerberos і ldap

  • Client (Користувач) - користувач, учасник домену, запитувач доступ до ресурсів;
  • AS (Authentication Server) - сервер аутентифікації (наприклад, Microsoft Active Directory);
  • TGS (Ticket Granting Server) - сервер надання квитків (наприклад, Microsoft Active Directory);
  • SS (Service Server) - сервер надає доступ до ресурсів (наприклад, проксі-сервер Squid);
  • TGT (Ticket Granting Ticket) - квиток для отримання квитка.

Визначення протоколу Kerberos а також більш докладні пояснення його принципів роботи можна почерпнути з наступних джерел:

[Ред] Конфігурація користувача для роботи з Kerberos

Конфігурації клієнтської машини

Користувач повинен бути членом домену і знаходиться в базі даних домен контролера Microsoft Active Directory. Клієнтська машина повинна знаходитися в базі домен контролера.

В налаштуваннях проксі веб-оглядача встановити повне доменне ім'я (FQDN) проксі-сервера (наприклад, [email protected]) і номер порту (наприклад, 3180).

Конфігурація сервера Microsoft Active Directory

Необхідно створити користувача в домені: proxy_squid. Пароль користувача повинен не мати терміну придатності (password never expires). Для оптимального рівня безпеки, пароль повинен складатися з восьми символів - це мінімум (букви, цифри, а також спеціальні символи). Для аутентифікації проксі-сервера на контролері домену і подальшої ідентифікації користувачів проксі-сервером Squid, необхідно створити файл keytab. Keytab - це файл який містить Kerberos Principal (хост, користувач і домен) і ключі шифрування (визначаються з пароля Kerberos). Це файл застосовується для аутентифікації в інфраструктурі Kerberos (при цьому не потрібно вручну вводити логін і пароль). Squid буде використовувати keytab для аутентифікації користувачів через протокол Kerberos.

Після створення, файл keytab потрібно створити на проксі-сервер (наприклад, в каталог / etc /).

Створення файлу keytab в командному рядку домен контролера Microsoft Active Directory:

  • nbtname - netbios ім'я домену
  • password - вказати пароль.

realm для Kerberos (то, що пишеться після @) обов'язково писати ВЕЛИКИМИ буквами!

Конфігурація мережевого доступу до проксі-сервера

  • Дозволити доступ проксі-серверів в мережу Інтернет і назад по протоколам: HTTP, HTTPS, SSH, FTP, DNS;
  • Дозволити доступ проксі-серверів в локальну мережу (ЛВС) і назад використовуючи порти:
    • Kerberos, TCP / UDP: 88, 464, 749, 750; TCP: 4444;
    • Ldap, TCP / UDP: 389;
    • Squid, TCP: 3180;
    • SSH, TCP: 22, 10010, 10011;
    • Msft-gc, TCP: 3268;
    • Klogin, TCP: 543;
    • Kshell, TCP: 544;
    • Tell, TCP: 754;
    • Eklogin, minipay, TCP: 2105;
    • DNS, TCP / UDP: 53;
    • HTTPS, TCP: 443;
    • HTTP, TCP: 80;
    • NTP, UDP: 123;
    • ICMP.

[Ред] Конфігурація проксі-сервера Squid на базі ОС Linux

Приклад для ОС CentOS

Проксі-сервера необхідно присвоїти ім'я (hostname): proxy_squid.domain.loc.

Необхідно перевірити доступність DNS сервера за допомогою програм dig і nslookup. Якщо DNS сервер не налаштований, налаштувати DNS. Ім'я проксі-сервера, має бути занесено в базу DNS сервера.

Необхідно перевірити синхронізацію часу на проксі-сервері, домен контролері і клієнта. Для правильної роботи протоколу Kerberos, різниця в часі повинна бути не більше 5 хвилин. Синхронізувати проксі-сервер з NTP сервером можна за допомогою ntpdate.

Установка з FTP сховища пакетів для Kerberos аутентифікації, пакета Squid 3.0 і бібліотеки SASL (Simple Authentication and Security Layer):


Зміна прав доступу для keytab файлу (це файлу, який раніше був сформований на домен контролері за допомогою команди ktpass).


Перевірка правильності створеного файлу keytab.

Якщо файл створений вірно, виконається аутентифікація в домені: Authenticated to Kerberos v5.

Подивитися отриманий квиток Kerberos можна за допомогою команди klist.


Зміна конфігурації аутентифікації Kerberos. У файл /etc/krb5.conf необхідно внести наступні зміни:

Для автоматичної аутентифікації через Squid, необхідно внести такі зміни в виконуваний файл /etc/init.d/squid

Якщо необхідно використовувати для роботи проксі-сервера Squid не стандартний порт (наприклад, 3180), відкрити цей порт в SELinux.

[Ред] Аутентифікація користувачів Active Directory

Налаштування аутентифікації в файлі конфігурації /etc/squid/squid.conf. Для аутентифікації використовується вбудована в Squid програма squid_kerb_auth.

Опція -W вказує на шлях до файлу, який містить пароль. Користувачем файлу повинен бути squid. Пароль повинен збігатися з паролем в Kerberos keytab файлі, сформованому раніше за допомогою ktpass.

Якщо перевірка працює, додати конфігурацію для squid_ldap_group в /etc/squid/squid.conf.

Параметр% LOGIN в описі зовнішньої групи вказує на те, перед перевіркою на входження в цю групу, користувача повинен розпізнаватися

[Ред] Визначення правил доступу для користувачів

Групі GG-KV-GOUP0 і GG-KV-GROUP1 надано доступ в Інтернет через Squid. Група GG-KV-GROUP0 не отримує доступу до файлів в Інтернеті, тип яких вказано в файлі / etc / squid / blocked (для визначення типів файлів можна використовувати регулярні вирази). Група GG-KV-GROUP0 отримує доступ до всіх файлів тип яких не вказано в файлі / etc / squid / blocked. Група GG-KV-GROUP1 отримує повний доступ до всіх файлів.

[Ред] Визначення політик QoS (delay pools)

Оголосити delay pools

Визначити приналежність користувачів до delay pools

Обмежити пропускну здатність

[Ред] Матеріали по проксі-сервера Squid на Xgu.ru

Схожі статті