Proxy Squid com autenticação + Sarg + Webmin

O artigo abordará a instalação e configuração de um servidor proxy, o Squid, mostrando também a utilidade de duas ferramentas bastante eficazes no que tange o gerenciamento deste servidor. Trata-se de um aplicativo responsável pela captura e exibição dos logs do Squid e de um software gerenciador destes serviços, respectivamente o Sarg e o Webmin.

[ Hits: 165.878 ]

Por: Gleudson Junior em 10/08/2009 | Blog: http://www.gleudsonjunior.blogspot.com/


Instalando e configurando o Squid



O principal objetivo de um servidor proxy é disponibilizar que hosts clientes de uma rede interna (privada) consigam acessar uma rede externa (pública), como a Internet por exemplo. O servidor proxy Squid geralmente é instalado em uma máquina que tenha acesso direto à rede externa (pública), sendo que os clientes desta rede efetuam as solicitações através deste servidor.

Por isso é chamado de proxy, pois trabalha como um agente procurador, ou seja, ele faz as solicitações a Internet em nome dos clientes.
Linux: Proxy Squid com Autenticação + Sarg + Webmin

Instalação

O Squid geralmente é um pacote candidato nos repositórios do Ubuntu, portanto basta correr o comando no terminal:

sudo apt-get update (atualizando os pacotes)
sudo apt-get install squid Após isso devemos parar o serviço para que possamos configurá-lo:

sudo /etc/init.d/squid stop

Configuração

Vamos fazer um backup do arquivo de configuração do Squid (padrão):

cd /etc/squid
$ cp squid.conf squid.conf.original
$ > squid.conf


Pronto, deixamos o arquivo de configuração do squid zerado!

Obs.: algumas pessoas preferem excluir este arquivo por ele ser bastante extenso. Prefiro backupear, é mais seguro.

Agora vamos editar o arquivo de configuração do Squid, colando as configurações abaixo no seu squid.conf:

#----------------------------------#
# Arquivo de configuração do Squid
# Autor: Gleudson Junior
# gleudson.jr@gmail.com
# http://gleudson.blogspot.com
# Licença: GNU/GPL
#----------------------------------#

#-----------------------------------------#
# CONFIGURAÇÕES PARA AUTENTICAÇÃO DO PROXY
#-----------------------------------------#

# INFORMA O CAMINHO DO PROGRAMA DE AUTENTICAÇÃO E O ARQUIVO DE LOGINS E SENHAS
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

# PADRÃO
auth_param basic children 5

# DEFINE O TIMEOUT DE LOGON NO PROXY
auth_param basic credentialsttl 1 hour

# DEFINE O TEXTO QUE APARECERÁ NA CAIXA DE LOGIN
auth_param basic realm Digite seu Login e Sua Senha

# DESATIVA A VERIFICAÇÃO DE LETRAS MAIÚSCULAS E MINÚSCULAS
auth_param basic casesensitive off

#-----------------------#
# CONFIGURAÇÕES BASICAS
#-----------------------#

# PORTA DE ACESSO
http_port 3128

# DEFINE O NOME DO SERVIDOR (COMANDO hostname)
visible_hostname nome_do_servidor

# ATIVA A LINGUAGEM DAS PAGINAS DE ERRO PARA PORTUGUÊS
error_directory /usr/share/squid/errors/Portuguese/

# OPÇÕES DO CACHE
cache_dir ufs /var/cache/squid 5000 16 256

# LOG
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log

# ACLS
acl manager proto cache_object

# LIBERA O ACESSO PARA O IP DE LOOPBACK
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 563
acl Safe_ports port 80 21 70 210 888
acl CONNECT method CONNECT

# PEDE A AUTENTICAÇÃO NO PROXY
acl autenticados proxy_auth REQUIRED

# DEFINE O CAMINHO DO ARQUIVO DE SITES BLOQUEADOS
acl sitebloqueado url_regex -i "/etc/squid/sitebloqueado"
http_access deny sitebloqueado

