Freeipa windows 10 client

Freeipa windows 10 client

Продолжаем тему импортозамещения в IT. Актуально не только для гос. учреждений, но и для тех организаций которые считают что цены на MS Windows неадекватно завышены, а функционал для их задач избыточен. Здесь и приходит на помощь сообщество свободного программного обеспечения.

Ранее речь шла о замене MS Active Directory на свободный аналог Samba DC. Это решение почти полностью заменяет (с некоторыми ограничениями) MS AD. Хорошо работает, если в сети остаются много ПК под управлением Windows. Но как и MS AD практически не работает с клиентами Unix (Linux). Если стоит задача полностью в сети избавиться от Microsoft, то одно из решений использовать сервер идентификации и авторизации FreeIPA.

Все работы будут производится на ОС Rosa Cobalt (он же CentOS 7, он же RedHat 7)

В данном примере мы рассмотрим конфигурацию из трех серверов IPA (два в центральном офисе и один в удаленном). А также создадим доверительные отношения между доменом IPA и доменом MS Active Directory.

  • dc01.rpn.loc — первый сервер в корневом домене
    Имя сервера — dc01
    FQDN — dc01.rpn.loc
    IP — 192.168.20.105
    Домен IPA (REALM)- RPN.LOC
  • dc02.rpn.loc — второй сервер в корневом домене
    Имя сервера — dc02
    FQDN — dc02.rpn.loc
    IP — 192.168.20.106
    Домен IPA (REALM)- RPN.LOC
  • dc.01.rpn.loc — сервер в удаленном офисе
    Имя сервера — dc
    FQDN — dc.01.rpn.loc
    IP — 192.168.20.107
    Домен IPA (REALM)- RPN.LOC
  • addc.win.loc — контроллер домена Active Directory в центральном офисе
    Имя сервера — addc
    FQDN — adsc.win.loc
    IP — 192.168.20.108
    Домен AD (REALM)- WIN.LOC

Важно. В общем случае имя DNS домена и REALM в домене IPA могут быть различными. Но в этом случае невозможно будет настроить доверительные отношения между IPA и MS Active Directory (более подробно об этом речь пойдет ниже). Нам же нужно будет затем настроить доверительные отношения между доменами. Поэтому имена доменов (DNS и REALM) мы делаем одинаковыми.

Первый сервер FreeIPA

  1. Устанавливаем ОС в режиме минимальной установки
  2. Подключаем необходимые репозитарии (на Rosa Cobalt правим файл /etc/yum.repos.d/rels.repo , на CentOS подключаем репозитарий EPEL )
    В CentOS 8 (RH 8) включаем необходимые компоненты:
  3. Обновляем систему.
  4. Если в локальной сети не используется ipv6, то отключаем его.
  5. Добавляем в файл /etc/hosts данные нашего сервера:
  6. Устанавливаем необходимые пакеты: Все зависимые пакеты установятся автоматически.
    Небольшая хитрость (глюк), касающаяся CentOS 8.
    По умолчанию устанавливаются (на момент написания статьи) FreeIPA Server 4.8.0-13 и Samba 4.10.
    Но если в дальнейшем планируется использовать доверительные отношения с доменом Active Directory, то в данной связке ничего не получиться. Дело в том, что в составе FreeIPA Server идет модуль, заточенный для работы с Samba 4.9.1 и Samba в составе FreeIPA просто не может стартовать. Поэтому сразу откатываем версию самбы до 4.9.1:
  7. Замыкаем запросы DNS на этот же сервер. Приводим файл /etc/resolv.conf к виду:
  8. Открываем в файерволе необходимые порты:
  9. На всякий случай в файл /etc/named.conf вносим изменения: » dnssec-validation no » необходимо, что бы заработал форвардинг на внешний DNS. Если внешний DNS поддерживает dnssec, то можно ничего не менять.
  10. Запускаем DNS сервер
  11. Запускаем установку сервера IPA:

