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.864 ]

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


Formulários no Squid



Instale os pacotes e suas dependências:

# aptitude install libsasl2-2 libsasl2-modules sasl2-bin mutt postfix openssl

Procedimentos:
  • Durante a instalação, o Postfix irá lhe avisar com que tipo de configuração ele pode trabalhar, clique em: Ok
  • Selecione "Site Internet" e clique em: OK
  • Digite o hostname do seu servidor e clique em: OK

Depois de instalar os pacotes e dependências, edite o arquivo /etc/default/saslauthd e altere a opção Start: de "NO" para "YES":

# nano /etc/default/saslauthd

Feita a alteração, reinicie o serviço:

# /etc/init.d/saslauthd restart

Agora vamos entrar no diretório do Postfix:

# cd /etc/postfix

Vamos salvar o arquivo original de configuração do Postfix:

# mv main.cf main.cf.bkp

E vamos criar um novo:

# nano main.cf

Copie e cole o seguinte conteúdo neste novo "main.cf" vazio:

# SMTP relayhost
relayhost = [smtp.gmail.com]:587
# TLS Settings
smtp_tls_loglevel = 1
smtp_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtp_tls_cert_file = /etc/postfix/certs/mycert.pem
smtp_tls_key_file = /etc/postfix/certs/mykey.pem
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtpd_tls_cert_file = /etc/postfix/certs/mycert.pem
smtpd_tls_key_file = /etc/postfix/certs/mykey.pem
smtpd_tls_received_header = yes
# configuracao tls
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous

# alias de mapeamento interno para externo
smtp_generic_maps = hash:/etc/postfix/generic

Agora vamos criar o arquivo "generic" dentro do diretório do Postfix (/etc/postfix). Para criar o arquivo:

# nano generic

Este arquivo terá o seguinte conteúdo:

# Confs
root@servidor seuemail@gmail.com
root@servidor.localdomain seuemail@gmail.com

Onde "servidor" é o hostname do computador. Para saber o nome da máquina, basta digitar o comando hostname.

Precisamos criar, também, o arquivo que contém usuário e senha da sua conta no Gmail. Este arquivo se chamará "sasl_passwd", e também está no mesmo diretório (/etc/postfix):

# nano sasl_passwd

Inserir o conteúdo:

[smtp.gmail.com]:587 seuemail@gmail.com :suasenha

Precisamos agora criar os certificados que validam o servidor no Gmail. Antes de criar os certificados, vamos criar um diretório chamado "certs", dentro de /etc/postfix:

# mkdir certs

Depois de criado, entre neste diretório com o comando cd:

# cd certs

* Agora que estamos dentro do diretório "certs", rode os três comandos na ordem abaixo.

1° comando:

# openssl dsaparam 1024 -out dsa1024.pem

2° comando:

# openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem;ln -s mycert.pem CAcert.pem

Ele irá iniciar um script lhe perguntando: país, estado e município; dentre outras informações.

3° comando:

# openssl req -x509 -new -days 3650 -key /etc/postfix/certs/mykey.pem -out /etc/postfix/certs/mycert.pem;rm dsa1024.pem

Ele iniciará um script lhe perguntando: país, estado e município; dentre outras informações.

Depois de gerar os certificados, vamos associar os arquivos com o comando:

# postmap /etc/postfix/sasl_passwd;postmap /etc/postfix/generic;postmap /etc/postfix/main.cf

Terminamos as configurações, agora vamos reiniciar o serviço Postfix:

# /etc/init.d/postfix restart

Vamos fazer o teste, enviando e-mail via linha de comando:

# echo "Teste Postfix" | mutt -s "teste de envio pelo console" e-mail@seuemail.com.br

Vá até o e-mail e veja se chegou um e-mail do usuário root com as informações que você usou.

Para ver os logs do servidor de e-mail Postfix, basta usar este comando:

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

Se aparecer nos logs algo informando que não existe o arquivos "aliases.db", basta rodar estes comandos:

# cd /etc
# newaliases


Vamos agora instalar o PHP5:

# aptitude install php5

Crie um arquivo PHP para testarmos se o mesmo está funcionando:

# touch /var/www/index.php

Edite-o e adicione o seguinte conteúdo:

<? phpinfo(); ?>

Agora reinicie o Apache:

# /etc/init.d/apache2 restart

Tente acessar o arquivo através de um PC da rede:

http://ip-do-servidor/index.php
Página anterior     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

Roteando duas sub-redes com servidores

Você conhece o RouterOS Mikrotik?

Ubuntu Server 12.04 LTS - Como Servidor Gateway e DHCP

Instalando o modem NetDragon 56K

Interoperabilidade monitorando servidores e estações Windows com servidor Linux usando MRTG

  
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