Mostrando postagens com marcador samba. Mostrar todas as postagens
Mostrando postagens com marcador samba. Mostrar todas as postagens

quinta-feira, 23 de janeiro de 2014

Bug com smb_auth no Squid3 do Ubuntu 12.04


Há muito tempo que não instalava um Squid e eis que surgiu a necessidade de fazê-lo.

Esta instalação, diferente das anteriores que havia realizado, precisava autenticar no Windows Active Directory 2012, mas como tratava-se de uma autenticação simples, ao invés de Kerberos, Winbind e afins, optei por utilizar a autenticação básica, com os comandos squid_ldap_group e o smb_auth.

Depois da instalação e da configuração finalizadas, iniciei os testes dos mecanismos de comunicação com o AD. Primeiro o squid_ldap_group, que comportou-se como o esperado e depois o smb_auth, que acabou falhando.

Mesmo após vários testes e verificações me deparava sempre com o mesmo problema:
/usr/lib/squid3/smb_auth -d -W MEUDOMINIO -U 192.168.1.2
meu_usuario minha_senha
Domain name: MEUDOMINIO
Pass-through authentication: no
Query address options: -U 192.168.1.2 -R
Domain controller IP address: 192.168.1.2
Domain controller NETBIOS name: MEUDOMINIODC1
Contents of //MEUDOMINIODC1/NETLOGON/proxyauth:
ERR

Como eu tinha certeza de que estava tudo correto, decidi debugar os softwares. Já que o smb_auth era um binário, iniciei a investigação pelo script /usr/lib/squid3/smb_auth.sh

Aparentemente não havia nada de errado com o mesmo, mas ele também falhava nos testes. Resolvi então testar o script passo a passo e acabei  me depararando com um erro lamentável. O comando que verificava o conteúdo do arquivo proxyauth no compartilhamento netlogon não estava enviando os dados de autenticação, como podemos ver abaixo:
authinfo=`smbclient "//$dcname/$AUTHSHARE" -I $dcip -d 0 -E -W "$DOMAINNAME" -c "get $authfilebs -" 2>/dev/null`

Corrigi então o código, que ficou da seguinte maneira:
authinfo=`smbclient "//$dcname/$AUTHSHARE" -I $dcip -d 0 -E -W "$DOMAINNAME" -c "get $authfilebs -" -U $USER 2>/dev/null`
Voilà, problema resolvido:  
/usr/lib/squid3/smb_auth -d -W MEUDOMINIO -U 192.168.1.2
meu_usuario minha_senha
Domain name: MEUDOMINIO
Pass-through authentication: no
Query address options: -U 192.168.1.2 -R
Domain controller IP address: 192.168.1.2
Domain controller NETBIOS name: MEUDOMINIODC1
Contents of //MEUDOMINIODC1/NETLOGON/proxyauth: allow
OK
Espero que este post seja útil e evite que você perca tanto tempo quanto eu perdi numa tarefa tão corriqueira.

quarta-feira, 3 de novembro de 2010

Uso de senhas fortes no samba

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:
  • 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:
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ítica

Ou, 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 yes

ATENÇÃ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.

quarta-feira, 19 de maio de 2010

Lançadas novas versões do ClamAV e Samba


Samba e ClamAV, dois softwares FLOSS de grande relevância tiveram novas versões liberadas na data de hoje.

O Samba 3.5.3 corrige pouco mais que uma dezena de bugs existentes na versão 3.5.2. A lista completa de bugs resolvidos pode ser vista nesse link. A nova versão já pode ser encontrada empacotada no site EnterpriseSamba e em seus repositórios.

Já o ClamAV 0.96.1 é o primeiro release de correção lançado para a versão 0.96 e resolve uma série de bugs da versão 0.96. O changelog completo pode ser lido aqui. Sua atualização é recomendada e pacotes atualizados para Ubuntu e Debian devem estar disponíveis em breve no PPA ClamAV e no Debian Volatile.

sexta-feira, 14 de maio de 2010

Notas rápidas da semana (KDE, Samba e Pidgin)

