Portál AbcLinuxu, 17. červenec 2019 17:23

LDAP + SSL TLS aneb jak se zbavit naivity

1.1.2013 19:46 | Přečteno: 1415× | Debian | Výběrový blog

První komentář pod mým včerejěím zápiskem zněl: LDAP bez SSL/TLS? Jak naivni.. I když byl tento názor relativizován, rozhodl jsem se po Maxově pošťouchnutí SSL trochu poškádlit, což se ukázalo jako ne až tak triviální jak by se mohlo Maxovi zdát ;-)

SSL/TLS na straně serveru ...

Celkem jednoduchý postup se dá v jazyce anglickém vygůglit. V principu potřebujeme vytvořit certifikační autoritu, vygenerovat a podepsat klíč a nacpat to do LDAPu. Ty návody jsou fakt dobré, jediný problém na který jsem narazil byl "drobný detail", že certifikát je vázaný na konkrétní hostname/FQDN/IP. Pokud jsme si tedy chytře všude nastavili (z rozumných důvodů) natvrdo IP adresy místo DNS, překvapivě nebude fungovat certifikát, který je vystaven na FQDN. Ale jak říkám, když člověk není blbej, tak dojít do fáze, kdy funguje sudo ldapsearch -x není problém ;-). Jo a není špatné nezapomenout zkopírovat všechny tři soubory ;-).

... a na straně klienta

Konfifurace LDAPu znamená do /etc/ldap/ldap.conf opravit ldap:// na ldaps:// a přidat:
TLS_CACERT /etc/ssl/certs/cacert.pem
TLS_REQCERT demand
Mimochodem, není špatné ze serveru rozdistribuovat cacert.pem ;-) V tomto okamžiku nám funguje ldapsearch, ale nepropagují se ale uživatelské účty (passwd atd). Stálo mne docela dost úsilí to rozchodit, takže předkládám výsledek své snahy: o výše uvedené se stará démon nslcd, jehož konfiguraci naleznete v /etc/nslcd.conf. Rad jak tento soubor upravit je plný internet, většina nápadů ale nefunguje. Nakonec jsem dospěl k této funkční konfiguraci (nemusím řešit problémy s nepodepsaným klíčem, protože máme přeci naši úžasnou autoritu, že ...):
# /etc/nslcd.conf

# The user and group nslcd should run as.
uid nslcd
gid nslcd

# The search base that will be used for all queries.
base dc=nase,dc=uzasna-domena,dc=cz

uri                             ldaps://ldapserver/
# SSL options
tls_reqcert                     allow
timelimit                       120
idle_timelimit                  3600
bind_timelimit                  120
ssl                             on
tls_cacert /etc/ssl/certs/cacert.pem
... jo a nezapomeňte správně nastavit práva (-rw-r----- 1 root nslcd čili chmod 640, chown i chgrp), /etc/ssl/certs/cacert.pem musí mít práva 644 (-rw-r--r--). Po restartu démona (/etc/init.d/nslcd restart) stěrače stírají.

Příště uvidíte ...

Nový Rok i dovolená končí, takže nevím, kdy přesně bude "příště", nicméně když už to všechno celkem chodí, tak ještě PAM zaslouží trochu doladit. ldots ukazuje nastavení PAM pro gdm, čehož výsledkem by byli (snad) LDAPí uživatelé dostupní i v GDM menu. Dále je v mém úkoláčku zjistit jak je možno učinit LDAP uživatele neaktivním aniž bych ho vymazal, jestli je možné řídit přístup na jednotlivé stroje podle skupin a vyzkoušet doporučený LDAP klient.        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

1.1.2013 23:14 Miriam
Rozbalit Rozbalit vše Re: LDAP + SSL TLS aneb jak se zbavit naivity
Odpovědět | Sbalit | Link | Blokovat | Admin
Líbí se mi, že o tom co děláš píšeš pěkné blogové zápisky. Doufám, že v tom budeš pokračovat a i když nebude dovolená, nějaký čas se najde.
2.1.2013 21:36 Karel Benák | skóre: 8 | blog: benyho
Rozbalit Rozbalit vše Re: LDAP + SSL TLS aneb jak se zbavit naivity
Odpovědět | Sbalit | Link | Blokovat | Admin
Ty jsi se tedy rozjel, všechna čest. S LDAP + TLS jsem svého času taky hodně zápasil, na rozkopírování CA certifikátu jsem Tě zapomněl upozornit. Je to taková blbost, která mnohé zablokuje. Několikrát jsem na podobnou pitominu už dojel.

S tím disablováním uživatelů .... většinou vyhledáváš v nějaké větvi uživatelů, takže řešením je buď disablovaného uživatele přesunout do jiné větve, anebo můžeš nastavit pro pravidla vyhledávání, že musí mít vyplněn atribut member. Samozřejmě si můžeš nadefinovat nějaké vlastní schema s doplněním požadovaných informací a provádět vyhledávání uživatele podle něj.
Láska je jako prd, když hodně tlačiš tak z toho bude ...

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.