{"id":130,"date":"2018-12-08T15:59:59","date_gmt":"2018-12-08T14:59:59","guid":{"rendered":"https:\/\/pascal-korz.de\/blog\/?p=130"},"modified":"2021-04-18T22:32:19","modified_gmt":"2021-04-18T20:32:19","slug":"freeipa-installation-eines-domain-controllers","status":"publish","type":"post","link":"https:\/\/pascal-korz.de\/blog\/2018\/12\/08\/freeipa-installation-eines-domain-controllers\/","title":{"rendered":"FreeIPA: Installation eines Domain Controllers"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.freeipa.org\/\">FreeIPA<\/a> steht f\u00fcr Free Identity, Policy, Audit und ist eine quelloffene Identity-Management-L\u00f6sung auf Basis eines LDAP-Verzeichnisses und von Kerberos mit optionalen Komponenten wie DNS-Server, Zertifizierungsstelle und mehr. \u00dcbersetzt: FreeIPA verwaltet eine Dom\u00e4ne mit Benutzern, Computern, Richtlinien und Vertrauensstellungen. Klingt nach Microsoft Active Directory? Genau darum handelt es sich. FreeIPA kann dar\u00fcber hinaus auch einen Forest-zu-Forest-Trust mit bestehenden Active-Directory-Forests aufbauen und sogar in einer DNS-Zone unterhalb einer von Active Directory verwalteten Zone leben, solange sie sich nicht \u00fcberschneiden.<\/p>\n\n\n\n<div class=\"wp-block-group has-green-background-color has-background\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>Diese Anleitung kann f\u00fcr sich genommen hilfreich sein, baut aber auf folgenden Beitr\u00e4gen auf:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/pascal-korz.de\/blog\/2018\/11\/11\/virt-manager-virtualisierungshost-unter-linux\/\" data-type=\"post\" data-id=\"110\">virt-man<\/a><a rel=\"noreferrer noopener\" href=\"https:\/\/pascal-korz.de\/blog\/2018\/11\/11\/virt-manager-virtualisierungshost-unter-linux\/\" data-type=\"post\" data-id=\"110\" target=\"_blank\">ager: Virtualisierungshost unter Linux<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/pascal-korz.de\/blog\/2018\/12\/03\/virt-manager-netzwerk-ohne-integriertes-dhcp-dns-erstellen\/\" data-type=\"post\" data-id=\"158\" target=\"_blank\">virt-manager: Virtuelles Netzwerk ohne integriertes DHCP\/DNS erstellen<\/a><\/li><li><a href=\"https:\/\/pascal-korz.de\/blog\/2018\/12\/03\/virt-manager-remote-verwaltung\/\" data-type=\"post\" data-id=\"119\" target=\"_blank\" rel=\"noreferrer noopener\">virt-manager: Remote-Verwaltung<\/a><\/li><\/ul>\n<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">1. Installation der virtuellen Maschine<\/h3>\n\n\n\n<p>F\u00fcr meine virtuellen Server setze ich CentOS 7 (1804) ein. In unserer Testumgebung ist es egal, wo das Installationsmedium f\u00fcr die Server gespeichert wird, aber in einer Produktivumgebung w\u00e4re es sch\u00f6n, wenn alle Administratoren darauf Zugriff erhielten. Anstatt das ISO-Image in meinem virtadmin-Benutzerordner zu speichern, lege ich es unter <code>\/opt\/ISO<\/code> ab. Ich habe das ISO-Image bereits heruntergeladen, und da ich schon den SSH-Zugriff auf den Virtualisierungshost f\u00fcr virt-manager eingerichtet habe, \u00fcbertrage ich das Image per SSH auf den Host:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>scp ~\/Downloads\/CentOS-7-x86_64-Minimal-1804.iso virtadmin@virthost:\/home\/virtadmin\/\nssh virtadmin@virthost\nsudo mkdir \/opt\/ISO\nsudo mv ~\/CentOS-7-x86_64-Minimal-1804.iso \/opt\/ISO\/<\/code><\/pre>\n\n\n\n<p>Zur\u00fcck im virt-manager \u00f6ffne ich den Dialog zum Erstellen einer neuen virtuellen Maschine und w\u00e4hle <strong>Lokales Installationsmedium<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"193\" src=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-01-300x193.png\" alt=\"virt-manager: Neue virtuelle Maschine erstellen\" class=\"wp-image-147\" srcset=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-01-300x193.png 300w, https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-01.png 552w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"192\" src=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-02-300x192.png\" alt=\"virt-manager: Lokales Installationsmedium\" class=\"wp-image-148\" srcset=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-02-300x192.png 300w, https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-02.png 502w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<p>Dann f\u00fcge ich links unten im Assistenten einen neuen Speicherpool vom Typ <strong>dir: Dateisystemverzeichnis<\/strong> hinzu, nenne ihn ISO und gebe als Pfad <code>\/opt\/ISO<\/code> an:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"138\" src=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-03-300x138.png\" alt=\"virt-manager: Speicherpools\" class=\"wp-image-149\" srcset=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-03-300x138.png 300w, https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-03.png 597w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<p>Nun w\u00e4hle ich den neuen Speicherpool und rechts in der Liste das ISO-Image aus und best\u00e4tige mit <strong>Datentr\u00e4ger ausw\u00e4hlen<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"196\" src=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-04-300x196.png\" alt=\"virt-manager: Speicherpool ausw\u00e4hlen\" class=\"wp-image-150\" srcset=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-04-300x196.png 300w, https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-04.png 659w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<p>Im Folgenden vergebe ich 1024 MiB RAM, einen CPU-Kern und 10 GiB Festplattenspeicher. F\u00fcr einen produktiven Domain Controller mit hunderten Benutzern w\u00e4re das zu wenig, aber f\u00fcr die kleine Testumgebung reicht es vollkommen aus. Der Server soll sp\u00e4ter den Namen cgn-ipa01 tragen \u2013 ein Hinweis auf die Lokation und die Tatsache, dass er der erste FreeIPA-Server wird. Nat\u00fcrlich soll die Maschine an das Netzwerk ipalab angeschlossen werden. Dass virt-manager das CentOS-Installationsmedium mit Alpine Linux verwechselt, ist ein Kuriosum, aber von keinerlei Bedeutung. Bevor die Installation beginnt, sollte noch einmal ein Blick in die Konfiguration der virtuellen Maschine geworfen werden (dort kann der Name des Betriebssystems manuell korrigiert werden):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"246\" src=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-05-300x246.png\" alt=\"virt-manager: Name und Netzwerk bestimmen\" class=\"wp-image-151\" srcset=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-05-300x246.png 300w, https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-05.png 499w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<p>Mit Klick auf Installation beginnen oben links geht es weiter.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"229\" src=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-06-300x229.png\" alt=\"virt-manager: Details einer virtuellen Maschine\" class=\"wp-image-152\" srcset=\"https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-06-300x229.png 300w, https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-06-768x586.png 768w, https:\/\/pascal-korz.de\/blog\/wp-content\/uploads\/2018\/11\/virt-manager-new-06.png 812w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">2. Installation des Servers<\/h3>\n\n\n\n<p class=\"has-yellow-background-color has-background\">Wenn man von der virt-manager-Konsole wiederholt zur Eingabe der Passphrase aufgefordert wird, kann in den Details der virtuellen Maschine die Anzeige von SPICE-Server auf VNC-Server umgestellt werden. Die \u00c4nderung wird nach einem Neustart der virtuellen Maschine wirksam.<\/p>\n\n\n\n<p class=\"has-yellow-background-color has-background\">Die Konsole f\u00e4ngt Maus und Tastatur ein. Um sie wieder freizugeben, dr\u00fcckt man die Tastenkombination <code>Strg links+Alt links<\/code>.<\/p>\n\n\n\n<p>Die Standardwerte k\u00f6nnen so \u00fcbernommen werden. Wichtig sind nur der Hostname und die Netzwerkkonfiguration.<\/p>\n\n\n\n<p>Der Name der zuk\u00fcnftigen FreeIPA-Dom\u00e4ne kann hier schon miteinbezogen werden!<\/p>\n\n\n\n<p class=\"has-red-background-color has-background\">Der Dom\u00e4nenname darf sich nicht mit einer fremden Dom\u00e4ne oder einer von ihr verwalteten DNS-Zone \u00fcberschneiden und sollte eine \u00f6ffentlich aufl\u00f6sbare Dom\u00e4ne im eigenen Besitz sein!<\/p>\n\n\n\n<p>F\u00fcr eine Testumgebung reicht aber auch ein Dom\u00e4nenname wie example.local. Ich nutze daf\u00fcr eine Subdomain. Das Gateway ist bei virt-manager die erste Adresse im Netzwerk. Als DNS-Server w\u00e4hle ich die IP-Adresse meines eigenen Routers, meines Providers oder schlicht Google-DNS. In meinem Beispiel also:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Hostname: cgn-ipa01.ipa.animentor.de\nIPv4-Adresse (manuell): 192.168.111.10\nGateway: 192.168.111.1\nDNS: 8.8.8.8<\/code><\/pre>\n\n\n\n<p>Au\u00dferdem erstelle ich w\u00e4hrend der Installation den Benutzer ipaadmin und gestatte ihm sudo-Rechte.<\/p>\n\n\n\n<p>Zuerst teste ich nach der Installation die Netzwerkverbindung. Die Google-DNS-Server sollte ich erreichen k\u00f6nnen, bevor ich irgendetwas anderes unternehme:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping 8.8.8.8<\/code><\/pre>\n\n\n\n<p>Auch die Namensaufl\u00f6sung muss funktionieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping google.de<\/code><\/pre>\n\n\n<div class='stb-container stb-style-warning stb-no-caption'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAACOZJREFUeNrsmntsleUZwH\/f5Zy25\/QU2sMopXYOochVRBdgkwxrqIhiqamZl8kGgQyCxqGYIXJTJlRQxCguC8aZbE4WxDkCKhKpuBWdFFgQy1qVS7nIRWihtOd81\/fZH1+FGgq0UpA53uRJTs753rfv732u79NPExG+D0PnezIug1wGuQzyfwJitvSlpmntc0q6zoABA3IjkUj69u3bd9bV1bntsW5LKcO8UCc0cODAbvfcc8+dhYWFBdFoNLOiouKjlStXrl6+fHnZBfmDInKanO+YMmXKWNu2a6WFsWLFipczMzMj7b7n9gaZMWPGg8037iePiFdfI6rZd+vXr18VDof1Sxak+I47bhYJ9uy7CUlsmC51L+dK7dK41K+8VbzaqpMwS5YseeqSBMnOzo7v379\/p4iIL0pOvHOfHHkWqX2xg9T+vqMcfc6QuleuFu\/47q9Z1LBhwwa3F0i7hd\/p06c\/0rVr124C2P9+EXv7MrRwJiIGonQwO+LXfk6i\/DFUU3BcvHjxs6mpqeFLJo9cd911fSdOnPiAAP6JL7E+XoBmREBpoGgSQQt1wKl6A+fzlaggsv10zJgxd7XHHrSWTKmteaSsrGxNQUHBCF+ExNsTsCv\/jJYSg5NLC9C0pm+hZ\/Uidu96jJQYhw8d3j948KBBNTU1X55PHjlvjYwZM+bOgoKCET7g7l6PU7kMzUwPtOHaiJ0Ax0HsxkAzWhr+wa1YG5\/DB7KzO+fOnDlz+neqkVgsFq2srNyal5fX3XFtGpeNxN\/\/MYQi4CUwulxP6g2\/RUuL41a9ib1lKegGKB8tlEb6Lzdgxq9CPM8uKCgYWl5evuk70cj0xx57OC8vr7sLOFtextv9TzDSwHXRIl2JFL+GmT8KPfcnpA5fiJl3I2InARPVUIv1wRx85WOaZkppaelCXde1i+7s1157bZ+pD0+d4Qn4tTVYG54BI4L4oFwLo8sgtI5XoGwHcWwE0LMHIq6L+ICZjr3tddzqd3CAoUOHFkyaNGnsRQeZM+fxueFwKMUHrH+Uoo7tBS0U+IEPaGFEfR3zQQS0tM6g9KYopqFhYn8wD5WoRwnMmDnzd1lZWZkXDaSk5M6i4uLRJbYCb9eHOJ8sByOG+ASbVzoqURd8BgRBAGWfQHxpegZET8XdW4Fd8RKOBl1zcnJnzpo17aKAZGZmxubOfWKeL6CcJNbaGWBbIEagCT84bXEsxPc4qQ4BaTh6SmNNohkxnA3P4x+owvbh\/smTpwwaNGjgBQeZ+sgjU\/v06dPPFnA2v4q36yMwoifNBaWhiY5YjSjPbsqFglIgyXpQxsnnUBoQQh0\/iL1uHj4QDodTnpw3b35bHb9NID169Lhy0sSJD9oeqKN7sN9fAHpKYFLNRWmIa4PymmxLQAkqcTz47RvPC5gx3MpVeFVrSXhQOHz4Lfe1MeO3CeSpBQsWxuPxTBdwypegju4FLdysDPladMRKIJ6DoAWivEAjorXwvAauh712LspqwPWFRx99dE5WVlZGu4OMGjVqRPHo4p83uOB\/VoazYSmE0ps5eDMRDbGTKLvxlEI8G5U8EUCqFuYYaXi7K3A\/WoqtNHr36tVr9uzZc9oVJCMjIzp\/fukiXwTlWjhlixDHAdFbOF1AdCTZgCTrEE0PopbnIMnGM89RoBkR7LLF+IeqSTg+Y8eO+3X\/\/v17txvI+PHjx\/fv36+vpQy8ja\/i\/qcMzOjpvnHSR3TEsVGNtYjWZFpOIoAT\/czztBCq\/iuc9c\/jiU4sFkt\/8sl5T7cLSM+ePbtPmzZtVqPtour24ax7rskvtLOKWDbqSA0YJoRSUUd2IccOg5hnnueDZsbwPv4L3vZ3aXCFkbeOvK2kpGT0eYPMmj378R90zu7kKh1n7dOog18EkaolO28uWghv0wpU7T6ksRbn\/RcR1wn852zzRENcD+fdhfhWA56nmF9a+mw8ntXhW4OMHDlyeElJyb31SRdVsxnvX8sglH5aUjtNFGhGGt72dVhP30jymZvwNv0tKCjPNdcHzAjq8w\/xyv+IhUmP7j2umjz5gQe+VRlvhkLGuvfWlQ8aMmRIImnjvPQL\/O3vQUq0dWHESWIMHE1oxFQIR\/A3\/hV33QvBBas11wTPQevQhZSH1hDq2AWr8cTxYcN+9uOqqqov2lTGjy4qKh48ZPCQhAf+ljfxt60FM3ru0\/QB20bP6Ufo3hcgpzd0zMUsmoMxoBiSja1bQw8jh2vwVpfiCsQ7deowfsKE+9tsWnfdffcYQUcl6nHX\/QEhFGTlc\/mGAnE96JyPpEQRO0iMyvfQcnojnrRuDR\/EjOJuXoU6UE3Cdhkx4pbbYhkZ6a0GycjIyOjbp+9AW4GqLkfVfHrKvs8RrVBaUMLvr4bkicAUzTAYJmpPZVBctmYNpQEGnDiG2rIaVzRyc3O75\/fI793qJnZ+fv4Pu+Tk5HhKUF9WB8nPSG1D4RPG31eF86eHMG+aAGYK6pN38Ta\/FVyDVVuaWDr+vioM3yOSmqp3u6rbj4CKVoE0NDT4lmV5KSnRkBhhcBWk0Kwr0ophpOJv\/Dt+xargnu5akBIJHL0tIJ4C9CCxiuDYtrTatHbs2LFn7549+0Liow8YgZbdA2mo\/+alqDU2bqQheijI5qHoqcq3tWs4Qd7Rry9CE6GhocGvrv5sd6tBPM9rfOONFStTwwbEryB0\/ysY\/YYHdZKVhGRbxALLauOcJFgWWkYXQr9ahDagkGhIo6Ji46adO3dUtimPhMPh+GuvLVt9e1HRkGMNieCSd\/ALpO4g+N6F\/xdUSgStaz7EOhE1Nb766lB90e2331FZWVnW4p7P1tdKT0+\/8okn5i4aN25cSWpaGo4SXF+h1IV\/ycA0dMK6hmlobN68ZcekSRN\/8+m2bW+dqa\/VmgZd2jXXXHNzYeHNhTcMvWFIz55X58ViseiFemNCC2KKOnDgwNFPtm6tWrNmzftvv\/3W67Zt7zpbg66tncYO8Xi8SywWizXNkwvE4h86dOioZVmHALs1nUbt8rsol0Eug1wG+Z8a\/x0A3thDl\/BwJ7kAAAAASUVORK5CYII=' alt='img'\/><\/div><div class='stb-caption-content'><\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'>Sollte die Namensaufl\u00f6sung scheitern, pr\u00fcft man zuerst, ob ein Nameserver in der Datei <code>\/etc\/resolv.conf<\/code> oder in einer der Regeln unterhalb von <code>\/etc\/resolv.conf.d\/<\/code> (falls vorhanden) eingetragen wurde. Testweise lie\u00dfe sich ein Nameserver dort erg\u00e4nzen. Die meisten gro\u00dfen Distributionen lassen allerdings NetworkManager diese Dateien pflegen. Ein NetworkManager-Tool f\u00fcr die Kommandozeile ist <code>nmtui<\/code>. Scheitert die Namensaufl\u00f6sung in der virtuellen Maschine, obwohl ein Nameserver eingetragen und per IP-Adresse erreichbar ist, pr\u00fcft man die Firewall auf dem Host und aktiviert dort ggf. IP-Masquerading.<\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3. FreeIPA-Server-Installation<\/h3>\n\n\n\n<p>Der Hostname des Servers sollte in der Datei <code>\/etc\/hostname<\/code> in der FQDN-Schreibweise, also vollst\u00e4ndig mit Dom\u00e4nenname, eingetragen sein. Wenn das noch nicht der Fall ist, sollte das nun nachgeholt und der Server danach neugestartet werden. Au\u00dferdem sollte in der Datei <code>\/etc\/resolv.conf<\/code> der bei der Installation angegebene DNS-Server eingetragen sein. In der Datei \/etc\/hosts f\u00fcge ich noch folgende Zeile hinzu (IP-Adresse vor FQDN vor Shortname):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>192.168.111.10 cgn-ipa01.ipa.animentor.de cgn-ipa01<\/code><\/pre>\n\n\n\n<p>Wenn der Befehl <code>hostname<\/code> den FQDN zur\u00fcckgibt, f\u00e4hrt man mit der Installation der n\u00f6tigen Pakete fort. Hier der Befehl f\u00fcr CentOS 7:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo yum install ipa-sever ipa-server-dns<\/code><\/pre>\n\n\n\n<p>Danach erfolgt die eigentliche FreeIPA-Server-Installation mit integriertem DNS-Server und automatischer Anlage eines Benutzerverzeichnisses bei der ersten Anmeldung eines FreeIPA-Benutzers:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ipa-server-install --setup-dns --mkhomedir<\/code><\/pre>\n\n\n\n<p>Wenn der Hostname und der DNS-Server in den oben genannten Dateien korrekt eingetragen wurden, sollte der Installationsassistent f\u00fcr alle Fragen bereits die richtige Antwort anbieten und den FreeIPA-Server unter anderem auch die DNS-Zonen der Dom\u00e4ne automatisch einrichten. F\u00fcr den Directory Manager (Benutzer f\u00fcr das LDAP-Verzeichnis) und den FreeIPA-Administrator admin muss jeweils ein Kennwort eingegeben werden.<\/p>\n\n\n\n<p>Nach wenigen Minuten ist die Installation beendet und die Dom\u00e4ne samt DNS-Server konfiguriert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Firewall konfigurieren<\/h3>\n\n\n\n<p>Damit der FreeIPA-Server seinen Aufgaben nachkommen kann, m\u00fcssen noch einige Ports auf der Firewall ge\u00f6ffnet werden, worauf das Installationsprogramm im letzten Schritt auch hinweist:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Next steps:\n\t1. You must make sure these network ports are open:\n\t\tTCP Ports:\n\t\t  * 80, 443: HTTP\/HTTPS\n\t\t  * 389, 636: LDAP\/LDAPS\n\t\t  * 88, 464: kerberos\n\t\t  * 53: bind\n\t\tUDP Ports:\n\t\t  * 88, 464: kerberos\n\t\t  * 53: bind\n\t\t  * 123: ntp<\/code><\/pre>\n\n\n\n<p>Entweder \u00f6ffnet man in firewalld die Ports explizit, oder man schaltet Services frei, die mit bestimmten Ports und Protokollen definiert wurden. Die folgenden Befehle \u00f6ffnen alle oben gelisteten Ports:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo firewall-cmd --add-service freeipa-ldap --permanent\nsudo firewall-cmd --add-service freeipa-ldaps --permanent\nsudo firewall-cmd --add-service dns --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. DNS-Server korrigieren<\/h3>\n\n\n\n<p>Nun \u00e4ndere ich den DNS-Server in den Netzwerkeinstellungen des FreeIPA-Servers auf die IP-Adresse <code>127.0.0.1<\/code> (localhost). Da er selber auch DNS-Server mit einem Fowarder zur Au\u00dfenwelt ist, kann er sich jegliche DNS-Abfragen selber beantworten. Eine M\u00f6glichkeit auf Linux-Systemen mit NetworkManager, die Netzwerkeinstellungen komfortabel auf der Kommandozeile zu \u00e4ndern, ist nmtui.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. SSH-Verbindung zum Server<\/h3>\n\n\n\n<p>Nat\u00fcrlich kann man sich jederzeit mithilfe von virt-manager remote mit dem Server verbinden. Aber eine SSH-Verbindung ist ebenfalls praktisch. Dazu verwende ich der Einfachheit halber das gleiche Schl\u00fcsselpaar mit Passphrase wie f\u00fcr meine Remote-Verbindung zum Virtualisierungshost, doch man k\u00f6nnte auch f\u00fcr unterschiedliche Zwecke unterschiedliche Schl\u00fcssel einsetzen. Der folgende Befehl wird auf meinem Rechner ausgef\u00fchrt, nicht auf den Servern:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh-copy-id -i ipaadmin@192.168.111.10<\/code><\/pre>\n\n\n\n<p>Danach komme ich nach Eingabe der Passphrase per SSH auf den FreeIPA-Server.<\/p>\n\n\n\n<p><strong>6. Test der Benutzeranmeldung<\/strong><\/p>\n\n\n\n<p>Zur\u00fcck auf dem FreeIPA-Server, der nun selber ein in die Dom\u00e4ne aufgenommener Host ist, sollte die Anmeldung als Dom\u00e4nenadministrator funktionieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kinit admin<\/code><\/pre>\n\n\n\n<p>Das erhaltene Kerberos-Ticket zeigt der folgende Befehl:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>klist<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>FreeIPA steht f\u00fcr Free Identity, Policy, Audit und ist eine quelloffene Identity-Management-L\u00f6sung auf Basis eines LDAP-Verzeichnisses und von Kerberos mit optionalen Komponenten wie DNS-Server, Zertifizierungsstelle und mehr. \u00dcbersetzt: FreeIPA verwaltet eine Dom\u00e4ne mit Benutzern, Computern, Richtlinien und Vertrauensstellungen. Klingt nach Microsoft Active Directory? Genau darum handelt es sich. FreeIPA kann dar\u00fcber hinaus auch einen Forest-zu-Forest-Trust&hellip; <a class=\"more-link\" href=\"https:\/\/pascal-korz.de\/blog\/2018\/12\/08\/freeipa-installation-eines-domain-controllers\/\"><span class=\"screen-reader-text\">FreeIPA: Installation eines Domain Controllers<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":6,"featured_media":290,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,8,13],"tags":[102],"class_list":["post-130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-freeipa","category-linux","category-virtualisierung","tag-artikelreihe-testumgebung","entry"],"_links":{"self":[{"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/posts\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":24,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/posts\/130\/revisions"}],"predecessor-version":[{"id":466,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/posts\/130\/revisions\/466"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/media\/290"}],"wp:attachment":[{"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/media?parent=130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/categories?post=130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/tags?post=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}