Samba como controlador de domínio + PDC

Publicado por jose claudio em 20/12/2009

[ Hits: 35.977 ]

 


Samba como controlador de domínio + PDC



Nessa configuração teremos uma boa ideia de como funciona o Samba atuando como controlador de domínio primário em uma rede corporativa. Em uma rede acima de 10 máquinas, aconselho utilizar um controlador de domínio com perfil móvel para maior facilidade de administração dos usuários.

Mostrarei como configurar um controlador de domínio de maneira simples e com lixeira de arquivos, fazendo a recuperação dos arquivos delatados ser mais ágil, nosso arquivo de configuração terá, além de lixeira e exclusões de arquivos tmp, grupos e níveis de acessos bem práticos para melhor entendimento.

Um controlador de domínio controla os níveis de acesso dos usuários de uma rede corporativa e a funcionalidade do Samba como PDC é de garantir a segurança e informação dos usuários.

Sobre o perfil móvel, o usuário não precisa estar necessariamente no terminal de uso dele. Dentro do parque da máquinas da empresa, de qualquer estação ele pode fazer logon com seu usuário e senha, que carregará o perfil do usuários, com isso não nos preocuparemos no caso de ter que formatar uma estação de trabalho, pois as informações contidas em cada conta de usuário está guardada no profile do usuário, na estação e também no servidor.

A estação e o servidor ficam sincronizado 24 horas por dia. Quando o usuário efetua logon ou desliga a estação, a pasta do perfil do usuário é salva dentro do servidor e mantendo o profile sempre seguro, pois além de ter uma cópia local em "Documents and Settings", temos os profiles seguros no nosso servidor Samba PDC.

O arquivo de configuração principal é o smb.conf, ele encontra-se no /etc/samba (Debian ou Ubuntu Linux). Em derivações BSD se encontra em /usr/local/etc/samba.

Criaremos a pasta onde ficam guardados os Netlogon, que são os responsáveis por fazer os mapeamentos e as sincronizações do relógio das estações. Imagine em uma rede com 100 máquinas, o administrador ter que ir uma a uma para fazer o mapeamento e ajustar a hora do PC de todos usuários? Para automatizar isso usaremos um bloco de notas e faremos a mapeamento e a sincronização do relógio do terminal com o do servidor.

Detalhe importante: para o relógio do terminal sincronizar com o do servidor o usuário do terminal terá que ser no mínimo usuário avançado do sistema, senão a hora não mudará. Lembre-se que estamos subindo além de um PDC, um controlador de domínio, não adianta ter a sincronia dos relógios e não ter permissão de mudança no terminal.

Vamos lá!

Crie em /home a pasta "samba", de permissão total ao dono:

# cd /home
# mkdir samba
# chmod 700 samba


Crie em /home/samba a pasta netlogon:

# cd samba
# mkdir netlogon


Dê a sua devida permissão:

# chmod 700 netlogon

Ou seja, leitura, escrita e execução para o dono.

Dentro da pasta, cada usuário do sistema terá o seu netlogon com nome de usuario.bat. Ex.: Para o usuário cláudio o arquivo bat será claudio.bat.

ren Logon Script ...

NET TIME \\spbrsfs01 /set /yes // sincronizando a hora com a do server.

NET USE N: \\spbrsfs01\geral // Fazendo o mapeamento automático da pasta geral
NET USE P: \\spbrsfs01\artes // Fazendo o mapeamento automático da pasta artes
NET USE Q: \\spbrsfs01\sistemas // Fazendo o mapeamento automático da pasta sistemas.

Salvar esse arquivo dentro da pasta netlogon. Não se preocupe com a permissão do arquivo, pois você já deu permissão na pasta.

Agora vamos criar a pasta dos profiles, nelas ficam guardadas os profiles dos usuários.

# mkdir /home/samba/profiles
# chmod 700 profiles

Criando os grupos para definirmos os acessos aos compartilhamentos:

# vim /etc/group

E adicione manualmente o grupo pertinente a cada usuário, ficando assim.

root:x:0:
grif_suporte:x:2012:claudio,thiago,root #Ou seja o claudio. thiago e root terão acesso a pasta suporte por fazer parte do grupo grif_suporte.

Para melhor entender:

Neste exemplo o grupo grif_suporte (o símbolo at [@] ao lado é sinônimo de grupo para o Samba) é quem pode escrever no diretório. Por padrão eu costumo deixar a máscara em 777, porque somente usuários do domínio NT (simulado pelo Samba) ou pertinentes ao grupo definido podem fazer tudo. A segurança ficaria para nível de acesso, que eu acho mais simples gerenciar.

Agora chegamos na parte principal e nela detalharemos bem a configuração do Samba, aqui é o coração da funcionalidade de tudo.

Dentro do /etc/samba, abrir o smb.conf com o editor preferido, eu gosto do VIM.

# vim smb.conf

[global]

   ## Nome do domínio e Grupo  o mesmo será para as estações..
   workgroup = Meu-dominio
   ## Forma que será visível na rede
   netbios name = SPBRSFS01
   ## Nome e comentário do servidor na rede
   server string = SPBRSFS01 SAMBA
   wins support = yes
   ## servidor responde por Dns tbm no nosso caso não
   dns proxy = no
   ## hora ajustável do serve
   time server = yes
   ## Conf padrão
   name resolve order = lmhosts host wins bcast
   ##  Ip do maquina onde funcionará o serve
   interfaces = 127.0.0.0/8 192.168.1.12
   ## Visibilidade na rede Sim
   bind interfaces only = yes
   ## arquivo de log padrão
   log file = /var/log/samba/log.%m
   ## Tamanho Maximo a gravar log
   max log size = 5120
   ## ver os log nos clientes não
   syslog only = no
   ## Nivel do log
   syslog = 0
   ## arquivo padrão do samba
   panic action = /usr/share/samba/panic-action %d
   ## criptografando a senha do usuário
   encrypt passwords = true
   ## Padrão do samba
   passdb backend = tdbsam
   ## restringir usuários por acessos
   obey pam restrictions = yes
   ## fazer requisição de password nos acessos de compartilhamento
   unix password sync = yes
   ## Local onde buscara as senhas
   passwd program = /usr/bin/passwd %u
   ## pardrão do samba
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   ## pardrão do samba  aconselhável para PDC
   password level = 8
   ## pardrão do samba  aconselhável  para PDC
   username level = 16
   ## forçar autenticação
   pam password change = yes
   ## aqui decide se é controlador de domínio ou não
   domain logons = yes
   ## busca dos profiles que cada usuário terá
   logon path = \\%L\profiles\%U
   ## aqui determinamos os mapeamentos via .BAT
   logon script = %U.bat
   ## add usuarios no samba
   add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
   ## add maquinas cliente no samba.
   add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /dev/null -s /bin/false %u
   add group script = /usr/sbin/addgroup --force-badname %g
   add user to group script = /usr/sbin/adduser %u %g
   delete user script = /usr/sbin/userdel %u
   delete group script = /usr/sbin/groupdel %g
   delete user from group script = /usr/sbin/deluser %u %g
   set primary group script = /usr/sbin/usermod -g %g %u
   load printers = no
    ## não será servidor e impressão
   #printing = cups
   #printcap name = cups
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
   ## primeiro servidor a responder na rede
   ## seguir essas conf. até o hosts
   preferred master = yes
   local master = yes
   domain master = yes
   os level = 255
   log level = 2
   unix charset = iso8859-1
   display charset = cp850
   max mux = 100
   max open files = 100000
   kernel oplocks = no
   oplocks = no
   remote announce = 192.168.1.255
   ## brodcast da sua rede
   remote browse sync = 192.168.1.255
   ## Range de ip da rede no meu caso local, rede interna e VPN
   hosts allow = 127., 192.168.1.,192.168.3.
   block size = 4096
   level2 oplocks = no

   ## aqui irei bloquear arquivos com essas extensões na minha rede
   veto files = /*.mp3/*.wmv/*.wma/*.ogg/*.mpeg/*.mpg

   ## Criação da auditoria do meu Samba..
   vfs objects = full_audit
   full_audit:success = write, unlink, rename, mkdir, rmdir, chmod, chown
   full_audit:failure = write, unlink, rename, mkdir, rmdir, chmod, chown
   full_audit:prefix = %u|%I|%S


   ## criação da minha lixeira da rede
   vfs objects = recycle
   recycle:versions = yes
   recycle:touch = yes
   recycle:keeptree = yes
   recycle:exclude = *.tmp *.temp *.o *.obj ~$*
   recycle:exclude_dir = tmp, cache

#======= Share Definitions =======================

[homes]
   comment = Home escolher o nome que quiser apenas comentário
   browseable = no                        // acessar via browser  NÃO
   read only = no                           // visível na rede  NÃO
   create mask = 0700                   // Total apenas para o dono
   directory mask = 0700               // Total apenas para o dono
   valid users = %S                       // valido somente para o usuário
   vfs objects = recycle, full_audit  // aqui chamo a auditoria
   recycle:repository = .recycle     // aqui chamo a lixeira


[netlogon]
   comment = Network Logon Service
   path = /home/samba/netlogon    /Criar a pasta onde ficará os netlogon
    guest ok = yes
    read only = yes
    share modes = no

[profiles]
   comment = Users profiles          // Comentário
   path = /home/samba/profiles    // pasta do profile CRIAR
   read only = no                         // NÃO visivel
   guest ok = no                          // NÃO visível
   browseable = no                      // NÃO acessível via browser
   create mask = 0600                // Permissão apenas para o dono
   directory mask = 0700            // Permissão apenas para o dono

[geral]
   comment = Area de transferencia
   path = /home/Meu-dominio/misc/gera   // Comentário
   read only = no                                     // somente leitura não
   guest only = yes                                 // Visivel na rede
   guest ok = yes                                   // Todos
   force create mode = 0755                   // Permissão vale para todos
   force directory mode = 0755               // Permissão vale para todos
   vfs objects = recycle, full_audit           // auditoria e lixeira
   recycle:maxsize = 524288000            // tamanho da lixeira nesse compartilhamento.
   recycle:repository = .recycle

[sistemas]
   comment = Sistemas interno
   path = /home/Meu-dominio/systems/sistemas
   read only = no
   force create mode = 0777
   force directory mode = 0777
   guest only = yes
   guest ok = yes
   default case = upper
   delete readonly = yes
   vfs objects = recycle, full_audit
   recycle:maxsize = 524288000
   recycle:repository = .recycle

[suporte]
   comment = Suporte - Diretorio do TI
   path = /home/Meu-dominio/ti/suporte
   valid users = @grif_suporte   // acesso somente a usuários adicionada no grupo  grif_suporte
   write list = @grif_suporte   // somente que faz parte da lista grif_suporte
   read only = no                     // somente leitura não
   force create mode = 0777  // Permissão total para o dono, grupo e usuários
   force directory mode = 0777  // Permissão total para o dono, grupo e usuários
   vfs objects = recycle, full_audit  // auditoria e lixeira
   recycle:maxsize = 209715200
   recycle:repository = .recycle

[controle]
   comment = Controle de qualidade
   path = /home/Meu-dominio/department/cq/controle
   valid users = @grif_cq       // Recapitulando  
   write list = @grif_cq          // acesso somente para o grupo grif_cq
   read only = no                    // somente leitura não
   force create mode = 0777   // Permissão total para o dono, grupo e usuários
   force directory mode = 0777  // Permissão total para o dono, grupo e usuários
   vfs objects = recycle, full_audit  // arquivo de auditoria e lixeira
   recycle:maxsize = 209715200     // tamanho Maximo lixeira
   recycle:repository = .recycle      // nome da lixeira

[orcamento]
   comment = Orcamentos                            // Comentário
   path = /home/Meu-dominio/department/orc   // Criar pasta
   valid users = @grif_orc                             // Somente
   write list = @grif_orc                                // Somente
   read only = no                                           // somente leitura não
   force create mode = 0777                        // Permissão total para o dono, grupo e usuários
   force directory mode = 0777                    // Permissão total para o dono, grupo e usuários
   vfs objects = recycle, full_audit                // auditoria e lixeira
   recycle:maxsize = 209715200                 // tamanho Maximo
   recycle:repository = .recycle                  // nome da lixeira

Após essas configurações, reinicie o Samba:

# /etc/init.d/samba restart (em Debian e Ubuntu)

# /etc/usr/local/etc/samba restart (derivações BSD)

Vale lembrar que o arquivo de configuração do Samba é igual para todos as distros. Após concluir a conf do Samba, aconselhável nas máquinas clientes configurar em opções de pastas para não visualizar pastas ocultas, sendo assim os usuários não verão a lixeira estando legível apenas para o administrador da rede.

Dúvidas, estou online 24ho no MSN cLaudio@linuxtec.com.br.

Obrigado pelo espaço...

Outras dicas deste autor

Conversão de Arquivo TXT em PHP

Script IP Válidos na rede interna

Configurando proxy/cache Squid com autenticação

Configurando IP estático em uma placa de rede

Upgrade na senha de root

Leitura recomendada

Sabayon Linux: A distro mais completa e bonita

Autenticação Apache 2 - htaccess via AD

Som apenas em um aplicativo por vez?

Como criar um atalho de navegação anônima no Chrome ou no Chromium

Instalando kernel 2.6.39 no Ubuntu 11.04

  

Comentários
[1] Comentário enviado por Jandairs em 09/02/2011 - 13:57h

OLA BOA TARDE AMIGO COMO FASSO PRA INCLUIR OS USUARIOS DO WINDOWS NO DOMINIO DO SAMBA. QUAIS COMANDO UTILIZAR

[2] Comentário enviado por lks13 em 25/06/2013 - 19:08h

fala Jose Claudio,

como funcionaria a questão de usuário?

[3] Comentário enviado por LinuxTec em 25/06/2013 - 21:12h

Boa noite,

A questão de usuários, ele deve existir no SO( Sistema operacional do seu servidor ) e no Samba Ex:

Para adicionar novos usuários no Samba é importante saber que ele precisa estar previamente criado no Linux. Isso pode ser feito da seguinte forma:

# adduser usuario

A partir daí, para criar o usuário no Samba:

# smbpasswd -a usuario

E para excluir:

# smbpasswd -x usuario



[4] Comentário enviado por gnd em 17/08/2014 - 21:08h

Fiz tudo no debian 6 e da erros

"could not update ICEauthority file /home/usuario/.ICEauthority"

em seguida aparece a mensagem

"Há um problema com o servidor de configuração,
(/usr/lib/libgconf2-4/gconf-sanity-check-2 saiu com status 256)

e por ultimo a mensagem

"nautilus could not create the follwing required folders: /home/usuario/Desktop, /home/usuario/.nautilus

com os usuários validos no servidor samba

[5] Comentário enviado por augusto_erthal em 08/09/2014 - 23:51h

Ola amigo. Me diz uma coisa. Precisk cadastrar as estacoes manualmente jo linux ou aquelas linhas do conf onde fala sobre ADD MAQUINA se ela é adicionada automaticamente.
Obrigado.

[6] Comentário enviado por claudioramos em 14/12/2014 - 19:04h

Nesse tutorial faltou bastante informações, fico incompleto pelo fato de não explicar bem como adicionar uma maquina ao domínio e configurar o perfil dela no samba!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts