Pokud jste správce systému a přemýšlíte, jak přidat linuxový desktop a server do svého aktuálního Linux Active Directory (AD), pak jste na správném místě. Přidání nových klientů do AD zjednodušuje správu uživatelů mezi více klientskými počítači, zvláště když ve svém prostředí spravujete stovky počítačů.
V tomto tutoriálu se dozvíte, jak přidat systémy Linux (Ubuntu 20.04, Linux Mint a Ubuntu Server) do Linux Samba Active Directory. To umožní uživatelům Samba Active Directory přihlásit se na klientský počítač Linux s vlastním domovským adresářem, výchozím prostředím a právy sudo root (je-li potřeba).
Připraveni? Skočte rovnou dovnitř!
Předpoklady
Tento tutoriál bude praktickou ukázkou. Pokud chcete pokračovat, ujistěte se, že splňujete následující požadavky:
- Linux Desktop Machine – Tento výukový program používá Ubuntu 20.04 Desktop, ale můžete použít i jiné distribuce, jako je Linux Mint a Ubuntu Server.
- Uživatel bez oprávnění root s
sudo
privilegia. - Plně funkční Samba Active Directory (AD).
Nastavení trvalého DNS Resolver
Než budete moci přidat klienty Linux do Samba Active Directory, musíte zajistit, aby název domény Samba Active Directory byl dostupný z klientského počítače. Jak? Nastavením adresy IP Samba AD jako výchozího překladače DNS pro každý klientský počítač v /etc/resolv.conf
konfigurační soubor.
1. Otevřete terminál a spusťte systemctl
příkazem níže deaktivujete a zastavíte systemd-resolved
servis. Tím zajistíte, že klient Linux používá statický a trvalý DNS resolver.
Toto trvalé řešení DNS definuje administrátor a není nahrazeno žádnou třetí službou, jako je systemd-resolved
.
# disable and stop systemd-resolved service
sudo systemctl disable --now systemd-resolved
2. Dále spusťte unlink
příkaz níže k odstranění souboru symbolického odkazu (/etc/resolv.conf
). Tento soubor nahradíte v dalším kroku. # remove symlink file /etc/resolv.conf sudo unlink /etc/resolv.conf
# remove symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf
3. Nyní vytvořte nový soubor s názvem /etc/resolv.conf
pomocí preferovaného editoru a naplňte soubor s následující konfigurací.
Níže uvedená konfigurace nastavuje hlavní a záložní DNS resolvery.
# Samba AD as main DNS resolver
nameserver 172.16.1.10
# fall-back DNS resolver using Cloudflare
nameserver 1.1.1.1
# hostname lookup for domain example.lan
search example.lan
4. Spusťte chattr
pomocí níže uvedených příkazů vytvoříte soubor /etc/resolv.conf
neměnný, aby bylo zajištěno, že klientské počítače vždy používají Samba AD jako výchozí překladač DNS. Tyto příkazy také zabraňují přepsání z jiných služeb, jako je NetworkManager.
# making the file `/etc/resolv.conf` immutable
sudo chattr +i /etc/resolv.conf
# remove immutable attribute
sudo chattr -i /etc/resolv.conf
5. Nakonec spusťte ping
příkazy níže k ověření připojení k doménám Samba AD dc1.example.lan
a example.lan
.
# ping to AD server dc1.example.an and example.lan
ping -c3 dc1.example.lan
ping -c3 example.lan
Pokud je připojení úspěšné, obdržíte zprávu s odpovědí ze serveru AD a domény dc1.example.lan
a example.lan
bude převedena na IP adresu Samba AD.
Nastavení Chrony jako klienta NTP
Poté, co nakonfigurujete DNS resolver, nyní nastavíte Chrony pro synchronizaci času mezi klientským počítačem a serverem Samba AD. Pokud existuje časový rozdíl (maximálně pět minut) mezi klientským počítačem a serverem AD, klient nemůže přistupovat ke všem prostředkům na serveru AD.
1. Spuštěním níže uvedeného příkazu nainstalujte chrony
svým linuxovým klientům.
# install chrony
sudo apt install chrony -y
2. Nyní upravte výchozí konfiguraci Chrony (/etc/chrony/chrony.conf
) ve vašem preferovaném editoru a přidejte následující konfiguraci.
bindcmdaddress
hodnota musí být IP adresa klienta. Na této IP adrese bude spuštěna služba Chrony. Zatímco server
možnost je místo, kde přidáte název své domény Samba AD jako server NTP.
# run Chrony as NTP client on the IP address
bindcmdaddress 172.16.1.85
# time synchronize to the Samba AD dc1.example.lan
server dc1.example.lan iburst
3. Dále spusťte systemctl
pomocí níže uvedených příkazů restartujte chronyd
a ověřte, že stav služby je active (running)
. # restart chronyd service sudo systemctl restart chronyd # verify status chronyd service sudo systemctl status chronyd
# restart chronyd service
sudo systemctl restart chronyd
# verify status chronyd service
sudo systemctl status chronyd
Jak můžete vidět níže, chronyd
služba je active (running)
a enabled
. Klient Chrony NTP se nyní spustí automaticky při startu systému.
4. Nakonec spusťte níže uvedený příkaz a ověřte, zda je služba Chrony na klientském počítači připojena k serveru Samba AD NTP. chronyc tracking
chronyc tracking
Jak můžete vidět níže, služba Chrony na klientovi Linux je připojena k serveru Samba AD NTP s adresou IP 172.16.1.10 .
Připojení linuxových klientů k Samba Active Directory
Nyní jste nakonfigurovali Chrony na klientovi Linux. Ale jak přidáte tento klientský počítač do Samba Active Directory? Začněte instalací a konfigurací realmd
a sssd
služby pro přidání linuxových klientů na server Samba AD.
1. Spusťte apt
příkaz níže k aktualizaci indexu balíčku. Tento příkaz zajistí, že instalujete nejnovější verzi balíčků z úložiště.
sudo apt update
Poté spusťte níže uvedený příkaz a nainstalujte realmd
a sssd
služby se všemi potřebnými doplňkovými balíčky. realmd
se používá se základními službami Linuxu, jako je sssd
, připojit se ke službě Samba Active Directory.
sudo apt install -y realmd sssd sssd-tools samba-common krb5-user packagekit samba-common-bin samba-libs adcli
Zadejte výchozí sféru (velkými písmeny) pro Samba Active Directory, jak je uvedeno níže. Tuto výchozí sféru použijete pro ověřování Kerberos.
V tomto příkladu je výchozí doména sféry pro Samba AD EXAMPLE.LAN .
3. Vytvořte nový soubor /etc/realmd.conf
pomocí preferovaného editoru a přidejte následující konfiguraci. Níže uvedená konfigurace provádí následující:
- Ovládá chování domény Samba AD a uživatelů
- Určuje připojení klienta k serveru AD
- Určuje, zda použít automatickou instalaci doplňkových služeb či nikoli.
- Konkrétní konfigurace pro
example.lan
AD doména.
[users]
# define Samba AD users behavior
# define default home directory and shell for Samba AD users
default-home = /home/%U
default-shell = /bin/bash
[active-directory]
# define realmd connection to the Samba AD
# you can use `sssd` or `winbind` for realmd to join Samba AD
# os-name can used as an identifier for client
default-client = sssd
os-name = Linux Ubuntu and Mint Desktop
[service]
# disable automati install for additional realmd service
automatic-install = no
[example.lan]
# define behavior of Samba AD `example.lan`
# disable fully-qualified-names so you can use a username to identify Samba users
# automatic-id-mapping to yes will automatically generate UID and GID numbers
# user-principal to yes will automatically create UserPrincipalName for the client machine
# manage-system to yes to enabled realmd to manage client machine
fully-qualified-names = no
automatic-id-mapping = yes
user-principal = yes
manage-system = yes
Spusťte kinit
níže uvedený příkaz k ověření připojení domény (EXAMPLE.LAN
) do služby Kerberos pomocí výchozího uživatele (administrator
).
Zadejte heslo pro administrator
Uživatel Samba AD po zobrazení výzvy, jak je uvedeno níže.
Přidání nových klientů do Samba AD vyžaduje použití
administrator
uživatel.
# authenticate to Kerberos server on EXAMPLE.LAN using administrator
sudo kinit [email protected]
# verify authentication and print detailed Kerberos tickets for administrator user
sudo klist
5. Nyní spusťte realm join
příkaz níže pro přidání linuxových klientů do Samba AD (example.lan
). Nahraďte UbuntuMintDesktop
s jedinečným uživatelským hlavním jménem (UPN). Každý klient/stroj musí mít jiný UPN.
# joining/adding Linux Ubuntu/Mint to Samba AD example.lan
# --verbose to get full logs from the process
# --user-principal will automatically set the UserPrincipalName for this machine
# --unattended will run the realm command without prompting for a password prompt,
# because you've already authenticated through the Kerberos ticket
sudo realm join --verbose example.lan --user-principal=UbuntuMintDesktop/[email protected] --unattended
Získáte Úspěšně zaregistrovaný stroj do sféry po dokončení procesu. V tomto okamžiku jste úspěšně přidali svého linuxového klienta do Samba Active Directory.
6. Dále otevřete /etc/sssd/sssd.conf
konfigurační soubor ve vašem preferovaném editoru.
Přidejte následující řádek, který změní výchozí řízení přístupu objektu zásad skupiny (GPO) na permissive
a nastavte hodnotu access_provider
na ad
. ad
hodnota označuje výchozí ověření pro sssd
služba je Active Directory.
Během tohoto psaní neumožní Ubuntu 20.04 Desktop i Server uživatelům AD přihlásit se, když
ad_gpo_access_control
je nastavena naenforcing
(výchozí hodnota). Takže změnítead_gpo_access_control
hodnotu napermissive
.Ale v Linux Mint se stále můžete přihlásit pomocí uživatelů AD, i když
ad_gpo_access_control
je naenforcing
režimu.
# change default GPO access control to permissive
ad_gpo_access_control = permissive
7. Spusťte pam-auth-update
příkaz níže pro úpravu konfigurace PAM. Tento příkaz aktivuje modul PAM (pam_mkhomedir.so ). Povolením modulu PAM se automaticky vytvoří domovský adresář pro uživatele Samba AD (pouze v případě, že domovský adresář není dostupný).
# modify PAM configuration
pam-auth-update
Vyberte možnost Vytvořit domovský adresář při přihlášení na obrazovce terminálu a vyberte OK pro potvrzení.
Stisknutím klávesy MEZERNÍK povolte možnost a stisknutím klávesy TAB přesuňte nabídku kurzoru.
8. Spusťte realm list
níže, abyste ověřili své připojení k Samba Active Directory.
# Checking connected AD
realm list
Pokud je vaše připojení úspěšné, obdržíte podrobné AD připojení, jak je uvedeno níže.
Níže můžete vidět, že stolní počítač Ubuntu/Mint je připojen k Samba Active Directory (example.lan ) jako (člen kerberos ).
9. Nyní spusťte id
níže pro kontrolu uživatele Samba AD.
# checking Samba AD user `alice`
id alice
Pokud bude instalace úspěšná, obdržíte náhodně uid
a gid
pro uživatele Samby alice
. V tomto příkladu můžete vidět uživatele alice je vytvořen a dostupný na Samba AD.
10. Dále spusťte následující příkazy pro nastavení výchozího textového editoru a otevření (visudo
) /etc/sudoers
soubor ve vašem výchozím editoru. Upřednostňovaný textový editor můžete kdykoli změnit, ale výchozí editor je nano
pro toto demo.
# Sets default editor to nano
export EDITOR=nano
# Opens the /etc/sudoers file in the default editor
visudo
Přidejte svého uživatele Samba AD do sudoers
soubor v následujícím formátu, uložte změny a zavřete editor. To vám umožní povolit sudo
oprávnění pro uživatele Samby (pokud potřebujete, aby uživatel spouštěl sudo).
# add Samba user `alice` to sudoers
alice ALL=(ALL:ALL) ALL
11. Nakonec spusťte následující příkaz na ploše Ubuntu na reboot
systém použít nové konfigurace.
Ale pro Linux Mint a server Ubuntu budete muset přidat další konfiguraci, která je popsána v následující části.
sudo reboot
Nastavení LightDM pro Samba Active Directory
Výchozí konfigurace LightDM pro proces ručního přihlášení pomocí uživatelského jména a hesla je na ploše Linux Mint zakázána. Změníte konfiguraci LightDM, abyste povolili proces ručního přihlášení, aby se uživatelé Samba AD mohli přihlásit k počítači Mint Desktop.
Otevřete LightDM (/etc/lightdm/lightdm.conf ) konfigurační soubor ve vašem preferovaném editoru a vyplňte následující konfiguraci pod [Seat:*]
sekce.
greeter-show-manual-login=true
možnost níže umožňuje proces ručního přihlášení na LightDM, zatímco allow-guest=false
možnost zakáže přihlášení pro uživatele typu host.
# enable manual login
greeter-show-manual-login=true
# disable guest login
allow-guest=false
Nyní spusťte níže uvedený příkaz a restartujte plochu Linux Mint a použijte nové konfigurace.
sudo reboot
Nastavení ověřování Kerberos pro službu SSH
Musíte povolit ověřování Kerberos na službě SSH v prostředí serveru. Tím umožníte uživateli AD přihlásit se k serveru. Jak? Úpravou konfiguračního souboru SSH.
Otevřete SSH (/etc/ssh/sshd_config
) konfigurační soubor ve vašem preferovaném editoru.
Odkomentujte následující možnosti a nastavte jejich hodnoty na yes
:
KerberosAuthentication
– Povolí ověřování Kerberos.KerberosTicketCleanup
– Automaticky zničí lístky Kerberos při odhlášení
Nyní spusťte níže uvedený příkaz a restartujte server a použijte nové konfigurace.
sudo reboot
Přihlášení do počítačů Linux pomocí uživatelů Samba AD
Nyní jste dokončili a přidali linuxové klienty do Samba AD. Ale jak můžete ověřit, že se uživatelé Samba AD mohou přihlásit k těmto linuxovým klientům? Uživatele a heslo můžete zadat na přihlašovací obrazovce Display Manager na klientech Linux Desktop. V případě serveru Ubuntu se můžete připojit prostřednictvím zabezpečeného protokolu SSH.
Přihlášení k serveru Ubuntu, Mint a Ubuntu vypadá odlišně. Ale žádný strach, v této ukázce uvidíte, jak se přihlásit ke každému OS pomocí uživatelů Samba AD.
Přihlášení do Linuxu Ubuntu Desktop
S Linuxem Ubuntu Desktop je přihlašování pomocí uživatelů Samba AD stejné, jako se obvykle přihlašujete pomocí uživatelského účtu.
1. Spusťte svého desktopového klienta Ubuntu a klikněte na Není v seznamu? možnost na přihlašovací obrazovce Ubuntu GDM pro přihlášení s jiným uživatelem.
2. Dále zadejte svého uživatele Samba AD do [email protected]
formát. Tento příklad používá uživatele Samba AD alice(example.lan) , Jak je ukázáno níže.
3. Zadejte heslo uživatele Samba AD (alice) a stiskněte ENTER pro přihlášení.
Po přihlášení uvidíte výchozí plochu Ubuntu jako snímek obrazovky níže, kde je uživatel Samba AD alice
je úspěšně přihlášen.
Níže můžete vidět, že modul PAM (pam_mkhomedir.so.
) automaticky vytvořil domovský adresář uživatele. Zatímco oprávnění sudo root se konfigurují prostřednictvím souboru sudoers
.
Přihlášení do Linux Mint Desktop
Na ploše Linux Mint vypadá přihlašování trochu jinak, než jak se přihlašujete na ploše Ubuntu,
Klikněte na tlačítko Přihlásit se, zadejte své uživatele a heslo, jak je uvedeno níže, a poté se přihlaste stisknutím klávesy ENTER.
Nyní uvidíte plochu Linux Mint pro uživatele Samba AD, jako je ta níže.
Přihlášení k serveru Ubuntu
Na rozdíl od prvních dvou operačních systémů se budete k serveru Ubuntu přihlašovat prostřednictvím prostředí příkazového řádku pomocí ssh
příkaz.
Spusťte ssh
příkaz níže z jiného počítače pro připojení k serveru pomocí uživatele Samba AD podle [email protected]_ip
formát, jak je uvedeno níže.
# connect to SSH using AD user
ssh [email protected]
Zadejte yes
přidat identitu otisku serveru a zadat heslo pro uživatele Samba AD na server Ubuntu.
Jak vidíte níže, domovský adresář uživatele se vytvoří automaticky a výchozí prostředí pro uživatele Samba AD je Bash.
Závěr
V tomto tutoriálu jste se naučili, jak přidat linuxové klienty (Desktop a Server) do Samba Active Directory (AD) pomocí SSSD a služby Realm. Také jste se naučili povolit ověřování Kerberos ve službě SSH pro server Linux.
Jak byste nyní využili funkčnost Samba Active Directory? Možná zkuste přidat další server jako řadič domény (DC), abyste se připojili k aktuální Samba AD? Toto nastavení poskytuje podporu replikace, redundance a vyvažování zátěže na vašem AD. V důsledku toho můžete do Samba AD přidat další skupinu klientů.