Guia do Linux/Avançado/SAMBA/Ativando o suporte a senhas criptografadas

Origem: Wikilivros, livros abertos por um mundo aberto.

Ativando o suporte a senhas criptografadas[editar | editar código-fonte]

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 [#s-s-samba-a-passwords Senhas criptografadas ou em texto puro?, Seção 18.12.15]. 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 [#s-s-samba-senhas-crypto-migrando Migrando de senhas texto plano para criptografadas, Seção 18.8.1] 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 [#s-s-samba-senhas-crypto-criando Adicionando usuários no smbpasswd, Seção 18.8.2])
    • D - Significa que a conta foi desativada com a opção -d (veja [#s-s-samba-senhas-crypto-desabilitando Desabilitando uma conta no smbpasswd, Seção 18.8.4]).
    • W - Especifica que a conta é uma conta de máquina criada com a opção -m (veja [#s-s-samba-dom-contasmac Contas de máquinas de domínio, Seção 18.7.5]).
    • N - A conta não possui senha (veja [#s-s-samba-senhas-crypto-nopasswd Definindo acesso sem senha para o usuário, Seção 18.8.7]).

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 [#s-s-samba-rodando Iniciando o servidor/reiniciando/recarregando a configuração, Seção 18.1.9]).
  • 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[editar | editar código-fonte]

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[editar | editar código-fonte]

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.


Removendo usuários do smbpasswd[editar | editar código-fonte]

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[editar | editar código-fonte]

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 [#s-s-samba-senhas-crypto-habilitando Habilitando uma conta no smbpasswd, Seção 18.8.5] para reativar a conta.


Habilitando uma conta no smbpasswd[editar | editar código-fonte]

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[editar | editar código-fonte]

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[editar | editar código-fonte]

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