Configuração "automágica" de servidor Linux PDC Samba

Apresentamos uma configuração de servidor Linux Samba com autenticação centralizada (PDC) por meio de um programa configurável escrito em shell script. Aplicamos algumas restrições de segurança e procuramos estabelecer padrões de configuração passíveis de serem modificados, de acordo com as necessidades dos administradores.

[ Hits: 35.973 ]

Por: lourival araujo da silva em 18/09/2008


Operação salvamento



Precisamos ter a configuração do Samba correspondente às seções criadas por meio do script.

Editaremos o arquivo de configuração do servidor SAMBA para que corresponda aos ajustes realizados. O valor de "$rede" deve ser substituído pela faixa correspondente do usuário.

/etc/samba/smb.conf

[globals]

   workgroup = empresa
   netbios name = servidor
   domain master = yes
   logon script = netlogon.bat
   logon home = \\%U\.profiles
   logon path = \\%L\profiles\%U
   logon drive = j:

   security = user
   encrypt passwords = yes
   os level = 100

   log file = /var/log/samba/log.%m
   max log size = 1000
   socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
   hosts allow = 127.0.0.0/8  $rede

   obey pam restrictions = Yes
   smb passwd file = /etc/samba/smbpasswd
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
   winbind use default domain = yes
   winbind enum users = yes
   winbind enum groups = yes
   idmap uid = 10000-20000
   idmap gid = 10000-20000
   template homedir = /home/%U
   template shell = /bin/bash

[netlogon]
   comment = Servico de logon
   path = /var/samba/netlogon
   guest ok = yes
   browseable = no

[profiles]
   path = /var/samba/profiles
   writable = yes
   browseable = no
   create mask = 0600
   directory mask = 0700

[home]
   browseable = no
   read only  = no

[gerencia]
   path = /var/empresa/gerencia
   browseable = yes
   writable = yes
   read only = no
   admin users = @gerencia
   write list = @gerencia

[vendas]
   path = /var/empresa/vendas
   browseable = yes
   writable = yes
   read only = no
   admin users = @vendas @suporte
   write list = @vendas

[compras]
   path = /var/empresa/compras
   browseable = yes
   writable = yes
   read only = no
   admin users = @compras @suporte
   write list = @compras

[marketing]
   path = /var/empresa/marketing
   browseable = yes
   writable = yes
   read only = no
   admin users = @marketing @suporte
   write list = @s4

[noticias]
   path = /var/empresa/noticias
   browseable = yes
   writable = yes
   read only = no
   admin users = @noticias @suporte
   write list = @suporte

[publico]
   path = /dados/publico
   browseable = yes
   writable = yes
   read only = no
   admin users = @suporte
   write list = @gerencia @vendas @compras @marketing @noticias

Inicialmente editamos o script e ajustamos os grupos necessários ao funcionamento desejado. Em seguida, damos as permissões adequadas e o executamos. A operação de restauração poderá ser feita para esta configuração inicial, desde que se tenha um backup atualizado, e se execute o script na máquina em questão, restaurando-se em seguida o backup dos arquivos guardados no servidor.

Podemos incluir um grupo chamado suporte e dar permissão administrativa em todos os compartilhamentos aos membros desse grupo. Teremos, então, o grupo de administradores do servidor.

chmod 700 restore_samba.sh
$ ./restore_samba


Podemos criar um segundo script com um pequeno conjunto de instruções responsável pela inclusão e gerenciamento de usuários. Atividade que constitui a principal ocupação da administração do servidor de autenticação.

Por hora, contudo, ficamos por aqui.

Boa sorte a todos!

Página anterior    

Páginas do artigo
   1. Considerações iniciais
   2. Construção do servidor
   3. Ações interativas
   4. Script resultante
   5. Operação salvamento
Outros artigos deste autor

Mudança de hábito: autenticando usuários em base de dados MySQL

Autenticação via hardware: o módulo pam_usb

webCalendar: a agenda e o PAM

Servidor Samba "Autoservice"

Autenticação via hardware: o módulo pam_blue

Leitura recomendada

Proxy reverso com ModSecurity no Debian Etch

Fazendo sua conexão remota por SSH mais segura

Implementando segurança no SSH

Ping - O que há por trás?

Hardening, se adequando as normas ISO 27000

  
Comentários
[1] Comentário enviado por lbruni em 18/09/2008 - 13:30h

Tava precisando de algo assim para criar um PDC e fazer as máquinas windows logarem nele... o problema é q as máquinas windows XP não estão aceitando o PDC linux como domínio... como eu faço isso? Já ví arquivos .reg para executar nessas máquinas mas nunca deu certo... me dá uma luz nisso também???

Valeu!

[2] Comentário enviado por araujo_silva em 18/09/2008 - 23:20h

Caro lbruni,

Existem duas formas para contornar esse problema (não sei a versão do service pack instalado):
a) alterar: painel de controle > sistema > nome da maquina > (workgroup || dominio). Em alguns casos incluir a opção workgroup funciona nas maquinas WinXP.
b) teste no servidor: $ testparm (verificar a coerencia do arquivo smb.conf); $ smbstatus (verifica os clientes e maquinas logados no servidor); $ smbclient -L localhost -U usuariowindows%senha (verifica os compartilhamentos visiveis para o usuario considerado);
teste em um cliente Linux: $ smbmount //servidor/publico /mnt/publico -o username=usuariowindows,password=senhadowindows (testa se o usuario do dominio consegue realizar montagens).
Verifique os logs, e reporte as falhas.
Abraços,
Lourival

[3] Comentário enviado por metall em 21/09/2008 - 22:45h

Gostaria de saber se tem como fazer o linux ligar no PDC ?
estou precisando com urgencia... se alguem souber da um toque...

Abraço.

[4] Comentário enviado por araujo_silva em 22/09/2008 - 10:00h

Caro metall

Existem algumas formas. Estaremos disponibilizando um programa interativo para operar com cliente e usuário de domínio com o samba.
As operações envolvem juntar o seu Linux ao domínio (primeiro verifique se está no domínio):
$ net rpc testjoin seudominio
$ net rpc join -S server -U admin
$ wbinfo -u
$ wbinfo -g
Existem vários arquivos (/etc/pam.d) a serem editados, verifique o arquivo que configura o programa login (/etc/pam.d/login). Deve existir pelo menos duas linhas com o módulo winbind:
auth sufficient pam_winbind.so
auth required pam_unix.so use_first_pass

account sufficient pam_winbind.so
account required pam_unix.so use_first_pass

session optional pam_mkhomedir.so skel=/etc/skel umask=0022
session optional pam_limits.so

password sufficient pam_winbind.so
password required pam_unix.so try_first_pass

(Nesta configuração o sistema priorizará a autenticação no domínio, somente se falhar buscará autenticação local).
Não esqueça de consultar o arquivo de seleção de base de autenticação (/etc/nsswitch.conf), ao menos três linhas têm que possuir a base NT (modulo winbind) como referência:

passwd: compat winbind
group: compat winbind
shadow: compat winbind

Leia os arquivos de log (/var/log/auth.log) eles ajudam a corrigir as falhas.

Abraços,

Lourival


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts