content:serverbasics:docker-freeipa
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| content:serverbasics:docker-freeipa [2025/04/04 17:23] – [Central DNS for the Domain] obel1x | content:serverbasics:docker-freeipa [2026/03/06 16:39] (aktuell) – [Setup Sudoers with FreeIPA/SSSD] obel1x | ||
|---|---|---|---|
| Zeile 10: | Zeile 10: | ||
| 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. | ||
| - | |||
| ===== Docker composer ===== | ===== Docker composer ===== | ||
| Zeile 102: | Zeile 101: | ||
| | | ||
| | | ||
| + | |||
| + | networks: | ||
| + | # Still needs to be defined while without it won't enable ipv6 | ||
| + | default: | ||
| + | driver: bridge | ||
| + | enable_ipv6: | ||
| </ | </ | ||
| - | The caddy_data Volume contains the Certifictes for encryption from Caddy as described in [[.: | + | The caddy_data Volume contains the Certifictes for encryption from Caddy as described in [[: |
| __**STRONG ADVISE: Do not open Ports of your firewall of the services Kerberos, LDAP or DNS until you configured everything first, otherwise your Server will be very insecure at this stage!**__ | __**STRONG ADVISE: Do not open Ports of your firewall of the services Kerberos, LDAP or DNS until you configured everything first, otherwise your Server will be very insecure at this stage!**__ | ||
| Zeile 131: | Zeile 136: | ||
| As the internal Certificate of FreeIPA will be self-signed, | As the internal Certificate of FreeIPA will be self-signed, | ||
| - | ===== Encryption | + | ===== Certificate- Setup - SSL for LDAP and Kerberos |
| First thing you should do, is to secure the (Kerberos and LDAP)- ports with the certificate from letsenrcypt that Caddy gave you when openining the Webservice for IPA at [FQDN_HOSTNAME]. Without those matching certificates in place, Kerberos later won't accept the self signed- certificates that FreeIPA will create during install. | First thing you should do, is to secure the (Kerberos and LDAP)- ports with the certificate from letsenrcypt that Caddy gave you when openining the Webservice for IPA at [FQDN_HOSTNAME]. Without those matching certificates in place, Kerberos later won't accept the self signed- certificates that FreeIPA will create during install. | ||
| Zeile 187: | Zeile 192: | ||
| **Caution: Not renewing those Certificates will LOCK YOU OUT OF FREEIPA COMPLETEY with NOT OPTION to correct that after the certificates have expired!** | **Caution: Not renewing those Certificates will LOCK YOU OUT OF FREEIPA COMPLETEY with NOT OPTION to correct that after the certificates have expired!** | ||
| + | |||
| + | |||
| ==== Explanation of the Commands, Checks and Debugging ==== | ==== Explanation of the Commands, Checks and Debugging ==== | ||
| Zeile 259: | Zeile 266: | ||
| Well, you're in trouble. The only way, i found to fix this, is to adjust the Hosts time to some time before that expiration- date, start the Container with " | Well, you're in trouble. The only way, i found to fix this, is to adjust the Hosts time to some time before that expiration- date, start the Container with " | ||
| - | |||
| ===== Web- Gui / Logon ===== | ===== Web- Gui / Logon ===== | ||
| Zeile 487: | Zeile 493: | ||
| After that, the LDAP- Query should work. Test it: | After that, the LDAP- Query should work. Test it: | ||
| - | |||
| < | < | ||
| + | |||
| docker@servername: | docker@servername: | ||
| ldap_initialize( ldaps:// | ldap_initialize( ldaps:// | ||
| Zeile 518: | Zeile 524: | ||
| </ | </ | ||
| - | ==== Jxplorer - GUI for LDAP ==== | ||
| - | A very nice tool for exploring your LDAP- Tree is: http:// | + | ==== Jxplorer - GUI for LDAP ==== |
| + | A very nice tool for exploring your LDAP- Tree is: [[http:// | ||
| ===== Port opening ===== | ===== Port opening ===== | ||
| Zeile 538: | Zeile 544: | ||
| 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: | 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: | ||
| - | |||
| < | < | ||
| + | |||
| clients.domain.tld | clients.domain.tld | ||
| Zeile 567: | Zeile 573: | ||
| - Install a working Kerberos-Client and enroll your PC to the Domain | - Install a working Kerberos-Client and enroll your PC to the Domain | ||
| - Logon to your Linux- PC using SSSD/ | - Logon to your Linux- PC using SSSD/ | ||
| + | |||
| + | ==== 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:// | ||
| + | < | ||
| + | |||
| + | #:> sudo yum install ipa-client | ||
| + | |||
| + | </ | ||
| + | |||
| + | After that, go on with the next chapter [[https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | After those settings, exit from Yast. Do not care about Errors, that SSSD is not working: Your Client is missing important Domain Integration, | ||
| + | |||
| + | As the time beeing, there is no official Package for Leap 15.6. So you may use mine: | ||
| + | < | ||
| + | |||
| + | zypper addrepo https:// | ||
| + | zypper refresh | ||
| + | zypper install freeipa-client | ||
| + | |||
| + | #Add Additional Packages / setup some needed files | ||
| + | pip3 install ifaddr | ||
| + | ln / | ||
| + | |||
| + | </ | ||
| + | |||
| + | === 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: | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| + | TLDOMAIN=domain.tld | ||
| + | DOMAIN=clients.${TLDOMAIN} | ||
| + | SERVERFQDN=ipa.${TLDOMAIN} | ||
| + | #Serialnr of this device | ||
| + | HOSTNM=pc$(dmidecode -t system|grep -i " | ||
| + | FQDN=${HOSTNM}.${DOMAIN} | ||
| + | echo " | ||
| + | hostnamectl set-hostname ${HOSTNM} | ||
| + | #Check, if hostname is resolvable to this host - if not, add entry to /etc/hosts | ||
| + | if ! grep -q ${FQDN} "/ | ||
| + | echo " | ||
| + | echo "">>"/ | ||
| + | echo " | ||
| + | fi | ||
| + | INSTCMD=" | ||
| + | echo ${INSTCMD} | ||
| + | ${INSTCMD} | ||
| + | echo "Ende Installation, | ||
| + | |||
| + | </ | ||
| + | |||
| + | 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. | ||
| + | < | ||
| + | |||
| + | 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/ | ||
| + | |||
| + | For me, the Button '' | ||
| + | |||
| + | 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, | ||
| + | |||
| + | If not, check if your klist shows some vaild Tickets. Otherwise inspect if this works: | ||
| + | < | ||
| + | |||
| + | HOSTNAME:~ # kinit admin | ||
| + | Password for admin@DOMAIN.TLD: | ||
| + | HOSTNAME:~ # klist | ||
| + | Ticket cache: KEYRING: | ||
| + | Default principal: admin@DOMAIN.TLD | ||
| + | |||
| + | Valid starting | ||
| + | 04/07/25 12: | ||
| + | |||
| + | </ | ||
| + | |||
| + | This should be all needed to work for Firefox. | ||
| + | |||
| + | ==== Setup Sudoers with FreeIPA/ | ||
| + | |||
| + | 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:// | ||
| + | |||
| + | ==== Additional Groups ==== | ||
| + | |||
| + | You can also add System- Groups in IPA, that the client may have. E.g. a very nice group to have, would be a group named " | ||
| + | |||
| + | You can add the clientadmins- group to the wheel- group so all users of the clientadmins group will be in wheel to (check in IPA with the " | ||
| + | |||
| ===== Next Steps ===== | ===== 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 [[.: | + | 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 [[: |
| + | |||
| + | ===== Special Annotations ===== | ||
| + | |||
| + | Here are some Points, tha may be relevant in special Cases. | ||
| + | |||
| + | ==== Backup and Restore ==== | ||
| + | |||
| + | If you ever need to restore your IPA- Volumes (wihcih may be for e.g. after broken Updates), be very careful about ownership of the files. IPA contains many Services, that are critical about which user owns the configurationfiles. When you are Backing up with Nextclouds-Borg, | ||
| + | |||
| + | Here are a few special files and users to pay attention to: | ||
| + | |||
| + | User Dirsrv | ||
| + | |||
| + | < | ||
| + | # chgrp named / | ||
| + | # chown named:named / | ||
| + | # chown root:named -R -h -L / | ||
| + | # chown named:named -R -h -L / | ||
| + | |||
| + | # chown dirsrv: | ||
| + | # chown dirsrv: | ||
| + | # chown dirsrv: | ||
| + | |||
| + | # chown root: | ||
| + | # chown pkiuser: | ||
| + | # chown pkiuser: | ||
| + | # chown pkiuser: | ||
| + | # chown pkiuser: | ||
| + | # chown pkiuser: | ||
| + | # chown pkiuser: | ||
| + | # chown pkiuser: | ||
| + | |||
| + | # chown root:named -h -L / | ||
| + | |||
| + | # chown root:ipaapi / | ||
| + | |||
| + | </ | ||
| + | |||
| + | so e.g.: | ||
| + | |||
| + | < | ||
| + | # ls -lZ / | ||
| + | -rw——-. dirsrv dirsrv system_u: | ||
| + | |||
| + | </ | ||
content/serverbasics/docker-freeipa.1743780213.txt.gz · Zuletzt geändert: von obel1x