Algumas notícias que merecem destaque (numa semana relativamente calma):
  • Começo com uma notícia já atrasada, mas que merece ser postada: o lançamento da versão 4.4.3 do KDE, o já costumeiro release mensal para correção de bugs do sistema. Como era de se esperar, os usuários do Kubuntu 10.04 LTS poderão instalar a nova versão através do repositório PPA do Kubuntu. Leia as instruções (cada vez mais simples) para atualização ou saiba mais sobre a nova versão aqui.
  • Já nesse semana, ocorreu o lançamento de mais um release de correções de bugs da árvore 3.4.X do Samba. Saiba tudo que foi corrigido na nova versão 3.4.8 lendo o changelog.
  • E para terminar o post da semana: quarta passada foi lançada a versão 2.7.0 do Pidgin. Sem nenhuma grande novidade que mereça destaque especial, a nova versão vem repleta de mudanças e correções. Saiba mais no changelog. Pacotes para o Ubuntu devem ser lançados em breve, no PPA e/ou no GetDeb.net.

sexta-feira, 9 de abril de 2010

Notas rápidas da semana (Samba, Xen e Ubuntu)

Algumas notícias da semana que merecem destaque:
  • Lançado o Samba 3.5.2. Não foram incorporados novos recursos nesse release, mas uma grande quantidade de bugs foi corrigida. Leia as notas de lançamento aqui.
  • Lançado um novo Beta do Ubuntu LTS 10.04 (Lucid Lynx). O Beta 2 está dentro do cronograma oficial, que prevê o lançamento da versão final no dia 29 de abril. Leia o release oficial aqui.
  • Lançado o Xen 4.0. Apesar de ainda não ter experiência direta com o Xen, esse lançamento merece uma nota. Saiba mais sobre a nova versão nesse link.

sexta-feira, 12 de março de 2010

Notas rápidas da semana (ClamAV, Samba e ejabberd)

Algumas novidades da semana que merecem destaque:
  • Lançado o Samba 3.5.1, um release de bugfix (lançados também releases que corrigem o mesmo bug para as versões 3.3 e 3.4 - 3.3.12 e 3.4.7 respectivamente).
  • Lançado o ClamAV 0.96rc1, que introduz novos mecanismos de detecção de malwares e alterações significativas no engine de scan do software. Novo interpretador de bytecode, melhorias na perfomance, na heurística e no sistema de assinaturas, suporte a novos formatos de arquivos compactados (7Zip, Install Shield e CPIO), suporte a novos formatos de binários (como arquivos ELF de 64 bits) e suporte nativo a Windows são alguns dos novos recursos. A lista completa de mudanças pode ser lida no arquivo de Changelog que acompanha o código.
  • Lançado o ejabberd 2.1.3, terceiro release de bugfix da versão 2.1, que traz também algumas novidades. Leia a lista completa de mudanças aqui.
PS: Falta pouco mais de um mês para o final do suporte a versão 0.94.X e anteriores do ClamAV. Não perca tempo e atualize seu antivírus, caso contrário o mesmo será desativado automaticamente.

sexta-feira, 5 de março de 2010

Notas rápidas da semana (Samba, KDE e Jingle Nodes)

Algumas novidades da semana que merecem destaque:

Mesmo que ainda em status experimental, parece que agora é apenas uma questão de tempo até que os clientes XMPP comecem a suportar o Jingle Nodes.

quinta-feira, 25 de fevereiro de 2010

Samba: baixando as últimas versões empacotadas

Sempre que precisei testar a versão mais atual do Samba fui obrigado a recorrer a backports "oficiais" ou então compilar o código fonte, o que, convenhamos, não é nada prático.

Depois de muito tempo usando tais abordagens, me deparei com um site que disponibiliza as últimas versões empacotadas para as distribuições Linux consideradas Enterprise (Suse, Red Hat e Debian). O nome desse site ? Enterprise Samba.

O Enterprise Samba.com (Samba for Enterprise Linux) é mantido pela empresa alemã SerNet que disponibiliza os pacotes das novas versões poucas horas após as mesmas terem sido lançadas. A versão 3.4.6, que foi lançada na data de ontem, já tinha seus pacotes (com um repositório Debian específico) disponibilizados hoje.

Fica a dica: para realização de testes e utilização da última versão do Samba logo após seu lançamento, o site Enterprise Samba é a solução.


Notas rápidas da semana (Samba, Bacula e LTSP)

Algumas novidades da semana que merecem destaque:
  • Lançamento do LTSP 5.2;
  • Lançamento de um novo release do Samba 3.4.X (versão 3.4.6), trazendo uma série de correções;
  • Lançamento do Bacula 5.0.1 que além de corrigir vários bugs, teve alguma diretivas reescritas e que principalmente corrigiu um sério bug de performance com o banco de dados (mais percebido no MySQL). Atualização recomendada para usuários da versão 5.0.0.
