Esta seção contém explicações sobre o gerenciamento de senhas no SAMBA.
O uso de senhas criptografadas é um requisito quando você deseja configurar o SAMBA para ser um servidor PDC ou um cliente de um domínio. Quando utiliza senhas criptografadas, elas trafegam em formato seguro através da rede, dificultando a captura por outras pessoas. Em versões mais recentes do Windows (a partir da OSR/2 e NT 4 service pack3) o suporte a senhas criptografadas vem habilitado como padrão para login e utilização de serviços da rede. Não é recomendável desativar o uso de senhas criptografadas, mas se mesmo assim for necessário veja “Senhas criptografadas ou em texto puro?”.
Quando usamos senhas criptografadas, elas são armazenadas no arquivo
/etc/samba/smbpasswd
ao invés do
/etc/passwd
, isto permite que possamos controlar as
permissões de usuários separadamente das do sistema e diferenciar os logins do
domínio dos logins do sistema (usuários que possuem shell). Caso tenha um
servidor que já possua muitas contas de usuários acessando em texto plano,
recomendo ler “Migrando de senhas texto plano para criptografadas” para facilitar o
processo de migração de contas.
O utilitário smbpasswd é o programa utilizado para gerenciar este arquivo de senhas e também o status de contas de usuários/máquinas do domínio. Siga estes passos para ativar o uso de senhas criptografadas no SAMBA:
Edite o arquivo /etc/samba/smb.conf
e altere as seguintes
linhas na seção [global]
para adicionar o suporte a senhas
criptografadas:
[global] encrypt passwords = true smb passwd file =/etc/samba/smbpasswd
A linha encrypt passwords = true
diz para usar senhas
criptografadas e que o arquivo /etc/samba/smbpasswd
contém
as senhas (smb passwd file =/etc/samba/smbpasswd
).
Caso sua máquina seja apenas um cliente de rede (e não um PDC), você pode pular para o passo onde o SAMBA é reiniciado (no final dessa lista), não é necessária a criação do arquivo de senhas para autenticação pois os usuários serão validados no servidor.
Execute o comando mksmbpasswd </etc/passwd
>/etc/samba/smbpasswd
. Ele pega toda a base de usuários do
/etc/passwd
e gera um arquivo
/etc/samba/smbpasswd
contendo as contas destes usuários.
Por padrão, todas as contas são DESATIVADAS por segurança quando este novo
arquivo é criado. O novo arquivo terá o seguinte formato:
gleydson:1020:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:Gleydson Mazioli da Silva,,, geovani:1004:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:Geovani Mazioli da Silva,,,
Os campos são separados por ":" e cada campo possui o seguinte significado:
O primeiro é o nome de usuário
UID do usuário no sistema UNIX que a conta será mapeada.
Senha Lan Manager codificada em hex 32 criado usando criptografia DES usada pelo Windows 95/98/ME.
Senha hash criada em formato do NT codificada em hex 32. Esta senha é criada pegando a senha do usuário, convertendo-a para maiúsculas, adicionados 5 bytes de caracteres nulos e aplicando o algoritmo md4.
Opções da conta criada no smbpasswd
:
U
- Especifica que a conta é uma conta de usuário normal
(veja “Adicionando usuários no smbpasswd
”)
D
- Significa que a conta foi desativada com a opção
-d
(veja “Desabilitando uma conta no smbpasswd
”).
W
- Especifica que a conta é uma conta de máquina criada com
a opção -m
(veja “Contas de máquinas de domínio”).
N
- A conta não possui senha (veja “Definindo acesso sem senha para o usuário”).
Os caracteres "XXXXXXXXXXXXXXX" no campo da senha, indica que a conta foi recém criada, e portanto está desativada. O próximo passo é ativar a conta para ser usada pelo SAMBA.
ATENÇÃO: O método de criptografia usado
neste arquivo não é totalmente seguro. Recomendo manter o arquivo de senhas
smbpasswd
em um diretório com a permissão de leitura
somente pelo root
.
Para ativar a conta do usuário gleydson
, usamos o comando:
smbpasswd -U gleydson
Digite a senha do usuário e repita para confirmar. Assim que a senha for definida, a conta do usuário é ativada. Você também pode especificar a opção "-s" para entrar com a senha pela entrada padrão (muito útil em scripts). Apenas tenha cuidado para que esta senha não seja divulgada em seus arquivos/processos.
Reinicie o processo do SAMBA (veja “Iniciando o servidor/reiniciando/recarregando a configuração”).
Verifique se o suporte a senhas criptografadas está funcionando com o comando:
smbclient -L localhost -U gleydson
Substitua localhost
pelo IP do servidor e
gleydson
pelo usuário. Caso obtenha a mensagem
session setup failed: NT_STATUS_LOGON_FAILURE
significa que
a senha informada está incorreta.
No SAMBA, é possível fazer um processo de migração de senhas em texto plano de usuários para criptografadas sem que eles deixem de acessar o servidor durante esta mudança. Caso este seja seu caso, insira o parâmetro
update encrypted = yes
na seção [global]
do seu arquivo de configuração
smb.conf
. A senha criptografada é definida assim que o
usuário se logar usando sua senha em texto plano. Não se esqueça de desativar
esta opção ou remove-la após o prazo necessário para que todas as senhas sejam
trocadas.
A adição de um usuário no smbpasswd
segue duas etapas:
primeiro é necessário adiciona-lo no sistema com o adduser e
depois no samba com o smbpasswd. Você deve estar se
perguntando qual a vantagem de se ter um arquivo separado de usuários se ainda
é preciso criar o login nos dois arquivos; O SAMBA para
fazer o controle de acesso aos arquivos utiliza além dos mecanismos
tradicionais do NT, o controle de permissões a nível UNIX para manter os
arquivos ainda mais restritos. Além disso, será necessário usuários e grupos
para criação e acesso ao sistema.
Adicione um usuário no sistema com o comando:
useradd -g grupo-dominio -c "Usuário de Domínio" -s /bin/false -d /dev/null joao
Este comando adiciona o usuário "joao" no grupo
grupo-dominio
e não define hem uma shell, diretório home nem
senha para este usuário. Isto mantém o sistema mais seguro e não interfere no
funcionamento do SAMBA, pois somente é necessário para fazer o mapeamento de
UID/GID de usuários com as permissões do sistema UNIX.
É interessante padronizar os usuários criados no domínio para um mesmo grupo para pesquisa e outras coisas.
Crie o usuário "joao" no SAMBA:
smbpasswd -a joao
Será solicitada a senha do usuário.
Utilize o comando smbpasswd -x usuario
para remover um
usuário do arquivo smbpasswd
. Se desejar, você pode
manter o usuário no /etc/passwd
ou remove-lo com o
userdel.
OBS: Removendo um usuário deste arquivo fará
que ele não tenha mais acesso ao SAMBA. Utilize o comando smbpasswd
-a teste
Como administrador, pode ser necessário que precise desativar temporariamente uma conta de usuário por alguma situação qualquer (má utilização de recursos, dúvida se a conta está sendo usada, para que ele ligue reclamando de autenticação para ter aquela desejada conversa (hehe), etc.). Remover uma conta e novamente adiciona-la então não é uma situação muito prática. Utilize então o seguinte comando para desativar uma conta de usuário:
smbpasswd -d usuario
Quando a conta de usuário é desativada, uma flag "D" é adicionada às opções do
usuário (junto com as opções "UX"). Veja “Habilitando uma conta no smbpasswd
” para reativar a conta.
Uma conta desativada com o uso do comando smbpasswd -d
pode
ser novamente ativada usando:
smbpasswd -e usuario
O utilitário smbpasswd pode ser usado tanto para alterar a senha de usuários locais do SAMBA ou de uma conta em um servidor remoto (seja SAMBA, NT, W2K). Para alterar a senha de um usuário local, digite:
smbpasswd -U usuario
Lhe será pedida a antiga senha, a nova senha e a confirmação. Caso seja o
usuário root
, somente a nova senha e a confirmação. Isto é
mecanismo de proteção para usuários que esquecem a senha ;-)
Para alterar a senha de um usuário remoto, utilize:
smbpasswd -r servidor -U usuario
Note que apenas foi adicionada a opção -r servidor
comparado
com a opção anterior. A diferença é que a senha antiga do usuário sempre será
solicitada para troca (pois o root das 2 máquinas pode não ser o mesmo).
Esta forma de autenticação é enviada por implementações NetBIOS antigas, como a encontrada no Lan Manager, Windows for Workgroups e Windows 95 OSR1. As versões mais novas destas implementações enviam a senha em formato criptografado, sendo necessário também usar o formato criptografado no SAMBA para que possa se autenticar (veja “Ativando o suporte a senhas criptografadas”).
Em “Senhas criptografadas ou em texto puro?” é feita uma comparação entre o uso de
autenticação usando senhas em texto plano e senhas criptografadas. Em geral, o
administrador prefere a utilização da autenticação usando texto plano quando
deseja usar o /etc/passwd
para autenticação e está usando
grupos de trabalho é necessário usar senhas criptografadas para autenticação).
Para configurar o SAMBA para utilizar senhas em texto,
modifique o parâmetro encrypt passwords
para
no
:
[global] encrypt passwords = no
Reinicie o SAMBA (“Iniciando o servidor/reiniciando/recarregando a configuração”) e a
partir de agora, ele usará o /etc/passwd
para
autenticação.
OBS: Tenha certeza de não estar participando de um domínio ou que sua máquina seja o PDC antes de fazer esta modificação.
Esta seção descreve como configurar clientes para acessar o servidor SAMBA usando autenticação em texto plano. Atualmente o guia cobre os seguintes clientes:
Em cada seção, também é explicado como habilitar novamente a autenticação usando senhas criptografadas (se suportado pelo cliente).
Este é o padrão de autenticação do Windows for Workgroups caso não tenha feito nenhuma alteração específica (mas desconheço algo que faça-o trabalhar com senhas criptografadas).
O Windows 95 até a release "A", utiliza texto plano como padrão para autenticação (veja qual a release clicando com o botão direito em Meu Computador e Propriedades.
Copie o seguinte conteúdo para um arquivo chamado
win95-textoplano.reg
:
REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP] "EnablePlainTextPassword"=dword:00000001
Após isto, execute no Windows 95 o seguinte comando:
regedit win95-textoplano.reg
e reinicie o computador para
fazer efeito.
Para voltar a utilizar criptografia, apenas altere o valor
dword
para 00000000
no arquivo e executa
novamente o regedit.
O procedimento é idêntico ao “Windows 95B”.
O procedimento é idêntico ao “Windows 95B”.
Copie o seguinte conteúdo para um arquivo chamado
winNT-textoplano.reg
:
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters] "EnablePlainTextPassword"=dword:00000001
Após isto, execute no Windows NT o seguinte comando:
regedit winNT-textoplano.reg
e reinicie o computador para
fazer efeito.
Para voltar a utilizar criptografia, apenas altere o valor
dword
para 00000000
no arquivo e execute
novamente o regedit.
Copie o seguinte conteúdo para um arquivo chamado
win2000-textoplano.reg
:
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters] "EnablePlainTextPassword"=dword:00000001
Após isto, execute no Windows 2000 o seguinte comando:
regedit win2000-textoplano.reg
e reinicie o computador para
fazer efeito.
Para voltar a utilizar criptografia, apenas altere o valor
dword
para 00000000
no arquivo e execute
novamente o regedit.
Inclua/modifique a linha encrypt passwords = no
no arquivo
smb.conf
e reinicie o SAMBA. Para
voltar a utilizar criptografia, veja “Ativando o suporte a senhas criptografadas”.
Copyright © 1999-2020 - Gleydson Mazioli da Silva