Troubleshooting
Troubleshooting
Section titled “Troubleshooting”This page covers the most common FreeIPA deployment issues, backup and recovery, and production hardening advice.
Common Deployment Errors
Section titled “Common Deployment Errors”Error: DNS Resolution Failed
Section titled “Error: DNS Resolution Failed”Symptom:
ipa-server-install: ERROR: DNS resolution of ipa-server.example.internal failedDiagnosis:
cat /etc/hosts | grep ipa-servergetent hosts ipa-server.example.internalcat /etc/resolv.confFix: Ensure /etc/hosts has the correct entry with FQDN first:
echo "192.168.100.128 ipa-server.example.internal ipa-server" >> /etc/hostsError: NTP Synchronization Failed
Section titled “Error: NTP Synchronization Failed”Symptom:
ipa-server-install: ERROR: NTP synchronization failedDiagnosis:
systemctl status chronydchronyc sourceschronyc makesteptimedatectl statusFix: If the NTP source is unreachable or blocked by firewall:
systemctl stop chronydntpdate pool.ntp.orgsystemctl start chronydRoot cause: NTP source unreachable or UDP port 123 blocked.
Error: Kerberos Key Table Already Exists
Section titled “Error: Kerberos Key Table Already Exists”Symptom:
ipa-server-install: ERROR: The Kerberos key table already existsFix:
ipa-server-install --uninstallrm -f /etc/krb5.keytab# Then re-run ipa-server-installError: Directory Server Failed to Start
Section titled “Error: Directory Server Failed to Start”Symptom:
ipa-server-install: ERROR: Directory Server failed to startDiagnosis:
journalctl -u dirsrv -n 50df -h /varss -tlnp | grep 389getenforceCommon causes: Disk full, port 389 already in use, or overly restrictive SELinux policies.
Client-Side Issues
Section titled “Client-Side Issues”SSH Login Timeout
Section titled “SSH Login Timeout”Symptom: ssh testuser@client-1 hangs and eventually times out.
Diagnosis:
systemctl status sssdjournalctl -u sssd -n 100ping ipa-server.example.internaldig +short ipa-server.example.internalcat /etc/krb5.confkinit -V testuserCommon fixes:
| Cause | Solution |
|---|---|
| Network/DNS unreachable | Check firewall, DNS config |
| SSSD not running | systemctl start sssd |
| SELinux blocking | getenforce, then setenforce 0 to test |
| Misconfigured Kerberos | Verify [realm] and [domain_realm] in /etc/krb5.conf |
User Not Found on Client
Section titled “User Not Found on Client”Symptom:
id testuser# id: 'testuser': no such userDiagnosis:
# Does the user exist on the server?ipa user-find testuser
# Clear the SSSD cachesss_cache -u testuser
# Check NSS configurationgrep sss /etc/nsswitch.conf
# Manual LDAP lookupldapsearch -x -h ipa-server.example.internal -b "cn=users,cn=accounts,dc=example,dc=internal" uid=testuserCommon causes: User not created, SSSD not synced, sss missing from /etc/nsswitch.conf, or LDAP connection blocked.
Password Change Not Recognized
Section titled “Password Change Not Recognized”Symptom: After ipa passwd testuser, the new password fails.
Fix:
kdestroy -A # Clear Kerberos ticketssss_cache -u testuser # Clear SSSD cachesleep 30 # Wait for SSSD syncssh testuser@client-1 # RetryRoot cause: SSSD caches credentials. Changes need cache flush or sync delay to propagate.
Kerberos Clock Skew
Section titled “Kerberos Clock Skew”Symptom:
kinit testuser# KDC returned error string: SKEW(Clock skew too great)Diagnosis:
timedatectl statusdatechronyc sourcesFix:
chronyc makestep # Force NTP syncntpdate -s pool.ntp.org # Fallback manual sync
# If the server and client times differ:ssh ipa-server 'date'date --set="$(ssh ipa-server date)" # Match server time manuallyRoot cause: NTP misconfigured or not running. Kerberos requires time difference under 5 minutes.
Backup and Recovery
Section titled “Backup and Recovery”Create a Backup
Section titled “Create a Backup”ipa-backupWhat gets backed up: LDAP database, Kerberos keys, PKI certificates, DNS zone data, and configuration files.
Schedule regular backups:
0 2 * * 0 /usr/sbin/ipa-backupRestore from Backup
Section titled “Restore from Backup”ls -la /var/lib/ipa/backup/ipa-restore /var/lib/ipa/backup/ipa-full-YYYY-MM-DD-HH-MM-SS.tar.gzipactl statusUninstalling FreeIPA
Section titled “Uninstalling FreeIPA”Uninstall a Client
Section titled “Uninstall a Client”ipa-client-install --uninstallUninstall the Server
Section titled “Uninstall the Server”# WARNING: This destroys all FreeIPA dataipa-server-install --uninstall
# Remove residual files (only if you are sure)rm -rf /etc/ipa /var/lib/ipaProduction Hardening
Section titled “Production Hardening”High Availability
Section titled “High Availability”FreeIPA supports master-replica architecture for LDAP data replication. Set up a second server as a replica:
- DNS should resolve to a load-balanced address (e.g.,
ipa.example.internalpointing to both IPs) - Each replica independently runs DNS, Kerberos, and CA services
- Reference: FreeIPA Replica Setup
Security Hardening
Section titled “Security Hardening”- Use SSH key authentication instead of passwords
- Store admin and DS passwords in a secure vault
- Enable DNSSEC validation (remove
--no-dnssec-validation) - Keep SELinux enabled, adjust policies instead of disabling
Performance Tuning
Section titled “Performance Tuning”- LDAP cache: SSSD caches by default for 1–2 hours; adjust based on user change frequency
- DNS cache: Increase TTL (e.g., 3600 seconds) for stable environments
- Connection pooling: FreeIPA manages this automatically
Systematic Debugging
Section titled “Systematic Debugging”When troubleshooting, follow this order:
DNS → Network → SSSD → LDAP → Kerberos
Most FreeIPA failures trace back to a broken link somewhere in this chain. Start at the top and work down.
Next Step
Section titled “Next Step”- Command reference for everyday FreeIPA operations
Adapted from Dawn’s Blog : FreeIPA Complete Deployment Guide.