Настройка FreeIPA на сервере Ubuntu 16.04
Мы покажем вам как настроить сервис FreeIPA на сервере Ubuntu 16.04
Что такое FreeIPA? Это специальное открытое средство, способное обеспечить безопасность операционной системы Linux. FreeIPA дает возможность проводить централизованную проверку подлинности наподобие Active Directory в Microsoft. Кроме того, средство предоставляет управление учетными записями. В основу FreeIPA легло несколько открытых проектов, вроде MIT Kerberos, 389 Directory Server и SSSD. Разработчики FreeIPA сделали клиенты для всех популярных ОС: Ubuntu 14.04/16.04, CentOS 7, Fedora. Они дают возможность добавлять в домен IPA виртуальные машины. Остальные операционные системы смогут с помощью SSSD либо LDAP аутентифицироваться в IPA.
Из нашей статьи вы узнаете, как настроить аутентификацию сервера в операционной системе Ubuntu 16.04, используя сервер IPA. Когда настроите клиент, получите возможность управления аутентификацией юзеров, групп на сервере, а также доступом к sudo.
Что нам потребуется для этого?
• Сервер Ubuntu 16.04 и настроенный брандмауэр;
• Сервер CentOS 7, а также предустановленные пакетое FreeIPA;
• DNS-записи на сервере Ubuntu: А-запись для адреса IPv4, а также опциональная AAAA-запись для IPv6;
• Сессия root в которой и будут выполняться инструкции.
Для иллюстративности примера мы будем применять адрес ipa-client.example.com для IPA-клиента Ubuntu а также ipa.example.com для сервера CentOS.
Для начала нам нужно подготовить к запуску клиента IPA сервер Ubuntu. То есть задать имя серверного хоста, проверить записи DNS, а также обновить пакеты системы. Помните, что имя серверного хоста в Ubuntu должно быть таким же, как и у FQDN-клиента FreeIPA. Имя хоста задается при создании нового виртуального сервера. Если же он у вас есть, наберите команду hostname в консоли:
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.
В репозитории Ubuntu 16.04 по умолчанию присутствует клиентский пакет FreeIPA. Поставить его получится посредством:
apt-get install freeipa-client
Данная строчка активирует инсталлятор который может запросить сервер Kerberos. На экране появится: Configuring Kerberos Authentication. Настройки будут переопределены инсталлятором FreeIPA, однако их лучше писать без ошибок. При создании сервера настраивается пространство Kerberos типа ipa.example.com. по сути, сервера Kerberos и являются серверами IPA. После предоставления этих сведений, пакет ipa-client поставится. Теперь необходимо запустить команду инсталляции FreeIPA, которая активирует сценарий, помогающий настроить средство, а также совершить аутентификацию на FreeIPA сервере CentOS. Наберите в командной строке:
ipa-client-install –mkhomedir
Вышеуказанный флаг -mkhomedir необходим для создания для пользователей IPA домашних каталогов при первом входе. Вы можете не использовать его, если отсутствует необходимость. Кроме того, инсталлятор запросит домен IPA.
Provide the domain name of your IPA server (ex: example.com): ipa.example.com
После этого укажите домен сервера IPA. Данный адрес применяется для доступа к веб-интерфейсу. С большой долей вероятности он будет таким же, как и домен IPA.
Provide your IPA server name (ex: ipa.example.com): ipa.example.com
Имейте ввиду, что системы с избыточными серверами 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
Проверьте, чтобы все опции были верно заданы. После этого можно ответить утвердительно на вопрос:
Continue to configure the system with these values? [no]: yes
Теперь нам нужно будет указать имя администратора. Вы можете пользоваться учеткой по умолчанию, созданной при инсталляции сервера.
User authorized to enroll computers: admin
Укажем пароль администратора сервиса IPA, заданный при настройке сервера FreeIPA. Клиент FreeIPA начнет подготовку системы. На экране появится сообщение, если инсталляция завершена успешно:
Client configuration complete.
Зайдем в веб-интерфейс IPA с помощью:
https://ipa.example.com
Войдем в ранее использовавшуюся учетку IPA. На дисплее высветится экран Active Users. теперь нужно открыть вкладку Hosts. На экране появится информация о клиенте и сервере IPA. Чтобы увидеть информацию о хосте, кликните по записи клиента IPA. На экране появятся данные о машине клиента. Вы также сможете управлять ролями и группами компьютера. Помните, что по умолчанию, все пользователи IPA в домене IPA могут коннектиться ко всем машинам.
Попробуем войти в систему с локального терминала как пользователь IPA. Наберите в консоли:
ssh admin@ipa-client.example.com
Если подключение можно создать, то все прошло нормально. Можете спокойно его удалять.
Чтобы это сделать, не придется менять клиентские конфигурационные файлы. В пользовательском интерфейсе IPA вы сможете настроить доступ sudo. Сервис FreeIPA дает возможность определить, какие группы или пользователи могут иметь доступ к sudo. Получится также разграничить доступы к командам.
Зададим простое правило, с помощью которого группа admin будет иметь доступ к sudo на всех компьютерах. В FreeIPA по умолчанию существует группа admin. Откроем интерфейс IPA, чтобы зайти в Services → sudo. После этого вы увидите выпадающее меню. Нужно будет выбрать Sudo Rules, нажать Add, после чего ввести в поле Rule Name название правила. Имейте ввиду, что по умолчанию применяется Admin. После этого нужно кликнуть по Add and edit, чтобы увидеть все доступные опции правила.
В разделе User groups и Who нужно будет кликнуть по +add, а потом выбрать группу Admin, после чего нажать кнопку со стрелкой. Это необходимо для перемещения в Prospective в Availiable. Для добавления группы нажимаем Add.
Обратите внимание на раздел Access this host, в котором нужно будет выбрать Any host. Кроме того, нужно будет указать Any Command в графе Run Commands. Еще нам придется задать опцию Anyone and Any Group в As Whom, чтобы получить возможность ограничивать доступ к sudo, а также список команд, запускающийся посредством sudo. Теперь можно сохранить настройки кликнув по Save.
Правило вступит в силу через некоторое время. Имейте ввиду, что также может потребоваться перезапуск на IPA-клиенте сервиса sshd. Для этого наберите в командной строке:
systemctl restart sshd.service
Нам нужно будет убедиться, что заданное правило функционирует так, как нужно. Для этого придется подключиться с помощью администратора IPA к клиенту на локальной машине. Данный пользователь в группу admin включен по умолчанию. Нам потребуется набрать:
ssh admin@ipa-client.example.com
Запустим интерактивную командную строку sudo:
sudo -i
Мы увидим, что командная строка поменялась:
root@ipa-client
Для возврата в традиционную командную строку, нужно набрать:
exit
Перезапустите машину, если доступ к sudo получить не удалось. Теперь вы знаете, как настраивать доступ пользователей и групп к системе посредством командной строки IPA либо веб-интерфейса. FreeIPA является отличным универсальным инструментом для проверки подлинности, который имеет расширенный функционал.
Опубликовано: Июль 3, 2017