Instalando o Samba + LDAP no Debian
Autor: João Cláudio de Oliveira Gonçalves <joao.claudio25 at globo.com>Data: 03/12/2006
Instalando o DB4 no Debian
Pelo o que entendi, o DB4 é um banco de dados que o LDAP faz uso para escrever suas informações. Omesmo deve ser instalado primeiramente para que não tenhamos maiores problemas durante a configuração doLDAP.
Para instalar o DB4 no Debian devemos utilizar o apt-get, que facilita nossa instalação. São três pacotesreferentes ao db4 que devem ser instalados. O comando para a instalação é:
# apt-get install libdb4.2 libdb4.2-dev db4.2-util
Não instale a versão 4.3 só por que é mais nova, pois o ldap não o irá reconhecer e você terá problemas.
Agora podemos começar com o LDAP.
Instalando e configurando o LDAP
Para instalar o ldap use o comando:
# apt-get install slapd
Um assistente aparecerá e lhe fará algumas perguntas que devem ser respondidas da seguinte forma:
Aqui você define o seu DNS:
DNS domain name: meudominio.com.br
Aqui o nome da organização, eu utilizei o mesmo nome de DNS:
Name of organization: meudominio.com.br
Aqui você define a sua senha:
Admin password: passwordConfirm password: password
Aqui a versão do LDAP:
Allow LDAP v2: yes
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
1 de 8 07/06/2013 17:10
Utilizei a versão 2 por questões de compatibilidades com o Apache 1.3, que acho mais estável que o 2.0.
Instalando o phpldapadmin
Essa ferramenta visa facilitar a vida do administrador de rede, que poderá manipular todo o ldap vianavegador. Além disso vai nos facilitar durante o artigo na criação e manipulação das contas necessárias aintegração com o Samba.
Antes de instalar o phpldapadmin instale o pacote php4-ldap:
# apt-get install php4-ldap
Esse pacote vai gerar o arquivo pam_ldap.conf, necessário ao phpldapadmin.
Agora vamos instalar o pacote do apache com ssl para uma conexão segura através do navegador. Para issoexecute o seguinte comando:
# apt-get install apache-ssl
Novamente aparecerá um assistente, onde segui um exemplo de respostas as mesmas logo abaixo:
Enable SuExec: noCountry Name: BRState: RJLocality: Rio de JaneiroOrganization Name: meudominio.com.brOrganizational Unit Name: MEUDOMINIOHost Name: debian.meudominio.com.br //Aqui entra o o nome do seu servidor com o FQDNContact Email: [email protected]
Depois instale o phpldapadmin propriamente dito.
# apt-get install phpldapadmin
E responda ao assistente da seguinte maneira:
Authentication type: sessionConfigure webserver: apache-sslRestart: yes
O phpadmin requer um utilitário chamado mkntpwd para criar as senhas do samba. O mesmo deve ser baixadopelo seguinte link:
http://www.nomis52.net/data/mkntpwd.tar.gz
Depois de baixado, tenha certeza de que os pacotes gcc, make e libc-dev estão instalados, senão instale-os como seguinte comando:
# apt-get install gcc make libc-dev
Depois disso instale o mkntpwd através dos seguintes comandos:
# tar -zxf mkntpwd.tar.gz# cd mkntpwd
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
2 de 8 07/06/2013 17:10
# make# cp mkntpwd /usr/local/bin
Verifique se o mesmo está rodando através do comando mkntpwd. A seguinte mensagem deve aparecer:
Usage: mkntpwd [-L lanmgrpwd] [-N ntpasswd] mkntpwd password mkntpwd -f [-] [filename]
-L lanmgrpasswd LanManager cleartextpwd <= 14 chars -N ntpasswd NT cleartextpwd <=128 chars (usually <=14)
with both options present the encrypted LanManager-Pwd is printed first, followed by a ':' and the encrypted NT-Pwd.
The second usage behaves like mkntpwd -L pwd -N pwd
The third usage reads the password from STDIN or a File. Printout is the same as second.
Instalando o Samba
Para instalar o samba execute o seguinte comando:
# apt-get install samba samba-doc
O samba-doc é importante, pois nele copiaremos alguns arquivos para a configuração integrada com o LDAP.
Responda o assistente com as seguintes respostas:
Domain Name: meudominio.com.brUse Password Encryption: YesModify smb.conf to use WINS settings via DHCP: NoHow to run Samba: daemonsCreate password database: Yes
Populando o LDAP
O slapd necessita do Samba schema para funcionar. Para isso devemos copiar o schema do samba em suadocumentação para o schema do sladp.
Copie o arquivo através dos comandos:
# cd /usr/share/doc/samba-doc/examples/LDAP# gunzip samba.schema.gz# cp samba.schema /etc/ldap/schema/
Agora adicione ao arquivo /etc/ldap/slapd.conf a seguinte linha:
include /etc/ldap/schema/samba.schema
Adicione logo após os outros includes.
Reinicie o slapd:
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
3 de 8 07/06/2013 17:10
# /etc/init.d/slapd restart
Precisamos criar container no LDAP para os usuários, grupos e machines. Para fazer isso usaremos ophpldapadmin.
Em nosso exemplo o mesmo pode ser acessado através de qualquer navegador padrão através do seguinteendereço:
https://debian.meudominio.com.br/phpldapadmin/
Entre com a senha configurada no ldap.
Abre a árvore do seu domínio e clique em "Create New Entry Here".
Selecione: "Organizational Unit" (ou) e clique em Next.
Nomeie como "users" e repita o processo para machine (computadores) e groups (para grupos).
Configurando o Samba
Abra o arquivo /etc/samba/smb.conf. Encontre a linha que contém o seguinte conteúdo:
passdb backend = tdbsam guest
Substitua por:
passdb backend = ldapsam:ldap://127.0.0.1ldap suffix = dc=meudominio,dc=com,dc=brldap machine suffix = ou=machinesldap user suffix = ou=usersldap group suffix = ou=groupsldap admin dn = cn=admin,dc=meudominio,dc=com,dc=brldap delete dn = nodomain logons = yesenable privileges = yes
Execute o testparm para ter certeza de que o Samba não possui erros.
Agora adicione uma senha ao Samba, ela deve ser a mesma do servidor LDAP:
# smbpasswd -w password
Reinicie o samba:
# /etc/init.d/samba restart
No phpldapadmin deve aparecer o domínio samba através da entrada:
sambaDomainName=NOMIS52
Nela você vai encontrar o SID do domínio, copie-o e guarde-o, pois vamos precisar desse identificador paraconfigurar o phpldapadmin.
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
4 de 8 07/06/2013 17:10
Configurando o phpldapadmin
Edite o arquivo /usr/share/phpldapadmin/templates/template_config.php substituindo o conteúdo:
$samba3_domains[] =array( 'name' => 'My Samba domain Name', 'sid' => 'S-1-5-21-4147564533-719371898-3834029857' );
Por:
$samba3_domains[] =array( 'name' => 'meudominio', 'sid' => 'S-1-5-21-2811823277-2536369736-933372433' );
Lembre que essa identificação é aquela que copiamos na página anterior.
Adicionando os grupos para uso do domínio Windows
Usando o phpladpadmin, adicione três objetos de nome Samba 3 Group Mappings dentro da OU groups criadana Populando o LDAP;
Unix name: adminsSamba Name: Domain AdminsGID: 2000 //você define o gid de sua preferência, eu comecei em 2000Samba Sid: Domain Admins
Unix name: usersSamba Name: Domain UsersGID: 2001 //você define o gid de sua preferência, eu comecei em 2000Samba Sid: Domain Users
Unix name: usersSamba Name: Domain GuestsGID: 2002 //você define o gid de sua preferência, eu comecei em 2000Samba Sid: Domain Guests
Agora vamos configurar essas contas para aparecem no Linux
Instale o seguinte pacote:
# apt-get install libnss-ldap
Responda ao assistente como:
LDAP Server Host: 127.0.0.1DN of Search Base: dc=meudominio,dc=com,dc=brLDAP Version: 3Database requires login: noMake config readable by owner only: yes
Edite o arquivo /etc/nsswitch.conf adicionando o comando ldap após os arquivos de senhas:
passwd: compat ldapgroup: compat ldapshadow: compat ldap
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
5 de 8 07/06/2013 17:10
Execute o getent para confirmar se os grupos foram criados:
# getent groupusers:x:2000:guests:x:2001:admins:x:2002:
Adicionando segurança a solução
Vamos agora fazer algumas configurações que vão nos garantir um mínimo de segurança a nossa solução.
Instale o libpam-ldap:
# apt-get install libpam-ldap
E responda o assistente com as seguintes respostas:
Make local root db admin: yes Database requires logging in: no Root login account:cn=admin,dc=meudominio,dc=com,dc=br Root password: password Crypt: MD5 //Você pode utilizar outrotipo de criptografia, é só modificar a opção abaixo como a que você escolheu aqui
Adicione a linha abaixo ao arquivo /etc/pam-ldap.conf:
pam_filter !(uidNumber=0)
No arquivo /etc/pam.d/common-account substitua a linha:
account required pam_unix.so
Por:
account sufficient pam_ldap.soaccount required pam_unix.so try_first_pass
No arquivo /etc/pam.d/common-password substitua a linha:
password required pam_unix.so nullok obscure min=4 max=8 md5
Por:
#ATENÇÃO A OPÇÃO DE CRIPTOGRAFIA ESCOLHIDApassword sufficient pam_ldap.sopassword required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass
No arquivo /etc/pam.d/common-auth substitua:
auth required pam_unix.so nullok_secure
Por:
auth sufficient pam_ldap.soauth required pam_unix.so nullok_secure use_first_pass
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
6 de 8 07/06/2013 17:10
Reinicie o Samba:
# /etc/init.d/samba restart
Para melhorar a performance do serviço LDAP devemos instalar o ncsd através do comando:
# apt-get install nscd
Esse daemon é um serviço de cache para o ldap.
Testando a solução
Para testarmos a solução vamos criar dois objetos, um usuário e um computador e verificar se os mesmosforam realmente criados.
Vamos criar o usuário "Administrador" que será o admin do domínio ldap+samba e um usuário comum
Crie dois novos objetos Samba 3 User(s) na OU users através do phpldapadmin, abaixo um exemplo decaracterísticas de preenchimento obrigatórias.
Uid: 0 //O administrador deve ter um uid 0First Name: AdminUser Name: AdministradorSenha: passwordEncryption: MD5 (Atenção se você escolheu outro tipo de criptografia na página anterior)Windows Group: Domain Admins
Uid: 1000First Name: JoãoUser Name: jclaudioSenha: passwordEncryption: MD5 (Atenção se você escolheu outro tipo de criptografia na página anterior)Windows Group: Domain Admins //é importante esse usuário participar do Domains Admins para que elepossa ter permissão de colocar uma máquina Windows no domínio ldap+sambaHome Directory: /home/jclaudio
Verifique se os usuários foram inseridos através do comando:
# getent passwd
Verifique se o phpldapadmin criou o diretório home do usuário, caso não tenha criado você terá de fazê-lomanualmente. Exemplo:
# mkdir /home/jclaudio# cp /etc/skel/.* /home/jclaudio/# chown -R jclaudio:users /home/jclaudio/
Testando:
Vá ao tty2 e tente logar com o usuário criado.
Adicionando uma máquina ao domínio:
Crie um objeto Samba 3 NT Machine na ou=machines. Exemplo de características:
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
7 de 8 07/06/2013 17:10
Machine Name: Windows01UID Number: 3001
Dicas
Bem galera, acho que é isso. Com essa solução simples você já pode ter total acesso a administração do seudomínio LDAP+SAMBA.
Ainda existem aqui mesmo no VOL vários artigos que recomendo e que podemos incrementar asconfigurações básicas desse artigo,
Abaixo alguns exemplos:
Servidor Samba completoNesse artigo existem opções interessantes como RAID5 e algumas configurações muito legais para oSamba.
Gateway com autenticação pelo SambaEsse artigo parece ser muito legal, ainda vou testá-lo, mas a idéia é muito boa, um Gateway comautenticação pelo Samba.
Acesso aos recursos compartilhados de sua rede Microsoft ou Samba via HTTP
Servidor Samba com autenticação no Windows XP e troca de senha automática
Scripts no SAMBAConfiguração para permitir executar Scripts no SAMBA.
Samba - PDC com Debian e Clamwin antivírus sincronizado nas estações
É isso galera, VIVA O LINUX!!!
http://www.vivaolinux.com.br/artigo/Instalando-o-Samba-+-LDAP-no-Debian
Voltar para o site
Instalando o Samba + LDAP no Debian [Artigo] http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5794
8 de 8 07/06/2013 17:10