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 замените своими.