GNU/Linux >> Znalost Linux >  >> Debian

Jak nastavit OpenLDAP Server na Debianu 10

Jako správce systému pravděpodobně již znáte protokol LDAP .

Pokud pracujete ve střední až velké společnosti, můžete si být jisti, že vaše společnost již vlastní LDAP server , ať už je to na Linuxu nebo Windows.

Protokol LDAP byl vynalezen na počátku 80. let (pro Lightweight Directory Access Protocol ) byl vytvořen za účelem ukládání dat, ke kterým by měl být přístup přes síť.

Protokol LDAP byl definován jako součást specifikace RFC 4511 a byl implementován mnoha různými dodavateli.

V tomto tutoriálu se podíváme na jednu z implementací protokolu LDAP:OpenLDAP .

OpenLDAP je bezplatná a open source implementace LDAP který poskytuje server (nazývaný slapd) a také nástroje a knihovny pro vývojáře.

Pomocí tohoto tutoriálu budete schopni nastavit kompletní server OpenLDAP a nakonfigurovat jej, abyste jej mohli používat pro centrální ověřování.

Co se naučíte

Pokud budete tento tutoriál sledovat až do konce, budete se moci dozvědět o následujících tématech:

  • Jak nainstalovat server OpenLDAP na Debianu 10;
  • Jak konfigurovat OpenLDAP a co konfigurace vlastně znamená;
  • Jak používat LDIF a nástroje LDAP upravit vaši databázi LDAP;
  • Jak přidat uživatele na váš server OpenLDAP pro centrální ověřování;
  • Jak nastavit klienty a jak funguje centrální ověřování v systému Linux;

To je poměrně dlouhý článek, takže bez dalších okolků začněme instalací jednoduchého serveru OpenLDAP na Debian 10.

Nainstalujte server OpenLDAP na Debian 10

Než začnete, měli byste se ujistit, že máte ve svém systému administrátorská práva:budete je potřebovat k instalaci nových balíčků.

Chcete-li zkontrolovat, zda máte práva sudo, spusťte příkaz „sudo“ s volbou „-v“.

$ sudo -v

Pokud si nejste jisti, jak uživatelům v Debianu 10 nebo CentOS 8 poskytnout práva sudo, přečtěte si o tom naše specializované průvodce.

Také se ujistěte, že jsou vaše balíčky správně aktualizovány, abyste získali nejnovější verzi balíčku z repozitářů.

$ sudo apt-get update

V systému Linux se server OpenLDAP nazývá „slapd “.

Je to jednoduchý a konfigurovatelný samostatný server který se používá ke čtení, úpravě a mazání z adresáře LDAP.

Démon slapd také přichází s mnoha různými nástroji, které lze použít ke snadnému vytváření nových záznamů nebo ke snadné úpravě záznamů:slapadd nebo slappasswd, abychom jmenovali alespoň některé.

$ sudo apt-get install slapd

Při instalaci tohoto nového balíčku budete na konci instalace požádáni o konfiguraci démona slapd.

Konfigurace slapd v Debianu 10

Konfigurace slapd přichází jakotextová rozhraní které musíte vyplnit, abyste správně nastavili server.

Nejprve budete požádáni o zadání hesla správce pro server LDAP.

Zvolte zabezpečené heslo protože položka administrátora v adresáři LDAP má všechna práva na celý strom:přidávat, mazat a upravovat všechny položky a také číst všechny atributy LDAP.

Na další obrazovce budete požádáni o potvrzení hesla:jednoduše zadejte to, co jste napsali na předchozí obrazovce.

Odtud by měl být inicializován váš server LDAP .

Při instalaci serveru slapd instalace také:

  • Vytvořili uživatele s názvem „openldap ” na vašem serveru;
  • Vytvořili počáteční konfiguraci, která je k dispozici na adrese /etc/ldap
  • Vytvořena počáteční a prázdná databáze který je připraven přijímat nové položky.

Ve výchozím nastavení server OpenLDAP vytvoří první položku databáze, která odráží název vaší aktuální domény.

Pokud jste však nenakonfigurovali název své domény správně (například během instalace), existuje možnost, že váš server OpenLDAP je nakonfigurován špatně.

