Kerberos 티켓을 사용하는 Samba 공유용 AutoFS

Kerberos 티켓을 사용하는 Samba 공유용 AutoFS

Debian Stretch에 Samba AD를 설정했습니다. 다른 확장 클라이언트 노드는 AD 자격 증명을 사용하여 인증할 수 있습니다.

도메인 사용자는 클라이언트 노드에 대해 제한된 권한을 가지므로 클라이언트에 아무것도 설치할 수 없습니다.

클라이언트 측에서는 다음 두 가지를 테스트했습니다.

  1. 비밀번호로 설치:

    # mount -t cifs \\\\fileserver.my.org\\share /mnt -o user=domainUser1

    그런 다음 도메인 비밀번호를 입력하라는 메시지가 표시되었습니다 domainUser1. 그런 다음 공유가 마운트됩니다 root.

  2. Kerberos 티켓을 사용하여 설치:

    # kinit domainUser1

    # mount -t cifs \\\\fileserver.my.org\\share /mnt -o sec=krb5

    klist이렇게 하면 현재 세션에 Kerberos 티켓(확인됨)이 있는 경우 공유를 마운트할 수 있습니다.

수동 설치로 모든 것이 잘 작동합니다. AutoFS를 사용하여 공유를 마운트하려고 하면 문제가 발생합니다.

/etc/auto.master내용은 다음과 같습니다.

+디렉토리: /etc/auto.master.d

+자동 마스터

/cifs /etc/auto.cifs

그리고 /etc/auto.cifs썼다:

Share-fstype=cifs,multiuser,cruid=${UID},sec=krb5 ://fileserver.my.org/share

지난 한 시간 동안 AutoFS에 대해 읽은 내용에 따르면 이것이 작동할 것입니다. 하지만 어떤 이유에서인지 /cifs/폴더는 항상 비어 있습니다. /var/log/messages시도 했지만 /var/log/syslog로그에서 주목할만한 내용을 찾지 못했습니다.

답변1

AutoFS 디버깅

autofs를 디버그하려면 서비스를 중지하고 명령줄에서 실행합니다.

sudo service autofs stop
sudo automount -f -d

또는 디버그 로깅을 켜십시오.

/etc/autofs.conf를 편집하고 로깅을 "debug" 또는 "verbose"로 설정합니다.

logging = "debug"

이것저것 가지고 놀지만..실제로는 기본값으로 두기에 충분한 세부 정보가 있습니다(예: 해당 줄에 주석 처리).

Kerberos 티켓 파일 이름이 올바른지 확인하세요.

이것이 우리에게 두통을 주는 것입니다. 생성된 Kerberos 키 파일의 파일 이름을 수정할 때까지 수년 동안 AutoFS는 Kubuntu 18.04에서 실행되지 않았습니다. daemon.log를 보면 검색 중인 파일이 /tmp/krb*에 표시된 파일과 이름이 같은지 확인하세요.

이는 daemon.log의 모습이며 압축된 파일 이름이 무엇인지 확인할 수 있습니다.

May 14 17:08:29 computer123 cifs.upcall: get_existing_cc: default ccache is FILE:/tmp/krb5cc_12345678

나는 위의 내용이 /etc/autofs.conf의 주석 처리된 로그 줄인 기본 로깅 옵션을 사용하고 있다고 확신합니다. 실제로 소위 장황한 옵션 중 하나가 나타나지 않습니다..(?!)

해결 방법 - /etc/sssd/sssd.conf를 편집하고 [domain/yourAD_ServerName] 아래에 다음 콘텐츠를 추가해야 합니다.

krb5_ccname_template=FILE:%d/krb5cc_%U

이는 AutoFS에 필요한 파일 이름을 사용하여 kerboros 티켓을 생성하도록 sssd에 지시합니다. 변경 사항이 적용되기 전에 재부팅해야 했습니다(예, sssd-secrets, sssd, autofs 재부팅을 시도했습니다).

관련 정보