FreeIPA

Siehe auch

FreeIPA (Free Identity Policy Audit) ist eine web- und kommandozeilenbasierte Security Information Management-Lösung für Linux / UNIX-Netzwerkumgebungen. Es kombiniert bekannte Open Source-Komponenten und Standardprotokolle wie Linux (Fedora), 389 Directory Server, MIT Kerberos, NTP, DNS und Dogtag (Zertifikatssystem).

Ein FreeIPA-Server bietet zentralisierte Authentifizierungs-, Autorisierungs- und Kontoinformationen. In einer FreeIPA-Domäne können problemlos mehrere FreeIPA-Server parallel betrieben werden, um Redundanz und Skalierbarkeit zu gewährleisten.

Der 389 Directory Server speichert Daten zu Benutzern, Gruppen, Hosts und anderen Objekten und bietet eine vollständige Multi-Master-LDAPv3-Verzeichnisinfrastruktur. Die Single-Sign-On-Authentifizierung erfolgt über das MIT Kerberos KDC. Die Authentifizierungsfunktionen werden durch eine integrierte Zertifizierungsstelle erweitert, die auf dem Dogtag-Projekt basiert. Optional können Domänennamen über den integrierten ISC-Bindungsserver verwaltet werden.

Zugriffskontrolle, die Delegierung von Verwaltungsaufgaben etc. können vollständig zentralisiert und über die Web-Benutzeroberfläche oder das ipa-Befehlszeilentool verwaltet werden.

Kommerzielles Produkt von Red Hat: IdM (or IPA).

Password-Expiration ändern

Im Standard laufen Passwörter nach 90 Tagen ab. Um das zu ändern, muss man die Password-Policy anpassen. Im FreeIPA Web-GUI:

  • Policy > Password Policies > global_policy > Max lifetime (days): 10000 (maximal sind 20000 Tage erlaubt)

  • IPA Server > Configuration > Default shell: /bin/bash

  • IPA Server > Configuration > Password Expiration Notification (days): 10

Durch Benutzer anpassbare Felder

Welche Felder dürfen User selbst administrieren? Es ist sinnvoll, folgende Felder hinzuzufügen:

  • IPA Server > Role-Based Access Control > Self Service Permissions > User Self service

    • mail

Rebuild Host/User Membership

  • Identity > Users or Hosts > Actions > Rebuild auto membership.

Read-Only LDAP User anlegen (Service-Account)

Wer für eine Applikation einen Read-only Benutzer benötigt (z.B. um in Nextcloud eine LDAP-Anbindung zu konfigurieren), erstellt diesen so:

ldapmodify -H ldap://freeipa.example.com:389 -x -D 'cn=Directory Manager' -W
Enter LDAP Password: *** - und dann wartet das Kommando auf folgende Eingabe:

dn: uid=freeipa-reader,cn=sysaccounts,cn=etc,dc=example,dc=com
changetype: add
objectclass: account
objectclass: simplesecurityobject
uid: freeipa-reader
userPassword: password
passwordExpirationTime: 20380119031407Z
nsIdleTimeout: 0
<blank line>

adding new entry "uid=freeipa-reader,cn=sysaccounts,cn=etc,dc=example,dc=com"
^D

CLI

Tool: ipa

kinit admin

ipa group-add
ipa group-add-member
ipa group-remove-member
ipa group-show
ipa hbacrule-find
ipa user-add
ipa user-mod
ipa user-show --all admin

Ohne Interaktion: ipa --no-prompt

Troubleshooting

Der Client nimmt neue Einstellungen nicht an

Es dauert etwas, bis die Regeln greifen. Hier hilft auch ein systemctl restart sssd; sss_cache --everything auf dem Client.

LDAP-Logging

tail -f /var/log/dirsrv/slapd-*/access

Could not chdir to home directory $HOME: No such file or directory
# as root:
authselect current
authselect select sssd with-sudo with-mkhomedir
authselect current

Built on 2023-03-17