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 |