FreeIPA
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.
Contents
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