LinuxHowtoLdap
LDAP How To
Postupy při instalaci Fedora DS
[+]
Instalaci provést spuštěním příkazu /opt/fedora-ds/setup/setup, port pro LDAP je 389, port pro administrativní server je 488. Directory manager je cn=manager. Top level je dobré vytvářet dc=cz, aby bylo možné vytvořit záznam cn=manager,dc=uvt,dc=cz pro zpětnou kompatibilitu se nastavením služeb.
- Aby Fedora DS LDAP nastartoval, je nutné mít připojený FS proc do chroot prostředí
- Ve větvi o=NetscapeRoot
- najít objectClass nsAdminConfig a nastavit nsAdminAccessHosts na "*" a nsAdminAccessAddresses na '1.1.1.1' [(objectclass=nsAdminConfig)]
Po změně je nutné restartovat Admin server (ověřeno při instalaci).
- Nastavit práva pro přístupy služeb, LDIF s ACI se nachází v adresáři /data/netserv.fds/opt/fedora-ds/access-permissions
- Pro umožnění změny hesel potřebuje Fedora DS certifikát, který se vytvoří pomocí Manage certificates v panelu Tasks (viz. také Samba How To
- Pokud není zapotřebí, vypnout logování. Fedora DS loguje do souborů v /opt/fedora-ds/slapd-*/logs a tím zaplňuje místo v chrootu. Buď pro logy vytvořit a připojit jiný oddíl, na který pak nastavit logování, nebo logování vypnout, případně změnit max.velikost a počet uchovávaných souborů. Změny logování se provádí v administrační konzoli LDAP serveru, karta Configuration, větev Logs.
Konfigurace omezení přístupu administrativní konzolí
[+]
Přístup do administrativní konzole lze omezit podle jména klientské stanice nebo podle IP adresy. Po instalaci je přístup omezen na stanice, které mají reverzní DNS záznam a jejich název se nachází ve stejné doméně jako server. Toto nastavení lze změnit v LDAP stromu. Pokud stanice splňuje zmíněné podmínky přihlášení pomocí administrativní konzole, je možné pro úpravu přístupu použít konzolu, pokud stanice nemá reverzní záznam nebo se nachází v jiné doméně, je možné použít jakýkoliv jiný LDAP editor. Omezení přístup se nastavuje ve větvi cn=configuration, cn=admin-serv-SHORTHOSTNAME, cn=Fedora Administration Server, cn=Server Group, cn=HOSTNAME, ou=DOMAIN, o=NetscapeRoot, kde SHORTHOSTNAME je krátké jméno serveru, HOSTNAME je plné jméno serveru včetně domény a DOMAIN je použitá doména serveru. Zde se nachází atributy nsAdminAccessHosts a nsAdminAccessAddresses. Do nsAdminAccessHosts se zadávají jména stanic, které mají povolený přístup, lze použít také zástupný znak * (výchozí hodnota bývá nstavena *.DOMAIN). Pro povolení přístupu pro všechny stanice zadej samotný znak *. Pokud počítač nemá reverzní záznam v DNS, je nutné povolit přístup z jakékoliv IP adresy. K tomu slouží položka nsAdminAccessAddresses, kam se zadávají IP adresy, které NEMAJÍ povolený přístup. Pokud chceme povolit všechny IP adresy, musíme zadat nějakou neexistující IP adresy, což je dost problém, takže se spokojíme s IP adresou, ze které určitě nikdy přistupovat nebudeme, např. 1.2.3.4.
Překonfigurování nastavení po přesunu k zákazníkovi
[+]
Pokud se během instalace používala IP adresa z prostoru naší firmy, nebo název počítače, který nemá DNS záznam, nebude zřejmě fungovat administrativní konzole.
Při spuštění administrativní konzole se konzole připojí na administrativní server na port 488. Ten si čte parametry ze LDAPu a tam si také přečte adresu, na kterou se má připojit při požadavku na přístup na LDAP server. Tato adresa je uložena ve stromě cn=slapd-SHORTHOSTNAME, cn=Fedora Directory Server, cn=Server Group, cn=HOSTNAME, ou=DOMAIN, o=NetscapeRoot, kde SHORTHOSTNAME je krátké jméno serveru, HOSTNAME je plné jméno serveru včetně domény a DOMAIN je použitá doména serveru. V této větvi je atribut serverHostName, který udává jméno serveru, na který se bude připojovat LDAP browser z administrativní konzole. Pokud má být možné se připojit na LDAP pomocí konzole z Internetu, je nutné zadat toto jméno do DNS nebo do lokálního souboru hosts.
Zadání hesla pro automatický start Fedora DS při použití certifikátů
[+]Úložistě certifikátů, obvykle to bude Internal (Software) Token, vyžaduje heslo při přístupu k certifikátům, tzn. při použití SSL šifrování na serveru je heslo k úložišti vyžadováno i při startu Fedora DS.
Pokud je žádoucí, aby se server startovat neinteraktivně a nebylo nutné zadávat heslo, musí se toto heslo zadat do zvláštního souboru. Tento soubor se musí nacházet v adresáři /opt/fedora-ds/alias, v chrootu je to tedy adresář /data/netserv.fds/opt/fedora-ds/alias. Soubor musí mít speciální jméno LDAP-ID-pin.txt, kde LDAP-ID odpovídá názvu adresáře, ve kterém je vytvořena běžící kopie LDAP serveru v adresáři /opt/fedora-ds.
Např. /opt/fedora-ds/slapd-jalovice obsahuje LDAP server. Pokud je používáno SSL, potom adresář /opt/fedora-ds/alias obsahuje soubory slapd-jalovice-cert8.db a slapd-jalovice-key3.db. Když se má spouštět LDAP server bez nutnosti zadávat heslo, je nutné vytvořit v adresáři alias další soubor pojmenovaný slapd-jalovice-pin.txt, do kterého se uloží text Internal (Software) Token:HESLO, kde HESLO je heslo, které se používá pro přístup do uložiště certifikátů.
Soubor LDAP-ID-pin.txt by měl mít vlastníka LDAP serveru (obvykle nobody:nobody) a měl by být právo čtení pouze pro vlastníka souboru (tedy 400).
Přesun běžícího Fedora Directory Serveru na jiný stroj/jiný port
[+]
- /opt/fedora-ds/slapd-*/config/dse.ldif
- upravit jmeno serveru v atributu nsslapd-localhost
- upravit port LDAP serveru v atributu nsslapd-port
- pokud má startovat pouze na určité IP adrese, tak přidat (nebo změnit) atribut nsslapd-listenhost
- /opt/fedora-ds/shared/config/dbswitch.conf
- zmenit URL LDAP podle dse.ldif
- /opt/fedora-ds/shared/config/ldap.conf
- zmenit URL LDAP podle dse.ldif
- Ve vetvi o=NetscapeRoot
- zmenit nazev serveru serveru v atributu serverHostName [(serverHostName=*)]
- zmenit URL v atributu nsDirectoryUrl podle nastaveni dse.ldif [(nsDirectoryUrl=*)]
- zmenit port v atributu nsServerPort u objectclass nsDirectoryServer [(&(objectclass=nsDirectoryServer)(nsServerPort=*))]
- zmenit port v atributu nsServerPort u objectclass nsAdminConfig [(&(objectclass=nsAdminConfig)(nsServerPort=*))]
Nastavení replikace master-master (multimaster)
[+]
Multimaster replikace se nastavuje na obou serverech stejně s drobnými detaily. Postup tedy aplikuj na obou serverech, pokud není rečeno jinak.
- Připoj se na server administrační konzolí a spusť z ní se připoj na konfiguraci LDAPu (okno Directory Server).
- Přepni se na kartu Directory.
- Ve větvi cn=config vytvoř nového uživatele (pokud ještě neexistuje) a zadej mu následující údaje: First Name: replication, Last Name: manager, Common name: replication manager, User ID: replication manager a zadej heslo.
- Přepni se na kartu Configuration.
- Nejdříve je nutné zapnout používání Changelog-u v položce Replication, karta Supplier Settings zaškrtnout volbu Enable Changelog. Kliknout na tlačítko Save.
- Rozbalit větev Replication a vyhledat databázi, kterou chceš replikovat. U ní potom aktivovat Enable Replication, Replication Role zvolit Multiple Master, v Common settings zadat Replica ID, což musí být unikátní číslo v rámci replikace jedné databáze. Na serveru system.uvt.cz zadávej číslo 1, na serverech zákazníků zadávej číslo 2. Dále v části Update Settings zadat do řádku Enter a new Supplier DN jméno uživatele používaného pro replikaci uid=Replication Manager,cn=config a tlačítkem Add_ ho přidat do seznamu Current Supplier DNs. Kliknout na tlačítko Save__.
- Vyber databázi, u které jsi povolil replikaci a klikni na ní pravým tlačítkem a z kontextové nabídky vyber New Replication Agreement. Vyplň postupně položky:
- Name - krátký název (nelze změnit)
- Description - popis (lze změnit)
- Consumer - vyber Other a zadej Host name a Port number serveru, kam se budou data replikovat
- Connection - vyber Simple authentication a do pole Bind as zadej uid=replication manager,cn=config a do Password zadej heslo, které jsi zadal při vytváření uživatele. Pokud jsou údaje špatně zadané, při přechodu na další stranu se zobrazí varovné hlášení.
- Select replication criteria nechat jak je, budou se replikovat všechny atributy
- Provide schedule information nechat na Always keep directories in sync
- Select one of the following zvolit Do not initialize consumer
- Po kliknutí na Next můžeš dokončit pomocí Done
Tím byl založený Replication agreement, ale ještě je nutné inicializovat replikaci. Na serveru se správnými daty vyber vytvořený Replication agreement, klikni na něj pravým tlačítkem a vyber Initializce consumer. Tím se na cílovém serveru vymažou z replikované databáze data a nahradí se daty z aktuálního serveru. Pokud jsou na cílovém serveru nějaká data, která mají být zachována, musíš je přesunout (zkopírovat nebo upravit stávající) na aktuální server. Po zreplikování dat jdi na druhý server a proveď také inicializaci konzumera. Tím se aktivuje obousměrná replikace.
Přidání záznamu DHCP pro přidělování statické IP adresy hostu
[+]
Na sdílení linux v adrsáři scripts je skript pridej-staticke-dhcp. Na začátku skriptu je nutné nastavit proměnné, poté se jednoduše přidávají záznamy konfigurace statických IP adres do DHCP.
#!/bin/bash
LDAPHOST="mail.comdes.cz"
LDAPPORT="390"
LDAPBIND="cn=manager"
LDAPPASS="spravce123"
NETWORK="10.10.0.0"
IPNET="10.10.3"
SERVER="dsa"
FIRMA="comdes"
if [ $# -lt 3 ];then
echo "$0 {pc|ntb} cislo MAC"
else
while [ $# -ge 3 ];do
name="$1$( printf "%03i" $2 )"
mac="$( echo "$3" | tr -dc '0-9a-fA-F' | perl -pe 'chomp;$_=lc(join(":",(/([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/i))) . "\n";' )"
echo "Pridavam $name $IPNET.$2 MAC $mac ..."
ldapadd -h "$LDAPHOST" -p "$LDAPPORT" -D "$LDAPBIND" -x -w "$LDAPPASS" <<Konec
dn: cn=$name,cn=$NETWORK,cn=DHCP Config,dc=dhcp,dc=$SERVER,dc=servers,dc=$FIRMA,dc=cz
objectClass: dhcpHost
objectClass: top
cn: example
dhcpHWAddress: ethernet $mac
dhcpStatements: fixed-address $IPNET.$2
Konec
err=$?
case "$err" in
0) echo "Pridano $name $IPNET.$2 MAC $mac ... OK";;
68)
read -p "Zaznam $name jiz existuje. Prepsat stare hodnoty novymi? [a/ano/y/yes]: " o
o="$( echo "$o" | tr 'A-Z' 'a-z' )"
case "$o" in
"a" | "ano" | "y" | "yes" )
ldapmodify -h "$LDAPHOST" -p "$LDAPPORT" -D "$LDAPBIND" -x -w "$LDAPPASS" <<KonecMod
dn: cn=$name,cn=$NETWORK,cn=DHCP Config,dc=dhcp,dc=$SERVER,dc=servers,dc=$FIRMA,dc=cz
changetype: delete
dn: cn=$name,cn=$NETWORK,cn=DHCP Config,dc=dhcp,dc=$SERVER,dc=servers,dc=$FIRMA,dc=cz
changetype: add
objectClass: dhcpHost
objectClass: top
cn: example
dhcpHWAddress: ethernet $mac
dhcpStatements: fixed-address $IPNET.$2
KonecMod
;;
*) echo "Ponechavam stare hodnoty";;
esac
;;
*) echo "Jina chyba cislo $err";;
esac
shift 3
done
fi