Рубрика:
Администрирование /
Аутентификация
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
РАШИД АЧИЛОВ, поклонник FreeBSD с многолетним опытом использования ее в совмещенных с Windows сетях и сторонник Open Source. Администратор сетей и средств защиты крупной торговой сети
Pluggable Authentication Modules Использование для ваших нужд
Использование PAM для аутентификации различными способами, а также решения различных задач, таких как автоматическое создание домашнего каталога и почтового ящика, двухфакторная аутентификация. И все это без модификации исходного кода программ!
Немного истории
Pluggable Authentication Modules (PAM, подключаемые модули аутентификации) – это набор разделяемых библиотек, которые позволяют интегрировать различные низкоуровневые методы аутентификации в виде единого высокоуровневого API. Это дает возможность предоставлять унифицированные механизмы для управления, встраивания прикладных программ в процесс аутентификации. Является одной из частей стандартного механизма обеспечения безопасности UNIX.
PAM был в первый раз предложен Vipin Samar и Charlie Lai из Sun Microsystems в октябре 1995 года (RFC 86.0), а в качестве автономной инфраструктуры PAM впервые появился в виде Linux-PAM, разработанной в Red Hat Linux 3.0.4 в августе 1996 года.
В 2002-м была создана альтернативная версия PAM – OpenPAM. Разработка осуществлялась Dag-Erling Smorgrav (работавшим в то время в ThinkSec). Проект спонсировался Security Research Division of Network Associates, Inc. как часть исследовательской программы DARPA CHATS. Причины, по которым была начата реализация собственной версии, заключались в фундаментальных архитектурных недостатках и крайне низком качестве кода.
OpenPAM заменил Linux-PAM во FreeBSD в марте 2002-го. Первый официальный релиз, в котором он присутствовал по умолчанию, был FreeBSD 5.1 в июне 2003 года.
NetBSD с OpenPAM впервые был выпущен в декабре 2005-го (NetBSD 3.0). В MacOS X OpenPAM появился в MacOS X 10.6 в августе 2009 года.
Все примеры в данной статье будут рассматриваться на базе OpenPAM версии 20120526 «Micrampelis».
Существовавший некогда SunPAM более не находится даже гигантом поисковой мысли Google.
Зачем все это надо?
Каждый админ знает, что аббревиатура ААА (Authentication, Authorization, Accounting) скрывает одну из главнейших задач любой программы, которая дает или не дает доступ куда-либо.
Для этого программист либо сам создает все эти методы и соответственно несет риски их реализации, проверяет на устойчивость, выпускает патчи и т.д. либо перекладывает эту задачу на кого-нибудь еще, а сам только обращается к выбранной библиотеке.
Раньше, когда PAM не существовал, программа login должна была самостоятельно зашифровать пароль, программа passwd – самостоятельно и программа su – тоже самостоятельно! Вероятность ошибки, сами понимаете, – сумма вероятностей. После того как был внедрен PAM, это все переместилось в его модули, что привело не только к использованию единой библиотеки, но и к сокращению кода программ.
Также использование PAM дает возможность гибкой настройки процессов аутентификации и авторизации. Нет ничего проще сначала проверить наличие пользователя в локальной базе, потом на сервере Х, доступном через Winbind, потом на сервере Y, доступном через LDAP, и в конце всех этих проверок отказать в доступе, потому что пользователь не входит в доменную группу на сервере Z. Возможны и такие экзотические вещи, как блокировка системы по USB-брелку и аутентификация по отпечаткам пальцев...
Но мы будем рассматривать использование PAM на более приземленных вещах, а именно на задаче любого админа корпоративного почтового сервера – автоматическом создании почтовых ящиков без какого-либо вмешательства со стороны.
Все примеры показаны на основе FreeBSD 9.1 и почтовом сервере Dovecot, но будут работать и в других ОС.
... ... ...
PAM – вещь чрезвычайно мощная и гибкая. Именно поэтому она обладает некоторой сложностью настроек. Зато с помощью РАМ можно делать различные интересные вещи, даже в том случае, если они не предусмотрены автором программы – ему достаточно предусмотреть вообще работу с PAM.
В процессе написания статьи использовались материалы с [3] и [4] – прочитать их будет совсем не лишне. В частности, на [4] перечислены основные модули, входящие в OpenPAM, – а их там более двадцати.
Статью целиком читайте в журнале «Системный администратор», №9 за 2013 г. на страницах 32-36.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|