Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Squid + Autenticação NCSA + Controle de Acesso por Grupos

    Portuguese
    6
    14
    19.4k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Daniel Herzer
      last edited by

      Squid + Autenticação NCSA + Controle de Acesso por Grupos

      Esse tutorial busca ajudar aqueles que necessitam montar um servidor proxy aonde os usuários precisem ser autenticados, separados por grupos e que cada grupo tenha uma lista específica de sites liberados para acesso, de uma forma prática e rápida sem ter que usar algum tipo de integração com o AD, Samba ou LDAP.

      Parte 1 – Instalação do Squid

      Vá no menu ”System > Packages”, na tela que se segue clique em ”Available Packages” e procure na lista o Squid. Clique na setinha ao lado da linha do Squid para instalar o pacote. Com a instalação bem sucedida do Squid vamos à próxima etapa.


      Figura 1: Menu System > Packages


      Figura 2: Pacote do Squid


      Figura 3: Instalação bem sucedida do Squid.

      Parte 2 – Configurações Básicas do Squid

      Vamos realizar a configuração básica do nosso Proxy. Para isso vamos acessar as configurações do Squid no menu ”Services > Proxy Server”.


      Figura 4: Configurações Básicas do Squid.

      Na aba “General”, estão localizadas as configurações básicas do nosso servidor proxy. Geralmente não é preciso alterar nada para que o proxy funcione. Então vamos deixar os valores como padrão para a maioria dos campos, alterando somente o campo ”Language” para “Portuguese” (isso fará com que o Squid exiba as páginas de erro em Português) e um pouco mais abaixo vamos marcar a opção ”Supress Squid Version” (para que o Squid não mostre a sua versão na página de erros). E por fim clicamos em ”Save” para guardar nossas configurações.


      Figura 5: Continuação das Configurações Básicas do Squid


      Figura 6: Continuação das Configurações Básicas do Squid

      Parte 3 – Configurações de Autenticação do Squid

      Ainda nas configurações do Squid, vamos até a aba “Auth Settings”. Aqui vamos configurar nosso Squid para que ele utilize a base de dados Local. Então vamos até o campo ”Authentication Method” e vamos escolher a opção “Local”.


      Figura 7: Configurações de Autenticação do Squid

      Ainda nessa tela temos 3 campos importantes:

      “Authentication prompt”: Texto que vai ser exibido na janela que pede o usuário e a senha.
      “Authentication processes”: Número de autenticações simultâneas. Ajuste conforme preciso.
      “Authentication TTL”: Este campo define o tempo de vida da sessão de um usuário autenticado.

       
      Figura 8: Configurações de Autenticação do Squid

      Clicamos em ”Save” e vamos à próxima etapa.

      Parte 4 – Cadastro de novos usuários

      Nas configurações do proxy na aba “Local Users”, vamos cadastrar os 3 usuários para utilizarmos no nosso exemplo. Para cadastrar um usuário clique no ícone da setinha marcado na figura abaixo.


      Figura 9: Cadastros de Usuários no  Squid

      Na tela que se abre, temos 2 campos obrigatórios: ”Username” e ”Password”. Já o campo “Description” é opcional, porém é muito útil para caráter administrativo. No nosso exemplo eu usei esse campo para definir qual departamento o usuário pertence. Clicamos em “Save” para finalizar essa etapa de cadastro.


      Figura 10: Continuação dos Cadastros de Usuários no  Squid

      Parte 5 – Administrando Usuários: Remover Usuário e Troca de Senha

      Ainda em "Local Users", podemos perceber que na listagem dos usuários cadastrados no sistema, ao lado aparece dois pequenos ícones, eles são a função editar e deletar.

      No botão editar você poderá trocar o nome de usuário e a senha. E no de remover, excluímos o usuário do sistema.

      No caso de alterar o dados do usuário, o pfSense traz o mesmo formulário só que preenchido com os Dados Originais bastando você alterar aonde necessário.

       
      Figura 11: Cadastros de Usuários no Squid

      Parte 6 – Definindo os Grupos e seus respectivos Sites Liberados

      Finalmente chegou a hora de fazermos a autenticação por grupos no pfSense. Vamos no menu “Diagnostics > Edit File”. No campo que aparece vamos digitar: “/usr/local/pkg/squid.inc” e apertar no botão “Load”. Uma vez  conteúdo do arquivo carregado, vamos procurar (Control + F) pelo seguinte conteúdo: “acl password proxy_auth REQUIRED” (sem as aspas).


      Figura 12: Alterando o squid.inc

      Entre a linha "acl password proxy_auth REQUIRED" e a "EOD;" vamos inserir o código abaixo:

      
      ### Definição ACLs dos Grupos com Seus Respectivos Usuários ###
      acl COMERCIAL proxy_auth "/var/squid/acl/usuarios_comercial.acl"
      acl FINANCEIRO proxy_auth "/var/squid/acl/usuarios_financeiro.acl"
      acl ADMINISTRATIVO proxy_auth "/var/squid/acl/usuarios_administrativo.acl"
      
      ### Definição das ACLs dos Sites Liberados para Cada Grupo ###
      acl SITES_COMERCIAL url_regex "/var/squid/acl/sites_comercial.acl"
      acl SITES_FINANCEIRO url_regex "/var/squid/acl/sites_financeiro.acl"
      acl SITES_ADMINISTRATIVO url_regex "/var/squid/acl/sites_administrativo.acl"
      
      ### Liberação do Acesso para os Grupos ###
      http_access allow password COMERCIAL SITES_COMERCIAL
      http_access allow password FINANCEIRO SITES_FINANCEIRO
      http_access allow password ADMINISTRATIVO SITES_ADMINISTRATIVO
      http_access deny all
      
      

      Agora salvamos o arquivo "squid.inc" alterado.

      OBSERVAÇÃO

      Em nosso ambiente de implementação de autenticação por grupos, cada grupo tem a sua própria lista de site permitidos, há um detalhe muito importante a realçar.

      Na interface de configuração do Squid, em “Services > Proxy Server” na aba “Access Control” temos os campos “Whitelist” e “Blacklist”.

      Essas duas listas tem precedência sobre as demais liberações ou bloqueios que usamos no “squid.inc”.

      DICA

      Particularmente eu uso esse campo “Whitelist” para cadastrar os sites que serão disponíveis para todos os grupos, ou seja, os sites em comum a todos eles. Pois todos terão acesso. Restando a lista personalizada de cada grupo somente àqueles sites que são acessados só por aquele grupo em específico.

      Parte 7 – Criação dos arquivos que definem o grupo e os sites que podem ser visitados

      O próximo passo é criar e popular os arquivos que referenciamos nas ACLs de grupos e de sites. Vou dar um exemplo com a criação de ambos arquivos para o Grupo Comercial:

      Vamos trocar o endereço “/usr/local/pkg/squid.inc” para o endereço ”/var/squid/acl/usuarios_comercial.acl” e então apertamos o botão “Load”.

      O pfSense vai dar a seguinte mensagem avisando que o arquivo não existe: “File does not exist or is not a regular file.”. Vamos ignorar essa mensagem e iremos povoar o arquivo com o nome do usuário do departamento Comercial, no nosso caso "joao".

      Se houver mais de um usuário por Departamento, iremos manter sempre o padrão de um usuário por linha. Ao término do processo vamos apertar “Save”. Notaremos então que a mensagem de arquivo inexistente irá ser alterada para “File Save Sucessfully”. Isso irá nos informar que nosso arquivo agora existe e que foi criado com sucesso.


      Figura 14: Criação do Arquivo de Grupo com o Usuário

      Agora vamos repetir o processo acima alterando o arquivo a ser criado para: "/var/squid/acl/sites_comercial.acl" que é o arquivo que contém a lista dos sites liberados para esse grupo.

      Nesse arquivo vamos continuar mantendo o padrão de um site cadastrado por linha.

      .uol.com.br/*

      Iremos repetir os processos acima para os grupos restantes e suas respectivas listas de sites liberados:

      Grupos:

      /var/squid/acl/usuarios_financeiro.acl
      /var/squid/acl/usuarios_administrativo.acl

      Sites Liberados:

      /var/squid/acl/sites_financeiro.acl
      /var/squid/acl/sites_administrativo.acl

      Com tudo devidamente criado, vamos acessar o menu ”Services > Proxy Server”, vamos apenas rolar a tela para baixo e apertar no botão ”Save”. Isso fará que o Squid tenha as suas regras recarregadas, eliminando a necessidade de reiniciar o pfSense ou parar/recarregar o serviço do Squid.

      Se tudo foi feito corretamente seu Squid estará funcionando com a autenticação NCSA e políticas de controle de acesso por grupos. Parabéns!

      Parte 8 - Soluções de Problemas

      Caso o seu Squid não esteja funcionando, vamos até o menu ”Status > Services”. Aqui saberemos o serviço do Squid está iniciado ou parado.

      Outra dica importante é ir em “Status > System Logs”, Na aba “System” temos os últimos 50 registros de logs do sistema. E ali provavelmente será mostrado o erro do Squid caso o mesmo não venha a ser iniciado corretamente. Se for um erro na ACL ele irá lhe dizer qual a ACL está com o problema.

      Tutorial Criado Por: Daniel Herzer
      Fortaleza, 25 de Setembro de 2012
      E-mail: herzer@caisnetwork.com.br

      1 Reply Last reply Reply Quote 0
      • marcellocM
        marcelloc
        last edited by

        Daniel Herzer,

        Primeiramente, bem vindo ao fórum!  :)

        Excelente iniciativa em publicar tutoriais.

        Tenho uma dica para deixa-lo ainda melhor.

        No lugar de usar o edit file do pfsense, use o pacote filer para manter as alterações no backup do pfsense.

        Treinamentos de Elite: http://sys-squad.com

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • D
          Daniel Herzer
          last edited by

          Marcello,

          Obrigado pelas boas vindas e pela dica do pacote filer… irei experimentá-lo :)

          1 Reply Last reply Reply Quote 0
          • T
            thiagomespb
            last edited by

            Bela iniciativa,

            alguem se habilita em fazer o mesmo monstrado integrado ao Squid, Dansguadian, Active Diretory sem autenticação via browser..

            1 Reply Last reply Reply Quote 0
            • marcellocM
              marcelloc
              last edited by

              Daniel Herzer,

              Seu tutorial já está publicado na parte de pacotes   :)

              Tutoriais para pfSense - pacotes

              Considere publica-lo também no blog da comunidade, para evitar que o tutorial se perca caso os links das imagens deste post fiquem indisponíveis.

              Treinamentos de Elite: http://sys-squad.com

              Help a community developer! ;D

              1 Reply Last reply Reply Quote 0
              • marcellocM
                marcelloc
                last edited by

                @thiagomespb:

                alguem se habilita em fazer o mesmo monstrado integrado ao Squid, Dansguadian, Active Diretory sem autenticação via browser..

                A importação dos grupos já é nativa no pacote do dansguardian, e já temos tutoriais com este procedimento.

                Sugiro uma boa pesquisa no fórum.

                Treinamentos de Elite: http://sys-squad.com

                Help a community developer! ;D

                1 Reply Last reply Reply Quote 0
                • T
                  thiagomespb
                  last edited by

                  olhei alguns links disponiveis no forum muitos confusos, diferente deste.

                  1 Reply Last reply Reply Quote 0
                  • G
                    gst.freitas
                    last edited by

                    @thiagomespb:

                    olhei alguns links disponiveis no forum muitos confusos, diferente deste.

                    concordo..

                    1 Reply Last reply Reply Quote 0
                    • marcellocM
                      marcelloc
                      last edited by

                      @thiagomespb:

                      olhei alguns links disponiveis no forum muitos confusos, diferente deste.

                      Usando palavras do nosso estimado professor JackL, não seria este o momento ideal para você exercitar a retroalimentação do fórum e se basear neste tutorial para "organizar" os "tutoriais confusos"?  ???

                      Treinamentos de Elite: http://sys-squad.com

                      Help a community developer! ;D

                      1 Reply Last reply Reply Quote 0
                      • T
                        thiagomespb
                        last edited by

                        passe então um que funcione.. que eu peço a um amigo para ele seguir o mesmo.. e tentar integrar..

                        1 Reply Last reply Reply Quote 0
                        • marcellocM
                          marcelloc
                          last edited by

                          @thiagomespb:

                          passe então um que funcione.. que eu peço a um amigo para ele seguir o mesmo.. e tentar integrar..

                          Todos os que estão na área de tutorias são contribuições dos usuários do fórum e funcionam, pode escolher qualquer um…

                          Treinamentos de Elite: http://sys-squad.com

                          Help a community developer! ;D

                          1 Reply Last reply Reply Quote 0
                          • G
                            gst.freitas
                            last edited by

                            Não quero ficar discutido. etc. etc.

                            também tentei usar este daqui e não consegui..

                            http://forum.pfsense.org/index.php/topic,47532.75.html

                            quando concordei que estava "confuso" pq a solução não estava clara.. isso é apenas
                            sugestão para o aprimorar o pfsense.. se alguem do fórum conseguiu fazer essa integração
                            bastaria fazer igual e postar aqui..

                            1 Reply Last reply Reply Quote 0
                            • M
                              mendax
                              last edited by

                              @Daniel:

                              Squid + Autenticação NCSA + Controle de Acesso por Grupos

                              Esse tutorial busca ajudar aqueles que necessitam montar um servidor proxy aonde os usuários precisem ser autenticados, separados por grupos e que cada grupo tenha uma lista específica de sites liberados para acesso, de uma forma prática e rápida sem ter que usar algum tipo de integração com o AD, Samba ou LDAP.

                              Parte 1 – Instalação do Squid

                              Vá no menu ”System > Packages”, na tela que se segue clique em ”Available Packages” e procure na lista o Squid. Clique na setinha ao lado da linha do Squid para instalar o pacote. Com a instalação bem sucedida do Squid vamos à próxima etapa.


                              Figura 1: Menu System > Packages


                              Figura 2: Pacote do Squid


                              Figura 3: Instalação bem sucedida do Squid.

                              Parte 2 – Configurações Básicas do Squid

                              Vamos realizar a configuração básica do nosso Proxy. Para isso vamos acessar as configurações do Squid no menu ”Services > Proxy Server”.


                              Figura 4: Configurações Básicas do Squid.

                              Na aba “General”, estão localizadas as configurações básicas do nosso servidor proxy. Geralmente não é preciso alterar nada para que o proxy funcione. Então vamos deixar os valores como padrão para a maioria dos campos, alterando somente o campo ”Language” para “Portuguese” (isso fará com que o Squid exiba as páginas de erro em Português) e um pouco mais abaixo vamos marcar a opção ”Supress Squid Version” (para que o Squid não mostre a sua versão na página de erros). E por fim clicamos em ”Save” para guardar nossas configurações.


                              Figura 5: Continuação das Configurações Básicas do Squid


                              Figura 6: Continuação das Configurações Básicas do Squid

                              Parte 3 – Configurações de Autenticação do Squid

                              Ainda nas configurações do Squid, vamos até a aba “Auth Settings”. Aqui vamos configurar nosso Squid para que ele utilize a base de dados Local. Então vamos até o campo ”Authentication Method” e vamos escolher a opção “Local”.


                              Figura 7: Configurações de Autenticação do Squid

                              Ainda nessa tela temos 3 campos importantes:

                              “Authentication prompt”: Texto que vai ser exibido na janela que pede o usuário e a senha.
                              “Authentication processes”: Número de autenticações simultâneas. Ajuste conforme preciso.
                              “Authentication TTL”: Este campo define o tempo de vida da sessão de um usuário autenticado.

                               
                              Figura 8: Configurações de Autenticação do Squid

                              Clicamos em ”Save” e vamos à próxima etapa.

                              Parte 4 – Cadastro de novos usuários

                              Nas configurações do proxy na aba “Local Users”, vamos cadastrar os 3 usuários para utilizarmos no nosso exemplo. Para cadastrar um usuário clique no ícone da setinha marcado na figura abaixo.


                              Figura 9: Cadastros de Usuários no  Squid

                              Na tela que se abre, temos 2 campos obrigatórios: ”Username” e ”Password”. Já o campo “Description” é opcional, porém é muito útil para caráter administrativo. No nosso exemplo eu usei esse campo para definir qual departamento o usuário pertence. Clicamos em “Save” para finalizar essa etapa de cadastro.


                              Figura 10: Continuação dos Cadastros de Usuários no  Squid

                              Parte 5 – Administrando Usuários: Remover Usuário e Troca de Senha

                              Ainda em "Local Users", podemos perceber que na listagem dos usuários cadastrados no sistema, ao lado aparece dois pequenos ícones, eles são a função editar e deletar.

                              No botão editar você poderá trocar o nome de usuário e a senha. E no de remover, excluímos o usuário do sistema.

                              No caso de alterar o dados do usuário, o pfSense traz o mesmo formulário só que preenchido com os Dados Originais bastando você alterar aonde necessário.

                               
                              Figura 11: Cadastros de Usuários no Squid

                              Parte 6 – Definindo os Grupos e seus respectivos Sites Liberados

                              Finalmente chegou a hora de fazermos a autenticação por grupos no pfSense. Vamos no menu “Diagnostics > Edit File”. No campo que aparece vamos digitar: “/usr/local/pkg/squid.inc” e apertar no botão “Load”. Uma vez  conteúdo do arquivo carregado, vamos procurar (Control + F) pelo seguinte conteúdo: “acl password proxy_auth REQUIRED” (sem as aspas).


                              Figura 12: Alterando o squid.inc

                              Entre a linha "acl password proxy_auth REQUIRED" e a "EOD;" vamos inserir o código abaixo:

                              
                              ### Definição ACLs dos Grupos com Seus Respectivos Usuários ###
                              acl COMERCIAL proxy_auth "/var/squid/acl/usuarios_comercial.acl"
                              acl FINANCEIRO proxy_auth "/var/squid/acl/usuarios_financeiro.acl"
                              acl ADMINISTRATIVO proxy_auth "/var/squid/acl/usuarios_administrativo.acl"
                              
                              ### Definição das ACLs dos Sites Liberados para Cada Grupo ###
                              acl SITES_COMERCIAL url_regex "/var/squid/acl/sites_comercial.acl"
                              acl SITES_FINANCEIRO url_regex "/var/squid/acl/sites_financeiro.acl"
                              acl SITES_ADMINISTRATIVO url_regex "/var/squid/acl/sites_administrativo.acl"
                              
                              ### Liberação do Acesso para os Grupos ###
                              http_access allow password COMERCIAL SITES_COMERCIAL
                              http_access allow password FINANCEIRO SITES_FINANCEIRO
                              http_access allow password ADMINISTRATIVO SITES_ADMINISTRATIVO
                              http_access deny all
                              
                              

                              Agora salvamos o arquivo "squid.inc" alterado.

                              OBSERVAÇÃO

                              Em nosso ambiente de implementação de autenticação por grupos, cada grupo tem a sua própria lista de site permitidos, há um detalhe muito importante a realçar.

                              Na interface de configuração do Squid, em “Services > Proxy Server” na aba “Access Control” temos os campos “Whitelist” e “Blacklist”.

                              Essas duas listas tem precedência sobre as demais liberações ou bloqueios que usamos no “squid.inc”.

                              DICA

                              Particularmente eu uso esse campo “Whitelist” para cadastrar os sites que serão disponíveis para todos os grupos, ou seja, os sites em comum a todos eles. Pois todos terão acesso. Restando a lista personalizada de cada grupo somente àqueles sites que são acessados só por aquele grupo em específico.

                              Parte 7 – Criação dos arquivos que definem o grupo e os sites que podem ser visitados

                              O próximo passo é criar e popular os arquivos que referenciamos nas ACLs de grupos e de sites. Vou dar um exemplo com a criação de ambos arquivos para o Grupo Comercial:

                              Vamos trocar o endereço “/usr/local/pkg/squid.inc” para o endereço ”/var/squid/acl/usuarios_comercial.acl” e então apertamos o botão “Load”.

                              O pfSense vai dar a seguinte mensagem avisando que o arquivo não existe: “File does not exist or is not a regular file.”. Vamos ignorar essa mensagem e iremos povoar o arquivo com o nome do usuário do departamento Comercial, no nosso caso "joao".

                              Se houver mais de um usuário por Departamento, iremos manter sempre o padrão de um usuário por linha. Ao término do processo vamos apertar “Save”. Notaremos então que a mensagem de arquivo inexistente irá ser alterada para “File Save Sucessfully”. Isso irá nos informar que nosso arquivo agora existe e que foi criado com sucesso.


                              Figura 14: Criação do Arquivo de Grupo com o Usuário

                              Agora vamos repetir o processo acima alterando o arquivo a ser criado para: "/var/squid/acl/sites_comercial.acl" que é o arquivo que contém a lista dos sites liberados para esse grupo.

                              Nesse arquivo vamos continuar mantendo o padrão de um site cadastrado por linha.

                              .uol.com.br/*

                              Iremos repetir os processos acima para os grupos restantes e suas respectivas listas de sites liberados:

                              Grupos:

                              /var/squid/acl/usuarios_financeiro.acl
                              /var/squid/acl/usuarios_administrativo.acl

                              Sites Liberados:

                              /var/squid/acl/sites_financeiro.acl
                              /var/squid/acl/sites_administrativo.acl

                              Com tudo devidamente criado, vamos acessar o menu ”Services > Proxy Server”, vamos apenas rolar a tela para baixo e apertar no botão ”Save”. Isso fará que o Squid tenha as suas regras recarregadas, eliminando a necessidade de reiniciar o pfSense ou parar/recarregar o serviço do Squid.

                              Se tudo foi feito corretamente seu Squid estará funcionando com a autenticação NCSA e políticas de controle de acesso por grupos. Parabéns!

                              Parte 8 - Soluções de Problemas

                              Caso o seu Squid não esteja funcionando, vamos até o menu ”Status > Services”. Aqui saberemos o serviço do Squid está iniciado ou parado.

                              Outra dica importante é ir em “Status > System Logs”, Na aba “System” temos os últimos 50 registros de logs do sistema. E ali provavelmente será mostrado o erro do Squid caso o mesmo não venha a ser iniciado corretamente. Se for um erro na ACL ele irá lhe dizer qual a ACL está com o problema.

                              Tutorial Criado Por: Daniel Herzer
                              Fortaleza, 25 de Setembro de 2012
                              E-mail: herzer@caisnetwork.com.br

                              Show de bola Daniel… seja bem vindo ao fórum e meus parabéns pela iniciativa de ajudar a comunidade, um abraço :wq

                              ++Mendax

                              1 Reply Last reply Reply Quote 0
                              • JackLJ
                                JackL
                                last edited by

                                @marcelloc:

                                Usando palavras do nosso estimado professor JackL, não seria este o momento ideal para você exercitar a retroalimentação do fórum e se basear neste tutorial para "organizar" os "tutoriais confusos"?  ???

                                Muito bem lembrado meu caro Marcello!

                                Tenho notado que a máxima, em todos os fóruns e comunidades de tecnologia que participo, continua sendo a mesma: A imensa maioria dos usuários/frequentadores querem só a resposta prontinha. Um tutorial passo-a-passo, com ilustrações comentadas e, se possível, dicas e macetes extras.

                                Isso é um fórum aberto, público e colaborativo. Não é uma central de 0800 onde você liga e tem consultores para lhe atender prontamente (e de graça).

                                Princípio de qualquer fórum/comunidade de tecnologia = Retroalimentação!

                                Nota: O Daniel já publicou seu tutorial no blog da comunidade brasileira do pfSense. Parabéns a ele pela iniciativa - Espero que estimule outros membros aqui do fórum a fazer o mesmo (publicar seus textos por lá)! ;)

                                Abraços!
                                Jack

                                Treinamentos de Elite: http://sys-squad.com
                                Soluções: https://conexti.com.br

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post
                                Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.