- ipa (1) — Linux Man Pages
- ipa: IPA command-line interface
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- COMMANDS
- EXAMPLES
- SERVERS
- FreeIPA
- Содержание
- Установка сервера FreeIPA [ править ]
- Установка сервера FreeIPA в режиме CA-less [ править ]
- Настройка IPA CA-less репликации [ править ]
- Установка FreeIPA клиента и подключение к серверу [ править ]
- Вход пользователя [ править ]
- IPA Automount NFS [ править ]
- Настройка репликации [ править ]
- Настройка доверительных отношений с AD [ править ]
- Предварительная настройка IPA сервера [ править ]
- Настройка доверия [ править ]
- Проверка конфигурации Kerberos [ править ]
- Проверка пользователей доверенного домена [ править ]
- Создание аккаунта для доступа к LDAP [ править ]
- Добавление расширенных полей в ldap [ править ]
- Использование haproxy для высокой доступности FreeIPA [ править ]
- Automember rebuild membership [ править ]
ipa (1) — Linux Man Pages
ipa: IPA command-line interface
Command to display ipa manual in Linux: $ man 1 ipa
SYNOPSIS
DESCRIPTION
This manual page focuses on the ipa script that serves as the main command-line interface (CLI) for IPA administration.
More information about the project is available on its homepage located at http://www.freeipa.org.
OPTIONS
COMMANDS
From the implementation perspective, the CLI distinguishes two types of commands — built-ins and plugin provided.
Built-in commands are static and are all available in all installations of IPA. There are two of them: console Start the IPA interactive Python console. help [ TOPIC | COMMAND | topics | commands ] Display help for a command or topic.
The help command invokes the built-in documentation system. Without parameters a list of built-in commands and help topics is displayed. Help topics are generated from loaded IPA plugin modules. Executing help with the name of an available topic displays a help message provided by the corresponding plugin module and list of commands it contains.
Plugin provided commands, as the name suggests, originate from IPA plugin modules. The available set may vary depending on your configuration and can be listed using the built-in help command (see above).
Most plugin provided commands are tied to a certain type of IPA object. IPA objects encompass common abstractions such as users (user identities/accounts), hosts (machine identities), services, password policies, etc. Commands associated with an object are easily identified thanks to the enforced naming convention; the command names are composed of two parts separated with a dash: the name of the corresponding IPA object type and the name of action performed on it. For example all commands used to manage user identities start with «user-» (e.g. user-add, user-del).
The following actions are available for most IPA object types: add [ PRIMARYKEY ] [options] Create a new object. show [ PRIMARYKEY ] [options] Display an existing object. mod [ PRIMARYKEY ] [options] Modify an existing object. del [ PRIMARYKEY ] Delete an existing object. find [ CRITERIA ] [options] Search for existing objects.
The above types of commands except find take the objects primary key (e.g. user name for users) as their only positional argument unless there can be only one object of the given type. They can also take a number of options (some of which might be required in the case of add ) that represent the objects attributes.
find commands take an optional criteria string as their only positional argument. If present, all objects with an attribute that contains the criteria string are displayed. If an option representing an attribute is set, only object with the attribute exactly matching the specified value are displayed. Options with empty values are ignored. Without parameters all objects of the corresponding type are displayed.
For IPA objects with attributes that can contain references to other objects (e.g. groups), the following action are usually available: add-member [ PRIMARYKEY ] [options] Add references to other objects. remove-member [ PRIMARYKEY ] [options] Remove references to other objects.
The above types of commands take the objects primary key as their only positional argument unless there can be only one object of the given type. They also take a number of options that represent lists of other object primary keys. Each of these options represent one type of object.
For some types of objects, these commands might need to take more than one primary key. This applies to IPA objects organized in hierarchies where the parent object needs to be identified first. Parent primary keys are always aligned to the left (higher in the hierarchy = more to the left). For example the automount IPA plugin enables users to manage automount maps per location, as a result all automount commands take an automountlocation primary key as their first positional argument.
All commands that display objects have three special options for controlling output: —all Display all attributes. Without this option only the most relevant attributes are displayed. —raw Display objects as they are stored in the backing store. Disables formatting and attribute labels. —rights Display effective rights on all attributes of the entry. You also have to specify —all for this to work. User rights are returned as Python dictionary where index is the name of an attribute and value is a unicode string composed (hence the u’xxxx’ format) of letters specified below. Note that user rights are primarily used for internal purposes of CLI and WebUI.
r — read
s — search
w — write
o — obliterate (delete)
c — compare
W — self-write
O — self-obliterate
EXAMPLES
SERVERS
1. The server configured in /etc/ipa/default.conf in the xmlrpc_uri directive. 2. An unordered list of servers from the ldap DNS SRV records.
If a kerberos error is raised by any of the requests then it will stop processing and display the error message.
Источник
FreeIPA
FreeIPA — это комплексное решение по управлению безопасностью Linux-систем, 389 Directory Server, MIT Kerberos, NTP, DNS, Dogtag. Оно состоит из веб-интерфейса и интерфейса командной строки.
FreeIPA является интегрированной системой проверки подлинности и авторизации в сетевой среде Linux, FreeIPA сервер обеспечивает централизованную проверку подлинности, авторизацию и контроль за аккаунтами пользователей сохраняя сведения о пользователе, группах, узлах и других объектах необходимых для обеспечения сетевой безопасности.
Содержание
Установка сервера FreeIPA [ править ]
Устанавливать будем со встроенным DNS сервером и доменом EXAMPLE.TEST в локальной сети 192.168.135.0/24.
Для начала отключим ahttpd, работающий на порту 8080, во избежание конфликтов с разворачиваемым tomcat и отключим HTTPS в Apache2:
Установим необходимые пакеты:
Зададим имя сервера:
Для ускорения установки можно установить демон энтропии haveged:
Запускаем скрипт настройки сервера:
В пакетном режиме:
Обратите внимание на ответы на вопросы, не совпадающие с предложенными:
остальные вопросы выбираем по умолчанию (можно просто нажать Enter). Так же при установке попросят ввести пароль администратора системы и пароль администратора каталогов.
Для возможности управлять FreeIPA сервером из командной строки необходимо получить билет Kerberos:
Добавим в DNS запись о нашем сервере времени:
Проверить работу ntp сервера можно командой:
Также доступен веб-интерфейс по адресу:
и повторите снова.
Установка сервера FreeIPA в режиме CA-less [ править ]
CA-Less конфигурация требуется в тех случаях, когда у вас по какой-то причине нет возможности развернуть на FreeIPA сервис PKI dogtag. Например, это на данный момент невозможно сделать в некоторых сертифицированных конфигурациях. Если у вас не сертифицированный дистрибутив ALT, то пропустите пункт по настройке CA-Less репликации.
Установим необходимые пакеты:
Зададим имя сервера:
Подготовим сертификаты для сервера FreeIPA:
Создадим файл pwdfiles.txt с паролем, например 12345678:
Создадим базу данных NSS:
Создадим noise файл с рандомом:
Создаем CA сертификат:
Дайте следующие ответы:
Создадим запрос сертификата:
Подпишите запрос о выдаче сертификата сервера:
Дайте следующие ответы:
Если вы хотите, вы можете создавать отдельные сертификаты для серверов HTTP и Directory.
Экспорт сертификатов в правильные форматы. Импортируем полученный сертификат:
Экспортируем в PKCS#12:
Экспортируйте сертификат CA в формате PEM:
Теперь установим CA-less IPA:
Вы также можете указать при установке опции —pkinit-cert-file=Файл, содержащий сертификат SSL Kerberos KDC и закрытый ключ и —pkinit-pin=Пароль от закрытого ключа Kerberos KDC.
После установки выполните:
И после убедитесь что команды:
Не срабатывают и выводят ошибки.
Настройка IPA CA-less репликации [ править ]
CA-Less конфигурация требуется в тех случаях, когда у вас по какой-то причине нет возможности развернуть на FreeIPA сервис PKI dogtag. Например, это на данный момент невозможно сделать в некоторых сертифицированных конфигурациях. Если у вас не сертифицированный дистрибутив ALT, то пропустите пункт по настройке CA-Less репликации.
Чтобы установить реплику, сначала создайте сертификаты для новой машины: создадим запрос сертификата и подпишем запрос о выдаче сертификата сервера и экспортируем сертификаты в правильные форматы, на этот раз задав $HOSTNAME имя хоста будущей реплики. Используйте Replica-Cert вместо Server-Cert и
/test_ca/servercert.p12: Создадим запрос сертификата для реплики:
Подпишите запрос о выдаче сертификата реплики:
Дайте следующие ответы:
Если вы хотите, вы можете создавать отдельные сертификаты для серверов HTTP и Directory.
Экспорт сертификатов в правильные форматы.
Импортируем полученный сертификат:
Экспортируем в PKCS#12:
Для domain-level 1
Установка FreeIPA клиента и подключение к серверу [ править ]
Установим необходимые пакеты:
Зададим имя компьютера:
Добавим DNS сервер, для этого создадим файл /etc/net/ifaces/ens19/resolv.conf со следующим содержимым:
192.168.135.1 — IP-адрес нашего FreeIPA сервера.
Укажем службе resolvconf использовать DNS FreeIPA и наш домен для поиска.
Для этого в файл /etc/resolvconf.conf добавим/отредактируем следующие параметры:
Где ens19 -интерфейс на котором доступен FreeIPA сервер, example.test — наш домен.
Обновим DNS адреса:
После этого в файле /etc/resolv.conf должны появится строки:
Запускаем скрипт настройки клиента: в пакетном режиме:
Если все настроено верно скрипт должен выдать такое сообщение:
Отвечаем yes вводим имя пользователя, имеющего право вводить машины в домен, и его пароль.
Пример успешного ввода в домен:
В случае возникновения ошибки, необходимо перед повторной установкой запустить процедуру удаления:
Для работы sudo-политик для доменных пользователей на клиентской машине необходимо разрешить доступ к sudo:
Вход пользователя [ править ]
При первом входе пользователя будет запрошен текущий установленный администратором пароль и затем у пользователя запрашивается новый пароль и его подтверждение.
IPA Automount NFS [ править ]
Добавим сервис в автозапуск:
Добавим список экспорта и применим изменения:
Добавить ipa сервис где nfs.testbc.testbe наш nfs сервер:
Добавляем в keytab:
Перезапустим nfs сервер:
Добавим правила автомонтирования:
Удалим пустую карту монтирования:
Настройка клиента: ipa-client-install Устанавливаем пакет freeipa-client-automount:
Проверим доступность nfs:
На IPA сервере: Создадим пользователя:
Предоставим пользователю права на запись:
Создадим домашнюю папку пользователя на nfs сервере:
Добавим правила автомонтирования:
Проверяем на клиенте:
Для отладки используйте:
Настройка репликации [ править ]
На втором контроллере домена установим необходимые пакеты:
Зададим имя сервера:
Теперь развернём и настроим клиента:
После выполнения этой операции хост ipabackup.example.test должен появиться в веб-интерфейсе FreeIPA. Переходим к настройке репликации LDAP-каталога:
Добавляем в DNS второй NTP-сервер:
Настроим репликацию DNS-зон:
Наконец, настроим репликацию CA:
После настройки и репликации контроллеров посмотреть топологию можно в веб-интерфейсе FreeIPA (IPA Server -> Topology -> Topology Graph).
Настройка доверительных отношений с AD [ править ]
FreeIPA использует Samba для интеграции в Active Directory. Для работы Samba необходим работающий стек IPv6.
Начальные данные:
- IP адрес IPA сервера: 192.168.135.130
- Имя IPA сервера: dcf
- Имя IPA домена: domf.testf
- NetBIOS имя IPA домена: DOMF
- IP адрес AD DC: 192.168.135.150
- Имя AD DC: dcc
- Имя AD домена: domc.testc
- NetBIOS имя AD домена: DOMC
Установим необходимые пакеты:
Предварительная настройка IPA сервера [ править ]
Настроим IPA для работы с доверительными отношениями:
Скрипт спросит необходимо ли конфигурировать slapi-nis плагин для поддержки работы старых клиентов (SSSD Проверка конфигурации DNS [ править ]
На AD сервере:
Проверим наличие записей для работы сервисов IPA на DNS-сервере AD.
1. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:
2. Запись отвечающая за имя Kerberos realm IPA домена:
3. После выполнения команды ipa-adtrust-install должны появится записи отвечающие за работу сервисов MS DC Kerberos через UDP и LDAP через TCP:
Далее проверим наличие записей для работы сервисов AD на DNS-сервере AD.
4. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:
На IPA сервере:
Проверим наличие записей для работы сервисов IPA на DNS-сервере IPA.
1. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:
2. Запись отвечающая за имя Kerberos realm IPA домена:
3. После выполнения команды ipa-adtrust-install должны появится записи отвечающие за работу сервисов MS DC Kerberos через UDP и LDAP через TCP:
Далее проверим наличие записей для работы сервисов AD на DNS-сервере IPA. 4. Запись отвечающая за работу сервисов Kerberos через UDP и LDAP через TCP:
Настройка доверия [ править ]
Добавление двунаправленных доверительных отношений леса (Forest Trust) с AD:
Имя доменного администратора Windows должно быть на латинице, кириллицу (Администратор) IPA не принимает.
Необходимо ввести пароль Administrator AD.
Далее необходимо запросить сервер AD о его доверенных доменах:
При этом IPA создаст нужные id-диапазоны для доверенных доменов.
Если мы добавим в лес еще один домен DOME.TESTE, то необходимо настроить DNS на обоих серверах, чтобы они видели друг друга.
И выполнить команду еще раз,чтобы IPA сервер узнал о нем:
Найти все доверенные домены можно и с помощью web-интерфейса. Для Перейдем в IPA Server -> Trusts и выберем нужный нам домен:
Нажмём кнопку Fetch domains это обновит список доверенных доменов:
Для того чтобы увидеть список всех доверенных доменов из леса используйте следующую команду:
Проверка конфигурации Kerberos [ править ]
1. Запросим ticket для IPA пользователя:
2. Запросим service ticket для сервиса из IPA домена:
3. Запросим service ticket сервиса из AD домена:
Если запрос service ticket для сервиса из AD домена прошел успешно, то у нас должен появиться междоменный ticket-granting ticket, его имя krbtgt/DOMC.TESTC@DOMF.TESTF:
Проверка пользователей доверенного домена [ править ]
Проверим имеет ли доступ к пользователям из доверенного домена рабочие станции IPA.
Для этого на рабочей станции IPA выполните команду:
Где u01domc это пользователь из AD домена. Обратите внимание, что не указана оболочка входа. Назначить оболочку входа для пользователей из доверенного домена можно добавив на сервере IPA в файл /etc/sssd/sssd.conf следующую строчку:
Вывод команды должен стать таким:
Создание аккаунта для доступа к LDAP [ править ]
Некоторые сервисы использующие LDAP требуют предварительно настроенной учетной записи. Использование обычной учетной записи пользователя предпочтительней, но не всегда это целесообразно делать. Можно сделать системную учетную запись следующим образом на сервере FreeIPA используя пароль Directory :
Замените пароль на более сложный. Параметр passwordExpirationTime: 20380119031407Z означает, что срок действия пароля неограничен Причина использования такой учетной записи, а не создание обычной учетной записи пользователя IPA, и использование этой системы заключается в том, что системная учетная запись существует только для привязки к LDAP. Это не настоящий пользователь POSIX, он не может войти в систему и ему не принадлежат файлы. У этого пользователя нет особых прав и он не может ничего записывать какие-либо данные на сервер LDAP FreeIPA, только права на чтение.
Добавление расширенных полей в ldap [ править ]
Если необходимо добавить поля в вашу схему ldap, то реализация этого возможна через команду ldapmodify и добавление своих плагинов для отображения этих полей в WebUi.
Обычно файлы модификации схемы являются типом .ldif.
Пример:
Содержание файла addExtField.ldif
Детальное пояснение для блока:
dn — dn, в котором будет проводиться изменение. Добавление/удаление классов и т.д.
changetype — атрибут, отвечающий за тип изменений, которые будут происходить.(add, delete, modify, modrdn)
add: attributeTypes — добавление атрибута, далее идёт описание атрибута.
2.25.28639311321113238241701611583088740684.14.2.2 — уникальный идентификатор атрибута. Можно написать любой.
NAME ‘favoriteColorName’ — По другому можно назвать — primary name. Название атрибута.
EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch — эти атрибуты заданы для проверки соответствия содержания атрибута правилам caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 — OID типа данных
Все изменения в схеме производятся от пользователя — Directory manager.
Изменение схемы ldap:
После изменения схемы, путем добавления нового objectclass, нужно чтобы эти поля еще можно было редактировать в web-интерфейсе. Для этого необходимо сделать палагин. В примере использовано 3 атрибута, для них сделаем 3 отдельных плагина:
1. Создание папки:
2. Создание самого плагина:
В схеме бы добавлен атрибут типа boolean, для него можно сделать радиокнопки:
После необходимо добавить новое поле в «Default user objectclasses» (находится IPA Server -> Configuration) созданный objectclass (customPerson) и появятся поля в web-интерфейсе. Для того чтобы пользователь мог их редактировать, необходимо изменить привилегии в группе ipausers.
Использование haproxy для высокой доступности FreeIPA [ править ]
Сервер №1 c freeipa: dc1.testbc.testgl
Сервер №2 с репликой freeipa: dc2.testbc.testgl
Сервер №3 с haproxy: haproxy.testbc.testgl
Инструкция для настройки сервера №1 и №2: FreeIPA
Сохранить оригинальный конфигурационный файл:
Запустить сервис haproxy:
Проверить работу можно с помощью ldapsearch сделав один из серверов недоступным:
Результат: ldap всегда доступен.
Automember rebuild membership [ править ]
Пользовательские или хост группы можно легко перестроить на основе новых или обновленных правил automember. Команда automember rebuild только добавляет новые отношения для групп, она не удаляет те, которые не соответствуют правилам automember. Недавно добавленная команда вызовет задачу в rebuild automember, создав запись LDAP в cn = automember rebuild membership, cn = tasks, cn = config. Плагин automember в настоящее время проверяет операции Add(добавления), чтобы увидеть, есть ли запись соответствует одному из определенных правил automember. Существующие записи не проверяются когда они изменяются. Чтобы применить правило для всех записей, надо добавить задачу к плагину automember. Создатель задачи обеспечит фильтр поиска и базу. Все совпадающие записи будут проверяться в соответствии с определенными правилами automember, чтобы увидеть если они должны быть добавлены в какие-либо группы. Это позволяет добавить запуск атрибуты(значения) после того, как запись была первоначально добавлена, а затем вызвать задачу(выполнить) обновления automember. Ipa automember-rebuild может использоваться для восстановления членства для всех объектов определенного типа:
Он также может использоваться для восстановления членства для указанных записей:
Добавление новой группы хостов:
Добавить новый хост:
Добавить automember rule:
Функция automember теперь работает для новых добавленных записей. Если мы добавим новый хост, он будет автоматически помещен в соответствующую группу хостов:
Источник