====== 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