Pular para o conteúdo
Waldo Eller | Cloud/DevOps: início
Voltar para Projetos
Estudo de Caso

Implementação de um File Server Samba com Integração Windows/Linux no Debian 13

Estudo de caso prático · Administração Linux · Redes · Virtualização · SMB · Controle de acesso

Publicado em

16 min de leitura
Capa do projeto Implementação de um File Server Samba com Integração Windows/Linux no Debian 13

Ambiente: laboratório local com 1 host físico + 2 VMs em libvirt/KVM
Tecnologias: Debian 13, Samba 4.22.11, Windows 10, SMB 3.1.1
Evidências coletadas: 10 de outubro de 2026
Escopo: laboratório educacional; não representa uma implantação certificada para produção.

Resumo executivo

Foi implementado um compartilhamento de arquivos privado usando Samba em uma VM Debian 13, acessado por uma VM Windows 10. A solução usa autenticação com usuário Samba, um grupo Linux dedicado (smbusers) e permissões de sistema de arquivos para controlar quem pode consultar e modificar os dados. O servidor reutiliza uma VM que já hospeda um ambiente LAMP/WordPress, com compartilhamento mantido fora da raiz web.

O acesso foi confirmado pelo mapeamento da unidade Z:, pela criação de um arquivo no Windows e sua identificação no Debian, pela sessão real registrada com smbstatus e pela rejeição de uma conta inválida. A comunicação negociou SMB 3.1.1. O caso documenta tanto a implantação quanto as verificações feitas, sem atribuir ao ambiente controles não demonstrados.


1. Identificação do Problema

Em ambientes que utilizam sistemas operacionais diferentes, o compartilhamento de documentos precisa oferecer interoperabilidade, identificação de usuários e regras de acesso consistentes. Para praticar esses conceitos, foi proposto um laboratório em que uma máquina Windows 10 acessaria arquivos armazenados em um servidor Linux.

Desafio: oferecer uma pasta compartilhada acessível pela rede local, exigir credenciais válidas e assegurar que os arquivos criados remotamente recebessem proprietário, grupo e permissões adequados no Debian.

Objetivos de aprendizagem:

  • Compreender o protocolo SMB e a função do Samba na integração Windows/Linux.
  • Praticar gerenciamento de usuários, grupos e permissões no Linux.
  • Configurar e validar um compartilhamento autenticado.
  • Diagnosticar conectividade de rede, serviços e falhas de autenticação.
  • Coletar evidências reproduzíveis para um portfólio técnico.

2. Panorama Geral da Solução

O host Debian 13 executa libvirt/KVM e hospeda duas máquinas virtuais: uma VM Debian 13 com WordPress e Samba, e uma VM Windows 10 como cliente. O servidor utiliza o endereço IPv4 192.168.0.6; a VM Windows foi observada em 192.168.0.8 durante a sessão SMB.

O compartilhamento Arquivos corresponde ao diretório Linux /srv/samba/arquivos. O acesso requer uma conta cadastrada no Samba (smbuser) que pertence ao grupo Linux smbusers. A conta tem finalidade de acesso a arquivos e foi configurada sem shell interativo. No Windows, o compartilhamento foi mapeado como unidade Z:.

Decisão de escopo: para manter apenas três máquinas, o Samba foi instalado na mesma VM do WordPress. Os arquivos compartilhados foram alocados em /srv/samba/arquivos, fora de /var/www/html, evitando misturar arquivos de usuário com os arquivos publicados pelo Apache. Em produção, é recomendável avaliar a separação das funções em servidores distintos.

Diagrama 1 — Arquitetura física e virtual

flowchart TB
    H["Host físico: Debian 13<br/>libvirt / KVM"]
    B["Rede do laboratório<br/>acesso IP entre VMs"]
    L["VM Debian 13<br/>192.168.0.6<br/>WordPress + Samba"]
    W["VM Windows 10<br/>192.168.0.8 (observado)"]
    D[("/srv/samba/arquivos")]
    H --> L
    H --> W
    L --- B
    W --- B
    W <-->|"SMB 3.1.1 / TCP 445"| L
    L --> D

A rede em bridge foi informada para a VM Debian no laboratório LAMP; o diagrama não pressupõe testes específicos da configuração de rede do host para a VM Windows.

3. Aplicabilidade e Cenários

O laboratório reproduz atividades comuns à administração de servidores de arquivos: implantação de pastas para equipes, separação de permissões por grupos, acesso de clientes Windows a recursos Linux e investigação de problemas de conectividade e credenciais.

Cenários de uso: compartilhamentos de documentos em pequenas redes, ambientes de treinamento, desenvolvimento de procedimentos de suporte e testes de permissões SMB. O exercício não implementa Active Directory, replicação, alta disponibilidade, backup automatizado ou publicação segura na internet.

4. A Estrutura da Solução

4.1. Inventário

Elemento Configuração Origem da informação
Host físico Debian 13 + libvirt/KVM Informado durante a montagem do laboratório
VM de servidor Debian 13; também hospeda LAMP/WordPress Informado e validado em etapas anteriores
IP do servidor 192.168.0.6 Acesso e testes SMB
VM cliente Windows 10 Informado; sessão vista no servidor
IP do cliente 192.168.0.8 Saída de smbstatus
Samba 4.22.11-Debian-4.22.11+dfsg-0+deb13u1 Saída de smbstatus
Papel do Samba ROLE_STANDALONE Saída de testparm -s
Protocolo negociado SMB3_11 (SMB 3.1.1) Saída de smbstatus
Compartilhamento \\192.168.0.6\Arquivos Configuração e acesso Windows
Diretório no servidor /srv/samba/arquivos testparm e stat
Unidade no Windows Z: Conexão net use e captura de tela

4.2. Usuários e permissões

Item Valor Finalidade
Usuário Linux / Samba smbuser Identidade autenticada para acessar arquivos
Grupo Linux smbusers (GID observado: 1001) Concentra os usuários autorizados
Diretório root:smbusers Administração pelo root e acesso pelo grupo
Modo do diretório 2770 (drwxrws---) Acesso de proprietário e grupo; setgid para herdar grupo
Arquivos novos via Samba create mask = 0660 Leitura/escrita por proprietário e grupo; nenhum acesso a outros
Diretórios via Samba directory mask = 0770 e force directory mode = 2000 Acesso restrito e herança de grupo

Exemplo verificado: waldoeller.txt, criado a partir do Windows, apareceu no Debian com 32 bytes, proprietário smbuser, grupo smbusers e permissões 0660 (-rw-rw----).

4.3. Configuração do compartilhamento

Trecho representativo confirmado pelo testparm -s:

[Arquivos]
    comment = Compartilhamento privado do laboratorio
    path = /srv/samba/arquivos
    read only = no
    valid users = @smbusers
    force group = smbusers
    create mask = 0660
    directory mask = 0770
    force directory mode = 02000

Na seção global, foram observados security = USER e server role = standalone server. O teste inicial também exibiu map to guest = Bad User e usershare allow guests = Yes; após orientações de ajuste, a configuração validada não voltou a listar esses parâmetros em testparm -s. Sua ausência na saída resumida, por si só, não prova os valores efetivos: uma conferência explícita com testparm -sv permanece recomendada. O acesso privado ao compartilhamento está respaldado por valid users = @smbusers e pelos testes de autenticação realizados.

Diagrama 2 — Fluxo de acesso e autorização

flowchart TD
    A["Windows 10<br/>Unidade Z:"] --> B["Conexão SMB na porta TCP 445"]
    B --> C["Samba no Debian 13"]
    C --> D{"Credenciais Samba válidas?"}
    D -->|Não| X["Conexão recusada"]
    D -->|Sim| E{"Usuário autorizado<br/>no grupo smbusers?"}
    E -->|Não| Y["Acesso negado"]
    E -->|Sim| F["Permissões Linux no diretório"]
    F --> G["/srv/samba/arquivos<br/>Leitura e escrita autorizadas"]

5. Abordagem Estratégica Adotada

A implantação foi dividida em etapas pequenas, com verificação após cada mudança, para aprender a função dos componentes sem prejudicar o WordPress existente.

Etapa A — Instalação e verificação do serviço

apt update
apt install samba smbclient
systemctl status smbd --no-pager
  • apt update: atualiza o índice de pacotes disponíveis; não instala atualizações por si só.
  • apt install samba smbclient: instala o servidor SMB e uma ferramenta cliente para diagnóstico local.
  • systemctl status smbd --no-pager: consulta o estado do serviço, sem alterar sua execução.

Resultado observado: smbd.service apareceu como active (running) e enabled, indicando serviço em execução e habilitado para iniciar com o sistema.

Etapa B — Identidades Linux e estrutura do compartilhamento

Os comandos a seguir representam a configuração aplicada. Eles não devem ser repetidos indiscriminadamente em máquinas com usuários/grupos já existentes.

# Criar o grupo somente se ainda não existir
/usr/sbin/groupadd smbusers

# Criar uma conta sem diretório pessoal e sem login interativo,
# associada ao grupo autorizado (somente se ainda não existir)
/usr/sbin/useradd -M -s /usr/sbin/nologin -G smbusers smbuser

# Criar o diretório e atribuir seu grupo
mkdir -p /srv/samba/arquivos
chown root:smbusers /srv/samba/arquivos
chmod 2770 /srv/samba/arquivos
  • groupadd cria um grupo Linux.
  • useradd -M não cria diretório pessoal; -s /usr/sbin/nologin impede o uso dessa conta para login interativo; -G smbusers define o grupo suplementar.
  • mkdir -p cria o diretório, incluindo diretórios-pai ausentes.
  • chown root:smbusers mantém root como proprietário e transfere o grupo para smbusers.
  • chmod 2770 oferece leitura/escrita/entrada ao proprietário e ao grupo, bloqueia outros e ativa setgid no diretório.

Aprendizado registrado: inicialmente houve uma falha de localização de comandos administrativos pelo PATH; eles funcionaram ao usar caminhos completos como /usr/sbin/groupadd. Também foi corrigida a propriedade root:root do diretório para root:smbusers.

Validação aplicada:

id smbuser
stat -c '%A %a %U:%G %n' /srv/samba/arquivos
/usr/sbin/runuser -u smbuser -- touch /srv/samba/arquivos/teste-permissao.txt

O teste de criação do arquivo como smbuser terminou sem erro. O diretório foi confirmado como drwxrws--- 2770 root:smbusers.

Etapa C — Cadastro da senha e configuração Samba

smbpasswd -a smbuser
pdbedit -L
cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak
# Editar /etc/samba/smb.conf com um editor, por exemplo nano
  • smbpasswd -a: cadastra credenciais SMB para uma conta Linux existente; a senha não deve ser registrada no portfólio.
  • pdbedit -L: lista contas cadastradas no banco de usuários Samba (sem mostrar senhas).
  • cp -a: cria cópia de segurança preservando atributos antes de editar smb.conf.

Foi criado o compartilhamento [Arquivos] com acesso pelo grupo smbusers e máscaras de permissões restritas. A validação usou:

testparm -s
systemctl restart smbd
systemctl is-active smbd
smbclient //127.0.0.1/Arquivos -U smbuser -c 'ls'
  • testparm -s: verifica a configuração Samba e exibe os parâmetros efetivos não padrão.
  • systemctl restart smbd: reinicia somente o serviço Samba para aplicar mudanças; pode interromper sessões SMB abertas.
  • systemctl is-active smbd: confirma se voltou a executar.
  • smbclient: autentica localmente e lista arquivos usando SMB, isolando eventuais problemas de rede Windows.

Evidência: Loaded services file OK, active e listagem bem-sucedida de teste-permissao.txt com o usuário smbuser.

Etapa D — Diagnóstico da conexão Windows

A tentativa inicial de abrir o caminho SMB no Windows apresentou o erro 65535. Sem evidência suficiente para determinar sua causa exata, o diagnóstico prosseguiu por camadas:

ping 192.168.0.6

O ping verificou resposta IP. Em seguida, no PowerShell:

Test-NetConnection 192.168.0.6 -Port 445

O resultado TcpTestSucceeded : True confirmou a conectividade TCP até a porta SMB. Por fim, no CMD:

net use Z: \\192.168.0.6\Arquivos /user:smbuser *
  • net use: associa uma unidade de rede a um compartilhamento.
  • Z:: letra escolhida para a unidade.
  • /user:smbuser: conta usada na autenticação.
  • *: pede senha de forma interativa, evitando colocá-la diretamente no comando.

Resultado: mapeamento bem-sucedido e acesso ao compartilhamento no Explorador de Arquivos. O sucesso posterior não permite afirmar qual foi a causa original do erro 65535.

Etapa E — Testes funcionais e de acesso

Arquivo criado no Windows, identificado no Debian:

stat /srv/samba/arquivos/waldoeller.txt

O stat retornou 32 bytes, usuário smbuser, grupo smbusers e modo 0660, evidenciando persistência e aplicação das permissões planejadas.

Sessão SMB real:

smbstatus

O resultado confirmou o cliente 192.168.0.8, usuário smbuser, recurso Arquivos e protocolo SMB 3.1.1. A coluna de assinatura apresentou partial(AES-128-CMAC); a saída não indicou criptografia de tráfego habilitada. Assinatura e criptografia SMB são mecanismos diferentes.

Rejeição de credenciais inválidas:

smbclient //127.0.0.1/Arquivos -U usuario_invalido -c 'ls'

