Настройка SSH на CentOS с аутентификацией через Active Directory
Используемые термины: SSH, Active Directory, CentOS.
Мы рассмотрим простые примеры команд, которые позволят настроить аутентификацию пользователей Active Directory на Linux для входа по SSH. Данная инструкция подойдет для CentOS версий 7 и 8.
Подготовка сервера
Обновляем список пакетов:
yum update
Задаем имя компьютеру:
hostnamectl set-hostname mypc.domain.local
Устанавливаем часовой пояс (у меня московское время):
timedatectl set-timezone Europe/Moscow
Устанавливаем сервис для синхронизации времени и запускаем его:
yum install chrony
systemctl enable chronyd --now
Настройка аутентификации SSH через AD
Устанавливаем пакеты:
yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools
* где:
- realmd — сервис для автоматического поиска и конфигурирования AD.
- sssd — пакет программ, с помощью которого можно настраивать аутентификацию и авторизацию в системах на базе UNIX.
- oddjob — служба, которая принимает запросы по D-BUS (системная шина сообщений) на выполнение действий.
- oddjob-mkhomedir — в соответствии с названием, пакет позволяет отправить запрос на создание домашнего каталога пользователя.
- adcli — утилита для ввода компьютера в домен.
- samba-common и samba-common-tools — набор пакетов для выполнения запросов к файлам и принтерам клиентов Microsoft Windows.
Сканируем наш домен:
realm discover DOMAIN.LOCAL
Вводим компьютер в домен:
realm join -U username DOMAIN.LOCAL
* DOMAIN.LOCAL — ваш домен.
** username — имя учетной записи с правом вводить компьютер в домен.
Настраиваем sssd для возможности вводить логин без префикса домена:
vi /etc/sssd/sssd.conf
...
use_fully_qualified_names = False
...
Разрешаем создавать домашние директории новым пользователям:
authconfig --enablemkhomedir --enablesssdauth --updateall
Запускаем сервис sssd:
systemctl enable sssd.service
systemctl restart sssd
Готово. Пробуем зайти по SSH под доменной учетной записью.
Аутентификация по группам AD
Мы настроили возможность авторизовываться в системе для любого пользователя в Active Directory. Попробуем ограничить доступ с помощью групп безопасности.
Мы можем задать настройки в конфигурационном файле:
vi /etc/sssd/sssd.conf
simple_allow_groups = Domain Admins@domain.local
* где в данном примере предоставлен доступ все пользователям группы Domain Admins.
После внесения изменений нужно перезагрузить сервис sssd:
systemctl restart sssd
Также мы можем управлять настройками командами.
Сначала очистим доступ:
realm deny -a
Теперь дадим разрешение для 3-х групп:
realm permit -g "Domain Admins"@domain.local
realm permit -g "Тестовая группа"@domain.local
realm permit -g ssh@domain.local
* данные команды разрешают вход пользователям групп Domain Admins, Тестовая группа, ssh.