
📌 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와 Windows Active Directory(AD) 간의 Cross-Forest Trust(상호 숲 신뢰 관계) 설정은 기업 환경에서 "Windows AD 계정을 그대로 이용해 Linux 서버에 SSH 로그인하고 관리 권한을 행사"할 수 있도록 만드는 강력한 연동 기능입니다.
FreeIPA는 Samba의 Winbind/LSA 기술을 내부적으로 사용하여 Windows AD입장에서 FreeIPA를 마치 "또 다른 Windows AD Forest"처럼 인식하게 만듭니다.
🏗️ 가상 시나리오 및 전제 조건
| 구분 | Active Directory (AD) | FreeIPA (IdM) |
|---|---|---|
| Domain (Forest) | ad.example.com |
ipa.example.com |
| IP 주소 | 192.168.1.100 |
192.168.1.10 |
| NetBIOS 이름 | AD |
IPA |
⚠️ 핵심 전제 조건
- 서로 다른 도메인명: 두 시스템의 도메인 이름이 완전히 분리되어야 합니다.
- 시간 동기화: AD DC와 FreeIPA 서버 간 시계 오차가 5분 이내여야 합니다 (NTP/Chronyd 설정 필수).
- ID Range 중복 금지: AD의 SID 기반 Linux UID/GID 맵핑 범위가 FreeIPA 사용자 UID 범위와 겹치지 않아야 합니다.
🛠️ 설정 프로세스 (5단계)
1단계: 양방향 DNS 조건부 전달자(Conditional Forwarder) 설정
1단계: 양방향 DNS 조건부 전달자(Conditional Forwarder) 설정: 서로의 FQDN 해석 가능 상태 확보.
AD와 FreeIPA는 상대방의 Kerberos KDC 및 LDAP SRV 레코드를 찾기 위해 DNS 질의가 양방향으로 서로 가능해야 합니다.
① FreeIPA DNS에 AD 조건부 전달자 추가
# FreeIPA CLI에서 AD 도메인(ad.example.com)을 AD DNS IP로 전달하도록 설정
ipa dnsforwardzone-add ad.example.com --forwarder=192.168.1.100 --forward-policy=only
② Windows AD DNS에 FreeIPA 조건부 전달자 추가
- AD 서버에서
DNS 관리자 (dnsmgmt.msc)실행 - [조건부 전달자 (Conditional Forwarders)] 우클릭 ➡️ [새 조건부 전달자]
- DNS 도메인:
ipa.example.com/ IP 주소:192.168.1.10추가
③ DNS 상호 질의 검증
# FreeIPA 서버에서 실행
ping ad.example.com
nslookup -type=SRV _kerberos._tcp.ad.example.com
# AD PowerShell에서 실행
Resolve-DnsName -Name ipa.example.com
2단계: FreeIPA AD Trust 패키지 설치 및 환경 구성
2단계: FreeIPA AD Trust 패키지 설치 및 환경 구성: Samba Winbind 기반 Trust 모듈 활성화.
FreeIPA 서버에 AD 트러스트 관련 패키지를 설치하고 필요한 방화벽 포트를 개방합니다.
# 1. AD Trust 패키지 설치 (RHEL / Rocky Linux기준)
sudo dnf install -y ipa-server-trust-ad freeipa-type-definitions
# 2. AD Trust 구성 프로그램 실행
sudo ipa-adtrust-install
NetBIOS domain name: 기본값(IPA) 확인 후 엔터Do you want to enable support for trusted domains?:yes
# 3. 추가 방화벽 포트 개방 (SMB/RPC 통신용)
sudo firewall-cmd --add-service=freeipa-trust --permanent
sudo firewall-cmd --reload
3단계: Cross-Forest Trust 관계 생성:
3단계: Cross-Forest Trust 관계 생성: One-way 또는 Two-way 신뢰 관계 설정.
일반적으로 AD 사용자가 FreeIPA 리눅스 자원에 접근하는 단방향 신뢰(One-way Trust)를 주로 구축합니다.
# FreeIPA에서 Kerberos 관리자 티켓 획득
kinit admin
# AD 트러스트 추가 명령 실행
ipa trust-add --type=ad ad.example.com --admin Administrator --password
- AD의
Administrator비밀번호를 입력하면, FreeIPA가 Samba LSA RPC를 통해 AD DC에 자동으로 접속하여 신뢰 개체(TDO)를 생성합니다.
4단계: AD 사용자/그룹을 위한 FreeIPA 외부 그룹 매핑
4단계: AD 사용자/그룹을 위한 FreeIPA 외부 그룹 매핑: ID Views & External Group 설정.
AD 사용자에게 FreeIPA 내의 권한(HBAC, Sudo 등)을 부여하기 위해 AD 보안 그룹을 FreeIPA의 외부 그룹(External Group)에 매핑합니다.
# 1. FreeIPA에 '외부(External)' 타입의 그룹 생성
ipa group-add ad_domain_admins_external --external
# 2. AD의 보안 그룹(SID 또는 '도메인\그룹명')을 외부 그룹에 추가
ipa group-add-member ad_domain_admins_external --external "AD\Domain Admins"
# 3. FreeIPA 일반 POSIX 그룹 생성 후 외부 그룹을 멤버로 매핑
ipa group-add ad_domain_admins
ipa group-add-member ad_domain_admins --groups=ad_domain_admins_external
이제 FreeIPA의 POSIX 그룹인 ad_domain_admins에 HBAC 접근 권한이나 Sudo 규칙을 부여하면, AD의 Domain Admins 그룹 사용자들에게 자동 적용됩니다.
5단계: AD 계정 로그인 및 검증:
5단계: AD 계정 로그인 및 검증: Linux Client 노드에서 연동 확인.
FreeIPA 클라이언트 서버에서 AD 계정이 정상적으로 인식되는지 확인합니다.
# 1. FreeIPA 클라이언트 서버에서 AD 계정 조회 (도메인 형식 포함)
id user@ad.example.com
# 또는
id AD\\user
# 2. AD 계정으로 SSH 접속 테스트
ssh user@ad.example.com@client.example.com
# 3. SSH 접속 후 Kerberos 티켓 확인
klist
🔍 자주 발생하는 문제 및 트러블슈팅
KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN에러 발생 시- DNS 조건부 전달자 설정이 정상 작동하는지, 상대방의
_kerberos._tcpSRV 레코드가 응답하는지 확인하세요.
- AD 사용자의 ID/GID가 조회되지 않을 때 (
id: no such user) - SSSD 캐시 문제가 대부분입니다. 클라이언트 서버에서 아래 명령어로 캐시를 초기화하세요:
sudo sssdctl cache-expire -E sudo systemctl restart sssd
'InfraPlatform' 카테고리의 다른 글
| FreeIPA -정책관리 - 사용자 등록과 권한 정책 등록 - sudo command (0) | 2026.07.29 |
|---|---|
| FreeIPA- 정책 관리 - user_add - 숫자로된 계정 생성 방법 (0) | 2026.07.28 |
| FreeIPA 설치 - 자체 DNS 통합 없이 구성하고 운영하는 방법 (0) | 2026.07.28 |
| 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 |
| 윈도우에서 Podman 설치 및 활용하기 (0) | 2026.04.21 |