+ Responder ao Tópico



  1. #1
    jotacekm
    Visitante

    Padrão duvida sobre openldap

    é possivel fazer a autenticação do openldap direto no ldap, sem ser pelo pam?[/b]

    e outra coisa, alguem tem um arquivo de exemplo de uma base de usuarios squid em .ldif ou sabe onde posso encontrar? vlw

  2. #2
    jotacekm
    Visitante

    Padrão duvida sobre openldap

    ae finalmente consegui, pode apagar o topico vlw

  3. #3

    Padrão duvida sobre openldap

    em vez de pedir pra apagar o topico pq não diz como fez pra quem tiver o mesmo problema ter como resolver??

    falows

  4. #4
    Avatar de thiagoacsp
    Ingresso
    Oct 2005
    Localização
    São Bernardo do Campo, Brazil, Brazil
    Posts
    231

    Padrão duvida sobre openldap

    em qual distro vc montou o openldap?
    Pois faz meses que to tentando montar no Fedora e ainda nao consegui, e agora vou tentar no CentOS que eh a mesma coisa que o RetHat enterprise mas creio que vai ser o mesmo rolo.

  5. #5
    serrato
    Visitante

    Padrão duvida sobre openldap

    opa tb estou na mesma do thiagoacsp...

    estou faz um tempão tentando fazer rodá ldap+samba+squid mas naum funfa...

    já peguei um tutorial de um cara da Metrosul no www.ldap.org.br mas

    naum deu certo...

    manda ae como vc fez jotacekm

  6. #6
    jotacekm
    Visitante

    Padrão duvida sobre openldap

    eu tava ate pensando em fazer um tutorialzinho, pq nao achei nenhum q me ajudasse na net, os q tinha so falam coisas q tem na propria pagina do openldap e dizia oq alterar no squid.conf, mas isso eh facil

    eu vo te q sair agora, mais tarde eu posto aqui
    (eu uso o fedora 4)

  7. #7
    serrato
    Visitante

    Padrão duvida sobre openldap

    ah blz...

    eu tb to usando fedora 4...

    mas o que eu vou fazer eh colocar ldap e samba num micro e squid/firewall em outro...

    naum deve mudar muito as configurações né?

  8. #8
    jotacekm
    Visitante

    Padrão duvida sobre openldap

    Citação Postado originalmente por serrato
    ah blz...

    eu tb to usando fedora 4...

    mas o que eu vou fazer eh colocar ldap e samba num micro e squid/firewall em outro...

    naum deve mudar muito as configurações né?
    nao, o q vai mudar eh no squid.conf na hora de vc chamar o program squid_ldap_auth vc vai ter q passar o ip da maquina do ldap com -h ip

  9. #9
    jotacekm
    Visitante

    Padrão duvida sobre openldap

    bom vo falar como eu fiz então

    Eu uso fedora core 4, squid 2.5 e openldap 2.3.11. É bom que vc tenha uma noção de como funciona o ldap, aconselho vc a dar uma lida na introdução do www.openldap.org
    Tenho o openldap instalado em /usr/local/openldap, e squid em /usr/local/squid.

    EDIT: Não sei porque mas dentro dos códigos os comentários # saíram nos lugares errados, entao cuidado se forem copiar e colar

    depois de estar com squid, openldap e suas dependências instalados, vamos configurar o slapd.conf. Vou colar aqui o meu slapd.conf:
    Código :
    include         /usr/local/openldap/etc/openldap/schema/core.schema
    include         /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
    #Esses sao os schemas que serão usados. Nos schemas estão as ojbectClass e #atributos que vamos usar para construir o banco. Ao contrário do que eu pensava, não #é preciso um schema específico pro squid, pois o .ldif para o squid é bem simples
     
    pidfile         /usr/local/openldap/var/run/slapd.pid
    argsfile        /usr/local/openldap/var/run/slapd.args
     
    access to * by self write
    access to * by anonymous auth
    access to * by * read
     
    #######################################################################
    # BDB database definitions
    #######################################################################
     
    database        bdb
    suffix          "dc=squid"
    rootdn          "cn=Manager,dc=squid"
    rootpw          secret
    directory       /usr/local/openldap/var/openldap-data
    readonly off
    # Essas são as definições da nossa backend, que vai ser a Berkeley Database. O suffix #é o DN (distinguished name, uma entrada única) onde serão passas as queries que #vao ser passadas ao bdb. rootdn é o "administrador" do banco.
     
    index cn,sn,uid,o  pres,eq,sub
    index userPassword pres,eq
    index objectClass eq
    # Esses serão os índices a ser mantidos. cn, sn, uid, o, userPassword são os índices #que iremos usar quando formos criar o banco, e  # pres, eq, sub são tipos de índice. #Não é obrigatório criar um índice para as entradas, mas isso vai deixar a busca no #banco mais rápida.

    Agora é interessante testar o seu slapd.conf pra ver se ele não está com nenhum erro, vá no diretório sbin do openldap e digite ./slaptest

    Vamos agora criar o nosso banco. Pra isso, vamos criar um arquivo .ldif (LDAP Data Interchange Format). Esse é o meu ldif, criei em no /sbin dentro do openldap:

    Código :
    # Squid. Esse vai ser o nodo principal da nossa árvore.
    dn: dc=squid
    objectClass: dcObject
    objectClass: organization
    dc: squid
    o: squid
    description: Auth Squid
     
    # Manager. Esse é o administrador. Usei o mesmo que vinha no exemplo no openldap.org
    dn: cn=Manager,dc=squid
    objectClass: organizationalRole
    cn: Manager
    description: Directory Manager
     
     
    # Usuários Squid. Aqui estão os nossos usuários do squid. uid é o campo que o squid vai ler como login, e userPassword como a  senha.
    dn: uid=maria,dc=squid
    objectClass: person
    objectClass: inetOrgperson
    uid: maria
    sn: maria
    cn: maria
    userPassword: senha
     
    dn: uid=joao,dc=squid
    objectClass: person
    objectClass: inetOrgperson
    uid: joao
    sn: joao
    cn: joao
    userPassword: senha

    cada nodo deve ter uma única entrada, diferente de toda as outras(dn). uid,sn,cn,userPassword, o, description são os atributos que usei. Se o seu dn for: uid=joao,dn=squid o atributo uid deve ser obrigatoriamente joao. Isso vale para todas as entradas que você criar. Se você quiser fazer a autenticação de mais serviços usando o openldap como samba, qmail etc. seria interessante você criar um nodo principal que abrigue todos os serviços. Por exemplo:
    Nodo principal:
    dn: dc=minhaEmpresa

    Serviços:
    dn: dc=squid,dc=minhaEmpresa
    dn: dc=qmail,dc=minhaEmpresa
    dn: dc=samba,dc=minhaEmpresa

    Usuarios:
    dn: uid=joao,dc=squid,dc=minhaEmpresa
    dn: uid=carlos,dc=samba,dc=minhaEmpresa
    ....
    ....

    Voltando: Depois de criar nosso ldif, vamos alimentar o banco. Isso pode ser feito offline (sem o daemon slapd rodando) ou online (com o daemon rodando). Pra criar o banco offine eu uso o comando: (se o .ldif estiver no mesmo diretorio onde está sendo rodado o comando)
    ./slapadd -l squid.ldif -f /usr/local/openldap/etc/openldap/slapd.conf
    pra criar online:
    ./ldapadd -x -w secret -f squid.ldif -D "cn=Manager,dc=squid"
    o -x é pra usar autenticação simples, e o -w secret é o password que esta no rootpw dentro do slapd.conf

    se você quiser ver como está o seu banco, ou fazer um backup dele pra um arquivo .ldif, use o comando ./slapcat -f arquivo_de_saida.ldif

    Eu prefiro criar a database offline, pois online de vez em quando dá uns erros chatinhos. Se você estiver tendo problemas na hora de criar, ou na hora de rodar o daemon, use no final do comando -d 1 por exemplo, pra ativar o debug level 1. Existem vários níveis de debug, veja no openldap.org os niveis.

    Agora vamos fazer um teste: Inice o daemon com ./slapd -d 1 pra ativar o debug, e veja se está tudo ok. Vamos agora alterar o squid.conf pra fazer a autenticação com ldap.

    O programa que vamos usar pra autenticação do squid é o squid_ldap_auth. Ele deveria estar dentro do diretorio libexec do seu squid. Se não estiver, basta ir no arquivo fonte de instalação do squid em /helpers/basic_auth/LDAP e dar um make && make install

    Dentro do squid.conf:


    Código :
    auth_param basic children 5
    auth_param basic realm Digite nome e senha
    auth_param basic credentialsttl 1 hour
    auth_param basic casesensitive off
    auth_param basic program /usr/local/squid/libexec/squid_ldap_auth -b dc=squid -D dc=squid -h localhost -v 3  -p 389
    #Se vc tiver rodando o openldap em uma maquina remota, vc deve botar -h #ip_da_maquina. o -v 3 é para usar o ldap v3, eu tive que usar isso pq tava dando um #erro referente a isso. 
     
    #Agora vamos criar uma acl dentro do squid.conf que peça a autorização:
    acl auto proxy_auth REQUIRED
    #e no http_access botamos:
    http_access allow auto

    pronto! agora é so inicar o squid e o slapd, abrir o browser que vai pedir a autenticação. Se vc quiser adicionar mais usuários, basta criar um ldif apenas com a entrada desse usuário e usar o ./slapadd pra adicionar. O que eu não estou conseguindo fazer agora sao algumas operações que necessitam que o slapd esteja rodando pra funcionar, como deletar entradas e fazer buscas, pq sempre dá um erro de invalid_credentials e eu não estou conseguindo resolver. Se alguém conseguier posta aqui. Flw!

  10. #10
    jotacekm
    Visitante

    Padrão duvida sobre openldap

    bom nao sei se alguém se interessou por isso aqui, mas voltando agora das ferias, consegui resolver o problema de fazer operaçoes (adicionar, deletar, modificar) entradas no ldap no modo online.

    no meu caso ficou assim:
    criei um novousuario.ldif apenas com a nova entrada que eu quero adicionar. Pra adicionar um usuario:

    ./ldapadd -f novousuario.ldif -x -w secret -D "cn=Manager,dc=squid"


    pra deletar um usuario basta passar o dn da entrada com o ./ldapdelete , por ex:

    ./ldapdelete uid=joao,dc=squid -x -w secret -D "cn=Manager,dc=squid"



    pra modificar um usuario, a entrada deve obviamente existir, entao criei um ldif com um usuario e modifiquei por exemplo o sn e o cn dele:
    ./ldapmodify -f usuario.ldif -x -w secret -D "cn=Manager,dc=squid"

    eh isso, espero q tenha ajudado alguém.

  11. #11
    thiagog
    Visitante

    Padrão Re: duvida sobre openldap

    ae pessoal a solução ai de voces esta funcionando ?
    estou pensando em fazer o mesmo aqui com slackware

    ate mais,