241
правка
Dkirienko (обсуждение | вклад) |
Dkirienko (обсуждение | вклад) (Копирование основного текста из черновика.) |
||
| Строка 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> | ||