Linux. Управление учетными записями на предприятии
Программа курса
Задача курса
Модуль 0. Подготовка стенда в классе
-  Узнать свой номер стенда 
-  Удалить виртуалки 
-  Удалить профили putty 
-  Отключить не используемые адаптеры 
-  Записать логин пароль и IP (сообщить преподавателю) рабочей станции 
-  Проверить наличие дистрибутивов и образов 
 
Модуль 1. Развертывание сети предприятия
Теория
Лабораторные работы: Развертывание сети предприятия
1.1 Схема стенда, импорт, настройка и запуск VM gate и server
Запустите с правами 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
# sh net_gate.sh
# init 6
# sh net_server.sh
# init 6
 
1.3 настройка сервисов DNS и DHCP
gate:~# sh conf/dhcp.sh
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
Вопросы
-  Что определяет порядок использования файлов /etc/hosts и /etc/resolv.conf для разрешения  DNS-  имен? 
 
Модуль 2. Ретроспектива механизмов аутентификации и авторизации в UNIX
Теория
Лабораторные работы: Классика ААА в UNIX
2.1 Использование протокола NIS для аутентификации и авторизации пользователей в UNIX сети
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
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 для поддержки перемещаемых профилей пользователей
демонстрирует преподаватель
 
Вопросы
-  Какие поля в учетной записи UNIX используются для аутентификации? 
-  Какие поля в учетной записи UNIX используются для авторизации? 
-  Для чего используется поле GECOS учетной записи пользователя UNIX? 
-  Что такое NIS домен? 
-  Что такое NIS карты? 
-  Какая утилита используется для инициализации NIS карт? 
-  Какая утилита используется для тестирования NIS? 
 
Модуль 3. Современные механизмы аутентификации и авторизации в Linux
Теория
Лабораторные работы: ААА с использованием NSS и PAM
3.1 Авторизация с использованием библиотеки NSS
client1:~# scp /etc/nsswitch.conf gate:/etc/nsswitch.conf
debian11# service nscd restart && service nscd reload
 
3.2 Аутентификация с использованием библиотеки PAM
3.3 Решение задачи SSO для протокола SSH
-  Домашнее задание-  по видео уроку  SSH SSO
 
- 
- 
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
Теория
Лабораторные работы: Настройка KDC
4.1 Подготовка сети к использованию протокола Kerberos
server# nslookup -q=SRV _kerberos._udp.corpX.un
 
4.2 Установка KDC и регистрация принципалов
4.3 Использование протокола GSSAPI для аутентификации сервиса ssh
4.4 Использование протокола GSSAPI для сервиса http proxy
!!! Подготовка к 5-му модулю: Запускаем импорт системы windows
 
Вопросы
-  Kerberos обеспечивает механизм … 
-  Что такое Kerberos realm (сфера)? 
-  Какие объекты представляются учетными записями (Principal) в Kerberos? 
-  Используется ли в протоколе Kerberos SSL или TLS? 
-  Используются ли в протоколе Kerberos сертификаты? 
-  Что хранится в TGT? 
-  Какая команда может быть использована для получения TGT? 
-  Разница в настройке времени между системами, взаимодействующими по протоколу Kerberos, не должна составлять более … 
-  В каком файле, по умолчанию, на стороне сервера хранятся учетные записи сервисов? 
-  Для чего используется GSSAPI? 
-  Какого типа сервиса должен быть добавлен в KDC для использование Kerberos с сервисом Squid? 
 
Модуль 5. Samba - корпоративный сервис CIFS для Windows и Linux клиентов
Теория
Лабораторные работы: Знакомство с сервисом Samba
5.1 Добавление в сеть предприятия рабочих станций windows
net user user2 wpassword2 /add
 
5.2 Аутентификация и авторизация Windows клиентов на файловом сервере Samba по протоколу CIFS
демонстрирует преподаватель
 
5.3 Подключение Linux клиентов к файловому серверу CIFS
бонусная лабораторная работа
 
5.4 Использование файлового сервиса CIFS для хранения профилей пользователей 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
client3:~# id user2
client3:~# find /home/
 
Дополнительные материалы
Вопросы
-  Какой режим безопасности должен быть настроен в SAMBA для работы с собственной базой данных пользователей? 
-  Какая утилита используется для управления учетными записями пользователей в файловом сервере SAMBA? 
 
Модуль 6. Использование Linux Kerberos сферы для SSO пользователей рабочих станций Windows
Теория
Лабораторные работы
6.1 Регистрация рабочих станций Windows в Kerberos сфере
6.2 Использование протокола GSSAPI для аутентификации Windows клиентов на UNIX сервисах
6.3 SSO GSSAPI аутентификация Windows клиентов для сервиса CIFS
-  GSSAPI аутентификация протокола CIFS для Windows клиентов (использовать FQDN \\gate.corpX.un, в Debian10, после обновления не заработала, в Debian11 все ОК) 
 
