Gerenciamento de senhas

Esta seção contém explicações sobre o gerenciamento de senhas no SAMBA.

Ativando o suporte a senhas criptografadas

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:

  1. 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.

  2. 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:

    1. O primeiro é o nome de usuário

    2. UID do usuário no sistema UNIX que a conta será mapeada.

    3. Senha Lan Manager codificada em hex 32 criado usando criptografia DES usada pelo Windows 95/98/ME.

    4. 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.

    5. Opções da conta criada no smbpasswd:

    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.

  3. 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.

  4. Reinicie o processo do SAMBA (veja “Iniciando o servidor/reiniciando/recarregando a configuração”).

  5. 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.

Migrando de senhas texto plano para criptografadas

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.

Adicionando usuários no smbpasswd

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.

  1. 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.

  2. Crie o usuário "joao" no SAMBA:

    smbpasswd -a joao
    

    Será solicitada a senha do usuário.

Removendo usuários do smbpasswd

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

Desabilitando uma conta no smbpasswd

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.

Habilitando uma conta no smbpasswd

Uma conta desativada com o uso do comando smbpasswd -d pode ser novamente ativada usando:

 smbpasswd -e usuario

Alterando a senha de um usuário

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).

Definindo acesso sem senha para o usuário

Para fazer um usuário acessar sem senha, use o comando:

smbpasswd -n usuario

Isto é completamente desencorajado e necessita que a opção null passwords da seção [global] no arquivo smb.conf esteja ajustada para yes (que NÃO é o padrão).

Ativando o suporte a senhas em texto plano

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.

Configurando o acesso de clientes para uso de senhas em texto plano

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).

Lan Manager

Cliente NetBIOS para DOS. Ele trabalha somente com senhas em texto plano.

Windows for Workgroups

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).

Windows 95 / Windows 95A

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.

Windows 95B

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.

Windows 98/98SE

O procedimento é idêntico ao “Windows 95B”.

Windows ME

O procedimento é idêntico ao “Windows 95B”.

Windows NT Server/WorkStation

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.

Windows 2000

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.

Linux

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”.