Samba AD는 Linux 클라이언트에서 도메인 사용자에 로그인할 수 없습니다.

Samba AD는 Linux 클라이언트에서 도메인 사용자에 로그인할 수 없습니다.

저는 지난 2주 동안 홈 네트워크에서 Samba를 Active Directory 컨트롤러로 사용하려고 노력해 왔습니다.

우분투 서버 22.04에 삼바를 설치하기 위해 몇 가지 가이드와 비디오를 따랐지만,이 페이지대부분을 다룹니다. Windows 및 Linux 시스템을 도메인에 가입시킬 수 있습니다. 을 사용하여 연결된 컴퓨터를 나열할 수 있습니다 samba-tool computer list.

삼바 도구를 사용하여 사용자와 그룹을 성공적으로 만들었습니다. Windows 클라이언트에서 이 계정을 사용하여 로그인할 수 있습니다.

Linux(ubuntu 23.04 및 23.10)에서 도메인에 가입할 수 있습니다.우분투 공식 팔로우문서가 있지만 로그인할 수 없습니다.

bp@bas-hp:samba (master) % sudo login                   
bas-hp login: [email protected]
Password: 

Login incorrect
bas-hp login: [email protected]
Password: 

Login incorrect

Kerberos 티켓을 만들 수 있습니다

bp@bas-hp:samba (master) % klist           
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]

Valid starting     Expires            Service principal
16-04-24 22:26:57  17-04-24 08:26:57  krbtgt/[email protected]
    renew until 17-04-24 22:26:53

내가 따르려고 한 문서의 테스트 섹션 결과는 잘 시작된 것 같습니다.

bp@legion-ubuntu:~ % getent passwd [email protected]
[email protected]:*:1494001108:1494000513:Bas Prins:/home/[email protected]:/bin/bash
bp@legion-ubuntu:~ % getent passwd [email protected] 
[email protected]:*:1494001104:1494000513:bp:/home/[email protected]:/bin/bash

하지만 명령을 실행하면 다음 groups과 관련된 몇 가지 결과가 표시됩니다.

bp@legion-ubuntu:~ % groups [email protected]       
[email protected] : domain [email protected] denied rodc password replication [email protected] [email protected] enterprise [email protected] domain [email protected]
bp@legion-ubuntu:~ % groups [email protected]
[email protected] : domain [email protected] denied rodc password replication [email protected] [email protected] enterprise [email protected] domain [email protected]

"rodc 비밀번호 복사 거부"가 무엇을 의미하는지, 그리고 문제를 해결해야 하는지 여부/방법을 모두 검색했습니다.


sssd.conf를 완료하세요.

[sssd]
domains = sb.lan
config_file_version = 2
services = nss, pam

[domain/sb.lan]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = SB.LAN
realmd_tags = manages-system joined-with-adcli
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = sb.lan
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad
timeout = 20
ldap_uri = ldap://dc.sb.lan
ldap_search_base = dc=sb,dc=lan
auth_provider = krb5
krb5_server = dc.sb.lan
krb5_passwd = dc.sb.lan
krb5_validate = True

Samba/AD에 대해 더 많이 아는 사람이 이 문제를 가장 잘 해결할 수 있는 방법에 대해 조언을 해줄 수 있기를 바랍니다. 근본 원인에 대한 통찰력을 얻으려면 어떤 도구를 사용할 수 있습니까?

업데이트 2

우분투 클라이언트 시스템의 sssd.conf에 다음 줄을 추가한 후

ad_gpo_access_control = permissive

마침내 명령줄을 통해 로그인할 수 있게 되었습니다 sudo login. 그런데 아쉽게도 로그인 성공 후 제가 생각하는 정책을 다운로드 받으려고 했으나 실패합니다.

Last login: Wed Apr 17 14:15:01 CEST 2024 on pts/2
Applying machine settings
ERROR Error from server: error while updating policy: can't get policies for "legion-ubuntu": failed to retrieve the list of GPO (exited with 1): exit status 1
Failed to bind - LDAP client internal error: NT_STATUS_INVALID_PARAMETER
Failed to connect to 'ldap://dc.sb.lan' with backend 'ldap': LDAP client internal error: NT_STATUS_INVALID_PARAMETER
Failed to open session: (1, 'LDAP client internal error: NT_STATUS_INVALID_PARAMETER') 

Failure setting user credentials

나는 그동안 이 문제를 해결하기 위해 노력하고 있으며 물론 누군가가 어디에서 무엇을 고쳐야 하는지 말해 줄 수 있기를 바랍니다 ;-). 이 문제를 스스로 알아낼 수 있으면 질문을 업데이트하겠습니다.

답변1

클라이언트 PC에 Ubuntu를 다시 설치하고 모든 단계를 다시 확인한 후 문제가 성공적으로 해결되었습니다. 이제 Samba AD 서버에 로그인할 수 있습니다.

내가 해야 할 두 가지 일은 공식 문서와 달랐습니다.

  • 참여하기 전에 krb5.conf 수정
  • 가입 후 sssd.conf 패치

첫 번째 단계로 우분투 클라이언트의 krb5에서 역방향 DNS를 비활성화해야 합니다.

[libdefaults]
    rdns = false

다음으로 도메인에 성공적으로 가입한 후 sudo realm -v join <domain-name>우분투 클라이언트의 sssd.conf에 다음 줄을 추가해야 했습니다.

# THIS IS MANDATORY to fix "permission denied" when PAM tries to authenticate
# https://serverfault.com/questions/872542/debugging-sssd-login-pam-sss-system->
# suggested work around in question
ad_gpo_access_control = permissive

일단 그렇게하고 sssd를 다시 시작했습니다.

sudo systemctl restart sssd

로그인할 수 있어요

bp@legion-ubuntu:~ % sudo login                   
legion-ubuntu.sb.lan login: SB\bp
Password: 
Welcome to Ubuntu 23.04 (GNU/Linux 6.2.0-37-generic x86_64)

더 이상 오류가 없습니다. 로컬 사용자로 로그아웃하면 마침내 AD 사용자로 로그인할 수 있습니다.

관련 정보