Chcete-li se poprvé podívat na počáteční konfiguraci vašeho OpenLDAP serveru, použijte příkaz „slapcat“ a sledujte rozlišující názvy vytvořené slapd.

$ sudo slapcat

$ sudo slapcat | grep dn

Obvykle by vaše hlavní DN OpenLDAP měla odpovídat názvům DNS vaší domény.

Znamená to, že pokud aktuálně pracujete v doméně „devconnected.com“, váš server OpenLDAP by měl mít hlavní rozlišující názvy „dc=devconnected,dc=com“.

Jak vidíte, prozatím tomu tak není, ale naštěstí pro nás existuje způsob, jak démona slapd překonfigurovat.

Překonfigurování slapd pomocí dpkg-reconfigure

Chcete-li znovu nakonfigurovat démona slapd, spusťte „dpkg-reconfigure ” na démonu “slapd”. K překonfigurování slapd opět potřebujete oprávnění sudo.

$ sudo dpkg-reconfigure slapd

Nejprve budete dotázáni, zda chcete vynechat konfiguraci serveru OpenLDAP.

Samozřejmě chceme u této možnosti stisknout „Ne“, protože chceme, aby počáteční konfigurace databáze byla vytvořena za nás.

V dalším kroku budete požádáni o zadání základního rozlišujícího názvu vašeho serveru LDAP.

Jak můžete vidět, démon slapd popisuje, že název domény DNS se používá k vytvoření základního DN vašeho adresáře OpenLDAP.

V tomto případě jsme zvolili „dc=devconnected,dc=com“ :všimněte si, že tuto položku musíte upravit tak, aby odpovídala vašemu aktuálnímu nastavení DNS.

Pokud si nejste jisti doménou, ke které patříte, jednoduše použijte příkaz „domainname“ ve vašem terminálu.

$ domainname
devconnected.com

Dále budete požádáni o zadání názvu vaší organizace . Toto je přesně stejný krok jako ten, který jste provedli dříve, jednoduše zadejte název organizace a stiskněte „OK“.

Nakonec, podobně jako u první konfigurace slapd, budete požádáni o zadání pověřovacích údajů správce pro váš server LDAP .

Opět zvolte silné heslo, protože jej lze použít ke čtení a úpravě každé jednotlivé položky v adresáři LDAP.

Na další obrazovce budete požádáni o poskytnutí back-endu, který má LDAP používat.

Pro tento krok chcete zachovat výchozí hodnoty (myšleno MDB pro back-end MariaDB), pokud nemáte důvod zvolit jiný backend úložiště.

Dále budete dotázáni, zda chcete, aby byla databáze odstraněna, když je slapd vyčištěn.

V tomto případě vybereme „Ne“ :existuje mnoho situací, kdy chcete jednoduše aktualizovat balíček slapd nebo přejít na jiný server LDAP.

Pokud zvolíte ano, vaše databáze bude odstraněna, což může být skutečný problém, pokud nemáte žádné zálohy vašeho adresáře LDAP.

Nakonec se zobrazí upozornění:v adresáři “/var/lib“ již nějaké soubory jsou adresář vašeho serveru.

V tomto adresáři máte aktuálně uloženou svou starou databázi. Když se pokoušíte překonfigurovat svůj OpenLDAP server, přepíšete obsah této složky.

Volbou „Ano“ obslužný program slapd zálohuje obsah vaší stávající databáze do složky „/var/backups“.

Hotovo!

Váš server slapd je nyní správně nakonfigurován, aby odpovídal aktuálnímu nastavení DNS.

Chcete-li se poprvé podívat na obsah vaší databáze LDAP, jednoduše spusťte „slapcat“ (s oprávněními sudo, pokud aktuálně nejste přihlášeni jako root)

$ sudo slapcat

S tímto počátečním nastavením:

  • Vaše konfigurační soubory jsou uloženy v „/etc/ldap“ :ukládají konfigurační soubor ldap, schémata, která můžete přidat do slapd, a také adresář slapd.d používaný pro přizpůsobení serveru;
  • Vaše databáze je uložen na „/var/lib/ldap“ v databázi „data.mdb“:pravděpodobně byste měli nastavit zálohy tohoto souboru, abyste měli jistotu, že o vše nepřijdete.

