Налаштування проксі-сервера SquidNt з авторизацією користувачів Active Directory

В організації, основою інформаційної системи якої є мережа, побудована на серверах Windows c Active Directory, для вирішення типового завдання забезпечення виходу в інтернет, можна використовувати варіант, багаторазово випробуваний на Linux - цепроксі-сервер Squid. Для запуску Windows використовується його збірка SquidNt. Для когось важливо буде те, що Squid поширюється під ліцензією GNU General Public License, тобто безкоштовно. Можливості налаштування Squid досить широкі і дозволяють забезпечити доступ практично до всіх http-ресурсів мережі інтернет, з фільтруванням (блокуванням банерів), обмеженням доступу, обмеження трафіку користувача чи комп'ютера тощо. Процес встановлення самої програми нескладний, тому пропущу його і одразу перейду до основної теми нотатки.

Завдання: забезпечити вихід в інтернет через проксі-сервер двом групам користувачів Active Directory. Перша група має необмежений доступ. Друга група має доступ лише до сайтів зі списку обмеженого доступу. На всіх комп'ютерах інстальовано операційну систему Windows, основним браузером є Internet Explorer. Додатково іноді використовуються Firefox та Opera. Доступ повинен надаватися лише з тих комп'ютерів, які додані до списку дозволених для доступу в інтернет.

Далі наведу шматочок файлуsquid.conf :

Файл "C:/squid/etc/acls/allow.restrictedaccess.sites.acl" містить список дозволених сайтів за регулярним виразом у кожному рядку сайту:

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

Також зроблено файл для внесення змін допрацюючу конфігурацію після редагування файлу squid.conf.

mswin_ntlm_auth.exe - натуральний автентифікатор Windows NTLM/NTLMv2 для Squid з підтримкою NTLM NEGOTIATE.

mswin_ntlm_auth [-d] [-v] [-AD LocalUserGroup] [-h]

-d увімкнення налагодження

-v включення докладного налагодження NTLM

mswin_check_lm_group.exe - це обробник схеми зовнішнього визначення списків контролю доступу для Squid.

mswin_check_lm_group [-D domain][-G][-c][-d][-h]

-D вказується домен користувача

-G програма працює в глобальному, тобто в доменному режимі

-c ім'я групи може бути вказано без урахування регістру

-d увімкнути налагодження

Цей обробник повинен використовуватися зі схемою автентифікації (Basic, NTLM або Negotiate), яка працює з користувачами Windows Active Directory.

Обробник читає зі стандартного введення доменне ім'я користувача, по ньому отримує список груп з Active Directory і порівнює їх із зазначеною в описі правила.

Групи з пробілами в імені повинні бути укладені в лапки, наприклад, "Domain Users", і поміщені в окремий файл, який викликається з правила, наприклад:

acl ProxyUsers external NT_global_group "c:/squid/etc/DomainUsers"

А файл "c:/squid/etc/DomainUsers" має лише один рядок:

Стандартне порівняння імен груп чутливе до регістру букв, тому потрібно або дотримуватися регістру, або вказати ключ -c, який, однак, не працює з іменами груп, написаних мовою, відмінною від англійської.

Аутентифікатори NTLM і Basic, що використовуються, повинні запускатися без ключів -A і -D.