Возможно вы искали: 'T-Mek'

May 15 2025 19:15:32
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Настройка PAM для использования LDAP (pam ldap linux auth)

Настройка PAM для использования LDAP (pam ldap linux auth)

Ключевые слова: pam, ldap, linux, auth, (найти похожие документы)

From: Артемий Евгеньевич Капитула <dalth@surw.ru>
Date: Mon, 27 Mar 2004 14:31:37 +0000 (UTC)
Subject: Настройка PAM для использования LDAP

Оригинал: http://www.surw.ru/~dalth/pam_ldap.html

Настройка PAM_LDAP

ВАЖНОЕ ЗАМЕЧНИЕ: ВСЕ ДЕЙСТВИЯ, ОПИСАННЫЕ В ДАННОЙ СТАТЬЕ БЫЛИ
БОЛЕЕ-МЕНЕЕ ПРОВЕРЕНЫ НА ПРАКТИКЕ, НО В ЛЮБОМ СЛУЧАЕ - ВСЕ ВРЕМЯ
УСТАНОВКИ ЭТИХ НАСТРОЕК Я НАСТОЯТЕЛНО РЕКОМЕНДУЮ ВАМ ИМЕТЬ ДВЕ
ЗАПАСНЫХ (Т.Е. ТЕХ, С КОТОРЫХ ВЫ НЕ РАБОТАЕТЕ В ТЕКУЩИЙ МОМЕНТ)
КОНСОЛИ С ПРАВАМИ СИСТЕМНОГО АДМИНИСТРАТОРА.

Что такое PAM_LDAP?

PAM_LDAP (он же nss_ldap) - это модуль для подсистемы PAM (Pluggable
Authentication Modules), позволяющий хранить в каталоге LDAP единую
базу системной информации - пользователей, групп, компьютеров,
сервисов и т.д., которую могут совместно использовать множество
Linux-сиситем. Хотя существуют реализации этого модуля не только для
Linux, но и для FreeBSD, Solaris и других Unix-систем, в этой краткой
инструкции я буду рассматривать ТОЛЬКО Linux, причем на примере своего
дистрибутива Fedora Core 1 (впрочем, эти же инструкции должны
естественным образом без особых изменений пойти и на других
более-менее современных дистрибутивах).

Необходимые условия

* Установленный пакет nss_ldap
* Установленный пакет openldap-servers
* Прямые руки :-)

Настройка сервера OpenLDAP

Прежде всего, необходимо выбрать suffix - фактически, это полное имя
корневого объекта вашего каталога. Обычно его связывают с доменным
именем, например для домена pupkin.com.ru оптимальнее всего
использовать следующий суффикс: dc=pupkin,dc=com,dc=ru. Кроме этого,
нам потребуется имя для администраторского эккаунта в каталоге. Это
имя получается добавлением уникального в текущей ветви дерева
идентификатора к суффиксу. Полученное значение называют rootdn, и
используя это имя, можно получить полный доступ к каталогу. Пусть в
нашем примере rootdn будет cn=sysadm,dc=pupkin,dc=ru. теперь укажем
пароль для этой учетной записи, для чего запустим утилиту slappasswd:
slappasswd -h '{SMD5}' -s zarazamelkaya

Слово zarazamelkaya в данном случае и будет являться паролем. В
приципе, можно указать пароль и открытым текстом, но этого делать не
рекомендуется. Выданную утилитой slappasswd строку стоит записать
куда-нибудь :-)

Теперь приступаем к редактированию /etc/openldap/slapd.conf:

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/redhat/autofs.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/misc.schema

allow bind_v2

pidfile /var/run/slapd.pid

access to * by peername=127.0.0.1 read by anonymous auth by users read

database ldbm
suffix "dc=pupukin,dc=com,dc=ru"
rootdn "cn=sysadm,dc=pupkin,dc=com,dc=ru"
rootpw {SMD5}hjUUf7pqdVsrpG44/Ql+hlszywY=

directory /var/lib/ldap

index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub

В качестве параметра для rootpw мы и указали сгенерированный хэш от
пароля первичного администратора сервера каталога. Директивы include
служат для подключения файлов схем LDAP, описывающих атрибуты и классы
объектов, хранимых в каталоге. Директивы index указывают, по каким
атрибутам нужно строить индектсы для ускорения поиска. Параметр
database определяет бакэнд для хранения базы.