E pra finalizar, só mais uma coisa: o Roadmap do Samba prevê para a próxima segunda, dia 01 de março, o lançamento da versão 3.5.0, versão essa que trará suporte experimental ao protocolo SMb2 (a versão 3.6.0 deverá ter suporte completo ao protocolo).

terça-feira, 23 de fevereiro de 2010

Samba: problemas com políticas de contas do domínio (ou um post pra obter uma ajuda)

A grande maioria dos posts de meu blog normalmente são notícias e dicas sobre diversos assuntos relacionados com sysadmin, só que esse post é um pouco diferente, pois ao invés de inicialmente ajudar os leitores, serve para pedir uma ajuda.

Afinal que lugar seria melhor para tentar esclarecer duas questões sobre Samba do que um blog que outros sysadmins também acompanham não é ? (assim espero ;-) )

Pois bem, estou com dois problemas que não consigo resolver e parece que meus e-mails para a lista do Samba não geraram interesse suficiente para que o pessoal me respondesse (ou então foram difícies demais e ninguém soube responder).

Basicamente são 2 situações:

1) Políticas de contas do domínio por usuário
Instalei um Samba versão 3.4.3 e habilitei as políticas de contas do domínio com o pdbedit. Exemplo: tamanho mínimo da senha: 8 caracteres, histórico de senhas usadas: não podem ser usadas as últimas quatro senhas e tempo máximo de validade de uma senha: 90 dias.

O que ocorre é que tais políticas são genéricas e eu precisava que alguns usuários tivessem configurações diferenciadas. Alguém sabe como implementar isso ?

2) Mensagem: "Sua senha expira hoje. Deseja trocá-la agora?"
O problema ocorre em um servidor samba 3.4.3 (no samba 3.0.25 a situação é idêntica) com as mesmas políticas configuradas indicadas no item 1. O problema agora é outro: toda vez que o usuário tenta logar no domínio usando o Windows ele recebe uma mensagem que diz: "Sua senha expirou hoje. Você quer trocá-la agora ?"

Trocando ou não a senha é possível logar no domínio, mas independente do que seja feito, no próximo login do usuário a mensagem se repete e não para mais de aparecer a cada vez que o mesmo loga. Nada foi encontrado nos logs que possa indicar o que ocasiona esse comportamento.



Quaisquer dicas sobre essas duas questões serão muito bem vindas. Por favor, se algum souber algo deixe seus comentários no post.

Obrigado!

quarta-feira, 30 de dezembro de 2009

Projeto Samba anuncia os planos para a versão 4


Exatamente no dia de Natal, a equipe de desenvolvimento do Samba anunciou seus planos para os novos releases, com ênfase especial ao Samba 4, tão aguardado.

Segue um pequeno resumo do que vem por aí:

Segundo informações dos desenvolvedores, após cinco anos de trabalho, o código de Active Directory do Samba 4 alcançou um estado satisfatório, rodando em produção em vários ambientes.

Já que atualmente o Samba 4 só possui o código do AD implementado, o próximo passo agora é juntar ao mesmo as funcionalidades de servidor de arquivos e o código do winbind, fazendo do mesmo um produto completo. O servidor de arquivos está atualmente sendo extendido para incluir o novo protocolo SMB2 e ter total suporte a ACL do Windows.

Como o trabalho envolvido em tal operação é muito grande, tal processo irá demorar, mas existe a expectativa de que o mesmo seja concluído em 2010. O plano é manter também as atualizações do Samba 3, com novas versões a cada 6 meses (a versão 3.5.0 deve ser lançada em breve, com suporte experimental ao SMB2).

Depois que o trabalho for concluído e houver um código estável, o mesmo será lançado. A grande preocupação dos desenvolvedores é facilitar o upgrade para os usuários do Samba 3, assim como minimizar os impactos das mudanças para os usuários do software.

Leia o anúncio completo aqui.


Samba: adicionando Windows 7 ao domínio


Com o lançamento do Windows 7, logo todos os administradores de domínios Samba irão se deparar com a necessidade de colocar um computador com essa versão do sistema operacional no domínio. Por isso resolvi postar um pequeno tutorial para realizar essa operação.

Para começar, é importante deixar bem claro que o suporte a Windows 7 só existe nas versões 3.3 e 3.4 do Samba. Versões anteriores do Samba não suportam o novo SO. Então se você está rodando o Samba <= 3.2 e sabe que terá que adicionar o novo SO ao seu domínio em breve, já prepare o upgrade do serviço. Mais especificamente, as versões 3.4.0 e 3.3.7 foram testadas com sucesso com o Windows 7 Ultimate (Build 2600). Todas os releases posteriores dessas versões também são compatíveis.

O registro do Windows 7

ATENÇÃO: Antes de mais nada, não edite quaisquer parâmetros do registro (NETLOGON) Se você já efetuou modificações no registro do Windows 7, desfaça as mesmas retornando-as aos valores originais.

Especificamente, se você alterou os parâmetros de NETLOGON, volte-os para '1' como pode ser visto abaixo:
HKLM\System\CCS\Services\Netlogon\Parameters
DWORD RequireSignOrSeal = 1
DWORD RequireStrongKey = 1

Adicionando as configurações corretas ao registro

Antes de colocar o computador no domínio, é necessário adicionar duas configurações no registro do Windows. Elas são:
HKLM\System\CCS\Services\LanmanWorkstation\Parameters
DWORD DomainCompatibilityMode = 1
DWORD DNSNameResolutionRequired = 0

Um arquivo .reg com as alterações necessárias pode ser baixado aqui.

Como de costume, após as alterações no registro, reinicie o computador.

Adicionando o computador ao domínio

Os procedimentos de inclusão do computador no domínio são os usuais. É importante salientar que após adicionar o computador ao domínio, você irá receber a seguinte mensagem:
"Changing the Primary Domain DNS name of this computer to "" failed.
The name will remain "MYDOM". The error was:

The specified domain either does not exist or could not be contacted"

Desconsidere esse aviso, pois a operação foi realizada com sucesso e voilá, seu computador já faz parte de seu domínio.


Leia também:



quinta-feira, 26 de novembro de 2009

Samba 3.5.0 com suporte experimental a SMB2


O time de desenvolvimento do Samba anunciou hoje o lançamento da versão 3.5.0pre1 do software e o grande destaque dessa nova release com certeza é o suporte (ainda que experimental) ao protocolo SMB2.

O SMB2, desenvolvido pela Microsoft, possui várias modificações em comparação a seu antecessor, entre as quais cabe citar:
  • Melhorias na perfomance da comunicação entre cliente e servidor;
  • Melhorias na performance da transferência de arquivos grandes;
  • Menor overhead do protocolo (número de comandos e subcomandos reduzido de mais de 100 para apenas 19);
  • Melhor escalabilidade;
O SMB2 foi implementado inicialmente no Windows Vista mas já está disponível em todas as versões mais recentes dos sistemas operacionais da Microsoft. Windows 7 e Windows 2008 R2 já utilizam o SMB2.1, que segundo informações é ainda mais performático. Apesar de ser proprietário, a especificação do protocolo foi publicada para permitir que outros sistemas possam interagir com os SOs da Microsoft que usam essa nova versão.

Ainda em caráter experimental no Samba, o uso do SMB2 além de aumentar a performance de maneira geral promete diminuir a quantidade de "lixo" que circula na LAN e que é gerada pelo protocolo SMB versão 1.

Outras fontes de informação sobre o SMB2:

UPDATE 30/12/2009: a equipe de desenvolvimento do Samba anunciou que a versão 3.6.0 deverá ter suporte total ao protocolo SMB2.

quinta-feira, 10 de julho de 2008

Lançado o Samba 3.0.31

Acabo de receber um e-mail informando o lançamento da versão 3.0.31 do Samba.

Basicamente ela é um bugfix release, onde destaca-se:
  • Correção de questões com o Winbind rodando em um PDC Samba
  • Problemas com Domínios Windows 2008
  • Dificuldade de fazer join em Domínios NT4 e Windows 2000 AD
Mas a informação mais importante do e-mail é a seguinte: com o lançamento da versão 3.2.o no dia primeiro de julho passado, a versão 3.0 encerra seu ciclo no dia 1 de julho de 2009. Daqui pra frente novas versões da série 3.0 só serão lançadas para resolver bugs críticos e questões de segurança. Então preparem-se que está chegando a hora de atulizar :-)

Clique aqui para baixar a nova atualização ou aqui para ver as notas de lançamento.

terça-feira, 1 de julho de 2008

Samba 3.2.0 estável disponivel para download.

Só como uma dica, acabei de receber um e-mail anunciando o lançamento da primeira versão estável do Samba 3.2.0.

Principais mudanças/melhorias (em inglês):

