Настройка FreeIPA на сервере Ubuntu 16.04

Published by Leave your thoughts

FreeIPA – это открытое средство для обеспечения безопасности Linux, которое предоставляет управление учетными записями и централизованную проверку подлинности (как Active Directory в Microsoft). Инструмент FreeIPA основан на нескольких открытых проектах (389 Directory Server, MIT Kerberos, SSSD и других).

FreeIPA предоставляет клиенты для CentOS 7, Fedora и Ubuntu 14.04/16.04. Эти клиенты позволяют быстро добавить машины в домен IPA. Другие операционные системы могут аутентифицироваться в FreeIPA с помощью SSSD или LDAP.

Данное руководство поможет настроить аутентификацию сервера Ubuntu 16.04 на сервере FreeIPA. После настройки клиента вы сможете управлять аутентификацией пользователей и групп на сервере, а также управлять доступом к sudo.

Требования

  • Сервер CentOS 7 с предустановленным пакетом FreeIPA (больше информации можно найти здесь).
  • Сервер Ubuntu 16.04 с настроенным брандмауэром. Инструкции по настройке можно найти по этой ссылке.
  • Данное руководство можно выполнить в сессии пользователя root.
  • DNS-записи на сервере Ubuntu: А-запись для адреса IPv4; AAAA-запись для IPv6 (опционально).

В руководстве используется условный адрес ipa-client.example.com для IPA-клиента Ubuntu и ipa.example.com для сервера CentOS.

Подготовка клиента IPA

Сначала нужно подготовить сервер Ubuntu к запуску клиента FreeIPA: указать имя хоста сервера, обновить системные пакеты и проверить записи DNS.

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

Примечание: В данном руководстве используется условный домен ipa-client.example.com.

Вы можете указать имя хоста, создавая новый виртуальный сервер.

Если у вас уже есть сервер, используйте команду hostname.

Примечание: Вы должны войти как root, потому что обычные пользователи не могут менять системные параметры.

hostname ipa-client.example.com

Также нужно изменить имя хоста вручную в файле /etc/hostname:

nano /etc/hostname

Файл должен содержать всего одну строку с именем хоста:

your_original_hostname

Вместо него укажите FQDN клиента:

ipa-client.example.com

Сохраните и закройте файл.

Затем обновите список пакетов:

apt-get update

Теперь нужно проверить, правильно ли разрешены имена DNS. Для этого можно использовать стандартную команду dig.

Чтобы проверить А-запись:

dig +short ipa-client.example.com A
your_server_ipv4

Если вы включили поддержку IPv6, проверьте запись АААА:

dig +short ipa-client.example.com AAAA
your_server_ipv6

Также нужно протестировать обратный просмотр.

dig +short -x your_server_ipv4
dig +short -x your_server_ipv6

Эти команды должны вернуть ipa-client.example.com.

2: Установка клиента FreeIPA

Клиентский пакет FreeIPA можно найти в репозитории Ubuntu 16.04 по умолчанию:

apt-get install freeipa-client

Эта команда запустит инсталлятор, который может запросить пространство или сервер Kerberos (экран будет называться Configuring Kerberos Authentication). Инсталлятор FreeIPA переопределит эти настройки, но лучше ввести их здесь правильно.

Пространство Kerberos настраивается при создании сервера (как правило, это ipa.example.com). Серверы Kerberos – это адрес сервера IPA (ipa.example.com). Предоставьте эти данные, после чего пакет ipa-client будет установлен.

Запустите команду установки FreeIPA. Она запустит сценарий, который поможет настроить FreeIPA и выполнить аутентификацию на FreeIPA сервере CentOS.

ipa-client-install --mkhomedir

Благодаря флагу —mkhomedir FreeIPA будет создавать домашние каталоги для пользователей IPA при первом входе. При желании этот флаг можно опустить.

Инсталлятор запросит домен IPA.

Provide the domain name of your IPA server (ex: example.com): ipa.example.com

