{"id":228,"date":"2010-11-22T23:33:07","date_gmt":"2010-11-22T22:33:07","guid":{"rendered":""},"modified":"2010-11-27T19:17:51","modified_gmt":"2010-11-27T17:17:51","slug":"instalacja-i-konfiguracja-openldap","status":"publish","type":"post","link":"https:\/\/drfugazi.eu.org\/en\/instalacja-i-konfiguracja-openldap\/","title":{"rendered":"Instalacja i konfiguracja OpenLDAP"},"content":{"rendered":"<h3>Instalacja i podstawowa konfiguracja us\u0142ugi katalogowej LDAP (OpenLDAP) na Ubuntu:<\/h3>\n<pre><code>drfugazi@charr:~% sudo aptitude install slapd ldap-utils<\/code><\/pre>\n<h3>Opis wzorowany jest na angielskim opisie dla Karmic Koala na <a href=\"http:\/\/www.howtoforge.com\/install-and-configure-openldap-on-ubuntu-karmic-koala\" target=\"_blank\">HowtoForge<\/a>. Ja jestem przyzwyczajony do konfigurowania LDAPa w pliku <code>slapd.conf<\/code>, ale to stara szko\u0142a. Tutaj dostajemy mo\u017cliwo\u015b\u0107 dynamicznej konfiguracji bez konieczno\u015bci restartu serwera LDAP.<\/h3>\n<pre><code>cd \/etc\/ldap<\/code><\/pre>\n<h3>Na pocz\u0105tek proponuj\u0119 doda\u0107 kilka schemat\u00f3w, zwieraj\u0105cych klasy obiekt\u00f3w, kt\u00f3re b\u0119d\u0105 przydatne p\u00f3\u017aniej:<\/h3>\n<pre><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/ldap\/schema\/cosine.ldif\r\nldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/ldap\/schema\/inetorgperson.ldif\r\nldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/ldap\/schema\/nis.ldif<\/code><\/pre>\n<p>Je\u015bli Wam si\u0119 nie uda dodanie z powodu niewystarczaj\u0105cych uprawnie\u0144, to prze\u0142\u0105czcie si\u0119 na roota poleceniem <code>sudo su -<\/code><\/p>\n<p><!--break--><\/p>\n<h3>Teraz nale\u017cy za\u0142adowa\u0107 modu\u0142 bazy danych i utworzy\u0107 baz\u0119, polecam u\u017cycie bazy Berkeley (bdb lub hdb), tworzymy plik db.ldif z zawarto\u015bci\u0105 jak poni\u017cej, oczywi\u015bcie zast\u0119pujemy <code>example.com<\/code> swoj\u0105 nazw\u0105 domeny i wpisujemy w\u0142asne has\u0142o do <code>olcRootPW<\/code>:<\/h3>\n<pre><code>\r\n# Load dynamic backend modules\r\ndn: cn=module{0},cn=config\r\nobjectClass: olcModuleList\r\ncn: module\r\nolcModulepath: \/usr\/lib\/ldap\r\nolcModuleload: {0}back_hdb\r\n\r\n# Create the database\r\ndn: olcDatabase={1}hdb,cn=config\r\nobjectClass: olcDatabaseConfig\r\nobjectClass: olcHdbConfig\r\nolcDatabase: {1}hdb\r\nolcDbDirectory: \/var\/lib\/ldap\r\nolcSuffix: dc=example,dc=com\r\nolcRootDN: cn=admin,dc=example,dc=com\r\nolcRootPW: example\r\nolcDbConfig: {0}set_cachesize 0 2097152 0\r\nolcDbConfig: {1}set_lk_max_objects 1500\r\nolcDbConfig: {2}set_lk_max_locks 1500\r\nolcDbConfig: {3}set_lk_max_lockers 1500\r\nolcLastMod: TRUE\r\nolcDbCheckpoint: 512 30\r\nolcDbIndex: uid pres,eq\r\nolcDbIndex: cn,sn,mail pres,eq,approx,sub\r\nolcDbIndex: objectClass eq\r\n<\/code><\/pre>\n<h3>Zapisujemy ten plik jako db.ldif i \u0142adujemy modu\u0142 i inicjalizujemy baz\u0119 w LDAP:<\/h3>\n<pre><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f db.ldif<\/code><\/pre>\n<h3>Tworzymy bazowy DN oraz konto administratora, aby wygenerowa\u0107 zaszyfrowane has\u0142o nale\u017cy u\u017cy\u0107 polecenia <code>slappasswd<\/code>, zawarto\u015b\u0107 <code>base.ldif<\/code>:<\/h3>\n<pre><code>\r\ndn: dc=example,dc=com\r\nobjectClass: dcObject\r\nobjectclass: organization\r\no: example.com\r\ndc: example\r\ndescription: My LDAP Root\r\n\r\ndn: cn=admin,dc=example,dc=com\r\nobjectClass: simpleSecurityObject\r\nobjectClass: organizationalRole\r\ncn: admin\r\nuserPassword: {MD5}Gnmk1g3mcY6OWzJuM4rlMw==\r\ndescription: LDAP administrator\r\n<\/code><\/pre>\n<p>Oczywi\u015bcie tak jak poprzednio <code>example.com<\/code> oraz wszystkie wyst\u0105pienia <code>example<\/code> i <code>com<\/code> zast\u0119pujemy nasz\u0105 w\u0142asn\u0105 nazw\u0105, je\u015bli domena ma wi\u0119cej ni\u017c dwa cz\u0142ony, to mo\u017cna oczywi\u015bcie doda\u0107 kolejny <code>domain component<\/code> (dc=&#8230;)<\/p>\n<h3>Zapisujemy plik <code>base.ldif<\/code> i dodajemy go do LDAPa poleceniem:<\/h3>\n<pre><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f base.ldif<\/code><\/pre>\n<h3>Cz\u0119\u015b\u0107 dotycz\u0105c\u0105 modyfikacji wbudowanych ACLi, mo\u017cemy sobie na razie odpu\u015bci\u0107, ale trzeba zabezpieczy\u0107 has\u0142a:<\/h3>\n<pre><code>vi acl.ldif<\/code><\/pre>\n<p>Zawarto\u015b\u0107 pliku <code>acl.ldif<\/code><br \/>\n:<\/p>\n<pre><code>\r\ndn: olcDatabase={1}hdb,cn=config\r\nchangetype: modify\r\nadd: olcAccess\r\nolcAccess: to attrs=userPassword,shadowLastChange by dn=\"cn=admin,dc=example,dc=com\" write by anonymous auth by self write by * none\r\nolcAccess: to dn.base=\"\" by * read\r\nolcAccess: to * by dn=\"cn=admin,dc=example,dc=com\" write by * read\r\n<\/code><\/pre>\n<p>Uwaga: w tutorialu na HowtoForge brakuje linii <code>changetype: modify<\/code>, bez niej polecenie:<\/p>\n<pre><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f acl.ldif<\/code><\/pre>\n<p>sko\u0144czy si\u0119 zapewne takim komunikatem:<\/p>\n<pre><code>ldap_add: Undefined attribute type (17)\r\n        additional info: add: attribute type undefined<\/code><\/pre>\n<p>zatem w moim opisie jest ju\u017c do\u0142o\u017cona.<\/p>\n<h3>Podstawow\u0105 konfiguracj\u0119 LDAPa mamy wi\u0119c z g\u0142owy, teraz przyda\u0142o by si\u0119 jakie\u015b narz\u0119dzie do zarz\u0105dzania.<\/h3>\n<p>Ja osobi\u015bcie u\u017cywam dw\u00f3ch: <a href=\"http:\/\/www.eclipse.org\/\" target=\"_blank\">Eclipse<\/a> czy te\u017c <a href=\"http:\/\/directory.apache.org\/studio\/\" target=\"_blank\">Apache Directory Studio<\/a> na kliencie oraz <a href=\"http:\/\/phpldapadmin.sourceforge.net\/\" target=\"_blank\">phpLDAPadmin<\/a> po stronie serwera. Do tego ostatniego nawet kiedy\u015b pope\u0142ni\u0142em t\u0142umaczenie, wi\u0119c posiada Polski interfejs.<\/p>\n<p>My\u015bl\u0119, \u017ce na pocz\u0105tek phpLDAPadmin (w skr\u00f3cie PLA) w zupe\u0142no\u015bci wystarczy, Eclipse z modu\u0142em do LDAPa warto zainstalowa\u0107 jak si\u0119 chce operowa\u0107 bezpo\u015brednio z klienta na katalogu, ale to te\u017c wymaga przepuszczenia odpowiednich port\u00f3w (389 lub 636) na firewallu. Przy PLA nie otwieramy portu, wi\u0119c nawet jak w pocz\u0105tkowej fazie nie mamy dobrze skonstruowanych ACLi to nikt si\u0119 nam nie wepnie i nie wyci\u0105gnie danych z katalogu.<\/p>\n<p>Instalacja na Ubuntu nie powinna przysporzy\u0107 problemu, je\u015bli mamy ju\u017c uruchomion\u0105 us\u0142ug\u0119 HTTP to powinno wystarczy\u0107:<\/p>\n<pre><code>sudo aptitude install phpldapadmin<\/code><\/pre>\n<p>Po zainstalowaniu powinni\u015bmy dosta\u0107 si\u0119 do interfejsu PLA pod adresem: http:\/\/example.com\/phpldapadmin (oczywi\u015bcie example.com jak zwykle trzeba zamieni\u0107 na nazw\u0119 naszej domeny).<\/p>\n<p>Konfiguracja PLA znajduje si\u0119 w pliku <code>\/etc\/phpldapadmin\/config.php<\/code> i domy\u015blnie jako serwer LDAP skonfigurowany jest <code>localhost<\/code>, to w wi\u0119kszo\u015bci wypadk\u00f3w b\u0119dzie poprawne, natomiast warto\/trzeba zmieni\u0107 dwie linie, \u017ceby unikn\u0105\u0107 k\u0142opot\u00f3w:<\/p>\n<pre><code>$servers->setValue('server','base',array('dc=example,dc=com'));\r\n$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');<\/code><\/pre>\n<p>W pierwszej linii ustawiamy bazowy DN, bo PLA nie zawsze potrafi go dobrze wyci\u0105gn\u0105\u0107, w drugiej u\u0142atwiamy sobie logowanie, \u017ceby za ka\u017cdym razem nie poprawia\u0107 nazwy u\u017cytkownika. Z do\u015bwiadczenia polecam te\u017c wy\u0142\u0105czenie szablon\u00f3w wy\u015bwietlania\/edycji wpis\u00f3w, bo bywa to wkurzaj\u0105ce, ale to ju\u017c wg uznania, r\u00f3\u017cnic\u0119 zobaczycie po takiej zmianie:<\/p>\n<pre><code>\/* Just show your custom templates. *\/\r\n$config->custom->appearance['custom_templates_only'] = true;<\/code><\/pre>\n<h3>Czas na zalogowanie si\u0119 do phpLDAPadmina i obejrzenie naszego katalogu, dla tych, kt\u00f3rzy maj\u0105 niewielkie do\u015bwiadczenie z us\u0142ugami katalogowymi na pocz\u0105tek polecam obejrzenie schematu i klasy inetOrgPerson, na tej klasie lub pochodnych cz\u0119sto budowane s\u0105 ksi\u0105\u017cki adresowe.<\/h3>\n","protected":false},"excerpt":{"rendered":"<h3>Instalacja i podstawowa konfiguracja us\u0142ugi katalogowej LDAP (OpenLDAP) na Ubuntu:<\/h3>\n<pre><code>drfugazi@charr:~% sudo aptitude install slapd ldap-utils<\/code><\/pre>\n<h3>Opis wzorowany jest na angielskim opisie dla Karmic Koala na <a href=\"http:\/\/www.howtoforge.com\/install-and-configure-openldap-on-ubuntu-karmic-koala\" target=\"_blank\">HowtoForge<\/a>. Ja jestem przyzwyczajony do konfigurowania LDAPa w pliku <code>slapd.conf<\/code>, ale to stara szko\u0142a. Tutaj dostajemy mo\u017cliwo\u015b\u0107 dynamicznej konfiguracji bez konieczno\u015bci restartu serwera LDAP.<\/h3>\n<pre><code>cd \/etc\/ldap<\/code><\/pre>\n<h3>Na pocz\u0105tek proponuj\u0119 doda\u0107 kilka schemat\u00f3w, zwieraj\u0105cych klasy obiekt\u00f3w, kt\u00f3re b\u0119d\u0105 przydatne p\u00f3\u017aniej:<\/h3>\n<pre><code>ldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/ldap\/schema\/cosine.ldif\r\nldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/ldap\/schema\/inetorgperson.ldif\r\nldapadd -Y EXTERNAL -H ldapi:\/\/\/ -f \/etc\/ldap\/schema\/nis.ldif<\/code><\/pre>\n<p>Je\u015bli Wam si\u0119 nie uda dodanie z powodu niewystarczaj\u0105cych uprawnie\u0144, to prze\u0142\u0105czcie si\u0119 na roota poleceniem <code>sudo su -<\/code><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[],"tags":[35,6,11],"jetpack_publicize_connections":[],"acf":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7M9Tz-3G","jetpack-related-posts":[{"id":332,"url":"https:\/\/drfugazi.eu.org\/en\/instalacja-i-konfiguracja-openldap\/","url_meta":{"origin":228,"position":0},"title":"Instalacja i konfiguracja OpenLDAP","author":"","date":"Monday November 22nd, 2010","format":false,"excerpt":"Instalacja i podstawowa konfiguracja us\u0142ugi katalogowej LDAP (OpenLDAP) na Ubuntu: drfugazi@charr:~% sudo aptitude install slapd ldap-utils Opis wzorowany jest na angielskim opisie dla Karmic Koala na HowtoForge. Ja jestem przyzwyczajony do konfigurowania LDAPa w pliku slapd.conf, ale to stara szko\u0142a. Tutaj dostajemy mo\u017cliwo\u015b\u0107 dynamicznej konfiguracji bez konieczno\u015bci restartu serwera LDAP.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":328,"url":"https:\/\/drfugazi.eu.org\/en\/installation-and-configuration-openldap\/","url_meta":{"origin":228,"position":1},"title":"Installation and configuration of OpenLDAP","author":"","date":"Wednesday December  1st, 2010","format":false,"excerpt":"Installation and basic configuration of LDAP directory service (OpenLDAP) on Ubuntu: sudo aptitude install slapd ldap-utils This description is based on HowtoForge document for Karmic Koala. I used to be to configure of OpenLDAP in slapd.conf file, but this is old method. Here we have possibility to modify LDAP configuration\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":230,"url":"https:\/\/drfugazi.eu.org\/en\/installation-and-configuration-openldap\/","url_meta":{"origin":228,"position":2},"title":"Installation and configuration of OpenLDAP","author":"drfugazi","date":"Wednesday December  1st, 2010","format":false,"excerpt":"Installation and basic configuration of LDAP directory service (OpenLDAP) on Ubuntu: sudo aptitude install slapd ldap-utils This description is based on HowtoForge document for Karmic Koala. I used to be to configure of OpenLDAP in slapd.conf file, but this is old method. Here we have possibility to modify LDAP configuration\u2026","rel":"","context":"In \"Mail system\"","block_context":{"text":"Mail system","link":"https:\/\/drfugazi.eu.org\/en\/tag\/mail_system\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":239,"url":"https:\/\/drfugazi.eu.org\/en\/schema-conversion-ldap-ldif\/","url_meta":{"origin":228,"position":3},"title":"Schema conversion &#8211; LDAP to LDIF","author":"drfugazi","date":"Tuesday March 15th, 2011","format":false,"excerpt":"The power of directory service is possibility to define your own object classes, attributes, rules and so on. It also allows grouping it in schemas, which you can add to LDAP configuration. As for now most of schemas, which you can find in Internet is organized into blocks, which contains\u2026","rel":"","context":"In \"OpenLDAP\"","block_context":{"text":"OpenLDAP","link":"https:\/\/drfugazi.eu.org\/en\/tag\/openldap\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":229,"url":"https:\/\/drfugazi.eu.org\/en\/konwersja-schematu-do-ldif\/","url_meta":{"origin":228,"position":4},"title":"Kowersja schematu LDAP do LDIF","author":"drfugazi","date":"Saturday November 27th, 2010","format":false,"excerpt":"Pot\u0119g\u0105 us\u0142ugi katalogowej LDAP jest mo\u017cliwo\u015b\u0107 definiowania w\u0142asnych atrybut\u00f3w, klas obiekt\u00f3w, regu\u0142 itp. i grupowania ich w tzw. schematy, kt\u00f3re mo\u017cna dodawa\u0107 do konfiguracji. Na dzie\u0144 dzisiejszy jednak wi\u0119kszo\u015b\u0107 schemat\u00f3w, kt\u00f3re znajdziecie w sieci jest zorganizowana w bloki zawieraj\u0105ce definicje atrybut\u00f3w i klas obiekt\u00f3w, wygl\u0105da to mniej wi\u0119cej tak: definicja\u2026","rel":"","context":"In \"Konfiguracja\"","block_context":{"text":"Konfiguracja","link":"https:\/\/drfugazi.eu.org\/en\/tag\/konfiguracja\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":329,"url":"https:\/\/drfugazi.eu.org\/en\/schema-conversion-ldap-ldif\/","url_meta":{"origin":228,"position":5},"title":"Schema conversion &#8211; LDAP to LDIF","author":"","date":"Tuesday March 15th, 2011","format":false,"excerpt":"The power of directory service is possibility to define your own object classes, attributes, rules and so on. It also allows grouping it in schemas, which you can add to LDAP configuration. As for now most of schemas, which you can find in Internet is organized into blocks, which contains\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/posts\/228"}],"collection":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":0,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"wp:attachment":[{"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/drfugazi.eu.org\/en\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}