GNU/Linux >> Znalost Linux >  >> Linux

4krokový kontejner Openldap Podman Easy

Úvod

Proč OpenLDAP?

Cílem projektu je zkopírovat zdrojový kód reference LDAP. OpenLDAP je zkratka Lightweight Directory Access Protocol. LDAP je dodavatelsky neutrální aplikační protokol, který vám umožňuje posuzovat a udržovat distribuované adresářové informační služby prostřednictvím poskytovatele internetových služeb. Existuje mnoho různých způsobů, jak poskytnout adresář. Například použití LDAP vám pomůže poskytnout centrální místo pro ukládání uživatelských jmen a hesel.

Mnoho různých aplikací a služeb se tedy může připojit k serveru LDAP za účelem ověření uživatelů. Servery LDAP jsou široce používány v organizacích k ukládání uživatelského jména a hesla na centralizovaném serveru, proti kterému se uživatel může dále autentizovat k programům a službám přítomným v síti. Kromě toho budeme používat balíčky Symas OpenLDAP pro standardní příkazy údržby softwaru nativní pro váš operační systém. OpenLDAP je hlavním přispěvatelem při psaní 90 % kódu OpenLDAP. Podívejte se také na tutorial OpenLdap na RHEL8 a dokumentaci OpenLDAP.

Výhody OpenLDAP

Je to zdarma. Podobně jako Linux je open source. Standardní protokol. Za druhé, navíc je snadné svázat ověřování s mnoha aplikacemi. Přizpůsobitelné a lehké.

Nevýhody OpenLDAP

Nejlepší by bylo, kdybyste se připravili. Kromě vaší infrastruktury podporuje všechny požadavky. Zavedené zásady a bezpečnostní pravidla. Databáze nebo ActiveDirectory by tedy měly vždy ukládat data. Pokud nejsou aktuální informace na místě, všechny atributy a zásady se přeruší. Za předpokladu, že Microsoft ve vaší oblasti, granty pro OpenLDAP s Active Directory.

Získejte obrázek OpenLDAP

#podman pull osixia/openldap:latest

Vytvořit pod

Pokud chcete k serveru ldap přistupovat z jiného počítače, nezapomeňte přidat mapování portů pro oba porty 389 a 636.

# podman pod create --name openldapapp -p 389:389 -p 636:636 --network bridge

Vytvořte kontejner openldap

Toto je výchozí chování při spuštění tohoto obrazu. Vytvoří otevřený ldap pro Unixcop.com. A doména example.com . Ve výchozím nastavení má správce heslo admin . Všechna tato výchozí nastavení lze změnit na příkazovém řádku dockeru, například:

podman run --pod openldapapp --name openldap-server --uts=private --hostname=openldap.example.com \
--env LDAP_ORGANISATION="My UnixCop" --env LDAP_DOMAIN="example.com" \ 
--env LDAP_ADMIN_PASSWORD="UnixCop@SoFreaky" --env LDAP_TLS=false \
--env LDAP_READONLY_USER=ldapuser01 --env LDAP_CONFIG_PASSWORD="UnixCop@SoFreaky" \ 
--env LDAP_READONLY_USER_PASSWORD="UnixCop@SoFreaky" \
--env LDAP_READONLY_USER_PASSWORD="UnixCop@SoFreaky" \ 
--env LDAP_BASE_DN="cn=admin,dc=example,dc=com" -d osixia/openldap:latest

Adresáře /var/lib/ldap (databázové soubory LDAP) a /etc/ldap/slapd.d (konfigurační soubory LDAP) se používají k zachování informací o schématu a datech. Měly by být mapovány jako svazky, takže vaše soubory ldap jsou uloženy mimo kontejner (použijte existující databázi ldap). Může však být užitečné nepoužívat objemy, pokud má snímek poskytnout snímek kompletní s testovacími daty – to je užitečné zejména při odvozování dalších snímků z tohoto snímku.

Tento obraz může načíst soubory ldif a schémata z interní cesty při spuštění. Kromě toho můžete zkopírovat certifikáty z interního adresáře. To je užitečné, pokud služba průběžné integrace automaticky připojí pracovní kopii (zdroje) do dockerové služby, která se týká úlohy ci.

GitLab například nemůže připojit vlastní cesty do dockerových služeb úlohy ci, ale Gitlab automaticky škáluje pracovní kopii v každém kontejneru služeb. Takže pracovní kopie (zdroje) jsou přístupné pod /built-in každé službě úlohy ci. Adresář certifikátů může získat cestu k pracovní kopii prostřednictvím ${CI_PROJECT_DIR}. Viz také:https://docs.gitlab.com/runner/executors/docker.html#build-directory-in-service

To může také fungovat s jinými službami CI, pokud automaticky připojí pracovní adresář ke službám úlohy ci jako Gitlab ci.

Chcete-li osadit soubory ldif nebo schéma z interní cesty, musíte nastavit konkrétní proměnnou prostředí LDAP_SEED_INTERNAL_LDIF_PATH a LDAP_SEED_INTERNAL_SCHEMA_PATH. Pokud je tato možnost vybrána, zkopírují se všechny soubory v zadaném adresáři do výchozích adresářů seed tohoto obrázku.

 LDAP_SEED_INTERNAL_LDAP_TLS_CRT_FILE: "${CI_PROJECT_DIR}/docker/certificates/certs/cert.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_KEY_FILE: "${CI_PROJECT_DIR}/docker/certificates/certs/key.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_CA_CRT_FILE: "${CI_PROJECT_DIR}/docker/certificates/ca/ca.pem"
 LDAP_SEED_INTERNAL_LDAP_TLS_DH_PARAM_FILE: "${CI_PROJECT_DIR}/certificates/dhparam.pem"

Přidat skupinu do kontejneru openldap

# cat group.ldif
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=othergroup,dc=example,dc=com
objectClass: organizationalUnit
ou: othergroup

Lze provést uvnitř kontejneru

# podman exec -it openldap-server /bin/bash
/# ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f /tmp/new-user.ldif -H ldap://openldap.example.com

Přidání uživatele do kontejneru openldap

# cat new-user.ldif
dn: uid=ldapuser,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: adam
uid: adam
uidNumber: 16859
gidNumber: 100
homeDirectory: /home/ldapuser
loginShell: /bin/bash
gecos: ldapuser
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

Linux
  1. Proč nemůže bezkořenový Podman vytáhnout můj obrázek?

  2. Jak používat Podman uvnitř kontejneru

  3. rozdíl mezi podmanem a dockerem.

  1. Jak nainstalovat OpenLDAP Server na Debian nebo Ubuntu

  2. Jak spustit Nginx v kontejneru Docker:Průvodce krok za krokem

  3. Krok za krokem Konfigurace serveru OpenLDAP na CentOS 7 / RHEL 7

  1. Spuštění rootless Podman jako uživatel bez root

  2. Náhled technologie:Spuštění kontejneru uvnitř kontejneru

  3. Používání souborů a zařízení v kontejnerech Podman rootless