Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
content:serverbasics:docker-freeipa [2025/03/26 10:27] Danielcontent:serverbasics:docker-freeipa [2025/04/09 15:24] (aktuell) – [Setup your Browser to trust your IPA-Server] Daniel
Zeile 7: Zeile 7:
 This chapter will describe, how to install FreeIPA in a rootless Docker- Environement, use letsencrypt Cretificates for SSL and TLS and how to setup central User- Management with it. This chapter will describe, how to install FreeIPA in a rootless Docker- Environement, use letsencrypt Cretificates for SSL and TLS and how to setup central User- Management with it.
  
-===== Prerequiusite =====+===== Prerequisites =====
  
 You will need a Docker- Host, that is rechable from the Internet with its fully qualifierd Domain- Name (FQDN) as described in the chapters before. The given Ports must be reachable from the clients. You will need a Docker- Host, that is rechable from the Internet with its fully qualifierd Domain- Name (FQDN) as described in the chapters before. The given Ports must be reachable from the clients.
Zeile 245: Zeile 245:
 </file> </file>
  
-===== What if... =====+==== What if... ====
  
 you did not setup that cron or there was an error and now everything is not working any more? you did not setup that cron or there was an error and now everything is not working any more?
Zeile 257: Zeile 257:
 </code> </code>
  
-Well, you're in trouble. The only wa, i found out to fix this is to adjust the Hosts time to some time before that expiration- date, start the Container with "DEBUG_NO_EXIT: 1" and run the script manally.+Well, you're in trouble. The only way, i found to fix thisis to adjust the Hosts time to some time before that expiration- date, start the Container with "DEBUG_NO_EXIT: 1" and run the script manally.
  
 ===== Web- Gui / Logon ===== ===== Web- Gui / Logon =====
Zeile 516: Zeile 516:
  
 </code> </code>
 +
 +==== Jxplorer - GUI for LDAP ====
 +
 +A very nice tool for exploring your LDAP- Tree is: [[http://jxplorer.org/index.html|http://jxplorer.org/index.html]]
  
 ===== Port opening ===== ===== Port opening =====
Zeile 531: Zeile 535:
 That means, you have to tell your internet DNS- Provider, that clients.domain.tld will be managed by DNS- Server ipa.domain.tld That means, you have to tell your internet DNS- Provider, that clients.domain.tld will be managed by DNS- Server ipa.domain.tld
  
-This is done by adding an NS- Entry to you Internet-DNS: +This is done by adding an NS- Entry to you Internet-DNS. Please check yout ISP- Docs for how to add that NS entry for your domain:
 <code> <code>
 +
 clients.domain.tld  42363 IN NS ipa.domain.tld. clients.domain.tld  42363 IN NS ipa.domain.tld.
  
Zeile 544: Zeile 548:
  
 </code> </code>
 +
 +And at last:
 +
 +<code>
 +nslookup ipa-ca.clients.domain.tld
 +
 +</code>
 +
 +This should return the IP of yout IPA- Server. If this works, you are done with the basic setup.
 +
 +===== Client Setup =====
 +
 +to fully use Single Sign On on your Client, you will need to
 +
 +  - Setup your Browser to trust your IPA-Server
 +  - Install a working Kerberos-Client and enroll your PC to the Domain
 +  - Logon to your Linux- PC using SSSD/Kerberos
 +
 +==== Install Kerberos-Client and enroll your PC to the Domain ====
 +
 +Currently unfortunatelly i was not able to get Leap 15.6 working with freeipa-client (which worked for 15.5). So i switched to fedora (the KDE- Spin is very nice)
 +
 +On Fedora, you can archive the Installation like this (Docs at [[https://www.freeipa.org/page/ConfiguringFedoraClients|https://www.freeipa.org/page/ConfiguringFedoraClients]]
 +<code>
 +
 +#:> sudo yum install ipa-client
 +
 +</code>
 +
 +After that, go on with the next chapter https://obel1x.de/dokuwiki/doku.php?id=content:serverbasics:docker-freeipa#integrate_to_the_domain
 +
 +----
 +
 +Using Ferdora, skip this!
 +
 +After a fresh Install of OpenSUSE, you frist need to get the Package freeipa-client.
 +
 +I personally made it working that way:
 +
 +  * Open Yast
 +  * Choose User and Group- Management
 +  * Go to Authentication Settings
 +  * Select SSSD and Add a new FreeIPA-Domain.
 +      * Enable Domain Logons
 +      * Create Home-Directory = yes
 +      * Sync Users and Groups
 +      * SSH + Sudo = yes
 +
 +As IPA- Server use ''ipa.domain.tld'', no hostname set. The Network- Domain is ''clients.domain.tld''
 +
 +After those settings, exit from Yast. Do not care about Errors, that SSSD is not working: Your Client is missing important Domain Integration, so the service will fail.
 +
 +As the time beeing, there is no official Package for Leap 15.6. So you may use mine:
 +
 +<code>
 +zypper addrepo https://download.opensuse.org/repositories/home:obel1x/15.6/home:obel1x.repo
 +zypper refresh
 +zypper install freeipa-client
 +
 +#Add Additional Packages / setup some needed files
 +pip3 install ifaddr
 +ln /usr/lib/mit/bin/kdestroy /usr/bin/kdestroy
 +
 +</code>
 +
 +
 +=== Integrate to the Domain ===
 +
 +After that, you need to setup your Client maybe with this small script, called ipa_register_host.sh which you can put to /root:
 +
 +<file>
 +#!/bin/bash
 +TLDOMAIN=domain.tld
 +DOMAIN=clients.${TLDOMAIN}
 +SERVERFQDN=ipa.${TLDOMAIN}
 +#Serialnr of this device
 +HOSTNM=pc$(dmidecode -t system|grep -i "serial"|sed 's/Serial Number: //'|xargs|cut -c1-60|tr '[:upper:]' '[:lower:]'|sed 's/[^0-9a-z]*//g')
 +FQDN=${HOSTNM}.${DOMAIN}
 +echo "${FQDN} wird der Domain ${DOMAIN} hinzugefügt"
 +hostnamectl set-hostname ${HOSTNM}
 +#Check, if hostname is resolvable to this host - if not, add entry to /etc/hosts
 +if ! grep -q ${FQDN} "/etc/hosts"; then
 +  echo "Adding Host ${FQDN} to /etc/hosts"
 +  echo "">>"/etc/hosts"
 +  echo "127.0.0.1   ${FQDN} ${HOSTNM}">>"/etc/hosts"
 +fi
 +INSTCMD="ipa-client-install --mkhomedir --force-join --no-ntp --principal=admin --domain=${DOMAIN} --server=${SERVERFQDN} --hostname=${FQDN}"
 +echo ${INSTCMD}
 +${INSTCMD}
 +echo "Ende Installation, sie können das Fenster schließen"
 +
 +</file>
 +
 +This script will integrate your PC into your IPA- Domain. Have the Password of your IPA- Admin ready.
 +
 +After that, the SSSD should start, you may start, check and enable the Service.
 + <font 18px/inherit;;#e74c3c;;inherit>ATTENTION: When you now restart your PC and you have only WLAN enabled, the login WILL FAIL, because WLAN is activated AFTER logon. So SSSD cannot check your Domain and your Account and thus user logon will fail.</font>
 +
 +To prevent this, use a network- cable and configure Networking at system start, OR configure your wireless lan to be setup first. Or first logon as root, then as User.
 +
 +You should frist check on non-graphical terminal if this will work, because errors will be shown there. Good Luck.
 +
 +
 +==== Setup your Browser to trust your IPA-Server ====
 +
 +This one is on Firefox, as it works.
 +
 +Go to your IPAs ipa.domain.tld/ipa/config/ssbrowser.html website. You can also find the LInk at the initial Logon-Page.
 +
 +For me, the Button ''Import Certificate'' did not install automagically - use right- click and save to a file named ipa.crt.
 +
 +Than open Firefox settings, Privacy and Security, Authorities- Tab and select Import. Use the downloaded file and select all Checkboxes. This installs your IPA- Authority to your Browser as trusted CA.
 +
 +Do Steps 2 - 5 as described.
 +
 +After that, and after loggon to your pc with your FreeIPA-User, the User should automagically be logged on when you open ipa.domain.tld.
 +
 +If not, check if your klist shows some vaild Tickets. Otherwise inspect if this works:
 +
 +<code>
 +HOSTNAME:~ # kinit admin
 +Password for admin@DOMAIN.TLD:
 +HOSTNAME:~ # klist
 +Ticket cache: KEYRING:persistent:0:0
 +Default principal: admin@DOMAIN.TLD
 +
 +Valid starting     Expires            Service principal
 +04/07/25 12:58:27  04/08/25 12:40:12  krbtgt/DOMAIN.TLD@DOMAIN.TLD
 +
 +</code>
 +
 +This should be all needed to work for Firefox.
 +
 +==== Setup Sudoers with FreeIPA/SSSD ====
 +
 +This is quite a cool feature to have client admin- users managed by putting them in an IPA- group. When Loggin in with SSSD they will get added to the sudoers, making them admin on the given machines. Check this out: [[https://www.howtoforge.de/anleitung/wie-integriere-ich-sudoers-in-den-freeipa-server/|https://www.howtoforge.de/anleitung/wie-integriere-ich-sudoers-in-den-freeipa-server/]]
 +
 +
 +===== Next Steps =====
 +
 +Next, you can integrate a Middleware for Authentication. You could, but you should NOT use FreeIPAs LDAP- Service directly as Authentication- Source for anything, as LDAP is very costy and would not deliver all needed APIs e.g. for SSO. This is part of your Middleware, so checkout [[.:docker-authentik|]] to read further.
  
  
  • content/serverbasics/docker-freeipa.1742984874.txt.gz
  • Zuletzt geändert: 2025/03/26 10:27
  • von Daniel