Nachdem eine FreeIPA-Domäne eingerichtet wurde, gilt standardmäßig die Regel, dass alle Benutzer auf allen Rechnern der Domäne alle Dienste nutzen dürfen. In meiner Domäne möchte 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ässt sich mit sogenannten Host-Based-Access-Control-Regeln bewerkstelligen.
Diese Anleitung steht für sich allein, knüpft aber an folgende Beiträge an:
Zuerst melde ich mich als Domänenadministrator admin an und erstelle die Benutzergruppe ssh_global
mit dem Ansible-Benutzer als einzigem Mitglied:
kinit admin
ipa group-add ssh_global --users=ansible.ssh --desc="Users with global SSH access"
Danach erstelle ich die HBAC-Regel allow_global_ssh
:
ipa hbacrule-add allow_global_ssh --hostcat=all --desc="Allow members SSH access to all hosts"
ipa hbacrule-add-user allow_global_ssh --groups=ssh_global
ipa hbacrule-add-service allow_global_ssh --hbacsvcs=sshd
Schließlich deaktiviere ich die Regel allow_all
:
ipa hbacrule-disable allow_all
Der Ansible-Benutzer wird sich nun noch überallhin per SSH verbinden können, andere Benutzer hingegen nicht, auch nicht admin.