FreeIPA

Материал из Викиадмин
Версия от 19:25, 17 ноября 2018; Aleksdem (обсуждение | вклад) (Сертификат для cockpit для клиентской машины, подписанный FreeIPA)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

FreeIPA - система управления пользователями, доменом и имеет весьма удобную веб-консоль для управления. Мы, конечно, мегалюбители консоли, но иногда и в браузере можно поуправлять. :) Разумеется, так как разработчик - компания Red Hat, то и это ПО интереснее всего использовать на CentOS или RHEL.

Установка FreeIPA на CentOS 7

Как и обещал, немного о том, как поставить FreeIPA. Конечно, я рекомендую сначала поиграть на виртуалках, но если есть возможность пощупать это ПО на реальном железе - искренне завидую! (Я понимаю, что виртуалки, докер и т.д. - это стильно, модно, молодежно, но я немного за классику. :) )

Ставим нужные пакеты

   yum -y install ipa-server ipa-server-dns bind bind-dyndb-ldap

Не забываем корректно указать имя сервера в hosts

   vim /etc/hosts

и добавляем свои данные, например:

   10.0.0.10 ns.wikiadmin.local ns

Теперь инииализация

   ipa-server-install --setup-dns

Отвечаем корректно на вопросы мастера. На самом деле достаточно просто….

…. 2 минуты спустя….

Теперь нам надо получить тикет Kerberos

   kinit admin

Команда klist должна всё показать. Если нет - ищите ранее ошибки.

Так же неплохо выставить нормальный shell

   ipa config-mod --defaultshell=/bin/bash

Если Firewalld запущен и используется:

   firewall-cmd --add-service={ssh,dns,freeipa-ldap,freeipa-ldaps} --permanent
   firewall-cmd --reload

Работа с ipa

Попробуем добавить пользователя:

   ipa user-add USERNAME --first=NAME --last=LASTNAME --password

запросит пароль и готово.

Ещё вариант:

   ipa user-find USERNAME

покажет инфу по пользователю USERNAME

Ну и удаление:

   ipa user-del USERNAME

Как добавить почту админу:

   ipa user-mod --email aleksdem@aleksdem.com --addattr objectclass=inetorgperson admin

Смотрим статус:

   klist
   ipactl status

Как сделать sudo для группы admin

   ipa sudorule-add --cmdcat=all All
   ipa sudorule-add-user --groups=admins All

Как настроить dnssec:

   ipa-dns-install --dnssec-master

add dnssec to domain

   ipa dnszone-mod dpld.ru. --dnssec=true

check it

   dig @127.0.0.1 +dnssec dpld.ru. SOA

А как же клиентские компьютеры?

Теперь добавим компьютер пользователя. Для начала на сервере даём команду (если не через веб-интерфейс добавлять):

   ipa dnsrecord-add wikiadmin.local pc01 --a-rec 10.0.0.100

это добавит pc01 в наш домен wikiadmin.local.

Теперь на клиенте:

   yum -y install ipa-client
   ipa-client-install

Разумеется, ns.wikiadmin.local должен стоять как DNS-сервер.

Так же стоит включить автосоздание home-папки пользователя, который зайдет.

   authconfig --enablemkhomedir --update

И теперь можно заходить от ранее созданного в FreeIPA пользователя.

[root@spacewalk ~]# su admin -
[admin@spacewalk root]$ cd ~
[admin@spacewalk ~]$ pwd
/home/admin

Всё ок

Сертификат для cockpit для клиентской машины, подписанный FreeIPA

Итак, на клиентской машине есть cockpit. И на попытку открыть, он ругается на некорректный сертификат. Логично, его просто нужно сделать. Итак...

Делаем закрытый ключик

openssl genrsa -out client.key 1024

Теперь делаем сертификат-запрос

openssl req -new -key client.key -out client.csr

Выводим содержимое в консоль

cat client.csr 

В FreeIPA идем в

Identify - Службы - добавляем сервис http для клиентского узла.

Далее кликаем на

HTTP/имя узла

Там нажимаем Action (вверху слева) и добавляем содержимое client.csr

-----BEGIN CERTIFICATE REQUEST-----
MIIByTCCATICAQAwgYgxCzAJBgNVBAYTAlJVMQ8wDQYDVQQIDAZNb3Njb3cxFDAS
....
gZqeQrYMa7+Nj9RmJnE6HYpTGob6LwnzVE8Mq2w=
-----END CERTIFICATE REQUEST-----

Справа на этой же странице в Service Certificate появится уже подписанный "ответ". Нажимаем Action и Get. Сохраняем как client.cert

А теперь добавим закрытый ключик в этот же файл, так как cockpit хочет 1 файлик

cat client.key >> client.cert

И копируем его в cockpit

cp client.cert /etc/cockpit/ws-certs.d/

Далее перезапуск cockpit

systemctl restart cockpit

И в браузере "зелень". Если что-то не так, смотрим лог

journalctl -u cockpit -f

Как добавить сертификат на машину "не в системе"

Копируем файл и обновляем базу:

scp server_freeipa:/etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ipa.crt
update-ca-trust

А можно ли использовать LDAP извне

Конечно! Например, подключить адресную книгу в Thunderbird.

Создаём книгу:

Файл - Создать - Книга LDAP

На первой вкладке:

  • Название своё. В моём случае freeipa
  • Имя сервера freeipa.wa.loc
  • Корневой элемент cn=accounts,dc=wa,dc=loc
  • Порт 389

Тут freeipa, wa и loc замените своими.