O Samba é uma ferramenta poderosa que permite a integração entre sistemas Linux e Windows, oferecendo serviços de compartilhamento de arquivos e impressoras. Dependendo do caso de uso, o Samba pode ser configurado como um simples servidor de compartilhamento de arquivos ou como um servidor de Active Directory (AD), permitindo logon de usuários. Aqui, vamos explorar um arquivo de configuração básico do Samba e destacar quais partes se aplicam a cada tipo de servidor.
Estrutura Básica do Arquivo
A configuração do Samba geralmente reside no arquivo /etc/samba/smb.conf
, que é dividido em duas seções principais:
[global]: Contém definições gerais para o servidor.
Compartilhamentos: Define as pastas e impressoras que serão disponibilizadas na rede.
Vamos examinar o exemplo fornecido, linha por linha, e comentar como essas configurações variam de acordo com o uso do servidor.
Seção [global]
A seção [global]
contém as definições gerais para o servidor Samba.
workgroup: Define o nome do grupo de trabalho. Para um servidor standalone (apenas compartilhamento de arquivos), este valor pode ser mantido como WORKGROUP
ou ajustado de acordo com o ambiente. No caso de um servidor AD, essa linha será substituída pela configuração do domínio.
[global]
workgroup = WORKGROUP
interfaces e bind interfaces only: Definem quais interfaces de rede o Samba usará. Isso é útil se você quiser limitar o serviço a uma rede específica. É mais relevante para um servidor standalone.
; interfaces = 127.0.0.0/8 eth0
; bind interfaces only = yes
log file e max log size: Especificam onde os logs serão armazenados e o tamanho máximo do arquivo de log, respectivamente. Essas configurações são úteis em ambos os tipos de servidores.
log file = /var/log/samba/log.%m
max log size = 1000
logging = file
server role: Define o papel do servidor. Aqui, ele está configurado como standalone server
, que é utilizado quando o servidor não faz parte de um domínio e é usado apenas para compartilhamento de arquivos. Para um servidor AD, esta linha deve ser configurada como server role = active directory domain controller
.
server role = standalone server
obey pam restrictions e relacionadas a senha: Essas linhas controlam como as senhas de usuários Unix são sincronizadas com o Samba. Isso é mais relevante para servidores standalone que usam a autenticação local do sistema.
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest: Define como o Samba trata tentativas de logon com usuários inválidos. Aqui, usuários desconhecidos serão mapeados para guest
. Isso é comumente usado em servidores standalone com permissões de acesso anônimas ou de convidado.
map to guest = bad user
Linhas Comentadas para Ambiente AD
No caso de um servidor AD, algumas linhas adicionais, que estão comentadas neste arquivo, podem ser ativadas:
logon path, logon drive e logon script: Estas configurações são utilizadas em um servidor AD para definir o caminho do perfil do usuário, a unidade de logon e scripts de inicialização ao fazer login no domínio. Esses parâmetros são ignorados em um servidor standalone.
; logon path = \\%N\profiles\%U
; logon drive = H:
; logon script = logon.cmd
add user script e add machine script: Usados para adicionar contas de usuários e máquinas automaticamente. Essas configurações são usadas em um servidor AD para integrar o gerenciamento de contas ao controlador de domínio.
; add user script = /usr/sbin/useradd --create-home %u
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
Compartilhamentos
Agora, vamos explorar as definições de compartilhamento de arquivos e impressoras.
homes: Define o compartilhamento de diretórios pessoais de usuários. Ele não é navegável e só pode ser acessado por usuários válidos. Este compartilhamento pode ser usado em ambos os cenários (standalone e AD), mas em um servidor AD seria associado às pastas pessoais dos usuários do domínio.
[homes]
comment = Home Directories
browseable = no
read only = yes
create mask = 0700
directory mask = 0700
valid users = %S
printers: Compartilha impressoras conectadas ao servidor. Esta configuração pode ser usada em qualquer um dos tipos de servidores.
[printers]
comment = All Printers
browseable = no
path = /var/tmp
printable = yes
guest ok = no
read only = yes
create mask = 0700
Conclusão
A configuração do Samba depende do tipo de servidor que você está montando. Se o objetivo for apenas compartilhar pastas e impressoras sem logon de usuários, as opções relacionadas ao AD podem ser ignoradas, mantendo o servidor como standalone. Se você estiver configurando um servidor para funcionar como um controlador de domínio AD, será necessário ajustar as opções relacionadas ao logon e à criação de usuários e máquinas.
Por fim, o Samba é flexível e pode ser facilmente adaptado a diferentes cenários de rede, oferecendo uma solução robusta tanto para servidores simples quanto para ambientes corporativos com AD.