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 [2016/03/29 08:05]
flacco [DNS-Server bind und LDAP]
kb [2016/03/29 08:07]
flacco [Active Directory und Firewall]
Zeile 49: Zeile 49:
 |SMB/​CIFS ​ |  TCP & UDP  |  445  |  Zugriff auf sysvol Freigabe ​ | |SMB/​CIFS ​ |  TCP & UDP  |  445  |  Zugriff auf sysvol Freigabe ​ |
 |RPC  |  TCP  |  135  |Früheres Microsoft Messaging Protokoll, wird genutzt für die Replikation der sysvol Freigabe. Dies wird von Samba noch nicht unterstützt. ​ | |RPC  |  TCP  |  135  |Früheres Microsoft Messaging Protokoll, wird genutzt für die Replikation der sysvol Freigabe. Dies wird von Samba noch nicht unterstützt. ​ |
 +
 +==== 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.
 +
 +=== LDAP Patch erzeugen ===
 +
 +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>​
 +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>​
 +
 +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.
 +
 +=== Paketbenennung und Konfliktverhalten ===
 +
 +Um nicht mit den regulären DHCP-Paketen in den SUSE Repositories in Konkurrenz zu geraten, haben wir unsere Pakete umbenannt. Sie tragen jetzt die Vorsilbe "​invis":​
 +
 +  * invisdhcp
 +  * invisdhcp-server
 +  * invisdhcp-client
 +  * invisdhcp-relay
 +  * invisdhcp-devel
 +  * invisdhcp-doc
 +
 +Die Umbenennung erfolgt im Specfile. Weiterhin wurde in den Paketen die Direktive "​Conflict"​ im Specfile verwendet. Dadurch können nur entweder die ungepatchten oder die gepatchten Pakete auf einem System installiert werden. Auch dies wird im Specfile eingetragen:​
 +
 +**Namensdefinition**
 +ab Zeile 35:
 +<​code>​
 +Name:           ​invisdhcp
 +%define originname dhcp
 +....
 +Source0: ​       dhcp-%{isc_version}.tar.gz
 +Source1: ​       dhcp-%{isc_version}.tar.gz.asc
 +Source2: ​       %{originname}.keyring
 +</​code>​
 +
 +Die Variable %originname musste hinzugefügt werden, da der Originalname weiterhin beim Paketbau benötigt wird.
 +
 +**Conflict & Requires Direktiven**
 +ab Zeile 146
 +<​code>​
 +Conflicts: dhcp
 +
 +%package server
 +Summary: ​       ISC DHCP Server
 +Group: ​         Productivity/​Networking/​Boot/​Servers
 +Requires: ​      ​invisdhcp = %{version}
 +Requires: ​      ​net-tools
 +Conflicts:​ dhcp-server
 +PreReq: ​        ​%insserv_prereq %fillup_prereq /bin/cat /bin/mkdir /bin/cp /​usr/​sbin/​useradd
 +
 +%package client
 +Summary: ​       ISC DHCP Client
 +Group: ​         Productivity/​Networking/​Boot/​Clients
 +Requires: ​      /​sbin/​arping
 +Requires: ​      /​usr/​bin/​host
 +Requires: ​      ​invisdhcp = %{version}
 +Requires: ​      ​iproute2
 +Requires: ​      ​net-tools
 +Conflicts:​ dhcp-client
 +PreReq: ​        ​%insserv_prereq %fillup_prereq /bin/cat /bin/mkdir /bin/cp /bin/grep
 +
 +%package relay
 +Summary: ​       ISC DHCP Relay Agent
 +Group: ​         Productivity/​Networking/​Boot/​Servers
 +Requires: ​      ​invisdhcp = %{version}
 +Requires: ​      ​net-tools
 +Conflicts:​ dhcp-relay
 +PreReq: ​        ​%insserv_prereq %fillup_prereq /bin/cat /bin/mkdir /​bin/​cp ​
 +
 +%package devel
 +Summary: ​       Header Files and Libraries for dhcpctl API
 +Group: ​         Development/​Libraries/​C and C++
 +Requires: ​      ​invisdhcp = %{version}
 +Conflicts:​ dhcp-devel
 +Conflicts: ​     bind-devel
 +
 +%if %{with_doc_package}
 +
 +%package doc
 +Summary: ​       Documentation
 +Conflicts:​ dhcp-doc
 +Group: ​         Productivity/​Networking/​Boot/​Servers
 +%endif
 +</​code>​
 +
 +Wie gezeigt sind Anpassungen in allen Einzelpaketen erforderlich. Mittels Conflicts und Requires werden die erforderlichen Paketabhängigkeiten gelöst.
 ===== DNS-Server bind und LDAP (invis Classic) ===== ===== DNS-Server bind und LDAP (invis Classic) =====
  
Zeile 620: Zeile 784:
  
 ...to be continued. ...to be continued.
-===== 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. 
- 
-==== LDAP Patch erzeugen ==== 
- 
-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>​ 
-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>​ 
- 
-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. 
- 
-==== Paketbenennung und Konfliktverhalten ==== 
- 
-Um nicht mit den regulären DHCP-Paketen in den SUSE Repositories in Konkurrenz zu geraten, haben wir unsere Pakete umbenannt. Sie tragen jetzt die Vorsilbe "​invis":​ 
- 
-  * invisdhcp 
-  * invisdhcp-server 
-  * invisdhcp-client 
-  * invisdhcp-relay 
-  * invisdhcp-devel 
-  * invisdhcp-doc 
- 
-Die Umbenennung erfolgt im Specfile. Weiterhin wurde in den Paketen die Direktive "​Conflict"​ im Specfile verwendet. Dadurch können nur entweder die ungepatchten oder die gepatchten Pakete auf einem System installiert werden. Auch dies wird im Specfile eingetragen:​ 
- 
-**Namensdefinition** 
-ab Zeile 35: 
-<​code>​ 
-Name:           ​invisdhcp 
-%define originname dhcp 
-.... 
-Source0: ​       dhcp-%{isc_version}.tar.gz 
-Source1: ​       dhcp-%{isc_version}.tar.gz.asc 
-Source2: ​       %{originname}.keyring 
-</​code>​ 
- 
-Die Variable %originname musste hinzugefügt werden, da der Originalname weiterhin beim Paketbau benötigt wird. 
- 
-**Conflict & Requires Direktiven** 
-ab Zeile 146 
-<​code>​ 
-Conflicts: dhcp 
- 
-%package server 
-Summary: ​       ISC DHCP Server 
-Group: ​         Productivity/​Networking/​Boot/​Servers 
-Requires: ​      ​invisdhcp = %{version} 
-Requires: ​      ​net-tools 
-Conflicts:​ dhcp-server 
-PreReq: ​        ​%insserv_prereq %fillup_prereq /bin/cat /bin/mkdir /bin/cp /​usr/​sbin/​useradd 
- 
-%package client 
-Summary: ​       ISC DHCP Client 
-Group: ​         Productivity/​Networking/​Boot/​Clients 
-Requires: ​      /​sbin/​arping 
-Requires: ​      /​usr/​bin/​host 
-Requires: ​      ​invisdhcp = %{version} 
-Requires: ​      ​iproute2 
-Requires: ​      ​net-tools 
-Conflicts:​ dhcp-client 
-PreReq: ​        ​%insserv_prereq %fillup_prereq /bin/cat /bin/mkdir /bin/cp /bin/grep 
- 
-%package relay 
-Summary: ​       ISC DHCP Relay Agent 
-Group: ​         Productivity/​Networking/​Boot/​Servers 
-Requires: ​      ​invisdhcp = %{version} 
-Requires: ​      ​net-tools 
-Conflicts:​ dhcp-relay 
-PreReq: ​        ​%insserv_prereq %fillup_prereq /bin/cat /bin/mkdir /​bin/​cp ​ 
- 
-%package devel 
-Summary: ​       Header Files and Libraries for dhcpctl API 
-Group: ​         Development/​Libraries/​C and C++ 
-Requires: ​      ​invisdhcp = %{version} 
-Conflicts:​ dhcp-devel 
-Conflicts: ​     bind-devel 
- 
-%if %{with_doc_package} 
- 
-%package doc 
-Summary: ​       Documentation 
-Conflicts:​ dhcp-doc 
-Group: ​         Productivity/​Networking/​Boot/​Servers 
-%endif 
-</​code>​ 
- 
-Wie gezeigt sind Anpassungen in allen Einzelpaketen erforderlich. Mittels Conflicts und Requires werden die erforderlichen Paketabhängigkeiten gelöst. 
  • kb.txt
  • Zuletzt geändert: 2020/10/20 10:47
  • von flacco