ввести в домен Active Directory (AD) линукс CentOS 8 / RHEL 8

Thank you for reading this post, don't forget to subscribe! 

Шаг 1. Установите необходимые пакеты

Для инте­гра­ции CentOS 8 / RHEL 8 AD тре­бу­ет­ся ряд паке­тов. Уста­но­ви­те их в сво­ей систе­ме, выпол­нив сле­ду­ю­щие команды:

sudo dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation authselect-compat

На новом ком­пью­те­ре с RHEL 8 вам необ­хо­ди­мо заре­ги­стри­ро­вать его для уста­нов­ки пакетов.

$ sudo subscription-manager register
Registering to: subscription.rhsm.redhat.com:443/subscription
Username:
Password:
The system has been registered with ID: d39d60a7-3236-4287-b361-53264159f5d1
The registered system name is: master.example.com

$ sudo subscription-manager attach --auto
Installed Product Current Status:
Product Name: Red Hat Enterprise Linux for x86_64
Status: Subscribed

Шаг 2. Обнаружение домена Active Directory в CentOS 8 / RHEL 8

Перед выпол­не­ни­ем инте­гра­ции AD убе­ди­тесь, что ком­пью­тер CentOS / RHEL 8 может раз­ре­шить и обна­ру­жить домен AD.

Про­верь­те настрой­ки DNS.

$ cat /etc/resolv.conf

Убе­ди­тесь, что обна­ру­же­ние доме­на AD про­шло успешно.

$ realm discover example.com

example.com
type: kerberos
realm-name: EXAMPLE.COM
domain-name: example.com
configured: no
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools

Шаг 3. Присоединитесь к Linux-машине CentOS 8 / RHEL 8 в домене Active Directory.

Учет­ная запись адми­ни­стра­то­ра AD тре­бу­ет­ся для инте­гра­ции ком­пью­те­ра CentOS 8 / RHEL 8 с доме­ном Windows Active Directory.

Убе­ди­тесь, что у вас есть имя поль­зо­ва­те­ля и пароль адми­ни­стра­то­ра. Затем выпол­ни­те при­ве­ден­ную ниже коман­ду, что­бы при­со­еди­нить систе­му CentOS 8 / RHEL 8 Linux к доме­ну Active Directory.

$ realm join example.com -U Administrator
Password for Administrator:

Заме­ни­те Administrator на свою учет­ную запись адми­ни­стра­то­ра AD и вве­ди­те пароль, когда его попро­сят. Про­верь­те, что­бы соеди­не­ние было успешным.

$ sudo realm list
example.com
type: kerberos
realm-name: EXAMPLE.COM
domain-name: example.com
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
login-formats: %U@example.com
login-policy: allow-realm-logins

Как толь­ко маши­на будет при­со­еди­не­на, выпол­ни­те при­ве­ден­ные ниже команды.

sudo authselect select sssd
sudo authselect select sssd with-mkhomedir

Ваш файл кон­фи­гу­ра­ции sssd.conf дол­жен выгля­деть, как пока­за­но ниже

$ cat /etc/sssd/sssd.conf

Когда в кон­фи­гу­ра­ци­он­ный файл вно­сят­ся изме­не­ния, тре­бу­ет­ся пере­за­пуск службы.

sudo systemctl restart sssd

Ста­тус дол­жен быть запущен.

 

Если инте­гра­ция рабо­та­ет, долж­на быть воз­мож­ность полу­чить инфор­ма­цию о поль­зо­ва­те­ле AD.

$ id jmutai@example.com
uid=1783929917(jmutai@example.com) gid=1784800513(domain users@example.com) groups=1783870513(domain users@example.com)

Шаг 4. Контроль доступа — ограничение для пользователя / группы

Доступ к заре­ги­стри­ро­ван­но­му сер­ве­ру мож­но огра­ни­чить, раз­ре­шив толь­ко опре­де­лен­ным поль­зо­ва­те­лям / группам.

Огра­ни­че­ние для пользователей

Что­бы раз­ре­шить поль­зо­ва­те­лю доступ через SSH и кон­соль, исполь­зуй­те команду:

$ realm permit user1@example.com
$ realm permit user2@example.com user3@example.com

Раз­ре­шить доступ к груп­пе — Примеры

$ ream permit -g sysadmins
$ realm permit -g 'Security Users'
$ realm permit 'Domain Users' 'admin users'

Это изме­нит файл sssd.conf

Если вме­сто это­го вы хоти­те раз­ре­шить доступ всем поль­зо­ва­те­лям, запустите:

$ sudo realm permit --all

Что­бы запре­тить доступ всем поль­зо­ва­те­лям доме­на, используйте:

$ sudo realm deny --all

Шаг 5. Настройте доступ Sudo

По умол­ча­нию у поль­зо­ва­те­лей доме­на не будет раз­ре­ше­ния на повы­ше­ние при­ви­ле­гий до root. Поль­зо­ва­те­лям дол­жен быть предо­став­лен доступ на осно­ве имен поль­зо­ва­те­лей или групп.

Давай­те сна­ча­ла созда­дим файл раз­ре­ше­ний sudo.

$ sudo vi /etc/sudoers.d/domain_admins

Доба­вить одно­го пользователя:

user1@example.com ALL=(ALL) ALL

Доба­вить еще одно­го пользователя:

user1@example.com ALL=(ALL) ALL
user2@example.com ALL=(ALL) ALL

Доба­вить группу

%group1@example.com ALL=(ALL) ALL

Доба­вить груп­пу с про­бе­ла­ми в имени

%security\ users@example.com ALL=(ALL) ALL
%system\ super\ admins@example.com ALL=(ALL) ALL

Шаг 6. Проверьте доступ по SSH.

Полу­чи­те доступ к сер­ве­ру уда­лен­но, посколь­ку поль­зо­ва­те­лю AD раз­ре­ше­но вхо­дить в систему.

$ ssh jmutai@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:wmWcLi/lijm4zWbQ/Uf6uLMYzM7g1AnBwxzooqpB5CU.
ECDSA key fingerprint is MD5:10:0c:cb:22:fd:28:34:c6:3e:d7:68:15:02:f9:b4:e9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

Это под­твер­жде­ние того, что наша кон­фи­гу­ра­ция про­шла успешно.