Иди на текст

Instalacija i konfiguracija OpenLDAP baze podataka - CentOS

Priprema pred instalaciju LDAP baze

Podesiti IP TABLES

Najpre je potrebno onemogućiti firewalld servis, ukoliko već nije.

systemctl stop firewalld
systemctl mask firewalld

Potrebno je instalirati iptables-services softverski paket i omogućiti iptables proces, ukoliko već nije.

yum install iptables-services
systemctl enable iptables

Otvoriti port 389 za sve IP adrese sa kojih se pristupa LDAP bazi. To podrazumeva:

  • Ukoliko se instalira i koristi aplikacija Apache Directory Studio za upravljanje ovom bazom podataka, otvoriti port 389 na LDAP bazi za adresu računara ili laptopa gde je instalirana pomenuta aplikacija

  • Ukoliko se LDAP baza povezuje sa Shibboleth ili RADIUS Davaocem Identiteta koji su na zasebnim VM, otvoriti port 389 na LDAP bazi za te IP adrese.

Jedna od mogućnosti kako se to može uraditi:
vim /etc/sysconfig/iptables  

Primer otvaranja porta 389 za jednu adresu ili opseg adresa je dat u nastavku:

-A INPUT -s 1xx.xxx.xxx.xxx/xxx.xxx.xxx.xxx -p tcp -m tcp --dport 389 -j ACCEPT

Napomena: Navedene linije je potrebno uneti bavezno iznad linije: -A INPUT -j REJECT --reject-with icmp-host-prohibited

iptables-restore < /etc/sysconfig/iptables
iptables-save
systemctl restart iptables
iptables -L

Onemogućiti SELinux

Jedna od mogućnosti kako se to može uraditi:

Otoriti fajl /etc/selinux/config i promeniti vrednost iz SELINUX=enforcing u SELINUX=disabled.

vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
reboot

Podesiti hosta

U okviru čitavog uputstva smatraće se da je domen VM ldap.institucija.ac.rs, tako da na svim mestima umesto ovog naziva domena potrebno je da unesete naziv po vašem izboru.

Veoma je važno da pun hostname (# hostname -f) ove VM, npr. ldap.institucija.ac.rs, koji se podešava u okviru ove sekcije bude isti kao i domen koji je adekvatno podešen na DNS serveru, a taj domen će se takođe kasnije koristiti za kreiranje sertifikata.

Ukoliko kreirate LDAP bazu za potrebe RADIUS ili Shibboleth Davaoca Identiteta i ukoliko su vam resursi ograničeni možete da instalirate na jednu VM:

  • LDAP bazu i Shibboleth Davalac Identiteta

  • LDAP bazu i RADIUS Davalac Identiteta

  • Napomena: U tom slučaju koristite domen VM tako da odgovara tom specifičnom slučaju i koji je prilagođen Davaocu Identiteta. U ovom uputstvu se prikazuje slučaj kada se LDAP baza instalira na VM bez Davaoca Identiteta.

Podešavanje host podataka

Dat je primer postavljanja ldap.institucija.ac.rs kao FQDN (Full Qualified Domain Name) podatka:

vim /etc/hosts

Na kraju fajla se unosi linija u formi: IP ADRESA FQDN HOSTNAME Npr:

xxx.xxx.xxx.xxx ldap.institucija.ac.rs ldap
Postaviti hostname

Koristi se komanda sledeće forme: hostnamectl set-hostname HOSTNAME

hostnamectl set-hostname ldap
Sačuvati izmene:

reboot

Instalacija i konfiguracija OpenLDAP baze podataka

Potrebno je preuzeti i instalirati potrebne softverske pakete i alate:

yum install openldap openldap-clients openldap-servers openssl vim
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/
systemctl enable slapd
systemctl start slapd

Kreirati root (administratorsku) lozinku baze:

slappasswd
  • New password: UNETI_PROIZVOLJNU_LDAP_ROOT_LOZINKU

  • Re-enter new password: PONOVITI_UNOS_PROIZVOLJNE_LDAP_ROOT_LOZINKE

[root@ldap ~]# slappasswd
New password: testpass123
Re-enter new password: testpass123
{SSHA}HaiiVdcjomZsoehlWZ9aKfH0hUWudgRA

Unesena lozinka će se ispisati u enkriptovanom formatu

Na primer: {SSHA}HaiiVdcjomZsoehlWZ9aKfH0hUWudgRA

Dobijenu enkriptovanu lozinku je potrebno sačuvati, biće neophodna u daljem procesu konfiguracije!

Kreirati radni direktorijum (/etc/openldap/scratch) u koji će se smeštati fajlovi sa konfiguracijom:

mkdir /etc/openldap/scratch

Postavljanje domena LDAP baze i kreiranje glavnog administratora

Postavljanje domena LDAP baze

  • Napomena: Domen LDAP baze ( podatak koji treba popuniti na mestu olcSuffix: dc=institucija,dc=ac,dc=rs u okviru izmene fajla u sledećem koraku) ne mora imati veze sa domenom VM ili domenom vaše institucije.

  • Kao ilustracija domen LDAP baze će biti: olcSuffix: dc=institucija,dc=ac,dc=rs, ali npr. može da bude i olcSuffix: dc=institucija,dc=local ili olcSuffix: dc=radius,dc=local

  • Domen LDAP baze predstavlja koren LDAP baze, odnosno početni element u njenoj hijererhijskoj strukturi.

Preuzeti i izmeniti fajl db.ldif

wget https://docs.amres.ac.rs/download/ldap/db.ldif -O /etc/openldap/scratch/db.ldif

Modifikovati označene linije tako da se definiše domen LDAP baze (olcSuffix), DN glavnog administratora baze (olcRootDN) i njegova lozinka u enkriptovanom obliku (kreirana u prethodnim koracima) (olcRootPW).

vim /etc/openldap/scratch/db.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=institucija,dc=ac,dc=rs

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=institucija,dc=ac,dc=rs

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}nk*************

Fajl sa ovom konfiguraciom se unosi komandom:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/db.ldif

Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

Konfiguracija SSL/TLS

Ukoliko želite možete da koristite komercijalni sertifikat

U tom slučaju biste preskočili sledeći korak kreiranja besplatnog privatnog ključa i sertifikata koji bi važio 10 godina, a njih je potrebno da unesete na lokaciju /etc/ldap/. Zatim pratite uputstvo počevši od promene vlasništva sertifikata i ključa.

Kreiranje privatnog ključa i sertifikata sa trajanjem 10 godina:

Napomena

  • Privatnom ključu i sertifikatu možete da date bilo koji naziv, međutim veoma je bitno kod dela Common Name (e.g. server FQDN or YOUR name) [] koji se prikazuje prilikom kreiranja privatnog ključa i sertifikata unesete domen VM (domen koji je adekvatno podešen na DNS serveru za ovu VM), npr. ldap.institucija.ac.rs.

  • Voditi računa o tome da se izabrani naziv privatnog ključa i sertifikata unese u sve naredne fajlove koji to zahtevaju.

openssl req -nodes -x509 -newkey rsa:4096 -keyout /etc/openldap/certs/institucija.ac.rs.key -out /etc/openldap/certs/institucija.ac.rs.crt -days 3650
Odgovoriti na postavljena pitanja:

Odgovoriti na postavljena pitanja:

