{"id":5245,"date":"2018-12-31T15:53:58","date_gmt":"2018-12-31T14:53:58","guid":{"rendered":"https:\/\/www.bdjl.de\/localhost\/?p=5245"},"modified":"2019-09-17T08:01:50","modified_gmt":"2019-09-17T06:01:50","slug":"nextcloud-mit-ldaps-an-ld-server-und-automount-von-tausch-und-home","status":"publish","type":"post","link":"https:\/\/www.bdjl.de\/localhost\/?p=5245","title":{"rendered":"nextCloud 15 mit LDAPs an LD-Server und Automount von Tausch und Home"},"content":{"rendered":"\r\n<p>Weil es so ein unsch\u00f6nes Gefummel war, dokumentiere ich hier f\u00fcr mich (und auch andere Benutzer von LD \/ SBE) die Anbindung der nextCloud per LDAPs an den LD-Server, die daf\u00fcr sorgt, dass beim Login der Benutzer gleich noch deren Tausch- und Homeverzeichnisse in die nextCloud gelupft werden. Dass dann bei uns noch Collabora CODE dazukommt rundet die Sache sch\u00f6n ab.<\/p>\r\n<p>Siehe zu diesem Thema auch den <a href=\"https:\/\/www.bdjl.de\/localhost\/?p=4403\">Vorg\u00e4ngerartikel<\/a>.<\/p>\r\n\r\n\r\n\r\n<p>Kurz zum allgemeinen Setup: Eine VM mit Ubuntu 18.04 LTS werkelt intern auf einem Virtualisierungshost, der mit seinen Netzwerkkarten in den jeweils f\u00fcr ihn wichtigen VLANs h\u00e4ngt. Auf diesem bridgen die VMs direkt in die VLANs rein. In Richtung Internet steht vor diesem VM-Host eine PFSense als Firewall in den jeweils relevanten Netzen.<\/p>\r\n\r\n\r\n\r\n<p>Die VM f\u00fcr nextCloud etc. hat zwei virtuelle Netzwerkkarten: Eine zeigt via grauem VLAN in Richtung PFSense (damit in Richtung Internet) und tr\u00e4gt die \u00f6ffentliche IP des Servers. Die andere Netzwerkkarte h\u00e4ngt als Bridge im gr\u00fcnen VLAN und wird vom LD-Server direkt versorgt. \u00dcber diese zweite (&#8222;gr\u00fcne&#8220;) Netzwerkkarte hole ich mir per LDAPs die Benutzerdatenbank und f\u00fchre den SMB\/CIFS-Mount der Homeverzeichnisse aus.<\/p>\r\n<p><a href=\"https:\/\/www.kvfg.net\/benutzerordnung\/lib\/exe\/detail.php?id=dienste&amp;media=2018-09-12_kvfgnetz.jpg\">Netzwerkdiagramm<\/a><\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">LDAPs Anbindung<\/h2>\r\n<p>Das Paket <em>php-ldap<\/em> muss an Bord und konfiguriert sein.<\/p>\r\n<p><strong>Hinweis:<\/strong> Den Zertifikatscheck kann man im nC LDAP Modul ausschalten f\u00fcr die ersten Tests &#8211; oder direkt auf der VM in <em>\/etc\/ldap\/ldap.conf<\/em> durch den Eintrag <em>TLS_REQCERT allow<\/em>. Nicht sch\u00f6n, aber zum Testen eine Fehlerquelle weniger.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5246\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap1-1024x421.png\" alt=\"\" width=\"1024\" height=\"421\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap1-1024x421.png 1024w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap1-640x263.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap1-768x316.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap1-624x257.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap1.png 1592w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\r\n<p>Die Server-IP mit vorangestelltem <em>ldaps:\/\/<\/em> und im Feld Port <em>636<\/em> eintragen. Die zwei folgenden Felder k\u00f6nnen f\u00fcr LD-Server leer gelassen werden.<\/p>\r\n<p>Da das automatische Auslesen der Base DN bei mir nicht funktioniert hat, musste ich diese von Hand angeben. In meinem Fall: <em>ou=users,dc=kvfg-schule,dc=de<\/em><\/p>\r\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5248\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap2-640x263.png\" alt=\"\" width=\"640\" height=\"263\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap2-640x263.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap2-768x316.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap2-1024x421.png 1024w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap2-624x257.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap2.png 1592w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\r\n<p>Beim LD-Server liegen die User in <em>ldUserAccount<\/em>.<\/p>\r\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5249\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap3-640x263.png\" alt=\"\" width=\"640\" height=\"263\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap3-640x263.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap3-768x316.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap3-1024x421.png 1024w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap3-624x257.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap3.png 1592w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\r\n<p>Die Loginattribute w\u00e4hlt das von mir hier verwendete nC 15 dann von selbst richtig aus.<\/p>\r\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5250\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap4-640x263.png\" alt=\"\" width=\"640\" height=\"263\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap4-640x263.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap4-768x316.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap4-1024x421.png 1024w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap4-624x257.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap4.png 1592w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\r\n<p>DIe passende Objektklasse ist <em>posixGroup<\/em>.<\/p>\r\n<p>Das w\u00fcrde nun reichen, um die Benutzer in nC rein zu lassen und auch, um das Tauschverzeichnis automatisch einzubinden, aber nicht, um die Homeverzeichnisse der User automatisch zu mounten. Das liegt daran, dass nC aus dem LDAP die <em>UUID<\/em> nimmt, um die nC-Benutzernamen zu erstellen. Wir brauchen aber f\u00fcr den Automount der Homes unserer Benutzer deren <em>uid<\/em> (das ist dann gleichzeitig der Benutzername des Users). Es gilt demnach, nC zu \u00fcberreden, die <em>UUID<\/em> zu ignorieren und stattdessen die <em>uid<\/em> der LDAP-Benutzer zu verwenden.<\/p>\r\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap-5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5251\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap-5-640x263.png\" alt=\"\" width=\"640\" height=\"263\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap-5-640x263.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap-5-768x316.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap-5-1024x421.png 1024w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap-5-624x257.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/serverg-ldap-5.png 1592w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\r\n<p>Auf der Registerkarte <em>Expert<\/em> finden wir diese M\u00f6glichkeit. Bei <em>Internal Username Attribute<\/em> muss <em>uid<\/em> eingetragen werden.<\/p>\r\n<p><strong>Hinweis<\/strong>: Im Reiter <em>Advanced<\/em> gibt es die M\u00f6glichkeit, die von nC lokal erstellten Benutzerverzeichnisse (im Datenverzeichnis von nC) mit <em>%uid<\/em> benamen zu lassen, statt mit der <em>UUID<\/em>. Das geschieht durch die Einstellungen oben nun automatisch so. Man darf die Angabe auf keinen Fall doppelt machen (also im Reiter <em>Advanced<\/em> <strong>und<\/strong> im Reiter <em>Expert<\/em>). Die Fehlermeldungen, die man nach einem Doppeleintrag erh\u00e4lt, beziehen sich auf Homeverzeichnispfade, die nicht aus dem LDAP gelesen werden k\u00f6nnen. Nicht wirklich hilfreich.<\/p>\r\n<p>Das Debugging ist wenig witzig. Was hilft, ist <a href=\"https:\/\/www.bdjl.de\/localhost\/?p=4403\">hier<\/a> schon ausf\u00fchrlich beschrieben worden, weswegen ich mir diese Ausf\u00fchrungen heute sparen will. Was hier und heute dazu kommt: Es lohnt der regelm\u00e4\u00dfige Blick in die Datenbank von nC (z.B. \u00fcber phpmyadmin). Da d\u00fcrfen bei den Benutzern keine <em>UUIDs<\/em> auftauchen (das sind kryptische Kombinationen aus Zahlen und Buchstaben), sondern ausschlie\u00dflich deren <em>uids<\/em> (also deren Benutzernamen). Hat das nicht geklappt, darf man von Vorne beginnen. Es empfiehlt sich deswegen, zuerst eine Basiskonfiguration anzulegen und diese zu sichern, die dann wieder eingespielt werden kann, wenn man sich in eine bl\u00f6de Ecke konfiguriert hat. Das ebenfalls sehr nervige LDAP-Caching von nC l\u00e4sst sich mit einem beherzten Restart des Apachen beeinflussen.<\/p>\r\n<h2>SMB\/CIFS Mount<\/h2>\r\n<p>Die Pakete <em>libsmbclient php-smbclient php-smb<\/em> und auch die <em>cifs-utils<\/em> m\u00fcssen installiert und konfiguriert sein. Letzteres nicht nur zum Testen, ob der SMB-Mount \u00fcberhaupt funktioniert, sondern auch, weil die anderen Pakete ohne die <em>cifs-utils<\/em> nicht rund laufen werden.<\/p>\r\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/ksnip_20190917-080117.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5340\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/ksnip_20190917-080117-640x350.png\" alt=\"\" width=\"640\" height=\"350\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/ksnip_20190917-080117-640x350.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/ksnip_20190917-080117-768x420.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/ksnip_20190917-080117-1024x559.png 1024w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/ksnip_20190917-080117-624x341.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2018\/12\/ksnip_20190917-080117.png 1091w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\r\n<p>Nachdem den Benutzern von nC die Verwendung von SMB\/CIFS erlaubt wurde, die Eintr\u00e4ge wie im Bild aus dem Adminaccount heraus vornehmen. Dabei den <em>Folder Name<\/em> und die IP des SMB-Servers den eigenen Gegebenheiten anpassen.<\/p>\r\n<p>Nicht irritieren lassen, dass die &#8222;B\u00f6bbel&#8220; beim Admin rot bleiben. Da der nC-Admin nicht aus dem LDAP kommt, sondern ein rein lokaler nC-Benutzer ist, muss der SMB-Mount hier auf die Nase fallen.<\/p>\r\n<p>Die Eintr\u00e4ge <em>Login-creditials, saved in session<\/em> sorgen bei den LDAP-Benutzern aber sp\u00e4ter daf\u00fcr, dass die automatischen Mounts klappen. Das <em>$user<\/em> sorgt f\u00fcr die Ersetzung des Namens f\u00fcr das Home-Share durch den Benutzernamen (die <em>uid<\/em>), der beim Login in der nC angegeben wurde. Deswegen ja auch das Gefrickel mit dem LDAP oben!<\/p>\r\n<p>Die Benutzer m\u00fcssen nun nur noch aufpassen, dass sie sich nicht mit dem Desktop-Client automatisch das gesamte Verzeichnis Tausch\/Schule syncen \ud83d\ude42<\/p>\r\n<p>Wie man sich per Docker noch ein <a href=\"https:\/\/www.collaboraoffice.com\/code\/\">Collabora CODE<\/a> auf die VM mit der nC holt, ist an vielen anderen Stellen im Netz schon ausf\u00fchrlich beschrieben worden. F\u00fcr den Alttag w\u00fcrde ich dann 6GB RAM und 4 CPUs f\u00fcr die VM empfehlen: CODE wie auch nC ziehen zusammen ziemlich an den Ressourcen.<\/p>\r\n<p>Eines noch: Moodle 3.6 bringt die M\u00f6glichkeit zur Anbindung an eine nextCloud mit.<\/p>\r\n<p>Summa summarum: Wer braucht da noch Ella? DIY and federation are the key!<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Weil es so ein unsch\u00f6nes Gefummel war, dokumentiere ich hier f\u00fcr mich (und auch andere Benutzer von LD \/ SBE) die Anbindung der nextCloud per LDAPs an den LD-Server, die daf\u00fcr sorgt, dass beim Login der Benutzer gleich noch deren Tausch- und Homeverzeichnisse in die nextCloud gelupft werden. Dass dann bei uns noch Collabora CODE [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,7,10],"tags":[566,468,489,600],"class_list":["post-5245","post","type-post","status-publish","format-standard","hentry","category-linux","category-office","category-schule","tag-collabora","tag-ldap","tag-logodidact","tag-nextcloud"],"_links":{"self":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/5245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5245"}],"version-history":[{"count":24,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/5245\/revisions"}],"predecessor-version":[{"id":5341,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/5245\/revisions\/5341"}],"wp:attachment":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}