Difference between revisions of "FreeIPA"
(→Klient) |
|||
Line 163: | Line 163: | ||
Man kan fylla i användarnamn och lösenord i förväg så slipper svara på frågor. | 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 | ipa-client-install -p admin -w secretpw --unattended | ||
+ | |||
+ | ==IPA Advise== | ||
+ | Med kommandot <code>ipa-advise</code> kan du få konfigurations förslag på hur du konfigurerar en klient mot freeipa om du inte har tillgång till ipa klienten. | ||
[[Category:Guider]] | [[Category:Guider]] |
Revision as of 07:54, 24 August 2016
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"
Active directory trust
FreeIPA har stöd för att sätta upp en trust med ett AD.
Din FreeIPA domän och AD domän får inte vara samma för att det ska fungera.
Installera AD trust paketet:
yum install ipa-server-trust-ad
Kör ipa ad trust install för att lägga till nödvändiga object och skapa nya DNS records:
ipa-adtrust-install --netbios-name=IPA_NETBIOS -a admin_password
Ifall din freeipa inte kan uppdatera din DNS med nya records så behöver du skapa följande annars kan du skippa detta steget:
_ldap._tcp.dc._msdc.<freeipa_domän>. 3600 IN SRV 0 100 389 <freeipa_server> _kerberos._tcp.dc._msdcs.<freeipa_domän>. 3600 IN SRV 0 100 88 <freeipa_server> _kerberos._udp.dc._msdcs.<freeipa_domän>. 3600 IN SRV 0 100 88 <freeipa_server> _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.<freeipa_domän>. 3600 IN SRV 0 100 389 <freeipa_server> _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.<freeipa_domän>. 3600 IN SRV 0 100 88 <freeipa_server> _kerberos._udp.Default-First-Site-Name._sites.dc._msdcs.<freeipa_domän>. 3600 IN SRV 0 100 88 <freeipa_server>
För att en trust ska fungera så måste AD servern kunna slå upp FreeIPA domänen och tvärtom. Verifiera det med följande kommando.
AD DC
C:\> nslookup set type=srv _ldap._tcp.ad_domain _ldap._tcp.ipa_domain
IPA server
dig SRV _ldap._tcp.ipa_domain dig SRV _ldap._tcp.ad_domain
Om det inte fungerar så kan man behöva forwarda request direkt till motsvarande domäns dns server.
AD DC
C:\> dnscmd 127.0.0.1 /ZoneAdd ipa_domain /Forwarder ipa_ip_address
IPA server
- IPA v3.x:
ipa dnszone-add ad_domain --name-server=ad_hostname.ad_domain --admin-email='hostmaster@ad_domain' --force --forwarder=ad_ip_address --forward-policy=only --ip-address=ad_ip_address
- IPA v4.x:
ipa dnsforwardzone-add ad_domain --forwarder=ad_ip_address --forward-policy=only
Skapa och verifiera cross-realm trust
ipa trust-add --type=ad ad_domain --admin Administrator --password
Vid prompt ange lösenordet till AD domänens Administrator konto eller ett annat konto som är med i Domain Admins gruppen, om allt är uppsatt korekt så kommer IPA att sätta upp en two-way forest trust med AD och validera den.
Skapa sedan en external group och en POSIX group.
- External group funkar som en container där dina trusted domän användare finns.
- Lägg sedan till den den externa gruppen i en POSIX group så att dina AD domän användare får ett group id(gid) som kan användas som default group.
ipa group-add --desc='ad_domain admins external map' ad_admins_external --external ipa group-add --desc='ad_domain admins' ad_admins ipa group-add-member ad_admins_external --external 'ad_netbios\Domain Admins'
När den frågar om member user och member group så lämna det blankt och tryck enter.
Lägg sedan till den externa gruppen i posix gruppen.
ipa group-add-member ad_admins --groups ad_admins_external
För att verifera att det fungerar så ska det gå att logga in på en IPA ansluten server med ett AD konto. När du ansluter till en server måste du ange ad_user@ad_domain som username.
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
IPA Advise
Med kommandot ipa-advise
kan du få konfigurations förslag på hur du konfigurerar en klient mot freeipa om du inte har tillgång till ipa klienten.