Chapter 2. Connecting RHEL systems directly to AD using Samba Winbind
To connect a RHEL system to Active Directory (AD), use:
- Samba Winbind to interact with the AD identity and authentication source
-
realmd
to detect available domains and configure the underlying RHEL system services.
2.1. Overview of direct integration using Samba Winbind
Samba Winbind emulates a Windows client on a Linux system and communicates with AD servers.
You can use the realmd
service to configure Samba Winbind by:
- Configuring network authentication and domain membership in a standard way.
- Automatically discovering information about accessible domains and realms.
- Not requiring advanced configuration to join a domain or realm.
Note that:
- Direct integration with Winbind in a multi-forest AD setup requires bidirectional trusts.
-
Remote forests must trust the local forest to ensure that the
idmap_ad
plug-in handles remote forest users correctly.
Samba’s winbindd
service provides an interface for the Name Service Switch (NSS) and enables domain users to authenticate to AD when logging into the local system.
Using winbindd
provides the benefit that you can enhance the configuration to share directories and printers without installing additional software.
2.2. Connecting a RHEL system directly to AD using Samba Windbind
Samba Winbind is an alternative to the System Security Services Daemon (SSSD) for connecting a Red Hat Enterprise Linux (RHEL) system with Active Directory (AD). You can join a RHEL system to an AD domain by using realmd
to configure Samba Winbind.
Procedure
Install the following packages:
dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients \ samba-winbind samba-common-tools samba-winbind-krb5-locator krb5-workstation
# dnf install realmd oddjob-mkhomedir oddjob samba-winbind-clients \ samba-winbind samba-common-tools samba-winbind-krb5-locator krb5-workstation
Copy to Clipboard Copied! To share directories or printers on the domain member, install the
samba
package:dnf install samba
# dnf install samba
Copy to Clipboard Copied! Backup the existing
/etc/samba/smb.conf
Samba configuration file:mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Copy to Clipboard Copied! Join the domain. For example, to join a domain named
ad.example.com
:realm join --membership-software=samba --client-software=winbind ad.example.com
# realm join --membership-software=samba --client-software=winbind ad.example.com
Copy to Clipboard Copied! Using the previous command, the
realm
utility automatically:-
Creates a
/etc/samba/smb.conf
file for a membership in thead.example.com
domain -
Adds the
winbind
module for user and group lookups to the/etc/nsswitch.conf
file -
Updates the Pluggable Authentication Module (PAM) configuration files in the
/etc/pam.d/
directory -
Starts the
winbind
service and enables the service to start when the system boots
-
Creates a
Optional: Set an alternative ID mapping back end or customized ID mapping settings in the
/etc/samba/smb.conf
file.For details, see Understanding and configuring Samba ID mapping.
Edit the
/etc/krb5.conf
file and add the following section:[plugins] localauth = { module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so enable_only = winbind }
[plugins] localauth = { module = winbind:/usr/lib64/samba/krb5/winbind_krb5_localauth.so enable_only = winbind }
Copy to Clipboard Copied! Verify that the
winbind
service is running:systemctl status winbind
# systemctl status winbind ... Active: active (running) since Tue 2018-11-06 19:10:40 CET; 15s ago
Copy to Clipboard Copied! ImportantTo enable Samba to query domain user and group information, the
winbind
service must be running before you startsmb
.If you installed the
samba
package to share directories and printers, enable and start thesmb
service:systemctl enable --now smb
# systemctl enable --now smb
Copy to Clipboard Copied!
Verification
Display an AD user’s details, such as the AD administrator account in the AD domain:
getent passwd "AD\administrator"
# getent passwd "AD\administrator" AD\administrator:*:10000:10000::/home/administrator@AD:/bin/bash
Copy to Clipboard Copied! Query the members of the domain users group in the AD domain:
getent group "AD\Domain Users"
# getent group "AD\Domain Users" AD\domain users:x:10000:user1,user2
Copy to Clipboard Copied! Optional: Verify that you can use domain users and groups when you set permissions on files and directories. For example, to set the owner of the
/srv/samba/example.txt
file toAD\administrator
and the group toAD\Domain Users
:chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txt
# chown "AD\administrator":"AD\Domain Users" /srv/samba/example.txt
Copy to Clipboard Copied! Verify that Kerberos authentication works as expected:
On the AD domain member, obtain a ticket for the
administrator@AD.EXAMPLE.COM
principal:kinit administrator@AD.EXAMPLE.COM
# kinit administrator@AD.EXAMPLE.COM
Copy to Clipboard Copied! Display the cached Kerberos ticket:
klist
# klist Ticket cache: KCM:0 Default principal: administrator@AD.EXAMPLE.COM Valid starting Expires Service principal 01.11.2018 10:00:00 01.11.2018 20:00:00 krbtgt/AD.EXAMPLE.COM@AD.EXAMPLE.COM renew until 08.11.2018 05:00:00
Copy to Clipboard Copied!
Display the available domains:
wbinfo --all-domains
# wbinfo --all-domains BUILTIN SAMBA-SERVER AD
Copy to Clipboard Copied!