Школьный сервер LDAP + Kerberos + NFS: различия между версиями

Материал из IT в школе
Перейти к навигацииПерейти к поиску
Копирование основного текста из черновика.
(Копирование основного текста из черновика.)
Строка 1: Строка 1:
<big>'''Это черновик статьи, он используется для хранения рабочих заметок, а не для использования!'''</big>
==0. Введение==
Целью является создание школьного сервера со следующим функционалом:
Целью является создание школьного сервера со следующим функционалом:


# Сервер является сервером авторизации для учащихся школы. Каждому учащемуся выдаётся логин и пароль, при помощи которого он может авторизоваться на любом компьютере, включенным в "школьный домен".
#Сервер является сервером авторизации для учащихся школы. Каждому учащемуся выдаётся логин и пароль, при помощи которого он может авторизоваться на любом компьютере, включенным в "школьный домен".
# Домашние каталоги учащихся монтируются по NFS, у каждого учащегося домашний каталог (то есть настройки приложений, файлы) будут идентичны на любом компьютере.
#Домашние каталоги учащихся монтируются по NFS, у каждого учащегося домашний каталог (то есть настройки приложений, файлы) будут идентичны на любом компьютере.


Предлагаемые технологии для этого:
Предлагаемые технологии для этого:  


# LDAP для хранения базы пользователей.
#LDAP для хранения базы пользователей.
# Kerberos для хранения паролей и авторизации.
#Kerberos для хранения паролей и авторизации.
# SSSD для подключения к LDAP и Kerberos.
#SSSD для подключения к LDAP и Kerberos.
# NFS для доступа к домашним каталогам.
#NFS для доступа к домашним каталогам.


Для реализации будет использоваться платформа РОСА 13, как более современная. В настоящий момент для реализации такой конфигурации можно использовать:
Для реализации будет использоваться платформа РОСА 13, как более современная. В настоящий момент для реализации такой конфигурации можно использовать:


# Роса "Фреш" 13, версия  Server для сервера.
#Роса "Фреш" 13, версия  Server для сервера.
# Роса "Фреш" 13, версия с Plasma 6 или МОС-13 (альфа-версия) для клиентских компьютеров.
# Роса "Фреш" 13, версия с Plasma 6 или МОС-13 (альфа-версия) для клиентских компьютеров.


== 1. Подготовка системы ==
==1. Подготовка системы==


=== Обновление системы ===
===Обновление системы===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dnf update
dnf update
</syntaxhighlight>
</syntaxhighlight>


=== Установка LXQt (графическая оболочка) ===
===Установка LXQt (графическая оболочка) ===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dnf install -y task-lxqt
dnf install -y task-lxqt
</syntaxhighlight>
</syntaxhighlight>


=== Установка дополнений для VirtualBox (если используется ВМ) ===
===Установка дополнений для VirtualBox (если используется ВМ)===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dnf install -y virtualbox-guest-additions
dnf install -y virtualbox-guest-additions
</syntaxhighlight>
</syntaxhighlight>


== 2. Установка и настройка OpenLDAP ==
==2. Установка и настройка OpenLDAP==


=== Установка необходимых пакетов ===
===Установка необходимых пакетов===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dnf install openldap-servers openldap-clients
dnf install openldap-servers openldap-clients
Строка 42: Строка 47:
Если возникнут ошибки с правами на /etc/openldap/slapd.d, удалите и переустановите пакет openldap-servers.
Если возникнут ошибки с правами на /etc/openldap/slapd.d, удалите и переустановите пакет openldap-servers.


=== Запуск службы LDAP ===
===Запуск службы LDAP===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl enable --now slapd
systemctl enable --now slapd
Строка 48: Строка 53:
</syntaxhighlight>
</syntaxhighlight>


=== Проверка соединения ===
===Проверка соединения ===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config dn
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config dn
</syntaxhighlight>
</syntaxhighlight>


=== Настройка базы данных LDAP ===
===Настройка базы данных LDAP===


==== Создание хеша пароля администратора ====
====Создание хеша пароля администратора ====
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
slappasswd
slappasswd
Строка 63: Строка 68:
<pre>{SSHA}GmLFgTlVi1ilt4IW0duB4/eCr3tpIuDu</pre>
<pre>{SSHA}GmLFgTlVi1ilt4IW0duB4/eCr3tpIuDu</pre>


==== Файл create-db.ldif ====
====Файл create-db.ldif====
<syntaxhighlight lang="ldif">
<syntaxhighlight lang="ldif">
dn: olcDatabase={2}mdb,cn=config
dn: olcDatabase={2}mdb,cn=config
Строка 81: Строка 86:
</syntaxhighlight>
</syntaxhighlight>


