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