LDAP 사용: SSH로 로그인하고 autofs로 Samba 홈 디렉토리를 마운트하는 방법은 무엇입니까?

LDAP 사용: SSH로 로그인하고 autofs로 Samba 홈 디렉토리를 마운트하는 방법은 무엇입니까?

저는 MacOS와 Synology(내 NAS)의 특별한 단점을 고려하여 MacOS, iOS 및 Linux 네트워크에서 LDAP 기반 인증을 설정하는 데 시간을 보냈습니다. SSH 로그인(SSH 키 등)이 작동하고 Samba 공유 마운트가 작동합니다. 모든 것이 매우 까다로웠으며 이제 나는 예상했던 것보다 LDAP에 대해 더 많이 알고 있습니다.

하지만...

(적어도 이론적으로는) 내 네트워크의 모든 컴퓨터에 로그인할 수 있는 지점에 도달한 후에는 사용자가 어디에서나 동일한 홈 디렉터리에 액세스할 수 있으면 좋겠다고 생각했습니다. 문제 없습니다. autofsLDAP에서도 관리할 수 있습니다! 아니면 그렇게 생각했는데...

나는 Samba 홈 디렉토리를 설정하기 위해 다음과 같은 것을 시도하고 있습니다 autofs.

cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,username=&,uid=&,gid=& ://s-sy-00.local/home

일부 배경:

  1. s-sy-00.local홈 디렉터리가 위치할 Synology NAS입니다.
  2. /homeSynology가 에 정의된 사용자에 대해 제공하는 홈 디렉터리 공유의 UNC입니다 username=.

SSH를 사용하여 원격 컴퓨터에 로그인하면 문제가 시작됩니다. autofs사용자의 홈 디렉토리를 마운트하려고 시도하지만 사용자의 비밀번호가 필요합니다. password=해당 줄의 매개변수 에 비밀번호를 입력하거나 매개변수 automountInformation와 함께 전달하는 자격 증명 파일에 사용자 이름과 비밀번호를 입력할 수 있습니다 credentials=. 두 접근 방식 모두 복잡성( automount각 사용자에 대한 항목)과 중복(LDAP와 자격 증명 파일 또는 LDAP의 두 위치에서 동일한 사용자 이름과 비밀번호 automount) 이 추가됩니다 posixUser.

이 문제를 처리하는 표준 방법이 있습니까? 내 검색 엔진 기술로는 아직 아무 것도 나오지 않았습니다.

제가 보기에는 세 가지 가능한 해결책이 있는 것 같습니다.

  1. 다른 사람에게는 분명하지만 나에게는 그렇지 않은 것;
  2. SSH 키를 사용하여 SSHFS 공유에서 사용자별 자격 증명 파일(LDAP에서 동적으로 생성됨)을 마운트합니다.
  3. 본격적인 SSO를 위해 Kerberos를 사용합니다.

저는 1번을 선호합니다. :-) 저는 Kerberos를 싫어합니다. Kerberos는 너무 지나친 것 같고 확실히 상대적으로 복잡합니다.

새해를 순조롭게 시작할 수 있도록 지혜로운 말을 해줄 수 있는 사람이 있습니까?

답변1

글쎄, 당신이 Linux를 사용하고 있다면비밀번호초기 로그인을 위한 인증을 수행한 다음 mount.cifs가 비밀번호를 선택할 수 있는 커널 키링에 비밀번호를 저장하는 PAM 모듈을 가질 수 있습니다. cifs-utils가 현재 제공되는지 100% 확신할 수는 없지만 cifscreds동일한 기능을 수행하는 CLI 도구가 있습니다 .

그래도 개인적으로는 LDAP 대신 Kerberos 인증을 설정하겠습니다. (즉, LDAP가 디렉토리 서비스 작업만 수행하도록 놔두는 것입니다.) 전체적인 Kerberos는 LDAP와 같습니다. 외부에서 보면 복잡해 보이지만 자세히 보면 매우 단순합니다. 단, 수백만 가지 특이한 점과 극단적인 경우 및 1980년대로 거슬러 올라가는 이상한 결정으로 인해 다시 복잡해졌습니다.

이는 SMB 관련 PAM 해킹보다 좀 더 다재다능할 것입니다. 동일한 티켓을 SMB, NFS, LDAP, HTTP, SSH에 액세스하는 데 사용할 수 있습니다... 기존 LDAP 서버를 KDC 데이터베이스 백엔드로 재사용하여 다음을 얻을 수도 있습니다. kprop을 처리할 필요 없이 무료로 복제할 수 있습니다.

mount.cifs의 경우,둘 다Kerberos 및 cifscreds는 NFS와 유사한 동작을 제공하는 옵션으로 공유를 마운트할 때 사용하도록 고안되었습니다. 즉 multiuser, 여러 사용자가 동일한 SMB 마운트에 액세스할 수 있으며 커널은 자동으로 각 uid에 대해 올바른 SMB 자격 증명을 사용합니다.

그리고 SSH 공개 키 인증의 경우 자동으로 수행할 수 있는 작업이 많지 않습니다. 자격 증명 파일을 검색하여 와 함께 사용하거나 cifscreds자격 증명 파일을 검색하여 와 함께 사용하는 것입니다 kinit. 다시 말하지만 후자가 더 다양하다고 생각합니다.

답변2

@user1686의 답변이 옳다고 생각하지만, Kerberos 솔루션으로 이동할 시간을 찾을 수 있을 때까지 제가 찾은 해결 방법을 공유하고 싶습니다.

  1. 제가 전화한 NAS에 사용자를 생성 smbowner하고 비밀번호를 할당했습니다. smbownerNAS에 관리자 권한을 부여했는데 , 이는 SMB 공유를 마운트할 수 있다는 의미입니다.

  2. SMB 공유를 마운트하는 데 필요한 시스템에 Samba 자격 증명 파일을 만들었습니다. 넣어봤는데 /etc/samba/credentials/s-sy-00다음과 같습니다.

username=smbowner
password=whatever

자격 증명 파일에는 도메인 정의가 포함되어 있지 않습니다.

  1. LDAP 항목을 다음으로 변경했습니다.
cn=*,ou=auto.home,cn=automount,cn=etc,dc=home,dc=arpa
cn: *
objectClass: automount
objectClass: top
automountInformation: -fstype=cifs,vers=3.0,domain=HOME,rw,credentials=/etc/samba/credentials/s-sy-00,uid=&,gid=& ://s-sy-00.local/&

방어 측면에서 보면 이 솔루션이 효과가 있다고 말할 수 있습니다. 하지만 저보다 더 적대적인 환경에서 이 솔루션이 얼마나 안전한지는 잘 모르겠습니다.

어떻게 작동하나요? smbownerNAS에 공유를 마운트할 수 있는 충분한 권한이 있습니다. uid=&및 매개 gid=&변수는 로컬 사용자가 공유에 액세스할 수 있도록 보장합니다. 나중에 NAS의 공유에 대한 설정 권한을 실험해 보겠습니다.

아마도 이것은 다른 사람에게 도움이 될 것입니다.

스티브

관련 정보