Country Name (2 letter code) [XX]: RS
State or Province Name (full name) []: Klik ENTER
Locality Name (eg, city) [Default City]:Belgrade
Organization Name (eg, company) [Default Company Ltd]: Naziv vaše institucije
Organizational Unit Name (eg, section) []: Klik ENTER
Common Name (eg, your name or your server's hostname) []: ldap.institucija.ac.rs
Email Address []: Klik ENTER
  • Napomena kod dela Common Name (eg, your name or your server's hostname) []: ubavezno upisati domen VM.

Promeniti vlasništvo sertifikata i privatnog ključa:

chown ldap:ldap /etc/openldap/certs/institucija.ac.rs.crt
chown ldap:ldap /etc/openldap/certs/institucija.ac.rs.key

Omogućiti SSL editovanjem fajla ldap.conf:

vim /etc/openldap/ldap.conf

Zakomentarisati liniju TLS_CACERTDIR /etc/openldap/certs i dodati prikazanu liniju TLS_CACERT uz unos odgovarajućeg naziva sertifikata:

#TLS_CACERTDIR /etc/openldap/certs
TLS_CACERT /etc/openldap/certs/institucija.ac.rs.crt

Kako bi se izbeglo upozorenje o grešci prilikom startovanja radiusd procesa treba dodati sledeću liniju na kraj fajla:

TLS_MOZNSS_COMPATIBILITY off
chown ldap:ldap /etc/openldap/ldap.conf
systemctl restart slapd

Preuzeti fajl olcTLS.ldif

wget https://docs.amres.ac.rs/download/ldap/olcTLS.ldif -O /etc/openldap/olcTLS.ldif
vim /etc/openldap/olcTLS.ldif

Modifikovati označene linije tako da se unese putanja i naziv kreiranog sertifikata i privatnog ključa:

dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/openldap/certs/institucija.ac.rs.crt
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/institucija.ac.rs.crt
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/institucija.ac.rs.key

Fajl sa ovom konfiguraciom se unosi komandom:

ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/olcTLS.ldif

Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

Import LDAP šema

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
Izveštaj o uspešnom unosu šema u konfiguraciju
[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=ppolicy,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=openldap,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=dyngroup,cn=schema,cn=config"

Pored šema koje su do sada unete u konfiguraciju, potrebno je preuzeti i koristiti dodatne šeme:

  • eduperson.ldif,
  • schac.ldif,
  • eduorg.ldif,
  • edumember.ldif i
  • rsEdu.ldif
wget https://docs.amres.ac.rs/download/ldap/edumember.ldif -O /etc/openldap/schema/edumember.ldif
wget https://docs.amres.ac.rs/download/ldap/eduorg.ldif -O /etc/openldap/schema/eduorg.ldif
wget https://docs.amres.ac.rs/download/ldap/eduperson.ldif -O /etc/openldap/schema/eduperson.ldif
wget https://docs.amres.ac.rs/download/ldap/schac.ldif -O /etc/openldap/schema/schac.ldif
wget https://docs.amres.ac.rs/download/ldap/rsEdu.ldif -O /etc/openldap/schema/rsEdu.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/eduperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/schac.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/eduorg.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/edumember.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/rsEdu.ldif
Izveštaj o uspešnom unosu šema u konfiguraciju
[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/eduperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=eduperson,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/schac.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=schac,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/eduorg.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=eduorg,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/edumember.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=edumember,cn=schema,cn=config"

[root@ldap ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/rsEdu.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=rsEdu,cn=schema,cn=config"
Provera unesenih šema u konfiguraciju baze
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn

Izveštaj:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
# extended LDIF
#
# LDAPv3
# base <cn=schema,cn=config> with scope subtree
# filter: (objectclass=*)
# requesting: dn
#

# schema, config
dn: cn=schema,cn=config

# {0}core, schema, config
dn: cn={0}core,cn=schema,cn=config

# {1}cosine, schema, config
dn: cn={1}cosine,cn=schema,cn=config

# {2}ppolicy, schema, config
dn: cn={2}ppolicy,cn=schema,cn=config

# {3}inetorgperson, schema, config
dn: cn={3}inetorgperson,cn=schema,cn=config

# {4}openldap, schema, config
dn: cn={4}openldap,cn=schema,cn=config

# {5}dyngroup, schema, config
dn: cn={5}dyngroup,cn=schema,cn=config

# {6}eduperson, schema, config
dn: cn={6}eduperson,cn=schema,cn=config

# {7}schac, schema, config
dn: cn={7}schac,cn=schema,cn=config

# {8}eduorg, schema, config
dn: cn={8}eduorg,cn=schema,cn=config

# {9}edumember, schema, config
dn: cn={9}edumember,cn=schema,cn=config

# {10}rsEdu, schema, config
dn: cn={10}rsEdu,cn=schema,cn=config

# search result
search: 2
result: 0 Success

# numResponses: 13
# numEntries: 12

Kreiranje organizacije (institucije) (institucija.ac.rs):

Preuzeti fajl add_org.ldif

wget https://docs.amres.ac.rs/download/ldap/add_org.ldif -O /etc/openldap/scratch/add_org.ldif

Modifikovati označene linije tako da definiše Suffix baze, DN administratora baze i njegova lozinku u enkriptovanom obliku, koja je kreirana u prethodnim koracima:

dn: dc=institucija,dc=ac,dc=rs

o: Example Organization

dc: institucija

vim /etc/openldap/scratch/add_org.ldif
1
2
3
4
5
dn: dc=institucija,dc=ac,dc=rs
objectClass: dcObject
objectClass: organization
o: Naziv institucije
dc: institucija
ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_org.ldif
Komanda traži unos administratorske lozinke u običnom formatu.
[root@ldap ~]# ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_org.ldif
Enter LDAP Password: testpass123
adding new entry "dc=institucija,dc=ac,dc=rs"

Kreiranje organizacionih jedinica u okviru baze podataka

Izabrati neki od ponuđenih principa:

Princip 1

Ovaj princip se koristi ukoliko planirate da korisničke naloge zaposlenih i učenika/studenata smestite u istu organizacionu jedinicu ili nije potrebno da unosite korisničke naloge učenika/studenata uopšte.

Preuzeti fajl add_ou1.ldif i izmeniti Suffix-a baze (dc=institucija,dc=ac,dc=rs).

Rezultat je kreiranje organizacionih jedinica people, groups i system:

wget https://docs.amres.ac.rs/download/ldap/add_ou1.ldif -O /etc/openldap/scratch/add_ou.ldif
vim /etc/openldap/scratch/add_ou.ldif
dn: ou=people,dc=institucija,dc=ac,dc=rs
objectClass: organizationalUnit
objectClass: top
ou: People

dn: ou=groups,dc=institucija,dc=ac,dc=rs
objectClass: organizationalUnit
objectClass: top
ou: Groups

dn: ou=system,dc=institucija,dc=ac,dc=rs
objectClass: organizationalUnit
objectClass: top
ou: System
  • Nakon što se se opredelili za princip koji ćete koristiti preuzet i izmenjen fajl add_ou.ldif uneti u konfiguraciju:

  • Napomena: Umesto dela cn=admin,dc=institucija,dc=ac,dc=rs unosi se DN administatora kog ste kreirali u prethodnim koracima.

ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_ou.ldif
  • Napomena: Komanda traži unos administratorske lozinke u običnom formatu
[root@ldap ~]# ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_ou.ldif
Enter LDAP Password: testpass123
  • Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:
adding new entry "ou=people,dc=institucija,dc=ac,dc=rs"

adding new entry "ou=groups,dc=institucija,dc=ac,dc=rs"

adding new entry "ou=system,dc=institucija,dc=ac,dc=rs"

Princip 2

Ovaj princip se koristi ukoliko planirate da razdvojite korisničke naloge zaposlenih i učenika/studenata.

Preuzeti fajl add_ou2.ldif i izmeniti Suffix-a baze (dc=institucija,dc=ac,dc=rs).

Rezultat je kreiranje organizacionih jedinica staff, students, groups i system.

wget https://docs.amres.ac.rs/download/ldap/add_ou2.ldif -O /etc/ldap/scratch/add_ou.ldif
vim /etc/ldap/scratch/add_ou.ldif
dn: ou=staff,dc=institucija,dc=ac,dc=rs
objectClass: organizationalUnit
objectClass: top
ou: Staff

dn: ou=students,dc=institucija,dc=ac,dc=rs
objectClass: organizationalUnit
objectClass: top
ou: Students

dn: ou=groups,dc=institucija,dc=ac,dc=rs
objectClass: organizationalUnit
objectClass: top
ou: Groups

dn: ou=system,dc=institucija,dc=ac,dc=rs
objectClass: organizationalUnit
objectClass: top
ou: System
  • Nakon što se se opredelili za princip koji ćete koristiti preuzet i izmenjen fajl add_ou.ldif uneti u konfiguraciju:

  • Napomena: Umesto dela cn=admin,dc=institucija,dc=ac,dc=rs unosi se DN administatora kog ste kreirali u prethodnim koracima.

ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_ou.ldif
  • Napomena: Komanda traži unos administratorske lozinke u običnom formatu
[root@ldap ~]# ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_ou.ldif
Enter LDAP Password: testpass123
  • Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:
adding new entry "ou=staff,dc=institucija,dc=ac,dc=rs"

adding new entry "ou=students,dc=institucija,dc=ac,dc=rs"

adding new entry "ou=groups,dc=institucija,dc=ac,dc=rs"

adding new entry "ou=system,dc=institucija,dc=ac,dc=rs"

Kreiranje enkriptovane (nečitljive) lozinke

Veoma je važno da kada se kreira sistemski ili korisnički nalog u bazi njegova lozinka bude u enkriptovanom formatu

U sledećim koracima uputstva biće prikazan postupak kreiranja sistemskog i korisničkog naloga. Prilikom popunjavanja podataka posebno obratiti pažnju na to da lozinke treba uneti u enkriptovanom obliku.

Kreirati enkriptovanu lozinku za korisnika baze sledećom komandom:

slappasswd
  • New password: UNETI_PROIZVOLJNU_LOZINKU

  • Re-enter new password: PONOVITI_UNOS_PROIZVOLJNE_LOZINKE

[root@ldap ~]# slappasswd
New password: testpass123
Re-enter new password: testpass123
{SSHA}HaiiVdcjomZsoehlWZ9aKfH0hUWudgRA

Unesena lozinka će se ispisati u enkriptovanom formatu

Na primer: {SSHA}HaiiVdcjomZsoehlWZ9aKfH0hUWudgRA

Dobijenu enkriptovanu lozinku je potrebno sačuvati, biće neophodna u daljem procesu kreiranja korisnika!

Kreiranje sistemskog naloga

Ovaj nalog će dobiti funkciju monitoringa u bazi.

Preuzeti fajl add_idpuser.ldif.

  • Izmeniti DN naloga koji se kreira tako da mu Suffix baze bude odgovarajući (dc=institucija,dc=ac,dc=rs)

  • Umesto dela {SSHA}nk8A/+uFK**************** unosi se lozinka u enkriptovanom formatu

wget https://docs.amres.ac.rs/download/ldap/add_idpuser.ldif -O /etc/openldap/scratch/add_idpuser.ldif
vim /etc/openldap/scratch/add_idpuser.ldif
1
2
3
4
5
6
7
dn: cn=idpuser,ou=system,dc=institucija,dc=ac,dc=rs
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: idpuser
sn: idpuser
userPassword: {SSHA}nk8A/+uFK****************
  • Napomena: Umesto dela cn=admin,dc=institucija,dc=ac,dc=rs unosi se DN administatora kog ste kreirali u prethodnim koracima.
ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_idpuser.ldif
  • Napomena: Komanda traži unos administratorske lozinke u običnom (plain text) formatu.
[root@ldap ~]# ldapadd -W -D "cn=admin,dc=institucija,dc=ac,dc=rs" -H ldapi:/// -f /etc/openldap/scratch/add_idpuser.ldif
Enter LDAP Password: testpass123
  • Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:
adding new entry "cn=idpuser,ou=system,dc=institucija,dc=ac,dc=rs"

Konfiguracija liste za kontrolu pristupa

Preuzeti fajl add_idpuser.ldif.

wget https://docs.amres.ac.rs/download/ldap/olcAcl.ldif -O /etc/openldap/scratch/olcAcl.ldif
  • Umesto dela cn=admin,dc=institucija,dc=ac,dc=rs unosi se DN administatora kog ste kreirali u prethodnim koracima.
  • Umesto dela cn=idpuser,ou=system,dc=institucija,dc=ac,dc=rs unosi se DN sistemskog naloga kog ste kreirali u prethodnim koracima.
vim /etc/openldap/scratch/olcAcl.ldif
1
2
3
4
5
6
7
8
dn: olcDatabase={2}hdb,cn=config
changeType: modify
replace: olcAccess
olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break
olcAccess: {1}to attrs=userPassword by self write by anonymous auth by dn="cn=admin,dc=institucija,dc=ac,dc=rs" write by * none
olcAccess: {2}to dn.base="" by anonymous auth by * read
olcAccess: {3}to dn.base="cn=Subschema" by * read
olcAccess: {4}to * by dn.exact="cn=idpuser,ou=system,dc=institucija,dc=ac,dc=rs" read by anonymous auth by self read
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/olcAcl.ldif
  • Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"
  • Napomena: Ukoliko vam je potrebna konsultacija oko specifičnije liste za kontrolu pristupa kontaktirajte nas na imejl adresu helpdesk@amres.ac.rs.

Moduli

memberof

wget https://docs.amres.ac.rs/download/ldap/add_memberof.ldif -O /etc/openldap/scratch/add_memberof.ldif
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/add_memberof.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
adding new entry "cn=module,cn=config"

adding new entry "olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config"

refint

wget https://docs.amres.ac.rs/download/ldap/add_refint1.ldif -O /etc/openldap/scratch/add_refint1.ldif
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/add_refint1.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
modifying entry "cn=module{0},cn=config"
wget https://docs.amres.ac.rs/download/ldap/add_refint2.ldif -O /etc/openldap/scratch/add_refint2.ldif
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/add_refint2.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
adding new entry "olcOverlay={1}refint,olcDatabase={2}hdb,cn=config"

unique

Uvoz i korišćenje ovog modula osigurava unikatnu vrednost određenog atributa u bazi.

wget https://docs.amres.ac.rs/download/ldap/add_unique.ldif -O /etc/openldap/scratch/add_unique.ldif
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/add_unique.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
modifying entry "cn=module{0},cn=config"

Ovaj modul se koristi sa ciljem da se osigura unikatna vrednost uid atributa, definisanjem dela:

olcUniqueAttribute: uid

wget https://docs.amres.ac.rs/download/ldap/add_unique1.ldif -O /etc/openldap/scratch/add_unique1.ldif
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/add_unique1.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
adding new entry "olcOverlay={2}unique,olcDatabase={2}hdb,cn=config"

Poboljšanje performansi baze

wget https://docs.amres.ac.rs/download/ldap/olcDbIndex.ldif -O /etc/openldap/scratch/olcDbIndex.ldif  
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/olcDbIndex.ldif  
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"
wget https://docs.amres.ac.rs/download/ldap/olcSizeLimit.ldif -O /etc/openldap/scratch/olcSizeLimit.ldif
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/olcSizeLimit.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

modifying entry "olcDatabase={-1}frontend,cn=config"

Konfiguracija logova

Preuzeti fajl 99-slapd.conf:

wget https://docs.amres.ac.rs/download/ldap/99-slapd.conf -O /etc/rsyslog.d/99-slapd.conf

Preuzeti fajl olcLogLevelStats.ldif:

wget https://docs.amres.ac.rs/download/ldap/olcLogLevelStats.ldif -O /etc/openldap/scratch/olcLogLevelStats.ldif
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/olcLogLevelStats.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
systemctl restart rsyslog
systemctl restart slapd

Dodavanje korisničkog naloga

Preuzeti fajl user1.ldif:

wget https://docs.amres.ac.rs/download/ldap/user1.ldif -O /etc/openldap/scratch/user1.ldif

Otvoriti fajl i izvršiti potrebne izmene:

vim /etc/openldap/scratch/user1.ldif
dn: uid=user1,ou=people,dc=institucija,dc=ac,dc=rs
changetype: add
objectClass: rsEduPerson
objectClass: top
cn: Ime Prezime
eduPersonPrincipalName: user1@institucija.ac.rs
givenName: Ime
o: Naziv institucije
rsEduPersonAffiliation: zaposleni
rsEduPersonScopedAffiliation: zaposleni@institucija.ac.rs
sn: Prezime
userPassword: {SSHA}nk8A/+uFK***************
displayName: Ime Prezime
mail: test.user1@gmail.com
rsEduPersonUniqueNumber:

Voditi računa o dn podatku korisnika, tu se specificira njegovo korisničko ime (uid), a takođe i organizaciona jedinica (ou=people) u kojoj će biti smešten.

  • Ukoliko ste koristili Princip 2 i kreirali organizacione jedinice ou=staff i ou=students, korisnike je potrebno da smestite u te organizacione jedinice njihovim specificiranjem u okviru dn podatka korisnika.

Kod popunjavanja podataka o korisniku posebno voditi računa o atributima eduPersonPrincipalName i rsEduPersonScopedAffiliation koji se sastoje od domena institucije, a ne hostname podatka VM! Takođe korisnička lozinka treba biti uneta u enkriptovanom formatu, a postupak enkripcije je dat u prethodnim koracima

Napomene:

  • Objekt klase koji se koristi je rsEduPerson jer pruža kreiranje standardizovanog seta atributa potrebnog za ostvarivanje digitalnog ideniteta u Akademskoj mreži Republike Srbije.
  • Atribut uid predstavlja Jedinstveni ID osobe, koji se koristi kao korisničko ime
  • Atribut cn predstavlja ime i prezime korisnika
  • Atribut eduPersonPrincipalName predstavlja Jedinstveni ID osobe uz sinaksu : <uid>@<domen_institucije>, npr. petar@institucija.ac.rs
  • Atribut givenName predstavlja ime korisnika
  • Atribut o predstavlja naziv institucije
  • Atribut rsEduPersonAffiliation definiše način na koji je osoba povezana sa institucijom (moguće vrednosti su: student, učenik, nastavni kadar, zaposleni, spoljni saradnik, korisnik usluge, gost)
  • Atribut rsEduPersonScopedAffiliation definiše način na koji je osoba povezana sa institucijom uz sintaksu: <rsEduPersonAffiliation>@<domen_institucije>, npr. zaposleni@institucija.ac.rs
  • Atribut sn predstavlja prezime korisnika
  • Atribut userPassword predstavlja korisničku lozinku u enkriptovanom (nečitljivom) formatu
  • Atribut displayName predstavlja ime i prezime korisnika
  • Atribut mail predstavlja imejl adresu korisnika
  • Atribut rsEduPersonUniqueNumber predstavlja jedinstveni, zvanično dodeljen, nacionalni brojni identifikator osobe.
  • eduPersonEntitlement je specijalna vrsta atributa koji se koristi za autorizaciju. Može se koristiti da bi se utvrdilo da li korisnik ima pravo da koristi određeni servis.
  • rsEduPersonLocalNumber je lokalni brojni identifikator osobe, npr. za studenta broj studenta ili za zaposlenog broj zaposlenog.

Više o navedenim atributima možete da pročitate u:

Nakon što su uneti svi traženi podaci o korisniku, korisnički nalog se unosi u konfiguraciju komandom:

  • Napomena: Umesto dela cn=admin,dc=institucija,dc=ac,dc=rs unosi se DN administatora kog ste kreirali u prethodnim koracima.
ldapadd -D "cn=admin,dc=institucija,dc=ac,dc=rs" -W -f /etc/openldap/scratch/user1.ldif
  • Napomena: Komanda traži unos administratorske lozinke u običnom formatu
[root@ldap ~]# ldapadd -D "cn=admin,dc=institucija,dc=ac,dc=rs" -W -f /etc/openldap/scratch/user1.ldif
Enter LDAP Password: testpass123
  • Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:
adding new entry "uid=user1,ou=people,dc=institucija,dc=ac,dc=rs"

Dodavanje test eduroam naloga za monitoring

Preuzeti fajl testuser.ldif:

wget https://docs.amres.ac.rs/download/ldap/testuser.ldif -O /etc/openldap/scratch/testuser.ldif

Otvoriti fajl i izvršiti potrebne izmene:

vim /etc/openldap/scratch/testuser.ldif
dn: uid=testuser,ou=people,dc=institucija,dc=ac,dc=rs
changetype: add
objectClass: rsEduPerson
objectClass: top
cn: Test Nalog
eduPersonPrincipalName: testuser@institucija.ac.rs
givenName: Test
o: Naziv institucije
rsEduPersonAffiliation: zaposleni
rsEduPersonScopedAffiliation: zaposleni@institucija.ac.rs
sn: Nalog
userPassword: {SSHA}nk8A/+uFK***************
displayName: Test Nalog
mail: admin.mail@gmail.com

Ukoliko ste koristili Princip 2 i kreirali organizacione jedinice ou=staff i ou=students, potrebno je da eduroam test korisnika zamenite organizacionu jedinica (ou=people) u kojoj će biti smešten.

  • korisnike je potrebno da smestite u te organizacione jedinice njihovim specificiranjem u okviru dn podatka korisnika.

Kod popunjavanja podataka o test korisniku posebno voditi računa o atributima eduPersonPrincipalName i rsEduPersonScopedAffiliation koji se sastoje od domena institucije, a ne hostname podatka VM! Takođe korisnička lozinka treba biti uneta u enkriptovanom formatu, a postupak enkripcije je dat u prethodnim koracima

Potrebno je izmeniti podatke za sledeće atribute:

  • Atribut eduPersonPrincipalName predstavlja Jedinstveni ID osobe uz sinaksu : <uid>@<domen_institucije>, npr. petar@institucija.ac.rs
  • Atribut o predstavlja naziv institucije
  • Atribut rsEduPersonScopedAffiliation definiše način na koji je osoba povezana sa institucijom uz sintaksu: <rsEduPersonAffiliation>@<domen_institucije>, npr zaposleni@institucija.ac.rs
  • Atribut userPassword predstavlja korisničku lozinku u enkriptovanom (nečitljivom) formatu
  • Atribut mail predstavlja imejl adresu administrativnog kontakta institucije

Nakon što su uneti svi traženi podaci o test korisniku, nalog se unosi u konfiguraciju komandom:

  • Napomena: Umesto dela cn=admin,dc=institucija,dc=ac,dc=rs unosi se DN administatora kog ste kreirali u prethodnim koracima.
ldapadd -D "cn=admin,dc=institucija,dc=ac,dc=rs" -W -f /etc/openldap/scratch/testuser.ldif
  • Napomena: Komanda traži unos administratorske lozinke u običnom formatu
[root@ldap ~]# ldapadd -D "cn=admin,dc=institucija,dc=ac,dc=rs" -W -f /etc/openldap/scratch/testuser.ldif
Enter LDAP Password: testpass123
  • Nakon uspešno izvršene komande prikazaće se sledeći izveštaj:
adding new entry "uid=testuser,ou=people,dc=institucija,dc=ac,dc=rs"

Dodavanje većeg broja naloga iz komandne linije

Preuzeti fajl nekoliko_usera.ldif:

wget https://docs.amres.ac.rs/download/ldap/nekoliko_usera.ldif -O /etc/openldap/scratch/nekoliko_usera.ldif

Otvoriti fajl i izvršiti potrebne izmene:

vim /etc/openldap/scratch/nekoliko_usera.ldif
dn: uid=user2,ou=people,dc=institucija,dc=ac,dc=rs
changetype: add
objectClass: rsEduPerson
objectClass: top
cn: Ime Prezime
eduPersonPrincipalName: user2@institucija.ac.rs
givenName: Ime
o: Naziv institucije
rsEduPersonAffiliation: zaposleni
rsEduPersonScopedAffiliation: zaposleni@institucija.ac.rs
sn: Prezime
userPassword: {SSHA}nk8A/+uFK***************
displayName: Ime Prezime
mail: user2@gmail.com
rsEduPersonUniqueNumber:

dn: uid=user3,ou=people,dc=institucija,dc=ac,dc=rs
changetype: add
objectClass: rsEduPerson
objectClass: top
cn: Ime Prezime
eduPersonPrincipalName: user3@institucija.ac.rs
givenName: Ime
o: Naziv institucije
rsEduPersonAffiliation: zaposleni
rsEduPersonScopedAffiliation: zaposleni@institucija.ac.rs
sn: Prezime
userPassword: {SSHA}nk8A/+uFK***************
displayName: Ime Prezime
mail: user3@gmail.com
rsEduPersonUniqueNumber:

dn: uid=user4,ou=people,dc=institucija,dc=ac,dc=rs
changetype: add
objectClass: rsEduPerson
objectClass: top
cn: Ime Prezime
eduPersonPrincipalName: user4@institucija.ac.rs
givenName: Ime
o: Naziv institucije
rsEduPersonAffiliation: zaposleni
rsEduPersonScopedAffiliation: zaposleni@institucija.ac.rs
sn: Prezime
userPassword: {SSHA}nk8A/+uFK***************
displayName: Ime Prezime
mail: user4@gmail.com
rsEduPersonUniqueNumber:

Kod popunjavanja podataka o korisniku posebno voditi računa o atributima eduPersonPrincipalName i rsEduPersonScopedAffiliation koji se sastoje od domena institucije, a ne hostname podatka VM! Takođe korisnička lozinka treba biti uneta u enkriptovanom formatu, a postupak enkripcije je dat u prethodnim koracima

Napomene:

  • Objekt klase koji se koristi je rsEduPerson jer pruža kreiranje standardizovanog seta atributa potrebnog za ostvarivanje digitalnog ideniteta u Akademskoj mreži Republike Srbije.
  • Atribut uid predstavlja Jedinstveni ID osobe, koji se koristi kao korisničko ime
  • Atribut cn predstavlja ime i prezime korisnika
  • Atribut eduPersonPrincipalName predstavlja Jedinstveni ID osobe uz sinaksu : <uid>@<domen_institucije>, npr. petar@institucija.ac.rs
  • Atribut givenName predstavlja ime korisnika
  • Atribut o predstavlja naziv institucije
  • Atribut rsEduPersonAffiliation definiše način na koji je osoba povezana sa institucijom (moguće vrednosti su: student, učenik, nastavni kadar, zaposleni, spoljni saradnik, korisnik usluge, gost)
  • Atribut rsEduPersonScopedAffiliation definiše način na koji je osoba povezana sa institucijom uz sintaksu: <rsEduPersonAffiliation>@<domen_institucije>, npr zaposleni@institucija.ac.rs
  • Atribut sn predstavlja prezime korisnika
  • Atribut userPassword predstavlja korisničku lozinku u enkriptovanom (nečitljivom) formatu
  • Atribut displayName predstavlja ime i prezime korisnika
  • Atribut mail predstavlja imejl adresu korisnika
  • Atribut rsEduPersonUniqueNumber predstavlja jedinstveni, zvanično dodeljen, nacionalni brojni identifikator osobe.
  • eduPersonEntitlement je specijalna vrsta atributa koji se koristi za autorizaciju. Može se koristiti da bi se utvrdilo da li korisnik ima pravo da koristi određeni servis.
  • rsEduPersonLocalNumber je lokalni brojni identifikator osobe, npr. za studenta broj studenta ili za zaposlenog broj zaposlenog.

Više o navedenim atributima možete da pročitate u:

Nakon što su uneti svi traženi podaci o korisnicima, korisnički nalozi se unose u konfiguraciju komandom:

  • Napomena: Umesto dela cn=admin,dc=institucija,dc=ac,dc=rs unosi se DN administatora kog ste kreirali u prethodnim koracima.
ldapadd -D "cn=admin,dc=institucija,dc=ac,dc=rs" -W -f /etc/openldap/scratch/nekoliko_usera.ldif
  • Napomena: Komanda traži unos administratorske lozinke u običnom formatu
[root@ldap ~]# ldapadd -D "cn=admin,dc=institucija,dc=ac,dc=rs" -W -f /etc/openldap/scratch/nekoliko_usera.ldif
Enter LDAP Password: testpass123

Onemogućiti anonimno prijavljivanje

ldapwhoami -H ldap:// -x -ZZ

Ukoliko je rezultat komande: anonymous treba onemogućiti anonimno uspostavljanje veze sa bazom podataka.

wget https://docs.amres.ac.rs/download/ldap/disableAnonymousBind.ldif -O /etc/openldap/scratch/disableAnonymousBind.ldif
ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/scratch/disableAnonymousBind.ldif
Nakon uspešno izvršene komande prikazaće se sledeći izveštaj
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

modifying entry "olcDatabase={-1}frontend,cn=config"

Ponovna provera

[root@ldap ~]# ldapwhoami -H ldap:// -x -ZZ
ldap_bind: Inappropriate authentication (48)
additional info: anonymous bind disallowed

Pregled kreirane OpenLDAP baze podataka

Ovim postupkom OpenLDAP baza je uspešno instalirana i konfigurisana.

Apache Directory Studio softver

  • Sa navedenih linkova možete da preuzmete Apache Directory Studio softver, u zavisnosti od operativnog sistema na kom se instalira.

Apache Directory Studio softver za Linux OS: https://directory.apache.org/studio/download/download-linux.html

Apache Directory Studio softver za Windows OS: https://directory.apache.org/studio/download/download-windows.html

Apache Directory Studio softver za MAC OS: https://directory.apache.org/studio/download/download-macosx.html

Povezivanje Apache Directory Studio aplikacije sa kreiranom LDAP bazom

Za kreiranje konekcije sa OpenLDAP bazom, potrebno je da se klikne na polje New Connection:

Otvaranje nove konekcije, korak 1

Otvaranje nove konekcije, korak 1

U sledećem koraku, dati naziv konekcije, uneti IP adresa virtuelne mašine na kojoj se nalazi OpenLDAP baza i port 389 kao port za komunikaciju. Zatim klik na Next.

Otvaranje nove konekcije, korak 2

Otvaranje nove konekcije, korak 2

Sledeći korak je unos DN-a administratora baze (npr. cn=admin,dc=institucija,dc=ac,dc=rs) i njegove odgovarajuće lozinke:

Otvaranje nove konekcije, korak 3

Otvaranje nove konekcije, korak 3

Prikaz formirane OpenLDAP baze u okviru aplikacije Apache Directory Studio:

Otvaranje nove konekcije, korak 4

Otvaranje nove konekcije, korak 4