Настройка внешнего сервера аутентификации в oVirt.
В oVirt после установки,по умолчанию доступен только один аутентификационный домен - internal. В этом домене есть всего одна учетная запись. Для того чтобы воспользоваться все мощью в плане управления доступом нужен сервер каталогов. oVirt поддерживает работу с IPA и ActiveDirectory. В этой статье будет описан процесс установки IPA сервиса и его подключение к oVirt. Если коротко, то IPA это средство идентификации и аутентификации для Linux/UNIX. Если заглянуть внутрь, то это набор из 389 Directory Server, MIT Kerberos, NTP, DNS, Dogtag.FreeIPA будет устанавливаться на отдельном сервере и поскольку это разработка заточена под RedHat, наилучшим вариантом будет RHEL/Fedora/CentOS/Scientific. Вообще идеальным вариантом является установка FreeIPA и oVirt Engine на одном хосте, однако на момент написания статьи это было невозможно. Однако работы в этом направлении ведутся...
Исходные данные:
DNS домен - railsc.ru
IPA сервер - ipa.railsc.ru
Перед выполнением установки следует отметить что доменное имя будущего сервера, ipa.railsc.ru должно успешно разрешаться в IP адрес назначенный серверу. Либо всегда можно сделать грязный хак - прописать имя в /etc/hosts.
# vi /etc/hosts
10.101.15.1 ipa.railsc.ru
Посе чего выполняем установку freeipa пакетов и запускаем процесс конфигурирования
# yum install freeipa-server -y
# ipa-server-install
Далее запускается диалог в котором нужно принять небольшое участие:
- указать FQDN имя для нашего сервера
- указать домен которому будет принадлежать домен
- определить имя для Kerberos realm
- задать пароль для менеджера LDAP
- задать пароль для администратора IPA
- и после чего подтвердить свои намерения.
Server host name [ipa.railsc.ru]:
The domain name has been determined based on the host name.
Please confirm the domain name [railsc.ru]:
The kerberos protocol requires a Realm name to be defined. This is typically the domain name converted to uppercase.
Please provide a realm name [RAILSC.RU]:
Certain directory server operations require an administrative user. This user is referred to as the Directory Manager and has full access
to the Directory for system management tasks and will be added to the instance of directory server created for IPA. The password must be at least 8 characters long.
Directory Manager password: ****************
Password (confirm): ****************
The IPA server requires an administrative user, named 'admin'. This user is a regular system account used for IPA server administration.
IPA admin password: ***********
Password (confirm): ***********
The IPA Master Server will be configured with:
Hostname: ipa.railsc.ru
IP address: 10.101.15.1
Domain name: railsc.ru
Realm name: RAILSC.RU
Continue to configure the system with these values? [no]: yes
После завершения настройки, если вы используете файервол, рекомендуется открыть следующие порты:
TCP:
80, 443: HTTP/HTTPS
389, 636: LDAP/LDAPS
88, 464: kerberos
UDP:
88, 464: kerberos
123: ntp
Также будет выполнена резервная копия сертификата который принадлежит созданному центру сертификации. По умолчанию резервная копия сохраняется в /root/cacert.p12. Этот копия может понадобиться в случае, если нужно будет поднять реплику сервера LDAP. Пароль от этой резервной копии мы указывали в диалоге в пункте Directory Manager password.
Теперь нужно запросить билет для нашего админа в Kerberos. В процессе будет запрошен пароль, нужно ввести пароль введенный на стадии IPA admin password
# kinit admin
Password for admin@RAILSC.RU:
Следующая команда необязательна, но позволяет убедиться что билет выдан
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@RAILSC.RU
Valid starting Expires Service principal
08/25/13 11:18:46 08/26/13 11:18:36 krbtgt/RAILSC.RU@RAILSC.RU
Теперь можно приступить к созданию пользователей в нашем каталоге. Но перед тем как создавать пользователей, небольшой совет. При создании пользователя, ему присваиваются атрибуты. У этих атрибутов есть свои значения по умолчанию, который наверняка захочется исправить. Так вот перед созданием пользователей, атрибуты по умолчанию можно просмотреть с помощью ipa config-show, а изменить с помощью ipa config-mod. Например, поменяем оболочку.
# ipa config-mod --defaultshell=/bin/bash
Теперь создаем пользователя, задаем пароль.
# ipa user-add lesovsky --first=Alexey --last=Lesovsky --password
После создания, желательно запросить билет, иначе при первом входе в oVirt будет выведено сообщение что у пользователя истек срок действия
# kinit lesovsky
Password for lesovsky@RAILSC.RU:
Password expired. You must change it now.
Enter new password:
Enter it again:
Теперь когда на стороне IPA все готово, переходим к oVirt.
Сначала нужно выполнить правки в DNS зоне для нашего домена. Как я уже писал выше, настройка осуществляется в домене railsc.ru, а имя сервера IPA - ipa.railsc.ru.
Перед подключением домена утилита engine-manage-domains выполняет проверку DNS зоны на предмет существования SRV записей которые указывают на LDAP и Kerberos сервисы домена. Прописываем PTR и SRV записи для IPA сервера. Запись A наверное у вас уже прописана, но на всякий случай привожу и её.
1.15 IN PTR ipa.railsc.ru.
ipa A 10.101.15.1
_ldap._tcp. SRV 0 0 389 ipa.railsc.ru.
_kerberos._tcp. SRV 0 0 88 ipa.railsc.ru.
Теперь переходим к oVirt Engine. Для подключения домена воспользуемся утилитой engine-manage-domains.
# engine-manage-domains -action=add -domain=railsc.ru -provider=ipa -user=admin -interactive
Enter password:
The domain railsc.ru has been added to the engine as an authentication source but no users from that domain have been granted permissions within the oVirt Manager.
Users from this domain can be granted permissions by editing the domain using -action=edit and specifying -addPermissions or from the Web administration interface logging in as admin@internal user.
oVirt Engine restart is required in order for the changes to take place (service ovirt-engine restart).
Manage Domains completed successfully
При успешном подключении остается перезапустить ovirt-engine.service. После чего можно выполнить добавление пользователя в oVirt.
- заходим в Administrator Portal и Tree Panel в левой части экрана выбираем корневой раздел System.
- открываем вкладку Users в панели ресурсов затем в панели инструментов нажимаем кнопку Add.
- в открывшемся диалоговом окне Add Users and Group в поле выбора домена указываем наш аутентифкационный домен и нажимаем кнопку Go
- после нажатия кнопки Go будет отображен список пользователей которые доступны для добавления. Отмечаем нужного пользователя и нажимаем OK
Теперь когда пользователь добавлен можно назначить ему системную роль которая позволит ему выполнять различные операции в oVirt
- нажимаем кнопку Configure в правом верхнем углу рядом с именем пользователя выполнившего вход.
- в открывшемся окне Configure выбираем раздел System Permissions в левой области окна. В панели инструментов нажимаем кнопку Add.
- в дополнительном окне Add System Permission to User выбираем домен и нажимаем кнопку Go для поиска доступных пользователей.
- отмечаем ранее добавленного пользователя и в нижней части экрана определяем ему роль. Например PowerUserRole.
- нажимаем ОК и новая роль будет отображена в списке ролей. Нажимаем Close и выходим из окна Configure.
На этом все.
На главную "Virtualizing Linux"
Спасибо, очень интересный материал, сильно помог. Единственное, не очень понятно, почему при установке IdM мы делаем домен thislinux.org, а в RHEV-M добавляем потом домен railsc.ru. Почему они разные, откуда второй?
ОтветитьУдалитьааааааааа, это косяк и недосмотр при редактировании..., изначально настраивал для домена railsc.ru , а потом правил на thislinux.org, и не везде поправил. Спалил домен клиента))) посыпаю голову пеплом.
Удалитьучитывая что на скришотах тоже railsc.ru, поправил все доменные имена на этот домен.
УдалитьСпасибо за статью. Привет из Сербии.
ОтветитьУдалитьСербия, Сербия... когда-нибудь приеду к вам посмотреть на прекрасный край и хороших людей)))
УдалитьНе подскажете, как запустить веб-интерфейс? После dnf install freeipa-* bind bind-dyndb-ldap и ipa-server-install ничего не произошло. Апач по зависимостям вроде подтянулся (точно уже не помню), но не запустился.
ОтветитьУдалитьThank you for sharing.
ОтветитьУдалить