Servidor de Arquivos Samba no Debian

Compartilhe:

servidor de arquivos samba no debian integrado com active directory compartilhando arquivos com clientes do ad

Aprenda a configurar um servidor de arquivos samba no debian com autenticação no active directory.

Em empresas ou organizações governamentais é comum encontrar servidores de arquivos (com o samba como solução) centralizando o armazenamento e sendo acessados a partir de computadores clientes.

O artigo vai ensinar a instalar o samba no debian e fazer todas as configurações necessárias para que o servidor de arquivos funcione como domain member.

Ao final, você terá um ambiente preparado para compartilhar arquivos, autenticando usuários em servidores controladores de domínio do active directory de forma segura.

Informações técnicas da infraestrutura utilizadas no artigo

Informações técnicas do servidor de arquivos samba:

Sistema Operacional: Debian versão 13

Endereço IP: 10.10.20.10/24 (O endereço IP já foi configurado no servidor)

Hostname: fileserver

Nome NetBIOS do servidor: fileserver (o mesmo que o hostname, deve ter no máximo 15 caracteres, preferencialmente alfanuméricos).

As informações técnicas do domínio usadas no tutorial durante o processo de configuração:

Nome do domínio: dlncloud.lan

Nome NetBIOS do domínio: dlncloud

IP do servidor controlador de domínio: 10.10.20.5/24

Caso ainda não tenha uma active directory instalado e configurado, recomendo a leitura do artigo completo que ensina a implementar um do ZERO.

Instalando samba no servidor de arquivos debian

Antes de fazer qualquer configuração é necessário primeiro instalar o samba e também pacotes de software usados na configuração do linux para haver comunicação com active directory.

A instalação do samba no debian é feita executando os comandos:

Explicação dos pacotes extras:

  • winbind – Este pacote instala o daemon “winbindd” usado para comunicação com o Active Directory.
  • libnss-winbind – Instala bibliotecas usadas pelo daemon “winbindd” para mapear e disponibilizar no linux os usuários e grupos do domínio.
  • krb5-user – Instala programas básicos para autenticação utilizando o protocolo Kerberos, o kerberos é usado para autenticação segura no active directory.
  • acl e attr – Permitem configurar e aplicar permissões avançadas em arquivos e diretórios compartilhados.

Após instalar o samba, configure o sistema para não iniciar o daemon samba, porque ele é usado somente quando precisa configurar o servidor como controlador de domínio do AD.

E configure os daemons smbd, nmbd e winbindd para serem iniciados durante o boot.

Configurações no debian para ingressar no domínio

O servidor de arquivos samba será configurado na função domain member, ou seja, uma máquina que faz parte de um domínio active directory.

E para funcionar na função domain member é necessário ingressar o servidor no domínio, configurando partes do sistema operacional e somente depois o samba.

Definir hostname e resolução do FQDN do servidor de arquivos

Primeiro defina o hostname, que também será o nome netbios do servidor. A recomendação é ter no máximo 15 caracteres (números, letras e hífen). No exemplo será fileserver.

Após configurar o hostname, edite o arquivo “/etc/hosts” para o FQDN do servidor de arquivos samba resolver para o seu endereço IP.

O FQDN é o nome do host (hostname) “.” (ponto) seguido do nome do domínio (no artigo é dlncloud.lan). Após a primeira linha adicione a seguinte configuração:

Após configurar, salve as alterações.

Configuração DNS para localizar controladores de domínio

O DNS é essencial para os clientes encontrarem o(s) servidor(es) controlador(es) de domínio.

No linux, o arquivo “/etc/resolv.conf” é usado para informar qual servidor dns deve ser consultado, por isso é necessário configura-lo.

Apague as configurações existentes e adicione novas e salve as modificações:

Na infraestrutura que está trabalhando, substitua “10.10.20.5” e “dlncloud.lan” pelo endereço IP do servidor controlador de domínio e nome do domínio respectivamente.

O debian assim como outras distribuições linux armazena no arquivo “/etc/nsswitch.conf” a ordem da resolução de nomes dns, por isso é necessário modificar-lo:

E deixe a linha que inicia com a palavra “hosts” configurada assim:

Sincronização de data e hora com DCs do domínio

Para a autenticação acontecer é necessário que a data e hora do cliente seja sincronizado com os DCs. O debian utiliza um software cliente NTP chamado systemd-timesyncd para sincronizar data e hora com servidores NTP.

Para configurar o systemd-timesyncd crie o diretório “/etc/systemd/timesyncd.conf.d/”:

E execute o seguinte comando:

A configuração define que o serviço NTP que será usado para atualizar a data e hora é o do servidor controlador de domínio, no exemplo do artigo é o “10.10.20.5”.

E para efetivar a configuração reinicie o serviço systemd-timesyncd:

Verifique no status da unit systemd-timesyncd.service se houve conexão e iniciou a sincronização:

Deverá aparecer no fim algo similar as mensagens destacadas em vermelho da imagem acima.

Configurando cliente kerberos para autenticação

Após fazer a sincronização de data e hora é possível configurar o arquivo “/etc/krb5.conf” para fazer a autenticação no servidor controlador de domínio usando o kerberos.

Renomeie o arquivo para criar uma cópia e crie um novo arquivo “/etc/krb5.conf”:

A configuração deve ficar como mostrado a seguir:

Substitua “DLNCLOUD.LAN” pelo nome real do domínio na infraestrutura que está trabalhando. Mas sempre mantendo em letras MAIÚSCULAS.

Salve as alterações e teste a comunicação com o comando kinit. Será solicitado a senha do usuário do AD passado como argumento para o comando kinit:

Se preferir, substitua administrator pelo nome de outra conta de usuário cadastrada no AD para testar a comunicação.

Ingressando no domínio AD o servidor de arquivos samba

Concluída as configurações no sistema operacional, é hora de configurar o servidor de arquivos samba para se comunicar com os servidores controladores de domínio e junto-lo ao domínio.

Renomeie o arquivo “/etc/samba/smb.conf” e em seguida crie um novo arquivo:

Adicione a seguinte configuração dentro do arquivo:

Substitua “DLNCLOUD” pelo nome NetBIOS do domínio e “DLNCLOUD.LAN” pelo nome do domínio da infraestrutura que está trabalhando.

Explicação dos parâmetros:

[global] → Seção global, recebe todas as configurações aplicadas ao samba e a todos os compartilhamentos. Qualquer seção abaixo é um compartilhamento.

workgroup → Recebe como valor o nome do grupo de trabalho. Mas quando configurado como domain member ou como active directory domain controller define o nome netbios do domínio.

security → Nível de segurança, define como o samba vai autenticar os usuários conectados aos seus serviços, incluindo os compartilhamentos. O valor ads, faz o samba tentar autenticar o usuário no banco de dados do active directory.

realm → Especifica o nome do reino kerberos, no caso é o nome do domínio, mas o valor deve ser definido em letras MAIÚSCULAS.

Para aprender mais sobre cada parâmetro é altamente recomendado a leitura do manual do arquivo smb.conf.

Salve as alterações e teste a configuração executando o comando testparm utilizando a opção “-s”:

Na saída do comando deve aparecer “Server role: ROLE_DOMAIN_MEMBER”, indicando que o samba foi configurado como um domain member.

Se na saída do comando testparm aparecer também:

Esse erro se dá por que não foi configurado um range para mapear os usuários e grupos do AD. Mas fique tranquilo(a), porque será resolvido ao configurar o idmap no arquivo “/etc/samba/smb.conf” em uma das próximas etapas.

Agora ingresse no domínio o servidor de arquivos samba executando o comando net. Utilize o nome de um usuário com privilégio no AD para juntar (join) o servidor ao domínio. No exemplo, estou utilizando a conta administrator:

Se apareceu na saída algo similar a: Joined FILESERVER to dns domain ‘dlncloud.lan’, significa que o servidor ingressou com sucesso no domínio.

Reinicie o servidor:

Após o servidor de arquivos samba reiniciar, autentique-se com usuário o root e teste a conexão com o servidor remoto:

A saída deve ser: “Join is OK”, que significa que o servidor de arquivos samba é membro do domínio.

Ajustes após ingressar no domínio

O DNS é essencial para o cliente se autenticar no domínio, para que as configurações de dns fiquem persistentes no debian instale o pacote “resolvconf” que será responsável por atualizar o “/etc/resolv.conf” a partir das configurações de placa de rede.

Em seguida edite o arquivo de configuração de placas de rede do debian “/etc/network/interfaces”:

E adicione as configurações: “dns-nameservers” e “dns-search”:

Substitua “10.10.20.5” pelo(s) endereço(s) IP do servidor(es) DC do domínio e “dlncloud.lan” pelo nome do domínio da infraestrutura da empresa que está trabalhando.

Para efetivar as configurações reinicie a unit networking.service:

Mapeando usuários e grupos do AD para serem usados no linux

No Active Directory, cada usuário e grupo possui um identificador único chamado SID (Security Identifier). Esse identificador é utilizado pelo Windows para controlar permissões e identificar objetos de forma exclusiva.

Já no Linux, as contas de usuários e grupos são identificadas por UID (User ID) e GID (Group ID).

Como o Linux não utiliza SIDs para identificar usuários e grupos, é necessário realizar um mapeamento entre o SID do Active Directory e os UIDs/GIDs do Linux para o sistema reconhecer os usuários, grupos do AD e aplicar as permissões aos compartilhamentos.

Para fazer o mapeamento no servidor de arquivos samba edite o arquivo “/etc/samba/smb.conf”.

Inclua as seguintes configurações na seção [global]:

Explicação dos parâmetros:

idmap config → Parâmetro que define informações para aplicar o mapeamento do SID de cada usuário e grupo do domínio para UID/GID no linux, ou seja, gera UIDs e GIDs para usuários e grupos do AD ser usados no linux.

O caractere “*” (Asterisco) indica que a configuração é aplicada ao domínio padrão (BUILTIN), a configuração para outros domínios são opcionais, assim o “*” faz o mapeamento para todos os domínios.

O valor “backend” após o “*:” configura o mecanismo usado pelo daemon winbind para fazer o mapeamento, no exemplo, é o “autorid”.

É importante você saber que ao usar o backend autorid os IDs (UIDs e GIDs) de usuários e grupos não serão iguais em todos os membros do domínio que usam o Samba.

O valor “range” após o “*:” configura o intervalo de UIDs e GIDs que os usuários e grupos do AD vão utilizar no linux.

winbind nss info → Controla como o daemon winbind recupera informações como shell e diretório home para os usuários do AD utilizarem no linux.

O valor “template” define que o shell e homedir serão atribuídos respectivamente pelos parâmetros “template shell” e “template homedir”.

template shell → Configura o shell que a conta de usuário do AD vai usar após o mapeamento.

template homedir → Configura o diretório home que a conta de usuário do AD vai usar após o mapeamento. O valor “%D” (nome do domínio) e “%U” (nome do usuário) são variáveis do samba.

Salve as configurações e para efetiva-las reinicie os daemons smbd e winbindd:

Para concluir a configuração e disponibilizar usuários e grupos de domínio para o sistema local, habilite a biblioteca do winbind para o serviço de troca de nomes (NSS). Edite o arquivo “/etc/nsswitch.conf”:

Se as linhas que iniciam com “passwd” e “group” estiverem assim:

Substitua por:

Salve as alterações e teste a configuração executando comando wbinfo para listar os usuários e grupos do AD:

Configurando compartilhamento no servidor de arquivos samba

Com o servidor ingressado no domínio e a configuração do mapeamento de usuários e grupos do AD concluída, você já pode configurar um compartilhamento no servidor de arquivos samba.

Para configurar o compartilhamento crie um diretório que será compartilhado:

Para o exemplo, somente os membros do grupo “domain admins” terá acesso, então o proprietário será o root e o grupo proprietário será “domain admins”:

Substitua “dlncloud” pelo nome netbios do domínio.

E agora edite o arquivo “/etc/samba/smb.conf” para criar o compartilhamento:

E inclua uma nova seção (compartilhamento):

Salve as alterações e reinicie o daemon smbd:

Em seguida teste o acesso ao servidor de arquivos com um usuário membro do grupo configurado nas permissões, no artigo é o grupo domain admins.

Conclusão

O samba é uma excelente alternativa para empresas que desejam integrar servidores de arquivos linux ao Active Directory sem abrir mão da compatibilidade com computadores Windows.

Embora a configuração do servidor de arquivos samba no debian com autenticação no AD envolva diversas etapas, o entendimento de cada configuração é essencial para ter domínio do que está fazendo.

E para se aprofundar mais vale a pena conhecer o nosso guia completo de estudos sobre o Servidor Samba para que conheça outras funções do samba e saiba implementa-las.

Se este artigo ajudou você a implementar seu servidor de arquivos samba ou se ficou com alguma dúvida, deixe seu comentário abaixo. Sugestões, elogios e experiências também são muito bem-vindos e ajudam outros leitores a aprender mais sobre o tema.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Vá além de configurar compartilhamento.

Aprenda a gerenciar de forma avançada compartilhamentos do Samba, administrar um Servidor de arquivos profissional com permissões avançadas, ACLs, segurança, gerenciamento do AD e muito mais.

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.