Samba com LDAP
1 - Instalando Samba com LDAP
- O objetivo deste artigo é explicar o processo de instalação do servidor Samba atuando como PDC e utilizando o OpenLdap como backend (banco de dados).
2 - Contexto da instalação:
Este é o contexto utilizado neste documento.- Debian 5.0 - Lenny
- Linguagem: pt_br
- Endereço do servidor remoto: 10.1.0.17
- Principais pacotes a serem instalados:
- slapd
- ldap-utils
- phpldapadmin
- samba
- smbldap-tools
- libnss-ldap
3 - Configurar o debconf
A instalação inicial do debconf é necessária para que as mesmas perguntas destes documento sejam feitas quando a instalação for realizada.# dpkg-reconfigure debconfEscolher prioridade de perguntas "baixa".
4 - Servidor LDAP
Instalação do pacote do servidor LDAP:# aptitude install slapd ldap-utils
- Omitir a configuração do servidor LDAP? Não
- Nome do domínio DNS: debian-go.org
- Nome da organização: debian-go
- Senha do admin: segredo
- "Backend" de base de dados a ser usado: BDB
- Você deseja que sua base de dados seja removida quando o slapd for expurgado? Não
- Mover base de dados antiga? Sim
- Permitir Protocolo LDAP v2? Não
# vi /etc/ldap/slapd.confReinicialize o servidor:
# /etc/init.d/slapd restartVerifique os dados iniciais disponíveis no servidor LDAP através do comando slapcat:
# slapcat dn: dc=debian-go,dc=org objectClass: top objectClass: dcObject objectClass: organization o: debian-go dc: debian-go structuralObjectClass: organization entryUUID: ab548b92-0361-102d-9ca7-a5cb93af3e92 creatorsName: modifiersName: createTimestamp: 20080821001304Z modifyTimestamp: 20080821001304Z entryCSN: 20080821001304Z#000000#00#000000 dn: cn=admin,dc=debian-go,dc=org objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: e2NyeXB0fUU1UXFQZ09zZFQ0YmM= structuralObjectClass: organizationalRole entryUUID: ab555aea-0361-102d-9ca8-a5cb93af3e92 creatorsName: modifiersName: createTimestamp: 20080821001304Z modifyTimestamp: 20080821001304Z entryCSN: 20080821001304Z#000001#00#000000
5 - Frontend PHPLdapadmin
O Phpldapadmin é um frontend que permite gerenciar o servidor LDAP através de uma interface Web.6 - Instalação do PHPldapadmin
# aptitude install phpldapadmin apache2
- tipo de autenticação: session
- servidores web com quais será configurado automaticamente: apache2 (pelo menos)
- reiniciar o servidor web: sim
7 - Conferindo a instalação do phpldapadmin
Utilizando um navegador web, aponte para o endereço:http://10.1.0.17/phpldapadminE efetue o logon utilizando o usuário:
cn=admin,cn=debian-go,cn=org
Utilize a senha fornecida na instalação do servidor LDAP: "segredo".
8 - Instalação do servidor SAMBA
# aptitude install samba
- Domínio: debian-go.org
- Usar senhas criptografadas? Sim
- Modificar smb.conf para usar configurações WINS fornecidas via DHCP? Não
- Como você deseja que o Samba seja executado? daemons
- Gerar a base de dados para senhas /var/lib/samba/samba.tdb? Não
9 - Configurando o LDAP para dar suporte ao Samba
# aptitude install samba-doc # cd /usr/share/doc/samba-doc/examples/LDAP/ # cp samba.schema.gz /etc/ldap/schema/ # cd /etc/ldap/schema # gunzip samba.schema.gz # vi /etc/ldap/slapd.conf ... include /etc/ldap/schema/samba.schema ... access to attrs=userPassword,shadowLastChange,sambaNTPassword, sambaLMPassword by dn="cn=admin,dc=debian-go,dc=org" writeAs últimas linhas fazem com que o LDAP tenha suporte ao schema dos objetos LDAP do Samba e o usuário admin ter acesso a escrita aos atributos userPassword, shadowLastChange, sambaNTPassword e sambaLMPassword.
/etc/init.d/slapd restart
10 - Configurando o Samba
# vi /etc/samba/smb.conf security = user domain logons = yes # passdb backend = tdbsam # invalid users = root ... # nao utilizar as restrições impostas pelo PAM obey pam restrictions = no # Na linha abaixo especifique o IP do servidor Slapd passdb backend = ldapsam:ldap://127.0.0.1 ldap passwd sync = yes ldap delete dn = Yes # Especifique o seu domínio ldap admin dn = cn=admin,dc=debian-go,dc=org ldap suffix = dc=debian-go,dc=org ldap machine suffix = ou=Computadores ldap user suffix = ou=Usuarios ldap group suffix = ou=Grupos ldap idmap suffix = ou=Idmap # Novamente o IP do servidor Slapd idmap backend = ldap:ldap://127.0.0.1 idmap uid = 10000-20000 idmap gid = 10000-20000 #Nas linhas abaixo é necessário especificar corretamente a #path dos utilitários para gerenciamento de usuários e grupos #para samba+ldap estes utilitários são do pacote smbldap-tools add user script = /usr/sbin/smbldap-useradd -m "%u" delete user script = /usr/sbin/smbldap-userdel "%u" add group script = /usr/sbin/smbldap-groupadd -p "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" add machine script = /usr/sbin/smbldap-useradd -w "%u"
11 - Geração da senha de acesso do samba ao LDAP
# rm /var/lib/samba/secrets.tdb # smbpasswd -w segredo # net getlocalsid SID for domain LAB11 is: S-1-5-21-739826692-572011436-1394361479O primeiro comando remove o arquivo secrets.tdb, que contém informações de senha. A remoção deste é necessária para um nova instalação do Samba integrado ao LDAP. O segundo comando insere a senha do usuário admin do ldap no arquivo /var/lib/samba/secrets.tdb. O último comando fornece um identificador para a rede Windows, este será necessário para o próximo passo.
12 - Configuração do smbldap-tools
# aptitude install smbldap-tools # vi /etc/smbldap-tools/smbldap_bind.conf slaveDN="cn=admin,dc=debian-go,dc=org" slavePw="segredo" masterDN="cn=admin,dc=debian-go,dc=org" masterPw="segredo" # vi /etc/smbldap-tools/smbldap.conf # Esta primeira linha você deve especificar o SID da rede, #para isso use o comando: net getlocalsid SID="S-1-5-21-739826692-572011436-1394361479" # Especifique o workgroup do samba sambaDomain="debian-go.org" # Ip do servidor Slapd slaveLDAP="127.0.0.1" slavePort="389" # Ip do servidor Slapd masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" verify="" cafile="" clientcert="" clientkey="" suffix="dc=debian-go,dc=org" usersdn="ou=Usuarios,${suffix}" computersdn="ou=Computadores,${suffix}" groupsdn="ou=Grupos,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="45" userSmbHome="\lab17\%U" userProfile="\lab17\%U" userHomeDrive="H:" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd"
13 - Popular o LDAP
#smbldap-populateEste comando acima irá popular a base de dados ldap com objetos necessários para a administração do smbldap-tools. Verifique no phpldapadmin os objetos ldap criados, especialmente note os grupos e usuários criados.
14 - Instalação do libnss-ldap
# aptitude install libnss-ldap
- Identificador Uniforme de Recursos do servidor LDAP: ldap://127.0.0.1
- Nome distitnto da base de pesquisa: dc=debian-go,dc=org
- Versão LDAP a usar: 3
- A base de dados LDAP requer login: Sim
- Privlegios especiais LDAP para o root? Sim
- Permitir a leitura/escrita no ficheiro de configuração apenas para o dono? Não
- Conta LDAP para o root: cn=admin,dc=debian-go,dc=org
- Password da conta root do LDAP: segredo
- Utilizador sem privilegios da base de dados: cn=admin,dc=debian-go,dc=org
- Password da conta para fazer login na base de dados: segredo
15 - Configuração do libnss
# vi /etc/nsswitch.conf #passwd: compat passwd: files ldap #group: compat group: files ldap
16 - Inclusão de usuário para testes
# vi /etc/nextuid.ldif dn: cn=NextFreeUnixId,dc=debian-go,dc=org objectClass: inetOrgPerson objectClass: sambaUnixIdPool uidNumber: 10000 gidNumber: 10000 cn: NextFreeUnixId sn: NextFreeUnixId # ldapadd -x -D cn=admin,dc=debian-go,dc=org -W -f nextuid.ldif # smbldap-useradd teste # smbldap-usershow teste # smbldap-passwd teste # smbpasswd -a teste # smbldap-usershow teste # mkdir /home/testeNote a diferença entre os dois comandos smbldap-usershow acima.
17 - Inclusão do usuário root
# smbldap-useradd root # smbldap-usershow root # smbldap-passwd root # smbpasswd -a root # smbldap-usershow root
18 - Teste com cliente Windows
- Entrar no Windows como administrador
- Mouse botão-direito no Meu Computador
- Aba "Nome do computador"
- Clicar em mudar
- Botão renomear o computador
- Selecionar a opção domínio;
- Alterar o domínio desejado (debian-go.org)
19 - Referências:
- 1. Openldap instalation on Debian - http://www.debian-administration.org/articles/585
- 2. Jarbas Júnior - Instalando LDAP + Samba -http://wiki.sintectus.com/bin/view/GrupoLinux/InstalacaoLdapSamba
- 3. Geovanny Junio da Silva - http://www.vivaolinux.com.br/artigo/Configuracao-simples-Samba-+-LDAP
- 4. Debian for dummies -http://www.debianfordummies.org/wiki/index.php/Samba_Ldap_Howtohttp://www.debianfordummies.org/wiki/index.php/Samba_Ldap_Howto
Nenhum comentário:
Postar um comentário