Página 2 de 3 PrimeiroPrimeiro 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. #6
    jotacekm
    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)

  2. #7
    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é?



  3. #8
    jotacekm
    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

  4. #9
    jotacekm
    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!



  5. #10
    jotacekm
    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.






Tópicos Similares

  1. Duvida sobre autenticaçao de maquinas Linux no OpenLDAP
    Por danielmuskitim no fórum Servidores de Rede
    Respostas: 2
    Último Post: 18-03-2008, 13:15
  2. Duvidas sobre OpenLdap e phpldapadmin
    Por fabioneves no fórum Servidores de Rede
    Respostas: 2
    Último Post: 29-07-2006, 02:31
  3. Duvidas sobre Log access.log do SQUID !!!
    Por Danielvb no fórum Servidores de Rede
    Respostas: 2
    Último Post: 23-11-2002, 15:46
  4. duvida sobre o syslog
    Por augustolynx no fórum Servidores de Rede
    Respostas: 1
    Último Post: 29-10-2002, 07:50
  5. DUVIDA, SOBRE DYNAMIC DNS NO APACHE ???
    Por _Luigi_ no fórum Servidores de Rede
    Respostas: 4
    Último Post: 13-10-2002, 08:07

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L