Guia do Linux/Avançado/SAMBA/Configuração em Domínio
Configuração em Domínio
[editar | editar código-fonte]Esta seção descreve todos os passos necessários para configurar um servidor de domínio PDC (Primary Domain Control) com perfis móveis e outros recursos que tornam úteis e seguras a administração de uma rede NetBEUI.
Uma breve introdução a um Domínio de rede
[editar | editar código-fonte]Um domínio de rede consiste em uma máquina central chamada de servidor, que mantém o controle de todas as contas de usuários/grupos e permissões para acesso a rede. O acesso desta forma é centralizado, como vantagem disto você pode usar o nível de acesso por usuários nas máquinas, definindo quais usuários ou grupos terão acesso de leitura/gravação, além de tudo que é feito gera uma cópia no servidor.
É permitido criar scripts de logon, assim comandos programados pelo administrador serão executados nas máquinas clientes durante o logon no domínio (veja [#s-s-samba-dom-logonscripts Criando Scripts de logon, Seção 18.7.7]).
O nome da máquina é protegido contra hijacking através de contas de máquinas que fazem parte do domínio (veja [#s-s-samba-dom-contasmac Contas de máquinas de domínio, Seção 18.7.5]). Isto só é possível em clientes Linux
, Windows NT
, Windows 2000
e Windows XP
.
Você poderá usar perfis móveis, copiando todas as personalizações do seu desktop para qualquer máquina na rede que você faça o logon. Para o administrador, ele poderá definir políticas com o Poledit
e outros programas que serão salvas junto com o perfil do usuário, valendo para qualquer máquina que ele se autentique na rede (veja [#s-s-samba-dom-logonscripts Criando Scripts de logon, Seção 18.7.7]).
Se você deseja iniciar logo a configuração do seu domínio, siga até [#s-s-samba-dom-config Configurando um servidor PDC no SAMBA, Seção 18.7.4].
Local Master Browser
[editar | editar código-fonte]É a máquina que ganhou a eleição no segmento local de rede (veja [#s-s-samba-s-oslevel Níveis de sistema para eleição de rede, Seção 18.2.12]). Logo que é declarada o local master browser, ela começa a receber via broadcasting a lista de recursos compartilhados por cada máquina para montar a lista principal que será retornada para outras máquinas do grupo de trabalho ou outras subredes que solicite os recursos compartilhados por aquele grupo. Uma nova eleição é feita a cada 36 minutos ou quando a máquina escolhida é desligada.
Domain Master Browser
[editar | editar código-fonte]Quando o local master browse é eleito no segmento de rede, uma consulta é feita ao servidor WINS para saber quem é o Domain Master Browse da rede para enviar a lista de compartilhamentos. A máquina escolhida como Local Master Browse envia pacotes para a porta UDP 138 do Domain Master e este responde pedindo a lista de todos os nomes de máquinas que o local master conhece, e também o registra como local master para aquele segmento de rede. Caso tenha configurado sua máquina para ser o domain master browser da rede (também chamado de controlador principal de domínio ou PDC), ela tentará se tornar a máquina que terá a lista completa de recursos enviados pelos locais master browsers de cada segmento de rede. Um PDC também é o local master browse de seu próprio segmento de rede. É possível ter mais de um domain master browse, desde que cada um controle seu próprio domínio, mas não é possível ter 2 domain master browsers em um mesmo domínio. Caso utilize um servidor WINS em sua rede, o PDC fará consultas constantes em sua base de dados para obter a lista de domínios registrados. O domínio é identificado pelo caracter 1b na rede (veja [#s-s-samba-c-workgroup-linux-nmblookup nmblookup, Seção 18.14.2.9.3]). OBS: O Windows NT configurado como PDC sempre tenta se tornar o domain master browser em seu grupo de trabalho. Não sendo possível retirar o Windows NT configurado como PDC do domínio (por alguma outra razão), a única forma será deixar ele ser o domain master browser. Se este for o caso, você poderá continuar lendo este documento para aprender mais sobre NetBIOS e talvez ainda mudar de idéia sobre manter o NT na rede após ver as características do SAMBA ;-)
Configurando um servidor PDC no SAMBA
[editar | editar código-fonte]Esta é a parte interessante do guia, a prática. Para os administradores que conhecem através da experiência própria os problemas e definições do SAMBA, grande parte do guia foi apenas uma revisão (por favor, se faltou algo que acha interessante, me notifiquem que incluirei na próxima versão e colocarei uma nota no lançamento e na página com os devidos créditos :-)) Para configurar uma máquina para ser o PDC (Controladora Principal de Domínio ou Primary Domain Control), siga esta sequência:
- Habilite o suporte a senhas criptografadas. Caso ainda não tenha feito isso, leia a seção [#s-s-samba-senhas-crypto Ativando o suporte a senhas criptografadas, Seção 18.8].
- Na seção [global], insira/modifique os seguintes parâmetros:
; Identificação da máquina e domínio netbios name = gleydson workgroup = focalinux ;níveis de acesso e funções do servidor security = user domain master = yes prefered master = yes local master = yes ; senhas criptografadas encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd.db
Onde os parâmetros significam:
- netbios name = gleydson - Nome do computador. Este também será o nome usado pelas outras máquinas clientes quando for configurar o PDC (controlador de domínio).
- workgroup = focalinux - Nome do domínio que está criando. Todas as máquinas que pertencerem a este domínio, terão o nível de acesso definido pelo PDC. Note que o parâmetro workgroup também é usado ao especificar o nome do grupo de trabalho quando se é usado a configuração grupo de trabalho ([#s-s-samba-wrkgrp Configuração em Grupo de Trabalho, Seção 18.4]).
- security = user - Requerido para controle de acesso por domínio, já que é utilizado o controle de acesso local usando usuários e grupos locais.
- domain master = yes - Especifica se está máquina está sendo configurada para ser o PDC da rede.
OBS: Por favor, certifique-se que não existe outro PDC no domínio. Veja [#s-s-samba-dom-dmbrowser Domain Master Browser, Seção 18.7.3]. prefered master = yes - Força uma eleição com algumas vantagens para seu servidor ser eleito sempre como o controlador de domínio. Isto garante que a máquina SAMBA
sempre seja o PDC. Veja [#s-s-samba-s-global-browsing Navegação no servidor/tipo de servidor, Seção 18.2.8.6]. local master = yes - Define se a máquina será o controlador principal do grupo de trabalho local que ela pertence.
Pronto, agora teste se existem erros em sua configuração executando o comando testparm
([#s-s-samba-s-testparm Buscando problemas na configuração, Seção 18.2.11]) e corrija-os se existir. Resta agora reiniciar o servidor nmbd
para que todas as suas alterações tenham efeito. Para adicionar seus clientes a um domínio, veja [#s-s-samba-dom-contasmac Contas de máquinas de domínio, Seção 18.7.5] e [#s-s-samba-c-dominio Configurando clientes em Domínio, Seção 18.14.3].
Contas de máquinas de domínio
[editar | editar código-fonte]Uma conta de máquina de domínio garante que nenhum outro computador possa utilizar o mesmo nome de uma máquina confiável e assim utilizar os compartilhamentos que ela tem permissão. Os clientes Windows NT
, Windows XP
e Windows 2000
precisam de uma conta de máquina para ter acesso ao domínio e seus recursos. A criação de uma conta de máquina é bastante semelhante a criação da conta de um usuário normal no domínio.
Existe uma coisa que precisa sempre ter em mente quando estiver configurando uma conta de máquina de domínio: Quando você cria uma conta para a máquina, ela entra e altera sua senha no próximo logon usando um "segredo" entre ela e o PDC, este segredo a identifica sempre como dona daquele nome NetBIOS, ou seja, até o primeiro logon no NT, outra máquina com o mesmo nome NetBIOS poderá ser a dona do netbios naquele domínio caso faça o logon no domínio. A única forma de se evitar isto é logar imediatamente no domínio NT assim que criar as contas de máquinas.
Existem duas formas para criação de contas de máquinas: manual e automática.
Criando contas de máquinas manualmente
[editar | editar código-fonte]Para criar uma conta de domínio para a máquina master, siga estes 2 passos:
- Crie uma conta de máquina no arquivo
/etc/passwd
:
useradd -g domainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null master$
O comando acima cria uma conta para a máquina master$ e torna ela parte do grupo domainmac. É necessário especificar o caracter $ após o nome da máquina para criar uma conta de máquina no domínio, caso contrário o próximo passo irá falhar. Acredito que nas próximas versões do SAMBA seja desnecessário o uso do arquivo /etc/passwd
para a criação de contas de máquina.
- Crie uma conta de máquina no arquivo
/etc/samba/smbpasswd
:
smbpasswd -m -a master
Isto cria uma conta de máquina para o computador master no arquivo /etc/samba/smbpasswd
. Note que a criação de uma conta de máquina é muito semelhante a criação de um usuário apenas precisa adicionar a opção -m. Quando for criar uma conta com o smbpasswd
Não é necessário especificar $ no final do nome da máquina.
O mais importante: Entre IMEDIATAMENTE no domínio após criar a conta de máquina usando a conta de administrador de domínio criada no SAMBA (veja [#s-s-samba-dom-admin Criando uma conta de administrador de domínio, Seção 18.7.6])! como a máquina ainda não se autenticou pela primeira vez, qualquer máquina que tenha o mesmo nome e entre no domínio, poderá alocar o nome recém criado. A única forma de resolver este problema, é apagando a conta de máquina e criando-a novamente no domínio. Siga os passos de acordo com o sistema operacional em [#s-s-samba-c-dominio Configurando clientes em Domínio, Seção 18.14.3] para colocar seus clientes em domínio.
OBS1: Como segurança, recomendo desativar a conta de máquina no /etc/passwd
usando o comando passwd -l conta. Esta conta NUNCA deverá ser usada para login, isto deixa nossa configuração um pouco mais restrita.
OBS2: A localização do arquivo de senhas criptografadas do SAMBA pode ser modificado através da opção smb passwd file na seção [global] do arquivo smb.conf
.
OBS3: Os que tem experiência com NT e Windows 2000 devem ter notado que este método é semelhante ao do Server Manager das ferramentas de gerenciamentos de servidores existentes no Windows.
Criando contas de máquinas automaticamente
[editar | editar código-fonte]Através deste método, as máquinas clientes terão sua conta criada automaticamente assim que seja feita a entrada no domínio usando a conta do administrador de domínio no SAMBA. Este é o método recomendável de colocação de máquinas no domínio por ser mais prática ao invés do método manual. Note que normalmente isto funciona para o WinXP e Win2000 mas não funciona em redes com o NT4, devendo ser criadas contas de máquinas usando o método manual.
Para fazer a configuração automática, coloque a seguinte linha no arquivo smb.conf
na seção [global]:
add user script = useradd -g domainmac -c "Maquina de Dominio" -s /bin/false -d /dev/null %u
Assim, a conta de máquina será automaticamente criada quando o administrador fizer sua configuração no domínio (veja [#s-s-samba-dom-admin Criando uma conta de administrador de domínio, Seção 18.7.6]). No SAMBA 3.0, a opção add machine script deverá ser usada no lugar de add user script para adicionar uma máquina no domínio.
Criando uma conta de administrador de domínio
[editar | editar código-fonte]A conta de administrador do domínio é a conta que tem permissões para realizar operações de manutenção e administração de máquinas que compõem o domínio de rede. Com ela é possível, entre outras coisas, adicionar e remover máquina que compõem o domínio. Para especificar que contas de usuários do arquivo /etc/samba/smbpasswd
que terão poderes administrativos, utilize a opção domain admin group ou admin users na seção [global] do arquivo /etc/samba/smb.conf
.
O parâmetro admin users permite que todas as operações realizadas pelo usuário sejam feitas com poderes de usuário root. Isto é necessário porque o arquivo smbpasswd
(usado para ajustar as contas de máquinas) normalmente tem permissões de leitura/gravação somente para root. O domain admin group permite que usuários específicos ou usuários do grupo especificado sejam parte do grupo de administradores do domínio para adicionar máquinas, etc. Por exemplo, para tornar o usuário gleydson com privilégios para adicionar/remover máquinas no domínio:
[global] ... admin users = gleydson ou domain admin group = @admins gleydson
Isto permite que o usuário gleydson possa adicionar/remover máquinas do domínio NT (veja [#s-s-samba-c-dominio Configurando clientes em Domínio, Seção 18.14.3]) entre outras tarefas. Por segurança, recomendo que coloque esta conta no invalid users de cada compartilhamento para que seja utilizada somente para fins de gerenciamento de máquinas no domínio, a menos que deseje ter acesso total aos compartilhamentos do servidor (nesse caso, tenha consciência do nível de acesso que esta conta possui e dos problemas que pode causar caso caia em mãos erradas).
OBS1: Tenha SEMPRE bastante cuidado com quem dará poderes de administrador de domínio, pois toda sua rede poderá ficar vulnerável caso os cuidados de administração não estejam em boas mãos.
OBS2: Em versões antigas do SAMBA, somente o usuário root tem poderes para adicionar máquinas no domínio usando o parâmetro domain admins group, devendo ser também adicionado no arquivo smbpasswd
para que possa fazer isto e obviamente não deverá estar listado em invalid users. Mesmo assim, existem outras formas explicadas no guia de se contornar o risco causado pela liberação de acesso do usuário root.
Criando Scripts de logon
[editar | editar código-fonte]Uma dos recursos mais úteis em um domínio é a possibilidade de se executar comandos nas máquinas cliente quando fazem o logon no domínio. Desta forma, é possível instalar programas, executar anti-vírus, mapear compartilhamentos automaticamente no clientes, etc. A programação de scripts de logon é feita usando a linguagem em lote do DOS, com possibilidades de usar variáveis de ambiente, cópia de arquivos entre servidores, etc. O guia não irá abordar a programação em linguagem de lote, mas isto é simples de se encontrar na internet e mesmo a documentação que acompanha o próprio Windows
é útil.
Para habilitar o recurso de scripts de logon na máquina, adicione os seguintes parâmetros no arquivo smb.conf
:
[global] domain logons = yes logon script = logon.cmd [netlogon] path = /pub/samba/netlogon read only = yes write list = ntadmin
Segue a descrição de cada parâmetro com detalhes importantes para a configuração e funcionamento do recurso de logon:
- domain logons - Deve ser definido para yes para ativar o recurso de logon scripts do SAMBA.
- logon drive é a unidade de disco que terá o homedir do usuário mapeado. Isto somente é usado por máquinas NT/2000/XP.
- logon script - Define qual é o script que será executado na máquina cliente quando fizer o logon. Ele deve ser gravado no diretório especificado pela opção path do compartilhamento [netlogon] (
/pub/samba/netlogon
no exemplo). Os scripts de logon podem ser tanto em formato.bat
ou.cmd
. Se for programar um script universal, é recomendável o uso do formato.bat
por ser compatível tanto comWin9X
eWinNT
.
Um detalhe que deve ser lembrado durante a programação do script de logon é que ele DEVE seguir o formato DOS, ou seja, ter os caracteres CR LF como finalizador de linhas. Para utilizar editores do UNIX para escrever este script, será necessário executar o programa flip
(flip -m -b arquivo) ou unix2dos
no arquivo para converte-lo em formato compatível com o DOS.
Segue abaixo um exemplo de script de logon que detecta quando o cliente é Windows 95/NT, ajusta a hora com o servidor e mapeia 2 unidades de disco:
@echo off cls rem Logon Script desenvolvido por Gleydson Mazioli rem da Silva como modelo para o guia Foca GNU/Linux rem rem Este script pode ser utilizado para fins didáticos rem e distribuído livremente de acordo com os termos rem da GPL rem echo "Aguarde enquanto sua máquina efetua" echo "o logon na rede do domínio focalinux." rem if %OS%==Windows_NT goto NT-2000 rem echo "--------------------------------" echo "SO: %OS%" echo "Usuário: %USERNAME%" echo "Grupo de Trabalho: %LANGROUP%" echo "Servidor: %DOMINIO%" echo "--------------------------------" echo "Recuperando compartilhamentos" rem mapeia o compartilhamento publico definido no servidor net use e: \\gleydson\publico echo "Sincronizando data/hora" rem sincroniza a data/hora com o servidor net time \\gleydson /set /yes goto fim rem rem :NT-2000 echo "--------------------------------" echo "SO: %OS%" echo "Usuário: %USERNAME%" echo "Windows: %windir%" echo "Logon de domínio: %LOGONSERVER%" echo "--------------------------------" echo "Recuperando compartilhamentos" net use e: \\gleydson\publico /persistent:yes echo "Sincronizando data/hora" net time \\gleydson /set /yes rem rem goto fim rem :fim
Note no exemplo acima que não pode haver linhas em branco, você deverá utilizar a palavra rem (comentário em arquivos em lote) em seu lugar. Note que existem diferenças entre o comando net
do Windows 9x/ME e do NT, as variáveis também possuem um significado diferente entre estes 2 sistemas, isto explica a necessidade de se incluir um bloco separado detectando a existência de qual sistema está sendo efetuado o logon.
A lista completa de variáveis disponíveis para cada sistema operacional pode ser obtida colocando-se set >c:\vars.txt que gravará uma lista de variáveis disponíveis durante o logon no arquivo c:\vars.txt
da máquina cliente.
OBS: Caso especifique um computador que contém o script de login, lembre-se de faze-lo sempre com \ ao invés de / para não ter incompatibilidade com o Windows 95/3.11
.
ATENÇÃO: Lembre-se que copiar e colar pode não funcionar para este script. Leia novamente esta seção do guia se estiver em dúvidas.
Configurando perfis de usuários
[editar | editar código-fonte]Os profiles permitem que os clientes utilizem o mesmo perfil em qualquer máquina que ele se autentique na rede. Isto é feito após a autenticação copiando os arquivos que contém os dados de personalização de usuários (user.dat
, NTuser.dat
) para a máquina local. Este processo também inclui a cópia de papéis de parede, links da área de trabalho, cache do IE, etc. Para configurar o recurso de perfis móveis no domínio, é necessário adicionar os seguintes parâmetros no seu arquivo smb.conf
:
[global] security = user encrypt passwords = yes domain logons = yes logon drive = H: logon path = \\%N\profilesNT\%u logon home = \\%N\profiles\%u preserve case = yes short preserve case = yes case sensitive = no [profiles] path = /pub/profiles read only = no create mask = 0600 directory mask = 0700 [profilesNT] path = /pub/profilesNT read only = no create mask = 0600 directory mask = 0700
Segue a descrição dos parâmetros de detalhes para seu funcionamento:
- O parâmetro domain logons = yes especifica que o servidor será usado para fazer logons no domínio. Quando este parâmetro é definido para yes, a máquina automaticamente tentará ser o PDC.
- logon path e logon home definem (respectivamente) o diretório de logon do
/pub/profilesNT/usuario
(NT
) e/pub/profiles/usuario
(Win95
) respectivamente. Durante o logon, a variável %N será substituída pelo nome do servidor (ou servidor de diretórios, se for o caso) e a variável %u pelo nome do usuário.
O sistema operacional de origem é detectado no momento da conexão. Isto significa que o usuário poderá ter 2 profiles diferentes, de acordo com o tipo de sistema operacional cliente que estiver conectando.
- O diretório home do usuário será mapeado para a unidade H: (logon drive = h:). O parâmetro logon drive somente é usado pelo NT/2000/XP.
- As opções preserve case, short preserve case e case sensitive permite que os nomes dos arquivos/diretórios tenham as letras maiúsculas/minúsculas mantidas, isto é requerido para os profiles.
O compartilhamento dos 2 profiles pode ser feito sem tantos traumas, mas isto não será explicado profundamente no guia pois o procedimento segue o mesmo padrão do NT sendo bastante documentado na internet. Note que é possível definir um servidor separado para servir os profiles para um domínio modificando a variável %N para apontar direto para a máquina. Na máquina que armazenará os profiles, basta definir o nível de segurança por servidor (security = server) e o endereço IP do servidor de senhas (password server = IP). OBS1: Os perfis só funcionam caso o servidor de profiles contenha a opção security = user e encrypt passwords = yes ou security = server e password server = endereço_IP. Caso tenha problemas, verifique se uma destas alternativas está correta. OBS2: Quando utiliza o SAMBA com o Windows 2000 SP2, é necessário adicionar a opção nt acl support = no no compartilhamento [profiles], caso contrário, ele retornará um erro de acesso ao compartilhamento.
Modificações de permissões de acesso pelos clientes do domínio
[editar | editar código-fonte]Um usuário do Windows NT (ou versões baseadas neste) pode modificar as permissões dos arquivos/diretórios que tem acesso através da caixa de diálogo de listas de acesso do NT, lembrando que estas permissões nunca substituirão as definidas pelo administrador local. A opção "nt acl support" deverá estar definida para "yes" na seção [global] do arquivo de configuração, caso contrário você não terá acesso para mudar as permissões através de caixas de diálogo do NT. \