…. по мотивам демонстрационного экзамена ……..
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 файлов.
План такой:
- Создаём нужные группы и нужных пользователей
- Импортируем в ldif файлы
- Удаляем группы и пользователей
- Переносим 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 OU | L-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 authentication | L-CLI: Вход через user* и admin. |
| LDAP: Logon restriction | L-FW: Вход только через admin. |