Xелпер basic_pam_auth для аутентифікації користувачів Active Directory через зв'язку PAM з SSSD
У проксі-сервера Squid є цілий ряд програм «хелперів», що забезпечують різні механізми аутентифікації. У більшості випадків використовуються хелпери, що забезпечують безпечні способи аутентифікації, наприклад ntlm_auth або negotiate_kerberos_auth. так як ці хелпери дозволяють захистити передані через мережу облікові дані аутентіфіціруемих на проксі користувачів. Однак в будь-який ІТ інфраструктури знайдуться якісь додатки, які змушують адміністраторів додатково включати на Squid підтримку Basic -аутентіфікаціі. Мало того, що Basic-аутентифікація сама по собі є небезпечним способом аутентифікації, так як облікові дані аутентіфіціруемого на проксі користувача передаються по мережі у відкритому вигляді, так ще й більшість хелперів Basic-аутентифікації, наявних в Squid, для підключення до віддалених систем зберігання облікових даних використовують незахищені протоколи.
Наприклад, раніше розглянутий нами хелпер basic_ldap_auth. дозволяє підключатися до контролерів домену Active Directory для аутентифікації користувачів на проксі і робить він це посредствам відкритого незахищеного з'єднання по протоколу LDAP. Тобто облікові дані службового доменного користувача, які використовуються хелперів для підключення до LDAP-каталогу передаються по мережі у відкритому вигляді.
Замість хелпера basic_ldap_auth. для Basic-аутентифікації в домені Active Directory ми можемо використовувати хелпер basic_pam_auth. який в зв'язці з налагодженою службою sssd на проксі-сервері Squid дозволить нам виключити такий етап, як передача в відкритому вигляді по мережі облікових даних для підключення до каталогу Active Directory.
Для використання хелпера basic_pam_auth в розглянутій далі конфігурації передбачає, що на сервері Squid вже встановлена і налаштована служба sssd. а також вироблено підключення сервера до домену Active Directory. Налаштування в нашому прикладі виконується на Debian 8 (Jessie). Приклад такого налаштування описаний в статті Підключення Debian GNU / Linux 8.6 до домену Active Directory за допомогою SSSD і realmd.
Отже, створимо на сервері Squid окрему політику PAM. з якої буде працювати хелпер basic_pam_auth. Ця політика буде викликати бібліотеку pam_sss.so для аутентифікації користувачів:
Тепер подивимося те, які параметри може приймати хелпер basic_pam_auth.
Параметрів не так багато:
Тестуємо роботу хелпера, викликавши його з параметром відсікання доменної частини (-r) і вказавши йому ім'я створеної PAM-політики (-n)
Після виконання команди відправляємо працює хелперів зв'язку ім'я користувача і пароль (через пробіл). При цьому перевіряємо реакцію хелпера на різні формати надання імені користувача.
Як бачимо, хелпер цілком справляється зі своїм завданням - перевіркою наданих облікових даних користувача в домені Active Directory.
Додаємо конфігурацію виклику хелпера в squid.conf.
Перевіряємо результат в клієнтському браузері.
Незважаючи на те, що при тесті ім'я користувача в форматі «KOM \ chapaev-vi» відпрацьовує успішно, на практиці з клієнтського браузера до хелпера це ім'я доходить в форматі «KOM \\ chapaev-vi» і хелпер не може його правильно обробити. Тому простим вирішенням даної проблеми буде або використання клієнтами короткого імені «chapaev-vi», або повного з доменної частиною «[email protected]» (може знадобитися в багатодоменному інфраструктурі).