Устанавливаем сервер репликации FreeIPA

  1. Выполняем шаги 1-10 раздела «Первый сервер FreeIPA» с поправками на новое имя сервера и IP адрес. В настройках сервера DNS указываем адрес первого сервера FreeIPA
  2. В файл /etc/hosts кроме устанавливаемого сервера вносим так же данные нашего первого сервера FreeIPA
  3. Файл /etc/resolv.conf оставляем без изменений (указываем в качестве DNS сервера установленный первый сервер FreeIPA).
  4. Файл /etc/named.conf оставляем без изменений.
  5. Для установки сервера репликации в первую очередь устанавливаем ipa клиент: После выполнения этой операции хост dc02.rpn.loc должен появиться в веб-интерфейсе FreeIPA. Переходим к настройке репликации LDAP-каталога.
  6. Останавливаем и запрещаем автозапуск сервера chronyd:
  7. Вносим в файл /etc/ntp.conf данные нашего первого контроллера: Остальные сервера точного времени запрещаем.
  8. Запускаем ntpd и разрешаем его автозапуск:
  9. После этого выполняем собственно установку репликации LDAP-каталога:
  10. Добавляем в DNS второй NTP сервер:
  11. Устанавливаем репликацию DNS зон:
  12. После окончания установки перезагружаем сервер
  13. Устанавливаем репликацию CA:
  14. Исправляем файл /etc/ntp.conf (убираем левые сервера времени и назначаем наш первый контроллер в качестве единственного сервера времени)
  15. Если что-то пошло не так, то выполняем: Устраняем ошибки и повторяем все начиная с п.5
  16. После настройки и репликации контроллеров посмотреть топологию можно в веб-интерфейсе FreeIPA (IPA Server -> Topology -> Topology Graph).
Читайте также:  Windows 10 поиск отключить последние действия

Установка сервера FreeIPA в филиале.

Прежде чем устанавливать сервер в филиале несколько слов о теории и принципе организации территориально распределенной структуре FreeIPA.

FreeIPA всегда должен иметь собственный основной домен, например example.com или ipa.example.com, который не должен использоваться совместно с другой системой управления идентификацией на основе Kerberos, поскольку в противном случае на уровне системы Kerberos будут возникать конфликты. Например, если оба FreeIPA и Active Directory используют один и тот же домен, доверительные отношения никогда не будут возможны, а также невозможно автоматическое обнаружение клиентского сервера через DNS SRV-записи.

Клиентские машины не обязательно должны находиться в том же домене, что и FreeIPA-серверы. Например, FreeIPA может быть доменом ipa.example.com а клиенты в домене clients.example.com , просто нужно иметь четкое сопоставление между доменом DNS и областью Kerberos. Стандартным методом для создания сопоставления являются записи TXT DNS. (FreeIPA DNS добавляет их автоматически.)

Домен Active Directory — сложная система. Он включает в себя логически структурированный набор ресурсов (машины, пользователи, службы и т. Д.), Которые принадлежат потенциально нескольким доменам DNS. Несколько доменов DNS могут быть частью одного домена AD (где домен AD по определению совпадает с областью AD Kerberos). Несколько доменов AD можно объединить в лес. Самый первый домен AD, созданный в лесу, называется корневым доменом леса . Верхнее имя основного домена DNS домена AD используется как имя домена Kerberos AD.

Домен IPA представляет собой сложную систему. Он включает в себя логически структурированный набор ресурсов (машины, пользователи, службы и т.д.), Которые принадлежат потенциально нескольким доменам DNS. В отличие от Active Directory у нас есть один домен / область IPA для развертывания, а для Active Directory этот единственный домен IPA выглядит как отдельный лес Active Directory. Active Directory считает основной домен DNS, используемый в качестве основы для области Kerberos FreeIPA, как корневой домен леса для домена FreeIPA (например, корневой домен леса для Active Directory).

