====== Linux. Управление учетными записями на предприятии ====== ===== Программа курса ===== * [[http://www.specialist.ru/course/yun3-b|Linux. Уровень 4. Интеграция с корпоративными решениями Microsoft]] ===== Задача курса ===== * Изучение технологий Single sign-on SSO - единого входа, сквозной аутентификации пользователей и Workplace Innovation (WPI) - универсального рабочего места ===== Модуль 0. Подготовка стенда в классе ===== * Узнать свой номер стенда * Удалить виртуалки * Удалить профили putty * Отключить не используемые адаптеры * Записать логин пароль и IP (сообщить преподавателю) рабочей станции * Проверить наличие дистрибутивов и образов ===== Модуль 1. Развертывание сети предприятия ===== ==== Теория ==== * [[https://www.specialist.ru/course/yun2-b|Linux. Уровень 2. Администрирование сервисов и сетей]] ==== Лабораторные работы: Развертывание сети предприятия ==== * Разворачиваем инфраструктуру из курса [[Администрирование сервисов UNIX]] === 1.1 Схема стенда, импорт, настройка и запуск VM gate и server === * Для локальной сети используется VirtualBox Host-Only Ethernet Adapter Запустите с правами Administrator C:\cmder\Cmder.exe λ bash λ cd λ git clone http://val.bmstu.ru/unix/conf.git λ cd conf/virtualbox/ !!! 4 - это номер курса, вместо X укажите Ваш номер стенда, если не знаете его, спросите преподавателя !!! λ ./setup.sh X 4 === 1.2 Настройка сети VM gate и server === * Запустить gate и server * Запустить импорт системы client1 * [[Настройка стендов слушателей#Настройка виртуальных систем Unix]] с использованием [[Настройка стендов слушателей#Скрипты автоконфигурации]] * gate # sh net_gate.sh # init 6 * server # sh net_server.sh # init 6 * Создать в Putty профили gate, server и подключиться === 1.3 настройка сервисов DNS и DHCP === * [[Сервис DHCP]] gate:~# sh conf/dhcp.sh * [[Финальная настройка DNS сервера]] server:~# sh conf/dns.sh * Настройка клиента DNS на gate и server # cat /etc/resolv.conf search corpX.un nameserver 192.168.X.10 debian11# apt install host # host ns === 1.4 Запуск и настройка системы client1 === * Настройка сети в Linux [[Настройка сети в Linux#Динамическая настройка параметров]] gate# dhcp-lease-list * [[Локализация окружения]] * [[Локализация системы#Локализация временной зоны]] * [[Переменные окружения#Установка переменных окружения]] http_proxy * [[Инсталяция системы в конфигурации Desktop]] * Экспортируем получившуюся VM в образ "linux с графическим интерфейсом" ==== Вопросы ==== - Что определяет порядок использования файлов /etc/hosts и /etc/resolv.conf для разрешения DNS имен? ===== Модуль 2. Ретроспектива механизмов аутентификации и авторизации в UNIX ===== ==== Теория ==== * [[https://help.ubuntu.ru/wiki/%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_linux|Централизованное управление в сети Linux на базе NIS и NFS]] ==== Лабораторные работы: Классика ААА в UNIX ==== === 2.1 Использование протокола NIS для аутентификации и авторизации пользователей в UNIX сети === * В системе server удаляем учетную запись student, добавляем группу group1 и создаем и включаем в нее новые учетные записи user1 и user2 ([[Управление учетными записями в Linux]]) server# userdel -r student server# groupadd -g 15001 group1 server# useradd -u 10001 -m -s /bin/bash -c "Ivan Ivanovitch Ivanov,RA7,401,499-239-45-23" -G group1 user1 server# useradd -u 10002 -m -s /bin/bash -c "Petr Petrovitch Petrov,RA7,402,499-323-55-53" -G group1 user2 server# useradd -u 10003 -m -s /bin/bash -c "Сидор Сидорович Сидоров,РА7,403,499-323-55-53" -G group1 user3 server# echo 'user1:password1' | chpasswd server# echo 'user2:password2' | chpasswd server# echo 'user3:password3' | chpasswd * [[Сервис NIS#Настройка Unix сервера]] server как сервер NIS * [[Сервис NIS#Настройка клиента]] client1 как клиента NIS (преподаватель показывает вариант с compat, слушатели сразу делают с [[Использование библиотеки NSSWITCH]]) client1# mkdir -p /home/user1 client1# mkdir -p /home/user2 client1# chown -R user1:user1 /home/user1/ client1# chown -R user2:user2 /home/user2/ === 2.2 Использование протокола NFS для поддержки перемещаемых профилей пользователей === __демонстрирует преподаватель__ * Экспорт домашних каталогов по NFS с системы server ([[Сервис NFS#Установка, настройка и запуск сервиса]]) * Для linux [[Сервис NFS#Установка nfs клиента]] на client1 * Монтирование домашних каталогов по NFS на client1 ([[Сервис NFS#Использование сервиса]]) * [[https://youtu.be/jAhvVBpx3IM|Видео урок: Как пользователи использовали UNIX :)]] ==== Вопросы ==== - Какие поля в учетной записи UNIX используются для аутентификации? - Какие поля в учетной записи UNIX используются для авторизации? - Для чего используется поле GECOS учетной записи пользователя UNIX? - Что такое NIS домен? - Что такое NIS карты? - Какая утилита используется для инициализации NIS карт? - Какая утилита используется для тестирования NIS? ===== Модуль 3. Современные механизмы аутентификации и авторизации в Linux ===== ==== Теория ==== * [[http://gentoo.theserverside.ru/book/ar68s18.html|Управление пользователями, NSS и PAM]] * [[http://www.bog.pp.ru/work/NSS.html|Bog BOS: NSS (Name Service Switch)]] * [[https://redos.red-soft.ru/base/manual/admin-manual/safe-redos/pam/|Pluggable Authentication Modules (PAM) - настройки системы аутентификации]] ==== Лабораторные работы: ААА с использованием NSS и PAM ==== === 3.1 Авторизация с использованием библиотеки NSS === * [[Сервис NIS#Настройка клиента]] gate как клиента NIS с [[Использование библиотеки NSSWITCH]] client1:~# scp /etc/nsswitch.conf gate:/etc/nsswitch.conf debian11# service nscd restart && service nscd reload === 3.2 Аутентификация с использованием библиотеки PAM === * [[Использование библиотеки PAM#Терминология PAM]] * [[Использование библиотеки PAM#Приостановка регистрации пользователей]] (__демонстрирует преподаватель__, проверять подключаясь user1 с client1 на gate) * [[Использование библиотеки PAM#Автоматическое создание домашних каталогов]] для сервиса sshd на gate (для проверки подключаемся с host системы как user1 и user2) === 3.3 Решение задачи SSO для протокола SSH === * **Домашнее задание** по видео уроку [[http://youtu.be/kXi1KXYy-NE|SSH SSO]] * Использование ssh_agent ([[Сервис SSH#Аутентификация с использованием ключей ssh]]) * Использование SSH как решение SSO ([[Использование библиотеки PAM#Использование pam_ssh для сервиса login]]) с user1@client1 на gate и на server user1@client1:~$ ps -x ... ... Ss 0:00 ssh-agent ... user1@client1:~$ env | grep SSH user1@client1:~$ ssh gate user1@client1:~$ rm .ssh/id* ==== Вопросы ==== - Какие задачи решает библиотека NSS - Какой идентификатор источника данных в NSS позволяет подключить NIS через указание в файлах учетных записей системы строки, начинающейся с символа «+» - Какой командой можно посмотреть учетные записи из всех источников данных? - Какая подсистема (facility) библиотеки PAM позволяет временно запретить регистрацию пользователей? - Какая подсистема (facility) библиотеки PAM может быть использована для создания домашних каталогов пользователей? - По умолчанию, при первом подключении клиента к SSH серверу, он получает предупреждение о недостоверном ... - Клиент ssh использует ssh-agent для получения расшифрованного ... ===== Модуль 4. Аутентификация с использованием протокола Kerberos ===== ==== Теория ==== * [[Сервис KERBEROS]] ==== Лабораторные работы: Настройка KDC ==== === 4.1 Подготовка сети к использованию протокола Kerberos === * [[Финальная настройка DNS сервера#Настройка зоны corpX.un]] * [[Сервис DNS#Утилиты тестирования DNS]] server# nslookup -q=SRV _kerberos._udp.corpX.un * Синхронизируем время в системах client1, gate и server ([[Локализация системы#Локализация временной зоны]], [[Сервис NTP]]) === 4.2 Установка KDC и регистрация принципалов === * [[Настройка KDC серверов и клиентов#Настройка KDC]] (на системе server) * [[Регистрация ключей принципалов в KDC#Регистрация принципалов пользователей в базе данных kerberos]] * [[Настройка KDC серверов и клиентов#Настройка Kerberos клиента]] (в системах client1 и gate) === 4.3 Использование протокола GSSAPI для аутентификации сервиса ssh === * [[Управление учетными записями в Linux#Блокировка учетной записи]] (исключаем использование паролей через [[Сервис NIS]]) * Включаем [[Использование библиотеки PAM#Использование pam_krb5 для сервиса login/xdm]] на client1 * Настраиваем [[Сервис SSH#Аутентификация с использованием протокола GSSAPI]] для сервиса ssh на gate === 4.4 Использование протокола GSSAPI для сервиса http proxy === !!! Подготовка к 5-му модулю: Запускаем импорт системы windows * [[Установка, настройка и запуск пакета SQUID]] на gate * Настраиваем [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]] для squid на gate * Настраиваем [[Firefox#Управление конфигурацией]] Firefox * Преподаватель демонстрирует [[Авторизация доступа к ресурсам через SQUID#Авторизация на основе членства в группе]] для squid на gate ==== Вопросы ==== - Kerberos обеспечивает механизм ... - Что такое Kerberos realm (сфера)? - Какие объекты представляются учетными записями (Principal) в Kerberos? - Используется ли в протоколе Kerberos SSL или TLS? - Используются ли в протоколе Kerberos сертификаты? - Что хранится в TGT? - Какая команда может быть использована для получения TGT? - Разница в настройке времени между системами, взаимодействующими по протоколу Kerberos, не должна составлять более ... - В каком файле, по умолчанию, на стороне сервера хранятся учетные записи сервисов? - Для чего используется GSSAPI? - Какого типа сервиса должен быть добавлен в KDC для использование Kerberos с сервисом Squid? ===== Модуль 5. Samba - корпоративный сервис CIFS для Windows и Linux клиентов ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/Server_Message_Block|Server Message Block]] ==== Лабораторные работы: Знакомство с сервисом Samba ==== === 5.1 Добавление в сеть предприятия рабочих станций windows === * Добавляем в стенд систему windows * Переименовываем ее в client2 * Установка GSSAPI клиентских программ: * [[https://val.bmstu.ru/unix/SSH/putty-64bit-0.76-installer.msi|PuTTY]] * [[https://val.bmstu.ru/unix/SSH/WinSCP-5.19.2-Setup.exe|WinScp]] (не обязательно) * [[https://val.bmstu.ru/unix/WWW/Firefox%20Setup%2017.0.1.exe|Firefox]] (не обязательно, можно использовать MSIE) * [[https://val.bmstu.ru/unix/Mail/Thunderbird%20Setup%2017.0.exe|Thunderbird 17.0.exe]] (для преподавателя) * Создаем локальную учтенную запись, используя командную строку с правами администратора net user user2 wpassword2 /add === 5.2 Аутентификация и авторизация Windows клиентов на файловом сервере Samba по протоколу CIFS === * [[Файловый сервер SAMBA#Установка]] файлового сервера SAMBA __демонстрирует преподаватель__ * [[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе копии базы данных учетных записей]] * Доступ на основе членства в группе group1 * [[Файловый сервер SAMBA#Автоматическое создание домашних каталогов]] в SAMBA === 5.3 Подключение Linux клиентов к файловому серверу CIFS === __бонусная лабораторная работа__ * [[Подключение к файловым серверам CIFS из UNIX#NTLM аутентификация]] на серверах CIFS для пользователей Linux === 5.4 Использование файлового сервиса CIFS для хранения профилей пользователей Linux === * [[https://youtu.be/S7QOkcznEVY|Запись вебинара: Зачем вводить системы Linux в домен Microsoft?]] * Импортируем VM client3 из образа "linux с графическим интерфейсом" client3:~# cat /etc/hostname client3 client3:~# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 client3 init 6 client3:~# DEBIAN_FRONTEND=noninteractive apt -y install krb5-user cifs-utils nfs-common libpam-krb5 libpam-script client3:~# cat /etc/krb5.conf [libdefaults] default_realm = CORPX.UN * [[Использование библиотеки PAM#Использование pam_script]] для автоматического создания учетных записей client3:~# id user2 client3:~# find /home/ * [[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе регистрации в Active Directory/DOMAIN/Kerberos REALM]] * [[Подключение к файловым серверам CIFS из UNIX#GSSAPI аутентификация]] к серверам CIFS * [[Зачем вводить системы Linux в домен Microsoft#3.5 Монтирование домашнего каталога ручном режиме]] * [[Использование библиотеки PAM#Использование pam_script]] для автоматического монтирования домашнего каталога * [[Зачем вводить системы Linux в домен Microsoft#3.7 Подключение общего файлового ресурса компании пользователями linux]] * Обсуждаем [[Зачем вводить системы Linux в домен Microsoft#Шаг 4. Клонируем конфигурацию рабочей станции]] ==== Дополнительные материалы ==== * [[https://youtu.be/dNR1krtEhN8|Видео урок: Использование пакета SAMBA для реализации файлового сервиса CIFS]] ==== Вопросы ==== - Какой режим безопасности должен быть настроен в SAMBA для работы с собственной базой данных пользователей? - Какая утилита используется для управления учетными записями пользователей в файловом сервере SAMBA? ===== Модуль 6. Использование Linux Kerberos сферы для SSO пользователей рабочих станций Windows ===== ==== Теория ==== * [[Материалы по Windows#Подключение к сфере KERBEROS]] рабочих станций windows ==== Лабораторные работы ==== === 6.1 Регистрация рабочих станций Windows в Kerberos сфере === * [[Регистрация ключей принципалов в KDC#Регистрация рабочих станций windows в KDC]] * [[Материалы по Windows#Подключение к сфере KERBEROS]] рабочих станций windows === 6.2 Использование протокола GSSAPI для аутентификации Windows клиентов на UNIX сервисах === * SSO GSSAPI аутентификация для сервисов SSH, HTTP PROXY === 6.3 SSO GSSAPI аутентификация Windows клиентов для сервиса CIFS === * GSSAPI аутентификация протокола CIFS для Windows клиентов (использовать FQDN \\gate.corpX.un, в Debian10, после обновления не заработала, в Debian11 все ОК) ==== Дополнительные материалы ==== * [[https://youtu.be/rLrYjBinrLE|Видео урок. Использование Kerberos сферы для аутентификации пользователей рабочих станций Windows]] ==== Вопросы ==== - Какого типа сервис должен быть добавлен в KDC для регистрации рабочей станций Windows при использовании Kerberos сферы? - Где хранится пользовательский профиль при использовании Kerberos сферы для аутентификации пользователей рабочих станций Windows? - Какой режим безопасности должен быть настроен в пакете SAMBA для работы с базой данных пользователей в KDC? ===== Модуль 7. Протокол LDAP ===== ==== Теория ==== * [[https://pro-ldap.ru/tr/zytrax/ch2/|LDAP для учёных-ракетчиков]] * [[http://pro-ldap.ru/agreements.html|Термины служб каталогов и LDAP]] * [[http://www.ignix.ru/public/daemon/openldap_addressbook|OpenLDAP, addressbook, web интерфейс и все все все]] ==== Лабораторные работы: Варианты использования протокола LDAP ==== === 7.1 Использованием протокола LDAP для авторизации учетных записей Linux === * [[Установка и настройка OpenLDAP]] * [[Хранение учетных записей UNIX в LDAP]] * Отключаем NIS на gate и client1, на server лучше после окончательного внедрения LDAP # apt purge nis && apt autoremove * Настройка библиотеки nsswitch на gate и client1 на использование LDAP каталога ([[Авторизация с использованием LDAP сервера]] и [[Авторизация с использованием LDAP сервера#Установка библиотеки nss ldap]]) * Отключаем NIS на server === 7.2 Использование протокола GSSAPI для сервиса электронной почты === * !!! Приступить к развертыванию AD на Windows Server из модуля 8, по окончании ЗАЛОГИНИТЬСЯ !!! __демонстрирует преподаватель__ * [[Сервис MTA#Установка и настройка MTA на обработку почты домена hostname]] на системе gate * [[Сервис MTA#Настройка MTA на обработку почты домена corpX.un]] * Установка [[UA mail]] на системе gate * [[Сервер dovecot#Установка]] imap сервера dovecot на gate * [[Сервер dovecot#Настройка с использованием стандартных mailboxes и аутентификации открытым текстом]] на сервере dovecot на gate * [[Сервер dovecot#Kerberos GSSAPI аутентификация]] сервисов SMTP/IMAP на gate === 7.3 Использование LDAP каталога для хранения дополнительной информации о пользователях сети === * [[Хранение учетных записей UNIX в LDAP#Пример назначения номеров телефонов и адресов email]] * Преподаватель устанавливает "дружественный" интерфейс к LDAP - [[https://val.bmstu.ru/unix/ldap/ApacheDirectoryStudio-2.0.0.v20150606-M9-win32.win32.x86_64.zip|Apache Directory Studio]] (требует [[https://val.bmstu.ru/unix/java/jre-8u211-windows-x64.exe|JRE]], раскрывать в VM лучше через 7zip) * [[Thunderbird#Авто конфигурация клиента]] Thunderbird * [[Thunderbird#Получение списка контактов через LDAP]] в Thunderbird * [[Использование библиотеки PAM#Использование pam_krb5 для сервиса login/xdm]] для аутентификации через Web интерфейс к почте roundcube * Настройка доступа к адресной книге в [[Web интерфейс к почте#roundcube]] (продемонстрировать jpegPhoto и проверить поиск) * [[Инструмент GitLab#Использование LDAP]] для управления пользователями в GitLab ==== Вопросы ==== - В виде какой структуры представляются записи в LDAP? - Для чего используется формат LDIF? - Как в протоколе LDAP называется операция аутентификации? - Что такое DN и RDN в LDAP? - Сколько атрибутов класса (object class) может быть у записи? ===== Модуль 8. Использование Microsoft AD для аутентификации и авторизации в гетерогенных сетях ===== ==== Теория ==== * [[https://ru.wikipedia.org/wiki/Active_Directory|Active Directory]] ==== Лабораторные работы: Использование Microsoft AD ==== === 8.1 Подготовка стенда === * Отключаем nss_ldap на gate и client1 [[Авторизация с использованием LDAP сервера#Настройка библиотеки nsswitch]] * Отмонтируем /home на client1 * Выключаем server * Удаляем ключи сервисов с gate gate# rm -v /root/*keytab gate# rm /etc/krb5.keytab === 8.2 Развертывание контроллера домена === * Добавляем windows server (от 2Gb RAM) * [[Развертывание Active Directory]] * [[PowerShell#Добавление в домен пользователей]] user1/Pa$$w0rd1 и user2/Pa$$w0rd2 === 8.3 Включение в домен рабочих станций windows и серверов Linux === * [[Развертывание Active Directory#Включение в домен Windows клиентов]] (client2) * Регистрируемся в Windows client2 как user2 * [[Настройка KDC серверов и клиентов#Настройка Kerberos клиента]] на gate * Установка [[http://val.bmstu.ru/unix/SSH/WinSCP-5.19.2-Setup.exe|WinScp]] на server MS AD * [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]] windows клиентов в HTTP proxy * Добавление gate в [[Развертывание Active Directory#Настройка DNS сервера]] * Настройки proxy через [[Развертывание Active Directory#Использование групповых политик]] или [[Автоматизация использования SQUID]] __демонстрирует преподаватель__ * [[Сервис OpenFire]] * [[https://youtu.be/bH2lz8ubJFo|Видеоурок: Интеграция Asterisk с системами IM и Presence в инфраструктуре Microsoft AD, часть 1]] === 8.4 Включение в домен рабочих станций Linux === * [[Настройка KDC серверов и клиентов#Настройка Kerberos клиента]] на client1 * [[Использование библиотеки PAM#Использование pam_krb5 для сервиса login/xdm]] на client1 Вариант 1 (лучше сделать в теме 8.6 для получения информации о пользователях на gate) * [[Авторизация с использованием LDAP сервера#Тестирование доступности каталога с клиентов]] * [[Сервис NIS#Настройка Windows сервера]] на поддержку UNIX атрибутов * Создаем группы guser1, guser2, назначаем им и пользователям user1 и user2 - unix атрибуты идентичные ранее имевшимся * Создаем группу group1, назначаем ей ранее имевшийся GID, включаем в нее user1 и user2 * Можно автоматизировать, используя [[Хранение учетных записей UNIX в LDAP#Пример назначения UNIX атрибутов в Microsoft AD]] * Настраиваем [[Авторизация с использованием LDAP сервера]] windows на client1 Вариант 2 - [[https://youtu.be/S7QOkcznEVY|Запись вебинара: Зачем вводить системы Linux в домен Microsoft?]] * [[Использование библиотеки PAM#Использование pam_script]] для автоматического создания учетных записей client1:~# find /home/ === 8.5 Использование Windows Server в качестве NFS сервера === __демонстрирует преподаватель, не нужно для 2-го варианта работы 8.4__ * Настройка в [[Сервис NFS#Windows Server]] протокола NFS * Монтируем /home, создаем домашние каталоги client1# id user1 client1# mount server:/home /home client1# chmod 755 /home * Все делаем [[Использование библиотеки PAM#Автоматическое создание домашних каталогов]] === 8.6 Использование протоколов SSPI и GSSAPI === * [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]] linux клиентов в HTTP proxy * Настраиваем [[Авторизация с использованием LDAP сервера]] windows на gate * [[Сервис SSH#Аутентификация с использованием протокола GSSAPI]] для сервиса SSH __демонстрирует преподаватель__ * [[Сервер dovecot#Kerberos GSSAPI аутентификация]] для сервисов IMAP/SMTP * Thunderbird - [[Thunderbird#Авто конфигурация клиента]] * Kerberos GSSAPI ([[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе регистрации в Active Directory/DOMAIN/Kerberos REALM]]) gate# service smbd restart __бонусные лабораторные работы__ * [[Подключение к файловым серверам CIFS из UNIX#GSSAPI аутентификация]] протокола CIFS для Linux клиентов * [[Авторизация доступа к ресурсам через SQUID]] на основе членства в группе === 8.7 Использование AD как LDAP каталога для хранения дополнительной информации о пользователях === __демонстрирует преподаватель__ * Назначение атрибутов General->Telephone number и E-mail * Thunderbird - [[Thunderbird#Получение списка контактов через LDAP]] * [[Web интерфейс к почте#Roundcube LDAP Addressbook]] (проверить поиск) ==== Вопросы ==== - Какой утилитой можно добавить учетную запись сервиса UNIX в Microsoft AD? - Какой утилитой можно вывести список сервисов, привязанных к учетной записи Microsoft AD? - Что нужно сделать для хранения в Microsoft AD атрибутов учетных записей UNIX? - Что нужно сделать для развертывания сервиса NFS на Microsoft Windows Server? ==== Дополнительные материалы ==== * [[https://youtu.be/yZfoBTlqFCQ|Видеоурок: Авторизация доступа пользователей домена MS Active Directory в Internet с использованием proxy-сервера Squid]] ===== Модуль 9. Использование сервиса WINBIND ===== ==== Подготовка к следующему модулю ==== * !!! Импортировать windows client3 (назначить 2 ядра) и [[Материалы по Windows#Развертывание средств администрирования Active Directory]] для модуля 10 ==== Примечание ==== * !!! Можно объединить все лабораторные работы ==== Теория ==== * [[https://serveradmin.ru/nastroyka-samba-s-integratsiey-v-ad/|Настройка файлового сервера Samba с интеграцией в Active Directory]] * [[http://winehq.org.ru/SambaSSSDvsWinbind|SSSD vs Winbind]] ==== Лабораторные работы: Использование сервиса WINBIND ==== === 9.1 Для управления ключами сервисов в Microsoft AD === * Удаляем пользователей gate* из AD * Удаляем файлы с ключами на AD C:\>del *keytab * Удаляем ключи сервисов с gate gate# rm -v /root/*keytab /etc/krb5.keytab gate# cp /etc/samba/smb.conf /root/ gate# apt purge samba samba-common gate# apt autoremove gate# rm -r /etc/samba/ * [[Сервис WINBIND#Установка службы winbindd]] * Удалить запись gate из dns * [[Сервис WINBIND#Регистрация unix системы в домене в режиме ADS]] (система gate) * Проверяем наличие gate в DNS * [[Сервис WINBIND#Управление ключами KERBEROS в режиме ADS]] для сервисов HTTP и IMAP * [[Сервис SSH#Настройка сервиса sshd на использование GSSAPI]] * [[Аутентификация доступа к SQUID#Настройка сервиса SQUID на использование GSSAPI]] __демонстрирует преподаватель__ * [[Сервер dovecot#Настройка dovecot на использование GSSAPI]] * !!! сервис cifs не работает с winbind без unix атрибутов * !!! сервис cifs не удалось заставить работает с @group1 * [[Файловый сервер SAMBA#Настройка samba сервера в режиме DOMAIN/ADS c WINBIND]] === 9.2 Для генерации UNIX атрибутов пользователей Microsoft AD === Следующие шаги можно пропустить: * Останавливаем Linux клиент * Отключаем unix свойства пользователей user1 и user2 в AD * Удаляем группы guser1 и guser2 * Удаляем в [[Сервис NIS#Настройка Windows сервера]] поддержку UNIX атрибутов у пользователей user1 и user2 и group1 Можно делать отсюда: * Отключаем ldap в nsswitch на gate * WINBIND [[Сервис WINBIND#Авторизация в режиме ADS/DOMAIN]] * [[Сервис WINBIND#Использование WINBIND в библиотеке NSSWITCH]] * [[Сервис SSH#Настройка сервиса sshd на использование GSSAPI]] * [[Сервер dovecot#Настройка dovecot на использование GSSAPI]] === 9.3 Для авторизации пользователей на основе членства в группах Microsoft AD на серверах Linux === * Добавляем пользователя user1 в группу group1 * SQUID [[Авторизация доступа к ресурсам через SQUID#Авторизация на основе членства в группе]] gate# apt install samba * [[Файловый сервер SAMBA#Настройка samba сервера в режиме DOMAIN/ADS c WINBIND]] (как ни странно, принципал cifs не надо создавать, но, откуда то он берется у клиента :) === 9.4 Альтернатива WINBIND - сервис SSSD === * Демонстрация [[Сервис sssd]] на системе client3 === 9.5 Альтернатива WINBIND и SSSD - создаем учтные записи через PAM === * [[https://youtu.be/S7QOkcznEVY|Зачем вводить системы Linux в домен Microsoft?]] ==== Вопросы ==== - Для каких задач предназначен WINBIND? - Какая утилита позволяет проверить работу WINBIND? ===== Модуль 10. Использование пакета Samba4 в качестве контроллера домена ===== ==== Теория ==== * [[https://habr.com/ru/post/272777/|Возможности и ограничения Samba 4 как контроллера домена Active Directory]] ==== Лабораторные работы ==== === 10.1 Подготовка стенда === * Выводим Windows клиенты из домена AD * [[Материалы по Windows#Развертывание средств администрирования Active Directory]] на client4 * Отключаем WINBIND в nsswitch.conf на gate debian# service nscd restart && service nscd reload * Выводим gate из домена AD ([[Сервис WINBIND#Вывод unix системы из домена в режиме ADS]]) * Останавливаем Windows AD * Включаем Linux server server# cat /etc/resolv.conf search corpX.un nameserver 172.16.1.254 server# apt purge krb5-kdc krb5-admin-server bind9 slapd ldap-utils nis server# apt autoremove === 10.2 Настройка SAMBA4 как DC === * [[Контроллер домена SAMBA 4#Установка Samba4 из пакетов]] * [[Контроллер домена SAMBA 4#Инициализация домена]] * Добавляем в домен пользователя user2/Pa$$w0rd2 ([[Контроллер домена SAMBA 4#Управление доменом]]) * Включаем в домен Windows client3 ([[Развертывание Active Directory#Включение в домен Windows клиентов]]) * Регистрируемся в Windows client3 как Administrator * Включаем в домен Windows client2 * Регистрируемся в Windows client2 как user2 === 10.3 Использование SAMBA4 DC для аутентификации === * Тестируем kerberos на gate gate# kinit Administrator gate# kinit user2 * Аутентификация доступа к SQUID [[Аутентификация доступа к SQUID#Если в роли KDC выступает Samba4]] * Настройки proxy через [[Развертывание Active Directory#Использование групповых политик]] (Может не заработать на client2, после всех экспериментов его лучше переустановить, или использовать client3) * [[Аутентификация доступа к SQUID#Настройка сервиса SQUID на использование GSSAPI]] === 10.4 Использование SAMBA4 DC для авторизации === Для gate используем winbind: * Регистрируем gate [[Сервис WINBIND#Регистрация unix системы в домене в режиме ADS]] * [[Сервис WINBIND#Управление ключами KERBEROS в режиме ADS]] * WINBIND [[Сервис WINBIND#Авторизация в режиме ADS/DOMAIN]] * [[Сервис WINBIND#Использование WINBIND в библиотеке NSSWITCH]] * [[Файловый сервер SAMBA#Настройка samba сервера в режиме DOMAIN/ADS c WINBIND]] для доступа к ресурсам home и corp_share для всех пользователей group1 * Назначение атрибутов General→Telephone number и E-mail * [[Развертывание Active Directory#Использование групповых политик]] для установки [[http://val.bmstu.ru/unix/Mail/Thunderbird%20Setup%2017.0.msi|Thunderbird.msi]] ([[Файловый сервер SAMBA#Публичный каталог доступный на чтение]], можно и на gate и на server) * [[Сервис WINBIND#Управление ключами KERBEROS в режиме ADS]] * Подключаемся как user1 на client3 и проверяем установку Thunderbird Для client1 используем LDAP * [[Сервис NIS#Настройка Windows сервера]] (который сейчас samba4) на поддержку UNIX атрибутов * Настройка библиотеки nsswitch на client1 на использование LDAP каталога ([[Авторизация с использованием LDAP сервера]]) Для server используем LDAP server# userdel user1; userdel user2 * [[Авторизация с использованием LDAP сервера]] server# samba-tool group add guser3 --gid-number=10003 server# samba-tool user create user3 --given-name Sidor --initials S --surname Sidorov --uid-number 10003 --gid-number 10003 --login-shell /bin/bash --unix-home /home/user3 server# mkdir /home/user3 && chown user3:guser3 /home/user3 !!! Примечание: не удалось настроить dovecot на создание домашних каталогов на gate ==== Вопросы ==== - Какой ключ утилиты samba-tool используется для расширения схемы для хранения UNIX атрибутов при инициализации контроллера домена Samba4? - Какая утилита используется для управления учетными записями пользователей в контроллере домена Samba4? - Что нужно установить на рабочую станцию Windows для управления контроллером домена Samba4? - Поддерживает ли контроллер домена Samba4 групповые политики? - Какой вариант системы централизованного управления учетными записями самый лучший? ===== Модуль 11. Вариант использования рабочих станций Linux с Microsoft Active Directory ===== * Бонус - вебинар [[Зачем вводить системы Linux в домен Microsoft]] ===== Дополнительные материалы ===== * [[http://www.opennet.ru/docs/RUS/fds/|Организация централизованной системы аутентификации при помощи Fedora Directory Server и MIT Kerberos]] * [[https://ru.wikipedia.org/wiki/FreeIPA|Материал из Википедии FreeIPA]] * [[https://redos.red-soft.ru/base/arm/arm-domen/windows-in-ipa/|red-soft Ввод Windows в домен IPA]] ==== Рабочая станция Linux c LDAP и NIS ==== # DEBIAN_FRONTEND=noninteractive apt install krb5-user libpam-krb5 libnss-ldap cifs-utils nfs-common # vim /etc/hostname # vim /etc/hosts # vim /etc/krb5.conf # vim /etc/fstab # vim /etc/libnss-ldap.conf # vim /etc/nsswitch.conf # init 6 # service nscd restart && service nscd reload # kinit user1 # getent passwd