kb

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
kb [2014/03/26 08:18]
flacco [Letzte Etappe - Dovecot]
kb [2015/03/26 16:30]
flacco [ISC DHCP mit ActiveDirectory]
Zeile 559: Zeile 559:
  
 Alle weiteren Dateien sind logisch unterteilt im Verzeichnis "/​etc/​dovecot/​conf.d"​ zu finden. Alle weiteren Dateien sind logisch unterteilt im Verzeichnis "/​etc/​dovecot/​conf.d"​ zu finden.
 +
 +Bei aller Freude über Peer Heinleins neues Dovecot Buch, ist doch festzustellen,​ dass die Aufgabenstellung die sich für die Dovecot-Konfiguration auf einem invis-Server stellt, mit dem Buch allein nicht zu bewältigen ist. Peer trennt im Prinzip zwischen einer Installation mit lokalen Benutzern und einer Hosting-Situation mit virtuellen Benutzern. Auf einem invis-Server haben wir es zwar mit lokalen Benutzern zu tun, aufgrund der Vorzüge, die das mit sich bringt, möchte ich sie aber lieber wie virtuelle Benutzer behandeln, da dies einige Vorteile mit sich bringt.
 +
 +**Definieren wir zunächst die Ziele:**
 +
 +  * Zugriff auf die LDAP-Benutzerkonten via PAM
 +  * Ordner-Freigaben über IMAP-ACLs
 +  * Sieve Filter und sei es nur für Abwesenheitsbenachrichtigungen
 +  * Quotas, wenn auch nur zum Warnen
 +  * Lokale Email-Zustellung via LMTP
 +  * SASL-Auth Schnittstelle für Postfix (wird im nächsten Abschnitt beschrieben)
  
 ==== Mailversand - SMTP-Auth mit Dovecot-SASL ==== ==== Mailversand - SMTP-Auth mit Dovecot-SASL ====
-===== ISC DHCP LDAP Schema nach Samba 4 LDAP überführen ​=====+===== ISC DHCP mit ActiveDirectory ​=====
  
