1. Red Hat Enterprise Linux 기반 IDM(Identity Management, FreeIPA)
IdM(Identity Management) : 시스템 내 사용자(또는 개체)의 신원을 생성·관리·인증·권한 부여하는 체계 전반. Windows 환경에서는 Active Directory(AD)가 대표적인 IdM 구현체고, Linux 환경(주로 RHEL 계열)에서는 FreeIPA가 같은 역할을 한다. 둘은 연동도 가능하다.
|
IdM 핵심 구성요소
|
설명
|
|
인증 (Authentication)
|
사용자가 누구인지 확인 (비밀번호, MFA 등)
|
|
인가 (Authorization)
|
인증된 사용자에게 어떤 권한을 줄지 결정
|
|
계정 관리
|
사용자 계정의 생성·수정·삭제·비활성화
|
|
역할 기반 접근 제어 (RBAC)
|
역할(Role)에 따라 권한을 묶어서 부여
|
|
감사 및 로깅
|
누가 언제 무엇에 접근했는지 기록
|
|
SSO (Single Sign-On)
|
한 번 로그인으로 여러 시스템에 접근
|
|
디렉터리 서비스
|
사용자 정보를 중앙에서 저장·조회 (예: AD, LDAP)
|
MFA(Multi-Factor Authentication) : 인증 시 두 가지 이상의 인증 요소를 조합해 신원을 확인하는 방식. (ex: 비밀번호 + 얼굴 인식)
RBAC(Role-Based Access Control, 역할 기반 접근 제어) : 사용자에게 권한을 직접 부여하는 대신, 역할(Role)에 권한을 묶고 사용자에게 역할을 할당하는 접근 제어 방식
- FreeIPA 설치 과정 (IDM Server/Client)
FreeIPA: Linux/Unix 환경을 위한 오픈소스 통합 IdM(Identity Management) 솔루션. LDAP, Kerberos, DNS 등 여러 기술을 하나로 묶어서 중앙 통제 가능하게 만든 것이다.
설치 과정
1. 사전 조건
|
항목
|
요구사항
|
|
OS
|
RHEL 8/9, Rocky Linux, AlmaLinux, Fedora
|
|
hostname
|
FQDN 형식 필수 (ex : ipa.example.com)
|
|
DNS
|
서버 자신의 A/PTR 레코드 등록 필요
|
|
방화벽 포트
|
80, 443, 88, 389, 636, 464, 53
|
|
NTP
|
서버와 클라이언트 시간 동기화 필수 (Kerberos 조건)
|
A/PTR 레코드
A : ipa.example.com → 192.168.1.10
PTR : 192.168.1.10 → ipa.example.com
NTP(Network Time Protocol) : 인터넷상의 라우터 및 기타 하드웨어 장치의 시계를 동기화하는 데 널리 사용되는 프로토콜
2. IdM Server 설치
- 사용자/그룹 생성
- Kerberos 인증
Kerberos : 신뢰할 수 있는 제3의 기관(KDC)을 통해 클라이언트와 서버 간의 상호 인증을 제공하는 티켓 기반의 네트워크 인증 프로토콜. 대칭 키 암호 기법을 바탕으로 하며, 암호가 네트워크를 통해 직접 전송되지 않아 보안성이 높다.
대칭 키 암호 기법(Symmetric Key Cryptography) : 암호화 키와 복호화 키가 동일한 방식
Kerberos 아키텍처 구성 요소
Client (사용자/서비스) : 서비스를 이용하려는 주체
Server (애플리케이션 ): 사용자가 접근하려는 자원(공유 폴더, 웹 서버 등)
KDC (Key Distribution Center, 키 배포 센터) : 인증을 주관하는 핵심 서버 (AS + TGS를 포함)
AS (Authentication Service): 사용자의 첫 로그인을 인증하고 TGT를 발급
TGS (Ticket Granting Service) : TGT를 확인하고 특정 서버에 접근할 수 있는 ST를 발급
TGT(Ticket Granting Ticket) : KDC에서 발급한 마스터 티켓
ST(Service Ticket) : 개별 서비스 접근용 티켓
Kerberos 인증 흐름
1단계 — AS_REQ (인증 요청)
클라이언트가 AS에 인증 요청을 보낸다. 이때 비밀번호 자체는 전송하지 않고, 비밀번호로 암호화한 타임스탬프를 보낸다.
2단계 — AS_REP (TGT 발급)
AS가 Principal DB에서 사용자 키를 꺼내 타임스탬프를 검증하고, TGT를 발급한다. TGT는 클라이언트 로컬의 ccache에 저장된다.
3단계 — TGS_REQ (서비스 티켓 요청)
특정 서비스(SSH 등)에 접근할 때 TGT를 TGS에 제시하며 ST를 요청한다.
4단계 — TGS_REP (ST 발급)
TGS가 TGT를 검증하고 해당 서비스용 ST를 발급한다. ST도 ccache에 저장된다.
5단계 — AP_REQ (서비스 접근)
클라이언트가 ST를 서비스에 직접 제시한다. 이 단계에서 KDC를 거치지 않는다. 서비스는 자신의 키로 ST를 복호화해서 검증한다
6단계 — AP_REP (접근 허가)
ST 검증 성공 시 서비스가 접근을 허가한다. 이후 동일 서비스 접근은 캐시된 ST를 재사용해서 비밀번호 재입력 없이 접근 가능하다(SSO).
2. Windows 2022 서버 기반 Active Directory
- Windows Server 2022 (DC), Windows Client (Win 11)
AD(Active Directory) : Microsoft의 디렉터리 서비스로, Windows 환경에서 사용자·컴퓨터·정책을 중앙에서 관리하는 IdM 솔루션
DC(Domain Controller) : AD 서비스가 실행되는 서버. 모든 로그인 요청을 검증하고, 누가 어떤 권한을 가졌는지 확인하는 두뇌 역할
AD DS(Active Directory Domain Services) : Windows Server의 역할(Role) 중 하나로, 네트워크 상의 사용자·컴퓨터·리소스 정보를 중앙 데이터베이스에 저장하고 관리하는 디렉터리 서비스
* AD(Active Directory) 는 Microsoft의 디렉터리 서비스 전체 브랜드이고, AD DS는 그 안에 포함된 핵심 역할 하나
1. AD DS 설치
+ DC 승격 (Deployment Configuration)
실제로 도메인을 생성하고 그 도메인을 관리하는 서버로 활성화
|
단계
|
설정
|
|
Deployment Operation
|
Add a new forest 선택
|
|
Root domain name
|
example.com 입력
|
|
Forest/Domain functional level
|
Windows Server 2016 이상 권장
|
|
DNS server
|
체크 유지
|
|
DSRM Password
|
복구용 비밀번호 설정
|
|
NetBIOS name
|
자동 입력 (EXAMPLE) 확인
|
|
Paths
|
NTDS.dit, SYSVOL 경로 기본값 유지
|
설정 완료 후 Install → 자동 재부팅 → DC로 승격 완료. 재부팅 후 로그인 화면에서 EXAMPLE\Administrator로 로그인
2. 사용자/그룹 생성
- ADUC 실행
ADUC(Active Directory Users and Computers) : AD DS에서 사용자·그룹·컴퓨터·OU를 관리하는 GUI 도구
OU : 사용자·컴퓨터를 논리적으로 묶는 폴더
- OU 생성
- Users 추가
1. 사용자 생성
2. 그룹 생성 및 멤버 추가
3. 클라이언트 도메인 가입
사전 조건
-> DNS 서버를 DC의 IP로 설정
-> DC와 네트워크 통신 가능 확인
도메인 가입 (GUI)
PowerShell로 확인
3. FreeIPA ↔ AD Trust Join 구성 방법


