====== Управление идентификацией в сетях UNIX и Windows ====== ===== Видеозапись курса ===== [[http://val.bmstu.ru/video/un3/]] ===== Модуль 1. Развертывание сети предприятия ===== ==== Настройка виртуальных систем Gate, Server ==== [[Настройка стендов слушателей]] ==== Настройка виртуальной системы Client1 ==== [[Настройка стендов слушателей#Общие файлы конфигурации]] === 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 # pkg update -f # pkg install pkg ===== Модуль 2. Ретроспектива механизмов аутентификации и авторизации в UNIX ===== ==== Использование протокола NIS для аутентификации и авторизации пользователей в UNIX сети ==== * В систему server добавляем пользователей user1 с uid=10001 gid=10001 и user2 с uid=10002 gid=10002 * Заполняем поля GECOS * В систему server добавляем группу group1 и включаем в нее user1 и user2 * Для FreeBSD русифицируем пользователей user1 и user2 * [[Управление учетными записями в Linux]], [[Управление учетными записями в FreeBSD]] * Настройка системы server как сервер NIS ([[Сервис NIS#Настройка Unix сервера]]) * Настройка систем gate и client1 как клиенты NIS ([[Сервис NIS#Настройка клиента]]) ==== Использование протокола NFS для поддержки перемещаемых профилей пользователей ==== * Экспорт домашних каталогов по NFS с системы server ([[Сервис NFS#Установка, настройка и запуск сервиса]]) * Для linux [[Сервис NFS#Установка nfs клиента]] на gate и client1 * Монтирование домашних каталогов по NFS на client1 и gate ([[Сервис NFS#Использование сервиса]]) ==== Решение задачи SSO с помощью протоколов RSH и RLOGIN ==== __Демонстрирует преподаватель__, в Ubuntu 12.04 не работает файл .rhosts если он располагается на NFS разделе * Использование RSH как решение SSO c client1 на gate ([[Сервисы TELNET RSH]]) ===== Модуль 3. Современные механизмы аутентификации и авторизации в UNIX ===== ==== Авторизация с использованием библиотеки NSS ==== * Использование библиотеки пространства имен для идентификации в системе gate (предварительно отключить NIS идентификацию в passwd и group) ([[Использование библиотеки NSSWITCH]]) ==== Аутентификация с использованием библиотеки PAM ==== * [[Использование библиотеки PAM#Терминология PAM]] * [[Использование библиотеки PAM#Приостановка регистрации пользователей]] (__демонстрирует преподаватель__, проверять подключаясь user1 с client1 на gate) * Отмонтируем по nfs каталог /home на gate * [[Использование библиотеки PAM#Автоматическое создание домашних каталогов]] для сервиса sshd на gate (для проверки подключаемся с системы client1 как user1 и user2) * [[Аутентификация с использованием OPIE]] c host системы на gate с использованием [[http://val.bmstu.ru/unix/opie/]] (__демонстрирует преподаватель__, в Ubuntu 12.04 отсутствует) * Отключаем OPIE ==== Решение задачи SSO с помощью протоколов SSH ==== __демонстрирует преподаватель__ * Использование ssh_agent ([[Сервис SSH#Управление идентификацией]]) * Использование SSH как решение SSO ([[Использование библиотеки PAM#Использование pam_ssh для сервиса login]]) с client1 на gate (!!! В Ubuntu 12.04 отсутствует !!!) * Отключаем SSH как решение SSO user1@client1:~$ rm .ssh/id* ===== Модуль 4. Аутентификация с использованием протокола Kerberos ===== ==== Принцип работы протокола ==== * [[Сервис KERBEROS]] ==== Подготовка сети к использованию протокола Kerberos ==== * [[Финальная настройка DNS сервера]] * Синхронизируем время в системах client1, gate и server ([[Сервис NTP]]) * Адрес системы client1 оставляем в /etc/hosts систем gate и server ==== Установка KDC и регистрация принципалов ==== * [[Настройка KDC серверов и клиентов#Настройка KDC]] (на системе server) * [[Регистрация ключей принципалов в KDC#Регистрация принципалов пользователей в базе данных kerberos]] * [[Настройка KDC серверов и клиентов#Настройка Kerberos клиента]] (на системах client1 и gate) ==== Использование протокола GSSAPI для аутентификации ==== === Использование протокола GSSAPI для сервиса ssh === * [[Использование библиотеки PAM#Использование pam_krb5 для сервиса login/xdm]] на client1 * [[Сервис SSH#Аутентификация с использованием протокола GSSAPI]] для сервиса ssh на gate === Использование протокола GSSAPI для сервиса http proxy === * Настройка desktop на client1 ([[Локализация окружения]], [[Инсталяция системы в конфигурации Desktop]], [[Работа с Internet сервисами]], [[Локализация X сервера]]) * [[Использование библиотеки PAM#Использование pam_krb5 для сервиса login/xdm]] на client1 * [[Установка, настройка и запуск пакета SQUID]] на gate * [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]] для squid на gate * [[Авторизация доступа к ресурсам через SQUID#Авторизация на основе членства в группе]] для squid на gate === Использование протокола GSSAPI для сервиса imap === __демонстрирует преподаватель__ * [[Сервис MTA#Установка и настройка MTA на обработку почты домена hostname]] на системе gate * Установка [[UA mail]] на системе gate * [[Сервер dovecot#Установка]] imap сервера dovecot на gate * [[Сервер dovecot#Настройка с использованием стандартных mailboxes и аутентификации открытым текстом]] на сервере dovecot на gate * [[Сервер dovecot#Kerberos GSSAPI аутентификация]] на сервере dovecot на gate ===== Модуль 5. Протокол LDAP ===== * Терминология ([[http://pro-ldap.ru/agreements.html]]) * Теория, пример реализации ([[http://www.ignix.ru/public/daemon/openldap_addressbook]]) ==== Использованием протокола LDAP для авторизации пользователей Linux/FreeBSD ==== * Установка, настройка и запуск ldap сервера ([[Установка и настройка OpenLDAP]]) * Импорт данных в каталог ([[Хранение учетных записей UNIX в LDAP]]) * Настройка библиотеки nsswitch на использование LDAP каталога ([[Авторизация с использованием LDAP сервера]]) ==== Использование LDAP каталога для хранения дополнительной информации о пользователях сети ==== __демонстрирует преподаватель__ * [[Хранение адресной книги в LDAP]] * Thunderbird [[Thunderbird#Получение списка контактов через LDAP]] * Дружественный интерфейс к LDAP ([[Интерфейс phpldapadmin]]) ===== Модуль 6. Использование пакета SAMBA для реализации файлового сервиса CIFS ===== ==== Добавление в сеть предприятия рабочих станций Windows ==== * [[Сервис DHCP]] * Добавляем в сеть клиентскую систему windows ==== NTLM аутентификация и авторизация Windows клиентов на файловом сервере Samba ==== * Файловый сервер SAMBA ([[Файловый сервер SAMBA#Установка]]) * [[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе копии базы данных учетных записей]] * Доступ на основе членства в группе (на примере группы wheel/sudo) ==== Подключение UNIX клиентов к файловому серверу CIFS ==== __демонстрирует преподаватель__ * Подключение к файловым серверам CIFS из UNIX ([[Подключение к файловым серверам CIFS из UNIX#NTLM аутентификация]]) ===== Модуль 7. Использование Kerberos сферы для аутентификации пользователей рабочих станций Windows ===== __демонстрирует преподаватель__ ==== Подготовка сети к регистрации Windows клиентов в Kerberos сфере ==== * Настраиваем WinXP - устанавливаем имя client2 * Настройка сети в Linux ([[Настройка сети в Linux#Динамическая настройка параметров]]) * Настройка сети в FreeBSD ([[Настройка сети в FreeBSD#Динамическая настройка параметров]]) * Удаляем из /etc/hosts запись про client1 * Сервис DNS [[Сервис DNS#Настройка поддержки динамических обновлений от DHCP сервера]] * Сервис DHCP [[Сервис DHCP#Конфигурация с поддержкой динамических обновлений зон DNS]] * Перезапускаем client1 и client2 ==== Регистрация рабочих станций Windows в Kerberos сфере ==== * Регистрация рабочих станций windows в KDC ([[Регистрация ключей принципалов в KDC#Регистрация рабочих станций windows в KDC]]) * Установка утилиты для включения и отладочных средств Kerberos сфер для XP (ksetup.exe, kfw-3-2-2.exe) * Установка GSSAPI клиентских программ (putty_Centrify_GSS.zip, WinScp, Firefox, Thunderbird) * Подключение рабочих станций windows к KERBEROS сфере ([[Материалы по Windows#Подключение к сфере KERBEROS]]) * Регистрация локальных пользователей в Windows с именами, соответствующими KDC (user2) * Для поддержки Dynamic DNS пришлось в свойствах компьютера прописать маленькими буквами значение домена по умолчанию, прописанного заглавными буквами, галку оставить ==== Использование протокола GSSAPI для аутентификации Windows клиентов на UNIX сервисах ==== * !!! рекомендуется в настройках ПО указывать имена серверов полностью с доменом !!! * SSO GSSAPI аутентификация для сервисов SSH, HTTP PROXY, IMAP * SSO GSSAPI аутентификация для сервиса CIFS ([[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе регистрации в Active Directory/DOMAIN/Kerberos REALM]]) * Подключение к файловым серверам CIFS из UNIX ([[Подключение к файловым серверам CIFS из UNIX#GSSAPI аутентификация]]) ===== Модуль 8. Использование Microsoft AD для аутентификации и авторизации в гетерогенных сетях ===== ==== Подготовка стенда ==== * Останавливаем оба клиента * Отключаем NIS на gate ubuntu gate# apt-get purge nis gate# apt-get autoremove * Отключаем NIS на gate freebsd gate# /etc/rc.d/ypbind stop gate# cat /etc/rc.conf ... nis_client_enable="NO" ... * Отключаем nss_ldap на gate * Останавливаем server * Удаляем ключи сервисов с gate gate# rm /root/*keytab gate# rm /etc/krb5.keytab ==== Развертывание контроллера домена ==== * [[Развертывание Active Directory#Настройка адреса и имени сервера]] * Установка ПО (WinScp) * [[Развертывание Active Directory#Настройка временной зоны и синхронизации времени]] * [[Развертывание Active Directory#Установка AD]] * [[Развертывание Active Directory#Настройка DNS сервера]] * Добавляем в домен пользователей user1/Pa$$w0rd1 и user2/Pa$$w0rd2 ==== Включение в домен рабочих станций windows ==== * Включение в домен Windows XP client2 ([[Развертывание Active Directory#Включение в домен Windows XP]]) (Необходимо, что бы в свойствах компьютера, около значения домена по умолчанию, была установлена галка)) * Регистрируемся в Windows XP client2 как user2 * HTTP Proxy Kerberos GSSAPI аутентификация для клиентов windows ([[Firefox]], [[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]]) ==== Включение в домен рабочих станций и серверов unix ==== * Использование AD в качестве NIS сервера ([[Сервис NIS#Настройка Windows сервера]]) * Создаем группы guser1, guser2, назначаем им и пользователям user1 и user2 - unix атрибуты идентичные ранее имевшимся * Создаем групп group1, назначаем ей ранее имевшийся GID, включаем в нее user1 и user2 * Использование [[Сервис NFS#Windows 2008]] в качестве NFS сервера * Запускаем unix client1 * Проверяем NIS, монтируем /home, создаем домашние каталоги client1# id user1 client1# mount server:/home /home client1# mkdir /home/user1 client1# mkdir /home/user2 * [[Управление оконными менеджерами]] * Правим владельцев домашних каталогов client1# chmod 755 /home client1# chown -R user1:guser1 /home/user1/ client1# chown -R user2:guser2 /home/user2/ * HTTP Proxy Kerberos GSSAPI аутентификация для клиентов unix ([[Аутентификация доступа к SQUID#Kerberos GSSAPI аутентификация]]) * Использование LDAP интерфейса AD в unix ([[Авторизация с использованием LDAP сервера]]) * Авторизация доступа к ресурсам SQUID на основе членства в группе ([[Авторизация доступа к ресурсам через SQUID]]) ==== Использование протоколов SSPI и GSSAPI ==== * Использование протокола GSSAPI для сервиса SSH ([[Сервис SSH#Аутентификация с использованием протокола GSSAPI]]) * Использование протокола GSSAPI для сервиса imap ([[Сервер dovecot#Kerberos GSSAPI аутентификация]]) * Использование протокола GSSAPI для сервиса CIFS ([[Файловый сервер SAMBA#Идентификация доступа к файловому серверу на основе регистрации в Active Directory/DOMAIN/Kerberos REALM]]) !!! __Не заработало из Win__ !!! ===== Модуль 9. Использование сервиса WINBIND ===== ==== Использование сервиса WINBIND для управления ключами сервисов в Microsoft AD ==== * Удаляем пользователей gate* из AD * Удаляем файлы с ключами на AD C:\>del *keytab * Удаляем ключи сервисов с gate gate# rm /root/*keytab gate# rm /etc/krb5.keytab * Установка службы winbindd ([[Сервис WINBIND#Установка службы winbindd]]) * Регистрируем gate в AD ([[Сервис WINBIND#Регистрация unix системы в домене в режиме ADS]]) * Создаем keytab и ключи для сервисов HTTP и IMAP ([[Сервис WINBIND#Управление ключами KERBEROS в режиме ADS]]) * [[Сервис SSH#Настройка сервиса sshd на использование GSSAPI]] * [[Аутентификация доступа к SQUID#Настройка сервиса SQUID на использование GSSAPI]] * [[Сервер dovecot#Настройка dovecot на использование GSSAPI]] ==== Использование сервиса WINBIND для авторизации на основе UNIX атрибутов пользователей Microsoft AD ==== * Останавливаем unix клиент * Отключаем ldap в nsswitch на gate * Отключаем unix свойтва пользователей user1 и user2 в AD * Удаляем группы guser1 и guser2 * WINBIND [[Сервис WINBIND#Авторизация в режиме ADS/DOMAIN]] * [[Сервис WINBIND#Использование WINBIND в библиотеке NSSWITCH]] * [[Сервис SSH#Настройка сервиса sshd на использование GSSAPI]] * [[Сервер dovecot#Настройка dovecot на использование GSSAPI]] ==== Использование сервиса WINBIND для авторизации пользователей на основе членства в группах Microsoft AD на серверах Linux/FreeBSD ==== * Отключаем unix атрибуты у группы group1 * Добавляем пользователя user1 в группу group1 * SQUID [[Авторизация доступа к ресурсам через SQUID#Авторизация на основе членства в группе]] * [[Файловый сервер SAMBA#Настройка samba сервера в режиме DOMAIN/ADS c WINBIND]] ===== Модуль 10. Использование пакета Samba3 в качестве контроллера домена ===== ==== Подготовка стенда ==== * Выводим client2 из домена corpX.un * Отключаем WINBIND в nsswitch.conf * Удаляем gate из списка компьютеров в AD * Удаляем ключи сервисов с gate gate# rm /etc/krb5.keytab * Останавливаем Windows 2003/2008 (AD) * Включаем unix server * Настраиваем еще одну windows систему client1 ==== Настройка SAMBA как PDC ==== * [[Контроллер домена SAMBA#Настройка сервера SAMBA как PDC]] * [[Контроллер домена SAMBA#Добавление рабочих станций windows в SAMBA домен]] * [[Контроллер домена SAMBA#Добавление пользователей в SAMBA домен]] * [[Контроллер домена SAMBA#Добавление серверов unix в SAMBA домен]] * [[Сервис WINBIND#Регистрация unix системы в домене в режиме DOMAIN]] ==== Использование SAMBA PDC для аутентификации ==== * NTLM [[Сервис WINBIND#Аутентификация в режиме DOMAIN]] * NTLM [[Аутентификация доступа к SQUID#Winbind аутентификация]] аутентификация доступа к SQUID (работает в MSIE) ==== Использование SAMBA PDC для авторизации ==== * WINBIND [[Сервис WINBIND#Авторизация в режиме ADS/DOMAIN]] * [[Сервис WINBIND#Использование WINBIND в библиотеке NSSWITCH]] * [[Файловый сервер SAMBA#Настройка samba сервера в режиме DOMAIN/ADS c WINBIND]] для доступа к ресурсам home и share * Автоматическое монтирование сетевых дисков ([[Контроллер домена SAMBA#Использование Logon скрипта]]) * Сервер dovecot ([[Сервер dovecot#NTLM аутентификация и авторизация]]) ==== Использование pam_winbind для unix сервисов ==== === Ubuntu === root@gate:~# cat /etc/pam.d/dovecot ... auth sufficient pam_winbind.so @include common-auth ... # Не заработало session required pam_mkhomedir.so @include common-session ... === FreeBSD === [gate:~] # cat /etc/pam.d/other ... auth sufficient /usr/local/lib/pam_winbind.so auth required pam_unix.so no_warn try_first_pass ... # session session required /usr/local/lib/pam_mkhomedir.so ... ===== Модуль 11. Использование сертификатов ===== ==== Основы SSL/TLS ==== * [[Пакет OpenSSL#Создание самоподписанного сертификата]] и [[Сервис HTTP#Поддержка протокола HTTPS]] ==== Развертывание CA ==== * Создание центра сертификации ([[Пакет OpenSSL#Создание центра сертификации]]) * Использование серверного сертификата для протокола HTTPS ([[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]], [[Сервис HTTP#Поддержка протокола HTTPS]]) * Использование серверного сертификата для протокола IMAPS ([[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]], [[Сервер dovecot#Использование сертификатов для шифрования трафика]]) ==== Использование SSL/TLS для защиты механизмов идентификации ==== * Сервис imaps с аутентификацией pam -> winbind ==== Использование PKI ==== * Использование пользовательских сертификатов для аутентификации по протоколу HTTPS ([[Пакет OpenSSL#Создание пользовательского сертификата, подписанного CA]], [[Сервис HTTP#Управление доступом к HTTP серверу на основе сертификатов]]) * Использование пользовательских сертификатов для аутентификации по протоколу IMAP ([[Пакет OpenSSL#Создание пользовательского сертификата, подписанного CA]], [[Сервер dovecot#Аутентификация на основе пользовательских сертификатов]]) * Использование сертификатов для PGP * [[Пакет OpenSSL#Отзыв сертификатов]] ===== Дополнительные материалы ===== [[http://www.securitylab.ru/analytics/264318.php]] [[http://www.linux.org.ru/forum/admin/1781344]] [[http://www.opennet.ru/docs/RUS/fds/]] [[http://technet.microsoft.com/en-us/library/bb457114.aspx]] [[http://blog.ronix.net.ua/2008/08/squidkerberos-c-ldap-active-directory.html]] [[http://www.ibm.com/developerworks/ru/library/linux_migr/part1.html]] [[http://www.ibm.com/developerworks/ru/library/linux_migr/part2.html]] [[http://www.ibm.com/developerworks/ru/library/linux_migr/part3.html]] [[http://www.ibm.com/developerworks/ru/library/linux_migr/part4.html]] [[http://www.ibm.com/developerworks/ru/library/linux_migr/part5.html]]