본문으로 바로가기

FreeIPA

category MLOps/Linux 2022. 1. 31. 15:10

1. FreeIPA

- 통합 인증을 위해 LDAP (사용자 계정 관리)와 Kerberos (인증 서비스)가 결합된 통합 솔루션

- 개별 시스템에 각각 로그인을 해야하는 번거로움이 없는 SSO (Single Sign On)이라고 부름

사용 예시
1) www.google.co.kr에서 메일 (mail.google.co.kr), 클라우드 (drive.google.co.kr) 서비스를 제공하는데 각각 별개의 서버에서 제공 중
2) www.google.co.kr에 가입하면 모든 서비스를 사용할 수 있어야함
- 하지만 IPA를 구축하지 않으면 각각의 서버에 사용자 및 인증정보를 동기화해야 하는데 이는 매우 비효율
4) 디렉토리 서비스와 커버로스를 사용하여 사용자와 인증 정보를 중앙에서 관리
5) 각 서버에서 인증이 필요할 때마다 중앙의 서버에서 받아오는 방식 수행

 

1) LDAP (Lightweight Directory Acces Protocol)

- 클라이언트가 네트워크를 통해 디렉토리 서비스를 제공하는 디렉토리 서버에 저장된 정보에 접근할 때 사용하는 프로토콜

- 계층적인 구조를 구성해서 각종 정보를 공유해주는 서비스를 통칭

- DAP와 다르게 TCP/IP를 기반으로 개발

 

2) Kerberos

- 네트워크에 존재하는 시스템 간의 사용자 인증에 사용

- 사용자를 인증할 때 대칭키를 사용 -> 직접적인 패스워드 교환이 없어 보안이 우수함

 

2. FreeIPA 서버 구성

1) 패키지 설치

yum -y install ipa-server ipa-server-dns bind bind-dyndb-ldap

 

2) 요구 사항

- 정적 호스트 이름, 정적 IP, /etc/hosts 수정

# 정적 호스트 이름 설정
hostnamectl set-hostname ips.kkk.co.kr

# 정적 IP 설정
nmcli connection show

nmcli connection modify ens33 ipv4.addresses 162.168.100.100/24
nmcli connection modify ens33 ipv4.gateway 162.168.16.10
nmcli connection modify ens33 ipv4.method manual
nmcli connection up ens33

# /etc/hosts 파일 수정
vi /etc/hosts
162.168.100.100 ipa.kkk.co.kr

 

3) FreeIPA 서버 설치

# FreeIPA 서버 설치
ipa-server-install --setup-dns # dns서버가 구성되어 있지 않으면 --setup-dns 추가

# FreeIPA 이름 지정
Server host name [ipa.kkk.co.kr]:

# Domain Name 지정
Please confirm the domain name [kkk.co.kr]:

# Kerberos 영역 이름 지정
Please provide a realm name [KKK.CO.KR]:

# 디렉토리 관리자 패스워드 지정
Directory Manager password:
Password (confirm):

# IPA 서버 관리자 계정 패스워드 지정
IPA admin password:
password (confirm):

# DNS 전달자 구성
Do you want to configure DNS forwarders? [yes]: no

# 역방향 영역에 대한 검색 설정
Do you want to search for missing reverse zones? [yes]: no

# 방화벽 설정
firewall-cmd --permanent --add-service=freeipa-ldap
firewall-cmd --permanent --add-service=freeipa-ldaps
firewall-cmd --permanent --add-service=dns
firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload

# CA 인증서 파일 백엄
cp /root/cacert.p12 /root/cacert.p12.bak

 

3. FreeIPA 서버 관리

- 사용자 생성

1) 커버로스 티켓 획득

kinit [user-name]

# klist
획득한 티켓 확인

 

2) 사용자 기본 쉘 변경 및 추가

- ipa 사용자 생성 시, 기본 쉘은 bourn shell인데 이를 bash shell로 변경

# 기본설정 확인
ipa config-show

# 변경
ipa config-mod <option>=<value>

ipa config-mod --defaultshell=/bin/bash

# 사용자 추가
ipa user-add <user-name> [option]

ipa user-add ipauser01 --password # password 지정가능

 

4. FreeIPA 클라이언트 연결

- 서버에 연결한 모든 시스템들이 동일한 사용자(ipa)로 접속 가능

- 클라이언트 설치 시 홈디렉토리 생성 옵션을 지정해야 정상적인 접속 가능

# ipa-client-install 명령
# 클라이언트가 FreeIPA 서버에 연결할 때 사용하는 명령
ips-client-install [option] # 대화형으로 진행

# FreeIPA 서버 연결
# 클라이언트 시스템의 DNS 주소가 FreeIPA 서버에 지정되어 있어야 함

# 서버 연결
ipa-client-install --mkhomedir # 사용자 로그인 시 사용자의 홈 디렉토리 생성

 

1) 사용자 확인

# 사용자 정보 받아오기
getent passwd <ipa-user-name>

# ssh 명령으로 로그인
# 서버 주소는 localhost로 지정
ssh ipauser01@localhost

# 완료하면 현재 ipauser01 사용자는 /etc/passwd 파일에 없지만 클라이언트 시스템에 로그인 가능

 

5. 커버로스 키탭 (keytab) 파일 생성

- 키탭 파일: FreeIPA 서버에 연결된 시스템 간 인증할 때, 인증해야 할 서비스 목록과 암호화 방법을 담고 있는 파일

- 서버에서 어플리케이션 서버 (NFS)에 대한 인증 수행

- 시스템 이름과 사용한 서비스 이름을 이용해서 키탭파일 생성

- 해당 파일을 그 시스템 (어플리케이션서버 + 클라이언트)으로 전송

 

1) 생성

# 사전 설정
# 키탭 파일에는 Principal을 지정해야 해야함
# 주체: 서비스 이름과 각 클라이언트의 FQDN 등이 사용
# 클라이언트에서 FreeIPA 서버로 연결하면 자동으로 추가
# --> 클라이언트로 FreeIPA 서버 연결 진행
ipa-client-install --mkhomedir

# 서비스 등록
ipa service-<subcommand-name> <service-name>/<client-FQDN@realm>

ipa service-add nfs/client.kkk.co.kr@KKK.CO.KR

# 확인
ipa service-show nfs/client.kkk.co.kr

# 키탭 파일 생성
mkdir -p /root/keytabs
ipa-getkeytab [option] [option-argument]

ipa-getkeytab -p nfs/client.kkk.co.kr@KKK.CO.KR -k /root/keytabs/client.keytab
ipa-getkeytab -p host/client.kkk.co.kr@KKK.CO.KR -k /root/keytabs/client.keytab

 

2) 확인

# 키탭 파일 내용 확인
klist -k /root/keytabs/client.keytab # 저장된 위치

klist -e /root/keytabs/client.keytab # 암호화 형식

'MLOps > Linux' 카테고리의 다른 글

Apache 웹 서버  (0) 2022.02.03
Storage (NFS, iSCSI)  (0) 2022.02.03
DHCP 서버  (0) 2022.01.30
DNS 서버 및 구축방법  (0) 2022.01.30
SELinux (리눅스 보안)  (0) 2022.01.29