TL;DR
Windows 클라이언트가 freeipa 자격 증명을 사용하여 Samba 공유에 액세스할 수 있기를 원합니다.
문제
이는 작업 프로덕션 환경이 아니기 때문에 serverfault가 아닌 수퍼유저에 관한 것입니다. 이게 내 홈 네트워크야. Windows와의 상호 운용성을 위해 GNU/Linux 삼바를 사용하는 방법에 대한 많은 가이드가 있습니다. 하지만 저는 도메인 간 신뢰를 갖고 싶지 않습니다(내 Windows AD 도메인은 결국 사라질 것입니다).
freeipa(ipasam? ldapsam?)를 가리키도록 삼바를 구성하여 내 Windows 클라이언트(게임을 위해 계속 사용)에서 "[이메일 보호됨]"\linuxserver\sharename에 연결하시겠습니까?
도메인에 가입된 GNU/Linux 호스트에 대해 기존 AD 도메인을 사용하도록 Samba를 구성하는 방법을 알고 있지만 여기서는 해당 작업을 수행하지 않습니다. 이번에 내 호스트는 freeipa 도메인 컨트롤러이지만 freeipa 클라이언트를 내 파일 서버로 만들 수도 있습니다. 다른 Linux 호스트에 대한 nfs가 있지만 "nfs windows"에 대한 빠른 검색에서는 여기서 원하는 목표보다 더 좋고/쉬운 항목이 표시되지 않았습니다.
가능성
- ipasam 또는 ldapsam 백엔드를 사용할 수 있나요?
- Samba를 "Windows 도메인 컨트롤러"로 사용하고 ipa 도메인을 신뢰하고 사용자를 매핑하도록 할 수 있습니까?
9월 7일 업데이트
나는 찾았다https://techslaves.org/2011/08/24/freeipa-and-samba-3-integration/삼바 속성을 포함하도록 freeipa의 스키마를 수정하는 방법을 보여주는 단계를 따랐습니다. 하지만 여전히 NT_STATUS_WRONG_PASSWORD 오류가 발생합니다.
답변1
8개월만에 드디어 문제를 해결했습니다!
freeipa 인증으로 Samba 공유
전체 정보 세트는 다음 위치에 있습니다.https://bgstack15.wordpress.com/2017/05/10/samba-share-with-freeipa-auth/.
freeipa 컨트롤러에서:
yum -y install ipa-server-trust-ad
ipa-adtrust-install --add-sids
--add-sids를 실행한 후 freeipa가 비밀번호의 ipaNTHash 값을 생성하려면 사용자는 비밀번호를 재설정해야 합니다.
삼바 서버에서:
yum -y install ipa-server-trust-ad
요청한 방화벽 포트를 엽니다(TCP 135,138,139,445,1024-1300; UDP 138,139,389,445).
삼바가 비밀번호를 읽을 수 있도록 허용
ipa permission-add "CIFS server can read user passwords" \
--attrs={ipaNTHash,ipaNTSecurityIdentifier} \
--type=user --right={read,search,compare} --bindtype=permission
ipa privilege-add "CIFS server privilege"
ipa privilege-add-permission "CIFS server privilege" \
--permission="CIFS server can read user passwords"
ipa role-add "CIFS server"
ipa role-add-privilege "CIFS server" --privilege="CIFS server privilege"
ipa role-add-member "CIFS server" --services=cifs/host2.vm.example.com
Samba conf를 준비하고 Samba를 다시 시작하십시오.
tf=/etc/samba/smb.conf
touch "${tf}"; chmod 0644 "${tf}"; chown root:root "${tf}"; restorecon "${tf}"
cat < "${tf}"
[global]
debug pid = yes
realm = VM.EXAMPLE.COM
workgroup = VM
domain master = Yes
ldap group suffix = cn=groups,cn=accounts
ldap machine suffix = cn=computers,cn=accounts
ldap ssl = off
ldap suffix = dc=vm,dc=example,dc=com
ldap user suffix = cn=users,cn=accounts
log file = /var/log/samba/log
max log size = 100000
domain logons = Yes
registry shares = Yes
disable spoolss = Yes
dedicated keytab file = FILE:/etc/samba/samba.keytab
kerberos method = dedicated keytab
#passdb backend = ipasam:ldapi://%2fvar%2frun%2fslapd-VM-EXAMPLE-COM.socket
#passdb backend = ldapsam:ldapi://%2fvar%2frun%2fslapd-VM-EXAMPLE-COM.socket
passdb backend = ipasam:ldap://host2.vm.example.com ldap://host1.vm.example.com
security = USER
create krb5 conf = No
rpc_daemon:lsasd = fork
rpc_daemon:epmd = fork
rpc_server:tcpip = yes
rpc_server:netlogon = external
rpc_server:samr = external
rpc_server:lsasd = external
rpc_server:lsass = external
rpc_server:lsarpc = external
rpc_server:epmapper = external
ldapsam:trusted = yes
idmap config * : backend = tdb
ldap admin dn = cn=Directory Manager
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
EOFCONF
systemctl restart smb.service