abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 10:22 | Pozvánky

    Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 7. a 8. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.

    Ladislav Hagara | Komentářů: 0
    dnes 08:08 | Zajímavý článek
    Nepálský ISP WorldLink Communications popisuje sedm let zavádění IPv6. Dnes provozuje přes milion IPoE přípojek, všechny s podporou IPv6, a přibližně 70 % provozu přenáší přes IPv6.… více »
    vencour | Komentářů: 1
    dnes 02:11 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 7.2 oznámil Linus Torvalds vydání Linuxu 7.3. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.

    Ladislav Hagara | Komentářů: 0
    včera 23:39 | Bezpečnostní upozornění
    Zjištěna zranitelnost v kernelu projevující se při virtualizaci. Nejde tedy o chybu samotného KVM ani konkrétního poskytovatele cloudu, ale o problém v linuxovém zpracování IPv4 paketů, který se může týkat různých virtualizačních a sandboxových prostředí. Více např. na hacker.news - Critical PwnEscape Linux Kernel Vulnerability Lets Guest VMs Read Host Memory. Aktualizace jsou k dispozici.
    vencour | Komentářů: 0
    včera 23:38 | Bezpečnostní upozornění
    Malware napsaný v Go se šíří mezi linuxovými systémy, pokouší se získávat SSH klíče a využívá kompromitované stroje pro těžbu kryptoměn. Autor použil FakeNet-NG a Wireshark k analýze síťové komunikace. Popsal také indikátory kompromitace a možnosti obrany. Zajímavé je propojení SSH bezpečnosti, analýzy síťového provozu a detekce prostřednictvím SIEM. více
    vencour | Komentářů: 0
    16.10. 15:55 | Nová verze

    Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).

    Ladislav Hagara | Komentářů: 0
    16.10. 03:44 | IT novinky

    Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.

    Ladislav Hagara | Komentářů: 16
    16.10. 03:33 | Pozvánky

    O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.

    Ladislav Hagara | Komentářů: 0
    15.10. 20:33 | Nová verze

    Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.

    Ladislav Hagara | Komentářů: 1
    15.10. 16:44 | IT novinky

    České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.

    Ladislav Hagara | Komentářů: 33
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2867 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Dotaz: OpenLDAP ACL vs PHP ldap_search()

    20.5.2015 14:59 Marián
    OpenLDAP ACL vs PHP ldap_search()
    Přečteno: 770×
    Mám problém, že PHPčkovská funkcia ldap_search() mi nevráti žiaden záznam, ale konzolový príkaz ldapsearch volaný s tými istými parametrami mi očakávaný výsledok vráti.

    Konzolový príkaz (má vrátiť obsah parametra URL pre záznam s uID = 1011223):
    ldapsearch -H ldaps://localhost:636 -x -D "uid=webuser,ou=people,dc=domain,dc=tld" -W -b "ou=users,dc=domain,dc=tld" "(uID=1011223)" "URL"
    
    PHP funkcia:
    ldap_bind($ldap_conn, 'uid=webuser,ou=people,dc=domain,dc=tld', 'heslo')
    
    $ldap_dn        = 'ou=users,dc=domain,dc=tld';
    $ldap_filter    = "(uID=$uid)";
    $ldap_attr      = array('URL');
    
    $ldap_search_result     = ldap_search($ldap_conn, $ldap_dn, $ldap_filter, $ldap_attr);
    
    skončí chybovou hláškou PHP Warning: ldap_search(): Search: No such object.

    Pri debugovaní na strane servera som zistil, že PHP ldap_search() sa snaží ísť o úroveň vyššie (dc=domain,dc=tld) a neviem prečo.

    Debug konzolového príkazu ldapsearch:
    conn=1007 op=1 SRCH base="ou=users,dc=domain,dc=tld" scope=2 deref=0 filter="(uid=1011223)"
    conn=1007 op=1 SRCH attr=url
    => access_allowed: search access to "ou=users,dc=domain,dc=tld" "entry" requested
    => dn: [1] ou=users,dc=domain,dc=tld
    => acl_get: [1] matched
    => acl_get: [1] attr entry
    => acl_mask: access to entry "ou=users,dc=domain,dc=tld", attr "entry" requested
    => acl_mask: to all values by "uid=webuser,ou=people,dc=domain,dc=tld", (=0)
    <= check a_dn_pat: uid=webuser,ou=people,dc=domain,dc=tld
    <= acl_mask: [1] applying read(=rscxd) (stop)
    <= acl_mask: [1] mask: read(=rscxd)
    => slap_access_allowed: search access granted by read(=rscxd)
    => access_allowed: search access granted by read(=rscxd)
    
    Debug PHP funkcie ldap_search():
    conn=1011 op=1 SRCH base="ou=users,dc=domain,dc=tld" scope=2 deref=0 filter="(uid=1011223)"
    conn=1011 op=1 SRCH attr=url
    => access_allowed: disclose access to "dc=domain,dc=tld" "entry" requested
    => dn: [1] ou=users,dc=domain,dc=tld
    => acl_get: [3] attr entry
    => acl_mask: access to entry "dc=domain,dc=tld", attr "entry" requested
    => acl_mask: to all values by "uid=webuser,ou=people,dc=domain,dc=tld", (=0)
    <= check a_dn_pat: cn=manager,dc=domain,dc=tld
    <= acl_mask: no more who clauses, returning =0 (stop)
    => slap_access_allowed: disclose access denied by =0
    => access_allowed: no more rules
    
    Skúšal som pridať oprávnenie disclose a dokonca read pre dc=domain,dc=tld. Výsledok bol, že som už nemal "access denied", ale nemal som ani očakávaný výsledok. Chyba v PHP bola stále tá istá (ldap_search(): Search: No such object).

    LDAP používateľ webuser má nastavené oprávnenie, že vie čítať iba dva atribúty uID a URL a to len zo stromu "ou=users,dc=domain,dc=tld".

    Defaultné ACL "access to * by users read" mám zakázané, lebo takto vedel webuser čítať aj iné atribúty. A možno tu je kameň úrazu. Podľa dokumentácie k OpenLDAP-u sa ACL spracúvajú v poradí ako sú napísané a ich spracovávanie končí pri prvej zhode (ak sa nepoužije break). ACL pre webuser-a bol ako prvý a "access to * by users read" ako posledný, ale aj tak vedel webuser vyčítavať atribúty, ktoré nemal. V prípade, že je aktívny "access to * by users read", tak to nemá nijaký vplyv na výsledok ldap_search(), v debug logoch síce nemám "access denied", ale nemám ani výsledok. Neviem ako si mám vysvetlovať slovo "stop" v logoch (napr.: acl_mask: [2] applying read(=rscxd) (stop)), či to znamená chybu alebo niečo iné.

    ACL z konfiguráku OpenLDAP-u:
    access to dn.subtree="ou=users,dc=domain,dc=tld" attrs=uID,URL
         by dn.exact="uid=webuser,ou=people,dc=domain,dc=tld" read
         by * none
    
    access to attrs=userPassword
        by anonymous auth
        by * none
    
    access to *
        by dn.exact="cn=Manager,dc=domain,dc=tld" write
    #   by users read
        by * none
    
    Skúšal som aj ldap_read() a ldap_list(), ktoré sa líšia v scope. V oboch prípadoch (ldapsearch a ldap_search()) je bind úspešný, takže tam nie je problém.

    Ešte skúsim novšiu verziu PHP (mám 5.3.3-7+squeeze26) napriek tomu privítam rady.

    Odpovědi

    20.5.2015 15:29 NN
    Rozbalit Rozbalit vše Re: OpenLDAP ACL vs PHP ldap_search()
    Kde se tam vezme to cn=manager?
    21.5.2015 07:34 Marián
    Rozbalit Rozbalit vše Re: OpenLDAP ACL vs PHP ldap_search()
    To je tam zo strany servera. Ja tom nemám v svojom kóde. Spravil som test a doplnil vymysleného používateľa "zzz" do ACL:
    access to *
        by dn.exact="cn=Manager,dc=domain,dc=tld" write
        by dn.exact="cn=zzz,dc=domain,dc=tld" read
        by users read
        by * none
    
    a objavilo sa to v debug logoch:
    May 21 07:28:03 localhost slapd[11218]: <= check a_dn_pat: cn=manager,dc=domain,dc=tld
    May 21 07:28:03 localhost slapd[11218]: <= check a_dn_pat: cn=zzz,dc=domain,dc=tld
    May 21 07:28:03 localhost slapd[11218]: <= check a_dn_pat: users
    
    Inak, skúšal som PHP 5.6.9 na Windows s rovnakým neúspešným výsledkom.

    Založit nové vlákno • Nahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.