Konfigurace pravidel brány firewall pro LDAP

Pokud používáte firewall, je velmi pravděpodobné, že budete muset přijímat příchozí požadavky na váš LDAP server.

Pro rychlé připomenutí, OpenLDAP běží na portu 389.

Abyste se ujistili, že běží správně, spusťte příkaz „systemctl status“ na serveru „slapd“.

$ sudo systemctl status slapd

Pokud používáte nejnovější distribuce Debianu, pravděpodobně používáte UFW jako výchozí firewall.

Chcete-li povolit OpenLDAP na UFW, spusťte příkaz „ufw allow“ na portu 389 vašeho serveru. Můžete přijímat připojení TCP a UDP společně.

$ sudo ufw allow 389

Rule added
Rule added (v6)

Potom můžete ověřit, že pravidlo bylo správně vytvořeno pomocí příkazu status.

V další části se podíváme, jak můžete snadno přidávat nové položky na server LDAP pomocí souborů LDIF.

Přidejte položky OpenLDAP pomocí souborů LDIF

Při přidávání nových položek na váš server OpenLDAP můžete použít nástroj „slapadd“ k přidání nového souboru LDIF.

Toto však není nástroj, který budeme používat, místo toho použijeme „ldapadd“.

Rozdíl mezi slapadd a ldapadd

Před přidáním nových položek je důležité, abyste věděli rozdíl mezi nástroji slap a nástroji ldap.

Oba nástroje berou jako argument soubory ve formátu LDIF a mají obsah do databáze.

Při použití slapadd však budete muset restartovat server LDAP aby se změny uplatnily.

To není případ, kdy používáte nástroje ldap, jako je „ldapadd“:úpravy se provádějí přímo ve stromu adresářů.

Abyste mohli používat „ldapadd“, „ldapsearch“ a další nástroje LDAP, musíte si do systému nainstalovat balíček „ldap-utils“.

$ sudo apt-get install ldap-utils

Vytvoření prvního souboru LDIF

Jak bylo vysvětleno dříve, pokud používáte konzolovou linku, budete muset vytvořit soubory LDIF a přidejte je do své aktuální konfigurace nebo databáze LDAP.

Formát LDIF je formát používaný k přidání nebo úpravě existujících položek v adresáři LDAP.

Pomocí LDIF zadáte rozlišující název uzlu, který chcete upravit, a popíšete úpravy, které mají být provedeny.

Řekněme například, že chcete ve svém adresáři LDAP vytvořit nový uzel s názvem „users“.

Přidání skupiny uživatelů

Chcete-li toho dosáhnout, vytvořte nový soubor LDIF s názvem „users.ldif“ a přidejte do něj následující obsah.

$ sudo touch /etc/ldap/users.ldif

# Content of the users file

dn: ou=People,dc=devconnected,dc=com
objectClass: organizationalUnit
ou: People

Jak můžete vidět, je nám poskytnuto úplné DN uzlu, který má být přidán, specifikujeme třídu objektu a název uzlu, který má být vytvořen.

Chcete-li přidat tuto položku do svého adresáře LDAP, musíte použít příkaz „ldapadd“ a zadat soubor LDIF, který se má použít.

$ sudo ldapadd -D "cn=admin,dc=devconnected,dc=com" -W -H ldapi:/// -f users.ldif

Enter LDAP Password:
added new entry "ou=People,dc=devconnected,dc=com"

Pokud neznáte možnosti nástroje ldap, zde je popis nabízených možností:

  • -D :používá se k určení uzlu, ke kterému se má navázat. Při přidávání nových položek na server LDAP si můžete vybrat svůj ověřovací mechanismus, ale obvykle se chcete svázat s administrátorským uzlem, abyste získali všechna oprávnění ve stromu;
  • -W :používá se k určení, že chceme, aby se při připojování zobrazil dotaz na heslo;
  • -H :používá se k určení serveru LDAP, ke kterému se chcete připojit. V tomto případě se připojujeme k serveru LDAP dostupnému na localhost;
  • -f :k určení souboru LDIF, který má být přidán na server LDAP.

Všimněte si, že ve výchozím nastavení nemůžete k přidávání nových položek do LDAP použít externí ověřování:ACL k tomu nejsou nakonfigurovány.