==== Проверка созданной базы ====
====Проверка созданной базы====
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" "(olcDatabase=*)"
ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" "(olcDatabase=*)"
</syntaxhighlight>
</syntaxhighlight>


=== Создание базовой структуры LDAP ===
===Создание базовой структуры LDAP ===
<syntaxhighlight lang="ldif">
<syntaxhighlight lang="ldif">
dn: dc=sch179,dc=local
dn: dc=sch179,dc=local
Строка 114: Строка 119:
</syntaxhighlight>
</syntaxhighlight>


=== Добавление схем ===
===Добавление схем===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
Строка 126: Строка 131:
</syntaxhighlight>
</syntaxhighlight>


== 3. Добавление групп пользователей ==
==3. Добавление групп пользователей==


Создайте файл groups.ldif:
Создайте файл groups.ldif:
Строка 169: Строка 174:
</syntaxhighlight>
</syntaxhighlight>


== 4. Добавление пользователя (например, dk) ==
==4. Добавление пользователя (например, dk)==


=== Создание пароля ===
===Создание пароля===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
slappasswd -s t9cdw3qR -v
slappasswd -s t9cdw3qR -v
</syntaxhighlight>
</syntaxhighlight>


=== user-dk.ldif ===
===user-dk.ldif ===
<syntaxhighlight lang="ldif">
<syntaxhighlight lang="ldif">
dn: cn=dk,ou=groups,dc=sch179,dc=local
dn: cn=dk,ou=groups,dc=sch179,dc=local
Строка 211: Строка 216:
</syntaxhighlight>
</syntaxhighlight>


== 5. Настройка Kerberos ==
==5. Настройка Kerberos==


=== Установка пакетов ===
===Установка пакетов===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dnf install -y krb5-server krb5-libs krb5-workstation
dnf install -y krb5-server krb5-libs krb5-workstation
</syntaxhighlight>
</syntaxhighlight>


=== Конфигурация /etc/krb5.conf ===
===Конфигурация /etc/krb5.conf ===
<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
[libdefaults]
[libdefaults]
Строка 239: Строка 244:
</syntaxhighlight>
</syntaxhighlight>


=== Создание базы данных ===
===Создание базы данных===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
kdb5_util create -s
kdb5_util create -s
Строка 246: Строка 251:
Задайте мастер-пароль, например: `3yomdiYp`
Задайте мастер-пароль, например: `3yomdiYp`


=== Конфигурация /var/kerberos/krb5kdc/kdc.conf ===
===Конфигурация /var/kerberos/krb5kdc/kdc.conf===
<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
[realms]
[realms]
Строка 262: Строка 267:
</syntaxhighlight>
</syntaxhighlight>


=== ACL файл ===
===ACL файл===
Файл: /var/kerberos/krb5kdc/kadm5.acl
Файл: /var/kerberos/krb5kdc/kadm5.acl
<syntaxhighlight>
<syntaxhighlight>
Строка 268: Строка 273:
</syntaxhighlight>
</syntaxhighlight>


=== Запуск служб ===
===Запуск служб===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl enable --now krb5kdc
systemctl enable --now krb5kdc
Строка 274: Строка 279:
</syntaxhighlight>
</syntaxhighlight>


=== Создание принципалов ===
===Создание принципалов===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
kadmin.local
kadmin.local
Строка 286: Строка 291:
</syntaxhighlight>
</syntaxhighlight>


== 6. Интеграция LDAP и Kerberos через SSSD ==
==6. Интеграция LDAP и Kerberos через SSSD==


=== Установка пакетов ===
===Установка пакетов===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
dnf install -y sssd sssd-krb5 sssd-ldap oddjob-mkhomedir
dnf install -y sssd sssd-krb5 sssd-ldap oddjob-mkhomedir
</syntaxhighlight>
</syntaxhighlight>


=== Конфигурация SSSD ===
===Конфигурация SSSD===
Файл: /etc/sssd/sssd.conf
Файл: /etc/sssd/sssd.conf
<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
Строка 322: Строка 327:
</syntaxhighlight>
</syntaxhighlight>


=== NSS и PAM ===
===NSS и PAM===


Измените `/etc/nsswitch.conf`:
Измените `/etc/nsswitch.conf`:
Строка 340: Строка 345:
</syntaxhighlight>
</syntaxhighlight>


=== Запуск служб ===
===Запуск служб===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
systemctl enable --now sssd
systemctl enable --now sssd
Строка 346: Строка 351:
</syntaxhighlight>
</syntaxhighlight>


=== Проверка ===
===Проверка===
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
getent passwd dk
getent passwd dk
su - dk
su - dk
</syntaxhighlight>
</syntaxhighlight>

Навигация