Дополнительные материалы
Вопросы
-  Какого типа сервис должен быть добавлен в KDC для регистрации рабочей станций Windows при использовании Kerberos сферы? 
-  Где хранится пользовательский профиль при использовании Kerberos сферы для аутентификации пользователей рабочих станций Windows? 
-  Какой режим безопасности должен быть настроен в пакете SAMBA для работы с базой данных пользователей в KDC? 
 
Модуль 7. Протокол LDAP
Теория
Лабораторные работы: Варианты использования протокола LDAP
7.1 Использованием протокола LDAP для авторизации учетных записей Linux
# apt purge nis && apt autoremove
 
7.2 Использование протокола GSSAPI для сервиса электронной почты
демонстрирует преподаватель
 
7.3 Использование LDAP каталога для хранения дополнительной информации о пользователях сети
- 
-  Преподаватель устанавливает “дружественный” интерфейс к LDAP -  Apache Directory Studio-  (требует  JRE- , раскрывать в VM лучше через 7zip) 
- 
-  Настройка доступа к адресной книге в  roundcube-  (продемонстрировать jpegPhoto и проверить поиск) 
 
Вопросы
-  В виде какой структуры представляются записи в LDAP? 
-  Для чего используется формат LDIF? 
-  Как в протоколе LDAP называется операция аутентификации? 
-  Что такое DN и RDN в LDAP? 
-  Сколько атрибутов класса (object class) может быть у записи? 
 
Модуль 8. Использование Microsoft AD для аутентификации и авторизации в гетерогенных сетях
Теория
Лабораторные работы: Использование Microsoft AD
8.1 Подготовка стенда
gate# rm -v /root/*keytab
gate# rm /etc/krb5.keytab
 
8.2 Развертывание контроллера домена
8.3 Включение в домен рабочих станций windows и серверов Linux
демонстрирует преподаватель
 
8.4 Включение в домен рабочих станций Linux
Вариант 1 (лучше сделать в теме 8.6 для получения информации о пользователях на gate)
- 
- 
-  Создаем группы guser1, guser2, назначаем им и пользователям user1 и user2 - unix атрибуты идентичные ранее имевшимся 
-  Создаем группу group1, назначаем ей ранее имевшийся GID, включаем в нее user1 и user2 
- 
Вариант 2 - Запись вебинара: Зачем вводить системы Linux в домен Microsoft?
client1:~# find /home/
 
8.5 Использование Windows Server в качестве NFS сервера
демонстрирует преподаватель, не нужно для 2-го варианта работы 8.4
client1# id user1
client1# mount server:/home /home
client1# chmod 755 /home
 
8.6 Использование протоколов SSPI и GSSAPI
демонстрирует преподаватель
gate# service smbd restart
бонусные лабораторные работы
 
8.7 Использование AD как LDAP каталога для хранения дополнительной информации о пользователях
демонстрирует преподаватель
 
Вопросы
-  Какой утилитой можно добавить учетную запись сервиса UNIX в Microsoft AD? 
-  Какой утилитой можно вывести список сервисов, привязанных к учетной записи Microsoft AD? 
-  Что нужно сделать для хранения в Microsoft AD атрибутов учетных записей UNIX? 
-  Что нужно сделать для развертывания сервиса NFS на Microsoft Windows Server? 
 
Дополнительные материалы
Модуль 9. Использование сервиса WINBIND
Подготовка к следующему модулю
Примечание
Теория
Лабораторные работы: Использование сервиса WINBIND
9.1 Для управления ключами сервисов в Microsoft AD
C:\>del *keytab
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/
демонстрирует преподаватель
 
9.2 Для генерации UNIX атрибутов пользователей Microsoft AD
Следующие шаги можно пропустить:
-  Останавливаем Linux клиент  
-  Отключаем unix свойства пользователей user1 и user2 в AD 
-  Удаляем группы guser1 и guser2 
- 
Можно делать отсюда:
 
9.3 Для авторизации пользователей на основе членства в группах Microsoft AD на серверах Linux
9.4 Альтернатива WINBIND - сервис SSSD
9.5 Альтернатива WINBIND и SSSD - создаем учтные записи через PAM
Вопросы
-  Для каких задач предназначен WINBIND? 
-  Какая утилита позволяет проверить работу WINBIND? 
 
Модуль 10. Использование пакета Samba4 в качестве контроллера домена
Теория
Лабораторные работы
10.1 Подготовка стенда
debian# service nscd restart && service nscd reload
- 
-  Останавливаем 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
- 
- 
- 
- 
-  Регистрируемся в Windows client3 как Administrator 
-  Включаем в домен Windows client2 
-  Регистрируемся в Windows client2 как user2 
 
10.3 Использование SAMBA4 DC для аутентификации
gate# kinit Administrator
gate# kinit user2
- 
-  Настройки proxy через  Использование групповых политик-  (Может не заработать на client2, после всех экспериментов его лучше переустановить, или использовать client3) 
- 
 
10.4 Использование SAMBA4 DC для авторизации
Для gate используем winbind:
Для client1 используем LDAP
Для server используем LDAP
server# userdel user1; userdel user2
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 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