Модуль pam_access напоминает модуль pam_listfile, поскольку тоже связан с контролем доступа. Но.есть и два отличия. Во-первых, это модуль типа account. Данное отличие означает, что есть два схожих механизма ограничения доступа для модулей типа auth (pam_listf ile) и account (pam_access). Это позволяет управлять приложениями, которые не поддерживают тот или иной тип модулей.
Во-вторых, модуль pam_access требует наличия конфигурационного файла /etc/ security/access . conf. Записи этого файла имеют следующий формат:
привилегия : пользователи : источники
Назначение полей описано в табл. 5.14. При вызове модуля pam_access в файле access . conf ищется первая запись с соответствующим значением имени пользователя и адреса его подключения. Если совпадение не найдено, доступ предоставляется.
Предположим, например, что доступ к системе необходимо разрешить лишь определенным пользователям, работающим за определенными компьютерами. Образец файла /etc/security/access . conf приведен в листинге 5.24. Номера строк проставлены для наглядности и не являются частью файла. В строке 2 запрещается любой доступ из доменов evil. com и spam. org. В строке 3 запрещается любой доступ с консоли, если Таблица 5.14. Поля файла /etc/security/access . conf Поле Описание
привилегия "+" — если доступ предоставляется, "-" — если доступ запрещен
пользователи Список разделенных пробелами имен пользователей, i-рупп пользователей или сетевых групп. Именам сетевых групп должен предшествовать символ. Поддерживаются специальные ключевые слова ALL (соответствует любому имени) и EXCEPT (позволяет создавать списки с условиями) источники Список разделенных пробелами имен терминалов, компьютеров, доменов (любое имя, начинающееся с точки) или сетевых адресов (сетевая часть IP-адреса, оканчивающаяся точкой). Поддерживаются ключевые слова ALL (соответствует любому имени), LOCAL (соответствует любому имени, которое не оканчивается точкой) и EXCEPT (позволяет создавать списки с условиями) только это не суперпользователь. В строке 4 разрешается доступ всем пользователям, кроме root, если запрос поступает из сети 172.17.0.0. В строке 5 разрешается доступ всем членам группы wheel, а также пользователю paul компьютера leghorn. В строке 6 запрещается весь остальной доступ.
Листинг 5.24. Образец файла /etc/security/access . conf
1. access.conf file
2. -:ALL:.evil.com .spam.org
3. -:ALL EXCEPT root: ttyl
4. +:ALL EXCEPT root:172.17.
5. +:wheel paul:leghorn
6. -:ALL:ALL
Далее следует добавить строку
account required /lib/security/pam_access.so
во все необходимые файлы каталога /etc/pam. d. В листинге 5.25 показан пример файла /etc/pam. d/login.
Листинг 5.25. Вызов модуля pam_access в файле /etc/pam. d/login
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_unix. so
auth required /lib/security/pam_nologin. so
account required /lib/security/pam_unix.so
account required /lib/security/pam_access.so
password required /lib/security/pam_cracklib.so minlen=20\
retry=3 type=SECRET
password required /lib/security/pam_unix.so md5 use_authtok
session required /lib/security/pam_unix.so
Любые попытки доступа в систему из запрещенных компьютеров или сетей будут приводить к выдаче сообщения Permission denied, как в листинге 5.26, где пользователь paul пытается зарегистрироваться с консоли.
Листинг 5.26. Неудачная попытка регистрации из-за ограничений модуля pam_access
pyramid login: paul Password: Permission denied pyramid login:
Все неудачные попытки регистрации, запрещенные из-за установок модуля pam_access, фиксируются в файле /var/log/messages.