Ajuda para autenticar o squid por grupos do AD [RESOLVIDO] [TUTORIAL]



  • Senhores,
    Estou tentando autenticar o squid no AD Win2003, mas sem sucesso. Configuro o proxy transparent, e habilito o proxy e porta no navegador, mas só fica pedindo usuario/senha, e nada acontece.

    Eu gostaria que o squid liberasse a navegado para os usuários cadastrados nos grupos do AD (Internet-Gerentes, Web-Consulta…)
    Estou tentando configurar pela interface web.
    A versão do pfsense é 2.0 RC3, squid 2.7.

    Ja segui estes posts:
    http://forum.pfsense.org/index.php/topic,20208.0.html
    http://forum.pfsense.org/index.php/topic,28203.0.html
    http://forum.pfsense.org/index.php/topic,35412.0.html

    Na verdade eu estou muito confuso com estas nomeclaturas (dc, cn), pois sou leio em ldap.

    O ambiente está assim:
    AD: 10.10.0.10
    Grupos: Internet-Gerentes, Web-Consulta e Web-Bancos
    Dominio: dominio.com.br

    Como preencho os campos da guia "Auth Settings" do squid ?

    Alguem pode me ajudar?
    Obrigado!



  • Ve se ajuda:

    Authentication method: LDAP
    LDAP version: 3
    Authentication server: 10.10.0.10
    Authentication server port: 389
    LDAP server user DN: cn=administrator,cn=Users,dc=dominio,dc=com,dc=br
    LDAP password: Senha do usuário acima
    LDAP base domain: dc=dominio,dc=com,dc=br
    LDAP search filter: sAMAccountName=%s

    Digite o nome do usuário que quer autenticar, lá na ACL..



  • Ola danielz,
    Obrigado pela ajuda inicial.
    Me desculpe pela demora, pois nao tive tempo suficiente para testar as regras.
    Vamos lá:
    Eu consegui autenticar o user no AD. Mas estou apanhando nas regras das ACL's.
    Apos preencher conforme vc indicou acima, a autenticação funciona perfeito para cada usuario.
    Mas minha intenção é autenticar por grupo, conforme escrevi no inicio do post, mas nao estou muito confuso.

    No AD, OU=Grupos, criei um grupo chamado internet.
    Testei com 2 usuarios, ricardo e userteste.
    O ricardo esta dentro do grupo internet, e o userteste, nao esta no grupo.
    Quando solicita autenticação para navegar, digito o login e senha do ricardo, e a internet é liberada.
    Ja com o iuser, nao navega, fica pedindo senha.

    Desta forma, eu acredito que está funcioando a autenticação por grupo, ja que um usuario navega e outro não.
    Gostaria de aprender como definir os grupos nas ACL, pois quando o ricardo navega, a internet está full.
    Quero definir regras, por exemplo, criar um grupo "acesso-restrito", e este grupo só ira navegar nos sites cadastrados em um txt.
    Outro grupo, "internet-pesquisa", navega mas com restrinção dos bloqueios que eu definir.

    Desde ja agradeço.



  • Tambem fiz os seguintes testes:
    Alterando o squid.inc

    Abaixo desta linha:  acl password proxy_auth REQUIRED

    Eu coloquei:

    #AUTENTICACAO PERSONALIZADA GRUPOS DO AD
    #acl ldapacesso-restrito external ldap_group acesso-restrito
    acl acesso-restrito proxy_auth REQUIRED
    acl acesso-liberado proxy_auth REQUIRED
    #acl acesso-restrito proxy_auth acesso-restrito REQUIRED
    acl bloqueio url_regex -i "/var/squid/acl/bloqueio.acl"
    acl liberado url_regex -i "/var/squid/acl/liberado.acl"
    http_access allow acesso-liberado
    http_access allow liberado
    http_access deny bloqueio
    http_access allow acesso-restrito liberado

    Mesmo assim o squid trata os 2 grupos com os mesmos direitos de acesso.
    Detalhe: do jeito que esta a configuração acima, nenhum bloqueio é feito no grupo acesso-restrito
    Se eu comentar as linhas referente ao grupo acesso-liberado, os bloqueios funcionam perfeitamente para o grupo acesso-restrito.



  • @ricardodru:

    Mesmo assim o squid trata os 2 grupos com os mesmos direitos de acesso.
    Detalhe: do jeito que esta a configuração acima, nenhum bloqueio é feito no grupo acesso-restrito
    Se eu comentar as linhas referente ao grupo acesso-liberado, os bloqueios funcionam perfeitamente para o grupo acesso-restrito.

    Por partes… ;)

    1. Pelo menos no seu post aqui do fórum você está abrindo as áspas sem fechar na linha em que especifica arquivos;

    2. Não entendi direito a lógica da sequência dos seus bloqueios e liberações. Veja que o SQUID vai executar as ACLs na ordem seqüencial e, no seu caso, está assim:

    1º = Libera acesso os usuários pertencentes ao "acesso-liberado"
    2º = Libera o acesso as URLs do arquivo "liberado.acl"
    3º = Nega o acesso as URLS do arquivo "bloqueio.acl"
    4º = Libera o acesso aos usuários que pertencem ao grupo "acesso-restrito" e as URLs do arquivo "liberado.acl"

    Sabendo que as ACLs são executadas sequencialmente e que se uma ACL é executada as posteriores NÃO SÃO executadas, é isso mesmo que você quer? Ao meu ver está um pouco confusa a ordem das liberações/bloqueios!

    Abraços!
    Jack



  • JackL
    Obrigado pela ajuda.
    Vamos lá:
    Sobre as aspas, eu realmente esqueci de colocar, mas somente aqui no post, no squid.inc está correto.
    A ideia utilizada nas sequencias das ACLs, foi fazer o bloqueio/liberação da seguinte forma:
    1- O grupo "acesso-liberado", é permitido primeiro, para que nao caia em nenhum bloqueio;
    2- A ACL "liberado.acl", defini onde eu coloco os sites que nao podem ser bloqueados, mesmo que alguma palavra esbarre com algum filtro;
    3- bloqueio.acl, bloqueia os sites, antes de liberar o acesso do grupo "acesso-restrito";
    4- Esta acredito que me enganei na sequencia, pois a "liberado.acl", ja foi permitida na segunda posição. Nao tem o porque eu colocar a ACL desta forma.

    Como sugere a sequencia destas ACL's ?
    Saberia me dizer ficaria as ACL's, declarando os grupos cadastrados no AD ?



  • @ricardodru:

    4- Esta acredito que me enganei na sequencia, pois a "liberado.acl", ja foi permitida na segunda posição. Nao tem o porque eu colocar a ACL desta forma.

    Exato…

    Como sugere a sequencia destas ACL's ?

    Acho que "consertando" a regra mencionada acima, basta que você coloque como última regra (depois desta "http_access allow acesso-restrito"), a regra que nega TUDO para TODOS: "http_access deny all"!

    Por favor, teste e reporte por aqui mesmo os resultados! ;)

    Abraços!
    Jack



  • Jack
    Como estou editando diretamente o arquivo squid.inc, a regra "http_access deny all" ja vem default no final.
    Fiz os testes conforme vc mencionou, mas nao funcionou.
    Para que vc analise detalhadamente, estou postando meu squid.conf, depois de alterado o squid.inc.

    OBS: Mudei os nomes das ACL's: Internet-TI = Acesso full, Internet-Bancos = Limitado.
    Ao observar as ACL's Internet-TI e Internet-Bancos, quando comento a ACL Internet TI e deixo apenas a Internet-Bancos, o bloqueio funciona conforme meus planos. Mas ao deixar as 2 ACL's (que na verdade gostaria que funcionasse como os grupos do AD), o bloqueio nao funciona para ambos os grupos.
    Lembrando que ja criei os 2 grupos acima no AD, na OU=Grupos.
    A autenticação é feita normalmente por usuario cadastrado no AD.
    Tenho um terceiro usuario que uso para teste, e não esta em nenhum grupo. Este nao consegue autenticar para navegar.
    Até ai tudo bem, pois se nao está em nenhum grupo, não é para navegar mesmo.

    Do not edit manually !

    http_port 10.0.0.1:3128
    icp_port 0

    pid_filename /var/run/squid.pid
    cache_effective_user proxy
    cache_effective_group proxy
    error_directory /usr/local/etc/squid/errors/Portuguese
    icon_directory /usr/local/etc/squid/icons
    visible_hostname pfsense
    cache_mgr admin@localhost
    access_log /dev/null
    cache_log /var/squid/logs/cache.log
    cache_store_log none
    shutdown_lifetime 3 seconds

    Allow local network(s) on interface(s)

    acl localnet src  10.0.0.0/255.255.255.0
    httpd_suppress_version_string on
    uri_whitespace strip
    dns_nameservers 10.1.0.1
    cache_mem 8 MB
    maximum_object_size_in_memory 32 KB
    memory_replacement_policy heap GDSF
    cache_replacement_policy heap LFUDA
    cache_dir ufs /var/squid/cache 200 16 256
    minimum_object_size 0 KB
    maximum_object_size 4 KB
    offline_mode off
    cache_swap_low 90
    cache_swap_high 95

    No redirector configured

    Setup some default acls

    acl all src 0.0.0.0/0.0.0.0
    acl localhost src 127.0.0.1/255.255.255.255
    acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901  3128 1025-65535
    acl sslports port 443 563 
    acl manager proto cache_object
    acl purge method PURGE
    acl connect method CONNECT
    acl dynamic urlpath_regex cgi-bin ?
    acl blacklist dstdom_regex -i "/var/squid/acl/blacklist.acl"
    cache deny dynamic
    http_access allow manager localhost

    http_access deny manager
    http_access allow purge localhost
    http_access deny purge
    http_access deny !safeports
    http_access deny CONNECT !sslports

    Always allow localhost connections

    http_access allow localhost

    ##MODIFICACOES PERSONALIZADAS

    request_body_max_size 0 KB
    reply_body_max_size 0 deny all
    delay_pools 1
    delay_class 1 2
    delay_parameters 1 -1/-1 -1/-1
    delay_initial_bucket_level 100
    delay_access 1 allow all

    Block access to blacklist domains

    http_access deny blacklist
    auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -v 3 -b dc=dominio,dc=com,dc=br -D cn=Administrator,cn=Users,dc=dominio,dc=com,dc=br -w 1234 -f "cn=%s" -u uid -P 10.0.0.2:389
    auth_param basic children 5
    auth_param basic realm Please enter your credentials to access the proxy
    auth_param basic credentialsttl 60 minutes
    acl password proxy_auth REQUIRED

    #AUTENTICACAO PERSONALIZADA GRUPOS DO AD
    #acl ldapInternet-Bancos external ldap_group Internet-Bancos
    #acl Internet-Bancos proxy_auth REQUIRED
    #acl Internet-TI proxy_auth REQUIRED
    #acl Internet-Bancos proxy_auth Internet-Bancos REQUIRED
    acl Internet-Bancos proxy_auth REQUIRED "/var/squid/acl/gp_bancos.acl"
    acl Internet-TI proxy_auth REQUIRED "/var/squid/acl/gp_ti.acl"
    acl bloqueio url_regex -i "/var/squid/acl/bloqueio.acl"
    acl liberado url_regex -i "/var/squid/acl/liberado.acl"
    http_access allow Internet-TI
    http_access allow liberado
    http_access deny bloqueio
    http_access allow Internet-Bancos
    http_access allow password localnet

    Default block all to be sure

    http_access deny all



  • @ricardodru:

    Jack
    Como estou editando diretamente o arquivo squid.inc, a regra "http_access deny all" ja vem default no final.
    Fiz os testes conforme vc mencionou, mas nao funcionou.
    Para que vc analise detalhadamente, estou postando meu squid.conf, depois de alterado o squid.inc.

    OBS: Mudei os nomes das ACL's: Internet-TI = Acesso full, Internet-Bancos = Limitado.
    Ao observar as ACL's Internet-TI e Internet-Bancos, quando comento a ACL Internet TI e deixo apenas a Internet-Bancos, o bloqueio funciona conforme meus planos. Mas ao deixar as 2 ACL's (que na verdade gostaria que funcionasse como os grupos do AD), o bloqueio nao funciona para ambos os grupos.
    Lembrando que ja criei os 2 grupos acima no AD, na OU=Grupos.
    A autenticação é feita normalmente por usuario cadastrado no AD.
    Tenho um terceiro usuario que uso para teste, e não esta em nenhum grupo. Este nao consegue autenticar para navegar.
    Até ai tudo bem, pois se nao está em nenhum grupo, não é para navegar mesmo.

    @ricardodru,

    Antes de mais nada, é preciso entender que estas configurações fogem do escopo da GUI do PFSense. Por isso, a partir de agora nossa relação é diretamente com o pacote SQUID.

    Bem, o que você tem no arquivo "/var/squid/acl/gp_bancos.acl"? O nome do grupo?

    Pelo que consigo perceber, aparentemente o processo de autenticação do pacote SQUID junto ao WinServer não está ocorrendo 100%. Minha primeira dica é que você faça uma cópia de segurança deste seu arquivo "squid.inc" e tente adpatar as configurações da seção de autenticação as dicas deste post: http://www.papercut.com/kb/Main/ConfiguringSquidProxyToAuthenticateWithActiveDirectory

    Veja como o autor trabalhar com a construção da ACL que tem o grupo de usuários com permissão de navegar na web. Acho que este artigo pode resolver esta sua pendenga!

    Tente fazer e qualquer dúvida específica, poste por aqui mesmo…

    Abraços!
    Jack



  • JackL

    Obrigado pela ajuda.
    Demorei uns dias para responder, mas venho com boas noticias. Consegui fazer o squid autenticar por grupo no AD.
    Estou à semanas procurando estas informações, mas não encontrei.
    O ruim é que tem pessoas que ja descobriram como fazer, mas nao compartilham a informação.
    Portanto, resolvi escrever um passo a passo, compartilhando esta dica.
    A URL que vc me passou, ja inclui no tutorial, junto a seção de "referências".
    Sobre o tutorial, qualquer comentario, critica ou sugestão será bem vindo.

    Agradeço ao JackL e danielz, que me ajudaram de alguma forma.

    OBS.: Não consigo anexar o arquivo PDF, pois o forum não aceita esta extenção de arquivo.
    Alguem tem alguma sugestão de onde postar ?



  • @ricardodru,

    Legal… fico feliz em saber que você resolveu a sua pendenga (inclusive coloquei o "RESOLVIDO" no título deste meu post... Isso ajuda a galera a se organizar em fóruns públicos como este).

    Fico feliz também em saber que conseguimos lhe ajudar de alguma forma e, mais feliz ainda, em saber que você está retornando à comunidade uma contribuição (tutorial). Sou um pouco novo "neste fórum", por isso não sei se existe uma área específica para divulgação deste tipo de material. Logo aí em cima é possível ver pelo menos 2 tópicos fixos, com tutoriais no estilo do seu... Provavelmente os moderadores podem aprovar este upload!

    De todo modo, deixo o http://www.JACK.eti.br à disposição para publicação deste seu material. Assim ficará mais fácil referenciar por aqui - apontando apenas o link! ;)

    Abraços!
    Jack



  • Jack

    te enviei um email em particular sobre o assunto



  • @ricardodru:

    Jack
    te enviei um email em particular sobre o assunto

    O documento em PDF, de autoria do colega Ricardo, já pode ser acessado a partir deste link: http://www.jack.eti.br/www/arquivos/outros_tutoriais/pfsense/autenticacao_grupos_AD_pfsense.pdf

    Abraços!
    Jack



  • @JackL:

    O documento em PDF, de autoria do colega Ricardo, já pode ser acessado a partir deste link: http://www.jack.eti.br/www/arquivos/outros_tutoriais/pfsense/autenticacao_grupos_AD_pfsense.pdf

    Agora o artigo do Ricardo também pode ser acessado diretamente pelo blog: http://www.jack.eti.br/www/?p=3052

    Abraços!
    Jack



  • Olá Jack,

    Estamos na luta pra fazer o squid funcionar por grupo do AD, li o seu tuto, o do link abaixo, depois alterei o meu squid.inc. Porém o meu squid não sobe… Fica registrando o erro a seguir no log:

    squid[16863]: Bungled squid.conf line 83: external_acl_type ldap_group children=30

    Onde estou errando?

    Desde já sou muito grato pelas contribuições de todos, pois são foruns como este que nos estimula a utilizar ferramentas em linux, só não aprende quem não quer mesmo…

    Veja abaixo o trecho adicionado no squid.inc

    seguindo –-> http://forum.pfsense.org/index.php/topic,20208.0.html

    ###################################################################### 
    #  Estrutura dentro do AD:
    #  Domínio: srg.net, Servidor: SERVER4, IP: 192.168.1.202
    #  Admin: Users\administrador
    #  Grupos de Internet: g_produtividade, g_total
    #  Unidade Org.: u_internet
    ######################################################################

    #Define a autenticação ldap e os parâmetros usados
    external_acl_type ldap_group children=30
    %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
    "minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389

    #Define a ACL do tipo external para usar os grupos do AD
    external_acl_type ldap_group
    %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=administrador,cn=Users,dc=srg,dc=net" -w
    "minha senha" -f "(&(&(objectClass=person)(sAMAccountName=%u))(memberOf=%g))" -h 192.168.1.202

    #Define uma ACL denominada "produtividade" para um grupo que terá acesso restrito.
    acl gprodutividade external ldap_group CN=g_produtividade, OU= u_internet, DC=srg,dc=net

    #Define uma ACL para acesso restrito aos domínios listados em um arquivo texto
    acl restrito dstdom_regex -i "/var/squid/acl/whitelist.acl"

    #Define a diretiva formada pela combinação das ACLs acima definidas (AND lógico).
    http_access allow gprodutividade restrito

    #Define uma ACL para um grupo com acesso total.
    acl gtotal external ldap_group CN=g_total, OU= u_internet, DC=srg,dc=net

    #Define a diretiva de acesso total.
    http_access allow gtotal

    ######################################################################



  • @ValterTI11:

    #Define a autenticação ldap e os parâmetros usados
    external_acl_type ldap_group children=30
    %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
    "minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389

    @ValterTI11,

    Antes de qualquer coisa, grato pelos elogios…
    No entanto, o artigo foi escrito pelo @ricardodru. Eu apenas o publiquei no meu blog.

    Em relação a sua dúvida, veja que a linha "external_acl_type ldap_group" é inteira, ou seja, deve ser escrito tudo na mesma linha "external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group..."

    Uma pequena correção: O PFSense é baseado no FreeBSD, não no Linux (embora ambos sejam softwares livres, são sistemas operacionais bem diferentes). ;-)

    Abraços!
    Jack



  • Fala Jack,

    Era isso mesmo, coloquei tudo em uma linha só e o squid subiu sem problemas.
    Eu sinceramente não sabia que o FreeBSB e Linux não são a mesma coisa… Aprendendo mais uma... vou pesquisar mais a respeito...
    Porém agora estou no 2º Round com o squid + LDAP...
    É o seguinte a estação pede o usuário e senha, mas fica repetindo isso sem para e não navega...

    Grato por mais essa...

    Veja como está as minhas ACLs:

    #Define a ACL do tipo external para usar os grupos do AD
    external_acl_type ldap_group %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=squid,cn=Users,dc=srg,dc=net" -w  "senha" -f "(&(&(objectClass=person)(sAMAccountName=%v))(memberOf=cn=%a, ou=g_internet, dc=srg, dc=net))" -h 192.168.1.202 -p 389

    #Vincula as ACLs com base nos grupos do AD
    acl gprodutividade external ldap_group g_produtividade
    acl gtotal              external ldap_group g_total       
    acl gbloqueados    external ldap_group g_bloqueados

    #Define uma ACL para acesso restrito aos domínios listados em um arquivo texto produtividade.acl
    acl restrito dstdom_regex -i "/var/squid/acl/produtividade.acl"

    #Define a diretiva formada pela combinação das ACLs acima definidas
    http_access deny  gbloqueados
    http_access deny  gprodutividade !restrito
    http_access allow gtotal

    #######################################################################

    @JackL:

    @ValterTI11:

    #Define a autenticação ldap e os parâmetros usados
    external_acl_type ldap_group children=30
    %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3 -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w
    "minha senha" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=g_internet,dc=srg,dc=net))" -h 192.168.1.202 -p 389

    @ValterTI11,

    Antes de qualquer coisa, grato pelos elogios…
    No entanto, o artigo foi escrito pelo @ricardodru. Eu apenas o publiquei no meu blog.

    Em relação a sua dúvida, veja que a linha "external_acl_type ldap_group" é inteira, ou seja, deve ser escrito tudo na mesma linha "external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group..."

    Uma pequena correção: O PFSense é baseado no FreeBSD, não no Linux (embora ambos sejam softwares livres, são sistemas operacionais bem diferentes). ;-)

    Abraços!
    Jack



  • Valter
    Vou tentar ajuda-lo a resolver isso
    O que esta acontecendo, é que o squid nao consegue identificar o grupo em que o usuário esta cadastrado.

    No trecho abaixo, descrito no seu squid.inc, ficou meio confuso.

    #Vincula as ACLs com base nos grupos do AD
    acl gprodutividade external ldap_group g_produtividade
    acl gtotal              external ldap_group g_total       
    acl gbloqueados    external ldap_group g_bloqueados

    Por exemplo, no AD, qual o nome do grupo "gprodutividade" ?
    No AD, este grupo chama-se gprodutividade, ou g_produtividade ?
    Acho que vc confundiu ai.
    Veja no meu tutorial, a linha abaixo:
    acl ldapInternet-TI external ldap_group Internet-TI

    Eu defini apenas como nome da ACL "ldapInternet-TI", ja no AD, este grupo esta definido como "Internet-TI".
    A ordem é essa:

    acl "nomedaACL" external ldap_group "grupo cadastrdo no AD"

    OBS: Utilizei as aspas "" apenas para referencia, pois na linha de configuração, estas aspas nao devem ser inseridas.
    Em nome da ACL, vc define qualquer nome, em grupo cadastrado no AD, vc deve inserir o nome correto que esta cadastrado no AD.
    Lembrando, em ""nome da ACL", deverá colocar um nome diferente do nome do grupo do AD.
    Faça os testes ai e poste o resultado.



  • Olá RicardoDru,

    É o seguinte:
    Grupos de Internet no AD: g_produtividade, g_total, g_bloqueados
    e as ACLs gprodutividade, gtotal, gbloqueados

    Então escrevi acho certo mesmo. Ok?

    acl gprodutividade external ldap_group g_produtividade
    acl gtotal             external ldap_group g_total       
    acl gbloqueados    external ldap_group g_bloqueados

    @ricardodru:

    Valter
    Vou tentar ajuda-lo a resolver isso
    O que esta acontecendo, é que o squid nao consegue identificar o grupo em que o usuário esta cadastrado.

    No trecho abaixo, descrito no seu squid.inc, ficou meio confuso.

    #Vincula as ACLs com base nos grupos do AD
    acl gprodutividade external ldap_group g_produtividade
    acl gtotal             external ldap_group g_total       
    acl gbloqueados    external ldap_group g_bloqueados

    Por exemplo, no AD, qual o nome do grupo "gprodutividade" ?
    No AD, este grupo chama-se gprodutividade, ou g_produtividade ?
    Acho que vc confundiu ai.
    Veja no meu tutorial, a linha abaixo:
    acl ldapInternet-TI external ldap_group Internet-TI

    Eu defini apenas como nome da ACL "ldapInternet-TI", ja no AD, este grupo esta definido como "Internet-TI".
    A ordem é essa:

    acl "nomedaACL" external ldap_group "grupo cadastrdo no AD"

    OBS: Utilizei as aspas "" apenas para referencia, pois na linha de configuração, estas aspas nao devem ser inseridas.
    Em nome da ACL, vc define qualquer nome, em grupo cadastrado no AD, vc deve inserir o nome correto que esta cadastrado no AD.
    Lembrando, em ""nome da ACL", deverá colocar um nome diferente do nome do grupo do AD.
    Faça os testes ai e poste o resultado.



  • Ok Valter,
    Esta certo do jeito que vc fez.
    Poste a imagem da guia Auth Settings do Squid, e tambem o trecho do squid.inc onde vc personaliza as configurações.

    Nas linhas de configuração personalizadas, bem como na guia Auth Settings do squid, vc está usando qual usuário para pesquisar no AD ?
    Se vc leu o meu tutorial, veja que fiz testes na maquina fisica, e tambem em VMs.
    Na VM, utilizei um usuario comum chamado squid, ja na maquina fisica, isto nao funcionou, tive que utilizar o Administrator.
    Faça os testes e poste o resultado.



  • Fala Ricardo,

    É o seguinte… seu eu escrever diretor no squid.conf, deixo a guia auth Settings em branco e reiniciar o serviço... Tudo funciona.
    Depois tento colar no squid.inc e depois reinicio o servidor aí ele não escreve no squid.conf.

    O que gostaria mesmo era escrever direto no squid.conf e se ele reiniciar um script meu vai lá e copia o meu squid.conf,, mas vai ficar um gambiarra do inferno.... Ou tem um jeito de anular o squid.inc?

    Esse negócio tá ficando cada vez mais complicado, mas estou aprendendo um bocado... hehehe

    Mas se
    @ricardodru:

    Ok Valter,
    Esta certo do jeito que vc fez.
    Poste a imagem da guia Auth Settings do Squid, e tambem o trecho do squid.inc onde vc personaliza as configurações.

    Nas linhas de configuração personalizadas, bem como na guia Auth Settings do squid, vc está usando qual usuário para pesquisar no AD ?
    Se vc leu o meu tutorial, veja que fiz testes na maquina fisica, e tambem em VMs.
    Na VM, utilizei um usuario comum chamado squid, ja na maquina fisica, isto nao funcionou, tive que utilizar o Administrator.
    Faça os testes e poste o resultado.



  • Valter, conseguiu resolver o problema?
    Acho estranho vc alterar o squid.inc, reiniciar o serviço, e o squid.conf nao ser reescrito.
    É padrão do pfsense (squid.inc) reescrever o squid.conf, sempre que o serviço ou o sistema for reiniciado. A nao ser que vc altere o squid.conf, faça uma copia, e um script se encarrega de repor o squid.conf original quando o sistema for reiniciado.
    Quando vc reinicia o serviço, vc faz isto via ssh ?
    Ao invez de reiniciar, ja tentou apenas salvar (clicando no botão), em uma das guias do proxy server ? Isto pode ser feito a guia Access Control.
    Qual a versão do pfsense que vc esta usando ?



  • Oi Ricardo,

    Agora ficou bom. Coloquei em custom option e deu certo. Eu dei mole com o ";" entre linhas, mas agora foi. (Veja abaixo observe o ";" no final de cada linha).

    Porém deixei a aba Auth Setting em branco, o parâmetro http_access allow localnet estava aparecendo, então coloquei http_access deny localnet no início do meu código e deu certo. Outro detalhe é que tive que desmarcar a opção Allow users on interface. Testei reiniciando o serviço, depois reiciando o server e ficou 10. Tudo funcionado belezinha.

    Creio o problema do squid.inc era várias abas do navegador aberta, lá para as 3 da madruga, e mexendo em códigos do squid… lendo email, pfds e vendo HBO, aí nada vai dar certo mesmo...
    Fui dormir, e depois com calma e com a ajuda do Leandro Bandeira on-line, foi show, tudo 100%.

    O mais fantástico do open source não é o produto em si, mas a colaboração voluntária dos seus usuários. Eita falei bonito!!!

    Mais uma vez muito obrigado mesmo...

    Um forte abraço. Valter


    access deny localhost;
    auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -v 3 -R -b dc=srg,dc=net -D cn=Administrador,cn=Users,dc=srg,dc=net -w MinhaSenha -f "sAMAccountName=%s" -u uid -P 192.168.1.202;

    auth_param basic children 5;
    auth_param basic realm INTERNET CORPORATIVA;
    auth_param basic credentialsttl 60 minutes;
    acl password proxy_auth REQUIRED;

    external_acl_type ldap_group %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=srg,dc=net" -D "cn=Administrador,cn=Users,dc=srg,dc=net" -w "MinhaSenha" -f "(&(&(objectClass=person)(sAMAccountName=%u))(memberOf=%g))" -h 192.168.1.202;

    acl gprodutividade external ldap_group CN=g_prod,OU=u_internet,DC=srg,DC=net;

    acl restrito dstdom_regex -i "/var/squid/acl/produtividade.acl";

    http_access allow gprodutividade restrito;

    acl gtotal external ldap_group CN=g_total,OU=u_internet,DC=srg,DC=net;

    http_access allow gtotal;

    http_access deny all;


    @ricardodru:

    Valter, conseguiu resolver o problema?
    Acho estranho vc alterar o squid.inc, reiniciar o serviço, e o squid.conf nao ser reescrito.
    É padrão do pfsense (squid.inc) reescrever o squid.conf, sempre que o serviço ou o sistema for reiniciado. A nao ser que vc altere o squid.conf, faça uma copia, e um script se encarrega de repor o squid.conf original quando o sistema for reiniciado.
    Quando vc reinicia o serviço, vc faz isto via ssh ?
    Ao invez de reiniciar, ja tentou apenas salvar (clicando no botão), em uma das guias do proxy server ? Isto pode ser feito a guia Access Control.
    Qual a versão do pfsense que vc esta usando ?



  • Boa noite, pessoal sou novo aqui,
    Tenho pfsense 2.0 já atualizado, squid, lightsquid e squidGuard
    A primeira duvida é fazer a autenticação por usuário no AD.  Até ja consegui mas só com usuarios da OU Users
    Porem, tenho uma OU com o nome ( funcionários ) com 5 usuarios, quando eu faço a alteração para enxergar os 5 usuarios….ex:(cn=squid,cn=FUNCIONARIOS,dc=dominio,dc=com,dc=br).  ele simplesmente não reconhece.

    A segunda duvida seria criar os grupos de liberação dentro de uma OU..
    OU - funcionarios   e  dentro desta grupo liberado e grupo bloqueado. nao entendi a parte de colar os codigos dentro do squid.inc

    Pessoal desde já agradeço a atenção de todos.

    Att



  • @ricardogarcia:

    Boa noite, pessoal sou novo aqui,
    Tenho pfsense 2.0 já atualizado, squid, lightsquid e squidGuard
    A primeira duvida é fazer a autenticação por usuário no AD.  Até ja consegui mas só com usuarios da OU Users
    Porem, tenho uma OU com o nome ( funcionários ) com 5 usuarios, quando eu faço a alteração para enxergar os 5 usuarios….ex:(cn=squid,cn=FUNCIONARIOS,dc=dominio,dc=com,dc=br).  ele simplesmente não reconhece.

    A segunda duvida seria criar os grupos de liberação dentro de uma OU..
    OU - funcionarios   e  dentro desta grupo liberado e grupo bloqueado. nao entendi a parte de colar os codigos dentro do squid.inc

    Pessoal desde já agradeço a atenção de todos.

    Att

    Ricardo

    Primeiramente, sobre as duvidas no arquivo squid.inc, leia o tutorial que escrevi, lá vc entenderá o porque alterar o arquivo squid.inc.
    O tutorial está em PDF, veja nos posts anteriores o local de acesso ao arquivo.

    Para trabalhar com os grupos, crie uma OU chamada Internet. Dentro desta OU, vc cria os grupos (e relacione os usuarios aos grupos), e depois relacione estes grupos no squid.inc.

    Veja o exemplo:

    external_acl_type ldap_group children=30 %LOGIN /usr/local/libexec/squid/squid_ldap_group -v 3  -R -b "dc=dominio,dc=com,dc=br" -D "cn=squid,cn=Users,dc=dominio,dc=com,dc=br" -w "SENHA" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=Internet,dc=dominio,dc=com,dc=br))" -h  10.22.5.10 -p 389

    Neste trecho:  memberof=cn=%a,ou=Internet,dc=dominio,dc=com,dc=br
    Em ou=Internet, é a OU que contem os grupos a serem autenticados.

    Depois de criar os grupos e relacionar cada usuario com os grupos, é só seguir o tutorial que eu fiz, indicando os grupos de acesso no squid.inc


Log in to reply