8
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. O mesmo deve ser instalado primeiramente para que não tenhamos maiores problemas durante a configuração do LDAP. Para instalar o DB4 no Debian devemos utilizar o apt-get, que facilita nossa instalação. São três pacotes referentes 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: password Confirm 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

Instalando o Samba LDAP no Debian [Artigo].pdf

Embed Size (px)

Citation preview

Page 1: Instalando o Samba   LDAP no Debian [Artigo].pdf

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

Page 2: Instalando o Samba   LDAP no Debian [Artigo].pdf

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

Page 3: Instalando o Samba   LDAP no Debian [Artigo].pdf

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

[email protected]

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

Page 4: Instalando o Samba   LDAP no Debian [Artigo].pdf

# /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

Page 5: Instalando o Samba   LDAP no Debian [Artigo].pdf

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

Page 6: Instalando o Samba   LDAP no Debian [Artigo].pdf

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

Page 7: Instalando o Samba   LDAP no Debian [Artigo].pdf

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

Page 8: Instalando o Samba   LDAP no Debian [Artigo].pdf

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