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

Материал из IT в школе
Перейти к навигацииПерейти к поиску
нет описания правки
Строка 1: Строка 1:




<big>'''Это черновик статьи, он используется для хранения рабочих заметок, а не для разворачивания полноценного решения!'''</big>


При установке на реальное железо нужно проверить, что SELINUX отключён.
<big>'''Это черновик статьи, он может содержать ошибки!'''</big>


Поскольку будут настраиваться механизмы авторизации и доступа в домашние каталоги, необходимо при установке как сервера, так и клиентов разрешить вход пользователю root. Это упростит починку системы, если будет что-то сломано в механизмах авторизации или доступа к домашним каталогам /home.  
При установке на реальное железо нужно проверить, что SELINUX отключён.


==Введение==
==Функционал системы==


Целью является создание школьного сервера со следующим функционалом:
Целью является создание школьного сервера со следующим функционалом:


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


Строка 19: Строка 18:
#Kerberos для хранения паролей и авторизации.
#Kerberos для хранения паролей и авторизации.
#SSSD для подключения к LDAP и Kerberos.
#SSSD для подключения к LDAP и Kerberos.
#NFS для доступа к домашним каталогам.
#NFS для доступа к домашним каталогам - /home на клиентах является сетевым разделом, монтируемым с сервера.


Для реализации будет использоваться платформа РОСА 13, как более современная. В настоящий момент для реализации такой конфигурации можно использовать:
Для реализации будет использоваться платформа РОСА 13, как более современная. В настоящий момент для реализации такой конфигурации можно использовать:
Строка 25: Строка 24:
#Роса "Фреш" 13, версия  Server для сервера.
#Роса "Фреш" 13, версия  Server для сервера.
# Роса "Фреш" 13, версия с Plasma 6 или МОС-13 (альфа-версия) для клиентских компьютеров.
# Роса "Фреш" 13, версия с Plasma 6 или МОС-13 (альфа-версия) для клиентских компьютеров.
Скорее всего эти инструкции можно применить для дистрибутивов на базе РОСА-2021.1 (МОС-12) без изменений.
== Установка дистрибутивов и общие идеи конфигурации ==
Дистрибутивы Роса "Фреш" 13 можно скачать [https://rosa.ru/rosa-linux-download-links/ по ссылке]. Дистрибутивы Роса "Фреш" доступны для бесплатного использования без каких-либо ограничений (см. лицензионное соглашение при установке).
'''Важно! Поскольку будут настраиваться механизмы авторизации и доступа в домашние каталоги, необходимо при установке как сервера, так и клиентов разрешить вход пользователю root. Это упростит починку системы, если будет что-то сломано в механизмах авторизации или доступа к домашним каталогам /home.'''
На клиентских компьютерах удобно помимо сетевых пользователей завести общий логин типа "user" или "student", функционирование которого не было бы привязано к работе сервера. Это позволит использовать компьютерные классы при проблемах с сетью или сервером. При этом домашний каталог такого пользователя '''НЕ ДОЛЖЕН''' находиться в /home, т.к. при проблемах использование этого каталога будет невозможно. Предлагается разместить домашний каталог такого пользователя в /usr/local/home. Туда же следует перенести и домашний каталог локального администратора системы ''[уточнить, как это сделать]''.
На сервере необходимо вынести /home в отдельный раздел, чтобы при отсутствии свободного места на нём это не повлияло на работу сервера. Рекомендуется использование файловой системы XFS на этом разделе, она считается наиболее быстрой. Наоборот, BTRFS не рекомендуется, т.к. нет смысла создавать снимки на этом разделе.
Желательный размер квоты на одного пользователя - 2-3 гигабайта, поэтому в масштабах одного школьного здания на хранение файлов пользователей следует выделять порядка 1 террабайта дискового пространства.


== Настройка доменных имён ==
== Настройка доменных имён ==
Для работы Kerberos необходимо, чтобы все компьютеры имели имена (FQDN) и взаимодействовали с использованием FQDN.
Для работы Kerberos необходимо, чтобы все компьютеры имели имена (FQDN) и взаимодействовали друг с другом с использованием FQDN.


Мы предположим, что наша сеть имеет следующий вид.
Мы предположим, что наша сеть имеет следующий вид.


Локальный домен называется sch179.local
Локальный домен называется sch179.local. Далее в инструкциях измените название этого домена на своё.


Сервер имеет IP-адрес 192.168.0.1 и имя server.sch179.local
Сервер имеет IP-адрес 192.168.0.1 и имя server.sch179.local


Клиентский компьютер имеет IP-адрес 192.168.1.1 и имя ws01.sch179.local
Клиентский компьютер в дальнейших инструкциях имеет IP-адрес 192.168.1.1 и имя ws01.sch179.local


Вы можете поднять DNS для разрешения имён (поможет ли в этом Avahi?). Но для надёжности давайте создадим статические записи для всех компьютеров - на каждом компьютере будут прописаны доменные имена других компьютеров. На клиенте достаточно прописать имя сервера, на сервере придётся прописывать имена всех подключённых компьютеров в локальной сети.
Вы можете поднять DNS для разрешения имён ''[поможет ли в этом Avahi?]''. Но для надёжности и независимости от службы DNS можно создать статические записи для всех компьютеров - на каждом компьютере будут прописаны доменные имена других компьютеров. На клиенте достаточно прописать имя и адрес сервера, на сервере необходимо прописать имена всех подключённых к нему компьютеров в локальной сети.


На сервере запишите в файл /etc/hostname единственную строку<syntaxhighlight lang="ini">
На сервере запишите в файл /etc/hostname единственную строку<syntaxhighlight lang="ini">
Строка 43: Строка 54:
</syntaxhighlight>На клиенте в аналогичный файл запишите его имя<syntaxhighlight lang="ini">
</syntaxhighlight>На клиенте в аналогичный файл запишите его имя<syntaxhighlight lang="ini">
ws01.sch179.local
ws01.sch179.local
</syntaxhighlight>В файл /etc/hosts на сервере добавьте для всех клиентских компьютеров строки вида
</syntaxhighlight>В файл /etc/hosts на сервере добавьте для всех клиентских компьютеров - строки вида<syntaxhighlight lang="ini">
192.168.1.1 ws01.sch179.local ws01


192.168.1.83 ws01.sch179.local ws01<syntaxhighlight lang="ini">
</syntaxhighlight>Одна строка соответствует одному компьютеру. Замените в этой строке IP-адрес компьютера, его полное и короткое имя.
192.168.1.1 ws01.sch179.local ws01


</syntaxhighlight>На клиентском компьютере запишите в этот файл адрес и имя сервера.<syntaxhighlight lang="ini">
На клиентском компьютере запишите в этот файл адрес и имя сервера.<syntaxhighlight lang="ini">
192.168.0.1 server.sch179.local server
192.168.0.1 server.sch179.local server


</syntaxhighlight>
</syntaxhighlight>Если вам нужна графическая оболочка на сервере, установите lxqt - лёгкую и нетребовательную к ресурсам оболочку (команда от root).<syntaxhighlight lang="bash">
 
==Подготовка сервера==
Установите серверный дистрибутив.
 
Обновите систему (команда от root).<syntaxhighlight lang="bash">
dnf update
</syntaxhighlight>Если вам нужна графическая оболочка на сервере, установите lxqt (лёгкая и нетребовательная к рекурсам) (команда от root).<syntaxhighlight lang="bash">
dnf install -y task-lxqt
dnf install -y task-lxqt
</syntaxhighlight>Если вы тестируете установку в VirtualBox, установите гостевые расширения  (команда от root).<syntaxhighlight lang="bash">
</syntaxhighlight>Если вы тестируете установку в VirtualBox, установите гостевые расширения  (команда от root).<syntaxhighlight lang="bash">
Строка 64: Строка 68:
</syntaxhighlight>
</syntaxhighlight>


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


=== Установка и запуск LDAP ===
=== Установка и запуск LDAP ===

Навигация