OpenLdap

…. по мотивам демонстрационного экзамена ……..

OpenLDAP

Установка OpenLDAP

Устанавливаем openldap, задаём пароль и base DN.

[root@L-SRV]# apt get install slapd ldap-utils

Во время установки будет предложено ввести пароль для администратора ldap.

После чего реконфигурируем пакет.

[root@L-SRV]# dpkg-reconfigure slapd

Проверяем конфигурацию! Найдем все записи в skill39.wsr от пользователя admin.

[root@L-SRV]# ldapsearch -D «cn=admin,dc=skill39,dc=wsr» -x -W -b «dc=skill39,dc=wsr»

Сейчас у нас хранится только сам пользователь админ и описание нашей организации.

Создаем пользователей и группы

Для того чтобы руками не создавать пользователей и писать ldif файлы автоматизируем это действие на R-FW. 

Нам понадобится пакет migrationtools, в котором находятся perl-скрипты, которые помогают перенести реальных пользователей из системы в ldap. Вывод данных скриптов производится в формате ldif файлов.

План такой:

  1. Создаём нужные группы и нужных пользователей
  2. Импортируем в ldif файлы
  3. Удаляем группы и пользователей
  4. Переносим ldif на L-SRV и импортируем в OpenLDAP
[root@R-FW]# yum install migrationtools
[root@R-FW]# rpm -ql migrationtools

Добавим группы Users и Administrators на R-FW

[root@R-FW]# groupadd Users
[root@R-FW]# groupadd Administrators

Создадим пользователя admin с паролем toor в группе Administrators.

[root@R-FW]# useradd -mg Administrators admin
[root@R-FW]# passwd admin

Создадим пользователей с user1 по user99 с паролем P@ssw0rd в группе Users.

[root@R-FW]# for i in {1..99}; do useradd -g Users user$i; done
[root@R-FW]# for i in {1..99}; do echo «P@ssw0rd» | passwd —stdin user$i; done

После чего перейдем в рабочую директорию migrationtools и зададим значения переменных.

[root@R-FW]# cd /usr/share/migrationtools
[root@R-FW]# vim ./migrate_common.ph

Пользователи должны быть в ou “Users”, поэтому в секции else меняем “People” на “Users”, а группы в ou “Group” на “Groups”. Так же меняем base DN.


} else {

 $NAMINGGCONTEXT{‘passwd’} = “ou=Users”;

… 

 $NAMINGGCONTEXT{‘group’} = “ou=Groups”;

}

$DEFAULT_MAIL_DOMAIN = “skill39.wsr”;

$DEFAULT_BASE = “dc=skill39,dc=wsr”;


[root@R-FW migrationtools]# ./migrate_base.pl > /root/base.ldif
[root@R-FW migrationtools]# vim /root/base.ldif

Оставляем записи про OU Users и Groups, остальное удаляем.


dn: ou=Users,dc=skill39,dc=wsr

ou: Users

objectClass: top

objectClass: organizationalUnit

dn: ou=Groups,dc=skill39,dc=wsr

ou: Groups

objectClass: top

objectClass: organizationalUnit


[root@R-FW migrationtools]# ./migrate_group.pl /etc/group > /root/groups.ldif
[root@R-FW migrationtools]# vim /root/groups.ldif

Оставляем наши группы “Users” и “Administrators”, остальное удаляем.


dn: cn=Users,ou=Groups,dc=skill39,dc=wsr

objectClass: posixGroup

objectClass: top

ou: Users

userPassword: {crypt}x

gidNumber: 10000

dn: cn=Administrators,ou=Groups,dc=skill39,dc=wsr

objectClass: posixGroup

objectClass: top

ou: Administrators

userPassword: {crypt}x

gidNumber: 10001


[root@R-FW migrationtools]# grep user[1-99] /etc/passwd > /root/users_source
[root@R-FW migrationtools]# grep admin /etc/passwd >> /root/users_source
[root@R-FW migrationtools]# ./migrate_passwd.pl /etc/users_source > /root/users.ldif
[root@R-FW migrationtools]# vim /root/users.ldif

