Linux 시스템사용자관리1 서비스설정(SSSD 방식)
요약
특정디렉토리에 걸린 소유자가 etc 디렉토리 내부의 passwd, group 안에 없는 경우 SSSD 라는 개념이 있다는것을 알게되었다.
❗원격 서비스(NSS, SSSD) 중에서 하나의 방법이다.
💡 참고)
https://access.redhat.com/documentation/ko-kr/red_hat_enterprise_linux/7/html/system-level_authentication_guide/index
SSSD(시스템 보안 서비스 데몬)
- SSD(시스템 보안 서비스 데몬)는 원격 디렉터리 및 인증 메커니즘에 액세스하기 위한 시스템 서비스.
- 로컬 시스템(SSSD 클라이언트)을 외부 백엔드 시스템(프로바이더)에 연결한다.
- 이렇게 하면 SSSD 클라이언트가 SSSD 공급자를 사용하여 ID 및 인증 원격 서비스에 액세스할 수 있다. (원격 서비스 예시 아래참고.)
- LDAP 디렉터리
- IdM(Identity Management)
- AD(Active Directory) 도메인
- Kerberos 영역
SSSD 동작
- 클라이언트를 ID 저장소에 연결하여 인증 정보를 검색한다.
- 가져온 인증 정보를 사용하여 클라이언트에서 사용자 및 자격 증명의 로컬 캐시를 생성한다.
- 그런 다음 로컬 시스템의 사용자는 외부 백엔드 시스템에 저장된 사용자 계정을 사용하여 인증할 수 있다.
❗특징
💡 SSSD는 로컬 시스템에서 사용자 계정을 생성하지 않는다.
💡 대신 외부 데이터 저장소의 ID를 사용하고 사용자가 로컬 시스템에 액세스할 수 있도록 한다.
💡 SSSD는 NSS(Name Service Switch) 또는 PAM(Pluggable Authentication Modules)과 같은 여러 시스템 서비스에 대한 캐시를 제공할 수도 있다.
SSSD 장점
- ID 및 인증 서버에 대한 로드 감소
- 정보를 요청할 때 SSSD 클라이언트는 캐시를 확인하는 SSSD에 문의한다. SSSD는 캐시에서 정보를 사용할 수 없는 경우에만 서버에 연결한다.
- 오프라인 인증
- SSSD는 선택적으로 원격 서비스에서 검색된 사용자 ID 및 자격 증명의 캐시를 유지한다.
- 이 설정에서는 원격 서버 또는 SSSD 클라이언트가 오프라인 상태인 경우에도 사용자가 리소스에 성공적으로 인증할 수 있다.
- 단일 사용자 계정(인증 프로세스의 일관성 향상)
- SSSD에서는 오프라인 인증을 위해 중앙 계정과 로컬 사용자 계정을 모두 유지 관리할 필요가 없다.
- 원격 사용자에게는 종종 여러 사용자 계정이 있다. 예를 들어 VPN(가상 사설 네트워크)에 연결하려면 원격 사용자는 로컬 시스템을 위한 하나의 계정과 VPN 시스템의 다른 계정을 보유한다.
- 원격 사용자는 캐싱 및 오프라인 인증으로 간단하게 로컬 시스템에 인증하여 네트워크 리소스에 연결할 수 있다. 그런 다음 SSSD에서 네트워크 자격 증명을 유지한다.
서비스 구성: NSS
❗SSSD가 NSS로 작동하는 방법
💡 NSS(Name Service Switch) 서비스는 구성 소스와 함께 시스템 ID 및 서비스를 매핑한다.
💡 여기에서는 서비스가 다양한 구성 및 이름 확인 메커니즘의 소스를 검색할 수 있는 중앙 구성 저장소를 제공한다.
💡 SSSD는 NSS 맵의 공급자로 NSS를 사용할 수 있다.❗가장 중요한 내용
💡 사용자 정보( passwd 맵)
💡 그룹( 그룹 맵)
💡 netgroups( netgroups 맵)
💡 서비스( 서비스 맵)
SSSD 설치
yum install sssd
SSSD를 사용하도록 NSS 서비스 구성
1. authconfig 유틸리티를 사용하여 SSSD를 활성화 한다.
authconfig --enablesssd --update
위처럼 하면 /etc/nsswitch.conf 파일이 업데이트되어 아래 NSS 맵에서 SSSD를 사용할 수 있다.
vi /etc/nsswitch.conf
passwd: files sss
shadow: files sss
group: files sss
netgroup: files sss
2. sss 를 서비스 맵 줄에 추가
services: files sss
NSS로 작동하도록 SSSD 구성
❗나의 경우
💡 나의 투입환경에는 sssd 가 설치되어 있는데도 /etc/sssd 디렉토리가 보이지 않았다.# 설치확인 sudo yum list installed | grep sssd #(CentOS, RHEL) 환경 # 설치위치 확인 which sssd #결과는 no sssd in...
일단.. 나의 환경문제는 제외하고 기본적으로 사용 가이드를 작성하겠다.
1. [sssd] 섹션에서 NSS가 SSSD와 함께 작동하는 서비스 중 하나로 나열되어 있는지 확인
vi /etc/sssd/sssd.conf
[sssd]
[... file truncated ...]
services = nss, pam # 이 줄의 내용처럼 'nss' 부분이 나열되어 있어야 한다.
2. [nss] 섹션에서 SSSD가 NSS와 상호 작용하는 방법을 구성
vi /etc/sssd/sssd.conf
# 이 사용가능한 옵션 설정가이드는 별도 리서치 필요.
[nss]
filter_groups = root
filter_users = root
entry_cache_timeout = 300
entry_cache_nowait_percentage = 75
3. SSSD 재기동
systemctl restart sssd.service
[최종] 통합 작동 테스트
# 1. 사용자로 로그인.
# 2. sssctl user-checks user_name auth 명령을 사용하여 SSSD 구성을 확인
sssctl user-checks user_name auth
Leave a comment