Налаштовуємо squid для роботи з active directory

Налаштовуємо squid для роботи з active directory

Продовжуємо цикл статей про інтеграцію проксі-сервера Squid і Active Directory. Одним з найбільш важливих питань є прозора аутентифікація користувачів домену на проксі-сервері. У цій частині ми розповімо, як налаштувати аутентифікацію по протоколу Kerberos, яка дозволить використовувати єдину точку входу, коли користувач вводить логін і пароль один раз - при вході в систему.







У минулій частині ми вже торкалися цього питання, але повторимося: ми не бачимо ніякого практичного сенсу використовувати для роботи з Active Directory відмінні від Kerberos способи аутентифікації. Всі сучасні системи підтримують Kerberos, а знижувати безпеку системи заради потенційної сумісності з абстрактними системами, які можуть не підтримувати Kerberos, явно не слід.

Підготовка Active Directory

Перед тим, як налаштовувати підтримку Kerberos-аутентифікації на роутері, необхідно виконати ряд підготовчих дій в Active Directory. Перш за все заведемо службового користувача, в нашому випадку squid3.

Налаштовуємо squid для роботи з active directory

Забороняємо зміну пароля користувачем і не обмежуємо термін його дії, останнє дуже важливо, тому що в противному випадку вам доведеться через деякий час не тільки змінити пароль службового користувача, але і заново виконати всі підготовчі дії.

Налаштовуємо squid для роботи з active directory
Тепер створимо спеціальний keytab-файл, який містить ім'я Kerberos-принципала (ім'я хоста, користувача і домен) і ключ, створений на основі пароля. Надалі keytab-файл буде використовуватися squid для аутентифікації користувачів в AD. Відкриємо командний рядок і введемо наступну команду (дотримуючись регістр):

На перший погляд команда досить складна. Розберемо її докладніше, ключ -princ позначає Kerberos-принципала і містить FQDN ім'я роутера і область Kerberos, яка збігається з ім'ям домена, але записується в верхньому регістрі, -mapuser і -pass ім'я користувача і пароль відповідно, -ptype - тип принципала і - out - ім'я та розташування keytab-файлу.







Якщо все зроблено правильно, то команда повинна відпрацювати без помилок.

Налаштовуємо squid для роботи з active directory
Потім слід передати згенерований keytab-файл на роутер будь-яким доступним чином, наприклад, через WinSCP в домашню директорію користувача.

Налаштовуємо squid для роботи з active directory
Налаштування підтримки Kerberos в Ubuntu Server / Debian

Після того, як ми передали keytab-файл на роутер, його слід розмістити в надійному місці і обмежити доступ. Зрозуміло, що домашня директорія користувача не найкраще для цього місце. Так як працювати з ним буде squid, то логічно буде розташувати keytab-файл в папці з настройками проксі-сервера.

Потім змінимо власника і встановимо обмежені права на файл:

Для підтримки Kerberos встановимо пакет krb5-user:

При установці слід вказати область Kerberos за замовчуванням, введіть ім'я вашого домену в верхньому регістрі:

Першою йде секція libdefaults. яка містить параметри за замовчуванням, а саме область Kerberos (опція створюється автоматично) і keytab-файл:

Наступна секція realms описує області Kerberos, у нас вона одна - INTERFACE31.LAB

Тут все зрозуміло, єдиного пояснення вимагає опція admin_server. в її якості вказуємо контролер домену, виконуючий FSMO-роль PDC.

Остання секція зіставляє домени з областями Kerberos:

Зберігаємо файл. Тепер перевіримо роботу Kerberos, для цього виконаємо команду:

Якщо все зроблено правильно, ви повинні отримати повідомлення про успішну аутентифікації.

Видалимо отриманий квиток командою:

Налаштування Kerberos-аутентифікації в Squid

Перш за все слід "навчити" squid працювати з keytab-файлом, для цього створимо спеціальний файл настройок:

І внесемо в нього наступні рядки:

Ключ -d в першому рядку вказано для налагодження, переконавшись, що все працює як треба його слід прибрати, щоб уникнути надмірного роздування логів.

У секцію з елементами ACL додамо:

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

зберігаємо зміни, перезавантажуємо сервер.

Налаштовуємо squid для роботи з active directory

Тепер зайдемо на тому ж ПК локальним користувачем, замість доступу до мережі побачимо запрошення ввести логін і пароль:

Налаштовуємо squid для роботи з active directory
Також заглянемо в /var/log/squid3/cache.log. сюди squid пише зневадження, в самому кінці рядка можна побачити, хто саме пройшов аутентифікацію і отримав доступ.

Налаштовуємо squid для роботи з active directory
Переконавшись, що все працює як треба, вимикаємо збір налагоджувальної інформації, прибравши ключ -d з рядка в /etc/squid3/squid.conf.

Додаткові матеріали: