DR

DR

DR

Quero que um cliente Windows possa acessar um compartilhamento de samba usando uma credencial freeipa.

Problema

Isso ocorre no superusuário e não no servidor porque não é um ambiente de produção de trabalho; esta é minha rede doméstica. Existem muitos guias para usar o samba GNU/Linux para interoperabilidade com o Windows. Mas não quero ter confiança entre domínios (meu domínio do Windows AD acabará desaparecendo).

Posso configurar o samba para apontar para freeipa (ipasam? ldapsam?) para que no meu cliente Windows (que mantenho por perto para jogos) eu possa usar "[e-mail protegido]"para conectar-se ao \linuxserver\sharename?

Eu sei como configurar o samba para usar um domínio AD existente para um host GNU/Linux associado ao domínio, mas não é isso que estou fazendo aqui. Meu host desta vez é o controlador de domínio freeipa, mas posso transformar um cliente freeipa em meu servidor de arquivos. Eu tenho nfs para outros hosts Linux, mas minha pesquisa rápida em "nfs windows" não mostrou nada que fosse melhor/mais fácil do que meu objetivo desejado aqui.

Possibilidades

  • Posso usar back-ends ipasam ou ldapsam?
  • Posso usar o samba como um "controlador de domínio do Windows" e fazer com que ele confie no domínio ipa e mapeie os usuários?

atualização em 7 de setembro

eu encontreihttps://techslaves.org/2011/08/24/freeipa-and-samba-3-integration/e segui os passos que mostram como modificar o esquema do freeipa para incluir propriedades do samba. Mas ainda estou recebendo erros: NT_STATUS_WRONG_PASSWORD.

Responder1

Após 8 meses, finalmente resolvi o problema!

Compartilhamento de samba com autenticação freeipa

O conjunto completo de informações está emhttps://bgstack15.wordpress.com/2017/05/10/samba-share-with-freeipa-auth/.

No controlador freeipa:

yum -y install ipa-server-trust-ad
ipa-adtrust-install --add-sids

Após executar --add-sids, os usuários precisam redefinir suas senhas, para que o freeipa gere o valor ipaNTHash de suas senhas.

No servidor samba:

yum -y install ipa-server-trust-ad

Abra as portas do firewall solicitadas (TCP 135.138.139.445.1024-1300; UDP 138.139.389.445)

Permitir que o samba leia senhas

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

Prepare o samba conf e reinicie o 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

informação relacionada