====== Управление идентификацией в сетях 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]]