Sarg + Relatórios Automáticos + Domínio Autenticado + Desbloqueio na Página do Squid

Neste artigo mostro como instalar e configurar o Sarg no Debian 6, com geração e exclusão (crontab) de relatórios automaticamente, relatórios sendo acessados por um domínio (BIND 9) com autenticação (Apache 2) e ainda, a opção do usuário solicitar (Postfix) desbloqueio de sites via formulário (PHP) na página de bloqueio do Squid.

[ Hits: 30.402 ]

Por: dalveson sanches em 31/01/2013 | Blog: http://www.vivaolinux.com.br/~dalveson


Requisitos



Como requisito, partirei do ponto que você já tenha configurado e esteja rodando o Squid, BIND e o Apache.

Criaremos um domínio para os relatórios do Squid gerado pelo Sarg, que irá responder pelo nome de "squid.dalveson.com.br". O IP da máquina onde estará instalado o Squid e o Sarg será 192.168.2.1:

# cd /etc/bind

Aqui a minha zona normal tem o nome de "db.dalveson.com.br" e a reversa tem o nome "db.2.168.192", visto que minha rede é 192.168.2.0/24. Vamos editá-las para adicionar o domínio que será usado na criação do virtual hosts do Apache:

# nano db.dalveson.com.br

No final do arquivo adicione o registro DNS do tipo A, que converte nome em IPv4:

squid    IN  A   192.168.2.1

Agora edite o arquivo da zona reversa:

# nano db.2.168.192

No final do arquivo adicione um registro do tipo PTR, que converte IP em nome:

* Lembrando que o número 1 no início da linha indica o IP onde estará a aplicação Sarg.

1     PTR    squid.dalveson.com.br

Reinicie o seu BIND:

# /etc/init.d/bind9 restart

Agora, no servidor onde está o Apache, crie o diretório onde serão salvos os relatórios do Squid:

# mkdir /var/www/squid-reports

Entre no diretório que você acabou de criar:

# cd /var/www/squid-reports

Agora criaremos o arquivo ".htpasswd", que conterá usuários/senha que terão acesso ao diretório:

# htpasswd -c /var/www/squid-reports/.htpasswd dalveson

Onde:
  • /var/www/squid-reports → Diretório que deseja proteger;
  • .htpasswd → Arquivo que será criado contendo nome de usuário e senha, que poderá acessar a pasta;
  • dalveson → Usuário que acessará a pasta.

Ele irá lhe pedir uma senha e em seguida pedirá para você repeti-la. Se tudo deu certo, no final ele exibirá uma mensagem dizendo que a senha para o usuário foi adicionada.

Adicione os hosts virtuais no arquivo host do sistema:

# nano /etc/hosts

127.0.0.1 localhost.localdomain localhost
192.168.2.1 srv-guardiao.localdomain srv-guardiao
192.168.2.1 squid.dalveson.com.br squid

* Onde "srv-guardiao" é o hostname da minha máquina.

Acesse o diretório de sites-available:

# cd /etc/apache2/sites-available

Crie o seu site com base no modelo disponibilizado pelo Apache:

# cp default squid.dalveson.com.br

Edite o seu site "squid.dalveson.com.br" e altere o diretório apontando para /var/www/squid-reports, que será o local onde o Sarg salvará os relatórios de acesso:

# nano squid.dalveson.com.br

E deixe-o da seguinte maneira:

<VirtualHost *:80>
   ServerAdmin dalveson@dalveson.com.br
   ServerName squid.dalveson.com.br
   DocumentRoot /var/www/squid-reports/

   <Directory />
         Options FollowSymLinks
         AllowOverride None
   </Directory>

   <Directory /var/www/squid-reports/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Order allow,deny
         allow from all

# AuthType Basic É o tipo de autenticação
         AuthType Basic
# AuthName "Acesso Restrito:" É a mensagem que aparece quando pedir a senha
AuthName "Acesso Restrito:"
# AuthUserFile "/var/www/squid-reports/.htpasswd" É o arquivo que armazena a senha
AuthUserFile "/var/www/squid-reports/.htpasswd"
# Require user - Essa linha indica que usuário pode acessar.
Require user dalveson
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

   <Directory "/usr/lib/cgi-bin">
         AllowOverride None
         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
         Order allow,deny
         Allow from all
   </Directory>

   ErrorLog /var/log/squid.dalveson.com.br-error.log
   LogLevel warn
   CustomLog /var/log/squid.dalveson.com.br-access.log combined
</VirtualHost>

Agora é necessário habilitar o site criado, para tanto execute:

# a2ensite squid.dalveson.com.br

Reinicie o Apache:

# /etc/init.d/apache reload

Pronto. Agora que os sites/virtual hosts já estão habilitados, vá até um computador na rede e tente acessar o "squid.dalveson.com.br". Observe que irá lhe pedir usuário e senha.

    Próxima página

Páginas do artigo
   1. Requisitos
   2. Instalação
   3. Formulários no Squid
   4. Finalizando
Outros artigos deste autor

VnStat - Monitorando o tráfego de sua rede

Leitura recomendada

Internet lenta? Reclame é um direito seu, mas antes leia isto.

Filtrando IPs no Debian e Ubuntu com o Mobloquer

Ferramentas úteis para diagnóstico da rede

Configurando BIND 9 + chroot sem mistérios

Site for IE: Até quando?

  
Comentários
[1] Comentário enviado por porongo51 em 31/01/2013 - 11:06h

Muito bom o artigo! Vou implementar aqui na empresa com mais tempo...

Abraço!

[2] Comentário enviado por andrecaleiros em 31/01/2013 - 13:11h

bem legal cara!
parabens

[3] Comentário enviado por Linuxlrt em 31/01/2013 - 16:36h

Muito informativo
Parabéns!

[4] Comentário enviado por cesarufmt em 31/01/2013 - 19:09h

Muito interessante isso.

Valeu demais!!!!


[5] Comentário enviado por thiagocpv em 01/02/2013 - 04:09h

Bacana, bem útil e interessante!
Só uma dúvida, e se por acaso já existir um SMTP Server na rede e quiser usar ele?? Não vi onde altera de localhost para o IP interno do SMTP Server...
Como ficaria??

Abs!!

[6] Comentário enviado por dalveson em 01/02/2013 - 10:18h


[5] Comentário enviado por thiagocpv em 01/02/2013 - 04:09h:

Bacana, bem útil e interessante!
Só uma dúvida, e se por acaso já existir um SMTP Server na rede e quiser usar ele?? Não vi onde altera de localhost para o IP interno do SMTP Server...
Como ficaria??

Abs!!


Bom dia thiagocpv, é que infelizmente nao deixei isso muito claro né, a linha onde voce altera o servidor smtp encontra-se dentro do arquivo de configuração do postfix:
# SMTP relayhost
relayhost = [smtp.gmail.com]:587
Basta incluir seu servidor
att

[7] Comentário enviado por thiagocpv em 01/02/2013 - 19:14h

Hummm entao obrigatoriamente eu preciso ter um postfix rodando nessa maquina, nao há como apontar direto para o IP do smtp server no action.php???

Abs!!

[8] Comentário enviado por dalveson em 01/02/2013 - 20:14h


[7] Comentário enviado por thiagocpv em 01/02/2013 - 19:14h:

Hummm entao obrigatoriamente eu preciso ter um postfix rodando nessa maquina, nao há como apontar direto para o IP do smtp server no action.php???

Abs!!


realmente existe a obrigatoriedade do postfix, mais vc pode tentar da uma ajustada a sua realidade, talvez se vc alterasse o arquivo ERR_ACCESS_DENIED na lunha form id="formulario" action="http://ip-do-apache/action.php" method="post" name="formulario"> e configurasse para ao inves dele chamar o action chamasse alguns script que vc criasse que fosse capaz de enviar email com teu smtp talvez funcionaria, nao tenho certeza mais talvez funcionaria.

[9] Comentário enviado por thiagocpv em 01/02/2013 - 20:34h

Eu fiz e funcionou!!!
Alterei no php.ini chamando um script que envia emails usando meu smtp!!!

Valeuuu!!!

[10] Comentário enviado por dalveson em 01/02/2013 - 21:06h


[9] Comentário enviado por thiagocpv em 01/02/2013 - 20:34h:

Eu fiz e funcionou!!!
Alterei no php.ini chamando um script que envia emails usando meu smtp!!!

Valeuuu!!!


pow legal, porem seria legal se vc detalhase mais como fez, para que outros usuarios tambem tivessem esta outra opção para utilização
att

[11] Comentário enviado por armandomxj em 01/02/2013 - 21:18h

Estou recevendo o seguinte erro:

Na tentativa de recuperar a URL: http://ip-do-apache/action.php

O seguinte erro foi encontrado:

Incapaz de determinar o endereço IP através do nome do host ip-do-apache

O servidor DNS retornou:

Name Error: The domain name does not exist.

Isso significa que:

O cache foi incapaz de resolver o nome do host presente na URL.
Verifique se o endereço está correto.

Seria o dns...meu dns esta funcionado ( eu creio ) amigo teria como me ajudar.

[12] Comentário enviado por dalveson em 01/02/2013 - 21:21h


[11] Comentário enviado por armandomxj em 01/02/2013 - 21:18h:

Estou recevendo o seguinte erro:

Na tentativa de recuperar a URL: http://ip-do-apache/action.php

O seguinte erro foi encontrado:

Incapaz de determinar o endereço IP através do nome do host ip-do-apache

O servidor DNS retornou:

Name Error: The domain name does not exist.

Isso significa que:

O cache foi incapaz de resolver o nome do host presente na URL.
Verifique se o endereço está correto.

Seria o dns...meu dns esta funcionado ( eu creio ) amigo teria como me ajudar.


