시스템(Linux)

SSSD (System Security Services Daemon) 에 대해 알아보겠습니다.

forward error correction Circle 2025. 2. 3. 08:58
반응형

Ⅰ. 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 연동 지원 별도 설정 필요

 

반응형