Installing FreeIPA Server
Step-by-step guide to installing and configuring your first FreeIPA server on RHEL/CentOS/Fedora.
Prerequisites
- • RHEL 8+, CentOS Stream 8+, or Fedora 35+ server
- • At least 2GB RAM and 10GB disk space
- • Fully qualified domain name (FQDN) configured
- • Root or sudo access
Overview
This tutorial will guide you through the installation and initial configuration of a FreeIPA server. By the end of this tutorial, you’ll have a fully functional identity management system ready for use.
Prerequisites Check
Before starting, ensure your system meets these requirements:
- Operating System: RHEL 8+, CentOS Stream 8+, or Fedora 35+
- Hostname: Properly configured FQDN (e.g.,
ipa.example.com) - Network: Static IP address with DNS resolution
- Resources: Minimum 2GB RAM, 10GB disk space
Verify your hostname:
hostname -f
Step 1: Prepare the System
Update your system packages:
sudo dnf update -y
Set the correct hostname if needed:
sudo hostnamectl set-hostname ipa.example.com
Step 2: Install FreeIPA Packages
Install the FreeIPA server packages:
sudo dnf install -y freeipa-server freeipa-server-dns
This will install:
- FreeIPA server core components
- Integrated DNS server (optional but recommended)
- Required dependencies (389 Directory Server, MIT Kerberos, etc.)
Step 3: Run the Installation
Run the FreeIPA installation wizard:
sudo ipa-server-install
You’ll be prompted for several configuration options:
- Configure integrated DNS: Yes (recommended)
- Server hostname: (should auto-detect your FQDN)
- Domain name: example.com
- Kerberos realm: EXAMPLE.COM (uppercase by convention)
- Directory Manager password: Choose a strong password
- IPA admin password: Choose a strong password
- DNS forwarders: Add your network’s DNS servers
Example non-interactive installation:
sudo ipa-server-install \
--realm EXAMPLE.COM \
--domain example.com \
--ds-password StrongDMPassword123 \
--admin-password StrongAdminPassword123 \
--hostname ipa.example.com \
--setup-dns \
--forwarder 8.8.8.8 \
--forwarder 8.8.4.4 \
--unattended
Step 4: Configure Firewall
Open the required ports:
sudo firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps,dns} --permanent
sudo firewall-cmd --reload
Step 5: Verify Installation
Check that all services are running:
sudo ipactl status
You should see services like:
- Directory Server
- Certificate Authority
- DNS Server
- HTTP Server
- Kerberos KDC
Test the admin authentication:
kinit admin
klist
Step 6: Access the Web UI
Open your browser and navigate to:
https://ipa.example.com
Log in with:
- Username: admin
- Password: (the admin password you set during installation)
Next Steps
Now that you have FreeIPA installed, you can:
- Add users and groups: Start managing identities
- Enroll client systems: Join Linux/Unix systems to the domain
- Configure DNS: Add DNS records and zones
- Set up certificates: Issue and manage SSL/TLS certificates
- Create policies: Define access control and authentication policies
Troubleshooting
DNS Resolution Issues
If you encounter DNS problems, verify:
dig ipa.example.com
dig -t SRV _kerberos._tcp.example.com
Service Startup Failures
Check service logs:
sudo journalctl -u ipa
sudo tail -f /var/log/ipaserver-install.log
Port Conflicts
Ensure required ports are not in use:
sudo ss -tulpn | grep -E ':(80|443|389|636|88|464)'
Conclusion
Congratulations! You’ve successfully installed FreeIPA. Your identity management infrastructure is now ready to centralize authentication and authorization across your environment.