Запускаем сервер: /etc/init.d/ldap start

Создаем корневой объект каталога:

admin$ echo -e "dn: dc=pupkin,dc=com,dc=ru
objectClass: dcObject
objectClass: organization
dc: pupkin
o: Vasya Pupkin and Co. Ltd" | ldapadd -x
-D "cn=sysadm,dc=pupkin,dc=com,dc=ru"
-w zarazamelkaya
-h localhost -p 389

Проверяем, что сервер работает:

ldapsearch -x -D "cn=sysadm,dc=pupkin,dc=com,dc=ru"
-w zarazamelkaya -s sub -b "dc=pupkin,dc=com,dc=ru"
"(objectClass=*)"

Если ошибок нигде совершено не было, ldapsearch выдаст на стандартный
вывод описание созданого командой ldapadd объекта в формате ldiff.
Впоследствии такой ldiff-файл может быть использован для
восстановления каталога, или для создания его двойника.



Настройка PAM для использования LDAP

Для достижения нужного эффекта нам необходимо "довести до ума"
конфигурационный файл для pam_ldap (называется он /etc/ldap.conf) и
произвести настройку собственно PAM. Начинаем со второго пункта, и
запускаем authconfig (в RedHat и подобных). Активизируем использование
аутентификации в LDAP, НЕ ОТКЛЮЧАЯ ИСПОЛЬЗОВАВШИХСЯ РАНЕЕ ОПЦИЙ, иначе
начнутся проблемы. Указываем в качестве адреса сервера LDAP адрес
127.0.0.1 и в качестве basedn значение нашего suffix'а из конфигурации
сервера: dc=pupkin,dc=com,dc=ru

На самом деле, authconfig просто исправляет три файла:
/etc/pam.d/system-auth /etc/ldap.conf и /etc/nsswitch.conf, при этом
после завершения authconfig рекомендуется проверить, чтобы содержимое
/etc/ldap.conf выглядело примерно описанным ниже образом. В принципе,
в /etc/ldap.conf есть много очень полезных комментариев и параметров,
но нам пока что они не интересны. Вот слегка измененная копия
/etc/ldap.conf с работающей системы.

host 127.0.0.1
base dc=pupkin,dc=com,dc=ru
rootbinddn cn=sysadm,dc=pupkin,dc=com,dc=ru
port 389
scope sub
pam_filter objectclass=posixAccount
pam_login_attribute uid
nss_base_passwd dc=pupkin,dc=com,dc=ru?sub?objectClass=posixAccount
nss_base_shadow dc=pupkin,dc=com,dc=ru?sub?objectClass=posixAccount
nss_base_group dc=pupkin,dc=com,dc=ru?sub?objectClass=posixGroup
ssl no
pam_password md5

Также неоходимо создать файл /etc/ldap.secret и сохранить в нем пароль
администратора каталога. Этот пароль будет использоваться для
выполнения административных функций, и не будет доступен обычным
пользователям:

# echo "zarazamelkaya" >/etc/ldap.secret
# chmod 600 /etc/ldap.secret
# chmod root:root /etc/ldap.secret

В /etc/nsswitch.conf строки, указывающие, из какого источника
программам нужно брать данные о пользователях, паролях и группах,
должны выглядеть аналогично следующему примеру:

passwd: files ldap
shadow: files ldap
group: files ldap

Настройки PAM для использования LDAP производятся путем корректного
вписывания pam_ldap.so в нужные файлы в /etc/pam.d - уточним, что
нужный файл в моем любимом дистрибутиве Fedora Core 1 только один,
зовется он /etc/pam.d/system-auth и выглядит следующим образом:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth sufficient /lib/security/$ISA/pam_ldap.so use_first_pass
auth required /lib/security/$ISA/pam_deny.so

account sufficient /lib/security/$ISA/pam_unix.so
account sufficient /lib/security/$ISA/pam_ldap.so

password required /lib/security/$ISA/pam_cracklib.so retry=3 type=
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5shadow
password sufficient /lib/security/$ISA/pam_ldap.so use_authtok
password required /lib/security/$ISA/pam_deny.so