Retorno observado:

session setup failed: NT_STATUS_LOGON_FAILURE

Isso comprova rejeição dessa tentativa específica de autenticação, sem equivaler a uma auditoria de segurança completa.

Diagrama 3 — Processo de implantação e validação

flowchart TD
    A["Instalar samba e smbclient"] --> B["Criar grupo e usuário"]
    B --> C["Criar diretório e permissões 2770"]
    C --> D["Cadastrar senha Samba"]
    D --> E["Editar smb.conf"]
    E --> F{"testparm válido?"}
    F -->|Não| G["Corrigir configuração"]
    G --> E
    F -->|Sim| H["Reiniciar smbd"]
    H --> I["Testar com smbclient local"]
    I --> J["Testar porta 445 no Windows"]
    J --> K["Mapear unidade Z:"]
    K --> L["Criar arquivo e conferir stat"]
    L --> M["Verificar smbstatus"]
    M --> N["Testar credenciais inválidas"]
    N --> O["Consolidar evidências"]

6. Impacto e Resultados Esperados

6.1. Resultados efetivamente observados

Validação Evidência Situação
Serviço Samba systemctl status smbd Aprovada
Sintaxe do smb.conf testparm -s → Loaded services file OK Aprovada
Diretório com acesso por grupo stat → 2770 root:smbusers Aprovada
Escrita local como conta restrita runuser ... touch sem erro Aprovada
Autenticação Samba local smbclient listou arquivos Aprovada
Conectividade Windows ping e TCP 445 Aprovada
Mapeamento do compartilhamento Unidade Z: visível no Windows Aprovada
Gravação remota waldoeller.txt presente no Debian com 0660 Aprovada
Sessão SMB 3.1.1 smbstatus Aprovada
Negação de usuário inválido NT_STATUS_LOGON_FAILURE Aprovada

6.2. Competências exercitadas

O projeto permitiu praticar configuração de servidor standalone, administração de identidades locais, permissões Unix, integração de sistemas heterogêneos, teste de conectividade TCP e análise de sessões SMB. O erro de abertura inicial no Windows foi usado como oportunidade para diagnóstico metódico, sem mudanças aleatórias na configuração do servidor.

6.3. Limites da validação

A conclusão é funcional e educacional, não uma certificação de segurança. Não foram demonstrados testes de recuperação de backup, controle de acesso de várias contas válidas, isolamento efetivo da porta 445 por firewall, criptografia obrigatória de tráfego SMB ou resistência a indisponibilidade da VM. O WordPress permanece compartilhando a mesma máquina virtual.

7. Evolução e Próximas Etapas

As melhorias abaixo são planejadas, não foram apresentadas como implementadas:

  1. Backup e restauração: definir cópias do diretório compartilhado e testar recuperação de arquivos.
  2. Monitoramento: acompanhar espaço em disco, estado do smbd, uso de recursos e falhas de autenticação.
  3. Controle de rede: restringir a porta TCP 445 às máquinas necessárias, considerando IPv4 e IPv6 e mantendo o funcionamento do WordPress.
  4. Permissões por equipes: criar contas adicionais e testar leitura, escrita e bloqueios distintos por grupo.
  5. Segurança SMB: avaliar exigência de assinatura e criptografia SMB conforme a compatibilidade do Windows 10 e as necessidades de confidencialidade.
  6. Disponibilidade: validar funcionamento após reinício e documentar dependências entre os serviços da VM.
  7. Arquitetura: avaliar uma VM exclusiva para Samba quando houver mais recursos de computação.
  8. Documentação operacional: registrar procedimentos de criação de usuários, revogação de acesso, recuperação e atualização.

Nota de segurança: o Samba utiliza a rede do laboratório. Não publique a porta TCP 445 na internet. A exposição do serviço deve ser limitada por políticas de rede apropriadas.

8. Considerações Finais

O laboratório atingiu seu objetivo principal: oferecer compartilhamento privado de arquivos entre Windows 10 e Debian 13 com Samba, utilizando uma infraestrutura virtualizada de três máquinas no total (um host e duas VMs). A implementação foi validada com conexão de rede, autenticação, escrita remota, permissões Linux, sessão SMB 3.1.1 e rejeição de credenciais inválidas.

Mais do que demonstrar um serviço em funcionamento, o estudo evidencia uma abordagem de administração de sistemas baseada em configurar, observar, testar e documentar. Os próximos passos concentram-se em resiliência, monitoramento e reforço dos controles de segurança, preservando a distinção entre o que foi comprovado e o que ainda será desenvolvido.


Anexo A — Galeria de evidências para o portfólio

Para publicar no site, mantenha a pasta evidencias/ ao lado deste arquivo Markdown, ou ajuste os caminhos das imagens conforme o gerador do site. Evite prints com senhas, hashes, identificadores desnecessários ou informações privadas.

Evidência 01 — Unidade de rede no Windows 10

Windows 10 exibindo o compartilhamento Arquivos mapeado como unidade Z

Legenda sugerida: compartilhamento Samba Arquivos mapeado como unidade Z: no Windows 10, mostrando os arquivos disponíveis no servidor Debian.

Evidência 02 — Configuração Samba validada

Capturar: saída de testparm -s, especialmente [Arquivos].
Imagem sugerida: evidencias/02-testparm.png
Legenda: validação de sintaxe e parâmetros de acesso do compartilhamento privado.

Evidência 03 — Conta e grupo Linux

Capturar: id smbuser e stat -c '%A %a %U:%G %n' /srv/samba/arquivos.
Imagem sugerida: evidencias/03-permissoes-diretorio.png
Legenda: usuário autorizado, grupo smbusers e diretório com permissão 2770.

Evidência 04 — Arquivo vindo do Windows

Capturar: stat /srv/samba/arquivos/waldoeller.txt.
Imagem sugerida: evidencias/04-arquivo-remoto.png
Legenda: arquivo escrito via SMB e armazenado com permissões 0660 no Debian.

Evidência 05 — Sessão SMB em execução

Capturar: smbstatus enquanto o Windows estiver conectado.
Imagem sugerida: evidencias/05-sessao-smb.png
Legenda: sessão Windows/Debian negociada com SMB 3.1.1.

Evidência 06 — Acesso negado

Capturar: smbclient //127.0.0.1/Arquivos -U usuario_invalido -c 'ls', com a senha fictícia não visível.
Imagem sugerida: evidencias/06-autenticacao-negada.png
Legenda: tentativa de autenticação inválida rejeitada pelo servidor.


Anexo B — Comandos para coletar prints adicionais (somente consulta)

Execute os comandos Linux como usuário com permissão suficiente. No seu Debian mínimo, alguns comandos administrativos podem precisar do caminho completo (/usr/sbin/...). Os exemplos abaixo não alteram os arquivos ou a configuração Samba.

Evidência desejada Comando O que demonstra
Serviço em execução systemctl status smbd --no-pager -l Estado do serviço e mensagens recentes
Início automático systemctl is-enabled smbd Habilitação no boot
Versão do Samba /usr/sbin/smbd --version Versão instalada
Sintaxe e compartilhamento testparm -s Configuração interpretada
Opções de convidados `testparm -sv 2>/dev/null | grep -Ei 'map to guest usershare allow guests
Usuário e grupos id smbuser Grupos Linux da conta
Diretório protegido stat -c '%A %a %U:%G %n' /srv/samba/arquivos Propriedade e modo setgid
Arquivo gravado stat /srv/samba/arquivos/waldoeller.txt Propriedade, grupo, tamanho e modo
Porta SMB em escuta ss -lntp | grep ':445' Serviço TCP 445 no servidor
Sessão cliente smbstatus Cliente, usuário e SMB negociado
Capacidade de disco df -h /srv/samba/arquivos Espaço disponível na partição
Últimos logs journalctl -u smbd -n 30 --no-pager Eventos recentes do serviço

No Windows 10 (PowerShell/CMD):

Test-NetConnection 192.168.0.6 -Port 445
net use

Test-NetConnection verifica a comunicação TCP; net use lista as unidades de rede conectadas. Para demonstrar a unidade Z: no Explorador, fotografe a janela com o endereço SMB visível.

Prints prioritários para uma publicação enxuta

  1. Arquitetura Mermaid (já incluída no Markdown).
  2. Windows com unidade Z: (imagem incluída no pacote).
  3. testparm -s (parâmetros do compartilhamento).
  4. stat do arquivo criado no Windows (persistência e permissões).
  5. smbstatus (protocolo e sessão ativa).
  6. NT_STATUS_LOGON_FAILURE (teste negativo de autenticação).

Importante: o teste de criação de arquivo não substitui verificação de restauração de dados. O desempenho e a segurança em produção não foram mensurados neste estudo.

Diagrama de Fluxo — Visualização Ampliada
100%

Projetos relacionados

Outros trabalhos com tecnologias e arquiteturas semelhantes.

Ver todos os projetos

Gostou deste case study?

Vamos conversar sobre como aplicar soluções como esta na sua empresa.

Entrar em contato