edite o arquivo action.php e sustitua a linha http://ip-do-apache/action.php no campo ip-do-apache coloque o ip do teu servidor apache onde ta salvo o arquivo action.php

[13] Comentário enviado por EuzebioViana em 04/02/2013 - 09:29h

Muito bom! Parabéns...

[14] Comentário enviado por dalveson em 04/02/2013 - 17:47h

vlw galera,
a motivação do artigo surgiu de um necessidade particular, o gerente da empresa onde trabalho me solicitou acesso aos relatorios de que os usuarios da rede acessavam, ae eu pensei vou so passar o caminho do sarg para ele,porem no primeiro dia ele me disse que era muito chato ter que digitar toda vez aquele monte de numero "imagina só um simples ip" ae resolvi instalar o bind e criar o dominio e juntamente com o apache atraves de virtual host diponibilizar um dominio para ele, ae pensei ufa resolvido, demorou mais ou menos uma semana observei que todos os pcs ja estavam acessando os relatorios ae imaginei que algume tinha observado o nome do dominio e propagado para os outors usuarios curiosos "nessa hora nao aparece um culpado" ae entao resolvi colocar senha no dominio com o auxilio do apache, depois de umas 2 semnas ele me raclamou que tinha usuarios que estavam reclamando que alguns sites estavam sendo bloqueados erroneamentes, me perguntou senao tinha como criar algo que os usuarios mesmo podessem solicitar, ae vi no site aprendolinux o lance do formulario, so dei umas ajustadas e pronto, virou essa bananada toda que para mim esta sendo bastante util.
abraços

[15] Comentário enviado por Rafael Oliveira em 09/04/2013 - 11:26h

Alguém também esta tendo problemas com o Firefox 19.0? Ele não exibe mais a página de erro do Squid, e sim uma página de erro própria.

[16] Comentário enviado por amauridell em 25/05/2013 - 17:12h

oi.
estou com uma dificuldade, após tudo pronto é funcionando o e-mail é enviado, mas não chega na caixa de e-mail da minha conta.
já verifique o spam e outro coisa que poderia dar problemas ... mas nada
alguém teve este tipo de problema?

[17] Comentário enviado por cgonzagaskill em 10/07/2013 - 17:55h

Olá dalveson

Parabéns pelo Post... Mas logo na parte inicial no último passo a2ensite squid.dalveson.com.br no meu caso PDCMAHARY-01.mahary.local, ele apresenta a seguinte mensagem
To activate the new configuration, you need to run:
service apache2 reload

e não executar esse comando

Reinicie o Apache:
# /etc/init.d/apache reload

e ao chamar no browser PDCMAHARY-01.mahary.local e aparece a mensagem "IT works " , não fazendo o procedimento abaixo;

Pronto. Agora que os sites/virtual hosts já estão habilitados, vá até um computador na rede e tente acessar o "PDCMAHARY-01.mahary.local". Observe que irá lhe pedir usuário e senha.

Você me ajudar ?

Antecipadamente agradeço,

Carlos

[18] Comentário enviado por joaomartfer em 15/01/2015 - 13:35h


Ola Caro Amigo eu acompanhei seu tutorial
porem na hora que eu vou enviar o email já na tela do squid ele diz que envio eu não recebo nada esta aqui o log do postfix se puder ajudar
Jan 15 13:33:07 srvproxy postfix/pickup[9214]: 1A60ED40F28: uid=33 from=<www-data>
Jan 15 13:33:07 srvproxy postfix/cleanup[9238]: 1A60ED40F28: message-id=<20150115153307.1A60ED40F28@srvproxy.localdomain>
Jan 15 13:33:07 srvproxy postfix/qmgr[9215]: 1A60ED40F28: from=<www-data@srvproxy.localdomain>, size=514, nrcpt=1 (queue active)
Jan 15 13:33:07 srvproxy postfix/smtp[9240]: Untrusted TLS connection established to smtp.martfer.com.br[200.234.210.12]:587: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Jan 15 13:33:07 srvproxy postfix/smtp[9240]: 1A60ED40F28: host smtp.martfer.com.br[200.234.210.12] said: 450 4.1.8 <www-data@srvproxy.localdomain>: Sender address rejected: Domain not found (in reply to RCPT TO command)
Jan 15 13:33:08 srvproxy postfix/smtp[9240]: Untrusted TLS connection established to smtp.martfer.com.br[200.234.210.13]:587: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Jan 15 13:33:08 srvproxy postfix/smtp[9240]: 1A60ED40F28: to=<suporteti@martfer.com.br>, relay=smtp.martfer.com.br[200.234.210.13]:587, delay=1.4, delays=0.1/0/1/0.28, dsn=4.1.8, status=deferred (host smtp.martfer.com.br[200.234.210.13] said: 450 4.1.8 <www-data@srvproxy.localdomain>: Sender address rejected: Domain not found (in reply to RCPT TO command))
^C


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts