Postavitev LDAP s statično datoteko /etc/slapd.conf

Nastavitve strežnika so shranjene v posebni datoteki /etc/openldap/slapd.conf ter shemah v imeniku /etc/openldap/schema/.

Namestitev strežnika OpenLDAP

  1. Preverimo, da imamo nameščen openldap in podporne programe:

    [root@system ~]# yum -y install openldap-servers openldap-clients
    

  2. Preverite katero datoteko imate /etc/sysconfig/slapd ali /etc/sysconfig/ldap. V njej nastavimo:

    # stare nastavitve izklopimo, uporablja se SLAPD_URLS
    SLAPD_LDAP=no
    SLAPD_LDAPI=no
    SLAPD_LDAPS=no
    # vključimo poslušanje LDAP na vtičnicah UNIX, tcp/389 ter tcp/636
    SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"
    # vključimo uporabo nastavitvene datoteke
    SLAPD_OPTIONS="-f /etc/openldap/slapd.conf"
    

  3. Samodejni zagon vklopimo z ukazom chkconfig slapd on oziroma systemctl enable slapd.service.

  4. Vklopimo logiranje v /var/log/ldap.log:

    [root@system ~]# echo "local4.* /var/log/ldap.log" > /etc/rsyslog.d/ldap.conf
    [root@system ~]# cat > /etc/logrotate.d/ldap <<EOF
    /var/log/ldap.log {
        sharedscripts
        postrotate
    	/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
    }
    EOF
    [root@system ~]# systemctl restart rsyslog.service #Fedora
    [root@system ~]# service rsyslog restart #CentOS
    

Ustvarimo certifikate za strežnik LDAP

Uredimo samopodpisane certifikate za imenik LDAP.

Certifikat moramo dostaviti vsem odjemalcem, ki se bodo povezovali do strežnika. Zaradi varnosti se odsvetuje uporaba certifikate izdanega pri javnih internetnih certifikatnih agencijah! Če res ne želite uporabiti samopodpisanega certitikata se posvetujte s strokovnjaki za certifikate ali z Arnesom.

Za splošno ime certifikata CN (angl. Common Name) vpišite "Polno ime organizacije, imenik LDAP", datoteko z zasebnim ključem zgenerirajte v /etc/openldap/certs/key.pem, datoteko s certifikatom pa v /etc/openldap/certs/cert.pem.

  1. Ustvarimo zasebni ključ in zaščitimo dostop do njega:

    [root@system ~]# openssl genrsa -out /etc/openldap/certs/key.pem 2048
    Generating RSA private key, 2048 bit long modulus
    ..................+++
    .................................+++
    e is 65537 (0x10001)
    [root@system ~]# chmod g=r,o= /etc/openldap/certs/key.pem
    [root@system ~]# chown root:ldap /etc/openldap/certs/key.pem
    

  2. Ustvarimo certifikat, naštejte vse naslove IP in imena DNS, ki jih imajo vsi strežniki LDAP. Tudi localhost, lokalne naslove in naslove IPv6:

    [root@system ~]# /bin/cp -f /etc/pki/tls/openssl.cnf myssl.cnf
    [root@system ~]# echo "[myssl]" >>myssl.cnf
    [root@system ~]# echo "subjectAltName = IP:127.0.0.1, IP:0::1, DNS:localhost, DNS:localhost.localdomain, IP:10.0.99.305, DNS:ldap.os-prva.si, DNS:ldap1.os-prva.si, DNS:ldap2.os-prva.si, DNS:ldap3.os-prva.si" >>myssl.cnf
    [root@system ~]# openssl req -sha1 -config myssl.cnf -extensions myssl -new -x509 -key /etc/openldap/certs/key.pem -out /etc/openldap/certs/cert.pem -set_serial 20120824121259 -days 1440 -subj "/C=SI/L=Kranj/CN=Osnovna sola Janeza Novaka, imenik LDAP"
    

  3. Preverimo certifikat:

    [root@system ~]# openssl x509 -noout -text -in /etc/openldap/certs/cert.pem
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                12:4c:b7:c7:87:2b
            Signature Algorithm: sha1WithRSAEncryption
            Issuer: C=SI, L=Kranj, CN=Osnovna sola Janeza Novaka, imenika LDAP
            Validity
                Not Before: Jul 19 09:04:34 2012 GMT
                Not After : Jun 28 09:04:34 2016 GMT
            Subject: C=SI, L=Kranj, CN=Osnovna sola Janeza Novaka, imenika LDAP
            Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                    Public-Key: (2048 bit)
                    Modulus:
                        00:c8:03:ca:68:4d:e8:ee:94:c2:a6:7f:82:d0:91:
                        aa:68:56:01:ad:d7:b8:b1:76:ae:59:dd:6c:2a:73:
                        20:68:63:c6:ab:c2:14:f3:e8:8c:08:df:e9:71:e6:
                        56:c4:ef:6f:b8:18:a7:04:bf:ab:66:27:61:17:67:
                        17:0a:57:e5:a3:12:09:9d:d7:15:00:59:1b:7a:75:
                        14:c3:24:d0:c7:c9:d4:5d:64:c1:39:53:7b:a4:e5:
                        2b:73:41:c0:b4:41:84:06:89:f2:ba:1a:37:cf:cb:
                        76:75:f4:8e:fa:9a:1d:05:30:74:c0:73:68:12:86:
                        fe:0f:5d:6c:cc:21:39:e8:f5:f0:08:ca:9c:19:16:
                        6e:c9:fb:e9:cb:9e:82:26:57:78:bf:25:21:f6:2a:
                        c1:1a:de:0e:03:3b:45:42:2a:ec:5b:17:74:ad:0a:
                        d2:f2:6c:cb:8e:0d:e8:a8:10:d2:b6:9e:6f:13:02:
                        e7:2b:9a:f2:07:2a:7b:5c:3a:2a:6d:59:7a:4f:22:
                        ed:ce:8f:ea:aa:76:b8:f5:85:d8:41:18:6f:e3:f5:
                        64:4e:77:a8:c4:04:0e:37:29:0f:95:0f:b3:f0:56:
                        e1:d4:c1:6c:cd:35:54:5a:15:46:08:23:3d:0d:89:
                        d9:44:1e:d3:92:db:41:f4:42:0d:07:d1:17:dd:13:
                        8a:39
                    Exponent: 65537 (0x10001)
            X509v3 extensions:
                X509v3 Subject Key Identifier:
                    D6:8A:1B:0B:4F:34:DF:C9:11:FF:DA:AE:B4:85:B4:2F:45:A7:2D:B1
                X509v3 Authority Key Identifier:
                    keyid:D6:8A:1B:0B:4F:34:DF:C9:11:FF:DA:AE:B4:85:B4:2F:45:A7:2D:B1
    
                X509v3 Basic Constraints:
                    CA:TRUE
        Signature Algorithm: sha1WithRSAEncryption
            01:ee:bf:2f:f1:c3:77:dc:7c:0d:74:f9:c2:26:59:fb:2d:ca:
            5b:ce:d8:90:96:45:54:4c:b4:cb:4e:7d:bb:1a:54:93:43:ec:
            11:6a:da:8d:3b:7e:fd:17:24:be:f4:cf:c8:1e:f8:a2:76:b4:
            d5:bc:1f:90:c4:49:e6:4c:c8:8b:fe:de:da:3a:71:da:f3:66:
            2a:9b:3f:9d:24:94:36:d7:4a:8d:7b:69:5f:dc:b9:d3:36:32:
            76:02:85:0e:70:14:b0:d4:bb:99:3b:4d:82:42:1b:00:8b:5a:
            8f:28:7e:9b:02:c2:4b:3f:a6:8a:a7:e6:7b:f5:b1:5f:bb:f9:
            24:1d:e3:9f:4d:0a:ff:02:1f:24:8c:c8:a6:0f:43:3a:70:51:
            42:9f:0a:a1:9e:8f:59:fb:3c:8b:c3:86:81:84:d1:b6:1d:e9:
            d9:9d:12:03:e9:17:ae:6a:8b:25:ab:20:12:64:65:c8:be:c8:
            95:0a:22:1c:20:83:a8:d9:2d:0b:68:44:6d:44:4a:a8:8d:5a:
            dc:37:ca:96:99:b0:44:94:ab:60:9e:4f:18:0c:af:7d:30:62:
            44:fd:e2:00:21:24:d4:e2:be:c6:5b:9a:40:84:bb:44:86:fe:
            df:d2:59:fe:01:29:ab:08:a9:ea:a9:d5:dd:e3:6b:34:30:52:
            b1:77:46:cb
    

Namestitev shem ter konfiguracija /etc/openldap/slapd.conf

  1. Namestimo ustrezne sheme:

    [root@system ~]# wget http://aai.arnes.si/static/ldap/eduperson.schema-200412 -O /etc/openldap/schema/eduperson.schema
    [root@system ~]# wget http://aai.arnes.si/static/ldap/schac.schema-20060724 -O /etc/openldap/schema/schac.schema
    

  2. Ustrezno ustvarimo in uredimo datoteko /etc/openldap/slapd.conf ter pobrišemo neuporabljeni imenik slapd.d (openldap lahko v nekaterih primerih navkljub nastavitveni datoteki prebira nastavitve iz slapd.d):

    [root@system ~]# touch /etc/openldap/slapd.conf
    [root@system ~]# chmod o-r /etc/openldap/slapd.conf
    [root@system ~]# chgrp ldap /etc/openldap/slapd.conf
    [root@system ~]# rm -rf /etc/openldap/slapd.d
    

    Vstavite ustrezno vsebino, dodatno morate biti pozorni na odebeljeno vsebino.

    # OpenLDAP config file
    include         /etc/openldap/schema/corba.schema
    include         /etc/openldap/schema/core.schema
    include         /etc/openldap/schema/cosine.schema
    include         /etc/openldap/schema/duaconf.schema
    include         /etc/openldap/schema/dyngroup.schema
    include         /etc/openldap/schema/inetorgperson.schema
    include         /etc/openldap/schema/java.schema
    include         /etc/openldap/schema/misc.schema
    include         /etc/openldap/schema/nis.schema
    include         /etc/openldap/schema/openldap.schema
    include         /etc/openldap/schema/ppolicy.schema
    include         /etc/openldap/schema/collective.schema
    include         /etc/openldap/schema/eduperson.schema
    include         /etc/openldap/schema/schac.schema
    
    pidfile         /var/run/openldap/slapd.pid
    argsfile        /var/run/openldap/slapd.args
    
    # Load dynamic backend modules
    # - modulepath is architecture dependent value (32/64-bit system)
    # modulepath /usr/lib/openldap
    modulepath /usr/lib64/openldap
    
    # moduleload accesslog.la
    # moduleload auditlog.la
    moduleload syncprov.la
    
    TLSCertificateFile /etc/openldap/certs/cert.pem
    TLSCertificateKeyFile /etc/openldap/certs/key.pem
    
    # local access doesn't need SSL
    localSSF 128
    # SSL required for any access
    security ssf=128
    
    # Server ID
    #serverID 1
    
    ############################################################
    # Global ACLs
    access to *
       by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
       by dn.exact="cn=root,dc=os-prva,dc=si" manage
       by * break
    
    # Permit RADIUS user access to data for authentication/authorisation
    access to dn.sub="dc=os-prva,dc=si" attrs=entry,eduPersonPrincipalName,userPassword,schacExpiryDate
       by dn="cn=radius,ou=System,dc=os-prva,dc=si" read
       by * break
    
    # Permit users to change their password
    access to dn.sub="dc=os-prva,dc=si" attrs=userPassword,shadowLastChange
       by self write
       by anonymous auth
       by * break
    
    # Permit users RO access to their data
    access to dn.sub="dc=os-prva,dc=si"
       by anonymous auth
       by self read
       by * break
    
    ############################################################
    # DATABASE - monitor
    # enable server status monitoring (cn=monitor)
    database monitor
    access to *
            by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
            by dn.exact="cn=root,dc=os-prva,dc=si" read
            by * none
    
    ############################################################
    # DATABASE - data - 1
    database        bdb
    suffix          dc=os-prva,dc=si
    checkpoint      1024 15
    rootdn          cn=root,dc=os-prva,dc=si
    rootpw          skritogesloroot
    
    # The database directory MUST exist prior to running slapd AND
    # should only be accessible by the slapd and slap tools.
    # Mode 700 recommended.
    directory       /var/lib/ldap
    
    # recommendation 3*cachesize
    idlcachesize    75000
    cachesize       25000
    checkpoint      1024 15
    dbconfig        set_cachesize 0 10485760 0
    dbconfig        set_lg_bsize 2097152
    dbconfig        set_lg_dir /var/lib/ldap
    dbconfig        set_flags DB_LOG_AUTOREMOVE
    
    index objectClass                       eq,pres
    index ou,cn,mail,surname,givenname      eq,pres,sub
    index uidNumber,gidNumber,loginShell    eq,pres
    index uid,memberUid                     eq,pres,sub
    index nisMapName,nisMapEntry            eq,pres,sub
    index eduPersonPrincipalName            eq,pres
    index schacPersonalUniqueCode		eq,pres
    index schacPersonalUniqueID		eq,pres
    index schacUUID				eq,pres
    index entryCSN                          eq
    index entryUUID                         eq
    

  3. Strežnik zaženemo z uakzom service slapd start oziroma systemctl start slapd.service.
  4. Vnesemo osnovne objekte s katerimi zgradimo strukturo ter dodamo testnega sistemskega uporabnika. Prave uporabnike vnašamo v ou=Users na podoben način. Datoteki predhodno ustrezno uredite.

    ldapmodify -Y EXTERNAL -H ldapi:/// -f 20boot.ldif
    ldapmodify -Y EXTERNAL -H ldapi:/// -f 21testuser.ldif
    

  5. Za dostop do imenika uredimo za vsako storitev sistemskega uporabnika in dodamo ustrezne filtre ACL. Vsak uporabnik naj ima dostop le do tistih atributov, ki jih potrebuje za delovanje. Datoteko predhodno ustrezno uredite. Odstaniti ali zakomentirati morate vnos v dn: olcDatabase={2}hdb,cn=config ter ustrezno popraviti komponento dc=os-prva.

    ldapmodify -Y EXTERNAL -H ldapi:/// -f 35radius.ldif
    