Затем нужно ввести домен сервера IPA (это URL-адрес, который вы используете для доступа к веб-интерфейсу IPA). Скорее всего, он будет совпадать с доменом IPA.

Provide your IPA server name (ex: ipa.example.com): ipa.example.com

Примечание: Системы с избыточными серверами IPA, скорее всего, будут использовать другой домен и имя сервера IPA.

При использовании одного сервера обработка отказа не будет работать. FreeIPA предупредит вас об этом; введите yes, чтобы продолжить.

Autodiscovery of servers for failover cannot work with this configuration.
If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure.
Proceed with fixed values and no DNS discovery? [no]: yes

Убедитесь, что все опции установлены правильно и введите yes.

Continue to configure the system with these values? [no]: yes

Затем введите имя администратора. Можно просто использовать администратора по умолчанию IPA, который был создан при установке сервера.

User authorized to enroll computers: admin

Введите пароль администратора IPA, который был установлен во время настройки сервера FreeIPA.

После этого клиент FreeIPA подготовит систему. Если установка прошла успешно, в конце вывода вы увидите:

Client configuration complete.

3: Аутентификация

Перейдите в веб-интерфейс IPA:

https://ipa.example.com

Войдите в учетную запись администратора IPA, которую вы использовали ранее. Появится экран Active Users.

Откройте вкладку Hosts. Вы должны увидеть информацию о сервере и клиенте IPA. Кликните по записи клиента IPA, чтобы открыть обзор хоста.

Здесь можно ввести информацию о клиентском компьютере, а также управлять группами и ролями машины.

Примечание: По умолчанию все пользователи IPA могут подключаться ко всем машинам в домене IPA.

Вы также можете попробовать войти в систему как пользователь IPA с локального терминала.

ssh admin@ipa-client.example.com

Убедившись, что подключение можно создать, закройте его.

4: Доступ к sudo

Для получения доступа к sudo не обязательно изменять файлы конфигурации клиента. Настроить правила sudo можно в пользовательском интерфейсе IPA.

FreeIPA позволяет определять, какие пользователи и группы той или иной машины должны иметь доступ к sudo. Также можно ограничить доступ к командам.

Попробуйте добавить простое правило, которое позволит группе admin иметь доступ к sudo на всех машинах. Группа admin существует в FreeIPA по умолчанию.

Откройте интерфейс IPA и выберите Services → sudo. Появится выпадающее меню.

Выберите Sudo Rules, нажмите Add и введите название правила в поле Rule Name (в руководстве используется Admin).

Затем нажмите add and edit, чтобы получить полный набор опций правила.

В Who и User groups нажмите + add. Выберите группу admin и нажмите кнопку со стрелочкой, чтобы переместить её из Available в Prospective. Нажмите Add.

В Access this host выберите Any host. В Run Commands выберите Any Command. В As Whom выберите Anyone and Any Group. Здесь вы можете ограничить доступ к sudo и список команд, которые можно запускать с помощью sudo.

Нажмите Save.

Правило будет активировано. На это может потребоваться некоторое время. Также, возможно, придётся перезапустить сервис sshd на клиенте IPA.

systemctl restart sshd.service

Убедитесь, что правило работает. На локальной машине подключитесь к клиенту с помощью администратора IPA. Этот пользователь включен в группу admin по умолчанию.

ssh admin@ipa-client.example.com

После этого попробуйте запустить интерактивную командную строку sudo:

sudo -i

Командная строка должна измениться:

root@ipa-client

Чтобы вернуться в обычную командную строку, введите:

exit

Если вам не удалось получить доступ к sudo, попробуйте перезапустить машину.

Заключение

Теперь вы можете настроить доступ пользователей и групп к вашей системе из пользовательского веб-интерфейса или интерфейса командной строки IPA. FreeIPA – универсальный инструмент проверки подлинности, который имеет расширенные функциональные возможности.

Дальнейшие действия во многом зависят от того, как вы собираетесь использовать FreeIPA. За дополнительной информацией можно обратиться к документации FreeIPA.

Tags: , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>