RHEL에서 인증 및 권한 부여 구성
SSSD, authselect 및 sssctl을 사용하여 인증 및 권한 부여 구성
초록
authselect 및 sssctl 유틸리티는 SSSD, PAM(플러그 가능 인증 모듈) 및 NSS(이름 서비스 스위치)를 구성하는 데 도움이 됩니다.
Red Hat 문서에 관한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
문서에 대한 피드백에 감사드립니다. 어떻게 개선할 수 있는지 알려주십시오.
Jira를 통해 피드백 제출 (등록 필요)
- Jira 웹 사이트에 로그인합니다.
- 상단 탐색 모음에서 생성 을 클릭합니다.
- Summary (요약) 필드에 설명 제목을 입력합니다.
- Description (설명) 필드에 개선을 위한 제안을 입력합니다. 문서의 관련 부분에 대한 링크를 포함합니다.
- 대화 상자 하단에서 생성 을 클릭합니다.
1장. 시스템 인증 소개 링크 복사링크가 클립보드에 복사되었습니다!
보안 네트워크 환경의 초석 중 하나는 권한이 있는 사용자만 시스템에 액세스할 수 있도록 하는 것입니다. 인증은 액세스 권한을 부여하기 전에 사용자 ID를 확인합니다.
모든 Red Hat Enterprise Linux 시스템에서 사용자 ID를 생성하고 관리하는 다양한 서비스를 사용할 수 있습니다. 여기에는 로컬 시스템 파일, Kerberos 또는 Samba와 같은 대규모 ID 도메인에 연결하는 서비스 또는 해당 도메인을 생성하는 도구가 포함될 수 있습니다.
1.1. RHEL의 인증 방법 링크 복사링크가 클립보드에 복사되었습니다!
인증은 ID를 확인하는 프로세스입니다. 네트워크 상호 작용에서 인증은 한 당사자가 다른 당사자의 신원을 확인할 수 있도록 하는 것을 포함합니다. 간단한 암호, 인증서, 암호 없는 방법, 일회성 암호(OTP) 토큰 또는 생체 인식 스캔과 같은 네트워크를 통한 인증을 사용하는 방법에는 여러 가지가 있습니다.
권한 부여는 인증된 당사자가 액세스하거나 수행할 수 있는 작업을 정의합니다.
인증을 사용하려면 엔티티에서 ID를 확인하기 위해 일종의 자격 증명을 제공해야 합니다. 필요한 인증 정보는 사용 중인 인증 메커니즘에 의해 정의됩니다.
시스템에서 로컬 사용자를 위한 인증 유형
- 암호 기반 인증
- 거의 모든 소프트웨어는 인식된 사용자 이름과 암호를 제공하여 사용자를 인증할 수 있습니다. 이를 간단한 인증이라고도 합니다.
- 인증서 기반 인증
- 인증서를 기반으로 하는 클라이언트 인증은 SSL(Secure Sockets Layer) 프로토콜의 일부입니다. 클라이언트는 무작위로 생성된 데이터에 디지털 서명하고 네트워크를 통해 인증서와 서명된 데이터를 모두 보냅니다. 서버는 서명을 확인하고 인증서의 유효성을 확인합니다.
- Kerberos 인증
- Kerberos는 TGT( ticket-granting ticket)라고 하는 단기 자격 증명 시스템을 설정합니다. 사용자는 사용자를 식별하고 사용자에게 티켓을 발행할 수 있는 시스템을 나타내는 자격 증명(즉, 사용자 이름 및 암호)을 제공합니다. 그런 다음 TGT를 반복적으로 사용하여 웹사이트 및 이메일과 같은 다른 서비스에 대한 액세스 티켓을 요청할 수 있습니다. Kerberos를 사용한 인증은 이러한 방식으로 단일 인증 프로세스만 수행할 수 있습니다.
- 스마트 카드 기반 인증
이는 인증서 기반 인증의 변형입니다. 스마트 카드(또는 토큰)는 사용자 인증서를 저장합니다. 사용자가 토큰을 시스템에 삽입하면 시스템에서 인증서를 읽고 액세스 권한을 부여합니다. 스마트 카드를 사용하는 싱글 사인온은 다음 세 단계를 거칩니다.
- 사용자는 카드 리더에 스마트 카드를 삽입합니다. Red Hat Enterprise Linux의 PAM(Pluggable Authentication Module)은 삽입된 스마트 카드를 감지합니다.
- 시스템은 인증서를 사용자 항목에 매핑한 다음, 인증서 기반 인증에 설명된 대로 개인 키로 암호화된 스마트 카드의 제공된 인증서를 사용자 항목에 저장된 인증서와 비교합니다.
- 키 배포 센터(KDC)에 대해 인증서가 성공적으로 검증되면 사용자가 로그인할 수 있습니다.
스마트 카드 기반 인증은 인증서를 ID 메커니즘으로 추가하고 물리적 액세스 요구 사항을 추가하여 Kerberos에서 설정한 간단한 인증 계층을 기반으로 합니다.
- 일회성 암호 인증
- 일회성 암호는 인증 보안을 위한 추가 단계를 가져옵니다. 인증에서는 자동으로 생성된 암호와 함께 암호를 사용합니다.
- Passkey 인증
- Passkey는 Yubikey 5 및 Nitrokey와 같은 libfido2 라이브러리에서 지원하는 FIDO2 인증 장치입니다. 암호 없음 및 다단계 인증을 허용합니다. 시스템이 IdM 환경에 등록되어 연결된 경우 이 인증 방법은 Kerberos 티켓을 자동으로 발행하여 IdM(Identity Management) 사용자에 대해 SSO(Single Sign-On)를 활성화합니다.
- 외부 ID 공급자
- OAuth 2 장치 권한 부여 흐름을 지원하는 외부 ID 공급자(IdP)와 사용자를 연결할 수 있습니다. 이러한 사용자가 RHEL 9.1 이상에서 사용할 수 있는 SSSD 버전으로 인증하면 외부 IdP에서 인증 및 권한 부여를 수행한 후 Kerberos 티켓을 사용하여 RHEL IdM(Identity Management) SSO 기능을 수신합니다.
1.2. RHEL의 Single Sign-On 개요 링크 복사링크가 클립보드에 복사되었습니다!
중앙 ID 저장소가 없으면 각 애플리케이션은 고유한 사용자 자격 증명을 유지합니다. 따라서 사용자는 액세스하는 모든 서비스 또는 애플리케이션에 대한 암호를 입력해야 합니다.
SSO(Single Sign-On)를 구성하면 관리자가 단일 암호 저장소를 만듭니다. 그러면 사용자는 단일 암호를 사용하여 한 번만 로그인하여 모든 네트워크 리소스에 액세스할 수 있습니다.
Red Hat Enterprise Linux는 워크스테이션에 로그인, 화면 잠금 해제, Mozilla Firefox를 사용하여 보안 웹 페이지에 액세스하는 등 다양한 리소스에 SSO를 지원합니다. PAM(Privileged Access Management), NSS(Name Service Switch) 및 Kerberos와 같은 기타 사용 가능한 시스템 서비스를 사용하여 해당 ID 소스를 사용하도록 기타 시스템 애플리케이션을 구성할 수 있습니다.
SSO는 사용자와 네트워크에 대한 편의성과 다른 보안 계층입니다. SSO는 안전하고 효과적인 인증을 사용합니다. RHEL은 SSO를 활성화하는 두 가지 인증 메커니즘을 제공합니다.
- Kerberos 영역 및 Active Directory 도메인을 통한 Kerberos 기반 인증
- 스마트 카드 기반 인증
두 방법 모두(Kerberos 영역 또는 공개 키 인프라의 인증 기관을 통해) 중앙 집중식 ID 저장소를 생성하고 로컬 시스템 서비스는 여러 로컬 저장소를 유지 관리하는 대신 해당 ID 도메인을 사용합니다.
1.3. 로컬 사용자 인증에 사용할 수 있는 서비스 링크 복사링크가 클립보드에 복사되었습니다!
모든 Red Hat Enterprise Linux 시스템에는 로컬 시스템에서 로컬 사용자의 인증을 구성하는 서비스가 포함되어 있습니다. 여기에는 다음이 포함됩니다.
- 인증 설정
-
인증 구성 툴
authselect는 시스템에 대해 다양한 ID 백엔드 및 인증 수단(예: 암호, 지문 또는 스마트 카드)을 설정합니다.
-
인증 구성 툴
- ID 백엔드 설정
- SSSD(Security System Services Daemon)는 Microsoft Active Directory 또는 IdM과 같은 LDAP 기반 디렉터리인 여러 ID 공급자를 설정합니다. 로컬 시스템 및 애플리케이션 모두 인증에 이러한 ID 공급자를 사용할 수 있습니다. SSSD는 암호와 티켓을 캐시하여 자격 증명을 재사용하여 오프라인 인증 및 SSO(Single Sign-On)를 허용합니다.
-
realmd서비스는 IdM의 SSSD인 인증 백엔드를 구성할 수 있는 명령줄 유틸리티입니다.realmd서비스는 DNS 레코드를 기반으로 사용 가능한 IdM 도메인을 감지하고 SSSD를 구성한 다음 시스템을 도메인으로 결합합니다. -
NSS(Name Service Switch)는 사용자, 그룹 또는 호스트에 대한 정보를 반환하는 하위 수준 시스템 호출을 위한 메커니즘입니다. NSS는 필요한 정보를 얻기 위해 사용해야 하는 소스(즉, 모듈)를 결정합니다. 예를 들어 사용자 정보는
/etc/passwd파일과 같은 기존 UNIX 파일 또는 LDAP 기반 디렉터리에 있을 수 있지만 호스트 주소는/etc/hosts파일 또는 DNS 레코드와 같은 파일에서 읽을 수 있습니다. NSS는 정보가 저장된 위치를 찾습니다.
- 인증 메커니즘
- PAM(Pluggable Authentication Modules)은 인증 정책을 설정하는 시스템을 제공합니다. 인증에 PAM을 사용하는 애플리케이션은 인증의 다양한 측면을 제어하는 다양한 모듈을 로드합니다. 애플리케이션에서 사용하는 PAM 모듈은 애플리케이션 구성 방식을 기반으로 합니다. 사용 가능한 PAM 모듈에는 Kerberos, Winbind, SSSD 또는 로컬 UNIX 파일 기반 인증이 포함됩니다.
기타 서비스 및 애플리케이션도 사용할 수 있지만 일반적인 서비스입니다.
2장. authselect를 사용하여 사용자 인증 구성 링크 복사링크가 클립보드에 복사되었습니다!
Authselect 는 특정 프로필을 선택하여 시스템 ID 및 인증 소스를 구성할 수 있는 유틸리티입니다. profile은 PAM(Pluggable Authentication Modules) 및 NSS(Network Security Services)의 구성을 설명하는 파일 집합입니다. 기본 프로필 세트를 사용하거나 사용자 지정 프로필을 생성할 수 있습니다.
2.1. authselect 사용 링크 복사링크가 클립보드에 복사되었습니다!
authselect 유틸리티를 사용하여 Red Hat Enterprise Linux 9 호스트에서 사용자 인증을 구성할 수 있습니다.
준비된 프로필 중 하나를 선택하여 ID 정보 및 인증 소스 및 공급자를 구성할 수 있습니다.
-
기본
sssd프로필은 LDAP 인증을 사용하는 시스템에 대해 SSSD(System Security Services Daemon)를 활성화합니다. -
winbind프로필을 사용하면 Microsoft Active Directory와 직접 통합된 시스템에 대해 Winbind 유틸리티를 사용할 수 있습니다. -
최소프로필은 시스템 파일에서 직접 로컬 사용자와 그룹만 제공하므로 관리자가 더 이상 필요하지 않은 네트워크 인증 서비스를 제거할 수 있습니다.
지정된 호스트에 대해 authselect 프로필을 선택하면 이 프로필이 호스트에 로그인하는 모든 사용자에게 적용됩니다.
예를 들어 조직에서 LDAP 또는 Winbind 데이터베이스를 사용하여 도메인에서 서비스를 사용하도록 인증하는 경우와 같이 반가분한 ID 관리 환경에서 authselect 를 사용하는 것이 좋습니다.
다음과 같은 경우 authselect 를 사용할 필요가 없습니다.
-
호스트는 Red Hat Enterprise Linux IdM(Identity Management)의 일부입니다.
ipa-client-install명령을 사용하여 호스트를 IdM 도메인에 연결하면 호스트에서 SSSD 인증을 자동으로 구성합니다. -
호스트는 SSSD를 통한 Active Directory의 일부입니다. 호스트를 Active Directory 도메인에 연결하도록
realm join명령 호출은 호스트에서 SSSD 인증을 자동으로 구성합니다.
Red Hat은 ipa-client-install 또는 realm join 에서 구성한 authselect 프로필을 변경하지 않는 것이 좋습니다. 수정이 필요한 경우 수정하기 전에 현재 설정을 표시하여 필요한 경우 되돌릴 수 있습니다.
2.1.1. authselect에 의해 수정된 파일 및 디렉터리 링크 복사링크가 클립보드에 복사되었습니다!
Authselect 는 제한된 구성 파일 세트만 수정하여 인증 설정을 보다 쉽게 관리하고 문제를 해결할 수 있습니다.
|
| GNU C 라이브러리 및 기타 애플리케이션은 이 NSS(Name Service Switch) 구성 파일을 사용하여 다양한 범주에서 이름 서비스 정보를 가져올 소스와 순서가 무엇인지 확인합니다. 정보의 각 카테고리는 데이터베이스 이름으로 식별됩니다. |
|
| Linux-PAM(Pluggable Authentication Modules)은 시스템에서 애플리케이션(서비스)의 인증 작업을 처리하는 모듈 시스템입니다. 인증의 특성은 동적으로 구성할 수 있습니다. 시스템 관리자는 개별 서비스 제공 애플리케이션이 사용자를 인증하는 방법을 선택할 수 있습니다.
특히 이 파일에는 다음에 대한 정보가 포함되어 있습니다.
|
|
|
이 디렉토리에는 |
2.1.2. /etc/nsswitch.conf의 데이터 공급자 링크 복사링크가 클립보드에 복사되었습니다!
기본 sssd 프로필은 /etc/nsswitch.conf에
sss 항목을 생성하여 SSSD를 정보 소스로 설정합니다.
즉, 시스템은 먼저 이러한 항목 중 하나에 대한 정보가 요청되는 경우 SSSD를 찾습니다.
-
사용자 정보의
passwd -
사용자
그룹정보를 위한 그룹 -
NIS
netgroup정보를 위한netgroup -
NFS
자동 마운트정보를 위한 자동 마운트 -
서비스관련 정보의 서비스
sssd 캐시에 요청한 정보를 찾을 수 없고 인증을 제공하는 서버에서 요청한 정보를 찾을 수 없거나 sssd 가 실행 중이 아닌 경우 시스템은 로컬 파일 즉 /etc/* 를 확인합니다.
예를 들어 사용자 ID에 대한 정보가 요청되면 사용자 ID가 sssd 캐시에서 먼저 검색됩니다. 여기에서 찾을 수 없는 경우 /etc/passwd 파일을 참조합니다. 논리적으로 사용자의 그룹 제휴가 요청되면 sssd 캐시에서 먼저 검색되며 찾을 수 없는 경우에만 /etc/group 파일이 참조됩니다.
실제로는 로컬 파일 데이터베이스가 일반적으로 참조되지 않습니다. 가장 중요한 예외는 sssd 에 의해 처리되지 않지만 파일에 의해 처리되지 않는 루트 사용자의 경우입니다.
2.2. authselect 프로파일 선택 링크 복사링크가 클립보드에 복사되었습니다!
시스템 관리자는 특정 호스트의 authselect 유틸리티에 대한 프로필을 선택할 수 있습니다. 프로필은 호스트에 로그인하는 모든 사용자에게 적용됩니다.
사전 요구 사항
-
authselect명령을 실행하려면root인증 정보가 필요합니다
절차
인증 공급자에 적합한
authselect프로필을 선택합니다. 예를 들어 LDAP를 사용하는 회사의 네트워크에 로그인하려면sssd를 선택합니다.authselect select sssd
# authselect select sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항:
authselect select sssd또는authselect select winbind명령에 다음 옵션을 추가하여 기본 프로필 설정을 수정할 수 있습니다. 예를 들면 다음과 같습니다.-
with-faillock -
with-smartcard -
with-fingerprint
-
사용 가능한 옵션의 전체 목록을 보려면 authconfig에서 authselect 또는
authselect-migration(7)도움말 페이지로 스크립트 변환을 참조하십시오.
authselect 선택 절차를 완료하기 전에 프로필에 해당하는 구성 파일이 올바르게 구성되었는지 확인합니다. 예를 들어 sssd 데몬이 올바르게 구성되지 않고 활성 상태가 되면 authselect select를 실행하면 로컬 사용자만 pam_unix 를 사용하여 인증할 수 있습니다.
검증
SSSD에 대한
ssss항목이/etc/nsswitch.conf에 있는지 확인하십시오 :Copy to Clipboard Copied! Toggle word wrap Toggle overflow pam_sss.so 항목의 /etc/pam.d/system-auth파일의 내용을 검토합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. 준비된 authselect 프로파일 수정 링크 복사링크가 클립보드에 복사되었습니다!
시스템 관리자는 요구 사항에 맞게 기본 프로필 중 하나를 수정할 수 있습니다.
다음을 제외하고 /etc/authselect/user-nsswitch.conf 파일의 항목을 수정할 수 있습니다.
-
passwd -
group -
netgroup -
자동 마운트 -
services
나중에 authselect select profile_name 을 실행하면 허용되는 변경 사항이 /etc/authselect/user-nsswitch.conf 에서 /etc/nsswitch.conf 파일로 전송됩니다. 허용되지 않는 변경 사항은 기본 프로필 구성에서 덮어씁니다.
/etc/nsswitch.conf 파일을 직접 수정하지 마십시오.
절차
authselect프로필을 선택합니다. 예를 들면 다음과 같습니다.authselect select sssd
# authselect select sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
원하는 변경 사항으로
/etc/authselect/user-nsswitch.conf파일을 편집합니다. /etc/authselect/user-nsswitch.conf 파일의 변경 사항을 적용합니다.authselect apply-changes
# authselect apply-changesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
/etc/nsswitch.conf파일을 검토하여/etc/authselect/user-nsswitch.conf의 변경 사항이 여기에 전파되었는지 확인합니다.
2.4. 고유한 authselect 프로필 생성 및 배포 링크 복사링크가 클립보드에 복사되었습니다!
시스템 관리자는 기본 프로필 중 하나의 사용자 지정 복사본을 만들어 사용자 지정 프로필을 생성하고 배포할 수 있습니다.
이는 준비가 된 authselect 프로파일을 수정하는 것이 사용자의 요구에 충분하지 않은 경우 특히 유용합니다. 사용자 지정 프로필을 배포할 때 지정된 호스트에 로그인하는 모든 사용자에게 프로필이 적용됩니다.
절차
사용자 정의 프로필을 생성하려면
authselect create-profile명령을 실행합니다. <custom_profile>을 원하는 프로필 이름으로 바꿉니다. 예를 들어,/etc/nsswitch.conf파일의 항목을 직접 구성하는 옵션을 사용하여 준비된sssd프로필을 기반으로 프로필을 생성하려면 다음 명령을 사용합니다.authselect create-profile <custom_profile> -b sssd --symlink-meta --symlink-pam
# authselect create-profile <custom_profile> -b sssd --symlink-meta --symlink-pam New profile was created at /etc/authselect/custom/<custom_profile>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 주의/etc/authselect/custom/<custom_profile>/{password-auth,system-auth,fingercard-auth,smartcard-auth,postlogin}를 수정하려면--symlink-pam옵션 없이 위의 명령을 입력합니다. 이는authselect-libs를 업그레이드하는 동안 수정이 지속되도록 하기 위한 것입니다.명령에
--symlink-pam옵션을 포함하면 PAM 템플릿이 복사 대신 원본 프로필 파일에 대한 심볼릭 링크가 됩니다.--symlink-meta옵션을 사용하면 README 및 REQUIREMENTS와 같은 메타 파일이 복사 대신 원본 프로필 파일에 대한 심볼릭 링크가 됩니다. 이렇게 하면 원래 프로필의 PAM 템플릿 및 메타 파일에 대한 향후 모든 업데이트가 사용자 지정 프로필에 반영됩니다.이 명령은
/etc/nsswitch.conf파일의 사본을 /etc/authselect/custom/ <custom_profile> /디렉터리에 생성합니다.-
/etc/authselect/custom/ <custom_profile> /nsswitch.conf파일을 구성합니다. custom
/ <custom_profile>을 매개변수로 사용하여선택합니다.authselect select명령을 실행하여 사용자 정의 프로필을authselect select custom/<custom_profile>
# authselect select custom/<custom_profile>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템에 대한 <
custom_profile> 프로필을 선택하면/etc/nsswitch.conf파일을 제외한 모든 업데이트에서sssd프로파일을 나중에 업데이트할 수 있습니다.예 2.1. sssd 프로필을 기반으로 사용자 지정 프로필 생성
dns또는myhostname데이터베이스가 아닌/etc/hosts파일의 호스트 이름에 대한 로컬 정적 테이블 조회만 참조하는sssd프로필을 기반으로 프로필을 생성할 수 있습니다.다음 행을 편집하여
/etc/nsswitch.conf파일을 편집합니다.hosts: files
hosts: filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/nsswitch.conf에 대한 변경을 제외하는sssd를 기반으로 사용자 지정 프로필을 생성합니다.authselect create-profile custom-sssd-profile -b sssd --symlink-meta --symlink-pam
# authselect create-profile custom-sssd-profile -b sssd --symlink-meta --symlink-pamCopy to Clipboard Copied! Toggle word wrap Toggle overflow 프로필을 선택합니다.
authselect select custom/custom-sssd-profile
# authselect select custom/custom-sssd-profileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자 지정 프로필을 선택했는지 확인합니다.
-
선택한
sssd프로필에 따라/etc/pam.d/system-auth파일을 생성 /etc/nsswitch.conf에 구성을 그대로 둡니다.hosts: files
hosts: filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고authselect를 실행하면sssd를 선택하면호스트가 생성됩니다. 파일 dns myhostname
-
선택한
2.5. 스크립트를 authconfig 에서 authselect로 변환 링크 복사링크가 클립보드에 복사되었습니다!
ipa-client-install 또는 realm join 을 사용하여 도메인에 가입하는 경우 스크립트에서 authconfig 호출을 안전하게 제거할 수 있습니다. 이를 수행할 수 없는 경우 각 authconfig 호출을 동일한 authselect 호출로 바꿉니다. 이렇게 하면 올바른 프로필과 적절한 옵션을 선택합니다. 또한 필요한 구성 파일을 편집합니다.
-
/etc/krb5.conf -
/etc/sssd/sssd.conf(sssd프로필의 경우) 또는/etc/samba/smb.conf(winbind프로필의 경우)
authconfig 옵션과 authconfig 옵션 authselect 및 authconfig 옵션 동등한 Authselect 프로필 옵션과의 관계로 authconfig 옵션 의 authselect 동등한 기능이 표시됩니다 .
| authconfig 옵션 | Authselect 프로필 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
| authconfig 옵션 | Authselect 프로필 기능 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
authconfig 명령에 해당하는 authselect 명령의 예는 authconfig에 대한 Kickstart 호출의 예를 authselect 호출에 대한 Kickstart 호출으로의 변환 예를 보여줍니다.
| authconfig 명령 | Authselect 동급 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
2.6. 추가 리소스 링크 복사링크가 클립보드에 복사되었습니다!
- CHAP_faillock이란 무엇이며 Red Hat Enterprise Linux 8 및 9에서 사용하는 방법? (Red Hat Knowledgebase)
3장. SSSD 및 이점 이해 링크 복사링크가 클립보드에 복사되었습니다!
SSSD(System Security Services Daemon)는 원격 디렉터리 및 인증 메커니즘에 액세스하는 시스템 서비스입니다. SSSD의 작동 방식, 사용의 이점, 구성 파일 처리 방법, 구성할 수 있는 ID 및 인증 공급자를 알아봅니다.
3.1. SSSD 작동 방식 링크 복사링크가 클립보드에 복사되었습니다!
SSSD(System Security Services Daemon) 서비스를 사용하여 원격 디렉터리 및 인증 메커니즘에 액세스할 수 있습니다. 로컬 시스템인 SSSD 클라이언트를 외부 백엔드 시스템인 프로바이더에 연결할 수 있습니다.
SSSD는 다음과 같은 여러 ID 및 인증 공급자를 지원합니다.
- LDAP 디렉토리
- IdM(Identity Management) 도메인
- Active Directory (AD) 도메인
- Kerberos 영역
SSSD는 두 단계로 작동합니다.
- 클라이언트를 원격 프로바이더에 연결하여 ID 및 인증 정보를 검색합니다.
- 가져온 인증 정보를 사용하여 클라이언트에서 사용자 및 자격 증명의 로컬 캐시를 생성합니다.
그런 다음 로컬 시스템의 사용자는 원격 프로바이더에 저장된 사용자 계정을 사용하여 인증할 수 있습니다.
SSSD는 로컬 시스템에서 사용자 계정을 생성하지 않습니다. 그러나 IdM 사용자의 홈 디렉토리를 생성하도록 SSSD를 구성할 수 있습니다. 생성되면 사용자가 로그아웃하면 IdM 사용자 홈 디렉터리와 클라이언트의 내용이 삭제되지 않습니다.
그림 3.1. SSSD 작동 방식
SSSD는 NSS(Name Service Switch) 또는 PAM(Pluggable Authentication Modules)과 같은 여러 시스템 서비스에 대한 캐시를 제공할 수도 있습니다.
사용자 정보를 캐싱하려면 SSSD 서비스만 사용합니다. 동일한 시스템에서 캐싱을 위해 NSS(Name Service Caching Daemon)와 SSSD를 모두 실행하면 성능 문제와 충돌이 발생할 수 있습니다.
3.2. SSSD 사용의 이점 링크 복사링크가 클립보드에 복사되었습니다!
SSSD(System Security Services Daemon)를 사용하면 사용자 ID 검색 및 사용자 인증에 다양한 이점이 있습니다.
- 오프라인 인증
- SSSD는 선택적으로 원격 공급자로부터 검색한 사용자 ID 및 자격 증명의 캐시를 보관합니다. 이 설정에서 세션 시작 시 원격 프로바이더에 대해 한 번 이미 인증한 사용자인 경우 원격 프로바이더 또는 클라이언트가 오프라인 상태인 경우에도 리소스에 대해 성공적으로 인증할 수 있습니다.
- 단일 사용자 계정: 인증 프로세스의 일관성 향상
SSSD에서는 오프라인 인증을 위해 중앙 계정과 로컬 사용자 계정을 둘 다 유지할 필요가 없습니다. 조건은 다음과 같습니다.
- 특정 세션에서는 사용자가 한 번 이상 로그인해야 합니다. 사용자가 처음 로그인할 때 클라이언트를 원격 프로바이더에 연결해야 합니다.
SSSD에서 캐싱을 활성화해야 합니다.
SSSD를 사용하지 않으면 원격 사용자에게 종종 여러 사용자 계정이 있습니다. 예를 들어 VPN(가상 사설 네트워크)에 연결하려면 원격 사용자에게 로컬 시스템용 하나의 계정과 VPN 시스템용 계정이 있습니다. 이 시나리오에서는 사설 네트워크에서 먼저 인증하여 원격 서버에서 사용자를 가져오고 사용자 자격 증명을 로컬로 캐시해야 합니다.
캐싱 및 오프라인 인증 덕분에 원격 사용자는 로컬 시스템에 인증하기만 하면 네트워크 리소스에 연결할 수 있습니다. SSSD에서 네트워크 자격 증명을 유지 관리합니다.
- ID 및 인증 공급자의 로드 감소
- 정보를 요청할 때 클라이언트는 먼저 로컬 SSSD 캐시를 확인합니다. 캐시에서 정보를 사용할 수 없는 경우에만 SSSD에서 원격 공급자에게 연락합니다.
3.3. 클라이언트별로 여러 SSSD 구성 파일 링크 복사링크가 클립보드에 복사되었습니다!
SSSD의 기본 설정 파일은 /etc/sssd/sssd.conf 입니다. SSSD는 이 파일 이외에 /etc/sssd/ 파일에서 해당 구성을 읽을 수 있습니다.
conf.d/ 디렉토리에 있는 모든 *.conf
이 조합을 사용하면 모든 클라이언트에서 기본 /etc/sssd/sssd.conf 파일을 사용하고 추가 구성 파일에 설정을 추가하여 클라이언트별로 기능을 개별적으로 확장할 수 있습니다.
SSSD에서 구성 파일을 처리하는 방법
SSSD는 이 순서대로 구성 파일을 읽습니다.
-
기본
/etc/sssd/sssd.conf파일입니다. -
기타
*.conf파일/etc/sssd/conf.d/)는 알파벳순으로 처리됩니다.
동일한 매개 변수가 여러 구성 파일에 표시되면 SSSD는 마지막 read 매개 변수를 사용합니다.
SSSD는 conf.d 디렉토리에서 숨겨진 파일( .로 시작하는 파일)을 읽지 않습니다.
3.4. SSSD의 ID 및 인증 공급자 링크 복사링크가 클립보드에 복사되었습니다!
SSSD 클라이언트를 외부 ID 및 인증 공급자(예: LDAP 디렉터리, IdM(Identity Management), AD(Active Directory) 도메인 또는 Kerberos 영역)에 연결할 수 있습니다. 그러면 SSSD 클라이언트에서 SSSD 공급자를 사용하여 ID 및 원격 서비스에 액세스할 수 있습니다. 다른 ID 및 인증 공급자 또는 조합을 사용하도록 SSSD를 구성할 수 있습니다.
SSSD 도메인로서의 ID 및 인증 공급자
ID 및 인증 공급자는 SSSD 구성 파일 /etc/sssd/sssd.conf 에서 도메인으로 구성됩니다. 공급자는 파일의 [domain/ <domain_name> ] 또는 [domain/default] 섹션에 나열됩니다.
단일 도메인을 다음 공급자 중 하나로 구성할 수 있습니다.
UID 및 GID와 같은 사용자 정보를 제공하는 ID 프로바이더 입니다.
-
/etc/sssd/sssd.conf파일의[domain/ <domain_name> ]섹션에서id_provider옵션을 사용하여 도메인을 ID 공급자로 지정합니다.
-
인증 요청을 처리하는 인증 프로바이더 입니다.
-
/etc/sssd/sssd.conf의[domain/ <domain_name> ]섹션에서auth_provider옵션을 사용하여 도메인을 인증 공급자로 지정합니다.
-
권한 부여 요청을 처리하는 액세스 제어 프로바이더 입니다.
-
/etc/sssd/sssd.conf의[domain/ <domain_name> ] 섹션에서옵션을 사용하여 도메인을 액세스 제어 공급자로 지정합니다. 기본적으로 옵션은access_provider허용으로 설정되어 항상 모든 액세스를 허용합니다. 자세한 내용은 sssd.conf(5) 도움말 페이지를 참조하십시오.
-
이러한 공급업체의 조합입니다(예: 모든 해당 작업이 단일 서버 내에서 수행되는 경우).
-
이 경우
id_provider,auth_provider및access_provider옵션은 모두/etc/sssd/sssd.conf의 동일한[domain/ <domain_name> ]또는[domain/default]섹션에 나열됩니다.
-
이 경우
SSSD에 대해 여러 도메인을 구성할 수 있습니다. 하나 이상의 도메인을 구성해야 합니다. 그렇지 않으면 SSSD가 시작되지 않습니다.
프록시 공급자
프록시 공급자는 SSSD와 SSSD가 직접 액세스할 수 없는 리소스 간에 중간 릴레이로 작동합니다. 프록시 공급자를 사용하는 경우 SSSD는 프록시 서비스에 연결되고 프록시는 지정된 라이브러리를 로드합니다.
프록시 공급자를 사용하여 다음을 활성화하도록 SSSD를 구성할 수 있습니다.
- 지문 스캐너와 같은 대체 인증 방법
- NIS와 같은 레거시 시스템
-
/etc/passwd파일에 ID 공급자 및 원격 인증 프로바이더로 정의된 로컬 시스템 계정(예: Kerberos) - 스마트 카드를 사용하는 로컬 사용자 인증
ID 및 인증 공급자의 사용 가능한 조합
다음과 같은 ID 및 인증 공급자 조합을 사용하도록 SSSD를 구성할 수 있습니다.
| ID 공급자 | 인증 공급자 |
|---|---|
| IdM (Identity Management) [a] | IdM (Identity Management) |
| Active Directory | Active Directory |
| LDAP | LDAP |
| LDAP | Kerberos |
| proxy | proxy |
| proxy | LDAP |
| proxy | Kerberos |
[a]
LDAP 공급자 유형의 확장입니다.
| |
sssctl 유틸리티를 사용하여 도메인 상태를 나열하고 확인하려면 AD(Active Directory) 포리스트와 신뢰 계약에 있는 IdM(Identity Management)에 호스트를 등록해야 합니다.
4장. LDAP를 사용하도록 SSSD 구성 및 TLS 인증 필요 링크 복사링크가 클립보드에 복사되었습니다!
SSSD(System Security Services Daemon)는 Red Hat Enterprise Linux 호스트에서 ID 데이터 검색 및 인증을 관리하는 데몬입니다. 시스템 관리자는 독립 실행형 LDAP 서버를 사용자 계정 데이터베이스로 사용하도록 호스트를 구성할 수 있습니다. 관리자는 LDAP 서버와의 연결을 TLS 인증서로 암호화해야 한다는 요구 사항을 지정할 수도 있습니다.
TLS를 적용하기 위한 SSSD 구성 옵션인 ldap_id_use_start_tls 는 기본값은 false 입니다. TLS 없이 ldap:// 를 사용하면 공격 벡터, 즉 중간자(man-in-the-middle) 공격(예: LDAP 검색에서 반환된 오브젝트의 UID 또는 GID)을 변경하여 사용자를 가장할 수 있습니다.
설정이 신뢰할 수 있는 환경에서 작동하고 id_provider = ldap 에 대해 암호화되지 않은 통신을 안전하게 사용할 수 있는지 결정합니다. 참고 id_provider = ad 및 id_provider = ipa 는 SASL 및 GSSAPI로 보호되는 암호화된 연결을 사용하므로 영향을 받지 않습니다.
암호화되지 않은 통신을 사용하는 것이 안전하지 않은 경우 /etc/sssd/sssd.conf 파일에서 ldap_id_use_start_tls 옵션을 true 로 설정하여 TLS를 적용해야 합니다.
4.1. 암호화된 방식으로 LDAP에서 데이터를 검색하기 위해 SSSD를 사용하는 OpenLDAP 클라이언트 링크 복사링크가 클립보드에 복사되었습니다!
LDAP 개체의 인증 방법은 Kerberos 암호 또는 LDAP 암호일 수 있습니다. LDAP 오브젝트의 인증 및 권한 부여에 대한 질문은 여기에서 다루지 않습니다.
LDAP로 SSSD를 구성하는 절차는 SSSD 및 LDAP에 높은 수준의 전문 지식을 필요로 하는 복잡한 절차입니다. 대신 Active Directory 또는 Red Hat IdM(Identity Management)과 같은 통합되고 자동화된 솔루션을 사용하는 것이 좋습니다. IdM에 대한 자세한 내용은 Planning Identity Management 에서 참조하십시오.
4.2. LDAP를 사용하도록 SSSD 구성 및 TLS 인증 필요 링크 복사링크가 클립보드에 복사되었습니다!
RHEL(Red Hat Enterprise Linux) 시스템을 OpenLDAP 클라이언트로 구성하려면 다음 절차를 완료합니다.
다음 클라이언트 구성을 사용합니다.
- RHEL 시스템은 OpenLDAP 사용자 계정 데이터베이스에 저장된 사용자를 인증합니다.
- RHEL 시스템은 SSSD(System Security Services Daemon) 서비스를 사용하여 사용자 데이터를 검색합니다.
- RHEL 시스템은 TLS 암호화 연결을 통해 OpenLDAP 서버와 통신합니다.
또는 이 절차를 사용하여 RHEL 시스템을 Red Hat Directory Server의 클라이언트로 구성할 수 있습니다.
사전 요구 사항
- OpenLDAP 서버가 사용자 정보로 설치 및 구성됩니다.
- LDAP 클라이언트로 구성 중인 호스트에 대한 루트 권한이 있습니다.
-
LDAP 클라이언트로 구성하는 호스트에서
/etc/sssd/sssd.conf파일이 생성되어ldap를autofs_provider 및로 지정하도록 구성되었습니다.id_provider -
core-dirsrv.ca.pem이라는 로컬 파일에 저장된 OpenLDAP 서버 인증서를 발급한 인증 기관에서 루트 CA 서명 인증서 체인의 PEM 형식의 사본이 있습니다.
절차
필수 패키지를 설치합니다.
dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir
# dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedirCopy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 공급자를
sssd로 전환 :authselect select sssd with-mkhomedir
# authselect select sssd with-mkhomedirCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenLDAP 서버의 SSL/TLS 인증서를 발급한 인증 기관에서 루트 CA 서명 인증서 체인이 포함된
core-dirsrv.ca.pem파일을/etc/openldap/certs폴더에 복사합니다.cp core-dirsrv.ca.pem /etc/openldap/certs
# cp core-dirsrv.ca.pem /etc/openldap/certsCopy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP 서버의 URL 및 접미사를
/etc/openldap/ldap.conf파일에 추가합니다.URI ldap://ldap-server.example.com/ BASE dc=example,dc=com
URI ldap://ldap-server.example.com/ BASE dc=example,dc=comCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/openldap/ldap.conf파일에서 TLS_CACERT 매개 변수를/etc/openldap/certs/core-dirsrv.ca.pem에 가리키는 행을 추가합니다.When no CA certificates are specified the Shared System Certificates are in use. In order to have these available along with the ones specified by TLS_CACERTDIR one has to include them explicitly:
# When no CA certificates are specified the Shared System Certificates # are in use. In order to have these available along with the ones specified # by TLS_CACERTDIR one has to include them explicitly: TLS_CACERT /etc/openldap/certs/core-dirsrv.ca.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sssd/sssd.conf파일에서ldap_uri및ldap_search_base매개변수에 환경 값을 추가하고ldap_id_use_start_tls를True로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sssd/sssd.conf에서[domain]섹션의ldap_tls_cacert및ldap_tls_reqcert값을 수정하여 TLS 인증 요구 사항을 지정합니다.… cache_credentials = True ldap_tls_cacert = /etc/openldap/certs/core-dirsrv.ca.pem ldap_tls_reqcert = hard …
… cache_credentials = True ldap_tls_cacert = /etc/openldap/certs/core-dirsrv.ca.pem ldap_tls_reqcert = hard …Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sssd/sssd.conf 파일에 대한 권한을 변경합니다.chmod 600 /etc/sssd/sssd.conf
# chmod 600 /etc/sssd/sssd.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD 서비스와
oddjobd데몬을 다시 시작하고 활성화합니다.systemctl restart sssd oddjobd systemctl enable sssd oddjobd
# systemctl restart sssd oddjobd # systemctl enable sssd oddjobdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: LDAP 서버에서 더 이상 사용되지 않는 TLS 1.0 또는 TLS 1.1 프로토콜을 사용하는 경우 클라이언트 시스템의 시스템 전체 암호화 정책을 LEGACY 수준으로 전환하여 RHEL이 이러한 프로토콜을 사용하여 통신할 수 있도록 합니다.
update-crypto-policies --set LEGACY
# update-crypto-policies --set LEGACYCopy to Clipboard Copied! Toggle word wrap Toggle overflow 자세한 내용은 RHEL 8의 Strong 암호화 기본값 및 Red Hat 고객 포털의 약한 암호화 알고리즘 지식 베이스 문서 및 시스템의
update-crypto-policies(8)매뉴얼 페이지를 참조하십시오.
검증
id명령을 사용하고 LDAP 사용자를 지정하여 LDAP 서버에서 사용자 데이터를 검색할 수 있는지 확인합니다.id <ldap_user>
# id <ldap_user> uid=17388( <ldap_user>) gid=45367(sysadmins) groups=45367(sysadmins),25395(engineers),10(wheel),1202200000(admins)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
시스템 관리자는 이제 id 명령을 사용하여 LDAP의 사용자를 쿼리할 수 있습니다. 명령은 올바른 사용자 ID와 그룹 멤버십을 반환합니다.
5장. ID 및 인증 공급자를 위한 추가 구성 링크 복사링크가 클립보드에 복사되었습니다!
SSSD(System Security Services Daemon)는 원격 디렉터리 및 인증 메커니즘에 액세스하는 시스템 서비스입니다. SSSD의 기본 설정 파일은 /etc/sssd/sssd.conf 입니다. 다음 장에서는 /etc/sssd/sssd.conf 파일을 다음과 같이 수정하여 SSSD 서비스 및 도메인을 구성하는 방법을 간략하게 설명합니다.
- SSSD에서 전체 사용자 이름을 해석하고 출력하는 방법을 조정하여 오프라인 인증을 활성화합니다.
- LDAP 액세스 필터를 적용하기 위해 DNS 서비스 검색, 간단한 액세스 공급자 규칙 및 SSSD를 구성합니다.
5.1. SSSD에서 전체 사용자 이름을 해석하는 방법 조정 링크 복사링크가 클립보드에 복사되었습니다!
SSSD는 전체 사용자 이름 문자열을 사용자 이름 및 도메인 구성 요소로 구문 분석합니다. 기본적으로 SSSD는 Python 구문의 다음 정규식에 따라 < user_name> @ <domain_name > 형식으로 전체 사용자 이름을 해석합니다.
(?P_<name>_[^@]+)@?(?P_<domain>_[^@]*$)
(?P_<name>_[^@]+)@?(?P_<domain>_[^@]*$)
Identity Management 및 Active Directory 공급자의 경우 기본 사용자 이름 형식은 <user_name> @ <domain_name > 또는 < NetBIOS_name>\<user_name >입니다.
SSSD에서 re_expression 옵션을 /etc/sssd/sssd.conf 파일에 추가하고 사용자 지정 정규식을 정의하여 전체 사용자 이름을 해석하는 방법을 조정할 수 있습니다.
-
정규 표현식을 전역적으로 정의하려면 전역적으로 정규 표현식 정의와 같이
sssd.conf파일의[sssd]섹션에 정규 표현식 을 추가합니다. -
특정 도메인의 정규 표현식을 정의하려면 정규 표현식을 특정 도메인 예에 표시된 대로
sssd.conf파일의 해당 도메인 섹션(예:[domain/LDAP])에 추가합니다.
사전 요구 사항
-
루트액세스
절차
-
/etc/sssd/sssd.conf파일을 엽니다. re_expression옵션을 사용하여 사용자 지정 정규식을 정의합니다.예 5.1. 전역 정규식 정의
모든 도메인에 대해 정규 표현식을 전역적으로 정의하려면
sssd.conf파일의[sssd]섹션에re_expression을 추가합니다.다음 글로벌 표현식을 사용하여 <domain>
\_<username>_ 또는 <domain>@<> 형식으로 사용자 이름을 정의할 수 있습니다.user_name[sssd] [... file truncated ...] re_expression = (?P_<domain>_[^\\]*?)\\?(?P_<name>_[^\\]+$)
[sssd] [... file truncated ...] re_expression = (?P_<domain>_[^\\]*?)\\?(?P_<name>_[^\\]+$)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 5.2. 특정 도메인의 정규 표현식 정의
특정 도메인에 대한 정규 표현식을 개별적으로 정의하려면
sssd.conf파일의 해당 도메인 섹션에re_expression을 추가합니다.다음 글로벌 표현식을 사용하여 LDAP 도메인의 <
domain> \_<username>_또는 <domain>@<user_name> 형식으로 사용자 이름을 정의할 수 있습니다.[domain/LDAP] [... file truncated ...] re_expression = (?P_<domain>_[^\\]*?)\\?(?P_<name>_[^\\]+$)
[domain/LDAP] [... file truncated ...] re_expression = (?P_<domain>_[^\\]*?)\\?(?P_<name>_[^\\]+$)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. SSSD가 전체 사용자 이름을 인쇄하는 방법 조정 링크 복사링크가 클립보드에 복사되었습니다!
/etc/sssd/sssd.conf 파일에서 use_fully_qualified_names 옵션이 활성화된 경우 SSSD는 기본적으로 다음 확장을 기반으로 전체 사용자 이름을 < name> @ <domain > 형식으로 출력합니다.
%1$s@%2$s
%1$s@%2$s
신뢰할 수 있는 도메인에 대해 use_fully_qualified_names 를 설정하지 않거나 명시적으로 false 로 설정된 경우 도메인 구성 요소 없이 사용자 이름만 출력합니다.
/etc/sssd/sssd.conf 파일에 full_name_format 옵션을 추가하고 사용자 지정 확장을 정의하여 SSSD에서 전체 사용자 이름을 출력하는 형식을 조정할 수 있습니다.
사전 요구 사항
-
루트액세스
절차
-
루트로/etc/sssd/sssd.conf파일을 엽니다. 모든 도메인의 전역적으로 확장을 정의하려면
sssd.conf의[sssd]섹션에full_name_format을 추가합니다.[sssd] [... file truncated ...] full_name_format = %1$s@%2$s
[sssd] [... file truncated ...] full_name_format = %1$s@%2$sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 경우 사용자 이름이
user@domain.test로 표시됩니다.특정 도메인에 대한 사용자 이름 인쇄 형식을 정의하려면
sssd.conf의 해당 도메인 섹션에full_name_format을 추가합니다.%2$s\%1$s를 사용하여 AD(Active Directory) 도메인의 확장을 구성하려면 다음을 수행합니다.[domain/ad.domain] [... file truncated ...] full_name_format = %2$s\%1$s
[domain/ad.domain] [... file truncated ...] full_name_format = %2$s\%1$sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 경우 사용자 이름이
ad.domain\user로 표시됩니다.%3$s\%1$s를 사용하여 AD(Active Directory) 도메인의 확장을 구성하려면 다음을 수행합니다.[domain/ad.domain] [... file truncated ...] full_name_format = %3$s\%1$s
[domain/ad.domain] [... file truncated ...] full_name_format = %3$s\%1$sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 경우 Active Directory 도메인의 플랫 도메인 이름이
AD로 설정된 경우 사용자 이름이AD\user로 표시됩니다.
SSSD는 일부 이름 구성에서 이름의 도메인 구성 요소를 제거하여 인증 오류를 일으킬 수 있습니다. full_name_format 을 비표준 값으로 설정하면 표준 형식으로 변경하라는 경고 메시지가 표시됩니다.
5.3. 오프라인 인증 활성화 링크 복사링크가 클립보드에 복사되었습니다!
SSSD는 기본적으로 사용자 자격 증명을 캐시하지 않습니다. 인증 요청을 처리할 때 SSSD는 항상 ID 공급자에게 연락합니다. 공급자를 사용할 수 없는 경우 사용자 인증이 실패합니다.
ID 공급자를 사용할 수 없는 경우에도 사용자가 인증할 수 있도록 /etc/sssd/sssd.conf 파일에서 cache_credentials 를 true 로 설정하여 인증 정보 캐싱을 활성화할 수 있습니다. 2 단계 인증이 사용되는 경우 캐시된 인증 정보는 암호와 첫 번째 인증 요소를 나타냅니다. passkey 및 스마트 카드 인증의 경우 cache_credentials 를 true로 설정하거나 추가 구성을 설정할 필요가 없습니다. 온라인 인증이 캐시에 기록되는 한 오프라인으로 작동할 것으로 예상됩니다.
SSSD는 일반 텍스트로 암호를 캐시하지 않습니다. 암호의 해시만 저장합니다.
자격 증명이 Salted SHA-512 해시로 저장되는 반면, 이로 인해 공격자가 캐시 파일에 액세스하여 무차별 강제 공격을 사용하여 암호를 손상시키는 경우 보안 위험이 발생할 수 있습니다. 캐시 파일에 액세스하려면 RHEL에서 기본값인 권한 있는 액세스 권한이 필요합니다.
사전 요구 사항
-
루트액세스
절차
-
/etc/sssd/sssd.conf파일을 엽니다. domain 섹션에서
cache_credentials = true설정을 추가합니다.[domain/<domain_name>] cache_credentials = true
[domain/<domain_name>] cache_credentials = trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항이지만 권장됩니다. ID 공급자를 사용할 수 없는 경우 SSSD에서 오프라인 인증을 허용하는 기간에 대한 시간 제한을 구성합니다.
- SSSD에서 작동하도록 PAM 서비스를 구성합니다.
offline_credentials_expiration옵션을 사용하여 시간 제한을 지정합니다.제한은 일 단위로 설정됩니다.
예를 들어 사용자가 마지막으로 로그인한 후 3일 동안 오프라인으로 인증할 수 있도록 지정하려면 다음을 사용합니다.
[pam] offline_credentials_expiration = 3
[pam] offline_credentials_expiration = 3Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. DNS 서비스 검색 구성 링크 복사링크가 클립보드에 복사되었습니다!
DNS 서비스 검색을 사용하면 애플리케이션에서 특정 유형의 특정 서비스에 대해 지정된 도메인의 SRV 레코드를 확인한 다음 필수 유형과 일치하는 서버를 모두 반환할 수 있습니다. ID 또는 인증 서버가 /etc/sssd/sssd.conf 파일에 명시적으로 정의되어 있지 않은 경우 SSSD는 DNS 서비스 검색을 사용하여 서버를 동적으로 검색할 수 있습니다.
예를 들어 sssd.conf 에 id_provider = ldap 설정이 포함되지만 ldap_uri 옵션이 호스트 이름 또는 IP 주소를 지정하지 않는 경우 SSSD는 DNS 서비스 검색을 사용하여 서버를 동적으로 검색합니다.
SSSD는 기본 서버만 동적으로 백업 서버를 검색할 수 없습니다.
사전 요구 사항
-
루트액세스
절차
-
/etc/sssd/sssd.conf파일을 엽니다. 기본 서버 값을
_srv_로 설정합니다.LDAP 공급자의 경우 기본 서버는
ldap_uri옵션을 사용하여 설정됩니다.[domain/<ldap_domain_name>] id_provider = ldap ldap_uri = _srv_
[domain/<ldap_domain_name>] id_provider = ldap ldap_uri = _srv_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 유형을 설정하여 암호 변경 공급자의 서비스 검색을 활성화합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
선택 사항: 기본적으로 서비스 검색에서는 시스템 호스트 이름의 도메인 부분을 도메인 이름으로 사용합니다. 다른 DNS 도메인을 사용하려면
dns_discovery_domain옵션을 사용하여 도메인 이름을 지정합니다. -
선택 사항: 기본적으로 서비스 검색은 LDAP 서비스 유형을 검사합니다. 다른 서비스 유형을 사용하려면
ldap_dns_service_name옵션을 사용하여 유형을 지정합니다. -
선택 사항: 기본적으로 SSSD는 IPv4 주소를 조회합니다. 시도에 실패하면 SSSD에서 IPv6 주소를 조회하려고 시도합니다. 이 동작을 사용자 지정하려면
lookup_family_order옵션을 사용합니다. 서비스 검색을 사용할 모든 서비스에 대해 DNS 레코드를 DNS 서버에 추가합니다.
_<service_name>.<protocol>.<domain_name> <TTL> <priority> <weight> <port_number> <hostname>_
_<service_name>.<protocol>.<domain_name> <TTL> <priority> <weight> <port_number> <hostname>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. 간단한 액세스 공급자 규칙 구성 링크 복사링크가 클립보드에 복사되었습니다!
간단한 액세스 프로바이더는 사용자 이름 또는 그룹 목록에 따라 액세스를 허용하거나 거부합니다. 이를 통해 특정 시스템에 대한 액세스를 제한할 수 있습니다.
예를 들어 간단한 액세스 공급자를 사용하여 특정 사용자 또는 그룹에 대한 액세스를 제한할 수 있습니다. 다른 사용자 또는 그룹은 구성된 인증 프로바이더에 대해 성공적으로 인증하더라도 로그인할 수 없습니다.
사전 요구 사항
-
루트액세스
절차
-
/etc/sssd/sssd.conf파일을 엽니다. access_provider옵션을simple로 설정합니다.[domain/<domain_name>] access_provider = simple
[domain/<domain_name>] access_provider = simpleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자에 대한 액세스 제어 규칙을 정의합니다.
-
사용자에 대한 액세스를 허용하려면
simple_allow_users옵션을 사용합니다. 사용자에 대한 액세스를 거부하려면
simple_deny_users옵션을 사용합니다.중요특정 사용자에 대한 액세스를 거부하는 경우 다른 모든 사용자에 대한 액세스를 자동으로 허용합니다. 특정 사용자에 대한 액세스 허용은 거부하는 것보다 안전한 것으로 간주됩니다.
-
사용자에 대한 액세스를 허용하려면
그룹에 대한 액세스 제어 규칙을 정의합니다. 다음 중 하나를 선택합니다.
-
그룹에 대한 액세스를 허용하려면
simple_allow_groups옵션을 사용합니다. 그룹에 대한 액세스를 거부하려면
simple_deny_groups옵션을 사용합니다.중요특정 그룹에 대한 액세스를 거부하면 다른 모든 그룹에 대한 액세스를 자동으로 허용합니다. 특정 그룹에 대한 액세스 허용은 거부하는 것보다 안전한 것으로 간주됩니다.
예 5.3. 특정 사용자 및 그룹에 대한 액세스 허용
다음 예제에서는 다른 모든 사용자에 대한 액세스를 거부하면서
alice,bob및engineers그룹의 멤버에 액세스할 수 있습니다.[domain/<domain_name>] access_provider = simple simple_allow_users = alice, bob simple_allow_groups = engineers
[domain/<domain_name>] access_provider = simple simple_allow_users = alice, bob simple_allow_groups = engineersCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
그룹에 대한 액세스를 허용하려면
거부 목록을 비워 두면 모든 사용자에 대한 액세스를 허용할 수 있습니다.
신뢰할 수 있는 AD 사용자를 simple_allow_users 목록에 추가하는 경우 FQDN(정규화된 도메인 이름) 형식을 사용해야 합니다(예: aduser@ad.example.com). 다른 도메인의 짧은 이름은 동일할 수 있으므로 액세스 제어 구성에 문제가 발생하지 않습니다.
5.6. LDAP 액세스 필터를 적용하도록 SSSD 구성 링크 복사링크가 클립보드에 복사되었습니다!
access_provider 옵션이 /etc/sssd/sssd.conf 에 설정된 경우 SSSD는 지정된 액세스 공급자를 사용하여 시스템에 대한 액세스 권한이 부여된 사용자를 평가합니다. 사용 중인 액세스 공급자가 LDAP 공급자 유형의 확장인 경우 사용자가 시스템에 액세스할 수 있도록 허용하도록 LDAP 액세스 제어 필터를 지정할 수도 있습니다.
예를 들어 AD(Active Directory) 서버를 액세스 공급자로 사용하는 경우 지정된 AD 사용자로만 Linux 시스템에 대한 액세스를 제한할 수 있습니다. 지정된 필터와 일치하지 않는 다른 모든 사용자에게는 액세스 권한이 거부됩니다.
액세스 필터는 LDAP 사용자 항목에만 적용됩니다. 따라서 중첩된 그룹에서 이러한 유형의 액세스 제어를 사용하는 것이 작동하지 않을 수 있습니다. 중첩 그룹에 액세스 제어를 적용하려면 간단한 액세스 공급자 규칙 구성을 참조하십시오.
오프라인 캐싱을 사용할 때 SSSD는 사용자의 최신 온라인 로그인 시도가 성공했는지 확인합니다. 가장 최근의 온라인 로그인 중에 성공적으로 로그인한 사용자는 액세스 필터와 일치하지 않더라도 오프라인에 로그인할 수 있습니다.
사전 요구 사항
-
루트액세스
절차
-
/etc/sssd/sssd.conf파일을 엽니다. [domain]섹션에서 액세스 제어 필터를 지정합니다.-
LDAP의 경우
ldap_access_filter옵션을 사용합니다. AD의 경우
ad_access_filter옵션을 사용합니다. 또한ad_gpo_access_control옵션을disabled로 설정하여 GPO 기반 액세스 제어를 비활성화해야 합니다.예 5.4. 특정 AD 사용자에게 액세스 허용
예를 들어
admins사용자 그룹에 속하고unixHomeDirectory특성이 설정된 AD 사용자에게만 액세스를 허용하려면 다음을 사용합니다.[domain/<ad_domain_name>] access provider = ad [... file truncated ...] ad_access_filter = (&(memberOf=cn=admins,ou=groups,dc=example,dc=com)(unixHomeDirectory=*)) ad_gpo_access_control = disabled
[domain/<ad_domain_name>] access provider = ad [... file truncated ...] ad_access_filter = (&(memberOf=cn=admins,ou=groups,dc=example,dc=com)(unixHomeDirectory=*)) ad_gpo_access_control = disabledCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
LDAP의 경우
SSSD는 항목의 authorizedService 또는 host 속성에서 결과를 확인할 수도 있습니다. 실제로 사용자 항목 및 구성에 따라 MDASH LDAP 필터, 인증 서비스 및 호스트 MDASH 옵션을 모두 평가할 수 있습니다. ldap_access_order 매개 변수는 사용할 모든 액세스 제어 메서드를 나열합니다.
[domain/example.com] access_provider = ldap ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com ldap_access_order = filter, host, authorized_service
[domain/example.com]
access_provider = ldap
ldap_access_filter = memberOf=cn=allowedusers,ou=Groups,dc=example,dc=com
ldap_access_order = filter, host, authorized_service
6장. SSSD 클라이언트 측 보기 링크 복사링크가 클립보드에 복사되었습니다!
SSSD는 sss_override 유틸리티를 제공하여 로컬 시스템에 고유한 POSIX 사용자 또는 그룹 속성의 값을 표시하는 로컬 보기를 만들 수 있습니다. ipa 를 제외한 모든 id_provider 값에 대한 재정의를 구성할 수 있습니다.
ipa 프로바이더를 사용하는 경우 IPA에서 ID 뷰를 중앙에서 정의합니다. 자세한 내용은 ID 보기를 사용하여 IdM 클라이언트의 사용자 속성 값 재정의를 참조하십시오.
SSSD 성능에 미치는 잠재적인 부정적인 영향에 대한 자세한 내용은 SSSD 성능에 대한 ID 보기의 Potential negative impact 를 참조하십시오.
6.1. LDAP username 속성 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 LDAP의 계정을 사용하도록 기존 호스트를 구성할 수 있습니다. 그러나 LDAP의 사용자 값(이름, UID, GID, 홈 디렉터리, 쉘)은 로컬 시스템의 값과 다를 수 있습니다. 로컬 사용자 이름을 정의하여 LDAP 사용자 이름 속성을 재정의할 수 있습니다.
사전 요구 사항
-
루트액세스 -
sssd-tools패키지가 설치되어 있어야 합니다.
절차
사용자의 현재 정보를 표시합니다.
id <ldap_username>
# id <ldap_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_gt;을 사용자의 LDAP 사용자 이름으로 바꿉니다.username&로컬 사용자 이름을 추가합니다.
sss_override user-add <ldap_username> -n <local_username>
# sss_override user-add <ldap_username> -n <local_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
;ldap_>을 LDAP 사용자 이름으로 바꾸고 <usernamelocal_username>을 원하는 로컬 사용자 이름으로 바꿉니다.sss_override user-add명령을 사용하여 첫 번째 재정의를 생성한 후 SSSD를 재시작하여 변경 사항을 적용합니다.systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
로컬 사용자 이름이 추가되었는지 확인합니다.
id <local_username>
# id <local_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자의 재정의를 표시합니다.
sss_override user-show <ldap_username>
# sss_override user-show <ldap_username> user@ldap.example.com:_<local_username>_::::::Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 6.1. 로컬 사용자 이름 정의
LDAP 사용자
sjones:에로컬 사용자 이름 sarah를 추가하려면 :LDAP 사용자
sjones의 현재 정보를 표시합니다.id sjones
# id sjones uid=1001(sjones) gid=6003 groups=6003,10(wheel)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 로컬 사용자 이름
sarah추가 :sss_override user-add sjones -n sarah
# sss_override user-add sjones -n sarahCopy to Clipboard Copied! Toggle word wrap Toggle overflow 로컬 사용자 이름이 추가되었으며 사용자의 덮어쓰기가 올바르게 표시되는지 확인합니다.
id sarah sss_override user-show sjones
# id sarah uid=1001(sjones) gid=6003(sjones) groups=6003(sjones),10(wheel) # sss_override user-show sjones user@ldap.example.com:sarah::::::Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2. LDAP UID 속성 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 LDAP의 계정을 사용하도록 기존 호스트를 구성할 수 있습니다. 그러나 LDAP의 사용자 값(이름, UID, GID, 홈 디렉터리, 쉘)은 로컬 시스템의 값과 다를 수 있습니다. 다음 절차에 따라 다른 UID를 정의하여 LDAP UID 속성을 재정의할 수 있습니다.
사전 요구 사항
-
루트액세스 -
sssd-tools패키지가 설치되어 있어야 합니다.
절차
사용자의 현재 UID를 표시합니다.
id -u <ldap_username>
# id -u <ldap_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_gt;을 사용자의 LDAP 사용자 이름으로 바꿉니다.username&사용자 계정의 UID를 재정의합니다.
sss_override user-add <ldap_username> -u <local_uid>
# sss_override user-add <ldap_username> -u <local_uid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_>을 사용자의 LDAP 사용자 이름으로 바꾸고 <usernamelocal_uid>를 새 UID 번호로 바꿉니다.메모리 내 캐시를 만료합니다.
sss_cache --users
# sss_cache --usersCopy to Clipboard Copied! Toggle word wrap Toggle overflow sss_override user-add명령을 사용하여 첫 번째 재정의를 생성한 후 SSSD를 재시작하여 변경 사항을 적용합니다.systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
로컬 UID가 적용되었는지 확인합니다.
id -u <ldap_username>
# id -u <ldap_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자의 재정의를 표시합니다.
sss_override user-show <ldap_username>
# sss_override user-show <ldap_username> user@ldap.example.com::_<local_uid>_:::::Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 6.2. 사용자의 LDAP UID 덮어쓰기
사용자
sarah의 LDAP UID를 로컬 UID6666으로 재정의하려면 다음을 수행합니다.LDAP 사용자
sarah의 현재 UID를 표시합니다.id -u sarah
# id -u sarah 1001Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 sarah 계정의 UID를 UID 6666으로 재정의합니다.
sss_override user-add sarah -u 6666
# sss_override user-add sarah -u 6666Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메모리 내 캐시를 수동으로 만료합니다.
sss_cache --users
# sss_cache --usersCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD를 재시작하여 변경 사항을 적용합니다.
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 UID가 적용되고 사용자 재정의가 올바르게 표시되는지 확인합니다.
id sarah sss_override user-show sarah
# id sarah 6666 # sss_override user-show sarah user@ldap.example.com::6666:::::Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3. LDAP GID 속성 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 LDAP의 계정을 사용하도록 기존 호스트를 구성할 수 있습니다. 그러나 LDAP의 사용자 값(이름, UID, GID, 홈 디렉터리, 쉘)은 로컬 시스템의 값과 다를 수 있습니다. 다음 절차에 따라 다른 GID를 정의하여 LDAP GID 속성을 재정의할 수 있습니다.
사전 요구 사항
-
루트액세스 -
설치된
sssd-tools
절차
사용자의 현재 GID를 표시합니다.
id -g <ldap_username>
# id -g <ldap_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_username>을 사용자 이름으로 바꿉니다.사용자 계정의 GID를 재정의합니다.
sss_override user-add <ldap_username> -g <local_gid>
# sss_override user-add <ldap_username> -g <local_gid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_username>을 사용자 이름으로 바꾸고 <local_gid>를 로컬 GID 번호로 바꿉니다.메모리 내 캐시를 만료합니다.
sss_cache --users
# sss_cache --usersCopy to Clipboard Copied! Toggle word wrap Toggle overflow sss_override user-add명령을 사용하여 첫 번째 재정의를 생성한 후 SSSD를 재시작하여 변경 사항을 적용합니다.systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
로컬 GID가 적용되었는지 확인합니다.
id -g <ldap_username>
# id -g <ldap_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자의 재정의를 표시합니다.
sss_override user-show <ldap_username>
# sss_override user-show <ldap_username> user@ldap.example.com::: 6666::::Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 6.3. 사용자의 LDAP GID 덮어쓰기
GID
6666으로 사용자sarah의 GID를 재정의하려면 다음을 수행합니다.사용자
sarah의 현재 GID를 표시합니다.id -g sarah
# id -g sarah 6003Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 sarah 계정의 GID를 GID
6666으로 재정의합니다.sss_override user-add sarah -g 6666
# sss_override user-add sarah -g 6666Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메모리 내 캐시를 수동으로 만료합니다.
sss_cache --users
# sss_cache --usersCopy to Clipboard Copied! Toggle word wrap Toggle overflow 첫 번째 재정의인 경우 SSSD를 재시작하여 변경 사항을 적용합니다.
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 GID가 적용되고 사용자의 재정의가 올바르게 표시되는지 확인합니다.
id -g sarah sss_override user-show sarah
# id -g sarah 6666 # sss_override user-show sarah user@ldap.example.com::6666:::::Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4. LDAP 홈 디렉터리 속성 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 LDAP의 계정을 사용하도록 기존 호스트를 구성할 수 있습니다. 그러나 LDAP의 사용자 값(이름, UID, GID, 홈 디렉터리, 쉘)은 로컬 시스템의 값과 다를 수 있습니다. 다른 홈 디렉터리를 정의하여 LDAP 홈 디렉터리 속성을 재정의할 수 있습니다.
사전 요구 사항
-
루트액세스 -
설치된
sssd-tools
절차
로컬에 저장된 사용자의 현재 홈 디렉터리를 표시합니다.
getent passwd <ldap_username>
# getent passwd <ldap_username> <ldap_username>:x:XXXX:XXXX::/home/<home_directory>:/bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_username>을 사용자 이름으로 바꿉니다. 출력에는 로컬로 표시된 홈 디렉터리 값이 표시되고 LDAP 레코드와 다를 수 있습니다.사용자의 홈 디렉터리를 재정의합니다.
sss_override user-add <ldap_username> -h <new_home_directory>
# sss_override user-add <ldap_username> -h <new_home_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_username>을 사용자 이름으로 바꾸고 <new_home_directory>를 새 홈 디렉터리로 바꿉니다.SSSD를 재시작하여 변경 사항을 적용합니다.
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
새 홈 디렉터리가 정의되어 있는지 확인합니다.
getent passwd <ldap_username>
# getent passwd <ldap_username> <ldap_username>:x:XXXX:XXXX::/home/<new_home_directory>:/bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자의 재정의를 표시합니다.
sss_override user-show <ldap_username>
# sss_override user-show <ldap_username> user@ldap.example.com:::::::<new_home_directory>::Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 6.4. 사용자의 홈 디렉터리 덮어쓰기
admin을 사용하여 사용자sarah의 홈 디렉토리를 재정의하려면 다음을 수행합니다.사용자
sarah의 현재 홈 디렉토리를 표시합니다 :getent passwd sarah
# getent passwd sarah sarah:x:1001:6003::sarah:/bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자
sarah의 홈 디렉토리를 새 홈 디렉토리admin으로 재정의합니다.sss_override user-add sarah -h admin
# sss_override user-add sarah -h adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD를 재시작하여 변경 사항을 적용합니다.
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 홈 디렉터리가 정의되었으며 사용자 가 올바르게 표시되는지 확인합니다.
getent passwd sarah sss_override user-show sarah
# getent passwd sarah sarah:x:1001:6003::admin:/bin/bash # sss_override user-show sarah user@ldap.example.com:::::::admin::Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5. LDAP 쉘 속성 덮어쓰기 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 LDAP의 계정을 사용하도록 기존 호스트를 구성할 수 있습니다. 그러나 LDAP의 사용자 값(이름, UID, GID, 홈 디렉터리, 쉘)은 로컬 시스템의 값과 다를 수 있습니다. 다른 쉘을 정의하여 LDAP 쉘 속성을 재정의할 수 있습니다.
사전 요구 사항
-
루트액세스 -
설치된
sssd-tools
절차
로컬에 저장된 사용자 쉘을 표시합니다.
getent passwd <ldap_username>
# getent passwd <ldap_username> <ldap_username>:x:XXXX:XXXX::/home/<home_directory>:_<currentshell>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_username>을 사용자 이름으로 바꿉니다.사용자의 쉘을 재정의합니다.
sss_override user-add <ldap_username> -s <new_shell>
# sss_override user-add <ldap_username> -s <new_shell>Copy to Clipboard Copied! Toggle word wrap Toggle overflow &
lt;ldap_username>을 사용자 이름으로 바꾸고 <new_shell>을 새 쉘로 바꿉니다.SSSD를 재시작하여 변경 사항을 적용합니다.
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
새 쉘이 정의되어 있는지 확인합니다.
getent passwd <ldap_username>
# getent passwd <ldap_username> <ldap_username>:x:XXXX:XXXX::/home/<home_directory>:_<new_shell>_Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 사용자의 재정의를 표시합니다.
sss_override user-show <ldap_username>
# sss_override user-show <ldap_username> user@ldap.example.com::::::_<new_shell>_:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 6.5. 사용자의 쉘 덮어쓰기
사용자
sarah의 쉘을/bin/bash에서sbin/nologin으로 변경하려면 다음을 수행합니다.사용자
sarah의 현재 쉘을 표시합니다.getent passwd sarah
# getent passwd sarah sarah:x:1001:6003::sarah:/bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새로운
/sbin/nologin쉘로 사용자 sarah의 쉘을 재정의합니다.sss_override user-add sarah -s /sbin/nologin
# sss_override user-add sarah -s /sbin/nologinCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD를 재시작하여 변경 사항을 적용합니다.
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 새 쉘이 정의되고 사용자 가 올바르게 표시되는지 확인합니다.
getent passwd sarah sss_override user-show sarah
# getent passwd sarah sarah:x:1001:6003::sarah:/sbin/nologin # sss_override user-show sarah user@ldap.example.com::::::/sbin/nologin:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.6. 호스트의 덮어쓰기 나열 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 호스트의 모든 사용자 및 그룹 재정의를 나열하여 올바른 특성이 재정의되었는지 확인할 수 있습니다.
사전 요구 사항
-
루트액세스 -
설치된
sssd-tools
절차
모든 사용자 재정의를 나열합니다.
sss_override user-find
# sss_override user-find user1@ldap.example.com::8000::::/bin/zsh: user2@ldap.example.com::8001::::/bin/bash: ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 그룹 덮어쓰기를 나열합니다.
sss_override group-find
# sss_override group-find group1@ldap.example.com::7000 group2@ldap.example.com::7001 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.7. 로컬 덮어쓰기 제거 링크 복사링크가 클립보드에 복사되었습니다!
글로벌 LDAP 디렉터리에 정의된 로컬 덮어쓰기를 제거할 수 있습니다.
사전 요구 사항
-
루트액세스 -
설치된
sssd-tools
절차
사용자 계정의 재정의를 제거하려면 다음을 사용합니다.
sss_override user-del <local_username>
# sss_override user-del <local_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow & lt;local_username >을 사용자 이름으로 바꿉니다. 변경 사항이 즉시 적용됩니다.
그룹의 재정의를 제거하려면 다음을 사용합니다.
sss_override group-del <group_name>
# sss_override group-del <group_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow sss
_override user-del 또는명령을 사용하여 첫 번째 재정의를 제거한 후 SSSD를 재시작하여 변경 사항을 적용합니다.sss_override group-delsystemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
사용자 또는 그룹의 재정의를 제거하면 이 오브젝트에 대한 모든 재정의가 제거됩니다.
6.8. 로컬 보기 내보내기 및 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
로컬 재정의는 로컬 SSSD 캐시에 저장됩니다. 이 캐시에서 파일로 사용자 및 그룹 재정의를 내보내 백업을 생성할 수 있습니다. 이렇게 하면 캐시가 지워지더라도 나중에 구성을 복원할 수 있습니다.
사전 요구 사항
-
루트액세스 -
설치된
sssd-tools
절차
사용자 및 그룹 보기를 백업하려면 다음을 사용합니다.
sss_override user-export /var/lib/sss/backup/sssd_user_overrides.bak sss_override group-export /var/lib/sss/backup/sssd_group_overrides.bak
# sss_override user-export /var/lib/sss/backup/sssd_user_overrides.bak # sss_override group-export /var/lib/sss/backup/sssd_group_overrides.bakCopy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 및 그룹 보기를 복원하려면 다음을 사용합니다.
sss_override user-import /var/lib/sss/backup/sssd_user_overrides.bak sss_override group-import /var/lib/sss/backup/sssd_group_overrides.bak
# sss_override user-import /var/lib/sss/backup/sssd_user_overrides.bak # sss_override group-import /var/lib/sss/backup/sssd_group_overrides.bakCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7장. 인증 공급자로 AD를 사용하도록 RHEL 호스트 구성 링크 복사링크가 클립보드에 복사되었습니다!
시스템 관리자는 호스트를 AD에 연결하지 않고 RHEL(Red Hat Enterprise Linux) 호스트의 인증 공급자로 AD(Active Directory)를 사용할 수 있습니다.
다음과 같은 경우 이 방법을 사용하십시오.
- AD 관리자가 호스트 활성화 및 비활성화를 제어하지 않도록 합니다.
- 회사 PC가 될 수 있는 호스트는 회사의 한 명의 사용자만 사용해야 합니다.
AD에 호스트에 가입하지 않도록 특정 이유가 있는 경우에만 이 방법을 사용하십시오.
시스템을 AD 또는 Red Hat IdM(Identity Management)에 완전히 참여시키는 것이 좋습니다. RHEL 호스트를 도메인에 연결하면 설정을 쉽게 관리할 수 있습니다. 클라이언트를 AD에 직접 연결하는 것과 관련된 클라이언트 액세스 라이센스에 관심이 있는 경우 AD와의 신뢰 계약에 있는 IdM 서버를 활용하는 것이 좋습니다. IdM-AD 신뢰에 대한 자세한 내용은 IdM과 AD 간의 교차 포리스트 신뢰 계획 및 IdM과 AD 간의 신뢰 설치를 참조하십시오.
이 절차를 완료하면 AD_user 는 example.com 도메인의 AD 사용자 데이터베이스에 설정된 암호를 사용하여 rhel_host 시스템에 로그인할 수 있습니다. EXAMPLE.COM Kerberos 영역은 example.com 도메인에 해당합니다.
사전 요구 사항
- rhel_host 에 대한 루트 액세스 권한이 있습니다.
- AD_user 사용자 계정은 example.com 도메인에 있습니다.
- Kerberos 영역은 EXAMPLE.COM 입니다.
-
rhel_host 가
realm join명령을 사용하여 AD에 가입되지 않았습니다. sssd-proxy패키지가 설치되어 있습니다.dnf install sssd-proxy
# dnf install sssd-proxyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
절차
암호를 할당하지 않고 AD_user 사용자 계정을 로컬로 생성합니다.
useradd AD_user
# useradd AD_userCopy to Clipboard Copied! Toggle word wrap Toggle overflow 편집을 위해
/etc/nsswitch.conf파일을 열고 다음 행을 포함하는지 확인합니다.passwd: sss files systemd group: sss files systemd shadow: files sss
passwd: sss files systemd group: sss files systemd shadow: files sssCopy to Clipboard Copied! Toggle word wrap Toggle overflow 편집을 위해
/etc/krb5.conf파일을 열고 다음 섹션 및 항목이 포함되어 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sssd/sssd.conf파일을 생성하고 여기에 다음 섹션과 행을 삽입합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sssd/sssd.conf 파일에 대한 권한을 변경합니다.chmod 600 /etc/sssd/sssd.conf
# chmod 600 /etc/sssd/sssd.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD(보안 시스템 서비스 데몬)를 시작합니다.
systemctl start sssd
# systemctl start sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD를 활성화합니다.
systemctl enable sssd
# systemctl enable sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/pam.d/system-auth파일을 열고 다음 섹션과 행을 포함하도록 수정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/pam.d/system-auth파일의 콘텐츠를/etc/pam.d/password-auth파일에 복사합니다. yes 를 입력하여 파일의 현재 내용을 덮어쓰는 것을 확인합니다.cp /etc/pam.d/system-auth /etc/pam.d/password-auth
# cp /etc/pam.d/system-auth /etc/pam.d/password-auth cp: overwrite '/etc/pam.d/password-auth'? yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
AD_user 의 Kerberos TGT(Tross-granting 티켓) 요청. 요청한 대로 AD_user 의 암호를 입력합니다.
kinit AD_user
# kinit AD_user Password for AD_user@EXAMPLE.COM:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 가져온 TGT를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
AD_user 가 EXAMPLE.COM Kerberos 도메인의 자격 증명을 사용하여 rhel_host 에 성공적으로 로그인했습니다.
8장. SSSD를 사용하여 호스트에서 사용자 액세스 보고 링크 복사링크가 클립보드에 복사되었습니다!
SSSD(보안 시스템 서비스 데몬)는 사용자가 클라이언트에 액세스할 수 있거나 액세스할 수 없는 항목을 추적합니다. 이 장에서는 액세스 제어 보고서 생성과 sssctl 도구를 사용하여 사용자 데이터를 표시하는 방법에 대해 설명합니다.
사전 요구 사항
- SSSD 패키지가 네트워크 환경에 설치되어 있습니다
8.1. sssctl 명령 링크 복사링크가 클립보드에 복사되었습니다!
sssctl 은 SSSD(보안 시스템 서비스 데몬) 상태에 대한 정보를 가져오는 통합된 방법을 제공하는 명령줄 도구입니다.
sssctl 유틸리티를 사용하여 다음에 대한 정보를 수집할 수 있습니다.
- 도메인 상태
- 클라이언트 사용자 인증
- 특정 도메인의 클라이언트에서 사용자 액세스
- 캐시된 콘텐츠에 대한 정보
sssctl 도구를 사용하면 다음을 수행할 수 있습니다.
- SSSD 캐시 관리
- 로그 관리
- 설정 파일 확인
sssctl 툴은 sss_cache 및 sss_debuglevel 툴을 대체합니다.
8.2. sssctl을 사용하여 액세스 제어 보고서 생성 링크 복사링크가 클립보드에 복사되었습니다!
SSSD는 클라이언트에 로그인할 수 있는 사용자를 제어하므로 보고서를 실행하는 시스템에 적용되는 액세스 제어 규칙을 나열할 수 있습니다.
이 툴이 KDC(키 배포 센터)에 의해 잠긴 사용자를 추적하지 않기 때문에 액세스 보고서는 정확하지 않습니다.
사전 요구 사항
- 관리자 권한으로 로그인해야 합니다.
절차
액세스 제어 보고서를 생성하려면 다음 명령을 실행하여 <
domain_name>을 바꿉니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3. sssctl을 사용하여 사용자 권한 부여 세부 정보 표시 링크 복사링크가 클립보드에 복사되었습니다!
sssctl user-checks 명령을 사용하여 SSSD(System Security Services Daemon)를 사용하는 애플리케이션의 인증 및 권한 부여 문제를 해결합니다.
sssctl user-checks < user_name >을 실행하여 NSS(이름 서비스 스위치)에서 사용 가능한 사용자 데이터와 D-Bus 인터페이스에 대한 InfoPipe 응답자를 표시합니다. 출력에는 사용자가 system-auth Pluggable Authentication Module (PAM) 서비스를 사용하여 로그인할 권한이 있는지가 표시됩니다.
명령에는 다음 두 가지 옵션이 있습니다.
-
-aPAM 작업 -
- PAM 서비스의경우
-a 및 -s 옵션을 지정하지 않으면 sssctl 툴에서 기본 옵션 -a acct -s system-auth 를 사용합니다.
사전 요구 사항
- 관리자 권한으로 로그인해야 합니다.
절차
특정 사용자에 대한 사용자 데이터를 표시하려면 다음을 입력합니다.
sssctl user-checks -a acct -s sshd <user_name>
[root@client1 ~]# sssctl user-checks -a acct -s sshd <user_name> user: example.user action: acct service: sshd ....Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9장. SSSD를 사용하여 도메인 정보 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
sssctl 을 사용하여 SSSD(System Security Services Daemon)에서 도메인 관련 데이터를 검색하고 분석할 수 있습니다. SSSD는 IdM(Identity Management)의 도메인과 교차 포리스트 신뢰로 IdM에 연결된 도메인을 나열할 수 있습니다.
사용 가능한 도메인을 나열하고 상태를 확인하고 ID 및 인증 문제를 해결할 수 있습니다.
9.1. sssctl을 사용하여 도메인 나열 링크 복사링크가 클립보드에 복사되었습니다!
sssctl domain-list 명령을 사용하여 도메인 토폴로지 문제를 디버깅할 수 있습니다.
상태를 즉시 사용할 수 없을 수도 있습니다. 도메인이 표시되지 않으면 명령을 반복합니다.
사전 요구 사항
- 관리자 권한으로 로그인해야 합니다.
절차
선택 사항:
sssctl명령에 대한 도움말을 표시하려면 다음을 입력합니다.sssctl --help
[user@client1 ~]$ sssctl --help ....Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 사용 가능한 도메인 목록을 표시하려면 다음을 입력합니다.
sssctl domain-list
[root@client1 ~]# sssctl domain-list
implicit_files
idm.example.com
ad.example.com
sub1.ad.example.com
목록에는 Active Directory와 Identity Management 간의 교차 포트 간 신뢰 도메인이 포함되어 있습니다.
9.2. sssctl을 사용하여 도메인 상태 확인 링크 복사링크가 클립보드에 복사되었습니다!
sssctl domain-status 명령을 사용하여 도메인 토폴로지 문제를 디버깅할 수 있습니다.
상태를 즉시 사용할 수 없을 수도 있습니다. 도메인이 표시되지 않으면 명령을 반복합니다.
사전 요구 사항
- 관리자 권한으로 로그인해야 합니다.
절차
선택 사항:
sssctl명령에 대한 도움말을 표시하려면 다음을 입력합니다.sssctl --help
[user@client1 ~]$ sssctl --helpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 도메인의 사용자 데이터를 표시하려면 <
domain_name>을 실제 도메인 이름으로 바꾸고 다음을 입력합니다.sssctl domain-status <domain_name>
[root@client1 ~]# sssctl domain-status <domain_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 도메인 idm.example.com의 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 도메인
idm.example.com은 온라인이며 명령을 적용한 클라이언트에서 볼 수 있습니다.
도메인을 사용할 수 없는 경우 결과는 다음과 같습니다.
sssctl domain-status <domain_name>
[root@client1 ~]# sssctl domain-status <domain_name>
Unable to get online status
10장. SSSD를 사용하여 PAM 서비스의 도메인 제한 링크 복사링크가 클립보드에 복사되었습니다!
PAM(장착형 인증 모듈)은 인증 및 권한 부여를 위한 공통 프레임워크입니다. Red Hat Enterprise Linux에서 대부분의 시스템 애플리케이션은 인증 및 권한 부여를 위한 기본 PAM 구성에 의존합니다.
SSSD(System Security Services Daemon)를 사용하면 PAM 서비스가 액세스할 수 있는 도메인을 제한할 수 있습니다. SSSD는 특정 PAM 서비스를 실행하는 사용자를 기반으로 PAM 서비스의 인증 요청을 평가합니다. 즉, PAM 서비스 사용자가 SSSD 도메인에 액세스할 수 있는 경우 PAM 서비스도 해당 도메인에 액세스할 수 있습니다.
10.1. PAM 정보 링크 복사링크가 클립보드에 복사되었습니다!
PAM(Pluggable Authentication Modules)은 시스템 애플리케이션이 중앙 집중식으로 구성된 프레임워크에 인증을 릴레이하는 데 사용할 수 있는 중앙 집중식 인증 메커니즘을 제공합니다.
PAM은 Kerberos, SSSD, NIS 또는 로컬 파일 시스템과 같은 다양한 인증 소스에 대해 PAM 모듈이 있으므로 플러그형입니다. 다양한 인증 소스의 우선 순위를 지정할 수 있습니다.
이 모듈식 아키텍처는 관리자가 시스템에 대한 인증 정책을 설정할 때 상당한 유연성을 제공합니다. PAM은 다음과 같은 여러 가지 이유로 개발자와 관리자에게 유용한 시스템입니다.
- PAM은 공통 인증 스키마를 제공하며 다양한 애플리케이션과 함께 사용할 수 있습니다.
- PAM은 시스템 관리자의 인증에 대한 상당한 유연성과 제어를 제공합니다.
- PAM은 개발자가 자체 인증 스키마를 만들지 않고도 프로그램을 작성할 수 있는 완전한 단일 라이브러리를 제공합니다.
10.2. 도메인 액세스 제한 옵션 링크 복사링크가 클립보드에 복사되었습니다!
선택한 도메인에 대한 액세스를 제한하려면 다음 옵션을 사용합니다.
- pam_trusted_users in /etc/sssd/sssd.conf
-
SSSD에서 신뢰하는 PAM 서비스의 수치 UID 또는 사용자 이름을 나열합니다. 기본 설정은
all입니다. 즉, 모든 서비스 사용자가 신뢰할 수 있으며 모든 도메인에 액세스할 수 있습니다. - pam_public_domains in /etc/sssd/sssd.conf
-
신뢰할 수 없는 PAM 서비스 사용자가 액세스할 수 있는 공용 SSSD 도메인을 지정합니다. 옵션은
all및none값을 허용합니다. 기본값은none입니다. 즉, 도메인이 공용이고 신뢰할 수 없는 서비스 사용자가 어떤 도메인에도 액세스할 수 없습니다. - PAM 구성 파일의 도메인
PAM 서비스가 인증할 수 있는 도메인 목록을 지정합니다. 도메인을 지정하지 않고
도메인을 사용하는 경우 PAM 서비스는 도메인에 대해 인증할 수 없습니다. 예를 들면 다음과 같습니다.auth required pam_sss.so domains=
auth required pam_sss.so domains=Copy to Clipboard Copied! Toggle word wrap Toggle overflow PAM 구성 파일에서 도메인을
사용하는경우 PAM 서비스는 신뢰할 수 있는 사용자로 서비스가 실행 중일 때 모든 도메인에 대해 인증할 수 있습니다./etc/sssd/sssd.confSSSD 구성 파일의 domain 옵션도 SSSD가 인증을 시도하는 도메인 목록을 지정합니다.PAM 구성 파일의 domain 옵션은sssd.conf의 도메인 목록을 확장할 수 없습니다. 더 짧은 목록을 지정하여 도메인의sssd.conf목록만 제한할 수 있습니다.따라서 도메인이 PAM 파일에 지정되지만sssd.conf에 지정되지 않은 경우 PAM 서비스는 도메인에 대해 인증할 수 없습니다.
기본 설정 pam_trusted_users = all 및 pam_public_domains = none 설정은 모든 PAM 서비스 사용자가 신뢰할 수 있고 모든 도메인에 액세스할 수 있도록 지정합니다. PAM 구성 파일에서 domain 옵션을 사용하여 도메인 액세스를 제한합니다.
sssd.conf 에 pam_public_domains 가 포함되어 있는 동안 PAM 구성 파일에서 도메인을 사용하여 도메인을 지정하려면 pam_public_domains 에도 도메인을 지정해야 합니다. 필수 도메인을 포함하지 않고 pam_public_domains 옵션을 사용하면 이 서비스가 신뢰할 수 없는 사용자로 실행되는 경우 PAM 서비스가 도메인에 대한 인증 실패로 이어집니다.
PAM 구성 파일에 정의된 도메인 제한은 사용자 조회가 아닌 인증 작업에만 적용됩니다.
10.3. PAM 서비스의 도메인 제한 링크 복사링크가 클립보드에 복사되었습니다!
PAM 서비스 인증을 지정된 도메인으로 제한할 수 있습니다.
사전 요구 사항
- SSSD 설치 및 실행.
절차
필요한 도메인 또는 도메인에 액세스하도록 SSSD를 구성합니다.
/etc/sssd/sssd.conf파일의domain 옵션에서 SSSD를 인증할 수 있는 도메인을 정의합니다.[sssd] domains = <idm.example.com>, <ad.example.com>, <ldap.example.com>
[sssd] domains = <idm.example.com>, <ad.example.com>, <ldap.example.com>Copy to Clipboard Copied! Toggle word wrap Toggle overflow PAM 구성 파일에서'domains' 옵션을 설정하여 PAM 서비스가 인증할 수 있는 도메인 또는 도메인을 지정합니다. 예를 들면 다음과 같습니다.
auth sufficient pam_sss.so forward_pass domains=<idm.example.com> account [default=bad success=ok user_unknown=ignore] pam_sss.so password sufficient pam_sss.so use_authtok
auth sufficient pam_sss.so forward_pass domains=<idm.example.com> account [default=bad success=ok user_unknown=ignore] pam_sss.so password sufficient pam_sss.so use_authtokCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 구성은 <
idm.example.com>에만 인증하도록 PAM 서비스를 제한합니다.
검증
-
<
idm.example.com>에 대해 인증합니다. 성공해야 합니다.
10.4. PAM 구성 파일 정보 링크 복사링크가 클립보드에 복사되었습니다!
PAM 구성 파일은 Red Hat Enterprise Linux의 서비스에 대한 인증 방법 및 정책을 지정합니다. 각 PAM은 애플리케이션 또는 서비스에 /etc/pam.d/ 디렉터리에 해당 파일이 있음을 인식합니다. 파일의 이름은 액세스를 제어하는 서비스에 따라 지정됩니다. 예를 들어 로그인 프로그램에는 /etc/pam.d/login 이라는 해당 PAM 구성 파일이 있습니다.
PAM 구성 파일을 수동으로 편집하면 인증 및 액세스 문제가 발생할 수 있습니다. authselect 툴을 사용하여 PAM을 구성합니다.
PAM 구성 파일 형식
각 PAM 구성 파일은 특정 모듈에 대한 설정을 정의하는 지시문으로 구성됩니다. PAM은 인수를 사용하여 일부 모듈에 대한 인증 중에 플러그 가능 모듈에 정보를 전달합니다.
module_type control_flag <module_name> <module_arguments>
module_type control_flag <module_name> <module_arguments>
예를 들면 다음과 같습니다.
auth required pam_unix.so
auth required pam_unix.so
PAM 모듈 유형
PAM 모듈 유형은 모듈에서 수행하는 인증 작업의 유형을 지정합니다. 이 모듈은 다음 작업을 수행할 수 있습니다.
- 계정 관리
- 인증 관리
- 암호 관리
- 세션 관리
개별 모듈은 일부 또는 모든 모듈 유형을 제공할 수 있습니다. 예를 들어 pam_unix.so 는 네 가지 모듈 유형을 모두 제공합니다.
pam_unix.so 와 같은 모듈 이름은 PAM에 지정된 모듈 유형이 포함된 라이브러리 이름을 제공합니다. 애플리케이션이 올바른 버전의 모듈을 찾을 수 있는 libpam 의 적절한 버전에 연결되어 있기 때문에 디렉터리 이름이 생략됩니다.
모듈 유형 지시문을 스택하거나 서로 배치하여 여러 모듈을 하나의 용도로 사용할 수 있습니다. 모듈 순서는 제어 플래그와 함께 중요합니다. 특정 모듈의 성공 또는 실패가 사용자에게 서비스에 대한 인증의 전반적인 목표에 얼마나 중요한지를 결정합니다.
PAM 모듈을 스택하여 사용자가 인증하기 전에 충족해야 하는 특정 조건을 적용할 수 있습니다.
PAM 제어 플래그
PAM 모듈이 해당 기능을 수행할 때 성공 또는 실패 결과를 반환합니다. 제어 플래그는 PAM에 이 결과를 처리하는 방법을 지시합니다.
간단한 플래그는 키워드를 사용하며 더 복잡한 구문은 [ <value1> = <action1 > < value2> = <action2 > …] 형식.
모듈의 제어 플래그에서 sufficient 또는 requisite 값을 사용하는 경우 모듈이 나열된 순서는 인증 프로세스에 중요합니다.
옵션 목록을 포함한 PAM 제어 플래그에 대한 자세한 설명은 pam.conf(5) 도움말 페이지를 참조하십시오.
10.5. PAM 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
자세한 설명과 함께 PAM 구성 파일의 예를 참조하십시오.
주석이 달린 PAM 구성 예
다음과 같습니다.
auth required pam_securetty.so-
이 파일이 있는 경우
/etc/securetty파일에 나열된 터미널에서 root 로그인이 허용되는지 확인합니다. 파일에 터미널이 나열되지 않으면 root로 로그인에 실패하고Login 잘못된메시지가 표시됩니다. auth required pam_unix.so nullok-
사용자에게 암호를 입력하라는 메시지를 표시하고
/etc/passwd에 저장된 정보에 대해 확인하고 존재하는 경우/etc/shadow.nullok인수는 빈 암호를 허용합니다. auth required pam_nologin.so/etc/nologin파일이 있는지 확인합니다. 존재하지 않고 사용자가 root가 아닌 경우 인증이 실패합니다.참고이 예제에서는 첫 번째
auth모듈이 실패하더라도 세 개의auth모듈이 모두 확인됩니다. 잠재적인 공격자가 인증이 실패한 단계를 모르는 것을 방지하는 좋은 보안 접근 방식입니다.account required pam_unix.so-
사용자 계정을 확인합니다. 예를 들어 shadow 암호가 활성화된 경우
pam_unix.so모듈의 계정 유형은 만료된 계정을 확인하거나 사용자가 암호를 변경해야 하는지 확인합니다. password required pam_pwquality.so retry=3-
현재 암호가 만료되었거나 사용자가 암호 변경을 수동으로 요청할 때 새 암호를 입력하라는 메시지가 표시됩니다. 그런 다음 새로 생성된 암호의 강도를 확인하여 품질 요구 사항을 충족하는지 확인하고 사전 기반 암호 크래킹 프로그램에 의해 쉽게 결정되지 않습니다.
retry=3인수는 사용자에게 강력한 암호를 생성하려는 세 번의 시도를 지정합니다. password required pam_unix.so shadow nullok use_authtok-
pam_unix.so모듈은 암호 변경 사항을 관리합니다.shadow인수는 사용자의 암호를 업데이트할 때 섀도우 암호를 생성하도록 모듈에 지시합니다.nullok인수를 사용하면 사용자가 빈 암호에서 암호를 변경할 수 있으며, 그렇지 않으면 null 암호가 계정 잠금으로 처리됩니다.use_authtok인수는 사용자에게 다시 메시지를 표시하지 않고 이전에 입력한 암호를 허용합니다. 이렇게 하면 모든 새 암호가 허용되기 전에pam_pwquality.so에서 보안 암호에 대한 pam_pwquality.so 검사를 전달해야 합니다. session required pam_unix.so-
pam_unix.so모듈은 세션을 관리하고 각 세션의 시작과 끝에 사용자 이름과 서비스 유형을 기록합니다. 로그는systemd-journald서비스에 의해 수집되며journalctl명령을 사용하여 볼 수 있습니다. 로그는/var/log/secure에도 저장됩니다. 이 모듈은 추가 기능을 위해 다른 세션 모듈과 함께 누적하여 보완할 수 있습니다.
11장. 로컬 SSSD 설정에서 오타 오류 제거 링크 복사링크가 클립보드에 복사되었습니다!
호스트의 /etc/sssd/sssd.conf 파일에 sssctl config-check 명령을 사용하여 오타 오류가 있는지 테스트할 수 있습니다.
사전 요구 사항
- 루트로 로그인되어 있습니다.
-
sssd-tools패키지가 설치됩니다.
절차
sssctl config-check명령을 입력합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/sssd/sssd.conf파일을 열고 오타를 수정합니다. 예를 들어 이전 단계에서 오류 메시지가 수신되면 ldap_search를로 바꿉니다.ldap_search_base[...] [domain/<domain_name>] ldap_search_base = dc=<domain_component>,dc=<tld> [...]
[...] [domain/<domain_name>] ldap_search_base = dc=<domain_component>,dc=<tld> [...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 파일을 저장합니다.
SSSD를 다시 시작:
systemctl restart sssd
# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
sssctl config-check명령을 입력합니다.sssctl config-check
# sssctl config-checkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력은 문제를 찾을 수 없음을 나타냅니다.
Issues identified by validators: 0 Messages generated during configuration merging: 0 Used configuration snippet files: 0
Issues identified by validators: 0
Messages generated during configuration merging: 0
Used configuration snippet files: 0
/etc/sssd/sssd.conf 파일에 오타 오류가 없습니다.
12장. IdM에서 SSSD를 사용한 인증 문제 해결 링크 복사링크가 클립보드에 복사되었습니다!
IdM(Identity Management) 환경의 인증에는 다음과 같은 많은 구성 요소가 포함됩니다.
IdM 클라이언트의 경우:
- SSSD 서비스.
- NSS(이름 서비스 스위치).
- PAM(장착형 인증 모듈).
IdM 서버에서 다음을 수행합니다.
- SSSD 서비스.
- IdM 디렉터리 서버.
- IdM Kerberos KDC(키 배포 센터).
AD(Active Directory) 사용자로 인증하는 경우:
- AD 도메인 컨트롤러의 디렉터리 서버.
- AD 도메인 컨트롤러의 Kerberos 서버.
사용자를 인증하려면 SSSD 서비스를 사용하여 다음 기능을 수행할 수 있어야 합니다.
- 인증 서버에서 사용자 정보를 검색합니다.
- 사용자에게 자격 증명을 요청하고 해당 자격 증명을 인증 서버에 전달한 다음 결과를 처리합니다.
문제 해결에는 SSSD 서비스와 사용자 정보를 저장하는 서버 간에 정보가 이동하는 방식을 이해해야 합니다. 이를 통해 문제가 발생한 위치를 식별하고 잠재적인 원인을 좁힐 수 있습니다.
12.1. SSSD로 IdM 사용자 정보를 검색할 때 데이터 흐름 링크 복사링크가 클립보드에 복사되었습니다!
다음 다이어그램은 getent passwd <idm_user_name> 명령을 사용하여 IdM 사용자 정보를 요청하는 동안 IdM 클라이언트와 IdM 서버 간의 정보 흐름을 간소화한 것입니다.
getent passwd를 사용하여 사용자 정보를 검색하기 위한 IdM 클라이언트와 서버 간의 정보 흐름
-
getent명령은libc라이브러리에서getpwnam호출을 트리거합니다. -
libc라이브러리는/etc/nsswitch.conf구성 파일을 참조하여 사용자 정보 제공을 담당하는 서비스를 확인하고 SSSD 서비스에대한항목을 검색합니다. -
libc라이브러리는nss_sss모듈을 엽니다. -
nss_sss 모듈은 사용자 정보에 대한 메모리 매핑 캐시를 확인합니다. 데이터가 캐시에 있는 경우
nss_sss모듈에서 해당 데이터를 반환합니다. -
사용자 정보가 메모리 매핑 캐시에 없는 경우 요청이 SSSD
sssd_nss응답자 프로세스에 전달됩니다. -
SSSD 서비스는 해당 캐시를 확인합니다. 데이터가 캐시에 있고 유효한 경우
sssd_nss응답자가 캐시에서 데이터를 읽고 애플리케이션에 반환합니다. -
데이터가 캐시에 없거나 만료된 경우
sssd_nss응답자가 적절한 백엔드 프로세스를 쿼리하고 응답을 기다립니다. SSSD 서비스는sssd.conf구성 파일에서id_provider=ipa를 설정하여 활성화되는 IdM 환경에서 IPA 백엔드를 사용합니다. -
sssd_be백엔드 프로세스는 IdM 서버에 연결하고 IdM LDAP 디렉터리 서버에서 정보를 요청합니다. - IdM 서버의 SSSD 백엔드는 IdM 클라이언트의 SSSD 백엔드 프로세스에 응답합니다.
- 클라이언트의 SSSD 백엔드는 결과 데이터를 SSSD 캐시에 저장하고 캐시가 업데이트되었음을 응답 프로세스를 경고합니다.
-
sssd_nss프론트엔드 응답자 프로세스는 SSSD 캐시에서 정보를 검색합니다. -
sssd_nss응답자가 사용자 정보를nss_sss응답자에게 전송하여 요청을 완료합니다. -
libc라이브러리는 사용자 정보를 요청한 애플리케이션에 반환합니다.
12.2. SSSD로 AD 사용자 정보를 검색할 때 데이터 흐름 링크 복사링크가 클립보드에 복사되었습니다!
IdM 환경과 AD(Active Directory) 도메인 간에 교차 포리스트 신뢰를 설정한 경우 IdM 클라이언트에 대한 AD 사용자 정보를 검색할 때 정보 흐름은 AD 사용자 데이터베이스에 연결하는 추가 단계를 통해 IdM 사용자 정보를 검색할 때 정보 흐름과 매우 유사합니다.
다음 다이어그램은 사용자가 getent passwd < ;user_name@ad.example.com> 명령을 사용하여 AD 사용자에 대한 정보를 요청할 때 정보 흐름을 단순화하는 것입니다. 이 다이어그램에는 SSSD 섹션을 사용하여 IdM 사용자 정보를 검색할 때 데이터 흐름에 설명된 내부 세부 정보가 포함되어 있지 않습니다. IdM 클라이언트의 SSSD 서비스, IdM 서버의 SSSD 서비스 및 AD 도메인 컨트롤러의 LDAP 데이터베이스 간의 통신에 중점을 둡니다.
IdM 클라이언트, IdM 서버 및 AD 도메인 컨트롤러 간의 AD 사용자 정보를 검색하기 위한 정보 흐름
- IdM 클라이언트는 AD 사용자 정보를 위해 로컬 SSSD 캐시를 찾습니다.
-
IdM 클라이언트에 사용자 정보가 없거나 정보가 오래된 경우 클라이언트의 SSSD 서비스는 IdM 서버의
extdom_extop플러그인에 연결하여 LDAP 확장 작업을 수행하고 정보를 요청합니다. - IdM 서버의 SSSD 서비스는 로컬 캐시에서 AD 사용자 정보를 찾습니다.
- IdM 서버에 SSSD 캐시에 사용자 정보가 없거나 정보가 오래된 경우 LDAP 검색을 수행하여 AD 도메인 컨트롤러에서 사용자 정보를 요청합니다.
- IdM 서버의 SSSD 서비스는 AD 도메인 컨트롤러에서 AD 사용자 정보를 수신하여 캐시에 저장합니다.
-
extdom_extop플러그인은 IdM 서버의 SSSD 서비스에서 LDAP 확장 작업을 완료하는 정보를 받습니다. - IdM 클라이언트의 SSSD 서비스는 LDAP 확장 작업에서 AD 사용자 정보를 받습니다.
- IdM 클라이언트는 AD 사용자 정보를 SSSD 캐시에 저장하고 요청한 애플리케이션에 정보를 반환합니다.
12.3. IdM에서 SSSD를 사용하여 사용자로 인증할 때 데이터 흐름 링크 복사링크가 클립보드에 복사되었습니다!
IdM 서버 또는 클라이언트에서 사용자로 인증하는 데 다음 구성 요소가 포함됩니다.
-
sshd서비스와 같은 인증 요청을 시작하는 서비스입니다. - PAM(Pluggable Authentication Module) 라이브러리 및 해당 모듈.
- SSSD 서비스, 응답자 및 백엔드.
- 스마트 카드 인증이 구성된 경우 스마트 카드 리더입니다.
인증 서버:
- IdM 사용자는 IdM Kerberos KDC(키 배포 센터)에 대해 인증됩니다.
- AD(Active Directory) 사용자는 AD DC(Domain Controller)에 대해 인증됩니다.
다음 다이어그램은 사용자가 명령줄에서 SSH 서비스를 통해 호스트에 로컬로 로그인하는 동안 인증해야 하는 경우 정보 흐름을 간소화한 것입니다.
인증 시도 중에 IdM 클라이언트와 IdM 서버 또는 AD 도메인 컨트롤러 간의 정보 흐름
-
ssh명령을 사용한 인증 시도는libpam라이브러리를 트리거합니다. libpam라이브러리는 인증 시도를 요청하는 서비스에 해당하는/etc/pam.d/디렉터리에서 PAM 파일을 참조합니다. 이 예에서는 로컬 호스트의 SSH 서비스를 통한 인증과 함께libpam 라이브러리에서구성 파일을 확인하고 SSSD PAM에 대한/etc/pam.d/system-authpam_sss.so항목을 검색합니다.auth sufficient pam_sss.so
auth sufficient pam_sss.soCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
사용 가능한 인증 방법을 결정하기 위해
libpam라이브러리는pam_sss모듈을 열고 SSSD 서비스의sssd요청을 전송합니다._pam PAM 응답자에게 SSS_PAM_PREAUTH -
스마트 카드 인증이 구성된 경우 SSSD 서비스는 스마트 카드를 확인하고 여기에서 인증서를 검색하는 임시
p11_child프로세스를 생성합니다. -
사용자에 대해 스마트 카드 인증이 구성된 경우
sssd_pamresponder는 사용자와 함께 스마트 카드의 인증서 일치를 시도합니다.sssd_pamresponder는 그룹 멤버십이 액세스 제어에 영향을 미칠 수 있으므로 사용자가 속한 그룹에 대한 검색도 수행합니다. -
sssd_pamresponder는SSS_PAM_PREAUTH요청을sssd_be백엔드 응답자에게 전송하여 서버가 지원하는 인증 방법(예: 암호 또는 2 단계 인증)을 확인합니다. SSSD 서비스가 IPA 응답자를 사용하는 IdM 환경에서 기본 인증 방법은 Kerberos입니다. 이 예에서는 사용자가 간단한 Kerberos 암호를 사용하여 인증합니다. -
sssd_be응답자는 temporarykrb5_child프로세스를 생성합니다. -
The
krb5_child프로세스는 IdM 서버의 KDC에 접속하고 사용 가능한 인증 방법을 확인합니다. KDC는 요청에 응답합니다.
-
The
krb5_child프로세스는 응답을 평가하고 결과를sssd_be백엔드 프로세스로 다시 보냅니다. -
sssd_be백엔드 프로세스는 결과를 수신합니다. -
sssd_pamresponder는 결과를 수신합니다. -
pam_sss모듈은 결과를 수신합니다.
-
The
-
사용자에 대해 암호 인증이 구성된 경우
pam_sss모듈은 사용자에게 암호를 요청합니다. 스마트 카드 인증이 구성된 경우pam_sss모듈은 사용자에게 스마트 카드 PIN을 묻는 메시지를 표시합니다. 이 모듈은
SSS_PAM_AUTHENTICATE요청을 보냅니다. 이 요청은 다음과 같이 이동합니다.-
sssd_pam응답자. -
sssd_be백엔드 프로세스.
-
-
sssd_be프로세스는 KDC에 연결하기 위해 temporarykrb5_child프로세스를 생성합니다. -
The
krb5_child프로세스는 사용자가 제공한 사용자 이름과 암호를 사용하여 KDC에서 Kerberos Ticket Granting Ticket(TGT)을 검색하려고 시도합니다. -
The
krb5_child프로세스는 인증 시도의 결과를 수신합니다. The
krb5_child프로세스:- TGT를 자격 증명 캐시에 저장합니다.
-
sssd_be백엔드 프로세스에 인증 결과를 반환합니다.
인증 결과는
sssd_be프로세스에서 다음과 같이 이동합니다.-
sssd_pam응답자. -
pam_sss모듈.
-
-
pam_sss모듈은 다른 애플리케이션에서 참조할 수 있도록 사용자 TGT의 위치로 환경 변수를 설정합니다.
12.4. 인증 문제 범위 좁음 링크 복사링크가 클립보드에 복사되었습니다!
사용자를 성공적으로 인증하려면 사용자 정보를 저장하는 데이터베이스에서 SSSD 서비스를 사용하여 사용자 정보를 검색할 수 있어야 합니다. 다음 절차에서는 사용자가 로그인할 수 없는 경우 인증 문제의 범위를 좁힐 수 있도록 인증 프로세스의 다양한 구성 요소를 테스트하는 단계를 설명합니다.
절차
SSSD 서비스 및 해당 프로세스가 실행 중인지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트가 IP 주소를 통해 사용자 데이터베이스 서버에 연결할 수 있는지 확인합니다.
ping <IP_address_of_the_database_server>
[user@client ~]$ ping <IP_address_of_the_database_server>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 단계가 실패하면 네트워크 및 방화벽 설정에서 IdM 클라이언트와 서버 간의 직접 통신을 허용하는지 확인합니다. firewalld 사용 및 구성을 참조하십시오.
클라이언트가 정규화된 호스트 이름을 통해 IdM LDAP 서버(Id 사용자용) 또는 AD 도메인 컨트롤러(AD 사용자의 경우)를 검색하고 연결할 수 있는지 확인합니다.
dig -t SRV ldap._tcp.<domain>@<server_name> ping <fully_qualified_host_name_of_the_server>
[user@client ~]$ dig -t SRV ldap._tcp.<domain>@<server_name> [user@client ~]$ ping <fully_qualified_host_name_of_the_server>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 단계가 실패하면
/etc/resolv.conf파일을 포함하여 DNS(Dynamic Name Service) 설정을 확인합니다. DNS 서버 순서 구성을 참조하십시오.참고기본적으로 SSSD 서비스는 DNS 서비스(SRV) 레코드를 통해 LDAP 서버와 AD DC를 자동으로 검색합니다. SSSD를 특정 서버로 제한하려면 다음 옵션을 사용하여
sssd.conf구성 파일에 정의합니다.-
ipa_server = <fully_qualified_host_name_of_the_server> -
ad_server = <fully_qualified_host_name_of_the_server> -
ldap_uri = <fully_qualified_host_name_of_the_server>
이러한 옵션을 사용하는 경우 목록에 나열된 서버에 연결할 수 있는지 확인합니다.
-
클라이언트가 LDAP 서버에 인증하고
ldapsearch명령으로 사용자 정보를 검색할 수 있는지 확인합니다.LDAP 서버가
server.example.com과 같이 IdM 서버인 경우 호스트의 Kerberos 티켓을 검색하고 호스트 Kerberos 주체로 데이터베이스 검색을 수행합니다.kinit -k 'host/client.example.com@EXAMPLE.COM' ldapsearch -LLL -Y GSSAPI -h server.example.com -b “dc=example,dc=com” uid=<idm_user>
[user@client ~]$ kinit -k 'host/client.example.com@EXAMPLE.COM' [user@client ~]$ ldapsearch -LLL -Y GSSAPI -h server.example.com -b “dc=example,dc=com” uid=<idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP 서버가
server.ad.example.com과 같이 AD(Active Directory) DC(Domain Controller)인 경우 호스트에 대한 Kerberos 티켓을 검색하고 호스트 Kerberos 주체로 데이터베이스 검색을 수행합니다.kinit -k 'CLIENT$@AD.EXAMPLE.COM' ldapsearch -LLL -Y GSSAPI -h server.ad.example.com -b “dc=example,dc=com” sAMAccountname=<idm_user>
[user@client ~]$ kinit -k 'CLIENT$@AD.EXAMPLE.COM' [user@client ~]$ ldapsearch -LLL -Y GSSAPI -h server.ad.example.com -b “dc=example,dc=com” sAMAccountname=<idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP 서버가 일반 LDAP 서버이고
sssd.conf 파일에서ldap_default_bind_dn및ldap_default_authtok옵션을 설정한 경우 동일한ldap_default_bind_dn계정으로 인증합니다.ldapsearch -xLLL -D "cn=ldap_default_bind_dn_value" -W -h ldapserver.example.com -b “dc=example,dc=com” uid=<idm_user>
[user@client ~]$ ldapsearch -xLLL -D "cn=ldap_default_bind_dn_value" -W -h ldapserver.example.com -b “dc=example,dc=com” uid=<idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 단계가 실패하면 데이터베이스 설정을 통해 호스트에서 LDAP 서버를 검색할 수 있는지 확인합니다.
SSSD 서비스는 Kerberos 암호화를 사용하므로 로그인할 수 없는 사용자로 Kerberos 티켓을 얻을 수 있는지 확인합니다.
LDAP 서버가 IdM 서버인 경우:
kinit <idm_user>
[user@client ~]$ kinit <idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP 서버 데이터베이스가 AD 서버인 경우:
kinit <ad_user@AD.EXAMPLE.COM>
[user@client ~]$ kinit <ad_user@AD.EXAMPLE.COM>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
이 단계가 실패하면 Kerberos 서버가 올바르게 작동하고 모든 서버의 시간이 동기화되며 사용자 계정이 잠겨 있지 않은지 확인합니다.
명령줄에 대한 사용자 정보를 검색할 수 있는지 확인합니다.
getent passwd <idm_user> id <idm_user>
[user@client ~]$ getent passwd <idm_user> [user@client ~]$ id <idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 단계가 실패하면 클라이언트의 SSSD 서비스가 사용자 데이터베이스에서 정보를 수신할 수 있는지 확인합니다.
-
/var/log/messages로그 파일의 오류를 검토합니다. - SSSD 서비스에서 자세한 로깅을 활성화하고 디버깅 로그를 수집한 다음 로그에서 문제 소스에 대한 표시를 확인합니다.
- 선택 사항: Red Hat 기술 지원 케이스를 열고 수집한 문제 해결 정보를 제공합니다.
-
호스트에 대한
sudo권한이 있는 경우sssctl유틸리티를 사용하여 사용자가 로그인할 수 있는지 확인합니다.sudo sssctl user-checks -a auth -s ssh <idm_user>
[user@client ~]$ sudo sssctl user-checks -a auth -s ssh <idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 단계가 실패하면 PAM 구성, IdM HBAC 규칙 및 IdM RBAC 규칙과 같은 인증 설정을 확인합니다.
-
사용자의 UID가
/etc/login.defs파일에 정의되어 있는UID_MIN보다 크거나 같은지 확인합니다. -
/var/log/secure 및로그 파일에서 인증 오류를 검토합니다./var/log/messages - SSSD 서비스에서 자세한 로깅을 활성화하고 디버깅 로그를 수집한 다음 로그에서 문제 소스에 대한 표시를 확인합니다.
- 선택 사항: Red Hat 기술 지원 케이스를 열고 수집한 문제 해결 정보를 제공합니다.
-
사용자의 UID가
12.5. SSSD 로그 파일 및 로깅 수준 링크 복사링크가 클립보드에 복사되었습니다!
각 SSSD 서비스는 /var/log/sssd/ 디렉토리에 있는 자체 로그 파일에 로그인합니다. example.com IdM 도메인에 있는 IdM 서버의 경우 로그 파일은 다음과 같을 수 있습니다.
SSSD 로그 파일 용도
krb5_child.log- Kerberos 인증과 관련된 수명이 짧은 도우미 프로세스의 로그 파일입니다.
ldap_child.log- LDAP 서버와의 통신을 위한 Kerberos 티켓을 가져오는 데 관련된 짧은 도우미 프로세스의 로그 파일입니다.
sssd_<domain_name>.logsssd.conf파일의 각 도메인 섹션에 대해 SSSD 서비스는 LDAP 서버와의 통신에 대한 정보를 별도의 로그 파일에 기록합니다. 예를 들어,example.com이라는 IdM 도메인이 있는 환경에서 SSSD 서비스는sssd_example.com.log라는 파일에 해당 정보를 기록합니다. 호스트가ad.example.com이라는 AD 도메인과 직접 통합되는 경우 정보는sssd_ad.example.com.log라는 파일에 기록됩니다.참고IdM 환경과 AD 도메인에 대한 교차 신뢰가 있는 경우 AD 도메인에 대한 정보는 여전히 IdM 도메인의 로그 파일에 기록됩니다.
마찬가지로 호스트가 AD 도메인에 직접 통합된 경우 하위 도메인에 대한 정보가 기본 도메인의 로그 파일에 기록됩니다.
selinux_child.log- SELinux 정보를 검색하고 설정하는 수명이 짧은 도우미 프로세스의 로그 파일입니다.
sssd.log- SSSD 모니터링 및 해당 응답자 및 백엔드 프로세스와의 통신을 위한 로그 파일.
sssd_ifp.log- 시스템 버스를 통해 액세스할 수 있는 공용 D-Bus 인터페이스를 제공하는 InfoPipe 응답자의 로그 파일입니다.
sssd_nss.log- 사용자 및 그룹 정보를 검색하는 NSS(Name Services Switch) 응답자의 로그 파일입니다.
sssd_pac.log- Microsoft 권한 속성 인증서(PAC) 응답자의 로그 파일은 AD Kerberos 티켓에서 PAC를 수집하고 PAC에서 AD 사용자에 대한 정보를 파생하여 AD로부터 직접 요청하지 않도록 합니다.
sssd_pam.log- PAM(Pluggable Authentication Module) 응답자의 로그 파일.
sssd_ssh.log- SSH 응답자 프로세스의 로그 파일.
SSSD 로깅 수준
디버그 수준을 설정하면 그 아래의 모든 디버그 수준도 활성화됩니다. 예를 들어 6에서 디버그 수준을 설정하면 디버그 수준 0~5도 활성화됩니다.
| level | 설명 |
|---|---|
| 0 | 치명적인 오류. SSSD 서비스가 시작되지 않거나 종료되지 않도록 하는 오류입니다. |
| 1 | 심각한 오류. SSSD 서비스를 종료하지 않지만 하나 이상의 주요 기능이 제대로 작동하지 않는 오류. |
| 2 | 심각한 오류. 특정 요청 또는 작업이 실패했음을 알리는 오류가 발생했습니다. 기본 디버그 로그 수준입니다. |
| 3 | 사소한 오류. 수준 2에서 작업 실패를 발생시키는 오류. |
| 4 | 구성 설정. |
| 5 | 기능 데이터. |
| 6 | 작업 기능에 대한 메시지 추적. |
| 7 | 내부 제어 기능에 대한 메시지 추적. |
| 8 | 함수 내부 변수의 내용. |
| 9 | 매우 낮은 수준의 추적 정보. |
12.6. sssd.conf 파일에서 SSSD에 대한 자세한 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 SSSD 서비스는 심각한 오류(디버그 수준 2)만 기록하지만 인증 문제를 해결하는 데 필요한 세부 수준까지 기록하지 않습니다.
SSSD 서비스를 다시 시작할 때 상세한 로깅을 영구적으로 활성화하려면 /etc/sssd/sssd.conf 설정 파일의 각 섹션에서 여기서 debug_level=<integer> 옵션을 추가합니다.<integer> 값은 0에서 9 사이의 숫자입니다. 디버그 수준은 최대 3 로그 오류, 수준 8 이상에서는 많은 양의 자세한 로그 메시지를 제공합니다. 레벨 6 은 인증 문제를 디버깅하기 위한 시작점입니다.
사전 요구 사항
-
sssd.conf설정 파일을 편집하고 SSSD 서비스를 다시 시작하려면 루트 암호가 필요합니다.
절차
-
텍스트 편집기에서
/etc/sssd/sssd.conf파일을 엽니다. 파일의 모든 섹션에
debug_level옵션을 추가하고 debug 수준을 선택한 상세 정보로 설정합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
sssd.conf파일을 저장하고 닫습니다. SSSD 서비스를 다시 시작하여 새 구성 설정을 로드합니다.
systemctl restart sssd
[root@server ~]# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.7. sssctl 명령을 사용하여 SSSD에 대한 자세한 로깅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 SSSD 서비스는 심각한 오류(디버그 수준 2)만 기록하지만 인증 문제를 해결하는 데 필요한 세부 수준까지 기록하지 않습니다.
명령줄에서 sssctl debug-level <integer> 명령을 사용하여 SSSD 서비스의 디버그 수준을 변경할 수 있습니다. 여기서 <integer> 값은 0에서 9 사이의 숫자입니다. 디버그 수준은 최대 3 로그 오류, 수준 8 이상에서는 많은 양의 자세한 로그 메시지를 제공합니다. 레벨 6은 인증 문제를 디버깅하기 위한 시작점입니다.
사전 요구 사항
-
sssctl명령을 실행하려면 루트 암호가 필요합니다.
절차
sssctl debug-level명령을 사용하여 디버그 수준을 원하는 상세 정보 표시로 설정합니다. 예를 들면 다음과 같습니다.sssctl debug-level 6
[root@server ~]# sssctl debug-level 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.8. IdM 서버의 인증 문제 해결을 위해 SSSD 서비스에서 디버깅 로그 수집 링크 복사링크가 클립보드에 복사되었습니다!
IdM 사용자로 IdM 서버를 인증할 때 문제가 발생하는 경우 서버의 SSSD 서비스에 대한 자세한 디버그 로그인을 활성화하고 사용자에 대한 정보를 검색하려는 시도의 로그를 수집합니다.
사전 요구 사항
-
root권한이 있습니다.
절차
IdM 서버에서 자세한 SSSD 디버그 로깅을 활성화합니다.
sssctl debug-level 6
[root@server ~]# sssctl debug-level 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 문제가 발생한 사용자에 대해 SSSD 캐시에 있는 개체를 무효화하므로 LDAP 서버를 우회하지 않고 SSSD에 이미 캐시된 정보를 검색하지 않습니다.
sssctl cache-expire -u <idm_user>
[root@server ~]# sssctl cache-expire -u <idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 SSSD 로그를 제거하여 문제 해결 최소화.
sssctl logs-remove
[root@server ~]# sssctl logs-removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 시도 전후에 타임 스탬프를 수집하는 동안 인증 문제가 발생한 사용자로 전환하십시오. 이러한 타임스탬프는 데이터 공간의 범위를 더 좁힙니다.
date; su <idm_user>; date
[root@server sssd]# date; su <idm_user>; date Mon Mar 29 15:33:48 EDT 2021 su: user idm_user does not exist Mon Mar 29 15:33:49 EDT 2021Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 자세한 SSSD 로그를 계속 수집하지 않으려면 디버그 수준을 낮추십시오.
sssctl debug-level 2
[root@server ~]# sssctl debug-level 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실패한 요청에 대한 정보는 SSSD 로그를 검토합니다. 예를 들어,
/var/log/sssd/sssd_example.com.log파일을 검토하면 SSSD 서비스에서cn=accounts,dc=example,dc=comLDAP 하위 트리에서 사용자를 찾지 못했음을 확인할 수 있습니다. 이는 사용자가 없거나 다른 위치에 있음을 나타낼 수 있습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인증 문제의 원인을 확인할 수 없는 경우:
최근에 생성한 SSSD 로그를 수집합니다.
sssctl logs-fetch sssd-logs-Mar29.tar
[root@server ~]# sssctl logs-fetch sssd-logs-Mar29.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat 기술 지원 케이스를 열고 다음을 제공합니다.
-
SSSD 로그:
sssd-logs-Mar29.tar 로그에 해당하는 요청의 타임스탬프 및 사용자 이름을 포함한 콘솔 출력입니다.
date; id <idm_user>; date
[root@server sssd]# date; id <idm_user>; date Mon Mar 29 15:33:48 EDT 2021 id: 'idm_user': no such user Mon Mar 29 15:33:49 EDT 2021Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
SSSD 로그:
12.9. IdM 클라이언트의 인증 문제 해결을 위해 SSSD 서비스에서 디버깅 로그 수집 링크 복사링크가 클립보드에 복사되었습니다!
IdM 클라이언트에 IdM 사용자로 인증할 때 문제가 발생하는 경우 IdM 서버에 대한 사용자 정보를 검색할 수 있는지 확인합니다. IdM 서버에 대한 사용자 정보를 검색할 수 없는 경우 IdM 서버에서 정보를 검색하는 IdM 클라이언트에서 검색할 수 없습니다.
IdM 서버에서 인증 문제가 발생하지 않았다는 것을 확인한 후 IdM 서버와 IdM 클라이언트 모두에서 SSSD 디버깅 로그를 수집합니다.
사전 요구 사항
- 사용자는 IdM 서버가 아닌 IdM 클라이언트에 대한 인증 문제만 있습니다.
-
sssctl명령을 실행하고 SSSD 서비스를 다시 시작하려면 루트 암호가 필요합니다.
절차
-
클라이언트에서 다음을 수행합니다. 텍스트 편집기에서
/etc/sssd/sssd.conf파일을 엽니다. 클라이언트에서 다음을 수행합니다. 파일의
[domain]섹션에ipa_server옵션을 추가하고 FQDN(정규화된 도메인 이름)을 사용하여 IdM 서버로 설정합니다. 이렇게 하면 IdM 클라이언트가 다른 IdM 서버를 자동으로 검색하지 않으므로 이 테스트가 하나의 클라이언트와 서버로만 제한됩니다.[domain/<idm_domain_name>] ipa_server = <idm_server_fqdn> ...
[domain/<idm_domain_name>] ipa_server = <idm_server_fqdn> ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
클라이언트에서 다음을 수행합니다.
sssd.conf파일을 저장하고 닫습니다. 클라이언트에서 다음을 수행합니다. SSSD 서비스를 다시 시작하여 구성 변경 사항을 로드합니다.
systemctl restart sssd
[root@client ~]# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 및 클라이언트에서 다음을 수행합니다. 자세한 SSSD 디버그 로깅을 활성화합니다.
sssctl debug-level 6
[root@server ~]# sssctl debug-level 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow sssctl debug-level 6
[root@client ~]# sssctl debug-level 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 및 클라이언트에서 다음을 수행합니다. 인증 문제가 발생한 사용자에게 SSSD 캐시에 있는 개체를 무효화하므로 LDAP 데이터베이스를 우회하지 않고 SSSD에 이미 캐시된 정보를 검색하지 않습니다.
sssctl cache-expire -u <idm_user>
[root@server ~]# sssctl cache-expire -u <idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow sssctl cache-expire -u <idm_user>
[root@client ~]# sssctl cache-expire -u <idm_user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 및 클라이언트에서 다음을 수행합니다. 이전 SSSD 로그를 제거하여 문제 해결 최소화.
sssctl logs-remove
[root@server ~]# sssctl logs-removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow sssctl logs-remove
[root@server ~]# sssctl logs-removeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트에서 다음을 수행합니다. 시도 전후에 타임스탬프를 수집하는 동안 인증 문제가 발생한 사용자로 전환합니다. 이러한 타임스탬프는 데이터 공간의 범위를 더 좁힙니다.
date; su <idm_user>; date
[root@client sssd]# date; su <idm_user>; date Mon Mar 29 16:20:13 EDT 2021 su: user idm_user does not exist Mon Mar 29 16:20:14 EDT 2021Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 서버 및 클라이언트에서 다음을 수행합니다. 자세한 SSSD 로그를 계속 수집하지 않으려면 디버그 수준을 낮추십시오.
sssctl debug-level 0
[root@server ~]# sssctl debug-level 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow sssctl debug-level 0
[root@client ~]# sssctl debug-level 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서버 및 클라이언트에서 다음을 수행합니다. 실패한 요청에 대한 정보는 SSSD 로그를 검토합니다.
- 클라이언트 로그에서 클라이언트의 요청을 검토합니다.
- 서버 로그에서 클라이언트의 요청을 검토합니다.
- 서버 로그에서 요청 결과를 검토합니다.
- 서버에서 요청의 결과를 수신한 클라이언트의 결과를 검토합니다.
인증 문제의 원인을 확인할 수 없는 경우:
IdM 서버 및 IdM 클라이언트에서 최근에 생성한 SSSD 로그를 수집합니다. 호스트 이름 또는 역할에 따라 레이블을 지정합니다.
sssctl logs-fetch sssd-logs-server-Mar29.tar
[root@server ~]# sssctl logs-fetch sssd-logs-server-Mar29.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow sssctl logs-fetch sssd-logs-client-Mar29.tar
[root@client ~]# sssctl logs-fetch sssd-logs-client-Mar29.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat 기술 지원 케이스를 열고 다음을 제공합니다.
SSSD 디버그 로그:
-
sssd-logs-server-Mar29.tar서버에서 -
클라이언트에서
sssd-logs-client-Mar29.tar
-
로그에 해당하는 요청의 타임스탬프 및 사용자 이름을 포함한 콘솔 출력입니다.
date; su <idm_user>; date
[root@client sssd]# date; su <idm_user>; date Mon Mar 29 16:20:13 EDT 2021 su: user idm_user does not exist Mon Mar 29 16:20:14 EDT 2021Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.10. SSSD 백엔드에서 클라이언트 요청 추적 링크 복사링크가 클립보드에 복사되었습니다!
SSSD 프로세스는 비동기적으로 요청을 처리하고 다른 요청의 메시지를 동일한 로그 파일에 추가합니다. 백엔드 로그에서 클라이언트 요청을 추적하려면 고유한 요청 식별자 RID# <integer> 및 클라이언트 ID '[CID # <integer > ] 를 사용할 수 있습니다. 이러한 식별자는 로그를 분리하여 개별 요청을 처음부터 여러 SSSD 구성 요소의 로그 파일에서 완료할 수 있도록 지원합니다.
사전 요구 사항
- 디버그 로깅을 활성화했으며 IdM 클라이언트에서 요청이 제출되었습니다.
-
root권한이 있습니다.
절차
SSSD 로그 파일을 검토하려면
less유틸리티를 사용하여 로그 파일/var/log/sssd/sssd_<domain_name>.log를 엽니다. 예를 들면 다음과 같습니다.less /var/log/sssd/sssd_example.com.log
[root@server ~]# less /var/log/sssd/sssd_example.com.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 클라이언트 요청에 대한 정보는 SSSD 로그를 검토합니다.
(2021-07-26 18:26:37): [be[testidm.com]] [dp_req_destructor] (0x0400): [RID#3] Number of active DP request: 0 (2021-07-26 18:26:37): [be[testidm.com]] [dp_req_reply_std] (0x1000): [RID#3] DP Request AccountDomain #3: Returning [Internal Error]: 3,1432158301,GetAccountDomain() not supported (2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): [RID#4] DP Request Account #4: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001]. (2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): [RID#4] Number of active DP request: 1
(2021-07-26 18:26:37): [be[testidm.com]] [dp_req_destructor] (0x0400): [RID#3] Number of active DP request: 0 (2021-07-26 18:26:37): [be[testidm.com]] [dp_req_reply_std] (0x1000): [RID#3] DP Request AccountDomain #3: Returning [Internal Error]: 3,1432158301,GetAccountDomain() not supported (2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): [RID#4] DP Request Account #4: REQ_TRACE: New request. [sssd.nss CID #1] Flags [0x0001]. (2021-07-26 18:26:37): [be[testidm.com]] [dp_attach_req] (0x0400): [RID#4] Number of active DP request: 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD 로그 파일의 이 샘플 출력은 두 개의 다른 요청에 대한 고유 식별자
RID#3및RID#4를 보여줍니다.
그러나 SSSD 클라이언트 인터페이스에 대한 단일 클라이언트 요청은 백엔드에서 여러 요청을 트리거하는 경우가 많으며 이로 인해 백엔드의 클라이언트 요청과 요청 간에 1-to-1의 상관 관계가 아닙니다. 백엔드의 여러 요청에는 RID 번호가 다르지만 각 초기 백엔드 요청에는 고유한 클라이언트 ID가 포함되어 있으므로 관리자는 여러 RID 번호를 단일 클라이언트 요청에 대해 추적할 수 있습니다.
다음 예제에서는 하나의 클라이언트 요청 [sssd.nss CID #1] 및 백엔드에서 생성된 여러 요청 [RID#5] 을 [RID#13]으로 보여줍니다.
12.11. 로그 분석기 툴을 사용하여 클라이언트 요청 추적 링크 복사링크가 클립보드에 복사되었습니다!
SSSD(System Security Services Daemon)에는 여러 SSSD 구성 요소의 로그 파일에서 완료할 때까지 요청을 추적하는 데 사용할 수 있는 로그 구문 분석 도구가 포함되어 있습니다.
12.11.1. 로그 분석기 툴의 작동 방식 링크 복사링크가 클립보드에 복사되었습니다!
로그 구문 분석 툴을 사용하면 여러 SSSD 구성 요소의 로그 파일에서 SSSD 요청을 처음부터 끝까지 추적할 수 있습니다. sssctl analyze 명령을 사용하여 Analyzer 툴을 실행합니다.
로그 분석기 툴을 사용하면 SSSD에서 NSS 및 PAM 문제를 해결하고 SSSD 디버그 로그를 보다 쉽게 검토할 수 있습니다. SSSD 프로세스에서 특정 클라이언트 요청과 관련된 SSSD 로그를 추출하고 출력할 수 있습니다.
SSSD는 사용자 인증(su,ssh) 정보와 별도로 사용자 및 그룹 ID 정보(id,getent)를 추적합니다. NSS 응답자의 클라이언트 ID(CID)는 PAM 응답자의 CID와 독립적이며 NSS 및 PAM 요청을 분석할 때 중복되는 숫자가 표시됩니다. sssctl analyze 명령과 함께 --pam 옵션을 사용하여 PAM 요청을 검토합니다.
SSSD 메모리 캐시에서 반환된 요청은 기록되지 않으며 로그 분석기 툴에서 추적할 수 없습니다.
12.11.2. 로그 분석기 툴 실행 링크 복사링크가 클립보드에 복사되었습니다!
로그 분석기 툴을 사용하여 SSSD에서 클라이언트 요청을 추적하고 분석합니다.
사전 요구 사항
-
로그 구문 분석 기능을 활성화하려면
debug_level을[$responder]섹션에서 최소 7로 설정하고/etc/sssd/sssd.conf파일의[domain/$domain]섹션을 설정해야 합니다. -
분석할 로그는 RHEL 8.5 이상에서 SSSD인
libtevent체인 ID 지원을 사용하여 구축된 SSSD의 호환 버전이어야 합니다.
절차
목록모드에서 로그 분석기 도구를 실행하여 추적 중인 요청의 클라이언트 ID를 확인하고 자세한 출력을 표시하려면-v옵션을 추가합니다.sssctl analyze request list -v
# sssctl analyze request list -vCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSSD에 수행된 최근 클라이언트 요청의 상세 목록이 표시됩니다.
참고PAM 요청을 분석하는 경우
--pam옵션을 사용하여sssctl analyze request list명령을 실행합니다.show [unique 클라이언트 ID]옵션과 함께 로그 Analyzer 툴을 실행하여 지정된 클라이언트 ID 번호와 관련된 로그를 표시합니다.sssctl analyze request show 20
# sssctl analyze request show 20Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 로그 파일에 대해 로그 Analyzer 툴을 실행할 수 있습니다. 예를 들면 다음과 같습니다.
sssctl analyze --logdir=/tmp/var/log/sssd request list
# sssctl analyze --logdir=/tmp/var/log/sssd request listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
12.12. 추가 리소스 링크 복사링크가 클립보드에 복사되었습니다!
- 일반 SSSD 디버깅 절차 (Red Hat Knowledgebase)
13장. Single Sign-On의 애플리케이션 구성 링크 복사링크가 클립보드에 복사되었습니다!
SSO(Single Sign-On)는 단일 로그인 절차를 통해 여러 시스템에 로그인할 수 있는 인증 스키마입니다. Kerberos 티켓, SSL 인증 또는 토큰을 사용자 인증 수단으로 사용하도록 브라우저 및 이메일 클라이언트를 구성할 수 있습니다.
서로 다른 애플리케이션의 구성은 다를 수 있습니다. 이 장에서는 Mozilla Thunderbird 이메일 클라이언트와 Mozilla Firefox 웹 브라우저에 대한 SSO 인증 스키마를 예로 구성하는 방법을 보여줍니다.
13.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
다음 애플리케이션을 설치했습니다.
- Mozilla Firefox 버전 88
- Mozilla Thunderbird 버전 78
13.2. Single Sign-On에 Kerberos를 사용하도록 Firefox 구성 링크 복사링크가 클립보드에 복사되었습니다!
인트라넷 사이트 및 기타 보호 웹 사이트에 대해 SSO(Single Sign-On)에 Kerberos를 사용하도록 Firefox를 구성할 수 있습니다. 이렇게 하려면 먼저 Kerberos 자격 증명을 해당 KDC(키 배포 센터)에 보내도록 Firefox를 구성해야 합니다.
Kerberos 자격 증명을 전달하도록 Firefox를 구성한 후에도 유효한 Kerberos 티켓이 필요합니다. Kerberos 티켓을 생성하려면 kinit 명령을 사용하고 KDC에서 사용자의 사용자 암호를 제공합니다.
[jsmith@host ~] $ kinit Password for jsmith@EXAMPLE.COM:
[jsmith@host ~] $ kinit
Password for jsmith@EXAMPLE.COM:
절차
-
Firefox의 주소 표시줄에서
about:config를 입력하여 현재 구성 옵션 목록을 표시합니다. -
필터 필드에
negotiate를 입력하여 옵션 목록을 제한합니다. - network.negotiate-auth.trusted-uris 항목을 두 번 클릭합니다.
앞의 기간(.)을 포함하여 인증할 도메인의 이름을 입력합니다. 여러 도메인을 추가하려면 쉼표로 구분된 목록에 입력합니다.
그림 13.1. 수동 Firefox 설정
13.3. Firefox에서 인증서 보기 링크 복사링크가 클립보드에 복사되었습니다!
Mozilla Firefox에서 저장된 인증서를 보고 인증 설정을 확인할 수 있습니다.
절차
Mozilla Firefox에서 Firefox 메뉴를 열고 환경 설정을 선택합니다.
왼쪽 패널에서 개인 정보 및 보안 섹션을 선택합니다.
- 인증서 섹션까지 아래로 스크롤합니다.
인증서 보기를 클릭하여 인증서 관리자를 엽니다.
13.4. Firefox에서 CA 인증서 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
인증서를 Mozilla Firefox로 가져와 보안 연결을 위해 해당 인증서를 사용하는 웹사이트, 서버 또는 애플리케이션에 대한 신뢰를 구축할 수 있습니다.
사전 요구 사항
- 장치에 CA 인증서가 있습니다.
절차
- 인증서 관리자를 엽니다.
Authorities 탭을 선택하고 Import 를 클릭합니다.
그림 13.2. Firefox에서 CA 인증서 가져오기
- 장치에서 다운로드한 CA 인증서를 선택합니다.
13.5. Firefox에서 인증서 신뢰 설정 편집 링크 복사링크가 클립보드에 복사되었습니다!
Mozilla Firefox에서 인증서를 신뢰하는 방식을 변경할 수 있습니다.
사전 요구 사항
- 인증서를 가져왔습니다.
절차
- 인증서 관리자를 엽니다.
- Authorities 탭에서 적절한 인증서를 선택하고 Edit Trust 를 클릭합니다.
인증서 신뢰 설정을 편집합니다.
그림 13.3. Firefox에서 인증서 신뢰 설정 편집
13.6. Firefox에서 인증을 위한 개인 인증서 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
개인 인증서를 웹 사이트 및 서비스에 대한 인증을 가져올 수 있습니다.
사전 요구 사항
- 개인 인증서가 장치에 저장되어 있습니다.
절차
- 인증서 관리자를 엽니다.
인증서 탭을 선택하고 가져오기 를 클릭합니다.
그림 13.4. Firefox에서 인증용 개인 인증서 가져오기
- 컴퓨터에서 적절한 인증서를 가져옵니다.
13.7. Thunderbird에서 인증서 보기 링크 복사링크가 클립보드에 복사되었습니다!
Mozilla Thunderbird에서 인증서를 보고 이메일 클라이언트의 보안 설정을 관리할 수 있습니다.
절차
Thunderbird에서 메인 메뉴를 열고 환경 설정을 선택합니다.
그림 13.5. 메뉴에서 기본 설정 선택
왼쪽 패널에서 개인 정보 및 보안 섹션을 선택합니다.
그림 13.6. 보안 섹션 선택
- 인증서 섹션까지 아래로 스크롤합니다.
인증서 관리를 클릭하여 인증서 관리자를 엽니다.
그림 13.7. 인증서 관리자 열기
13.8. Thunderbird에서 인증서 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Mozilla Thunderbird 이메일 클라이언트에서 인증서를 가져올 수 있습니다.
사전 요구 사항
- 장치에 CA 인증서가 저장되어 있습니다.
절차
- 인증서 관리자를 엽니다.
Authorities 탭을 선택하고 Import 를 클릭합니다.
그림 13.8. Thunderbird에서 CA 인증서 가져오기
- 다운로드한 CA 인증서를 선택합니다.
13.9. Thunderbird에서 인증서 신뢰 설정 편집 링크 복사링크가 클립보드에 복사되었습니다!
Mozilla Thunderbird 이메일 클라이언트에서 인증서 신뢰 설정을 편집할 수 있습니다.
사전 요구 사항
- 인증서를 가져왔습니다.
절차
- 인증서 관리자를 엽니다.
- Authorities 탭에서 적절한 인증서를 선택하고 Edit Trust 를 클릭합니다.
인증서 신뢰 설정을 편집합니다.
그림 13.9. Thunderbird의 인증서 신뢰 설정 편집
13.10. Thunderbird에서 개인 인증서 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Mozilla Thunderbird 이메일 클라이언트에서 개인 인증을 위한 인증서를 가져올 수 있습니다.
사전 요구 사항
- 개인 인증서가 장치에 저장되어 있습니다.
절차
- 인증서 관리자를 엽니다.
인증서 탭에서 가져오기 를 클릭합니다.
그림 13.10. Thunderbird에서 인증을 위한 개인 인증서 가져오기
- 컴퓨터에서 필요한 인증서를 가져옵니다.
- 인증서 관리자를 닫습니다.
메인 메뉴를 열고 계정 설정을 선택합니다.
그림 13.11. 메뉴에서 계정 설정 선택
계정 이메일 주소 아래의 왼쪽 패널에서 엔드 투 엔드 암호화를 선택합니다.
엔드 투 엔드 암호화 섹션 선택.
- S/MIME 섹션에서 첫 번째 선택 버튼을 클릭하여 메시지에 서명하는 데 사용할 개인 인증서를 선택합니다.
S/MIME 섹션에서 두 번째 선택 버튼을 클릭하여 메시지를 암호화하고 암호 해독하기 위한 개인 인증서를 선택합니다.
서명 및 암호화/암호 해독을 위한 인증서 선택.
유효한 인증서를 가져오는 것을 잊어버린 경우 S/MIME 인증서 관리 옵션을 사용하여 인증서 관리자를 직접 열 수 있습니다.