
📌 FreeIPA 구축 가이드
- 1. FreeIPA로 리눅스 중앙 계정 관리(IdM) 시스템 구축 - (통합DNS 포함)
- 2. FreeIPA로 리눅스 중앙 계정 관리(IdM) 시스템 구축 - (DNS없이 설치)
- 3. 서버 접근 HBAC (Host-Based Access Control) 정책 구성
- 4. FreeIPA와 Windows Active Directory(AD) 간의 Cross-Forest Trust 설정
- 5. FreeIPA- 정책 관리 - user_add - 숫자로된 계정 생성 방법
- 6. FreeIPA 정책 관리- 사용자 등록과 권한 정책 등록 - sudo command
FreeIPA 설치 - 자체 DNS 통합 없이 구성하고 운영하는 방법
ㅁ sudo ipa-server-install --setup-dns 와 sudo ipa-server-install
두 명령어의 핵심 차이는 FreeIPA 서버가 자체적으로 DNS 서버(BIND)를 직접 구축하고 관리하느냐, 아니면 이미 작동 중인 외부 DNS 서버를 이용하느냐입니다.
두 방식 차이점 비교
| 구분 | sudo ipa-server-install --setup-dns |
sudo ipa-server-install |
|---|---|---|
| DNS 서버 설치 여부 | 자체 DNS(BIND) 자동 설치 및 통합 관리 | DNS 서버를 설치하지 않음 |
| 레코드 관리 | IPA가 Kerberos, LDAP 관련 DNS 레코드를 자동 생성/갱신 | 기존 외부 DNS 서버에 수동으로 레코드 추가 필수 |
| 설치 시 추가 입력 | Forwarder IP, Reverse Zone 구축 여부 등 입력 필요 | DNS 관련 질문 없이 기본 설정만 진행 |
| 추천 환경 | 독립 네트워크, 클라이언트 자동 검색이 필요한 환경 | 이미 Bind, Active Directory, Infoblox 등 전용 DNS가 있는 환경 |
1. --setup-dns 옵션을 사용할 때 (--setup-dns)
FreeIPA 서버에 BIND(named-pkcs11) 패키지를 함께 구성하여 FreeIPA 디렉토리와 완벽히 연동시킵니다.
- 동작 방식:
- FreeIPA 데이터베이스 내부에 DNS 레코드가 저장됩니다.
- FreeIPA Web UI 또는 CLI(
ipa dnsrecord-add등)를 통해 DNS 레코드를 직접 수정할 수 있습니다.
- 장점:
- FreeIPA에 새로운 클라이언트나 레플리카(Replica) 서버를 추가할 때 필수 SRV/TXT 레코드(Kerberos, LDAP 위치 정보 등)가 자동으로 등록됩니다.
- 관리 요소가 줄어들고 오류 가능성이 가장 낮습니다.
FreeIPA - 자체 DNS 통합 없이 구성
2. 통합 DNS 설치 옵션 없이 설치할 때 (sudo ipa-server-install)
FreeIPA는 Kerberos 인증과 LDAP 검색을 위해 DNS 레코드에 완전히 의존하는 구조입니다. 이 옵션으로 설치하면 FreeIPA 내부에는 DNS 서버가 들어가지 않습니다.
- 동작 방식:
- 기존 환경에 이미 가동 중인 DNS 서버(예: 기업 통합 DNS, AD DNS 등)가 있을 때 사용합니다.
- 필수 작업 (수동 작업 필요):
- 설치가 끝난 후 화면에 출력되는 Kerberos 및 LDAP용 SRV/TXT 레코드 목록을 복사해서, 기존 외부 DNS 서버에 사람이 직접 등록해 주어야 클라이언트들이 FreeIPA 서버를 찾을 수 있습니다.
외부 DNS 서버를 활용하거나 로컬 hosts 파일 기반으로 DNS 없이(IPA 자체 DNS 통합 없이) FreeIPA를 구성하고 운영하는 방법을 정리해 드립니다.
FreeIPA는 인증 과정에서 Kerberos SRV 레코드와 FQDN 기반 통신에 극도로 의존하므로, IPA 자체 DNS(--setup-dns)를 안 쓸 때는 사외/사내 외부 DNS에 필수 SRV 레코드를 직접 수동 등록하거나 모든 클라이언트의 /etc/hosts 및 Kerberos 설정을 수동으로 정밀하게 맞추는 가이드라인이 필요합니다.
FreeIPA - 운영 관리
1. 설치 사전 준비 및 필수 아키텍처 이해
자체 DNS 없이 구성하는 방식은 크게 두 가지로 나뉩니다.
- 방식 A (추천): 사내 기존 외부 DNS 서버(BIND, Windows AD DNS 등)에 FreeIPA용 SRV/TXT 레코드를 직접 수동 등록하는 방식
- 방식 B (소규모/테스트): DNS 서버 없이 모든 IPA 서버 및 클라이언트의
/etc/hosts와/etc/krb5.conf를 수동 관리하는 방식
2. 외부 DNS 환경 설치 및 구성 순서 (Step-by-Step)
Step 1: 호스트명 및 네트워크 설정
FreeIPA 서버와 클라이언트 모두 IP로 접속하더라도 FQDN(Fully Qualified Domain Name)이 명확히 지정되어 있어야 합니다.
# 1. 서버 호스트명 설정
sudo hostnamectl set-hostname ipa.example.com
# 2. /etc/hosts 설정 (Loopback 127.0.0.1에 FQDN 매핑 금지)
sudo vi /etc/hosts
# /etc/hosts 내용 예시
192.168.1.10 ipa.example.com ipa
Step 2: 외부 DNS 서버에 필수 SRV / TXT 레코드 수동 등록 (방식 A 적용 시)
기존 사내 DNS 서버 관리자에게 아래 레코드 수동 추가를 요청해야 합니다. (example.com 도메인 기준)
| <필수 DNS 레코드 등록> | |||
|---|---|---|---|
| 레코드 유형 | 레코드 이름 | 값 (Value / Target) | 역할 |
| A 레코드 | ipa.example.com. |
192.168.1.10 |
FreeIPA 서버 IP 매핑 |
| PTR 레코드 | 10.1.168.192.in-addr.arpa. |
ipa.example.com. |
역방향 조회 레코드 |
| SRV | _kerberos._tcp.example.com. |
0 100 88 ipa.example.com. |
Kerberos TCP 포트 안내 |
| SRV | _kerberos._udp.example.com. |
0 100 88 ipa.example.com. |
Kerberos UDP 포트 안내 |
| SRV | _ldap._tcp.example.com. |
0 100 389 ipa.example.com. |
LDAP 조회 포트 안내 |
| TXT | _kerberos.example.com. |
EXAMPLE.COM |
Kerberos Realm 명시 |
Step 3: 포트 개방 및 이전 잔재 완전 청소
설치 전 이전 실패 프로세스(Tomcat PID, 8080/8443 포트) 및 IPA 잔재를 완벽히 제거합니다.
# 1. 포트 점유 프로세스 확인 및 종료
sudo ss -tulpn | grep -E '8080|8443'
# (출력되는 PID가 있다면 sudo kill -9 <PID> 실행)
# 2. 방화벽 포트 개방
sudo firewall-cmd --add-service={freeipa-4,ntp} --permanent
sudo firewall-cmd --reload
# 3. 이전 설치 잔재 초기화
sudo ipa-server-install --uninstall -U
Step 4: DNS 없이 FreeIPA 서버 설치 실행
--setup-dns 옵션을 완전히 제외하고 일반 설치 명령을 실행합니다.
sudo ipa-server-install
- 설치 시 주요 입력 매개변수:
- Server hostname:
ipa.example.com - Domain name:
example.com - Realm name:
EXAMPLE.COM - Directory Manager / IPA admin 비밀번호: 지정
- 설치 완료 메시지 확인:
설치 마지막에 화면상에 "Please add the following SRV and TXT records to your DNS server..."라는 문구와 함께 등록해야 할 DNS 레코드 목록이 출력됩니다.
Step 5: 서버 검증 및 Kerberos 티켓 발급
# 전체 서비스 작동 상태 검증
ipactl status
# admin 계정 인증 테스트
kinit admin
klist
3. DNS 없는 환경에서의 클라이언트 연동 및 운영 방법
자체 DNS가 없으므로 클라이언트가 FreeIPA 서버를 자동으로 찾아내지 못합니다. 따라서 아래 세 가지 방법 중 하나로 연동을 관리해야 합니다.
방법 1. 외부 DNS 이용 시 클라이언트 자동 조인 (가장 권장)
Step 2에서 외부 DNS에 SRV 레코드를 정상 등록했다면 클라이언트는 자동 감지로 조인이 가능합니다.
sudo dnf install -y ipa-client
sudo ipa-client-install --mkhomedir
방법 2. DNS 레코드도 없는 환경 시 클라이언트 수동 명시 조인 (방식 B)
외부 DNS 조차 수정할 수 없다면, 클라이언트 설치 시 서버의 IP, FQDN, Realm을 직접 매개변수로 주입합니다.
/etc/hosts 파일 수정
/etc/hosts 파일을 열어 자가 IP와 FreeIPA 서버 IP를 등록합니다.
ㅁ 클라이언트의 /etc/hosts에 IPA 서버 명시
168.1.10 ipa.example.com ipa
[root@vbox0 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
##########################################
# hostnamectl set-hostname most.iparkm.io
##########################################
192.168.56.10 most.iparkm.io
192.168.56.120 ipa.iparkm.io
ㅁ 호스트명(Hostname) 설정
sudo hostnamectl set-hostname most.iparkm.io
2. **명시적 지정을 통한 ipa-client 설치**
```bash
sudo ipa-client-install \
--server=ipa.example.com \
--domain=example.com \
--realm=EXAMPLE.COM \
--no-dns-lookup \
--mkhomedir
[설치예시]
User authorized to enroll computers: admin <- ipa 관리자
Password for admin@IPARKM.IO: <- ipa 관리자 패스워드 입력
[root@vbox0 ~]# sudo ipa-client-install \
--server=ipa.iparkm.io \
--domain=iparkm.io \
--realm=IPARKM.IO \
--mkhomedir
This program will set up IPA client.
Version 4.12.2
Autodiscovery of servers for failover cannot work with this configuration.
If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure.
Proceed with fixed values and no DNS discovery? [no]: yes
Do you want to configure chrony with NTP server or pool address? [no]:
Client hostname: most.iparkm.io
Realm: IPARKM.IO
DNS Domain: iparkm.io
IPA Server: ipa.iparkm.io
BaseDN: dc=iparkm,dc=io
Continue to configure the system with these values? [no]: yes
Synchronizing time
No SRV records of NTP servers found and no NTP server or pool address was provided.
Using default chrony configuration.
Attempting to sync time with chronyc.
Time synchronization was successful.
User authorized to enroll computers: admin
Password for admin@IPARKM.IO:
Successfully retrieved CA cert
Subject: CN=Certificate Authority,O=IPARKM.IO
Issuer: CN=Certificate Authority,O=IPARKM.IO
Valid From: 2026-07-28 02:58:10+00:00
Valid Until: 2046-07-28 02:58:10+00:00
Enrolled in IPA realm IPARKM.IO
Created /etc/ipa/default.conf
Configured /etc/sssd/sssd.conf
Systemwide CA database updated.
Hostname (most.iparkm.io) does not have A/AAAA record.
Failed to update DNS records.
Missing A/AAAA record(s) for host most.iparkm.io: 192.168.56.10.
Missing reverse record(s) for address(es): 192.168.56.10.
Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub
Could not update DNS SSHFP records.
SSSD enabled
Configured /etc/openldap/ldap.conf
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config.d/04-ipa.conf
Configuring iparkm.io as NIS domain.
Configured /etc/krb5.conf for IPA realm IPARKM.IO
Client configuration complete.
The ipa-client-install command was successful
4. DNS 없는 환경 운영 시 주의사항 (Troubleshooting)
- 새로운 IPA Replica(보조 서버) 추가 시:
- DNS 자동 검색이 안 되므로, Replica 서버 설치 시에도 반드시
--server=ipa.example.com옵션으로 주 서버 FQDN을 수동으로 지정해야 합니다.
- 클라이언트의
/etc/krb5.conf파일 관리:
- DNS TXT/SRV 레코드가 없으면 Kerberos가 Realm의 KDC 서버 위치를 자동으로 찾지 못합니다. 클라이언트의
/etc/krb5.conf내[realms]항목에kdc = ipa.example.com명시 상태를 수시로 유지 관리해야 합니다.
- 인증서(CA) 자동 갱신 이슈:
- Certmonger가 IPA 인증서를 갱신할 때 호스트명 해소가 안 되면 실패할 수 있으므로, 서버/클라이언트 모두
/etc/hosts또는 외부 DNS의 정방향/역방향(PTR) 해소 상태를 항시 점검해야 합니다.
DNS 없이 구축한 FreeIPA 환경에서 서비스 전체를 안전하게 기동/정지하는 방법과, 운영 중 문제가 생겼을 때 반드시 점검해야 할 핵심 체크리스트를 정리해 드립니다.
1. FreeIPA 서비스 기동 및 관리 방법
FreeIPA는 LDAP, Kerberos, Apache, PKI Tomcat, Certmonger 등 많은 서비스가 얽혀 있기 때문에 systemctl로 개별 제어하기보다 FreeIPA 전용 통합 관리 도구인 ipactl을 사용하는 것이 가장 안전합니다.
① 전체 서비스 기동
sudo ipactl start
- 특징: 서비스 간 의존성 순서(Directory Server ➔ PKI Tomcat ➔ Kerberos ➔ Apache 등)를 자동으로 계산하여 순차적으로 기동합니다.
② 전체 서비스 정지
sudo ipactl stop
③ 전체 서비스 재시작
sudo ipactl restart
④ 서비스 상태 조회
sudo ipactl status
- 정상 출력 예시:
Directory Service: RUNNING Krb5kdc Service: RUNNING Kpaserver Service: RUNNING HTTPd Service: RUNNING pki-tomcatd Service: RUNNING ipa-otpd Service: RUNNING ipa-custodia Service: RUNNING ntpd Service: RUNNING (또는 chronyd)
---
## 2. 기동 전/후 필수 체크 사항 (Checklist)
DNS 서버 없이 운영할 때는 네트워크 해소나 Kerberos 바인딩 오류가 자주 발생하므로, 아래 5가지 포인트를 정기적으로 확인해야 합니다.
### ① `/etc/hosts` 및 호스트명(FQDN) 해소 검증
DNS가 없으므로 서버 및 클라이언트의 `/etc/hosts`가 정확해야 모든 서비스가 정상 바인딩됩니다.
```bash
# 1. 호스트명이 FQDN으로 출력되는지 확인
hostname -f
# 출력 예시: ipa.example.com
# 2. ping 또는 getent로 자가 IP 해소 확인
getent hosts ipa.example.com
# 출력 결과에 루프백(127.0.0.1)이 아닌 실제 고정 IP(예: 192.168.1.10)가 나와야 함
② NTP 시간 동기화 상태 점검
Kerberos 인증 특성상 서버와 클라이언트 간의 시간이 5분 이상 차이 나면 모든 인증이 실패합니다.
# chrony 동기화 상태 확인
chronyc tracking
System time이 표준시와 올바르게 동기화되어 있는지,Chrony서비스가 작동 중인지 확인합니다.
③ Kerberos 인증 티켓 발급 테스트
IPA 중앙 통신의 핵심인 Kerberos 기능이 작동하는지 직접 티켓을 발급받아 봅니다.
# 1. 기존 티켓 파기
kdestroy
# 2. admin 계정 티켓 발급
kinit admin
# 3. 발급된 티켓 조회
klist
④ PKI Tomcat 및 Certmonger 인증서 상태 점검
Tomcat 관련 타임아웃이나 인증서 만료 문제를 예방하기 위해 인증서 상태를 확인합니다.
# Certmonger가 관리하는 인증서 목록 및 상태 확인
sudo getcert list
- 모든 인증서 항목의
status:가MONITORING상태인지 확인합니다. (CA_UNREACHABLE이나EXPIRED가 뜨면ipa-cert-fix실행 필요)
⑤ 네트워크 포트 및 라이브 로그 점검
서비스가 제대로 동작하지 않거나 웹 UI 접속이 안 될 때 포트 오픈 상태 및 로그를 확인합니다.
- 필수 포트 수신 확인:
sudo ss -tulpn | grep -E '80|443|389|636|88|464|8080|8443'
* **실시간 핵심 로그 추적**:
```bash
# Directory Server (LDAP) 로그
tail -f /var/log/dirsrv/slapd-EXAMPLE-COM/errors
# PKI Tomcat (CA) 로그
journalctl -u pki-tomcatd@pki-tomcat -n 50 --no-pager
# Web UI (Apache) 로그
tail -f /var/log/httpd/error_log
3. 요약: 서버 부팅 시 자동 기동 및 트러블슈팅 팁
- 부팅 시 자동 기동:
ipa-server-install이 성공적으로 마치면ipactl관련 서비스가 Systemd에 자동으로 등록되어 서버 재부팅 시 모든 IPA 서비스가 자동으로 기동됩니다. - 부팅 후 서비스 일부가 시작 안 될 때:
/etc/hosts해소 문제이거나chronyd(시간 동기화)가 늦게 실행된 경우가 많습니다. 이때는 수동으로sudo ipactl restart를 실행하여 서비스 전체를 다시 올려주면 대부분 해결됩니다.
📌 FreeIPA 구축 가이드
- 1. FreeIPA로 리눅스 중앙 계정 관리(IdM) 시스템 구축 - (통합DNS 포함)
- 2. FreeIPA로 리눅스 중앙 계정 관리(IdM) 시스템 구축 - (DNS없이 설치)
- 3. 서버 접근 HBAC (Host-Based Access Control) 정책 구성
- 4. FreeIPA와 Windows Active Directory(AD) 간의 Cross-Forest Trust 설정
- 5. FreeIPA- 정책 관리 - user_add - 숫자로된 계정 생성 방법
- 6. FreeIPA 정책 관리- 사용자 등록과 권한 정책 등록 - sudo command
'InfraPlatform' 카테고리의 다른 글
| [RHEL/Rocky] 안전한 로컬 Yum Repo 구축 방법 (0) | 2026.07.30 |
|---|---|
| FreeIPA -정책관리 - 사용자 등록과 권한 정책 등록 - sudo command (0) | 2026.07.29 |
| FreeIPA- 정책 관리 - user_add - 숫자로된 계정 생성 방법 (0) | 2026.07.28 |
| FreeIPA와 Windows Active Directory(AD) 간의 Cross-Forest Trust 설정 (3) (1) | 2026.07.24 |
| FreeiPA 서버 접근 HBAC (Host-Based Access Control) 정책 구성 (2) (0) | 2026.07.24 |
| [RHEL/Rocky Linux] FreeIPA로 리눅스 중앙 계정 관리(IdM) 시스템 구축하기 (1) (0) | 2026.07.24 |
| 🚀 Windows WSL + Podman Desktop 로 Ollama + Open WebUI GPU 챗봇 구축하기 (RTX 4070 노트북 (0) | 2026.04.24 |