session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
session optional /lib/security/$ISA/pam_ldap.so

Необходимо отметить, что если вы попытаетсь настроить все это
используя утилиту authconfig, в рискуете получить неработспособную в
случае отсутствия LDAP-сервера систему. Приведенный мной пример
содержимого файла /etc/pam.d/system-auth свободен от этого недостатка
- хотя, возможно, обладает другими ошибками. Тем не менее, поскольку
этот файл работает и у меня дома, и на работе, я буду считать его
подходящим. Естественно, не следует также забывать о том, что опции,
передаваемые в pam_unix.so (md5, shadow & etc) варьируются в
зависсимости от настроек вашей системы.

Совершив данные исправления, можно приступать к тестированию, для чего
необходимо завести пользователя. Пользователи у нас будут являться
сочетанием двух классов - nisMailAlias и posixAccount. Почему так? Да
потому, что я ленив - и данное сочетание удовлетворяет минимальным
необходимым условиям: класс nisMailAlias является STRUCTURAL (т.е.
экземпляр объекта этого класса можно породить), и требует только
наличия атрибута cn, а класс posixAccount является AUXILIARY, и
требует атрибутов cn, uidNumber, gidNumber и uid:

admin$ echo "dn: cn=vasya,dc=pupkin,dc=com,dc=ru
objectClass: nisMailAlias
objectClass: posixAccount
cn: vasya
uid: vasya
uidNumber: 1000
gidNumber: 1000
gecos: Vasiliy Pupkin
loginShell: /bin/bash
homeDirectory: /home/vasya" | ldapadd -x
-D "cn=sysadm,dc=pupkin,dc=com,dc=ru"
-w zarazamelkaya
-h localhost -p 389

admin$ echo "dn: cn=petya,dc=pupkin,dc=com,dc=ru
objectClass: nisMailAlias
objectClass: posixAccount
cn: petya
uid: petya
uidNumber: 1001
gidNumber: 1000
gecos: Petya Pupkin
loginShell: /bin/bash
homeDirectory: /home/petya" | ldapadd -x
-D "cn=sysadm,dc=pupkin,dc=com,dc=ru"
-w zarazamelkaya
-h localhost -p 389

admin$ echo "dn: cn=katya,dc=pupkin,dc=com,dc=ru
objectClass: nisMailAlias
objectClass: posixAccount
cn: katya
uid: katya
uidNumber: 1001
gidNumber: 1000
gecos: Katya Pupkina
loginShell: /usr/bin/mc
homeDirectory: /export/home/katya" | ldapadd -x
-D "cn=sysadm,dc=pupkin,dc=com,dc=ru"
-w zarazamelkaya
-h localhost -p 389

Значения атрибутов с их привязкой к идентификаторам:
uid==getenv("USER"), uidNumber==getuid(), gidNumber==getgid(),
остальные поля понятны по названию. Тэк-с, пользователей мы создали -
теперь создадим группу:

admin$ echo "dn: cn=pupkingroup,dc=pupkin,dc=com,dc=ru
objectClass: posixGroup
cn: pupkingroup
gidNumber: 1000
description: Primary group of Pupkin-COM-RU domain
memberUid: vasya
memberUid: petya
memberUid: katya" | ldapadd -x
-D "cn=sysadm,dc=pupkin,dc=com,dc=ru"
-w zarazamelkaya
-h localhost -p 389

И напоследок установим пароли для наших пользователей:

admin$ ldappasswd -x
-D "cn=sysadm,dc=pupkin,dc=com,dc=ru"
-w zarazamelkaya
-h localhost -p 389 -s SuperParol cn=vasya,dc=pupkin,dc=com,dc=ru

Вот и все, осталось проверить, что пользователь vasya может
логиниться. По крайней мере, у меня он логинился с паролем SuperParol
:-) Есть один немаловажный аспект, в данной статье не рассмотреный -
это настройки безопасности и контроля доступа сервера LDAP - но это
уже тема для другой статьи.
769 Прочтений •  [Настройка PAM для использования LDAP (pam ldap linux auth)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Настройка PAM для использования LDA... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка