FreeIPA

From HackerNet
Jump to: navigation, search

FreeIPA är ett open source projekt för centraliserad Identity, Policy och Auditing (IPA) för unix/linux-system, likt Microsofts Active Directory. I botten används 389 Directory Server för LDAP, MIT's Kerberos 5 för authentication och single sign-on, BIND för integrerad DNS och Samba för integration mot Active Directory. Man sparar lösenord och SSH-nycklar centralt som autentisering på övriga maskiner kan kolla mot. Man kan skapa användargrupper och styra sudo policy centralt. Det är sponsrat av Red Hat.

DNS
Namnuppslag måste fungera. T.ex. för en server måste man använda fqdn och det ska vara resolvable. Det går att lösa med hosts-filen i en testsetup.

Server

Installation

Fedora

sudo dnf -y install freeipa-server

CentOS

yum install ipa-server

Konfiguration

Starta wizarden som automatiskt konfigurerar upp din FreeIPA med det nödvändigaste.

sudo ipa-server-install

Kör kommandot kinit admin så får du en kerberos ticket som du behöver för att kunna köra IPA tools tex ipa user-add.

DNS records

Skapa följande records om du kör en DNS server som inte FreeIPA sköter. Dessa records gör att autodiscovery fungerar och gör det mycket enklare att konfigurera upp klienter.

; ldap servers
_ldap._tcp              IN SRV 0 100 389        freeipa

;kerberos realm
_kerberos               IN TXT HACKERNET.SE

; kerberos servers
_kerberos._tcp          IN SRV 0 100 88         freeipa
_kerberos._udp          IN SRV 0 100 88         freeipa
_kerberos-master._tcp   IN SRV 0 100 88         freeipa
_kerberos-master._udp   IN SRV 0 100 88         freeipa
_kpasswd._tcp           IN SRV 0 100 464        freeipa
_kpasswd._udp           IN SRV 0 100 464        freeipa

;ntp server
_ntp._udp               IN SRV 0 100 123        freeipa

; CNAME for IPA CA replicas (used for CRL, OCSP)
ipa-ca                  IN A                    IP-to-FreeIPA

Brandväggsöppningar

Beroende på vilken dist du använder kanske du inte behöver öppna portar i din egna brandvägg.

firewall-cmd --permanent --add-service=ntp
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=ldap
firewall-cmd --permanent --add-service=ldaps
firewall-cmd --permanent --add-service=kerberos
firewall-cmd --permanent --add-service=kpasswd
firewall-cmd --reload

Skapa user

ipa user-add
ipa passwd <user>

Web UI

Nås på https://IP-to-FreeIPA

Replikering

Det går att replikera datan mellan servrar.

ipa-replica-manage list

System account

Vissa LDAP tjänster behöver ett förkonfat konto tex LDAP Autofs och sudo. Oftast så använder man en användares uppgifter när man bindar mot en LDAP server men det är inte alltid möjligt. Anledningen till varför man skapar ett service konto istället för ett vanligt användar konto är att ett system kontot endast finns för att binda mot LDAP servern och är alltså inget POSIX konto och kan därför inte logga in mot några system.

Skapa ett system account så här:

ldapmodify -x -D 'cn=Directory Manager' -W

dn: uid=system,cn=sysaccounts,cn=etc,dc=hackernet,dc=se
changetype: add
objectclass: account
objectclass: simplesecurityobject
uid: 1337
userPassword: secret
passwordExpirationTime: 20380119031407Z
nsIdleTimeout: 0
<blank line>
^D(CTRL+D)

GroupOfUniqueNames

GroupOfUniqueNames är en objectclass som finns i grupper, vissa program söker i LDAP databasen efter denna class. Bland annat VMware vCenter.

Logga in på IPA WebUI gå till IPA Server ---> Configuration --> Group Options --> Add --> Fyll i GroupOfUniqueNames --> Save --> Refresh.

Skapa sedan en Posix grupp och lägg till användarna i gruppen.

Kör sedan följande kommando för varje användare.

ipa group-mod <group_name> --addattr="uniqueMember=uid=changeme,cn=users,cn=accounts,dc=hackernet,dc=se"

Klient

Installation

Ubuntu

apt-get install freeipa-client

Fedora

dnf install freeipa-client

Enroll host till FreeIPA

Kör följande kommando för att starta en wizard som enrollar din klient i freeipa.

ipa-client-install

Om autodiscovery fungerar som det ska så är alla fält i fyllda och det enda du behöver ange är en användare som har behörighet att enrolla klinter till freeipa.

Man kan fylla i användarnamn och lösenord i förväg så slipper svara på frågor.

ipa-client-install -p admin -w secretpw --unattended