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