{"id":222,"date":"2021-06-02T08:00:00","date_gmt":"2021-06-02T06:00:00","guid":{"rendered":"https:\/\/pascal-korz.de\/blog\/?p=222"},"modified":"2021-04-18T22:34:16","modified_gmt":"2021-04-18T20:34:16","slug":"freeipa-host-based-access-control","status":"publish","type":"post","link":"https:\/\/pascal-korz.de\/blog\/2021\/06\/02\/freeipa-host-based-access-control\/","title":{"rendered":"FreeIPA: Host-Based Access Control"},"content":{"rendered":"\n<p>Nachdem eine FreeIPA-Dom\u00e4ne eingerichtet wurde, gilt standardm\u00e4\u00dfig die Regel, dass alle Benutzer auf allen Rechnern der Dom\u00e4ne alle Dienste nutzen d\u00fcrfen. In meiner Dom\u00e4ne m\u00f6chte ich restriktivere Zugriffsregeln erstellen und es zum Beispiel nur dem Ansible-Benutzer erlauben, sich per SSH mit den Rechnern zu verbinden und sudo zu verwenden. Das l\u00e4sst sich mit sogenannten Host-Based-Access-Control-Regeln bewerkstelligen.<\/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 steht f\u00fcr sich allein, kn\u00fcpft aber an folgende Beitr\u00e4ge an:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a rel=\"noreferrer noopener\" href=\"https:\/\/pascal-korz.de\/blog\/2018\/12\/08\/freeipa-installation-eines-domain-controllers\/\" data-type=\"post\" data-id=\"130\" target=\"_blank\">FreeIPA: Installation eines Domain Controllers<\/a><\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/pascal-korz.de\/blog\/2021\/05\/12\/ansible-in-einer-freeipa-domaene-einrichten\/\" target=\"_blank\">Ansible in einer FreeIPA-Dom\u00e4ne einrichten<\/a><\/li><li><a href=\"sudo-Regel f\u00fcr den Ansible-Benutzer\" target=\"_blank\" rel=\"noreferrer noopener\">FreeIPA: sudo-Regel f\u00fcr den Ansible-Benutzer<\/a><\/li><\/ul>\n<\/div><\/div>\n\n\n\n<p>Zuerst melde ich mich als Dom\u00e4nenadministrator admin an und erstelle die Benutzergruppe <code>ssh_global<\/code> mit dem Ansible-Benutzer als einzigem Mitglied:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kinit admin\nipa group-add ssh_global --users=ansible.ssh --desc=\"Users with global SSH access\"<\/code><\/pre>\n\n\n\n<p>Danach erstelle ich die HBAC-Regel <code>allow_global_ssh<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ipa hbacrule-add allow_global_ssh --hostcat=all --desc=\"Allow members SSH access to all hosts\"\nipa hbacrule-add-user allow_global_ssh --groups=ssh_global\nipa hbacrule-add-service allow_global_ssh --hbacsvcs=sshd<\/code><\/pre>\n\n\n\n<p>Schlie\u00dflich deaktiviere ich die Regel <code>allow_all<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ipa hbacrule-disable allow_all<\/code><\/pre>\n\n\n\n<p>Der Ansible-Benutzer wird sich nun noch \u00fcberallhin per SSH verbinden k\u00f6nnen, andere Benutzer hingegen nicht, auch nicht admin.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nachdem eine FreeIPA-Dom\u00e4ne eingerichtet wurde, gilt standardm\u00e4\u00dfig die Regel, dass alle Benutzer auf allen Rechnern der Dom\u00e4ne alle Dienste nutzen d\u00fcrfen. In meiner Dom\u00e4ne m\u00f6chte ich restriktivere Zugriffsregeln erstellen und es zum Beispiel nur dem Ansible-Benutzer erlauben, sich per SSH mit den Rechnern zu verbinden und sudo zu verwenden. Das l\u00e4sst sich mit sogenannten Host-Based-Access-Control-Regeln&hellip; <a class=\"more-link\" href=\"https:\/\/pascal-korz.de\/blog\/2021\/06\/02\/freeipa-host-based-access-control\/\"><span class=\"screen-reader-text\">FreeIPA: Host-Based Access Control<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":6,"featured_media":290,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,12,6,8],"tags":[102],"class_list":["post-222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ansible","category-freeipa","category-gruppenrichtlinien","category-linux","tag-artikelreihe-testumgebung","entry"],"_links":{"self":[{"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/posts\/222","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=222"}],"version-history":[{"count":5,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"predecessor-version":[{"id":479,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/posts\/222\/revisions\/479"}],"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=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pascal-korz.de\/blog\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}