Samba como controlador de domínio Windows

A cerca de três anos atrás foi promovido a analista de sistemas e administrador de redes de um órgão público, bem posso dizer que maior do que os problemas que encontrei, só mesmo a falta de recursos para solucioná-los.

Um dos principais motivos e minhas dores de cabeça era o nosso PDC, um Pentium III de 500 Mhz, 256MB de memória, rodando o Windows NT 4 Server, segurando uma rede com mais de 200 usuários e 150 estações.

O carinha tava pedindo “pelo amor de Deus” para ser aposentado, como a produtividade estava sendo prejudicada pelos constantes problemas na rede, não foi difícil convencer a chefia da necessidade urgente de um upgrade, então eles me deram as peças para montar uma nova máquina: Placa-mãe Asus P5Q-E, 2GB de Ram DDR-II, 2 HDs Sata de 80GB e um Core 2 Quad CPU Q9550 @ 2.83GHz.

Tudo perfeito, o pessoal foi correndo montar a maquina em um lido gabinete preto acompanhado de monitor LCD, depois de tudo pronto percebemos que tava faltando o principal: cadê o Sistema Operacional?

Agente só tinha a licença de velho NT, é claro que nem em pesadelo eu iria colocá-lo no novo servidor, a outra opção seria esperar por uma nova licitação que na melhor das hipóteses iria demorar mais uns três meses…

Enquanto o mundo gira o pessoal de TI se virar! Comecei a googlar sobre o Samba e enfrentar o caminho das pedras para levantar o novo PDC, sem saber nada sobre servidores Linux, isso todo bem no momento em que o Pentium III começou a “bater as botas”.

Hoje depois de dois anos trabalhando com o Samba, eu percebo que apesar de na época ele ter sido minha única opção, ele foi também a melhor que eu poderia ter escolhido.
Com o Samba é possível montar um servidor, robusto, seguro, flexível, fácil de administrar e livre de pragas virtuais. Um software de extrema qualidade e 100% livre.
Quando eu instalei o Samba pela primeira vez, cometi o equivoco de não documentar o processo, daí me veio a ideia de escrever esse artigo, aproveitando substituição do HD do sistema e do Debian 5 pelo Ubuntu Server 11.04. Achei o processo bem mais fácil, em poucas horas de trabalho já estava acionando usuários e maquinas ao domínio.

Requisitos:


O Ubuntu Server Edition é feito para rodar em qualquer processador Intel ou AMD,. Ele requer um mínimo de 192MB de RAM e 1 GB de espaço em disco. Dependendo de suas necessidades, você pode conseguir com menos do que isso. No entanto, a maioria dos usuários correm o risco de ficar frustrados caso ignorem estas sugestões.

Configurações:

Proceda normalmente o processo de instalação, na tela de seleção de software marque a opção Samba file server.

Ao final da instalação, todos os pacotes necessários para inicializar o seu controlador de domínio já vai estar instalado, falta apenas alguns detalhes:

Facilitando ainda mais seu trabalho

Para simplificar o processo de administração do nosso servidor, vamos instalar o Webmin a partir de: http://www.webmin.com/download.html
ou pela linha de comando:

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.550_all.deb
 
sudo dpkg --install webmin_1.550_all.deb

Agora você poderá configurar todas as funcionalidades e serviços instalados no servidor a partir de uma interface web, usando qualquer estação da rede que possua um navegador de Internet, acessando o endereço: http://IP_DO_SERVIDOR:10000/

Acionando usuários e grupos ao novo domínio

Os usuários podem ser acionados pelo webmin ou pela linha de comando:
smbpasswd -a nome_do_usuario

Antes da criação dos usuários é conveniente criamos os grupos de usuários do domínio, da mesma forma que ocorre com os usuários, todos os grupos de usuários do samba deve esta associado a um grupo um grupo preexistente no sistema.

Usuários com privilégios de administrador nas estações Windows:
– Primeiro, crie um grupo no Linux (exemplo: administradores), você pode chamá-lo de qualquer coisa …
– Em seguida execute o seguinte comando em um terminal:
net groupmap add ntgroup=”Domain Admins” unixgroup= administradores rid=512 type=d

Agora certifique-se que você adicionou os usuários que terão direitos de administrador nas estações de trabalho Windows para o grupo Linux “administradores” que havíamos criado anteriormente.

Nota: Adicionar usuários ou grupos na opção “admin users” do smb.conf só permite aos usuários adicionar máquinas ao domínio.

Aqui esta o meu samba.conf (/etc/samba/smb.conf) comentado em algumas partes importantes da configuração:

[global]
#nome do domínio
workgroup = h4ck3z
server string = %h PDC server
security = user
domain master = yes
prefered master = yes
local master = yes
netbios name = servlinux
map to guest = Bad User
pam password change = Yes
encrypt passwords = true
client lanman auth = Yes
smb passwd file = /etc/samba/smbpasswd
#usuários administradores da rede (permissão para adicionar maquinas no dominio).
admin users = administrador ivan
#restrige o acesso ao servidor apenas nas afixas de IP informadas.
hosts allow = 10.23.0. 127.
enable privileges = yes
time server = yes
passdb backend = tdbsam
socket options = TCP_NODELAY SO_RCVBUF=102400 SO_SNDBUF=102400
#interfaces de redes habilitadas ao acesso
interfaces = lo eth0
bind interfaces only = yes
log level = 0
#scripts para inclusão automática de usuários e maquinas ao domínio
add user script = /usr/sbin/useradd -m %u
set primary group script = /usr/sbin/usermod -g %g %u /bin/false -d /dev/null %u
add group script = /usr/sbin/groupadd %g
add user to group script = /usr/bin/gpasswd -a %u %g
#o comado abaixo é responsável pelo ingresso automático das maquinas, para que funcione
#corretamente você deve criar um grupo no samba para receber os computadores do domínio
#nesse exemplo o nome do gropu é "maquinas".
add machine script = useradd -g maquinas -c "Maquina h4ck3z.local" -s /bin/false -d /dev/null %u
delete group script = /usr/sbin/groupdel %g
delete user from group script = /usr/bin/gpasswd -d %u %g
delete user script = /usr/sbin/userdel -r %u
rename user script = /usr/sbin/usermod -l %unew %uold
obey pam restrictions = yes
domain logons = yes
unix password sync = Yes
syslog = 1
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
logon path =
logon script = netlogon.bat
level2 oplocks = no
ntlm auth = yes
lanman auth = yes
client ntlmv2 auth = yes
#não permite a gravação das extensões de arquivos declaradas nas pastas compartilhadas
#do servidor ex: filmes, músicas executáveis, etc.
veto files = /*.mp3/*.avi/*.mpeg/*.mpg/*.wma/*.wmv/*.cmd/*.exe/*.bat/*.scr/*.inf/*.vmx
delete veto files = yes
unix charset = iso8859-1
display charset = cp850
follow symlinks = yes
wide links = no
getwd cache = yes
vfs object = recycle full_audit
# Auditoria - Grava no log todas as alterações processadas pelos usuários no servidor
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facilit = local5
full_audit:priority = notice
# Lixeira - Guarda uma cópia dos arquivos excluídos em uma pasta oculta
recycle:repository = .lixeira
recycle:keeptree = yes
recycle:versions = yes
#tipos de arquivos que não vão para a lixeira
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso
recycle:exclude_dir = tmp, cache
 
[netlogon]
comment = Serviço de Logon
path = /var/netlogon
guest ok = Yes
browseable =no
write list = ivan
public = no
veto files =
vfs object = full_audit
force create mode = 0777
directory mask = 0777
force directory mode = 777
 
[Publica]
comment = Pasta publica
path = /files/shares/public
writeable = yes
public = yes
vfs object = full_audit
force create mode = 0777
directory mask = 0777
force directory mode = 777
 
[suport]
write list = ivan
path = /files/shares/suport
comment = Equipe Telemática
veto files =
vfs object = full_audit
force create mode = 0777
directory mask = 0777
force directory mode = 777
 
[RH]
comment = Exemplo de Compartilhamento com acesso restrito
path = /files/shares/RH
#somente usuários do grupo RH e o administrador terão acesso aos arquivos.
valid users = administrador @RH
writeable = yes
force create mode = 0777
directory mask = 0777
force directory mode = 777

Os grandes desafios são sempre uma oportunidade de crescimento e superação.

Compartilhe Também:

Deixe seu comentário