# DEFINE O CAMINHO DO ARQUIVO DE PALAVRAS BLOQUEADAS
acl palavrabloq dstdom_regex "/etc/squid/palavrabloq"
http_access deny palavrabloq

# DEFINE O IP E MASCARA DA REDE INTERNA
acl permitidos src 192.168.1.0/24
acl all src 192.168.1.0/24

http_access allow autenticados permitidos
http_access deny all

Nota: Você pode baixar esse .conf através do link: download squid.conf

Antes de startar o serviço será necessário criamos e darmos acesso a alguns diretórios do sistema de arquivo. Para tanto abra um terminal e corra os seguintes comandos:

1. Criar o arquivo que irá armazenar os logins e senhas dos usuários do Proxy:

sudo touch /etc/squid/passwd

2. Criar os arquivos que receberão os sites e as palavras a serem bloqueadas para acesso:

sudo touch /etc/squid/sitebloqueado
$ sudo touch /etc/squid/palavrabloq


3. Dar permissão ao diretório onde será armazenado nosso cache. O ideal é darmos a permissão ao dono, mas aqui daremos permissão total para facilitar:

sudo chmod 777 /var/cache/squid

Obs.: Os nomes podem ser escolhidos por vocês, apenas devendo igualá-los, tanto no squid.conf quanto no próprio diretório.

4. Pronto, agora vamos levantar o serviço:

sudo /etc/init.d/squid start

Se tudo ocorreu bem, teremos nosso Squid em produção!

Você pode testá-lo, setando o proxy no seu browser, através das configurações de rede.

Página anterior     Próxima página

Páginas do artigo
   1. Requisitos e topologia da rede
   2. Instalando e configurando o Squid
   3. Instalando e configurando o Sarg
   4. Instalando e configurando o webmin
Outros artigos deste autor

Protegendo o ESB: Conceitos e técnicas de segurança para empresas de serviços web críticos

Transformando seu Ubuntu Hardy em OSX Leopard

Criando dispositivos RAID via software no Linux

GIT: Controle de versões distribuído para projetos de software

Leitura recomendada

Squid 3.1.5 com suporte a TPROXY (sem bridge)

Servidor Squid - Autenticação e níveis de privilégio

Squid + SSL

Como fazer o Squid funcionar da maneira mais simples possível no Xubuntu e derivados

Manual traduzido do Squid - Parte 3

  
Comentários
[1] Comentário enviado por thiagosc em 10/08/2009 - 21:12h

Muito bom o artigo parabéns!

O engracado que na sexta feira fiz exatamente o que esse artigo diz, rs fiz uns labs aqui em casa instalando o Ubuntu em uma vm, depois o sarg, web min, e o squid com autenticacao... rs

[]'s

Thi@go

[2] Comentário enviado por ramos1986 em 11/08/2009 - 11:26h

Parabens pelo artigo.

[3] Comentário enviado por lobojr em 11/08/2009 - 13:20h

Ola Gleudson!

nao estou conseguindo visualizar pelo navegador...alguma dica?

[]´s

lObOjR.

[4] Comentário enviado por Gleudson Junior em 11/08/2009 - 14:19h

@lobojr

O que você não está conseguindo visualizar?

--
GLEUDSON JUNIOR
Msn: gleudson_jr@hotmail.com
WebPage: http://www.gleudsonjunior.blogspot.com/
ByLinux: http://www.gleudson.blogspot.com/

[5] Comentário enviado por lobojr em 11/08/2009 - 15:58h

faço a geracao normalmente do Sarg,

nao visualizo o squid-reports pelo navegador.

lObOjR.

[6] Comentário enviado por Gleudson Junior em 11/08/2009 - 16:48h

@lobojr

1º) Verifique se seu servidor web (apache) está em produção.

# /etc/init.d/apache2 status

Se estiver, tenta restarta-lo:

# /etc/init.d/apache2 restart

Teste no navegador: http://ip_servidor

2º) A URL de acesso ao Sarg é a seguinte:

http://ip_servidor/squid-reports

OBS: observe se está digitando correto.

Se ainda estiver dando problema, manda o print da tela.

--
GLEUDSON JUNIOR
Msn: gleudson_jr@hotmail.com
WebPage: http://www.gleudsonjunior.blogspot.com/
ByLinux: http://www.gleudson.blogspot.com/



[7] Comentário enviado por gariani em 11/08/2009 - 18:27h

Bom dia pessoal...

Alguém sabe me dizer qual a funcionalidade do "rotate.pl" do webmin?
No final do dia, o servidor esta com vários processos desse rodando e usando muita memória....

root 2949 8.3 0.2 3420 1064 ? R 10:00 41:30 /usr/bin/perl /usr/lib/webmin/bandwidth/rotate.pl
root 2950 8.3 0.1 3420 904 ? R 10:00 41:30 /usr/bin/perl /usr/lib/webmin/bandwidth/rotate.pl
root 2983 7.2 0.2 3420 1408 ? R 11:00 31:40 /usr/bin/perl /usr/lib/webmin/bandwidth/rotate.pl

Bem, isso ai é uma parte, se for contar tudo o que aparece no "ps aux", da uns 30 processos rodando.....
Fico no aguardo.
Att.

Daniel Gariani Rafael

[8] Comentário enviado por Gleudson Junior em 12/08/2009 - 09:00h

@gariani

Não sei se é isso!
Mas da uma olhada no teu cron e verifica se essa tarefa ta agendada nele.

--
GLEUDSON JUNIOR
Msn: gleudson_jr@hotmail.com
WebPage: http://www.gleudsonjunior.blogspot.com/
ByLinux: http://www.gleudson.blogspot.com/


[9] Comentário enviado por gariani em 12/08/2009 - 09:24h

Bom dia Gleudson.

Realmente, era isso, essa passou desapercebida.

Obrigado.
Abraços.

Daniel Gariani Rafael

[10] Comentário enviado por joaorafael em 21/10/2010 - 13:50h

Bom Dia Galera, otimo tutorial, fiz tudo conforme explicação, funcionou perfeitamente, o unico problema que estou aplicando isso em um Hospital, e em cada maquinas acessam varios usuarios pois o funcionamento aq é de 24Hrs, na opção de Proibidos mostra a tabela com as seguintes opções (Usuario / Ip nome / Data hora / Local Acessado) só que as respostas saum respectivamente (ip da maq / ip da maq/ ...) ou seja não está saindo o nome do usuario em questão. Percebi também que todos os sites que estao bloqueados e os usuarios acessam o log não joga na parte do usuario e sim cria um usuario com o ip da maq em questao, ou seja no usuario msmo nao fica registrado nenhum site bloqueado e somente fica registrado no ip da maquina, teria como arruma isso.... Obrigado

[11] Comentário enviado por franciscos em 12/03/2011 - 20:16h

Gleudson Junior, desculpe a ignorância minha mas para fazer esse processo do proxy preciso de quais serviços rodando: Apache, DHCP e DNS? ou mais?

Grato

[12] Comentário enviado por gleudson junior em 12/03/2011 - 22:00h

@franciscos

O Proxy é um serviço de rede igual a esses outros que você mencionou. No entanto, não se faz necessário ter instalado qualquer outro tipo de serviço de rede como pré-requisito para rodar um servidor Proxy (forward), visto que sua principal funcionalidade é servir como centralizar das requisições de clientes para uma rede externa. Ex: A Internet.

Em suma é isso, caso ainda tenha duvidas pode falar.

Abs

[13] Comentário enviado por andyblessing em 11/06/2013 - 14:34h

Olá estou usando o squid3, e meu webmin nao mostra a opção Squid Report Generator. Quando clico em "server"

[14] Comentário enviado por vmedina em 15/01/2014 - 11:28h

Bom dia,


Haveria possibilidade, de ter o squid, no meu caso é a versão 3, somente autenticar os usuarios, e no sarg, os relatorios sairem pelo nome do usuario, em uma maquina que posso acessar os logs, ou os relatórios.


Obrigado.


Contribuir com comentário