Ⅰ. SSSD (System Security Services Daemon) 이란?
리눅스 시스템에서 사용자 인증 및 계정 정보를 중앙에서 관리하는 서비스입니다. LDAP, AD, Kerberos 등과 연동하여 중앙 인증 및 사용자 관리를 효율적으로 수행할 수 있게 합니다.캐싱 기능 덕분에 네트워크 장애 시에도 인증이 가능하여 안정성이 높음.sudo, SSH, PAM과의 연동을 지원하여 보안 관리가 편리함.기존 LDAP 직접 사용 방식보다 성능과 보안이 뛰어나 기업 환경에서 널리 사용되고 있습니다.
Ⅱ. SSSD (System Security Services Daemon) 주요 기능
ⅰ. 중앙 사용자 인증 지원
□ LDAP, Active Directory(AD), FreeIPA, Kerberos 등과 연동하여 중앙에서 사용자 계정을 관리.
□ 로컬 계정이 아닌 네트워크 계정(도메인 계정)을 사용하여 로그인 가능.
□ 다양한 인증 백엔드와 호환됨.
ⅱ. 캐시 가능
□ 사용자 인증 정보를 로컬 캐시에 저장하여 네트워크 장애 시에도 로그인 가능.
□ 중앙 서버(예: LDAP, AD)가 다운되더라도 일정 시간 동안 캐시된 계정을 사용하여 로그인 허용.
ⅲ. 다중 도메인 지원
□ 여러 개의 인증 도메인(예: LDAP + AD)을 동시에 사용 가능.
□ 서로 다른 도메인의 계정을 하나의 리눅스 시스템에서 인증할 수 있음.
ⅳ. sudo, SSH, PAM과 연동
□ /etc/sudoers, PAM(Pluggable Authentication Modules)과 연동하여 sudo 권한 관리 가능.
□ SSH 로그인 시 중앙 인증 서버를 통해 사용자 인증 수행.
ⅴ. 자동 그룹 동기화
□ 중앙 인증 서버의 그룹 정보를 자동으로 동기화하여 관리가 편리.
Ⅲ. SSSD (System Security Services Daemon) 주요 구성 요소
SSSD는 여러 개의 데몬(프로세스)로 구성되어 있으며, 각각의 역할이 다릅니다.
구성 | 요소설명 |
sssd | SSSD의 메인 프로세스 |
sssd_nss | NSS(Name Service Switch) 모듈과 통신하여 사용자 정보를 제공 |
sssd_pam | PAM과 연동하여 사용자 인증 수행 |
sssd_krb5 | Kerberos 인증을 수행 |
sssd_ldap | LDAP 서버와 연결하여 사용자 정보를 가져옴 |
sssd_ad | Active Directory(AD)와 연동 |
sssd_sudo | sudo 권한을 중앙 서버에서 관리 |
Ⅳ. SSSD(System Security Services Daemon) 설정 파일 (/etc/sssd/sssd.conf)
SSSD는 /etc/sssd/sssd.conf 파일을 사용하여 설정을 관리합니다.
아래는 LDAP 인증을 사용하는 SSSD 설정 예시입니다.
[sssd] services = nss, pam config_file_version = 2 domains = example.com [domain/example.com] id_provider = ldap auth_provider = ldap ldap_uri = ldap://ldap.example.com ldap_search_base = dc=example,dc=com cache_credentials = true enumerate = false 설명 [sssd] → SSSD 서비스의 전반적인 설정 services = nss, pam → NSS(Name Service Switch)와 PAM(Pluggable Authentication Module) 사용 [domain/example.com] → example.com 도메인의 LDAP 인증 설정 ldap_uri = ldap://ldap.example.com → LDAP 서버 주소 cache_credentials = true → 네트워크 장애 시에도 캐시된 인증 정보 사용 가능 |
Ⅴ. /etc/sssd/sssd.conf 파일이 없을 경우
ⅰ. SSD 패키지가 설치되지 않았거나 제거된 경우, sssd.conf 파일이 존재하지 않습니다.
설치 확인 필요 rpm -q sssd # RHEL, CentOS dpkg -l | grep sssd # Ubuntu, Debian |
ⅱ. 초기 설정이 되어 있지 않으면 /etc/sssd/sssd.conf 파일이 존재하지 않을 수 있습니다.
1) 수동으로 설정 파일을 생성 cat <<EOF > /etc/sssd/sssd.conf [sssd] services = nss, pam config_file_version = 2 domains = example.com [domain/example.com] id_provider = ldap auth_provider = ldap ldap_uri = ldap://ldap.example.com ldap_search_base = dc=example,dc=com cache_credentials = true enumerate = false EOF 2) 권한 변경 chmod 600 /etc/sssd/sssd.conf chown root:root /etc/sssd/sssd.conf 3) sssd 서비스 재시작 systemctl restart sssd |
ⅲ. SSSD가 다른 경로에서 설정을 로드하는 경우
/etc/sssd/sssd.conf 대신 다른 경로에서 설정 파일을 로드할 수 있음.
1) journalctl 로그에서 설정 파일 경로를 확인 journalctl -xe | grep sssd |
Ⅵ. SSSD 명령어 및 관리 방법
SSSD 서비스는 systemctl을 사용하여 제어할 수 있습니다.
ⅰ. SSSD 서비스 시작, 정지, 재시작
명령어 | 설명 |
systemctl start sssd | SSSD 시작 |
systemctl stop sssd | SSSD 중지 |
systemctl restart sssd | SSSD 재시작 |
systemctl status sssd | SSSD 상태 확인 |
ⅱ. 캐시 삭제 및 초기화
SSSD의 캐시를 삭제하면 인증 문제가 해결될 수 있음.
rm -rf /var/lib/sss/db/* systemctl restart sssd 주의: 캐시 삭제 시 저장된 인증 정보도 삭제되므로, 재로그인이 필요할 수 있음. |
ⅲ. 사용자 정보 확인
명령어 | 설명 |
sss_cache -E | 모든 캐시 삭제 |
sssctl user-show username | 특정 사용자 정보 조회 |
Ⅶ. SSSD vs. 기존 인증 방식 비교
기능 | SSSD | NSS/PAM + LDAP 직접 사용 |
성능 | 캐싱 지원으로 빠름 | LDAP 요청이 많으면 느림 |
네트워크 장애 시 로그인 | 가능 (캐시 사용) | 불가능 |
다중 인증 백엔드 지원 | LDAP, AD, Kerberos 등 | LDAP만 가능 |
sudo 및 SSH 연동 | 지원 | 별도 설정 필요 |
'시스템(Linux)' 카테고리의 다른 글
/etc/passwd 파일에서 false와 nologin의 차이점에 대해 알아보겠습니다. (0) | 2025.02.02 |
---|---|
hostid 에 대해 알아보겠습니다. (0) | 2025.02.02 |
journalctl 에 대해 알아보겠습니다. (0) | 2025.02.01 |
sed(Stream Editor)에 대해 알아보겠습니다. (0) | 2025.01.31 |
Local Repository 설정 변경에 대해 알아보겠습니다. (0) | 2025.01.30 |