Testiranje delovanja LDAP

Za dostop do LDAP uredimo nastavitve v /etc/openldap/ldap.conf za ves sistem ali za posameznega uporabnika v njegovem domačem imeniku v datoteki ~/.ldaprc. Ustrezno uredite datoteko. Če vzpostavljate dostop z drugega računalnika morate prenesti tudi certifikat strežnika iz /etc/openldap/certs/cert.pem.

$ cat ~/.ldaprc
BASE	dc=os-prva,dc=si
URI	ldap://127.0.0.1
DEREF	never
TLS_CACERT	/etc/openldap/certs/cert.pem
TLS_REQCERT	demand

Dostop do LDAP preverite z ukazom ldapsearch.

Izpis DN vseh objektov v dc=os-prva,dc=si, brez izpisa njihovih atributov:

[user@system ~]$ ldapsearch -x -ZZ -D cn=root,dc=os-prva,dc=si -b dc=os-prva,dc=si -H ldap://127.0.0.1 -W dn
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: dn
#

# os-prva.si
dn: dc=os-prva,dc=si

# root, os-prva.si
dn: cn=root,dc=os-prva,dc=si

# People, os-prva.si
dn: ou=People,dc=os-prva,dc=si

# Computers, os-prva.si
dn: ou=Computers,dc=os-prva,dc=si

# System, os-prva.si
dn: ou=System,dc=os-prva,dc=si

# Groups, os-prva.si
dn: ou=Groups,dc=os-prva,dc=si

# eduroam, Groups, os-prva.si
dn: cn=eduroam,ou=Groups,dc=os-prva,dc=si

# nobody, Groups, os-prva.si
dn: cn=nobody,ou=Groups,dc=os-prva,dc=si

# test, System, os-prva.si
dn: uid=test,ou=System,dc=os-prva,dc=si

# radius, System, os-prva.si
dn: cn=radius,ou=System,dc=os-prva,dc=si

# search result
search: 3
result: 0 Success

Dodatno: Enak izpis lahko pridobite tudi z uporabo lokalnega dostopa, vendar le kot uporabnik root:

[root@system ~]# ldapsearch -Y EXTERNAL -H ldapi:/// dn

