====== Linux (Ubuntu)/FreeBSD. Взаимодействие с Microsoft Windows ======
===== Программа курса =====
* [[http://www.specialist.ru/course/yun3-b|Linux/FreeBSD. Уровень 3. Взаимодействие с Microsoft Windows]]
===== Модуль 1. Развертывание сети предприятия =====
==== 1.1 Настройка виртуальных систем Gate (256m), Server(512m) ====
* [[Настройка стендов слушателей]]
==== 1.2 Настройка виртуальной системы Client1(512m) ====
* [[Настройка стендов слушателей#Общие файлы конфигурации]]
=== Debian/Ubuntu ===
root@localhost:~# cat /etc/hostname
client1.corpX.un
root@localhost:~# cat /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.X.30
netmask 255.255.255.0
gateway 192.168.X.1
root@localhost:~# init 6
...
root@client1:~# apt-get update
=== FreeBSD ===
# cat /etc/rc.conf
hostname="client1.corpX.un"
ifconfig_em0="192.168.X.30/24"
defaultrouter=192.168.X.1
keyrate="fast"
sshd_enable=yes
# init 6
==== 1.3 !!! Для Ubuntu 16 ====
Во всех 3-х системах добавить в репозиторий обновления!!!
# cat /etc/apt/sources.list
deb http://ru.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse
deb http://ru.archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
# apt update
===== Модуль 2. Ретроспектива механизмов аутентификации и авторизации в UNIX =====
==== 2.1 Использование протокола NIS для аутентификации и авторизации пользователей в UNIX сети ====
* Удаляем на server пользователя student
* В систему server добавляем учетные записи
login: user1
uid: 10001
homedir: /home/user1
shell: bash (csh для freebsd)
gecos: Ivan Ivanovitch Ivanov,RA1,401,499-239-45-23
pass: password1
login: user2
uid: 10002
homedir: /home/user2
shell: bash (csh для freebsd)
gecos: Petr Petrovitch Petrov,RA7,402,499-323-55-53
pass: password2
* В систему server добавляем группу group1 и включаем в нее user1 и user2
* Для FreeBSD русифицируем учетные записи user1 и user2
* [[Управление учетными записями в Linux]], [[Управление учетными записями в FreeBSD]]
* [[Сервис NIS#Настройка Unix сервера]] server как сервер NIS
* [[Сервис NIS#Настройка клиента]] client1 как клиента NIS
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 :)]]
===== Модуль 3. Современные механизмы аутентификации и авторизации в UNIX =====
==== 3.1 Авторизация с использованием библиотеки NSS ====
* [[Сервис NIS#Настройка клиента]] gate как клиента NIS (не редактируем файлы /etc/passwd и прочие)
* Использование библиотеки пространства имен для идентификации в системе gate ([[Использование библиотеки NSSWITCH]])
==== 3.2 Аутентификация с использованием библиотеки PAM ====
* [[Использование библиотеки PAM#Терминология PAM]]
* [[Использование библиотеки PAM#Приостановка регистрации пользователей]] (__демонстрирует преподаватель__, проверять подключаясь user1 с client1 на gate)
* [[Использование библиотеки PAM#Автоматическое создание домашних каталогов]] для сервиса sshd на gate (для проверки подключаемся с host системы как user1 и user2)
* **Домашнее задание** по видео уроку [[https://youtu.be/-fcJ8MkoLts|Использование одноразовых паролей OPIE]]
* [[Аутентификация с использованием OPIE]]
==== 3.3 Решение задачи SSO с помощью протоколов SSH ====
* **Домашнее задание** по видео уроку [[http://youtu.be/kXi1KXYy-NE|SSH SSO]]
* Использование ssh_agent ([[Сервис SSH#Аутентификация с использованием ключей ssh]])
* Использование SSH как решение SSO ([[Использование библиотеки PAM#Использование pam_ssh для сервиса login]]) с client1 на gate
user1@client1:~$ ps -x
...
... Ss 0:00 ssh-agent
...
user1@client1:~$ ssh gate
user1@client1:~$ rm .ssh/id*
===== Модуль 4. Аутентификация с использованием протокола Kerberos =====
==== 4.1 Принцип работы протокола ====
* [[Сервис KERBEROS]]
==== 4.2 Подготовка сети к использованию протокола Kerberos ====
* [[Финальная настройка DNS сервера]]
server# nslookup -q=SRV _kerberos._udp.corpX.un
* Удаляем лишние записи из /etc/hosts (!!! оставить запись для имени системы)
* Синхронизируем время в системах client1, gate и server ([[Сервис NTP]])
==== 4.3 Установка KDC и регистрация принципалов ====
* [[Настройка KDC серверов и клиентов#Настройка KDC]] (на системе server)
* [[Регистрация ключей принципалов в KDC#Регистрация принципалов пользователей в базе данных kerberos]]
* [[Настройка KDC серверов и клиентов#Настройка Kerberos клиента]] (на системах client1 и gate)
==== 4.4 Использование протокола GSSAPI для аутентификации ====
=== 4.4.1 Использование протокола GSSAPI для сервиса ssh ===
* [[Использование библиотеки PAM#Использование pam_krb5 для сервиса login/xdm]] на client1
* [[Сервис SSH#Аутентификация с использованием протокола GSSAPI]] для сервиса ssh на gate
=== 4.4.2 Настройка desktop на client1 ===
* [[Локализация окружения]]
* [[Инсталяция системы в конфигурации Desktop]]
* [[Инсталяция системы в конфигурации Desktop#Выбор пользователем оконного менеджера]] (в FreeBSD)
=== 4.4.3 Использование протокола GSSAPI для сервиса http proxy ===
* [[Использование библиотеки PAM#Использование pam_krb5 для сервиса login/xdm]] на client1
* [[Установка, настройка и запуск пакета SQUID]] на gate
* [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]] для squid на gate
* [[Авторизация доступа к ресурсам через SQUID#Авторизация на основе членства в группе]] для squid на gate
=== 4.4.4 Использование протокола GSSAPI для сервиса imap ===
__демонстрирует преподаватель__
* [[Сервис MTA#Установка и настройка MTA на обработку почты домена hostname]] на системе gate
* [[Сервис MTA#Настройка MTA на обработку почты домена corpX.un]]
* Установка [[UA mail]] на системе gate
* [[Сервер dovecot#Установка]] imap сервера dovecot на gate
* [[Сервер dovecot#Настройка с использованием стандартных mailboxes и аутентификации открытым текстом]] на сервере dovecot на gate
* [[Сервер dovecot#Kerberos GSSAPI аутентификация]] на сервере dovecot на gate
===== Модуль 5. Протокол 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 интерфейс и все все все]]
==== 5.1 Использованием протокола LDAP для авторизации пользователей Linux/FreeBSD ====
* [[Установка и настройка OpenLDAP]]
* [[Хранение учетных записей UNIX в LDAP]]
* Отключаем NIS на gate debian/ubuntu
gate# apt purge nis
gate# apt autoremove
* Отключаем NIS на gate freebsd
gate# service ypbind stop
gate# cat /etc/rc.conf
...
nis_client_enable="NO"
...
* Настройка библиотеки nsswitch на gate на использование LDAP каталога ([[Авторизация с использованием LDAP сервера]])
==== 5.2 Использование LDAP каталога для хранения дополнительной информации о пользователях сети ====
* Дружественный интерфейс к LDAP ([[https://directory.apache.org/studio/|Apache Directory Studio]])
* Добавление атрибутов mail, telephoneNumber
* [[Thunderbird#Получение списка контактов через LDAP]] в Thunderbird
===== Модуль 6. Использование пакета SAMBA для реализации файлового сервиса CIFS =====
* [[https://youtu.be/dNR1krtEhN8|Видео урок: Использование пакета SAMBA для реализации файлового сервиса CIFS]]
==== 6.1 Добавление в сеть предприятия рабочих станций ====
* Добавляем в сеть клиентскую систему windows
* Настраиваем Windows - устанавливаем ip адрес 192.168.X.31/24
* Установка GSSAPI клиентских программ:
* putty.exe [[http://val.bmstu.ru/unix/SSH/putty.exe]]
* WinScp [[http://val.bmstu.ru/unix/SSH/winscp433setup.exe]]
* Firefox (можно оставить IE8), http://val.bmstu.ru/unix/WWW/Firefox%20Setup%2017.0.1.exe
* Thunderbird [[http://val.bmstu.ru/unix/Mail/Thunderbird%20Setup%2017.0.exe]]
==== 6.2 NTLM аутентификация и авторизация Windows клиентов на файловом сервере Samba ====
* [[Файловый сервер SAMBA#Установка]] файлового сервера SAMBA
__демонстрирует преподаватель__
* [[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе копии базы данных учетных записей]]
* Доступ на основе членства в группе (на примере группы wheel/admin)
==== 6.3 Подключение UNIX клиентов к файловому серверу CIFS ====
__бонусная лабораторная работа__
* [[Подключение к файловым серверам CIFS из UNIX#NTLM аутентификация]] на серверах CIFS для пользователей UNIX
===== Модуль 7. Использование Kerberos сферы для аутентификации пользователей рабочих станций Windows =====
* Настраиваем Windows - устанавливаем имя **client2**
* [[https://youtu.be/rLrYjBinrLE|Видео урок. Использование Kerberos сферы для аутентификации пользователей рабочих станций Windows]]
__демонстрирует преподаватель__
==== 7.1 Регистрация рабочих станций Windows в Kerberos сфере ====
* [[Регистрация ключей принципалов в KDC#Регистрация рабочих станций windows в KDC]]
* Регистрация локальных пользователей в Windows с именами, соответствующими KDC (user2)
* [[Материалы по Windows#Подключение к сфере KERBEROS]] рабочих станций windows
==== 7.2 Использование протокола GSSAPI для аутентификации Windows клиентов на UNIX сервисах ====
* !!! рекомендуется в настройках ПО указывать имена серверов полностью с доменом !!!
* SSO GSSAPI аутентификация для сервисов SSH, HTTP PROXY, IMAP
==== 7.3 SSO GSSAPI аутентификация для сервиса CIFS ====
__бонусная лабораторная работа__
* [[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе регистрации в Active Directory/DOMAIN/Kerberos REALM]]
* Удаляем через Apache Directory Studio пользователя user2 из group1 и перезапускаем smbd
* [[Подключение к файловым серверам CIFS из UNIX#GSSAPI аутентификация]] протокола CIFS для UNIX клиентов
===== Модуль 8. Использование Microsoft AD для аутентификации и авторизации в гетерогенных сетях =====
==== 8.1 Подготовка стенда ====
* Выключаем client1, можно сделать tar home (При Windows Server 2016 убрать + в файлах passwd groups shadow)
* Отключаем nss_ldap на gate
* Выключаем server
* Удаляем ключи сервисов с gate
gate# rm /root/*keytab
gate# rm /etc/krb5.keytab
==== 8.2 Развертывание контроллера домена ====
* [[Развертывание Active Directory]]
* Добавляем в домен пользователей user1/Pa$$w0rd1 и user2/Pa$$w0rd2
==== 8.3 Включение в домен рабочих станций windows ====
* [[Развертывание Active Directory#Включение в домен Windows клиентов]] (client2)
* Регистрируемся в Windows client2 как user2
* [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]] windows клиентов в HTTP proxy
* [[https://youtu.be/yZfoBTlqFCQ|Видеоурок: Авторизация доступа пользователей домена MS Active Directory в Internet с использованием proxy-сервера Squid]]
* Настройки proxy через [[Развертывание Active Directory#Использование групповых политик]]
==== 8.4 Включение в домен рабочих станций и серверов unix ====
* [[Сервис NIS#Настройка Windows сервера]] в качестве NIS сервера
* Создаем группы guser1, guser2, назначаем им и пользователям user1 и user2 - unix атрибуты идентичные ранее имевшимся
* Создаем групп group1, назначаем ей ранее имевшийся GID, включаем в нее user1 и user2
* Запускаем unix client1
* Проверяем NIS
* [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]] unix клиентов в HTTP proxy
==== 8.5 Использование Windows 2008 в качестве NFS сервера ====
__демонстрирует преподаватель__
* Настройка в [[Сервис NFS#Windows 2008]] протокола NFS
* Монтируем /home, создаем домашние каталоги
client1# id user1
client1# mount server:/home /home
client1# mkdir /home/user1
client1# mkdir /home/user2
* [[Инсталяция системы в конфигурации Desktop#Выбор пользователем оконного менеджера]] во FreeBSD
* Правим владельцев домашних каталогов
client1# chmod 755 /home
client1# chown -R user1:guser1 /home/user1/
client1# chown -R user2:guser2 /home/user2/
==== 8.6 Использование протокола LDAP ====
* [[Авторизация с использованием LDAP сервера]] windows для unix сервисов
==== 8.7 Использование протоколов SSPI и GSSAPI ====
* [[Сервис SSH#Аутентификация с использованием протокола GSSAPI]] для сервиса SSH
__демонстрирует преподаватель__
* [[Сервер dovecot#Kerberos GSSAPI аутентификация]] для сервиса imap
* Kerberos GSSAPI ([[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе регистрации в Active Directory/DOMAIN/Kerberos REALM]])
gate# service smbd restart
__бонусные лабораторные работы__
* [[Подключение к файловым серверам CIFS из UNIX#GSSAPI аутентификация]] протокола CIFS для UNIX клиентов
* [[Авторизация доступа к ресурсам через SQUID]] на основе членства в группе
==== 8.8 Использование AD как LDAP каталога для хранения дополнительной информации о пользователях ====
__демонстрирует преподаватель__
* Назначение атрибутов General->Telephone number и E-mail
* [[Thunderbird#Получение списка контактов через LDAP]]
* [[Thunderbird#Поддержка фотографий в LADP каталоге]]
===== Модуль 9. Использование сервиса WINBIND =====
!!! Можно объединить все лабораторные работы
==== 9.1 Использование сервиса WINBIND для управления ключами сервисов в Microsoft AD ====
* Удаляем пользователей gate* из AD
* Удаляем файлы с ключами на AD
C:\>del *keytab
* Удаляем ключи сервисов с gate
gate# rm /root/*keytab
gate# rm /etc/krb5.keytab
* [[Сервис 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
==== 9.2 Использование сервиса WINBIND для генерации UNIX атрибутов пользователей Microsoft AD ====
* Останавливаем UNIX клиент (если планируем его использовать с samba4, надо удалить nis)
* Импортируем и настраиваем Windows client1 (указать имя копьютера)
* Отключаем ldap в nsswitch на gate
* Отключаем unix свойства пользователей user1 и user2 в AD
* Удаляем группы guser1 и guser2
* WINBIND [[Сервис WINBIND#Авторизация в режиме ADS/DOMAIN]]
* [[Сервис WINBIND#Использование WINBIND в библиотеке NSSWITCH]] (В ubuntu может потребоваться удалить winbind и samba через purge)
* [[Сервис SSH#Настройка сервиса sshd на использование GSSAPI]]
__демонстрирует преподаватель__
* Включаем client1 в домен
* [[Сервер dovecot#Настройка dovecot на использование GSSAPI]]
==== 9.3 Использование сервиса WINBIND для авторизации пользователей на основе членства в группах Microsoft AD на серверах Linux/FreeBSD ====
* Отключаем unix атрибуты у группы group1
* Добавляем пользователя user1 в группу group1
* SQUID [[Авторизация доступа к ресурсам через SQUID#Авторизация на основе членства в группе]]
* [[Файловый сервер SAMBA#Настройка samba сервера в режиме DOMAIN/ADS c WINBIND]] (как ни странно, принципал cifs не надо создавать, но, откуда то он берется у клиента :)
===== Модуль 10. Использование пакета Samba4 в качестве контроллера домена =====
==== 10.1 Подготовка стенда ====
* Выводим Windows клиенты из домена AD
* [[Материалы по Windows#Развертывание средств администрирования Active Directory]] на client1
* Отключаем WINBIND в nsswitch.conf на gate
* Выводим gate из домена AD ([[Сервис WINBIND#Вывод unix системы из домена в режиме ADS]])
* Останавливаем Windows AD
* Включаем unix server
=== Debian/Ubuntu/FreeBSD ===
server# cat /etc/resolv.conf
search corpX.un
nameserver 172.16.1.254
=== Debian/Ubuntu ===
server# apt purge krb5-kdc krb5-admin-server bind9 slapd ldap-utils nis
server# apt autoremove
=== FreeBSD ===
# service slapd stop
# service kdc stop
# service named stop
# service ypserv stop
# cat /etc/rc.conf
...
named_enable="NO"
kdc_enable="NO"
slapd_enable="NO"
nis_server_enable="NO"
...
==== 10.2 Настройка SAMBA4 как DC ====
* [[Контроллер домена SAMBA 4#Установка Samba4 из пакетов]]
* [[Контроллер домена SAMBA 4#Инициализация домена]]
* Добавляем в домен пользователя user2/Pa$$w0rd2 ([[Контроллер домена SAMBA 4#Управление доменом]])
* Включаем в домен Windows client1 ([[Развертывание Active Directory#Включение в домен Windows клиентов]])
* Регистрируемся в Windows client1 как Administrator (может, лучше завести для него отдельный client3)
* Включаем в домен Windows client2
* Регистрируемся в Windows client2 как user2
==== 10.3 Использование SAMBA4 DC для аутентификации ====
* Тестируем kerberos на gate
gate# kinit Administrator
gate# kinit user2
* Регистрируем gate [[Сервис WINBIND#Регистрация unix системы в домене в режиме ADS]]
* [[Сервис WINBIND#Управление ключами KERBEROS в режиме ADS]]
* [[Материалы по Windows#Развертывание средств администрирования Active Directory]]
* Настройки proxy через [[Развертывание Active Directory#Использование групповых политик]]
* [[Аутентификация доступа к SQUID#Настройка сервиса SQUID на использование GSSAPI]]
==== 10.4 Использование SAMBA4 DC для авторизации ====
* SAMBA4 не реализует протокол NIS, НО поддерживает NIS расширения схемы
* [[Хранение учетных записей UNIX в LDAP#Хранение учетных записей UNIX в LDAP]]
* Авторизация с использованием LDAP сервера [[Авторизация с использованием LDAP сервера#Microsoft Active Directory]]
* WINBIND [[Сервис WINBIND#Авторизация в режиме ADS/DOMAIN]]
* [[Сервис WINBIND#Использование WINBIND в библиотеке NSSWITCH]]
* [[Файловый сервер SAMBA#Настройка samba сервера в режиме DOMAIN/ADS c WINBIND]] для доступа к ресурсам home и share для всех пользователей domain users
* [[Развертывание Active Directory#Использование групповых политик]] для установки [[http://val.bmstu.ru/unix/Mail/Thunderbird%20Setup%2017.0.msi|Thunderbird.msi]] ([[Файловый сервер SAMBA#Публичный каталог доступный на чтение]])
* Подключаемся как user1 на client1 и проверяем установку Thunderbird
===== Дополнительные материалы =====
* [[http://www.securitylab.ru/analytics/264318.php|Настраиваем Kerberos поверх LDAP]]
* [[http://www.opennet.ru/docs/RUS/fds/|Организация централизованной системы аутентификации при помощи Fedora Directory Server и MIT Kerberos]]
* [[http://technet.microsoft.com/en-us/library/bb457114.aspx|Technet: Understanding Logon and Authentication]]
* [[http://www.ibm.com/developerworks/ru/library/linux_migr/part1.html|Руководство по миграции на Linux для региональных администраций. Часть 1]]
* [[http://www.ibm.com/developerworks/ru/library/linux_migr/part2.html|Руководство по миграции на Linux для региональных администраций. Часть 2]]
* [[http://www.ibm.com/developerworks/ru/library/linux_migr/part3.html|Руководство по миграции на Linux для региональных администраций. Часть 3]]
* [[http://www.ibm.com/developerworks/ru/library/linux_migr/part4.html|Руководство по миграции на Linux для региональных администраций. Часть 4]]
* [[http://www.ibm.com/developerworks/ru/library/linux_migr/part5.html|Руководство по миграции на Linux для региональных администраций. Часть 5]]