Убеждаемся, что с пользователями всё Ok. 

После чего можно удалить ненужные группы и пользователей из системы.

[root@R-FW]# userdel -rf admin
[root@R-FW]# for i in {1..99}; do userdel -rf user$i; done
[root@R-FW]# groupdel Administrators
[root@R-FW]# groupdel Users[root@R-FW]# yum erase migrationtools

Все ldif файлы нужно переместить на L-SRV и импортировать их в OpenLDAP.

[root@L-SRV]# scp root@r-fw:/root/*.ldif /root/
[root@L-SRV]# ldapadd -x -W -D ‘cn=admin,dc=skill39,dc=wsr’ -f ./base.ldif
[root@L-SRV]# ldapadd -x -W -D ‘cn=admin,dc=skill39,dc=wsr’ -f ./groups.ldif
[root@L-SRV]# ldapadd -x -W -D ‘cn=admin,dc=skill39,dc=wsr’ -f ./users.ldif

Подключаем клиентские машины

Debian (на примере L-FW)

Для начала нужно установить PAM модуль аутентификации для LDAP. Этот модуль предоставляет интерфейс между LDAP сервером и системой аутентификации PAM и используется в связке с libnss-ldap.

[root@L-FW]# apt-get install libpam-ldap

Сервис nscd (Name Service Caching Daemon) призван снизить нагрузку с того же LDAP на продакшен серверах, кэшируя запросы на резолвинг имен.  NSS-LDAP (Name Services Switch) необходим для подтягивания из LDAP в систему таких данных как имена пользователей, группы и другой информации, которая обычно хранится в файлах каталога /etc.

[root@L-FW]# apt-get install libnss-ldap
[root@L-FW]# vim /etc/nsswitch.conf

passwd: compat ldap

group: compat ldap

shadow: compat ldap

gshadow: files ldap


[root@L-FW]# vim /etc/libnss-ldap.conf

На L-FW может заходить только админ.


nss_base_passwd cn=admin,ou=Users,dc=skill39,dc=wsr

nss_base_shadow ou=Users,dc=skill39,dc=wsr

nss_base_group  ou=Groups,dc=skill39,dc=wsr


На L-CLI

[root@L-CLI]# vim /etc/libnss-ldap.conf

nss_base_passwd ou=Users,dc=skill39,dc=wsr

nss_base_shadow ou=Users,dc=skill39,dc=wsr

nss_base_group  ou=Groups,dc=skill39,dc=wsr


[root@L-FW]# systemctl restart nscd.service

После чего можно проверить Alt-F2, логинимся как user22 (любой). Создаём файл в директории tmp и убеждаемся, что наша система знает, что файл принадлежит user22 и группе Users. Аналогично проверяем пользователя admin.

Внимание! На L-CLI недостаточно свободного места! Чтобы пользователи могли логинится через GUI нужно удалить что-нибудь ненужное. Например, libreoffice.

[root@L-CLI]# apt purge libreoffice
[root@L-CLI]# apt autoremove
[root@L-CLI]# apt autoclean
[root@L-CLI]# apt clean
CentOS (на примере R-FW) (Если вдруг понадобится, мало ли)
[root@R-FW]# yum install nss-pam-ldapd
[root@R-FW]# authconfig-tui
[root@R-FW]# vim /etc/nslcd.conf

base group  ou=Groups,dc=skill39,dc=wsr

base passwd ou=Users,dc=skill39,dc=wsr

base shadow ou=Users,dc=skill39,dc=wsr


Проверка работы:

LDAP: Users, Groups and OUL-SRV: ldapsearch -Y EXTERNAL -H «ldapi:///» -b «ou=Users,dc=skill39,dc=wsr»L-SRV: ldapsearch -Y EXTERNAL -H «ldapi:///» -b «ou=Groups,dc=skill39,dc=wsr»
LDAP: Clients authenticationL-CLI: Вход через user* и admin.
LDAP: Logon restrictionL-FW: Вход только через admin.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *