Fonte: http://pt.wikibooks.org/wiki/Guia_do_Linux/Avan%C3%A7ado/SAMBA/Configura%C3%A7%C3%A3o_em_Dom%C3%ADnio (apenas para eu não ficar procurando em outro lugar quando eu precisar)
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.
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].
É 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.
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 ;-)
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:
; 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:
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].
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.
Para criar uma conta de domínio para a máquina master, siga estes 2 passos:
/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.
/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.
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.
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.
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:
/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 com Win9X
e WinNT
.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 podem 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.
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:
/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 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.
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. \