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
groupaddcria um grupo Linux.useradd -Mnão cria diretório pessoal;-s /usr/sbin/nologinimpede o uso dessa conta para login interativo;-G smbusersdefine o grupo suplementar.mkdir -pcria o diretório, incluindo diretórios-pai ausentes.chown root:smbusersmantémrootcomo proprietário e transfere o grupo parasmbusers.chmod 2770oferece 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 editarsmb.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:
- Backup e restauração: definir cópias do diretório compartilhado e testar recuperação de arquivos.
- Monitoramento: acompanhar espaço em disco, estado do
smbd, uso de recursos e falhas de autenticação. - Controle de rede: restringir a porta TCP 445 às máquinas necessárias, considerando IPv4 e IPv6 e mantendo o funcionamento do WordPress.
- Permissões por equipes: criar contas adicionais e testar leitura, escrita e bloqueios distintos por grupo.
- Segurança SMB: avaliar exigência de assinatura e criptografia SMB conforme a compatibilidade do Windows 10 e as necessidades de confidencialidade.
- Disponibilidade: validar funcionamento após reinício e documentar dependências entre os serviços da VM.
- Arquitetura: avaliar uma VM exclusiva para Samba quando houver mais recursos de computação.
- 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

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
- Arquitetura Mermaid (já incluída no Markdown).
- Windows com unidade
Z:(imagem incluída no pacote). testparm -s(parâmetros do compartilhamento).statdo arquivo criado no Windows (persistência e permissões).smbstatus(protocolo e sessão ativa).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.