Домен FreeIPA может быть размещен в любом домене DNS, который не имеет прямого совпадения с любым доменом в лесу Active Directory. Это может быть, например, ipa.example.com , если эта зона DNS не занята каким-либо другим доменом AD в том же лесу. Это может быть ipa.ad.example.com также, это может быть например .net

Доверие между двумя лесами Active Directory всегда устанавливается как доверие между лесными корневыми доменами этих лесов. Если домен FreeIPA использует ipa.ad.example.com в качестве основной зоны DNS, мы будем говорить об установлении доверительного отношения к лесу между лесом Active Directory ad.example.com и доменом FreeIPA ipa.ad.example.com . Если существует несколько зон DNS, принадлежащих домену IPA, рекомендуется размещать записи _kerberos TXT, указывающие на имя области FreeIPA в каждом из них для правильного обнаружения сетевых ресурсов клиентами FreeIPA.

Когда вы устанавливаете первый сервер FreeIPA, вы всегда определяете имя области Kerberos для этой установки. При выборе названия области выполните следующие правила:

  • Имя области не должно конфликтовать с любым другим существующим именем области Kerberos (например, имя, используемое Active Directory).
  • Имя области должно быть в верхнем регистре ( EXAMPLE.COM ) версии основного DNS-имени домена ( example.com ).
  • Клиенты FreeIPA из нескольких разных доменов DNS ( пример .com , example .net , example .org ) могут быть объединены в единую область Kerberos ( ПРИМЕР .COM )
  • Одна установка FreeIPA всегда представляет собой единую область Kerberos.

Серверы и клиенты FreeIPA могут распространяться в разных географических точках. Механизм местоположения DNS позволяет разделить топологию на отдельные области, называемые местоположениями (отображение в географические области). Клиенты, использующие записи DNS SRV (например, SSSD) в определенном месте, затем используют серверы из того же места, что и первые (ближайшие серверы FreeIPA), и серверы из разных мест в качестве резервной копии (удаленные серверы FreeIPA).

Читайте также:  Windows 10 статус загрузки

При планировании развертывания важно иметь в виду, что функции DNS в FreeIPA требуют, по крайней мере, одного DNS-сервера в каждом месте.

FreeIPA работает в реплицированной среде с несколькими мастер-серверами. Количество серверов зависит от нескольких факторов:

  • Сколько записей в системе?
  • Сколько у вас разных географически распределенных центров обработки данных?
  • Насколько активны приложения и клиенты в отношении аутентификации и поиска LDAP.

Как правило, рекомендуется иметь по меньшей мере 2-3 реплики в каждом центре обработки данных. В каждом центре обработки данных должна быть по крайней мере одна реплика с дополнительными услугами FreeIPA, такими как PKI или DNS, если они используются. Обратите внимание, что не рекомендуется иметь более 4 соглашений о репликации на каждую реплику. В следующем примере показана рекомендуемая инфраструктура:

Можно приступить к установки сервера в филиале.

  1. В оснастке управления FreeIPA создаем два новых местоположения (Сервера IPA -> IPA Locations): «centr» и «filial01»
  2. Заходим в созданный «centr» и добавляем два установленных ранее сервера FreeIPA.
  3. Высветится предупреждение, что необходимо перестартовать добавленные сервера. Выполняем поочередно на каждом из серверов:
  4. Сервер в филиале будет принадлежать DNS зоне (субдомену)»01.rpn,loc». В оснастке управления DNS сервером создаем новую зону «01.rpn.loc»
  5. В настройках зоны параметр «Динамическое обновление» переключаем на значение «Верно». Ставим галочку в параметре «разрешить синхронизацию PTR». Нажимаем «Сохранить».
  6. В зоне » rpn.loc » создаем запись типа «A», соответствующую нашему серверу в филиале (dc.01.rpn.loc с ip адресом 192.168.20.107) (т.е. необходимо добавить запись с именем » dc.01 «)
  7. Повторяем шаги с 1 по 14 раздела «Устанавливаем сервер репликации FreeIPA».
  8. Назначаем серверу в филиале местоположение «filial01»
  9. Добавляем репликацию на второй сервер центрального офиса: Этим мы создаем репликацию LDAP между серверами dc02.rpn.loc и dc.01.rpn.loc
    То же самое проводим для CA (имя суффикса вводим «CA»)
    Более наглядно и может быть быстрее можно сделать в вэб-интерфейсе управления FreeIPA (Сервер IPA -> Topology Graph)

