Potřebujete centralizovanou správu domén pro své sítě, ale nechcete používat Windows Server a platit dodatečné licenční náklady? Samba Active Directory je jednou z nejlepších a bezplatných alternativ, které můžete v Linuxu vyzkoušet.
Samba je open-source řešení známé především pro svůj síťový souborový server a tiskové služby. Ale od verze 4.0 vám Samba umožňuje zřídit roli serveru Active Directory.
Tento tutoriál vás naučí, jak nainstalovat a nakonfigurovat Samba Active Directory na Ubuntu 20.04. Připravte se a skočte do toho!
Předpoklady
Tento příspěvek je praktickou ukázkou. Pokud chcete pokračovat, budete potřebovat následující požadavky.
- Server Ubuntu 20.04. V tomto kurzu bude název serveru
dc1
, doména budeexample.com
a IP adresa je172.16.1.10
. - Uživatelský účet s právy sudo.
- Počítač se systémem Windows 10 ve stejné síti jako server Ubuntu.
Nastavení názvu hostitele serveru
Prvním krokem je nastavení identity serveru v síti. Chcete-li tak učinit, budete muset serveru přiřadit název hostitele a plně kvalifikovaný název domény (FQDN) podle následujících kroků.
1. Nejprve se přihlaste ke svému serveru Ubuntu a otevřete terminálovou relaci.
2. Dále spusťte hostnamectl
příkaz níže pro změnu názvu hostitele vašeho serveru. Níže uvedený příkaz změní název hostitele na dc1
.
# set up the hostname
hostnamectl set-hostname dc1
3. Nyní otevřete /etc/hosts
soubor pro úpravy pomocí preferovaného editoru, jako je nano
. Do souboru přidejte položku určující IP adresu serveru , FQDN a název hostitele v tomto formátu – server-IP hostname.domain.com hostname
.
V tomto příkladu je položka souboru hosts:# setup FQDN dc1.example.lan 172.16.1.10 dc1.example.lan dc1
# setup FQDN dc1.example.lan
172.16.1.10 dc1.example.lan dc1
Po přidání nového záznamu uložte a ukončete soubor.
4. Nakonec spusťte níže uvedený příkaz a ověřte FQDN serveru Samba. # verify FQDN hostname -f # verify FQDN is resolved to the Samba IP address ping -c3 dc1.example.lan
# verify FQDN
hostname -f
# verify FQDN is resolved to the Samba IP address
ping -c3 dc1.example.lan
Jak můžete vidět níže, FQDN serveru Samba je dc1.example.lan
, což znamená 172.16.1.10
.
Deaktivace nástroje DNS Resolver
systemd-resolved
služba řídí konfiguraci DNS na serveru Ubuntu, což není vhodné pro Samba Active Directory. Chcete-li nastavit Samba Active Directory, musíte nejprve deaktivovat systemd-resolved
servis a nahraďte /etc/resolv.conf
konfigurační soubor.
- Spuštěním následujících příkazů deaktivujte a zastavte
systemd-resolved
službu a odstraňte symbolický odkaz na soubor/etc/resolv.conf
, v pořádku.
# stop and disable systemd-resolved service
sudo systemctl disable --now systemd-resolved
# remove the symlink file /etc/resolv.conf
sudo unlink /etc/resolv.conf
2. Dále vytvořte nový /etc/resolv.conf
soubor.
# create a new /etc/resolv.conf file
touch /etc/resolv.conf
3. Otevřete /etc/resolv.conf
pomocí preferovaného editoru a definujte DNS resolver pomocí konfigurace níže. Nezapomeňte uvést IP adresu serveru Samba na začátek řádku. Uložte soubor a po úpravách ukončete.
# Samba server IP address
nameserver 172.16.1.10
# fallback resolver
nameserver 1.1.1.1
# main domain for Samba
search example.lan
4. Nakonec spusťte následující příkaz a vytvořte soubor /etc/resolv.conf
soubor neměnný. Tento krok zajišťuje, že se resolver z jakéhokoli důvodu nevědomky nezmění.
# add attribute immutable to the file /etc/resolv.conf
sudo chattr +i /etc/resolv.conf
Instalace Samby
Po nastavení FQDN a konfiguraci rozlišení názvů nainstalujete Sambu do svého systému a povolíte službu Samba Active Directory. V době psaní tohoto článku poskytuje oficiální úložiště Ubuntu Sambu v4.13.
1. Spusťte apt
příkaz níže pro obnovení indexu balíčků serveru Ubuntu.
sudo apt update
2. Nyní spusťte níže uvedený příkaz a nainstalujte Sambu se všemi balíčky a závislostmi.
sudo apt install -y acl attr samba samba-dsdb-modules samba-vfs-modules smbclient winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user dnsutils chrony net-tools
3. Zadejte výchozí název domény sféry velkými písmeny. V tomto příkladu je FQDN dc1.example.lan
, takže výchozí název domény sféry by měl být EXAMPLE.LAN
. Zvýrazněte OK a stiskněte Enter.
4. Na další výzvu zadejte FQDN serveru. Tento krok definuje výchozí server Kerberos. Zvýrazněte OK a stiskněte Enter.
5. Dále zadejte FQDN serveru znovu, abyste určili administrativní server Kerberos. Zvýrazněte OK, a stisknutím klávesy Enter dokončete počáteční konfiguraci Samby.
6. Po instalaci Samby spusťte následující příkaz k zastavení a zakázání služeb, které server Samba Active Directory nevyžaduje smbd
, nmbd
a winbind
. Server potřebuje pouze samba-ac-dc
sloužit jako Active Directory a řadič domény.
# stop and disable samba services - smbd, nmbd, and winbind
sudo systemctl disable --now smbd nmbd winbind
7. Nakonec spusťte níže uvedené příkazy a aktivujte a povolte samba-ad-dc
servis.
# activate samba-ad-dc service
sudo systemctl unmask samba-ad-dc
# enable samba-ad-dc service
sudo systemctl enable samba-ad-dc
Konfigurace Samba Active Directory
Nyní jste na svůj systém nainstalovali Sambu. Existuje několik dalších kroků ke konfiguraci Samba Active Directory. Instalace Samby byla dodána s nástrojem příkazového řádku s názvem samba-tool
k poskytování Samba Active Directory.
1. Nejprve vytvořte zálohu /etc/samba/smb.conf
soubor pro dobrou míru. Tento soubor nahradí proces zřizování.
# backup default Samba configuration file
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
2. Nyní spusťte samba-tool
příkazem níže zahájíte poskytování Samba Active Directory.
# provisioning Samba Active Directory
sudo samba-tool domain provision
3. V Oblasti potvrďte výchozí hodnotu a stiskněte Enter.
4. V Doméně stiskněte znovu Enter pro přijetí výchozí hodnoty.
5. V Roli serveru ponechejte výchozí a stiskněte Enter.
6. Na základní části DNS ponechte hodnotu jako výchozí (SAMBA_INTERNAL
) a stiskněte Enter.
7. Dále zadejte další IP adresu DNS forwarderu . Tento příklad přidá Cloudflare DNS 1.1.1.1
jako DNS forwarder. Tato možnost je k dispozici pouze v případě, že používáte SAMBA_INTERNAL
Backend DNS.
8. Zadejte své heslo správce Samba Active Directory a stiskněte klávesu Enter.
Zřizování automaticky vytvoří nový konfigurační soubor Samba (/etc/samba/smb.conf
) a konfiguraci Kerberos (/var/lib/samba/private/krb5.conf
) soubor.
Po zřízení Samba Active Directory obdržíte výstup podobný níže uvedenému snímku obrazovky.
9. Nyní spusťte níže uvedené příkazy k zálohování výchozí konfigurace Kerberos a nahraďte ji souborem /var/lib/samba/private/krb5.conf
.
# rename default Kerberos configuration to krb5.conf.orig
sudo mv /etc/krb5.conf /etc/krb5.conf.orig
# copy the Kerberos configuration generated by the samba-tool
sudo cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
10. Nakonec spusťte systemctl
níže uvedené příkazy ke spuštění služby Samba Active Directory samba-ad-dc
a ověřte, že stav služby je active (running)
.
# start samba-ad-dc service
sudo systemctl start samba-ad-dc
# verify samba-ad-dc service
sudo systemctl status samba-ad-dc
samba-ad-dc
služba je active (running)
a enabled
, jak můžete vidět níže. Démon Samba AD se nyní spustí automaticky při startu systému.
Nastavení synchronizace času
Samba Active Directory závisí na protokolu Kerberos a protokol Kerberos vyžaduje, aby byly časy AD serveru a pracovní stanice synchronizovány. Chcete-li zajistit správnou synchronizaci času, budete muset nastavit Network Time Protocol (NTP) server na Sambě.
Výhody synchronizace času AD zahrnují útok opakovaného přehrávání prevence a řešení konfliktů replikace AD.
1. Spuštěním níže uvedených příkazů změňte výchozí oprávnění a vlastnictví adresáře /var/lib/samba/ntp_signd/ntp_signed
. Uživatel/skupina _chrony
musí mít oprávnění ke čtení ntp_signed
adresář.
# allow group _chrony to read the directory ntp_signd
sudo chown root:_chrony /var/lib/samba/ntp_signd/
# change the permission of the directory ntp_signd
sudo chmod 750 /var/lib/samba/ntp_signd/
2. Nyní otevřete konfigurační soubor /etc/chrony/chrony.conf
v textovém editoru a na konec souboru přidejte následující konfiguraci. Tato konfigurace povolí chrony NTP server a nasměruje umístění soketu NTP na /var/lib/samba/ntp_signd
. Uložte konfigurační soubor a ukončete editor.
# bind the chrony service to IP address of the Samba AD
bindcmdaddress 172.16.1.10
# allow clients on the network to connect to the Chrony NTP server
allow 172.16.1.0/24
# specify the ntpsigndsocket directory for the Samba AD
ntpsigndsocket /var/lib/samba/ntp_signd
3. Poté spusťte následující příkazy, abyste restartovali a ověřili chronyd
služba na serveru Samba AD.
# restart chronyd service
sudo systemctl restart chronyd
# verify chronyd service status
sudo systemctl status chronyd
Jak můžete vidět níže, chronyd
služba je enabled
a active (running)
. Ve spodní části chronyd
log zprávu, uvidíte zprávu MS-SNTP authentication is enabled
, který potvrzuje, že rozšíření ověřování NTP je funkční.
Ověření Samba Active Directory
Po instalaci byste měli ověřit konfiguraci Samby, abyste se ujistili, že to, co jste dosud dělali, funguje. Můžete tak učinit ověřením konfigurace Samba DNS, výchozí sdílené složky (souborový server) a testováním ověřování Kerberos.
1. Spusťte host
níže uvedené příkazy k ověření názvu domény AD example.lan
a dc1.example.lan
.
# verify domain example.lan
host -t A example.lan
# verify domain dc1.example.lan
host -t A dc1.example.lan
A výsledek by měl potvrdit, že oba záznamy hostitele ukazují na IP adresu serveru Samba 172.16.1.10
.
2. Dále ověřte, že _kerberos
a _ldap
servisní záznam oba ukazují na FQDN vašeho serveru Samba Active Directory.
# verify SRV record for _kerberos
host -t SRV _kerberos._udp.example.lan
# verify SRV record for _ldap
host -t SRV _ldap._tcp.example.lan
V tomto příkladu výstup níže potvrzuje, že obě SRV
záznamy se přeloží na dc1.example.lan
.
3. Dále spusťte smbclient
níže, abyste ověřili výchozí zdroje dostupné v Samba Active Directory.
# checking available resources on Samba AD
smbclient -L example.lan -N
Měli byste vidět, že výchozí sdílená složka v Samba Active Directory je sysvol
a netlogon
a výchozí dostupná služba je IPC$
.
4. Nakonec spusťte níže uvedený kinit
příkazy k ověření na serveru Kerberos pomocí uživatele Administrator
a ověřte lístky Kerberos uložené v mezipaměti ve vašem systému.
Poznámka:Část domény by měla být velká
e.
# authenticate to Kerberos using administrator
kinit [email protected]
# verify list cached Kerberos tickets
klist
Obdržíte výstup podobný níže uvedenému snímku obrazovky. Administrátorský lístek Kerberos je uložen v souboru /tmp/krb5cc_0
a vyprší za 41 dní.
Vytvoření nového uživatele Samba Active Directory
V tomto okamžiku jste dokončili konfiguraci Samba Active Directory. Ale jak víte, zatím zde nejsou žádní uživatelé. Nyní je čas vytvořit svůj první uživatelský účet Samba AD pomocí samba-tool
příkaz.
1. Spuštěním níže uvedeného příkazu vytvořte nového uživatele s názvem alice
, jehož heslo je alice_password88
.
# create a new user in Samba
sudo samba-tool user create alice alice_password88
2. Dále spusťte samba-tool
příkaz níže pro ověření dostupných uživatelů na Sambě.
# checking users on Samba
sudo samba-tool user list
Jak můžete vidět níže, nový uživatel alice
je k dispozici v adresáři Samba Active.
Připojení a přihlášení k doméně Samba Active Directory
Nyní, když jste vytvořili nového uživatele, zbývá připojit pracovní stanici k doméně Active Directory. Poté se můžete přihlásit k pracovní stanici pomocí uživatelských přihlašovacích údajů Samba AD.
1. Přihlaste se k počítači se systémem Windows a otevřete PowerShell jako správce.
2. Spuštěním níže uvedeného příkazu zobrazíte seznam dostupných ethernetových adaptérů na vašem počítači se systémem Windows.
# checking available interface using Powershell command
Get-NetAdapter -Name "*"
Na obrazovce PowerShellu můžete vidět různé výstupy. Tento příklad ukazuje jedno síťové rozhraní s názvem Ethernet Instance 0 2
.
3. Provedením následujícího příkazu změňte DNS server adaptéru na IP adresu Samba Active Directory s dalším záložním Cloudflare DNS 1.1.1.1
. Tímto krokem zajistíte, že vaše pracovní stanice používá k překladu názvů server Samba AD.
# setup DNS resolver using Powershell
Set-DNSClientServerAddress "Ethernet Instance 0 2" –ServerAddresses ("172.16.1.10","1.1.1.1")
4. Spusťte níže uvedený příkaz pro ověření vašeho DNS resolveru a ujistěte se, že váš počítač používá Samba AD server jako výchozí DNS resolver.
# verify DNS resolver
Get-DnsClientServerAddress
Obdržíte podobný výstup jako snímek obrazovky níže.
5. Nyní odešlete příkaz ping na název hostitele serveru a doménu.
# ping the AD domain dc1.example.lan
ping dc1.example.lan
# ping the AD domain example.lan
ping example.lan
Měli byste vidět odpověď ze serveru AD, jak je uvedeno níže. Potvrďte, že výsledek ukazuje na IP adresu serveru Samba AD.
6. Dále spusťte následující příkaz pro připojení pracovní stanice k doméně Samba Active Directory.
# add Windows 10 to Active Directory
Add-Computer -DomainName "example.lan" -Restart
7. Zadejte Samba AD administrator
uživatelské jméno a heslo, klikněte na OK. Počítač se automaticky restartuje jako součást procesu připojení k doméně.
8. Po restartování klikněte na Other users
na přihlašovací obrazovce. Zadejte uživatelské jméno a heslo služby Active Directory uživatele Samba AD, kterého jste dříve vytvořili ([email protected]
) a stisknutím klávesy Enter se přihlaste.
9. Po úspěšném přihlášení otevřete okno PowerShellu a spusťte nebo oba níže uvedené příkazy ověřte aktuálně přihlášené uživatelské jméno.
whoami
query user
Závěr
Koncepce a aplikace Active Directory nejsou exkluzivní pro ekosystém Windows. V tomto tutoriálu jste se dozvěděli, že implementací Samba Active Directory můžete využívat stejné výhody Active Directory v Linuxu.
V tomto tutoriálu jste se naučili, jak nainstalovat a nakonfigurovat Samba Active Directory na Ubuntu 20.04. Také jste se naučili vytvářet nové uživatele a připojovat se k pracovní stanici Windows do domény Samba Active Directory.
co tě čeká dál? Co takhle integrovat službu Samba do služby CUPS pro podporu tisku nebo nastavení souborového serveru Samba Share? Vidíte, Samba nabízí víc než Active Directory!