File Serving:
o Use of IDL generated parsing layer for several DCE/RPC
interfaces.
o Removal of the 1024 byte limit on pathnames and 256 byte limit on
filename components to honor the MAX_PATH setting from the host OS.
o Introduction of a registry based configuration system.
o Improved CIFS Unix Extensions support.
o Experimental support for file serving clusters.
o Support for IPv6 in the server, and client tools and libraries.
o Support for storing alternate data streams in xattrs.
o Encrypted SMB transport in client tools and libraries, and server.
o Support for Vista clients authenticating via Kerberos.

Winbind and Active Directory Integration:
o Full support for Windows 2003 cross-forest, transitive trusts
and one-way domain trusts.
o Support for userPrincipalName logons via pam_winbind and NSS
lookups.
o Expansion of nested domain groups via NSS calls.
o Support for Active Directory LDAP Signing policy.
o New LGPL Winbind client library (libwbclient.so).
o Support for establishing interdomain trust relationships with
Windows 2008.

Joining:
o New NetApi library for domain join related queries (libnetapi.so)
and example GTK+ Domain join gui.
o New client and server support for remotely joining and unjoining
Domains.
o Support for joining into Windows 2008 domains.

Users & Groups:
o New ldb backend for local group mapping tables
o Raised level of security defaults for authentication operations.
o New NetApi library for user account related queries.

O e-mail era extenso para transcrever todo aqui, e ainda não tive tempo nem de baixar o software para avaliar. Caso queira fazer o download dos fontes, clique aqui.

Mais informações devem ser disponibilizadas em breve no site oficial do Samba.

sábado, 8 de março de 2008

Samba 3.0.28a


Lançado o Samba 3.0.28a que resolve uma série de bugs das versões anteriores.

Como principais pontos podemos citar:
  • Corrigida a falha que não permitia fazer join em domínios Windows 2008
  • Corrigidos problemas de interoperabilidade com Windows Vista (incluindo com SP1 RC)
Para ver o ChangeLog completo clique aqui.

E se preferir, faça download da nova versão.

segunda-feira, 17 de dezembro de 2007

Samba 4.0.0alpha2 disponível

Para os beta testers (ou será alpha testers) de plantão, está disponível a nova versão do Samba 4.0.

Interessado ? Baixe o mesmo aqui.

Mudanças desde o alpha1:

In the time since Samba4 Alpha1 was released in September 2007, Samba has
continued to evolve, but you may particularly notice these areas:

  • MMC Support: The Active Directory Users and Computers console now handles group membership correctly.
  • member/memberOf: These and other linked attributes are now kept in sync
  • subtree renames: Renaming a subtree of LDAP objects is now possible,with all linked attributes being kept consistent.
  • Python Bindings: Bindings for a future move to Python as the internal scripting language have been created.
  • Shared library use: In support of projects such as OpenChange, which depend on Samba4, more of Samba4 is built as shared libraries.
  • These are just some of the highlights of the work done in the past few months. More details can be found in our SVN history.
Caso queira um Howto de configuração, dê uma lida aqui.

sábado, 17 de novembro de 2007

Ubuntu lança atualização "bugada" do Samba

Quem usa o Samba com Ubuntu Dapper (6.06) e atualizou os pacotes ontem deve ter passado por uma surpresa bem desagradável.

A atualização liberada (3.0.22-1ubuntu3.4) estava bugada e a autenticação no domínio usando máquinas Windows parou de funcionar.

Logo após ao meio-dia (horário de Brasília) os pacotes foram removidos, mas aí já era pra muita gente.

A solução encontrada naquele momento foi fazer o downgrade pra versão anterior (3.0.22-1ubuntu3.3) para que tudo voltasse a funcionar.

Consultei hoje e já percebi que saiu uma nova versão (3.0.22-1ubuntu3.5), mas ainda não tive como testar. Segunda eu vejo.

Se alguém já testou, poste seus comentários.

Espero que o pessoal do Ubuntu tenha mais cuidado com essas coisas. Já é a segunda vez em pouco mais de 1 ano que eles lançam pacotes problemáticos.

Boa sorte para nós. :-)

UPDATE (19/11) : Segue a URL do bug.

quarta-feira, 24 de outubro de 2007

mkntpwd

Uma ferramenta que eu sempre preciso e nunca encontro é o mkntpwd.

Ele serve para criar os password hashes do Samba que são armazenados nos atributos de senha do mesmo no LDAP.

Ele é utilizado principalmente pelo PhpLdapAdmin, mas também se faz necessário na ferramenta de administração LDAP criada pela Propus.

Ou seja, sempre que preciso instalar a mesma eu nunca acho os fontes. Por isso resolvi criar um post sobre o assunto pra não perder mais o link.

Você pode baixar os fontes do mkntpwd aqui.