Proxy Squid com SquidGuard + Controle de Banda e Autenticação NTLM no Samba 4 (CentOS 6.5 - 64 bits Minimal)

Depois de cinco dias brigando na frente do PC e fuçando muito na Internet (lembrando que esse assunto, em especial, ainda tem pouca coisa a respeito), só hoje consegui por em funcionamento. Squid + SquidGuard + autenticação no Samba 4 ou AD (Microsoft). Espero que ajude aos amigos que buscam a mesma solução.

[ Hits: 53.024 ]

Por: Fagner Silva do Nascimento em 11/04/2014


Configurando o SquidGuard



# vi /etc/squid/squidGuard.conf

# Diretorio das Listas de Bloqueio

dbhome /var/squidGuard/db
logdir /var/log/squidGuard

# Autenticacao LDAP

ldapbinddn   cn=squid,ou=INTERNET,dc=palacio,dc=local
ldapbindpass  password
ldapcachetime 60

# Grupos de Bloqueio

src ACESSOLIVRE {
    ldapusersearch ldap://192.168.100.11:3268/dc=palacio,dc=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=ACESSOLIVRE%2cou=INTERNET%2cdc=palacio%2cdc=local))
         }

src ACESSOREDESSOCIAIS {
            ldapusersearch ldap://192.168.100.11:3268/dc=palacio,dc=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=ACESSOREDESSOCIAIS%2cou=INTERNET%2cdc=palacio%2cdc=local))
}

src ACESSOVIDEOS {
    ldapusersearch ldap://192.168.100.11:3268/dc=palacio,dc=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=ACESSOVIDEOS%2cou=INTERNET%2cdc=palacio%2cdc=local))
}

## Listas de Bloqueio ( Filtragem ) Usando duas listas Bigblaclist e Shallalist

# Big Blacklist


dest porn {
    domainlist   blacklists/porn/domains
    urllist     blacklists/porn/urls
#    expessionlist  blacklists/porn/expressions
}

dest audio-video {
    domainlist   blacklists/audio-video/domains
    urllist     blacklists/audio-video/urls
}

# Shallalist

dest porn2 {
    domainlist   BL/porn/domains
    urllist     BL/porn/urls
}

dest socialnet {
    domainlist   BL/socialnet/domains
    urllist     BL/socialnet/urls
}

# Controle de Acessos ( ACLs )

acl   {

    ACESSOLIVRE {
        pass !porn !porn2
    }

    ACESSOREDESSOCIAIS {
        pass socialnet !porn !porn2 !audio-video
    }


    ACESSOVIDEOS {
        pass audio-video !porn !porn2 !socialnet
    }

    default {
        pass !porn !porn2 !socialnet !audio-video
    redirect http://192.168.100.16/cgi-bin/squidGuard-simple.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u
    }
    }

Baixe as listas dentro do diretório /var/squidGuard/db, eu, particularmente, uso as duas listas abaixo:
Descompacte:

# tar -zxvf bigblacklist.tar.gz
# tar -zxvf shallalist.tar.gz


Criar os bancos:

# squidGuard -b -u -C all

Monitorar os logs do SquidGuard:

# tail -f /var/log/squidGuard/squidGuard.log

Após completar o processo (que, dependendo da quantidade de listas, pode demorar um pouco), vamos dar as permissões devidas:

# chown -R squid:squid /var/squidGuard/db/*
# find /var/squidGuard/db -type f | xargs chmod 644
# find /var/squidGuard/db -type d | xargs chmod 755
# squid -k reconfigure


Criando uma whitelist autorizando o acesso aos sites manualmente:

Adicione uma nova ACL:

# vi /etc/squid/squidGuard.conf

dest white {
  domainlist white/domains
  urllist white/urls
}

default {
        pass white !porn !porn2 !socialnet !audio-video
    redirect http://192.168.100.16/cgi-bin/squidGuard-simple.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u
    }
    }

A ACL white será lida primeiro e o acesso às páginas especificadas no arquivo será liberado.

Criar a pasta e os arquivos:

# mkdir /var/lib/squidguard/db/white
# touch /var/lib/squidguard/db/white/domains
# touch /var/lib/squidguard/db/white/urls


Onde:
  • Arquivo domains para domínios liberados por completo. Exemplo: "google.com.br".
  • Arquivo urls para páginas. Exemplo: "vivaolinux.com.br/contribuir/artigo/", sempre um por linha.

Obs.: em qualquer alteração feita nos arquivos dbs, se faz necessário atualizar a conversão das listas e reiniciar o Squid:

# chown -R squid:squid /var/squidGuard/db/*
# find /var/squidGuard/db -type f | xargs chmod 644
# find /var/squidGuard/db -type d | xargs chmod 755
# squidGuard -b -u -C all
# squid -k reconfigure


Página anterior    

Páginas do artigo
   1. Configurações iniciais
   2. Configurando o Squid
   3. Configurando o SquidGuard
Outros artigos deste autor

BIND 9 - DNS Master e Slave CentOS 6.4 Minimal

Leitura recomendada

NET Virtua, Bloqueio de DNS, SmartTVs, Netflix e Youtube, uma mistura explosiva

FreeRadius 3 + iODBC + Base de Dados em MS SQL Server 2008 no Ubuntu Server - Guia definitivo

Análise de Desempenho: Web API

Nagios 3 + NagiosQL no Ubuntu Server 12.04

Openswan - Configurando uma conexão VPN Site-to-Site e simulando com GNS3

  
Comentários
[1] Comentário enviado por jorgevisentini em 15/04/2014 - 21:08h

Muito bom o tutorial.

Amigo, tenho uma dúvida. Quando o Squid não está integrado com o AD, a troca de permissões, acessos é instantâneo, porém quando integrei com o AD, quando eu mudo o grupo do usuário no AD, leva alguns minutos para surtir efeito.

É correto isso?

Outra coisa... já peguei vários caso em tive que reiniciar o Wimbind porque o navegador não detectava o proxy e/ou não solicitava usuário e senha...

Isso acontece com você ou é alguma configuração que está faltando?

Valeuu

[2] Comentário enviado por morati em 10/06/2014 - 21:40h

Não consegui, mesmo seguindo seu tutorial. Uma dúvida, eu posso integrar apenas o squidguard sem o squid com o samba4?
tem algum contato skype ou gtalk? estou quebrando a cabeça ha dois dias!

[3] Comentário enviado por diegojr554 em 17/12/2014 - 14:54h

Segui o seu tutorial e tudo funcionou normalmente, mas estou tendo problemas com os logs, por exemplo quando um usuário tenta acessar um site que está bloqueado o proxy bloqueia normalmente, mas no log aparece a mensagem como TCP_MISS/200 quando devia ser 401 ou 403. Como estou usando lightsquid, os relatórios aparecem como se o usuário tivesse acessado a página.

[4] Comentário enviado por rubensvital em 25/06/2015 - 14:32h


Valeu! Agora está funcionando a autenticação.
Só não consegui user o squidguard. Eu tenho que configurar estas listas no meu ad?
Quando uso o squidGuard -b -u -C all, fica um tempão, mas não aparece nada no log.

[5] Comentário enviado por marcelohcm em 06/08/2015 - 15:51h


como eu faço a liberação por usuário, e não por grupo??

[6] Comentário enviado por marcelohcm em 29/09/2015 - 11:20h


gostaria de saber como faço a liberação por usuário, e não por grupo!
obrigado.

[7] Comentário enviado por rafael.mendes em 01/10/2016 - 15:26h

Boa Tarde.

No arquivo de log do SquidGuard estou recebendo essa mensagem...

2016-10-01 15:21:39 [2716] (squidGuard): ldap_simple_bind_s failed: Strong(er) authentication required

nas config do squidguard.conf esta setado usuário e senha com o caminho da CN correta... já validei

# Autenticacao LDAP
ldapbinddn cn=squid,ou=TI,ou=Usuarios,dc=rmitsolucoes,dc=net
ldapbindpass senha@squid2016
ldapcachetime 60

Mas o log continua dando falha...
Alguma ideia?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts