В данном примере мы рассмотрим конфигурацию из трех серверов 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
- Устанавливаем ОС в режиме минимальной установки
- Подключаем необходимые репозитарии (на Rosa Cobalt правим файл /etc/yum.repos.d/rels.repo, на CentOS подключаем репозитарий EPEL)
В CentOS 8 (RH 8) включаем необходимые компоненты:yum module enable idm:DL1 yum distro-sync
- Обновляем систему.
- Если в локальной сети не используется ipv6, то отключаем его.
- Добавляем в файл /etc/hosts данные нашего сервера:
192.168.20.105 dc01.rpn.loc dc01
- Устанавливаем необходимые пакеты:
yum install bind bind-utils bind-dyndb-ldap ipa-server ipa-client ipa-server-dns ipa-server-trust-ad samba-client samba-winbind-clients
Все зависимые пакеты установятся автоматически.
Небольшая хитрость (глюк), касающаяся CentOS 8.
По умолчанию устанавливаются (на момент написания статьи) FreeIPA Server 4.8.0-13 и Samba 4.10.
Но если в дальнейшем планируется использовать доверительные отношения с доменом Active Directory, то в данной связке ничего не получиться. Дело в том, что в составе FreeIPA Server идет модуль, заточенный для работы с Samba 4.9.1 и Samba в составе FreeIPA просто не может стартовать. Поэтому сразу откатываем версию самбы до 4.9.1:yum downgrade samba
- Замыкаем запросы DNS на этот же сервер. Приводим файл /etc/resolv.conf к виду:
- Открываем в файерволе необходимые порты:
firewall-cmd --permanent --add-port={53,80,88,135,138,139,389,443,445,464,636,1024-1300,3268,8443}/tcp firewall-cmd --permanent --add-port={53,88,123,138,139,389,445,464}/udp firewall-cmd --reload
- На всякий случай в файл /etc/named.conf вносим изменения:
listen-on port 53 { any; } //listen-on-v6 port 53 { ::1; }; allow-query { any; } dnssec-validation no;
"dnssec-validation no" необходимо, что бы заработал форвардинг на внешний DNS. Если внешний DNS поддерживает dnssec, то можно ничего не менять. - Запускаем DNS сервер
systemctl start named
- Запускаем установку сервера IPA:
ipa-server-install --realm=RPN.LOC
Здесь мы задаем адрес имя домена IPA. Все остальные параметры вводим в интерактивном режиме- Отвечаем yes на вопрос о необходимости настройки интегрированного DNS сервера
- Подтверждаем имя хоста
- Подтверждаем имя домена
- Вводим и подтверждаем пароль административного пользователя
- Вводим подтверждаем пароль пользователя admin (основной администратор сервера IPA)
- Подтверждаем необходимость настроить пересылку DNS запросов
- Первым сервером в список форварда заносится адрес, записанный в resolv.conf. Подтверждаем, что нужно добавить еще внешний DNS сервер
- Вводим адрес внешнего DNS. На повторный запрос просто нажимаем Enter
- Отвечаем yes на вопрос о необходимости создания обратной зоны.
- Подтверждаем создание обратной зоны для адреса нашего сервера.
- Подтверждаем имя создаваемой зоны.
- Выводится список настроенных нами параметров. Подтверждаем и продолжаем установку
- Начинается достаточно длительный процесс установки. Если все нормально, то в конце выдаст сообщение о завершении установки и необходимости открыть порты в файрволе (их мы уже открыли)
- Проверяем установку:
#kinit admin Password for Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. #klist
Если все нормально, то увидим данные пользователя admin - Запрещаем сервис времени chronyd
systemctl stop chronyd systemctl disable chronyd
- Если у нас в сети уже есть сервер времени, настраиваем сервер NTP на то, что бы он забирал время с нашего внутреннего сервера времени. Для этого в файле /etc/ntp.conf комментируем все сервера времени и добавляем свой. Перезапускаем и проверяем сервер времени:
systemctl restart ntpd ntpq -p
- На всякий случай перезагружаем сервер.
- Добавляем в DNS запись о нашем сервере времени:
# kinit admin ipa dnsrecord-add rpn.loc _ntp._udp --srv-priority=0 --srv-weight=100 --srv-port=123 --srv-target=dc01.rpn.loc.
Если команда выдает "ERROR: отсутствуют изменения для выполнения", то это значит - соответствующая запись уже была добавлена в зону DNS. - После всех этих процедур станет доступна вэб-консоль администрирования сервера IPA, находящаяся по адресу: https://dc01.rpn.loc/ipa/ui/
- Если что-то пошло не так, то прежде чем повторить установку сервера нужно запустить команду очистки предыдущей установки
ipa-server-install --uninstall
- В итоге мы получили работающий сервер аутентификации и авторизации FreeIPA. Но как и в случае с Active Directory необходим второй и последующие сервера для обеспечения отказоустойчивости и производительности.
search rpn.loc nameserver 192.168.20.105
Устанавливаем сервер репликации FreeIPA
- Выполняем шаги 1-10 раздела "Первый сервер FreeIPA" с поправками на новое имя сервера и IP адрес. В настройках сервера DNS указываем адрес первого сервера FreeIPA
- В файл /etc/hosts кроме устанавливаемого сервера вносим так же данные нашего первого сервера FreeIPA
- Файл /etc/resolv.conf оставляем без изменений (указываем в качестве DNS сервера установленный первый сервер FreeIPA).
- Файл /etc/named.conf оставляем без изменений.
- Для установки сервера репликации в первую очередь устанавливаем ipa клиент:
ipa-client-install --domain=rpn.loc --server=dc01.rpn.loc --realm=RPN.LOC --principal=admin --password=PASSWORD --enable-dns-updates
После выполнения этой операции хост dc02.rpn.loc должен появиться в веб-интерфейсе FreeIPA. Переходим к настройке репликации LDAP-каталога. - Останавливаем и запрещаем автозапуск сервера chronyd:
systemctl stop chronyd systemctl disable chronyd
- Вносим в файл /etc/ntp.conf данные нашего первого контроллера:
server dc01.rpn.loc
Остальные сервера точного времени запрещаем. - Запускаем ntpd и разрешаем его автозапуск:
systemctl start ntpd systemctl enable ntpd
- После этого выполняем собственно установку репликации LDAP-каталога:
ipa-replica-install
- Добавляем в DNS второй NTP сервер:
kinit admin ipa dnsrecord-add rpn.loc _ntp._udp --srv-priority=0 --srv-weight=100 --srv-port=123 --srv-target=dc02.rpn.loc.
- Устанавливаем репликацию DNS зон:
ipa-dns-install
- После окончания установки перезагружаем сервер
- Устанавливаем репликацию CA:
ipa-ca-install
- Исправляем файл /etc/ntp.conf (убираем левые сервера времени и назначаем наш первый контроллер в качестве единственного сервера времени)
- Если что-то пошло не так, то выполняем:
ipa-server-install --uninstall
Устраняем ошибки и повторяем все начиная с п.5 - После настройки и репликации контроллеров посмотреть топологию можно в веб-интерфейсе FreeIPA (IPA Server -> Topology -> Topology Graph).
Установка сервера 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).
При планировании развертывания важно иметь в виду, что функции DNS в FreeIPA требуют, по крайней мере, одного DNS-сервера в каждом месте.
FreeIPA работает в реплицированной среде с несколькими мастер-серверами. Количество серверов зависит от нескольких факторов:
- Сколько записей в системе?
- Сколько у вас разных географически распределенных центров обработки данных?
- Насколько активны приложения и клиенты в отношении аутентификации и поиска LDAP.
Как правило, рекомендуется иметь по меньшей мере 2-3 реплики в каждом центре обработки данных. В каждом центре обработки данных должна быть по крайней мере одна реплика с дополнительными услугами FreeIPA, такими как PKI или DNS, если они используются. Обратите внимание, что не рекомендуется иметь более 4 соглашений о репликации на каждую реплику. В следующем примере показана рекомендуемая инфраструктура:
Можно приступить к установки сервера в филиале.
- В оснастке управления FreeIPA создаем два новых местоположения (Сервера IPA -> IPA Locations): "centr" и "filial01"
- Заходим в созданный "centr" и добавляем два установленных ранее сервера FreeIPA.
- Высветится предупреждение, что необходимо перестартовать добавленные сервера. Выполняем поочередно на каждом из серверов:
ipactl restart
- Сервер в филиале будет принадлежать DNS зоне (субдомену)"01.rpn,loc". В оснастке управления DNS сервером создаем новую зону "01.rpn.loc"
- В настройках зоны параметр "Динамическое обновление" переключаем на значение "Верно". Ставим галочку в параметре "разрешить синхронизацию PTR". Нажимаем "Сохранить".
- В зоне "rpn.loc" создаем запись типа "A", соответствующую нашему серверу в филиале (dc.01.rpn.loc с ip адресом 192.168.20.107) (т.е. необходимо добавить запись с именем "dc.01")
- Повторяем шаги с 1 по 14 раздела "Устанавливаем сервер репликации FreeIPA".
- Назначаем серверу в филиале местоположение "filial01"
kinit admin ipa server-mod dc.01.rpn.loc --location=filial01 ipactl restart
- Добавляем репликацию на второй сервер центрального офиса:
[root@dc~]#ipa topologysegment-add Имя суффикса: domain Левый узел: dc02.rpn.loc Правый узел: dc.01.rpn.loc Имя сегмента [dc02.rpn.loc-to-dc.01.rpn.loc]: (Оставляем без изменений)
Этим мы создаем репликацию LDAP между серверами dc02.rpn.loc и dc.01.rpn.loc
То же самое проводим для CA (имя суффикса вводим "CA")
Более наглядно и может быть быстрее можно сделать в вэб-интерфейсе управления FreeIPA (Сервер IPA -> Topology Graph)
Установка клиента FreeIPA на рабочую станцию и подключение к серверу.
Работы будут проводится на рабочей станции ROSA Cobalt WS. На CentOS и RedHat действия аналогичные.
Рабочая станция будет находится в филиале и принадлежать домену 01.centr.rpn.
- Устанавливаем имя компьютера:
hostnamectl set-hostname ws.01.rpn.loc
- Настраиваем DNS на сервер в этом домене (dc.01.rpn.loc)
- Устанавливаем необходимые пакеты:
yum install ipa-client ipa-client bind-utils zip
- Останавливаем и запрещаем автозапуск сервиса chronyd.
- Запускаем установку клиента:
ipa-client-install --domain=rpn.loc --server=dc.01.rpn.loc --realm RPN.LOC --principal=admin --password=PASSWORD --mkhomedir --enable-dns-updates
- После этого можно входить на компьютер под учетной записью пользователя FreeIPA.
- Если машина до этого была в других доменах или есть проблемы со входом пользователей рекомендуется очистить кэш sssd:
# systemctl stop sssd # rm -f /var/lib/sss/db/* # rm -f /var/lib/sss/mc/* # systemctl start 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
Настраиваем доверительные отношения.
- Настраиваем 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 домена:# ipa dnsrecord-add ipa_domain ad_hostname.ad_netbios --a-ip-address=ad_ip_address # ipa dnsrecord-add ipa_domain ad_netbios --ns-hostname=ad_hostname.ad_netbios
В домене AD можно использовать один из двух способов.
Первый: настраивается глобальная переадресация для пересылки DNS запросов в домен IPA:C:\> dnscmd 127.0.0.1 /ResetForwarders ipa_ip_address /Slave
Второй: настроить зону DNS для репликации master-slave. Затем данные для этой зоны будут периодически копироваться с главного (сервера IPA) на подчиненный (сервер AD).
Для этого сначала явно разрешите передачу зоны на сервере IPA:# ipa dnszone-mod ipa_domain --allow-transfer=ad_ip_address
Затем добавляем DNS зону IPA в домен AD:C:\> dnscmd 127 0.0.1 /ZoneAdd ipa_domain /Secondary ipa_ip_address
Следующий экзотический вариант: домен IPA является субдоменом AD (домен IPA - ipadomain.addomain.example.com, домен AD - addomain.example.com)
В этом случае домене AD необходимо добавить записи A и NS для домена IPA:C:\> dnscmd 127.0.0.1 /RecordAdd ad_domain ipa_hostname.ipa_domain A ipa_ip_address C:\> dnscmd 127.0.0.1 /RecordAdd ad_domain ipa_domain NS ipa_hostname.ipa_domain
- На сервере IPA:
- Настраиваем сервер IPA:
ipa-adtrust-install --add-sids --netbios-name=ipa_netbios -a mypassword1
Скрипт спросит необходимо ли настраивать slapi-nis плагин для поддержки работы старых клиентов (SSSD < 1.9) с пользователем из доверенного домена: Отвечаем YES
На IPA сервере добавлен хотя бы один пользователь (администратор сервера), поэтому скрипт предложит сгенерировать SID для всех существующих пользователей и групп: Отвечаем YES - Настраиваем Samba на сервере IPA:
# net conf setparm global 'dedicated keytab file' FILE=/etc/samba/samba.keytab # systemctl restart ipa
Проверим проходит ли Samba аутентификацию Kerberos со стороны IPA сервера:# kinit admin # smbclient -L dc01.rpn.loc -k lp_load_ex: changing to config backend registry Domain=[RPN] OS=[Windows 6.1] Server=[Samba 4.4.4] Sharename Type Comment --------- ---- ------- IPC$ IPC IPC Service (Samba 4.4.4) Domain=[RPN] OS=[Windows 6.1] Server=[Samba 4.4.4] Server Comment --------- ------- Workgroup Master --------- -------
- Проверка конфигурации DNS:
- На сервере Active Directory:
Проверим наличие записей для работы сервисов IPA на DNS-сервере AD.
Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:C:\>nslookup.exe > set type=SRV > _kerberos._udp.rpn.loc. _kerberos._udp.rpn.loc. SRV service location: priority = 0 weight = 100 port = 88 svr hostname = dc01.rpn.loc. > _ldap._tcp.rpn.loc. _ldap._tcp.rpn.loc SRV service location: priority = 0 weight = 100 port = 389 svr hostname = dc01.rpn.loc.
Запись отвечающая за имя Kerberos realm IPA домена:C:\>nslookup.exe > set type=TXT > _kerberos.rpn.loc. _kerberos.rpn.loc. text = "RPN.LOC"
После выполнения команды ipa-adtrust-install должны появится записи отвечающие за работу сервисов MS DC Kerberos через UDP и LDAP через TCP:C:\>nslookup.exe > set type=SRV > _kerberos._udp.dc._msdcs.rpn.loc. _kerberos._udp.dc._msdcs.rpn.loc. SRV service location: priority = 0 weight = 100 port = 88 svr hostname = dc01.rpn.loc. > _ldap._tcp.dc._msdcs.rpn.loc. _ldap._tcp.dc._msdcs.rpn.loc. SRV service location: priority = 0 weight = 100 port = 389 svr hostname = dc01.rpn.loc.
Далее проверим наличие записей для работы сервисов AD на DNS-сервере AD.
Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:C:\>nslookup.exe > set type=SRV > _kerberos._udp.dc._msdcs.win.loc. _kerberos._udp.dc._msdcs.win.loc. SRV service location: priority = 0 weight = 100 port = 88 svr hostname = addc.win.loc. > _ldap._tcp.dc._msdcs.win.loc. _ldap._tcp.dc._msdcs.win.loc. SRV service location: priority = 0 weight = 100 port = 389 svr hostname = addc.win.loc.
- На сервере IPA
Проверим наличие записей для работы сервисов IPA на DNS-сервере IPA.
Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:# dig +short -t SRV _kerberos._udp.rpn.loc. 0 100 88 dc01.rpn.loc. # dig +short -t SRV _ldap._tcp.rpn.loc. 0 100 389 dc01.rpn.loc.
Запись отвечающая за имя Kerberos realm IPA домена:dig +short -t TXT _kerberos.rpn.loc. "RPN.LOC"
После выполнения команды ipa-adtrust-install должны появится записи отвечающие за работу сервисов MS DC Kerberos через UDP и LDAP через TCP:# dig +short -t SRV _kerberos._udp.dc._msdcs.rpn.loc. 0 100 88 dc01.rpn.loc. # dig +short -t SRV _ldap._tcp.dc._msdcs.rpn.loc. 0 100 389 dc01.rpn.loc.
Далее проверим наличие записей для работы сервисов AD на DNS-сервере IPA. 4. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:# dig +short -t SRV _kerberos._udp.dc._msdcs.win.loc. 0 100 88 addc.win.loc. # dig +short -t SRV _ldap._tcp.dc._msdcs.win.loc. 0 100 389 addc.win.loc.
Внимание! Если запись _kerberos._udp.dc._msdcs.source-win.loc. не доступна проверьте _kerberos._tcp.dc._msdcs.source-win.loc.
- На сервере Active Directory:
- Добавление двунаправленных доверительных отношений леса (Forest Trust) с AD:
- Если мы имеем пароль администратора домена Active Directory:
# ipa trust-add --type=ad ad_domain --admin Administrator --password
Будет выдан запрос пароля администратора домена Active Directory после чего установятся доверительные отношения между доменами.
По умолчанию устанавливается одностороннее доверие. Для установления двухстороннего доверия необходимо добавить параметр"--two-way=true"
В документации сказано, что устанавливаются двух сторонние отношения между доменами. Но таким способом почему то мне их установить не удалось на ОС "ROSA Cobalt". Постоянно операция завершалась словами "Внутренняя ошибка" без всяких коментариев (на CentOS доверия установились без каких-либо проблем). Пришлось пойти немного другим путем. Выполняем команду:# ipa trust-add --type=ad ad_domain --admin Administrator --password --two-way=true --external=yes
Важно заметить, что в этом случае устанавливаются доверительные отношения типа "внешние не транзетивные" Транзетивное доверие типа "лес" мне таким способом установить не удалось. - Если мы не имеем пароль администратора Active Directory, то придется работать совместно с администратором Windows. Здесь как раз нам и пригодится пароль, который мы задали в п.2 этого раздела.
Выполняем в AD:
Задаем имя домена IPA:
Задаем тип доверия: "Доверие леса"
Указываем, что отношения должны быть двухстороннии:
Назначаем создание доверия только в локальном домене.
Задаем уровень проверки подлинности: "Проверка подлинности в лесу":
Задаем пароль для отношения доверия:
В следующих окнах читаем информацию и нажимаем далее, пока не дойдем до подтверждения исходящего доверия. Отвечаем "Нет".
Далее отвечаем "Нет" на запрос подтверждения входящего доверия:
В итоговом окне нажимаем "Готово" и переходим на сервер IPA.
Выполняем на сервере IPA:# kinit admin Password for Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.: # ipa trust-add --type=ad --trust-secret
Задаем имя домена, с которым хотим установить доверительные отношения - WIN.LOC
Будет запрос пароля, который мы установили ранее.
Результат выполнения команды будет следующий:Имя области: WIN.LOC Общий секрет доверия: ---------------------------------------------------------------------------- Добавлено доверие Active Directory для области "win.loc" ---------------------------------------------------------------------------- Имя области: win.loc Имя домена NetBIOS: WIN Идентификатор безопасности домена: S-1-5-21-900071258-1322473252-773024338 Направление доверия: Доверяющий лес Тип доверия: Домен Active Directory Статус доверия: Ожидание подтверждения от удаленной стороны
Возвращаемся на сервер AD и проводим завершающие действия.
В оснастке " Домены и доверия" открываем свойства нашего домена и переходим на вкладку "Отношения доверия":
Открываем свойства созданного доверия и переходим на вкладку "Маршрутизация суффикса имен". Если суффиксы еще не создались, то жмем "Обновить" и получаем суффиксы нашего домена IPA:
Везде жмем "Ok" и переходим на сервер IPA.
Проверяем состояние доверия:# ipa trust-show "win.loc" Имя области: win.loc Имя домена NetBIOS: WIN Идентификатор безопасности домена: S-1-5-21-900071258-1322473252-773024338 Направление доверия: Доверяющий лес Тип доверия: Домен Active Directory
Видим, что контроллер домена отчитался об успешном создании доверительных отношений с доменом AD. - Проверки доверительных отношений
Запрашиваем тикет для IPA пользователя:# kinit admin
Запрашиваем service ticket для сервиса из IPA домена:# kvno -S host dc.rpn.loc host/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.: kvno = 2
Запрашиваем service ticket сервиса из AD домена:# kvno -S cifs addc.win.loc cifs/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.: kvno = 2
Если запрос service ticket для сервиса из AD домена прошел успешно, то у нас должен появиться междоменный ticket-granting ticket, его имя krbtgt/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:# klist Ticket cache: KEYRING:persistent:0:0 Default principal: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. Valid starting Expires Service principal 14.02.2017 15:43:46 15.02.2017 01:43:46 cifs/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. 14.02.2017 15:43:46 15.02.2017 15:42:48 krbtgt/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. 14.02.2017 15:43:25 15.02.2017 15:42:48 host/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. 14.02.2017 15:42:53 15.02.2017 15:42:48 krbtgt/Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
Проверка пользователя доверенного домена.
В файл /etc/sssd/sssd.conf вносим строчку, отвечающую за оболочку по умолчанию[domain/rpn.loc] ... default_shell = /bin/bash ...
Проверим имеет ли доступ к пользователям из доверенного домена рабочие станции IPA.# getent passwd user_ad@win Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.:*:328601108:328601108:Тестовый пользователь AD:/home/win.loc/user_ad:/bin/bash
Для того, что бы пользователь из AD мог авторизоваться на ПК из IPA на сервере IPA в файл /etc/krb5.conf нужно добавить пару строк:[realms] RPN.LOC = { .... auth_to_local = RULE:[1:$1@$0](^.*@WIN.LOC$)s/@WIN.LOC/@win.loc/ auth_to_local = DEFAULT }
После этого пользователь с учетными данными из Active Directory получает возможность авторизоваться на ПК, управляемые IPA.
- Если мы имеем пароль администратора домена Active Directory:
-
Разрешаем доступ пользователям Active Directory на защищенные ресурсы IPA.
Прежде чем пользователи из доверенного домена смогут получить доступ к защищенным ресурсам IPA, они должны быть явно отображены в группах IPA. Отображение выполняется в два этапа:
1. Добавление пользователей и групп из доверенного домена во внешнюю группу в IPA.
Внешняя группа служит контейнером для ссылки на доверенных пользователей и групп домена по их идентификаторам безопасности.
2.Сопоставление внешней группы с существующей группой POSIX в IPA. В этой группе POSIX будет назначен правильный идентификатор группы (gid), который будет использоваться как группа по умолчанию для всех входящих доверенных пользователей домена, сопоставленных с этой группой- Создаем внешнюю группу в IPA для доверенного домена:
# ipa group-add --desc='ad_domain admins external map' ad_admins_external --external
- Создаем POSIX группу для внешней группы ad_admins_external
# ipa group-add --desc='ad_domain admins' ad_admins
- Добавляем пользователей из доверенного домена во внешнюю группу:
# ipa group-add-member ad_admins_external --external 'win\Domain Admins'
При запросе членов группы оставляем пустой ответ и нажимаем Enter
ПРИМЕЧАНИЕ. Поскольку аргументы в приведенной выше команде содержат обратную косую черту, пробелы и т. д., обязательно нужно использовать кавычки ('). - Добавляем внешнюю группу в POSIX группу:
# ipa group-add-member ad_admins --groups ad_admins_external
# net conf setparm 'share' 'comment' 'Trust test share' # net conf setparm 'share' 'read only' 'no' # net conf setparm 'share' 'valid users' 'ad_admins_sid' # net conf setparm 'share' 'path' '/path/to/share'
ad_admins_sid необходимо заменить на SID из домена AD. Посмотреть его можно командой:# wbinfo -n 'ad_netbios\Domain Admins'
Или в оснастке AD "Пользователи и компьютеры" в свойствах соответствующего объекта.
Устанавливаем протоколы для клиента Samba:# net conf setparm global 'client min protocol' CORE # net conf setparm global 'client max protocol' SMB2_02
После этого клиент из Active Directory может получить доступ на созданный нами ресурс. - Создаем внешнюю группу в IPA для доверенного домена:
Создание аккаунта для доступа к LDAP
Некоторые сервисы использующие LDAP требуют предварительно настроенной учетной записи. Использование обычной учетной записи пользователя предпочтительней, но не всегда это целесообразно делать. Можно сделать системную учетную запись следующим образом на сервере FreeIPA используя пароль Directory :
# ldapmodify -x -D 'cn=Directory Manager' -W dn: uid=system,cn=sysaccounts,cn=etc,dc=rpn,dc=loc changetype: add objectclass: account objectclass: simplesecurityobject uid: ldapaccount userPassword: secret123 passwordExpirationTime: 20380119031407Z nsIdleTimeout: 0^D
Замените пароль на более сложный. Параметр passwordExpirationTime: 20380119031407Z означает, что срок действия пароля неограничен Причина использования такой учетной записи, а не создание обычной учетной записи пользователя IPA, и использование этой системы заключается в том, что системная учетная запись существует только для привязки к LDAP. Это не настоящий пользователь POSIX, он не может войти в систему и ему не принадлежат файлы. У этого пользователя нет особых прав и он не может ничего записывать какие-либо данные на сервер LDAP FreeIPA, только права на чтение.