Nyní, když je váš uzel přidán do vašeho stromu, můžete jej zkusit najít pomocí příkazu „ldapsearch“.

$ sudo ldapsearch -x -b "dc=devconnected,dc=com" ou

Skvělé!

Nyní, když byla přidána organizační jednotka „People“, pojďme přidat některé uživatele do vašeho stromu LDAP.

Přidávání nových uživatelů do LDAP

Abychom mohli přidat nové uživatele, budeme postupovat podle stejné logiky:vytvoříme soubor LDIF obsahující jednotlivé položky pro uživatele.

Jak bylo popsáno výše, OpenLDAP používá schémata k definování „objektů “, který lze přidat do adresáře.

V tomto případě použijeme schéma „posixAccount“, které je již ve výchozím nastavení přidáno do vaší databáze.

PosixAccount ” objekt má několik polí, která lze použít k popisu uživatelského účtu Linux, jako je uživatelské jméno, příjmení, ale především heslo uživatele .

Vytvořte nový soubor LDIF a přidejte do něj následující obsah:

$ sudo touch /etc/ldap/new_users.ldif

# Content of new_users LDIF file

dn: cn=john,ou=People,dc=devconnected,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: john
uid: john
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/john
userPassword: <password>
loginShell: /bin/bash

Až budete hotovi, uložte soubor a pomocí příkazu ldapadd přidejte svůj záznam do stromu adresářů LDAP.

$ sudo ldapadd -D "cn=admin,dc=devconnected,dc=com" -W -H ldapi:/// -f new_users.ldif

Enter LDAP Password:
added new entry "cn=john,ou=People,dc=devconnected,dc=com"

Gratulujeme, nyní máte svého prvního uživatele uloženého v OpenLDAP.

Informace o uživateli si můžete přečíst zadáním vyhledávacího příkazu LDAP. Pamatujte, že nebudete moci přečíst uživatelské heslo, protože jste omezeni seznamy ACL.

$ sudo ldapsearch -x -b "ou=People,dc=devconnected,dc=com"

Skvělé, teď, když je váš server LDAP nakonfigurován, pojďme nakonfigurovat klienta, aby bylo možné nakonfigurovat centrální ověřování.

Konfigurace klientů LDAP pro centralizované ověřování

V poslední části tohoto nastavení serveru OpenLDAP se podíváme, jak můžete nakonfigurovat klienty LDAP (tj. vaše hostitelské počítače), aby se mohly připojit pomocí informací LDAP.

Jak funguje ověřování klienta LDAP

Před vydáním jakýchkoli příkazů je důležité, abyste měli globální přehled o tom, co vlastně budujeme.

Pokud jste před LDAP (a NIS) chtěli konfigurovat oprávnění uživatelů a skupin na více počítačích v síti, museli byste se k nim jeden po druhém připojit a změnit jejich nastavení.

LDAP je pro to skvělým řešením:LDAP soustředí informace o uživatelích na jedno místo ve vaší síti.

Když se klient připojí k jakémukoli počítači ve vaší doméně, hostitel nejprve kontaktuje server LDAP a ověří, že poskytnuté uživatelské heslo je správné.

Klientská knihovna se spojí (nebo ověří) na vzdálený server LDAP pomocí účtu správce a získat informace spojené s uživatelem, který se pokouší připojit.

Dále získá heslo přidružené k účtu a porovná ho s heslem, které jste zadali při přihlášení.

Pokud se hesla shodují, budete přihlášeni ke svému účtu, jinak budete zamítnuti.

Nastavte ověřování klienta LDAP v Debianu

Chcete-li nastavit ověřování klienta LDAP, budete muset nainstalovat „libnss-ldap ” na vašem klientovi.

$ sudo apt-get install libnss-ldap

Při instalaci tohoto balíčku budete vyzváni k mnoha různým otázkám, abyste mohli nakonfigurovat centralizované ověřování klienta.

Nejprve budete požádáni o zadání adresy URL vašeho LDAP serveru:doporučujeme nastavit IP adresu (samozřejmě nakonfigurovanou jako statickou), abyste se vyhnuli problémům s překlady DNS.

Na serveru identifikujte svou IP adresu pomocí příkazu ip a vyplňte odpovídající pole na klientovi.

# On the server

$ ip a

Poznámka :ujistěte se, že používáte protokol LDAP a nikoli protokol LDAPI. Z nějakého důvodu nebude váš server dostupný, pokud používáte protokol LDAPI.

Dále budete požádáni, abyste uvedli rozlišující kořenový název vašeho serveru LDAP . Pokud si nejste jisti, měli byste na serveru spustit příkaz ldapsearch a získat tyto informace.

Na další obrazovce budete dotázáni na verzi LDAP, kterou chcete použít:prozatím vyberte verzi LDAP 3.

Dále budete dotázáni, zda chcete z místního roota učinit správce databáze.

Chcete napsat „Ano“ na tuto možnost, protože chcete změnit heslo uživatele přímo z hostitelského počítače.

S touto volbou budete moci spustit „passwd“ a nechat si upravit heslo přímo v adresáři LDAP, což je docela užitečné.

Ve výchozím nastavení databáze LDAP nevyžaduje přihlášení, takže u této možnosti můžete zadat „Ne“.

Poznámka :databáze LDAP nemá žádné přihlašovací údaje, ale v horní části adresáře LDAP máte účet správce. To jsou dva různé koncepty, které se od sebe velmi liší.

Dále zadejte účet správce LDAP k použití pro vazby.

Připomínáme, že toto je účet, který bude použit k získání informací o hesle uživatele ze serveru.

Nakonec zadejte heslo přidružené k účtu správce na serveru LDAP.

Hotovo, nyní byste měli být schopni dotazovat se na váš LDAP server.

Propojení klientských informací s LDAP

Chcete-li propojit své klientské informace (jako je uživatelské jméno a heslo) s adresářem LDAP, musíte upravit soubor nsswitch.

Připomínáme, že soubor nsswitch se používá k propojení některých informací ve vašem systému (jako jsou uživatelé, skupiny nebo hostitelé) s různými různými zdroji (místní, LDAP, NIS nebo jiné).

Upravte soubor /etc/nsswitch.conf a přidejte položku „ldap“ do prvních čtyř sekcí:passwd, group, shadow, gshadow.

$ sudo nano /etc/nsswitch.conf

Uložte soubor a nyní byste měli být schopni vytvořit seznam uživatelů ze serveru LDAP.

$ getent passwd

Poznámka :pokud neznáte příkaz getent, zde jsou všechny příkazy používané k výpisu uživatelů v Linuxu.

Úžasný!

Nyní, když lze vašeho uživatele načíst prostřednictvím LDAP, budete se moci přihlásit k tomuto účtu pomocí uživatelského hesla, které jste zadali v adresáři LDAP.

$ su - john

<Type password specified in LDAP>

[email protected]:/home/john

Závěr

V tomto tutoriálu jste se naučili, jak můžete snadno nastavit jednoduchý server OpenLDAP na Debianu 10 pomocí nástroje slapd.

Také jste se dozvěděli o nástrojích LDAP které můžete použít k přidávání a vyhledávání položek v adresáři LDAP.

Konečně jste viděli, jak můžete nakonfigurovat klientské počítače, aby se k vašim počítačům připojovalo ověřování LDAP.

Toto je architektura, kterou lze použít ve většině firemních IT architektur:Všimněte si, že budete muset nastavit šifrování TLS, aby se hesla nepřenášela po síti jako prostý text.

Pokud máte zájem o administraci systému Linux, máme na webu kompletní sekci, která se jí věnuje, takže se na ni určitě podívejte!


Debian
  1. Jak nainstalovat OpenLDAP Server na Debian nebo Ubuntu

  2. Jak nainstalovat Redis Server na Debian 11

  3. Jak nainstalovat MySQL 8.0 / 5.7 na Debian 11 / Debian 10

  1. Jak povolit SSH na Debianu 9 nebo 10

  2. Jak nastavit vsftpd na Debianu

  3. Jak nastavit Rsyslog Server na Debianu 11

  1. Jak nastavit FTP server s VSFTPD na Debianu 9

  2. Jak nainstalovat Minecraft Server na Debian 9

  3. Jak nastavit Rsyslog Server na Debian 11 (Bullseye)