Preizkus dostopa uporabnika radius do imenika, izpišejo se le dovoljeni podatki:

[user@system ~]$ ldapsearch -x -ZZ -D cn=radius,ou=System,dc=os-prva,dc=si -b dc=os-prva,dc=si -H ldap://127.0.0.1 -W eduPersonPrincipalName=test@os-prva.si
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: eduPersonPrincipalName=test@os-prva.si
# requesting: ALL
#

# test, System, os-prva.si
dn: uid=test,ou=System,dc=os-prva,dc=si
userPassword:: c2tyaXRvZ2VzbG90ZXN0
eduPersonPrincipalName: test@os-prva.si
schacExpiryDate: 99991231235959Z

# search result
search: 3
result: 0 Success

# numResponses: 2
# numEntries: 1

Dodatno: Postavitev na večih strežnikih za večjo zanesljivost

OpenLDAP podpira replikacije glavni-pomožni (angl. master-slave) kot tudi replikacijo n-glavnih (angl. N-way multimaster). Redundanca glavni-pomožni zahteva večjo preudarnost pri postavitvi in analizo uporabe pri aplikacijah, hkrati pa lahko ponuja boljše performančne zmogljivosti.

Postavitev n-enakih je malce bolj zahtevna, performančno slabša, ne zahteva pa poglobljene analize aplikacij. Ker je večina postavitev imenikov v Sloveniji za manjše število uporabnikov v splošnem svetujemo postavitev n-enakih.

Najprej postavimo prvi strežnik, kot je opisano zgoraj in rezerviramo dodatni naslov IP za drugi strežnik. Strežnikov lahko dodamo tudi več, nastavitve smiselno dodamo tako kot za drugi strežnik.

Pri postavitvi strežnikov spreminjamo nastavitve na enem strežniku in nastavitveno datoteko prenesemo na ostale strežnike ali ročno ali avtomatizirano z mehanizmi kot so scp, rsync in podobni. Če želimo lahko nastavitveno datoteko shranimo v repozitorij GIT, SVN ... za spremljanje večih različic datotek. Po prenosu datoteke moramo vsak strežnik vnovič zagnati.

Dodamo replikacijo

V datoteki /etc/sysconfig/ldap oziroma /etc/sysconfig/slapd spremenimo:

SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"
v vrstico:
SLAPD_URLS="ldapi:/// ldap:/// ldaps:/// ldap://10.0.99.305:6301/"

Namesto 10.0.99.305 vpišemo naslov IP strežnika LDAP. Naslove IP preverimo z ukazom ifconfig. Vrstico moramo dodati ker so nastavitvene datoteke identične in preko nje strežnik ugotovi kateri ID/naslov za replikacijo oziroma sklop nastavitev je njegov. Za replikacijo se uporabljajo ločena vrata TCP/6301.

V datoteki /etc/openldap/slapd.conf dodamo/popravimo nastavitve serverID

[...]
# Server ID
serverID               1 "ldap://10.0.99.305:6301/"
serverID               2 "ldap://10.0.99.306:6301/"

############################################################
# Global ACLs
[...]

V datoteki /etc/openldap/slapd.conf vključimo replikacijo, vsebino dodamo na koncu bloka database xxx:

[...]
index entryUUID                         eq

# Configure LDAP synchronisation engine
overlay                syncprov
syncprov-checkpoint    10 1
syncprov-sessionlog    100

syncrepl               rid=1
                       type=refreshAndPersist
                       schemachecking=on
                       retry="10 6 60 +"
                       bindmethod=simple
                       tls_cacert="/etc/openldap/certs/cert.pem"
                       tls_reqcert=demand
                       starttls=critical
                       keepalive=10:3:1
                       network-timeout=1
                       timeout=1
                       provider="ldap://10.0.99.305:6301/"
                       searchbase="dc=os-prva,dc=si"
                       binddn="cn=root,dc=os-prva,dc=si"
                       credentials="skritogesloroot"

syncrepl               rid=2
                       type=refreshAndPersist
                       schemachecking=on
                       retry="10 6 60 +"
                       bindmethod=simple
                       tls_cacert="/etc/openldap/certs/cert.pem"
                       tls_reqcert=demand
                       starttls=critical
                       keepalive=10:3:1
                       network-timeout=1
                       timeout=1
                       provider="ldap://10.0.99.306:6301/"
                       searchbase="dc=os-prva,dc=si"
                       binddn="cn=root,dc=os-prva,dc=si"
                       credentials="skritogesloroot"

mirrormode on

Odpremo še eno okno do strežnika in spremljamo dnevnik imenika z ukazom tail -f /var/log/ldap.log.

Prvi strežnik ponovno zaženemo z ukazom service slapd restart in preverimo sporočila v dnevniški datoteki v drugem oknu. Verjetno zaznamo sporočila o nedosegljivosti drugega strežnika, kar je v tem koraku, ko še ni vzpostavljen popolnoma razumljivo:

Mar 12 14:43:45 build-c6 slapd[2861]: slap_client_connect: URI=ldap://10.0.99.306:6301/ Error, ldap_start_tls failed (-1)
Mar 12 14:43:45 build-c6 slapd[2861]: do_syncrepl: rid=002 rc -1 retrying (2 retries left)
Mar 12 14:43:55 build-c6 slapd[2861]: slap_client_connect: URI=ldap://10.0.99.306:6301/ Error, ldap_start_tls failed (-1)
Mar 12 14:43:55 build-c6 slapd[2861]: do_syncrepl: rid=002 rc -1 retrying (1 retries left)
Mar 12 14:44:05 build-c6 slapd[2861]: slap_client_connect: URI=ldap://10.0.99.306:6301/ Error, ldap_start_tls failed (-1)
Mar 12 14:44:05 build-c6 slapd[2861]: do_syncrepl: rid=002 rc -1 retrying
Mar 12 14:44:15 build-c6 slapd[2861]: slap_client_connect: URI=ldap://10.0.99.306:6301/ Error, ldap_start_tls failed (-1)
Mar 12 14:44:15 build-c6 slapd[2861]: do_syncrepl: rid=002 rc -1 retrying

Dodamo drugi strežnik

  1. nastavitevno datoteko /etc/openldap/slapd.conf prekopiramo na novi strežnik,
  2. skopiramo ter popravimo naslov IP v /etc/sysconfig/ldap oziroma /etc/sysconfig/slapd,
  3. skopiramo dodatne sheme,
  4. uredimo logiranje v /var/log/ldap.log po gornjih navodilih,
  5. skopiramo certifikat in zasebni ključ
    • vsi naslovi IP in imena vseh strežnikov morajo biti dodani, če niso je potrebno certifikat ustvariti na novo,
    • pazite na pravice datoteke key.pem.
  6. uredimo zagon imenika in ga zaženemo.

Pravilnost delovanja preverjamo v /var/log/ldap.log, kjer se beležijo napake in dostopi. Preverimo, da se podatki res sinhronizirajo, recimo tako, da dodamo uporabniško ime test2. Celotni izpis imenika pa dosežemo z ukazom ldapsearch.

[root@system ~]# ldapsearch -Y EXTERNAL -H ldapi:/// -b dc=os-prva,dc=si dn
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: dn
#

# os-prva.si
dn: dc=os-prva,dc=si

# root, os-prva.si
dn: cn=root,dc=os-prva,dc=si

# People, os-prva.si
dn: ou=People,dc=os-prva,dc=si

# Computers, os-prva.si
dn: ou=Computers,dc=os-prva,dc=si

# System, os-prva.si
dn: ou=System,dc=os-prva,dc=si

# Groups, os-prva.si
dn: ou=Groups,dc=os-prva,dc=si

# eduroam, Groups, os-prva.si
dn: cn=eduroam,ou=Groups,dc=os-prva,dc=si

# nobody, Groups, os-prva.si
dn: cn=nobody,ou=Groups,dc=os-prva,dc=si

# test, System, os-prva.si
dn: uid=test,ou=System,dc=os-prva,dc=si

# radius, System, os-prva.si
dn: cn=radius,ou=System,dc=os-prva,dc=si

# test2, System, os-prva.si
dn: uid=test2,ou=System,dc=os-prva,dc=si

# search result
search: 2
result: 0 Success

# numResponses: 12
# numEntries: 11