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: 164.711 ]

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

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

Criando dispositivos RAID via software no Linux

Transformando seu Ubuntu Hardy em OSX Leopard

Leitura recomendada

Squid autenticado no Active Directory com Winbind

SUSE Linux - Squid autenticando no Active Directory (AD)

Squid autenticando no Windows utilizando grupos do AD

Squid como proxy transparente: Instalando e configurando

Corrigindo a falha "WARNING! Your cache is running out of filedescriptors" - Squid2.7STABLE9 Slackware 12

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts