SQUID com autenticação e permissões por grupos do Active Directory e relatórios com SARG

Instalação e configuração do Squid e seus complementos para autenticação no Active Directory, utilizando a estrutura de grupos para conceder acesso a internet de acordo com perfis de usuários, além de geração de relatórios para monitoramento de acessos

[ Hits: 25.419 ]

Por: Carlos Rossini Alencar Liberal em 30/10/2018


Explicando algumas configurações do Squid



Pontos mais importantes:

No bloco abaixo, definimos quais IPs podem contornar o squid, solucionando alguns problemas de acesso.

acl direto src "/etc/squid/regras/ipslivres"
http_access allow direto
always_direct allow direto

No bloco abaixo, definimos quais sites podem contornar o Squid, solucionando alguns problemas de acesso.

acl liberados dstdomain "/etc/squid/regras/liberados"
always_direct allow liberados
http_access allow liberados

Aqui vamos definir como será feita a autenticação, apontando o arquivo utilizado para esse processo, no nosso caso, devido a versão do squid utilizada, teremos o /usr/lib/squid/basic_ldap_auth para fazer a autenticação, e posteriormente os parâmetros external_acl_type e ldap_group, informando o Squid que o nível de permissão será definido de acordo com o grupo a qual o usuário pertence.

O expediente aqui é de 6 horas corridas, então defini a validade da credencial por 6 horas com o parâmetro auth_param basic credentialsttl, depois, utilizo o parâmetro acl autenticados proxy_auth REQUIRED para requisitar a senha do usuário.

#############################################################################
# autenticacao
#############################################################################

# Texto da autenticacao no pop-up
auth_param basic realm .::. EMPRESA - Controle de acessos .::.

# Autenticacao com usuario ad do windows com pop up
auth_param basic program /usr/lib/squid/basic_ldap_auth -v 3 -b dc=empresa,dc=local -D cn=squid,cn=Users,dc=empresa,dc=local -w senha -f "sAMAccountName=%s" -u uid -P 10.10.10.2:389 -R

# Autenticacao por grupos do ad do windows
external_acl_type ldap_group %LOGIN /usr/lib/squid/ext_ldap_group_acl -R -b dc=empresa,dc=local -D cn=squid,cn=Users,dc=empresa,dc=local -w senha -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=internet,dc=empresa,dc=local))" -h 10.10.10.2:389

auth_param basic credentialsttl 6 hours
acl autenticados proxy_auth REQUIRED

Agora vamos definir onde estão as listas que queremos usar para permitir/bloquear.

Como exemplo, vamos usar a primeira regra:

acl usuarios_master external ldap_group usuarios_master

1. criação da acl: acl usuarios_master
2. dizer onde a acl irá buscar as informações: external ldap_group usuarios_master

Onde:
  • usuarios_master (o primeiro, do começo da regra) é o nome da acl
  • external ldap_group é o método para recuperar a lista de usuários que fazem parte desta acl
  • usuarios_master (o segundo, do final da regra) é o nome do grupo dentro do AD que tem a lista de usuários que fará parte desta acl

Faremos isso para os outros grupos de usuários.

Depois vamos definir também as listas de bloqueios. Usando a primeira lista, teremos o seguinte:

acl webproxy url_regex -i "/etc/squid/regras/bloqueios/webproxy"

Onde:
  • webproxy é o nome da acl;
  • url_regex -i é o método para recuperar a lista de sites a serem permitidos ou bloqueados;
  • "/etc/squid/regras/bloqueios/webproxy" é a localização do arquivo que contém a lista de sites.;

Também deve ser feito para todas as regras que você julgar necessário criar.

Agora o mais importante, aqui a mágica acontece!

Aqui definimos a hierarquia de acesso, entenda que as permissões de acesso se dão pela ordem das regras, então se faz necessário obedecer a sequência.

Primeiro, vamos liberar o acesso dos administradores da rede, para que consigam acessar tudo e também poder fazer a verificação se o que está sendo acessado condiz com a política de uso do local em que o acesso acontece.

http_access allow usuarios_master

Depois, negamos acesso a grupos de sites que geralmente são bloqueados a todos os outros usuários, lembrando que definimos quais sites seriam esses em seus respectivos arquivos:

http_access deny webproxy
http_access deny pornografia
http_access deny streaming

Feito isso, daremos acesso aos usuários com permissão para acesso a redes sociais:

http_access allow usuarios_redes_sociais

Agora vamos bloquear os sites de redes sociais definidos no arquivo correspondente:

http_access deny redes_sociais

Permitimos acesso aos usuários do grupo usuarios_youtube:

http_access allow usuarios_youtube

Negamos acesso as urls correspondentes ao youtube:

http_access deny youtube

Agora vamos liberar o acesso a internet dos demais usuários:

http_access allow usuarios_comuns

E por fim, negamos os acessos dos usuários que mesmo autenticados, não fazem parte de nenhum grupo que é utilizado para as permissões de acesso a internet.

http_access deny autenticados

Permitimos acesso do computador que funciona como proxy e também de dentro da nossa rede local:

http_access allow redelocal
http_access allow localhost

Negamos todos os acessos que não se encaixam em nenhuma alternativa acima:

http_access deny all

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configuração do Active Directory
   3. Preparando o servidor Linux e iniciando a instalação de pacotes
   4. Configurando o Kerberos
   5. Configurando o Samba e ajustando o relógio com o servidor AD
   6. Testando a comunicação com o Servidor AD e colocando o servidor proxy no domínio
   7. Criando arquivos auxiliares do Squid
   8. Configurando o Squid
   9. Explicando algumas configurações do Squid
   10. Programando o SARG para gerar o relatório todos os dias às 23:45
   11. Observações, conclusão e referências
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Nagios no Ubuntu 14.04 - Instalação e configuração

Debian 9: como instalar TL-WN823N v2 (TP-LINK)

Acesso remoto entre GNU/Linux e Windows

Configuração de serviço do Nagios para monitorar o APT do Ubuntu

Instalando DNS Server (BIND) no CentOS 7

  
Comentários
[1] Comentário enviado por jeffersonmartins em 31/10/2018 - 11:38h

Parabéns, bem detalhado!
Será de grande valia!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts