IPA

From A-Eskwiki
Revision as of 21:57, 24 September 2018 by Rens (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

FreeIPA is a Red Hat sponsored open source project which aims to provide an easily managed Identity, Policy and Audit (IPA) suite primarily targeted towards networks of Linux and Unix computers. FreeIPA can be compared to Novell's Identity Manager or Microsoft's Active Directory in that the goals and mechanisms used are similar.

FreeIPA currently uses 389 Directory Server for its LDAP implementation, MIT's Kerberos 5 for authentication and single sign-on, the Apache and Python for the management framework and Web UI, and (optionally) Dogtag for the integrated CA and BIND with a custom plugin for the integrated DNS. Development versions also use Samba to integrate with Microsoft's Active Directory by way of Cross Forest Trusts.

While each of the major components of FreeIPA is a pre-existing open source project it is the bundling of these components into a single manageable suite with a Comprehensive Management Interface that make FreeIPA more comparable to its proprietary software cousins, Identity Manager and Active Directory.

FreeIPA aims to provide support not just for Linux and Unix based computers but ultimately Microsoft Windows and Apple Macintosh computers also.

De webinterface van de IPA van A-Eskwadraat is te benaderen via http://ipa05.a-eskwadraat.nl. Hiervoor moet je wel op het netwerk van A-Eskwadraat zitten, dit is niet van buiten af te benaderen.

Server installatie

Installeer ipa-server met alle dependencies. Zorg ervoor dat alle benodigde firewall-poorten open staan, na een schone kickstart hoeft enkel poort 7389 tcp nog geopend te worden. Vervolgens, om ipa-server te installeren zonder NTP-server:

ipa-server-install -N

Na de installatie moet de server nog een beveiligings-certificaat krijgen. Voer hiervoor het volgende commando uit:

ipa-getcert request -d /etc/pki/nssdb/ -n ipaserver-cert

Sudo gegevens zijn niet anoniem uit IPA te halen, daarom moet er voor de standaard user sudo een wachtwoord ingesteld worden (zou kunnen dat dit niet meer nodig is). Doe dit met

ldappasswd -Y GSSAPI uid=sudo,cn=sysaccounts,cn=etc,dc=a-eskwadraat,dc=nl -s sudopasswd

Firewall

IPA heeft een aantal poorten nodig om correct te werken:

Service Poort Type
HTTP/HTTPS 80,443 tcp
LDAP/LDAPS 389,636 tcp
Kerberos 88,464 tcp,udp
DNS 53 tcp,udp
NTP 123 udp

Client installatie

Dialog-information.png Bij migratie naar een andere IPA-server moet /etc/ipa leeg zijn.


ipa-client-install

Installeer een IPA-client als volgt (uiteraard als root):

ipa-client-install

Er wordt tijdens de installatie gevraagd om een gebruikersnaam, gebruik daarvoor gewoon je eigen account.

Reboot het systeem als de installatie voltooid is.

sudo

Om sudoregels te gebruiken op systemen ouder dan CentOS 7, zie Sudo.

httpd

Om in websites IPA te gebruiken is het nodig een PAM- en HBAC-service toe te voegen. Zie ook HBAC.

Schema

Aan het standaard schema van IPA is de objectClass 'aesAccount' met attribuut 'memberId'. Zie de volgende LDIF:

dn: cn=schema
changetype: modify
add: attributetypes
attributetypes:( 1.3.6.1.4.1.44413.1.1.1 NAME 'memberId' DESC 'MemberId of person' 
EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
-
add: objectclasses
objectclasses: ( 1.3.6.1.4.1.44413.1.2.1 NAME 'aesAccount' SUP top AUXILIARY 
DESC 'A-Eskwadraat account information' MAY  ( memberId ) )

Lidnummer toevoegen

'mensjeadd' vraagt bij het aanmaken van een account om een lidnummer. Mocht er onverhoopt iets misgaan, met de onderstaande LDIF is het mogelijk om een lidnummer aan een account toe te voegen:

dn: uid=$login,cn=users,cn=accounts,dc=a-eskwadraat,dc=nl
changetype: modify
add: memberId
memberId: $lidnummer

Replication

Er zijn op dit moment drie IPA-servers met de volgende replication agreements:

  • ipa01 <=> ipa02
  • ipa01 <=> ipa03
  • ipa02 <=> ipa03

Gebruik ipa

Op de webinterface van IPA zijn alle eigenschappen van gebruikers en groepen te wijzigen onder het tabblad "Identity". Dit spreekt redelijk voor zich. Bij "Policy" zijn host-based access control en sudoregels in te stellen.

Sommige instellingen, bijvoorbeeld de home directory van een user, zijn als sysop-user niet aan te passen. Hiervoor moet je inloggen als admin. Dit doe je via de webinterface of via de terminal met het volgende command:

kinit admin

Host-based access control

Op alle clients waar ipa is geïnstalleerd, wordt bij het inloggen sssd gebruikt om te authenticeren. Deze controleert op de ipa server of de gebruiker op die machine mag inloggen. Het is gewone gebruikers bijvoorbeeld alleen toegestaan om in te loggen op workstations, niet op virtuele machines en een aantal daarvan zijn wel ipa client. Bij Policy > Host-based Access Control in de IPA webinterface zijn de regels in te stellen die bepalen wie waar mag inloggen. Een regel bevat: de gebruikers waarvoor deze van toepassing is, de computers waarop deze van toepassing is, en de services waarmee ingelogd kan worden. Bij alle drie is er een optie om alles/iedereen toe te staan.

Sudoregels

Sudoregels staan toe dat een gebruiker een commando uitvoert als iemand anders. Het geeft gebruikers de mogelijkheid om commando's namens hun commissies uit te voeren, of sysop om overal sudo te gebruiken om root te worden. Deze zijn in de webinterface in te stellen bij Policy > Sudo. Een regel bestaat uit: welke gebruiker(s), welke computer(s), welke commando(s) en als welke gebruiker(s). Verder kunnen er opties worden toegevoegd, deze zijn gelijk aan opties die gewoonlijk in sudoers ingesteld kunnen worden, zoals !authenticate die bepaalt dat er geen wachtwoord ingevoerd hoeft te worden voor die regel.

Wat te doen als ipa01 eruit ligt

Eerst ssh je naar ipa01 als root (met de sysop key). De directory service raakt corrupt en dan komt wordt het filesysteem read only (ro). Met het volgende command kan je controleren of het filesystem inderdaad read only is:

 grep "\sro[\s,]" /proc/mounts

Als ext4 read only is dan staat het filesysteem van ipa01 in read only en moet je de vm opnieuw opstarten ("reboot now"). Wanneer de vm herstart is staat het filesysteem weer in read write (rw). De database van ipa is nog corrupt en daarom kunnen we ipa niet in een keer starten. Eerst moeten we de directory service los starten dit kan met het volgende commando:

 /usr/sbin/start-dirsrv

Als dit zonder errors wordt afgerond moeten we de directory service weer stoppen, dit kan met het volgende commando:

 /usr/sbin/stop-dirsrv

Nadat dit zonder errors is afgerond moeten we ipa starten. Dit doen we met het volgende commando:

 ipactl start

Op het moment dat er errors zijn bij het opstarten van de directory service moet er helaas een backup worden teruggezet. Dit wordt gedaan door het volgende te doen:

 *Hier moet nog komen hoe je een backup terugzet*