Установка клиента FreeIPA на рабочую станцию и подключение к серверу.

Работы будут проводится на рабочей станции ROSA Cobalt WS. На CentOS и RedHat действия аналогичные.

Рабочая станция будет находится в филиале и принадлежать домену 01.centr.rpn.

  1. Устанавливаем имя компьютера:
  2. Настраиваем DNS на сервер в этом домене (dc.01.rpn.loc)
  3. Устанавливаем необходимые пакеты:
  4. Останавливаем и запрещаем автозапуск сервиса chronyd.
  5. Запускаем установку клиента:
  6. После этого можно входить на компьютер под учетной записью пользователя FreeIPA.
  7. Если машина до этого была в других доменах или есть проблемы со входом пользователей рекомендуется очистить кэш sssd:

Создание доверительных отношений с MS ActiveDirectory

  • Сервер IPA:
    Имя сервера: dc01.rpn.loc
    IP адрес: 192.168.20.105
    Домен IPA: rpn.loc
    Realm: RPN.LOC
  • Сервер AD:
    Имя сервера: addc.win.loc
    IP адрес: 192.168.20.2
    Домен AD: win.loc

Настраиваем доверительные отношения.

  1. Настраиваем DNS на обоих серверах, для того что бы они знали друг о друге:
    • На сервере IPA:
      • В параметрах зоны «rpn.loc» добавляем адрес DNS сервера AD (192.168.20.2)
      • Создаем зону перенаправления DNS «win.loc». В Параметре «Перенаправление зон» указываем адрес DNS сервера AD
    • На сервере АД:
      • В свойствах зоны «win.loc» переходим на вкладку «Передача зон» и либо разрешаем передачу зон на любой сервер, либо указываем IP адрес сервера IPA
      • В разделе «Сервер условной пересылки» создаем новый сервер. В поле DNS-домен вводим домен IPA сервера (rpn.loc). В поле IP адреса вводим адрес сервера IPA.

    Небольшое отступление в теорию. На практике встречается достаточно редко, но упомянуть об этом стоит.
    Если AD являетя поддоменом IPA (т.е. AD домен — addomain.ipadomain.example.com , IPA домен — ipadomain.example.com )
    В этом случае на IPA сервере необходимо добавить записи A и NS для AD домена: В домене AD можно использовать один из двух способов.
    Первый: настраивается глобальная переадресация для пересылки DNS запросов в домен IPA: Второй: настроить зону DNS для репликации master-slave. Затем данные для этой зоны будут периодически копироваться с главного (сервера IPA) на подчиненный (сервер AD).
    Для этого сначала явно разрешите передачу зоны на сервере IPA: Затем добавляем DNS зону IPA в домен AD: Следующий экзотический вариант: домен IPA является субдоменом AD (домен IPA — ipadomain.addomain.example.com , домен AD — addomain.example.com )
    В этом случае домене AD необходимо добавить записи A и NS для домена IPA:

  2. Настраиваем сервер IPA: Скрипт спросит необходимо ли настраивать slapi-nis плагин для поддержки работы старых клиентов (SSSD Внимание! Если запись _kerberos._udp.dc._msdcs.source-win.loc. не доступна проверьте _kerberos._tcp.dc._msdcs.source-win.loc.
  3. Добавление двунаправленных доверительных отношений леса (Forest Trust) с AD:
    • Если мы имеем пароль администратора домена Active Directory: Будет выдан запрос пароля администратора домена Active Directory после чего установятся доверительные отношения между доменами.
      По умолчанию устанавливается одностороннее доверие. Для установления двухстороннего доверия необходимо добавить параметр»—two-way=true»
      В документации сказано, что устанавливаются двух сторонние отношения между доменами. Но таким способом почему то мне их установить не удалось на ОС «ROSA Cobalt». Постоянно операция завершалась словами «Внутренняя ошибка» без всяких коментариев (на CentOS доверия установились без каких-либо проблем). Пришлось пойти немного другим путем. Выполняем команду: Важно заметить , что в этом случае устанавливаются доверительные отношения типа «внешние не транзетивные» Транзетивное доверие типа «лес» мне таким способом установить не удалось.

Если мы не имеем пароль администратора Active Directory, то придется работать совместно с администратором Windows. Здесь как раз нам и пригодится пароль, который мы задали в п.2 этого раздела.
Выполняем в AD:
Задаем имя домена IPA:

Задаем тип доверия: «Доверие леса»

Указываем, что отношения должны быть двухстороннии:

Назначаем создание доверия только в локальном домене.

Задаем уровень проверки подлинности: «Проверка подлинности в лесу»:

Задаем пароль для отношения доверия:

В следующих окнах читаем информацию и нажимаем далее, пока не дойдем до подтверждения исходящего доверия. Отвечаем «Нет».

Далее отвечаем «Нет» на запрос подтверждения входящего доверия:

В итоговом окне нажимаем «Готово» и переходим на сервер IPA.

Выполняем на сервере IPA: Задаем имя домена, с которым хотим установить доверительные отношения — WIN.LOC
Будет запрос пароля, который мы установили ранее.
Результат выполнения команды будет следующий: Возвращаемся на сервер AD и проводим завершающие действия.
В оснастке » Домены и доверия» открываем свойства нашего домена и переходим на вкладку «Отношения доверия»:

Открываем свойства созданного доверия и переходим на вкладку «Маршрутизация суффикса имен». Если суффиксы еще не создались, то жмем «Обновить» и получаем суффиксы нашего домена IPA:

Везде жмем «Ok» и переходим на сервер IPA.
Проверяем состояние доверия: Видим, что контроллер домена отчитался об успешном создании доверительных отношений с доменом AD.

  • Проверки доверительных отношений
    Запрашиваем тикет для IPA пользователя: Запрашиваем service ticket для сервиса из IPA домена: Запрашиваем service ticket сервиса из AD домена: Если запрос service ticket для сервиса из AD домена прошел успешно, то у нас должен появиться междоменный ticket-granting ticket, его имя krbtgt/ Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. :
    Проверка пользователя доверенного домена.
    В файл /etc/sssd/sssd.conf вносим строчку, отвечающую за оболочку по умолчанию Проверим имеет ли доступ к пользователям из доверенного домена рабочие станции IPA. Для того, что бы пользователь из AD мог авторизоваться на ПК из IPA на сервере IPA в файл /etc/krb5.conf нужно добавить пару строк: После этого пользователь с учетными данными из Active Directory получает возможность авторизоваться на ПК, управляемые IPA.
  • Создание аккаунта для доступа к LDAP

    Некоторые сервисы использующие LDAP требуют предварительно настроенной учетной записи. Использование обычной учетной записи пользователя предпочтительней, но не всегда это целесообразно делать. Можно сделать системную учетную запись следующим образом на сервере FreeIPA используя пароль Directory :

    Замените пароль на более сложный. Параметр passwordExpirationTime: 20380119031407Z означает, что срок действия пароля неограничен Причина использования такой учетной записи, а не создание обычной учетной записи пользователя IPA, и использование этой системы заключается в том, что системная учетная запись существует только для привязки к LDAP. Это не настоящий пользователь POSIX, он не может войти в систему и ему не принадлежат файлы. У этого пользователя нет особых прав и он не может ничего записывать какие-либо данные на сервер LDAP FreeIPA, только права на чтение.

    Читайте также:  Ошибка windows system32 dxgi dll
    Оцените статью