FreeIPA ↔ AD Trust : FreeIPA(Linux IdM)와 Windows AD 도메인 사이에 신뢰 관계(Trust) 를 맺어서, AD 사용자가 별도 계정 없이 Linux 시스템에 접근할 수 있게 하는 구성
사전 조건
|
항목
|
요구사항
|
|
FreeIPA 서버
|
ipa-server-trust-ad 패키지 필요
|
|
AD DC
|
Windows Server 2008 R2 이상
|
|
DNS
|
양방향 DNS 해석 가능해야 함
|
|
포트
|
TCP/UDP 135, 138, 139, 445 (Samba)
|
|
시간 동기화
|
양쪽 NTP 동기화 필수
|
FreeIPA 서버에서 Trust 설정
AD 사용자 접근 확인
'[Microsoft] Cyber Security School 7기' 카테고리의 다른 글
| 클라우드기반 데이터베이스보안 과제-1 도커(Docker) (0) | 2026.05.19 |
|---|---|
| Azure 클라우드 + cloud-init 과제 (0) | 2026.05.17 |
| 클라우드 기반 윈도우/리눅스 서버 과제-1...DNS 설정, 방화벽(firewall-cmd) 설정, SELinux 개념 및 명령어 모음 (0) | 2026.04.14 |
| 클라우드 기초 - 계정 생성 및 그룹 추가 실습 (0) | 2026.04.14 |
| 클라우드 기초 과제-1 (윈도우즈 네트워크, 방화벽 및 사용자/그룹 계정) (0) | 2026.04.14 |