-Suchen ​und ersetzen der Attributnamen ​und Objektklassen:​+Um den DHCP-Server des ISC mit einem Active Directory als Backend zu verwenden, muss dieser so gepatcht werden, dass er andere LDAP-Attribut- ​und Objektklassen-Namen akzeptiert. Dies ist notwendig, da Microsoft für seinen DHCP-Server teils identische Namen für Attribute ​und Objektklassen ​verwendet. Ohne das Patchen führt der Versuch einen ISC DHCP-Server Datenbestand aus einem OpenLDAP Verzeichnis in ein Active Directory zu migrieren zu "​Objectclass Violations"​ die nicht zu beheben sind. 
 + 
 +Den Patch zu erstellen ist etwas umständlich,​ da im openSUSE-Paket bereits Patches auf die von uns zu patchenden Dateien angewendet werden. D.h. um unseren Patch zu erzeugen müssen zunächst die anderen Patches auf den Quellcode angewendet werden. 
 + 
 +Zu patchen sind folgende Dateien: 
 + 
 +  * server/​ldap.c 
 +  * contrib/​ldap/​README.ldap 
 +  * contrib/​ldap/​dhcpd-conf-to-ldap 
 +  * contrib/​ldap/​dhcp.shema 
 + 
 +Im ersten Schritt müssen aus dem Repository "​network:​dhcp"​ (https://​build.opensuse.org/​package/​show/​network:​dhcp/​dhcp) des openSUSE Buildservice das Quellcode-Archiv (dhcp-4.x.y.tar.gz),​ sowie die beiden Patches "​0007-dhcp-4.2.6-ldap-mt01.patch"​ und "​0022-dhcp-4.2.x-contrib-conf-to-ldap-reorder.886094.patch"​ heruntergeladen werden. 
 + 
 +Das Quellcode-Archiv ist in ein Arbeitsverzeichnis zu extrahieren. Danach sind die beiden heruntergeladenen Patches darauf anzuwenden:
  
 <​code>​ <​code>​
-linux:~ # cat README.ldap | sed /dhcp[A-Z]/s/dhcp/iscDhcp/g > ad.README.ldap+heinzb@knurps:~/​baustelle/​dhcp-4.2.6> patch -p1 server/ldap.c 0007-dhcp-4.2.6-ldap-mt01.patch 
 +heinzb@knurps:​~/baustelle/dhcp-4.2.6> patch -p1 contrib/ldap/dhcpd-conf-to-ldap 0022-dhcp-4.2.x-contrib-conf-to-ldap-reorder.886094.patch
 </​code>​ </​code>​
 +
 +Treten dabei Fehler auf, sind diese in einer auf **.rej** endenden Datei im Verzeichnis der zu patchenden Datei zu finden. Sind die Fehler überschaubar,​ lassen sich die Änderungen auch manuell durchführen.
 +
 +Jetz sind per suchen und ersetzen der Attributnamen und Objektklassen mit **//sed//** neue Dateien mit den gewünschten Änderungen zu erzeugen:
 +
 +<​code>​
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ cat server/​ldap.c | sed /​dhcp[A-Z]/​s/​dhcp/​iscDhcp/​g > server/​ad.ldap.c
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ cat contrib/​ldap/​README.ldap | sed /​dhcp[A-Z]/​s/​dhcp/​iscDhcp/​g > contrib/​ldap/​ad.README.ldap
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ cat contrib/​ldap/​dhcpd-conf-to-ldap | sed /​dhcp[A-Z]/​s/​dhcp/​iscDhcp/​g > contrib/​ldap/​ad.dhcpd-conf-to-ldap
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ cat contrib/​ldap/​dhcp.schema | sed /​dhcp[A-Z]/​s/​dhcp/​iscDhcp/​g > contrib/​ldap/​ad.dhcp.schema
 +</​code>​
 +
 +Jetzt werden mit //​**diff**//​ einzelne Patches für jede der Dateien erzeugt:
 +<​code>​
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ diff -u server/​ldap.c server/​ad.ldap.c > ../​ldap.c.patch
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ diff -u contrib/​ldap/​README.ldap contrib/​ldap/​ad.README.ldap > ../​README.ldap.patch
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ diff -u contrib/​ldap/​dhcpd-conf-to-ldap contrib/​ldap/​ad.dhcpd-conf-to-ldap > ../​dhcpd-conf-to-ldap.patch
 +heinzb@knurps:​~/​baustelle/​dhcp-4.2.6>​ diff -u contrib/​ldap/​dhcp.schema contrib/​ldap/​ad.dhcp.schema > ../​dhcp.schema.patch
 +</​code>​
 +
 +Jetzt müssen noch die Kopfzeilen der Einzelpatches angepasst werden. Aus:
 +
 +<​code>​
 +--- server/​ldap.c ​      ​2015-03-26 14:​24:​44.905456906 +0100
 ++++ server/​ad.ldap.c ​   2015-03-26 17:​12:​52.783318249 +0100
 +</​code>​
 +
 +wird:
 +
 +<​code>​
 +--- a/​server/​ldap.c ​      ​2015-03-26 14:​24:​44.905456906 +0100
 ++++ b/​server/​ldap.c ​   2015-03-26 17:​12:​52.783318249 +0100
 +</​code>​
 +
 +Danach werden alle Einzelpatches zum Gesamtpatch zusammengesetzt:​
 +
 +<​code>​
 +heinzb@knurps:​~/​baustelle>​ cat ldap.c.patch > 0099-AD-LDAP.patch ​
 +heinzb@knurps:​~/​baustelle>​ cat README.ldap.patch >> 0099-AD-LDAP.patch ​
 +heinzb@knurps:​~/​baustelle>​ cat dhcpd-conf-to-ldap.patch >> 0099-AD-LDAP.patch ​
 +heinzb@knurps:​~/​baustelle>​ cat dhcp.schema.patch >> 0099-AD-LDAP.patch
 +</​code>​
 +
 +Danach den Patch in unser Testing-Repositorie hochladen und die Spec-Datei des dhcp-Paketes anpassen:
 +
 +Ab Zeile 138 (ca.)
 +<​code>​
 +# invis-server.org Stefan Schaefer
 +Patch99: ​       0099-AD-LDAP.patch
 +</​code>​
 +
 +Ab Zeile: 282 (ca.)
 +<​code>​
 +%if %{with_ldap}
 +# Stefan Schaefer - invis-server.org
 +%patch99 -p1
 +%endif
 +</​code>​
 +
 +Die Zeilenangaben sind natürlich nicht genau, das sich das Spec-File mit jeder neuen Version ändern kann. Wichtig ist nur, dass unser Patch als letzter angewendete wird.
  • kb.txt
  • Zuletzt geändert: 2020/10/20 10:47
  • von flacco