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:06]
flacco [Postfix - Rücknahme und Weitergabe an Dovecot]
kb [2015/03/26 17:18]
flacco [ISC DHCP mit ActiveDirectory]
Zeile 556: Zeile 556:
 ==== Letzte Etappe - Dovecot ==== ==== Letzte Etappe - Dovecot ====
  
-Ab invis-Server Version 7.1-R3 kommt Dovecot in Version 2.1 zum Einsatz. Erwähnenswert ist das, da sich an dessen Konfiguration mit Einführung von V. 2.x einiges geändert hat. Einerseits betrifft dies Namen von Konfigurationsoptionen und andererseits den Aufbau der Konfiguration an sich. Unter openSUSE wurde die Konfiguration der Übersicht halber in mehrere Dateien gesplittet. Im Verzeichnis "/​etc/​dovecot"​ ist nach wie vor eine (wenn auch stark geschrumpfte) Datei "​dovecot.conf"​ zu finden. Sie dient quasi als Hauptkonfigurationsdatei in die alle weiteren Dateien inkludiert werden. Ähnlich wie das bereits beim Apache-Webserver der Fall ist.+Ab invis-Server Version 7.1-R3 kommt Dovecot in Version 2.1, inzwischen schon Version 2.2 zum Einsatz. Erwähnenswert ist das, da sich an dessen Konfiguration mit Einführung von V. 2.x einiges geändert hat. Einerseits betrifft dies Namen von Konfigurationsoptionen und andererseits den Aufbau der Konfiguration an sich. Unter openSUSE wurde die Konfiguration der Übersicht halber in mehrere Dateien gesplittet. Im Verzeichnis "/​etc/​dovecot"​ ist nach wie vor eine (wenn auch stark geschrumpfte) Datei "​dovecot.conf"​ zu finden. Sie dient quasi als Hauptkonfigurationsdatei in die alle weiteren Dateien inkludiert werden. Ähnlich wie das bereits beim Apache-Webserver der Fall ist.
  
 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.
  
-===== ISC DHCP LDAP Schema nach Samba 4 LDAP überführen =====+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.
  
-Suchen ​und ersetzen der Attributnamen ​und Objektklassen:​+**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 ==== 
 +===== ISC DHCP mit ActiveDirectory ===== 
 + 
 +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
 +%endif
 +## clean up after patching
 +find . -type f -name \*.orig\* -exec rm -f {} \;
 +find . -type f -name \*.rej\* -exec rm -f {} \;
 +</​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