Um recurso muito útil (e nem sempre utilizado) do Samba é o controle da qualidade (e validade) da senha dos usuários.
Para implementar tal controle é possível fazer uso de duas ferramentas diferentes (que podem, e devem, ser usadas em conjunto): pdbedit e crackcheck.
pdbedit
O pdbedit é uma ferramenta que pode ser utilizada para, entre outras coisas, configurar algumas políticas de senha do samba.
Com o pdbedit é possível setar o seguinte:
Para implementar tal controle é possível fazer uso de duas ferramentas diferentes (que podem, e devem, ser usadas em conjunto): pdbedit e crackcheck.
pdbedit
O pdbedit é uma ferramenta que pode ser utilizada para, entre outras coisas, configurar algumas políticas de senha do samba.
Com o pdbedit é possível setar o seguinte:
- maximum password age - validade máxima da senhas (em segundos);
- minimum password age - validade mínima da senhas (em segundos);
- min password length - tamanho mínimo (caracteres) da senha;
- password history - histórico de senhas (não permite o uso das últimas X senhas);
- bad lockout attempt - número máximo de erros da senha, antes que a conta seja bloqueada;
- lockout duration - tempo de bloqueio da conta (em minutos);
- reset count minutes - tempo necessário para resetar o contador de senhas erradas (em minutos);
Todas essas políticas podem ser facilmente visualizadas com o comando:
ATENÇÃO: a política de senhas é implementada para todo o domínio e não pode ser administrada por conta.
ATENÇÃO 2: as políticas do domínio respeitam as configurações específicas das contas. Por exemplo: se você configurar que as senhas dos usuários tem validade máxima de 90 dias, mas quiser que uma determinada conta não tenha sua senha expirada nunca, use o comando:
Como foi possível perceber, as políticas tratadas pelo pdbedit já implementam um relativo controle das senhas, mas somente o uso destas não garante que a senha do usuário seja forte. E e aí que entra em cena o crackcheck.
crackcheck
O crackcheck é uma ferramenta que já vem com o Samba, e que faz uso da cracklib para controlar a qualidade das senhas dos usuários.
Antes de mais nada, é preciso esclarecer que esse post não pretende discutir os aspectos técnicos da ferramenta, e nem tratar do desenvolvimento de dicionários próprios (algo que poderá gerar uma postagem futura). Neste vou simplesmente explicar como forçar o uso de senhas como as utilizadas no Windows NT e no AD.
A política padrão de senhas do NT/AD implementa a seguinte regra: é preciso que a senha possua três entre quatro dos grupos de caracteres: letras maiúsculas, letras minúsculas, números e caracteres não alfabéticos (ex: #, $, *, etc...)
Se você utiliza Debian ou Ubuntu, a implementação desse recurso é bastante simples:
pdbedit -P "nome_da_política"A alteração de uma determinada política pode ser realizada com o comando:
pdbedit -P "nome_da_política" -C novo_valor_da_políticaOu, de forma similar, com o comando:
net sam policy set "nome_da_política" novo_valor_da_política
ATENÇÃO: a política de senhas é implementada para todo o domínio e não pode ser administrada por conta.
ATENÇÃO 2: as políticas do domínio respeitam as configurações específicas das contas. Por exemplo: se você configurar que as senhas dos usuários tem validade máxima de 90 dias, mas quiser que uma determinada conta não tenha sua senha expirada nunca, use o comando:
net sam set pwnoexp login yesATENÇÃO 3: se você utilizar o OpenLDAP como backend dos usuários e senhas do Samba, é fundamental que o arquivo samba.schema seja da mesma versão do Samba que você estiver rodando.
Como foi possível perceber, as políticas tratadas pelo pdbedit já implementam um relativo controle das senhas, mas somente o uso destas não garante que a senha do usuário seja forte. E e aí que entra em cena o crackcheck.
crackcheck
O crackcheck é uma ferramenta que já vem com o Samba, e que faz uso da cracklib para controlar a qualidade das senhas dos usuários.
Antes de mais nada, é preciso esclarecer que esse post não pretende discutir os aspectos técnicos da ferramenta, e nem tratar do desenvolvimento de dicionários próprios (algo que poderá gerar uma postagem futura). Neste vou simplesmente explicar como forçar o uso de senhas como as utilizadas no Windows NT e no AD.
A política padrão de senhas do NT/AD implementa a seguinte regra: é preciso que a senha possua três entre quatro dos grupos de caracteres: letras maiúsculas, letras minúsculas, números e caracteres não alfabéticos (ex: #, $, *, etc...)
Se você utiliza Debian ou Ubuntu, a implementação desse recurso é bastante simples:
Instale os pacotes samba-doc, libcrack2-dev e libtool; - Acesse o diretório /usr/share/doc/samba-doc/examples/auth/crackcheck;
- Compile o software e copie-o para o diretório /usr/local/sbin;
Adicione a seguinte linha a seu arquivo smb.conf e recarregue o samba:
check password script = /usr/local/sbin/crackcheck -s
Se você não quiser utilizar o crackcheck você poderá desenvolver seu próprio script de checagem de senhas, mas isso também é assunto para outra hora.
Muito legal esta explicação. Abraços amigo. [issu mesmu]
ResponderExcluir