Configurar um controlador de domínio com Samba é uma tarefa cada vez mais comum nas redes de várias empresas, contudo as várias opções de configuração do Samba muitas vezes nos levam a caminhos tortuosos. Vou mostrar as configurações utilizadas para montar um Domain Controller com Samba e o que significam.
Instalando o Samba
Nosso primeiro passo será a instalação do Samba (pacotes server e client). Sempre que possível vou mostrar os passos específicos para Debian, Mandriva e Fedora.
Debian/Ubuntu:
# apt-get update
# apt-get install samba smbclient smbfs
Mandriva:
# urpmi --auto samba-server samba-client
Fedora:
# yum install samba samba-client
Há outros pacotes que compõem a suíte Samba, entre eles:
- samba-swat: um ótimo configurador do samba;
- samba-doc: vários HOWTO's e uma cópia do livro "Using Samba" 2ª edição da editora O'Reilly;
- samba-winbind: para autenticação de usuários em servidores Windows®;
- samba-vscan-*: módulos adicionais para integração com antí-virus.
Lembre-se que alguns destes recursos podem estar integrados diretamente no pacote do servidor em sua distribuição.
Configurando o Samba
A configuração do Samba nestas distribuições fica na pasta /etc/samba. É nela que temos o arquivo de configuração smb.conf bem como alguns arquivos complementares. Você pode começar sua configuração alterando o arquivo já disponível ou começar uma configuração do zero. Eu sugiro que comecemos com um arquivo novo. Vamos renomear o arquivo original e editar um arquivo novo.
# cd /etc/samba
# mv smb.conf smb.conf.dist
# vi smb.conf
Neste novo arquivo smb.conf vamos colocar as seguintes diretivas:
[global]
# 1. Opções de identificação do equipamento e do domínio
# nome da máquina
netbios name = SERVER
# nome do domínio
workgroup = DOMINIO
# comentário
string = Controlador de domínio
# 2. Identificação de usuários e autenticação
# como os usuários são identificados pelo Samba
security = user
# onde a identificação de cada usuário é armazenada
passdb backend = tdbsam
# 3. Habilitando a autenticação de usuários para as estações Windows
domain logons = Yes
# nível de identificação do Samba
os level = 33
# identificando o browser de rede
preferred master = auto
domain master = Yes
local master = Yes
# logon script
logon script = login.bat
# 4. Desabilitando perfis remotos (roaming profiles)
logon path =
logon drive =
logon home =
# 5. Habilitando time server
time server = Yes
# 6. Resolução de nomes
# configurando o Samba como servidor Wins da rede
wins support = Yes
# Compartilhamentos obrigatórios
[netlogon]
comment = Logon scripts
path = /home/samba
read only = Yes
write list = root @"Domain Admins"
# mesmo que você tenha desabilitado perfis remotos na seção global, você deve criar este share
[profiles]
comment = perfis remotos
path = /home/samba/profiles
read only = No
create mask = 0600
directory mask = 0700
# Compartilhando o diretório pessoal de cada usuário
# este é um compartilhamento especial, tem um S no final mesmo: homes
[homes]
comment = Diretório pessoal
browseable = No
writable = Yes
# Não vamos deixar os usuários acabarem com nosso hd com diversão.
veto files = /*.mp3/*.cda/*.mpg/*.mpe/*.wma/*.wmv/*.avi/*.jpg/
# apenas o home do próprio usuário será visível.
valid users = %$
# quem fizer parte deste grupo terá direitos administrativos
admin users = @"Domain admins"
# tornar os arquivos como .bashrc e outros serão ocultos.
hide dot files = Yes
# compartilhamento público
[publico]
comment = Compartilhamento publico no servidor
# estou colocando em pastas diferentes para facilitar o controle de acesso
path = /home/shares/publico
# Compartilhamento visível
browseable = Yes
writable = Yes
veto files = /*.mp3/*.cda/*.mpg/*.mpe/*.wma/*.wmv/*.avi/*.jpg/
admin users = @"Domain Admins"
# garantindo que todos terão direito de acesso ao conteúdo deste compartilhamento
# qualquer arquivo que um usuário gravar todos poderão ler mas não alterar (rwxr--r--)
create mask = 744
# qualquer diretório criado poderá ser utilizado pelo grupo e visível por todos
directory mask = 775
Nesta configuração estamos criando alguns compartilhamentos que devem ter as pastas locais (indicadas na diretiva path) criadas antes de colocarmos o samba em funcionamento.
# cd /home
# mkdir samba
# mkdir samba/profiles -m 1777
# mkdir -p shares/publico -m 1777
A pasta /home/samba que armazenará os logon scripts não precisa de qualquer permissão especial pois apenas os Domain Admins podem gravar nela. A pasta /home/samba/profiles deve permitir que qualquer usuário grave seu perfil nela, daí a permissão especial 1777 garantindo que apenas o próprio usuário possa remover seus dados. A pasta /home/shares/publico foi criada como uma área comum onde todos podem gravar dados e trocar arquivos, vamos definir sua permissão como 1777 também.
Criando usuários no servidor
Os usuários para o Samba são criados em duas etapas:
1ª - deve existir um usuário Linux que será associado a um usuário Samba em seguida.
# adduser marcos
Não precisamos definir uma senha para este usuário, há menos que ele tenha acesso via ssh diretamente ao Linux.
2ª - vamos criar o usuário samba.
# smbpasswd -a marcos
Neste momento você deverá criar a senha do usuário que será utilizada no acesso a partir da estação Windows.
Para consultar os usuários criados no Samba você pode utilizar o comando pdbedit como segue:
# pdbedit -L


