Guia do Linux/Avançado/SAMBA/Ativando o suporte a senhas criptografadas
Ativando o suporte a senhas criptografadas
editarO 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]).
- U - Especifica que a conta é uma conta de usuário normal (veja [#s-s-samba-senhas-crypto-criando Adicionando usuários no
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
editarNo 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
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
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
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
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
editarO 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
editarPara 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).