SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Tutorial Servidor Proxy com Squid baseado em Linux
Acadêmicos : Felipe Zottis e Cleber Pivetta



Servidor Proxy

       Um servidor Proxy possui a finalidade de possibilitar que máquinas
contidas em uma determinada rede possam obter acesso a uma rede pública.
Normalmente este servidor é instalado em um computador que possui acesso
direto à internet, sendo assim toda solicitação externa a rede deve ser feita a
esta máquina. De modo geral, um servidor proxy realiza solicitações em nome
de outras máquinas da rede.

      Outras funcionalidades podem ser acopladas ao proxy, tais como
caching de páginas da internet. Com isto, as requisições à sites já visitados por
máquinas de uma rede são feitas mais rapidamente.

      Um servidor proxy também pode implementar o NAT (Network Address
Translation - Tradução de Endereços de Rede). A NAT permite que o endereço
de rede interno de uma empresa seja ocultado da Internet. A empresa é
representada na Internet como um endereço de IP não relacionado com os
endereços de IP internos.

       Uma das principais funcionalidades do proxy é impedir o acesso
indevido à páginas da internet, geralmente por empresas ou instituições
públicas. É possível barrar o acesso do usuário a sites inadequados ou que
não sejam de interesse de uma instuição, por exemplo chats, jogos, sexo entre
outros.

       Todo o tráfego de dentro da empresa destinado à Internet é enviado
para o servidor proxy. Este atribui a cada pacote um outro endereço de IP
antes de transmití-lo pela Internet. Quando o pacote de resposta chega, o
servidor proxy o envia ao servidor apropriado da empresa que havia feito o
pedido. Este procedimento protege os endereços verdadeiros da rede interna
da Internet, dificultando o ataque de um hacker ao sistema, já que o endereço
do sistema protegido não é conhecido e não fica diretamente acessível a partir
da Internet.



Sobre o Squid

      O Squid é um proxy-cache de alta performance para clientes web,
suportando protocolos FTP, gopher e HTTP. O Squid mantém meta dados e
especialmente objetos armazenados na RAM, cacheia buscas de DNS e
implementa cache negativo de requisições falhas.
Ele suporta SSL, listas de acesso complexas e logging completo. Por
utilizar o Internet Cache Protocol, o Squid pode ser configurado para trabalhar
de forma hierárquica ou mista para melhor aproveitamento da banda.

       Podemos dizer que o Squid consiste em um programa principal – squid -
um sistema de busca de resolução de nomes – dnsserver – e alguns
programas adicionais para reescrever requisições, fazer autenticação e
gerenciar ferramentas de clientes. Podemos executar o Squid nas principais
plataformas do mercado, como GNU/Linux, Unixes e Windows.



      Procedimento para instalação do Servidor Proxy Squid

       Para a realização deste tutorial, fora utilizado a sistema operacional
Linux, sendo a versão 9.0 do Fedora.

        Como este experimento fora realizado na rede interna da Universidade
Estadual do Oeste do Paraná, é necessário realizar a exportação do proxy
utilizado pela faculdade, para que assim seja possível realizar o download do
pacote de instalação do Squid.

      → export http_proxy=htpp://proxy.unioeste.br:8080

     Para realizar a instalação de determinados programas, o Linux permite
que o pacote de instalação destes sejam obtidos por download através do
comando:

      → yum install squid

       O Squid será então instalado no diretório /etc/squid. Após isto, é
necessário editar o arquivo squid.conf, localizado dentro do diretório de
instalação. Porém, é necessário realizar alterações na permissão de gravação
do arquivo squid.conf, pois este é protegido. No linux é possível realizar esta
alteração da seguinte forma:

      → chmod 777 squid.conf

       O comando chmod modifica as pemissões de acessos à um
determinado arquivo. O número 777 garante os acessos de leitura e gravação
para root e usuários.

       Realizado este passo, já é possível editar o arquivo squid.conf, porém é
recomendável realizar um backup do arquivo original. Sendo assim, deve-se
renomear o arquivo squid.conf para squid_backup.conf. Após isto, já é possível
trabalhar em um arquivo squid.conf novo. Então:

      → vi squid.conf
Este comando abrirá este arquivo para edição, porém como o mesmo
não existe (pois o original foi renomeado) um novo será criado. As seguintes
linhas devem ser incluídas dentro deste arquivo:

# porta padrão do squid

http_port 3128
visible_hostname localhost

#definir sites bloqueados
acl blockedsites url_regex -i “/etc/squid/sites_bloqueados/block.txt”

#definir sites permitidos
acl unblockedsites url_regex -i “/etc/squid/sites_desbloqueados/unblock.txt”

acl all src 0.0.0.0/0.0.0.0

#proxy pai do squid
cache_peer proxy.unioeste.br parent 8080 3128 proxy-only

#negar acesso HTTP à variável blockedsites e permitir à variável
unblockedsites

http_access deny blockedsites !unblockedsites
http_access allow all



       Após isto, deve-se alterar as configurações padrão do navegador de
internet utilizado na máquina, neste exemplo o firefox. Em configurações
avançadas de rede, deve-se selecionar para obter uma configuração manual
de proxy e então redirecionar o protocolo HTTP para localhost (o nome definido
em visible_hostname) e porta 3128 (padrão do Squid).

       No Squid também é possível impedir acessos à sites com conteúdo
indevido. Note que em:

#definir sites bloqueados
acl blockedsites url_regex -i “/etc/squid/sites_bloqueados/block.txt”

#definir sites permitidos
acl unblockedsites url_regex -i “/etc/squid/sites_desbloqueados/unblock.txt”

       É definido um caminho para uma lista de sites bloqueados e permitidos.
Sendo assim, deve-se criar um arquivo do tipo .txt dentro de uma pasta
definida sites_bloqueados, contendo uma lista de sites bloqueados, por
exemplo:

www.google.com
www.uol.com

www.orkut.com

orkut

pornografia



      Note que é possível bloquear os acessos apenas pelo intermédio de
palavras chaves, vide orkut e pornografia.

       Feitos todos estes passos, é possível agora colocar em funcionamento o
servidor Squid. Dentro do diretório /etc/init.d deve-se entrar com o seguinte
comando:

        → squid start



        Funcionalidades Extras

        •   Restringir acesso por horário

              É possível restringir os acessos à internet por horários
        programados. Deve- se inserir os seguintes comandos:

               #Horários
               acl expediente time MTWHF 9:00 – 18:00
               acl final_de_semana time SA 8:00 – 13:00


        Onde :

        S: Domingo
        M: Segunda-Feira
        T: Terça-feira
        W: Quarta-feira
        H: Quinta-feira
        F: Sexta-feira
        A : Sábado



               Exemplo:

               Controlar o acesso do computador 192.168.1.71 das 9:00 às
               12:00 e das 13:30 às 18:00 de segunda a sexta-feira:
acl microip71 src 192.168.0.71/255.255.255.255
      acl manhamicroip71 time M T W H F 9:00-12:00
      acl tardemicroip71 time M T W H F 13:30-18:00

   Pra LIBERAR acesso:

      http_access allow microip71 manhamicroip71
      http_access allow microip71 tardemicroip71

   pra PROIBIR acesso:

      http_access deny microip71 manhamicroip71
      http_access deny microip71 tardemicroip71

Exemplo: Pra liberar somente no horário de almoço, todos os dias das
12 as 13:30 e após o expediente às 18:00hs:

      acl microip71 src 192.168.0.71/255.255.255.255
      acl manhamicroip71 time M T W H F 12:00-13:30
      acl tardemicroip71 time M T W H F 18:00-24:00
      http_access allow microip71 manhamicroip71
      http_access allow microip71 tardemicroip71



   • Limitar o número de conexões por usuário

      É possível restringir o número de sessões que um determinado
usuário pode requisitar de uma única vez. O recurso máximo de
conexões pode ser atribuído da seguinte forma:

      #Máximo de conexões
      acl CONEXOES maxconn 5
      http_access deny CONEXOES rede_interna



   • Gerar Relatórios de acesso

       O Squid emite um log de acessos à internet que pode ser
transformado em relatórios com o uso da ferramenta SARG. Para tanto,
sua instalação e configuração é necessária:

      → wget http://web.onda.com.br/orso/sarg-1.4.tar.gz
      → tar zxvf sarg-1.4.tar.gz
      → cd sarg-1.4/
      → ./configure
      → make
      → make install
Configurando o SARG:

      Por padrão o SARG é instalado em /usr/local/sarg .Nesse diretório
encontra-se o arquivo sarg.conf. As seguintes opções são
recomendadas:

      # indica o arquivo de log do squid
      → access_log /var/log/squid/access.log
      → title “Relatório de uso da Internet”
      → temporary_dir /tmp

      # Onde será gerado o relatório
      → output_dir /var/www/squid-reports
      → resolve_ip no

      # Se estiver usando autenticação por usuário deve-se colocar yes
      → user_ip yes
      → topuser_sort_field BYTES reverse
      → topsites_num 100
      → max_elapsed 28800000

      Em seguida, para gerar um relatório deve-se emitir o comando

            → sarg




              Figura 01: Relatório emitido pelo SARG
• Autenticando usuários

      É um recurso bem interessante para controle pessoal de usuários,
pois permite que ACLs individuais sejam criadas gerando assim LOGs
de qualidade e precisão superiores. O ncsa_auth é a alternativa mais
simples, pois está disponível junto com o Squid e pode ser
implementado rapidamente.

      → Procure pela TAG: authenticate_program

insira os seguintes comandos:

      auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/
      auth_param basic children 5
      auth_param basic realm Digite seu Login

      Para tanto, cada usuário necessitará uma senha de acesso.
Deve-se criar o arquivo que conterá todas as senhas dos usuários:

      → touch /etc/squid/passwd

      Para adicionar novos usuários deve-se emitir:

      → htpasswd /etc/squid/passwd NOVO_USUARIO

       Dependendo da distribuição do Squid, o ncsa_auth pode estar em
vários lugares diferentes.




Comandos úteis para o Squid

   Reiniciando a cache do Squid:

   → squid -z

   Reiniciando as configurações do Squid:

   → squid -k reconfigure

   Parar o serviço do Squid:

   → squid stop

   Reiniciar o serviço do Squid:

   → squid restart
Verificar status do Squid, se está rodando ou não:

       → squid status

       Para carregar o Squid junto com a inicialização do Linux:

       → chkconfig squid on



    Dicas De Squid:

•   Edite o arquivo /etc/squid.conf e leia atentamente os comentários, pois
    neles existem explicações pra configurações possíveis...

•   Squid para de analizar as regras na primeira que for atentida, quando
    precisar de alguma excessão de regra, por exemplo liberar um IP para
    não passar pelas regras, esta deverá se colocada antes da que proibe.

Mais conteúdo relacionado

Mais procurados

Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores LinuxAlessandro Silva
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Felipe Santos
 
Intro-To-Squid
Intro-To-SquidIntro-To-Squid
Intro-To-Squidfbexiga
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLJohnes Castro
 
Segurança autenticação apache -ppt
Segurança autenticação apache -pptSegurança autenticação apache -ppt
Segurança autenticação apache -pptCarlos Melo
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - AmbientesDirceu Belém
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e HardeningBruna Griebeler
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory gigadrop
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edCarlos Melo
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asteriskVicente Nobre
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de ProgramasFrederico Madeira
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Aécio Pires
 

Mais procurados (20)

Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores Linux
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
 
Intro-To-Squid
Intro-To-SquidIntro-To-Squid
Intro-To-Squid
 
“Squid” por Artur Martins, David Riedel e Florentino Bexiga
“Squid” por Artur Martins, David Riedel e Florentino Bexiga“Squid” por Artur Martins, David Riedel e Florentino Bexiga
“Squid” por Artur Martins, David Riedel e Florentino Bexiga
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 
Aula 2
Aula 2Aula 2
Aula 2
 
Apresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQLApresentação PGDAY - instalação e configuração - PostgreSQL
Apresentação PGDAY - instalação e configuração - PostgreSQL
 
Servidores linux
Servidores linuxServidores linux
Servidores linux
 
Apache proxy
Apache proxyApache proxy
Apache proxy
 
Segurança autenticação apache -ppt
Segurança autenticação apache -pptSegurança autenticação apache -ppt
Segurança autenticação apache -ppt
 
Aula PIT 3 - Ambientes
Aula PIT 3 - AmbientesAula PIT 3 - Ambientes
Aula PIT 3 - Ambientes
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e Hardening
 
Apache
ApacheApache
Apache
 
Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory Tutorial servidor debian linux ocs invetory
Tutorial servidor debian linux ocs invetory
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 ed
 
Instalação do asterisk
Instalação do asteriskInstalação do asterisk
Instalação do asterisk
 
Linux - Instalação de Programas
Linux - Instalação de ProgramasLinux - Instalação de Programas
Linux - Instalação de Programas
 
Aula20 open vpn
Aula20 open vpnAula20 open vpn
Aula20 open vpn
 
Tutorial beagleboard
Tutorial beagleboardTutorial beagleboard
Tutorial beagleboard
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
 

Destaque

Apresentação Campanha Espetáculo
Apresentação Campanha EspetáculoApresentação Campanha Espetáculo
Apresentação Campanha Espetáculocampanhaespetaculo
 
Planeacinmicroprcticaenmatriz 130922170929-phpapp01
Planeacinmicroprcticaenmatriz 130922170929-phpapp01Planeacinmicroprcticaenmatriz 130922170929-phpapp01
Planeacinmicroprcticaenmatriz 130922170929-phpapp01Leandro Valencia
 
Cara a cara com a célula i
Cara a cara com a célula iCara a cara com a célula i
Cara a cara com a célula ijacksonuefs
 
Tecnologia na educação proinfo itapeva
Tecnologia na educação proinfo itapevaTecnologia na educação proinfo itapeva
Tecnologia na educação proinfo itapevajanemiranda
 
Torres angelica aa2_ilustración_infantil
Torres angelica aa2_ilustración_infantilTorres angelica aa2_ilustración_infantil
Torres angelica aa2_ilustración_infantilAngelica Torres
 
No museu da cidade de aveiro acontece outubro
No museu da cidade de aveiro acontece outubroNo museu da cidade de aveiro acontece outubro
No museu da cidade de aveiro acontece outubroEstrela Romão
 
Galeria de ana paula cruz1
Galeria de ana paula cruz1Galeria de ana paula cruz1
Galeria de ana paula cruz1anapaula82
 
O governo deve ser de jesus – parte 2
O governo deve ser de jesus – parte 2O governo deve ser de jesus – parte 2
O governo deve ser de jesus – parte 2igreja-crista
 
3213464 licenciatura-em-biologia-embriologia-e-histologia-comparada
3213464 licenciatura-em-biologia-embriologia-e-histologia-comparada3213464 licenciatura-em-biologia-embriologia-e-histologia-comparada
3213464 licenciatura-em-biologia-embriologia-e-histologia-comparadaMichele Puton
 
Lo que me apasiona en la vida
Lo que me apasiona en la vidaLo que me apasiona en la vida
Lo que me apasiona en la vidaCamila Monroy G
 

Destaque (20)

Fotos familia
Fotos familiaFotos familia
Fotos familia
 
Apresentação Campanha Espetáculo
Apresentação Campanha EspetáculoApresentação Campanha Espetáculo
Apresentação Campanha Espetáculo
 
True crypt
True cryptTrue crypt
True crypt
 
Pluralismo estructurado
Pluralismo estructuradoPluralismo estructurado
Pluralismo estructurado
 
Planeacinmicroprcticaenmatriz 130922170929-phpapp01
Planeacinmicroprcticaenmatriz 130922170929-phpapp01Planeacinmicroprcticaenmatriz 130922170929-phpapp01
Planeacinmicroprcticaenmatriz 130922170929-phpapp01
 
Cara a cara com a célula i
Cara a cara com a célula iCara a cara com a célula i
Cara a cara com a célula i
 
Silvia mulero
Silvia muleroSilvia mulero
Silvia mulero
 
Tecnologia na educação proinfo itapeva
Tecnologia na educação proinfo itapevaTecnologia na educação proinfo itapeva
Tecnologia na educação proinfo itapeva
 
Torres angelica aa2_ilustración_infantil
Torres angelica aa2_ilustración_infantilTorres angelica aa2_ilustración_infantil
Torres angelica aa2_ilustración_infantil
 
Controle de pH
Controle de pHControle de pH
Controle de pH
 
No museu da cidade de aveiro acontece outubro
No museu da cidade de aveiro acontece outubroNo museu da cidade de aveiro acontece outubro
No museu da cidade de aveiro acontece outubro
 
Galeria de ana paula cruz1
Galeria de ana paula cruz1Galeria de ana paula cruz1
Galeria de ana paula cruz1
 
Monografia (3)
Monografia (3)Monografia (3)
Monografia (3)
 
O governo deve ser de jesus – parte 2
O governo deve ser de jesus – parte 2O governo deve ser de jesus – parte 2
O governo deve ser de jesus – parte 2
 
Valor online defesa
Valor online defesaValor online defesa
Valor online defesa
 
3213464 licenciatura-em-biologia-embriologia-e-histologia-comparada
3213464 licenciatura-em-biologia-embriologia-e-histologia-comparada3213464 licenciatura-em-biologia-embriologia-e-histologia-comparada
3213464 licenciatura-em-biologia-embriologia-e-histologia-comparada
 
BigAustin2004
BigAustin2004BigAustin2004
BigAustin2004
 
Itinerário Veleiro
Itinerário VeleiroItinerário Veleiro
Itinerário Veleiro
 
Lo que me apasiona en la vida
Lo que me apasiona en la vidaLo que me apasiona en la vida
Lo que me apasiona en la vida
 
Cross media
Cross mediaCross media
Cross media
 

Semelhante a Squid proxy

Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxThiago Paes
 
Aula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapAula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapRoberto Castro
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTecla Internet
 
Project HA
Project HAProject HA
Project HAKarpv
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvemIgnacio Nin
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Danilo Filitto
 
instalação do expresso br
instalação do expresso brinstalação do expresso br
instalação do expresso brCarlos Veiga
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginnersRafael Chiavegatto
 
Projeto jorge,jefff, matheus
Projeto   jorge,jefff, matheusProjeto   jorge,jefff, matheus
Projeto jorge,jefff, matheusEadanalise
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 
Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011Carlos Melo
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univemevandrovv
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 

Semelhante a Squid proxy (20)

Alta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com NginxAlta Performance de Aplicações PHP com Nginx
Alta Performance de Aplicações PHP com Nginx
 
Filtro de conteúdo Proxy
Filtro de conteúdo   ProxyFiltro de conteúdo   Proxy
Filtro de conteúdo Proxy
 
Aula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldapAula14 vsftp de-introopenldap
Aula14 vsftp de-introopenldap
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos Linux
 
Project HA
Project HAProject HA
Project HA
 
Servidor proxy Squid
Servidor proxy SquidServidor proxy Squid
Servidor proxy Squid
 
Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
 
Trab linux+sarg
Trab linux+sargTrab linux+sarg
Trab linux+sarg
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)
 
Cacti
CactiCacti
Cacti
 
instalação do expresso br
instalação do expresso brinstalação do expresso br
instalação do expresso br
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Projeto jorge,jefff, matheus
Projeto   jorge,jefff, matheusProjeto   jorge,jefff, matheus
Projeto jorge,jefff, matheus
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011Prova sistemaso redes1-1-red-23032011
Prova sistemaso redes1-1-red-23032011
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univem
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
Curso de proxy
Curso de proxyCurso de proxy
Curso de proxy
 

Squid proxy

  • 1. Tutorial Servidor Proxy com Squid baseado em Linux Acadêmicos : Felipe Zottis e Cleber Pivetta Servidor Proxy Um servidor Proxy possui a finalidade de possibilitar que máquinas contidas em uma determinada rede possam obter acesso a uma rede pública. Normalmente este servidor é instalado em um computador que possui acesso direto à internet, sendo assim toda solicitação externa a rede deve ser feita a esta máquina. De modo geral, um servidor proxy realiza solicitações em nome de outras máquinas da rede. Outras funcionalidades podem ser acopladas ao proxy, tais como caching de páginas da internet. Com isto, as requisições à sites já visitados por máquinas de uma rede são feitas mais rapidamente. Um servidor proxy também pode implementar o NAT (Network Address Translation - Tradução de Endereços de Rede). A NAT permite que o endereço de rede interno de uma empresa seja ocultado da Internet. A empresa é representada na Internet como um endereço de IP não relacionado com os endereços de IP internos. Uma das principais funcionalidades do proxy é impedir o acesso indevido à páginas da internet, geralmente por empresas ou instituições públicas. É possível barrar o acesso do usuário a sites inadequados ou que não sejam de interesse de uma instuição, por exemplo chats, jogos, sexo entre outros. Todo o tráfego de dentro da empresa destinado à Internet é enviado para o servidor proxy. Este atribui a cada pacote um outro endereço de IP antes de transmití-lo pela Internet. Quando o pacote de resposta chega, o servidor proxy o envia ao servidor apropriado da empresa que havia feito o pedido. Este procedimento protege os endereços verdadeiros da rede interna da Internet, dificultando o ataque de um hacker ao sistema, já que o endereço do sistema protegido não é conhecido e não fica diretamente acessível a partir da Internet. Sobre o Squid O Squid é um proxy-cache de alta performance para clientes web, suportando protocolos FTP, gopher e HTTP. O Squid mantém meta dados e especialmente objetos armazenados na RAM, cacheia buscas de DNS e implementa cache negativo de requisições falhas.
  • 2. Ele suporta SSL, listas de acesso complexas e logging completo. Por utilizar o Internet Cache Protocol, o Squid pode ser configurado para trabalhar de forma hierárquica ou mista para melhor aproveitamento da banda. Podemos dizer que o Squid consiste em um programa principal – squid - um sistema de busca de resolução de nomes – dnsserver – e alguns programas adicionais para reescrever requisições, fazer autenticação e gerenciar ferramentas de clientes. Podemos executar o Squid nas principais plataformas do mercado, como GNU/Linux, Unixes e Windows. Procedimento para instalação do Servidor Proxy Squid Para a realização deste tutorial, fora utilizado a sistema operacional Linux, sendo a versão 9.0 do Fedora. Como este experimento fora realizado na rede interna da Universidade Estadual do Oeste do Paraná, é necessário realizar a exportação do proxy utilizado pela faculdade, para que assim seja possível realizar o download do pacote de instalação do Squid. → export http_proxy=htpp://proxy.unioeste.br:8080 Para realizar a instalação de determinados programas, o Linux permite que o pacote de instalação destes sejam obtidos por download através do comando: → yum install squid O Squid será então instalado no diretório /etc/squid. Após isto, é necessário editar o arquivo squid.conf, localizado dentro do diretório de instalação. Porém, é necessário realizar alterações na permissão de gravação do arquivo squid.conf, pois este é protegido. No linux é possível realizar esta alteração da seguinte forma: → chmod 777 squid.conf O comando chmod modifica as pemissões de acessos à um determinado arquivo. O número 777 garante os acessos de leitura e gravação para root e usuários. Realizado este passo, já é possível editar o arquivo squid.conf, porém é recomendável realizar um backup do arquivo original. Sendo assim, deve-se renomear o arquivo squid.conf para squid_backup.conf. Após isto, já é possível trabalhar em um arquivo squid.conf novo. Então: → vi squid.conf
  • 3. Este comando abrirá este arquivo para edição, porém como o mesmo não existe (pois o original foi renomeado) um novo será criado. As seguintes linhas devem ser incluídas dentro deste arquivo: # porta padrão do squid http_port 3128 visible_hostname localhost #definir sites bloqueados acl blockedsites url_regex -i “/etc/squid/sites_bloqueados/block.txt” #definir sites permitidos acl unblockedsites url_regex -i “/etc/squid/sites_desbloqueados/unblock.txt” acl all src 0.0.0.0/0.0.0.0 #proxy pai do squid cache_peer proxy.unioeste.br parent 8080 3128 proxy-only #negar acesso HTTP à variável blockedsites e permitir à variável unblockedsites http_access deny blockedsites !unblockedsites http_access allow all Após isto, deve-se alterar as configurações padrão do navegador de internet utilizado na máquina, neste exemplo o firefox. Em configurações avançadas de rede, deve-se selecionar para obter uma configuração manual de proxy e então redirecionar o protocolo HTTP para localhost (o nome definido em visible_hostname) e porta 3128 (padrão do Squid). No Squid também é possível impedir acessos à sites com conteúdo indevido. Note que em: #definir sites bloqueados acl blockedsites url_regex -i “/etc/squid/sites_bloqueados/block.txt” #definir sites permitidos acl unblockedsites url_regex -i “/etc/squid/sites_desbloqueados/unblock.txt” É definido um caminho para uma lista de sites bloqueados e permitidos. Sendo assim, deve-se criar um arquivo do tipo .txt dentro de uma pasta definida sites_bloqueados, contendo uma lista de sites bloqueados, por exemplo: www.google.com
  • 4. www.uol.com www.orkut.com orkut pornografia Note que é possível bloquear os acessos apenas pelo intermédio de palavras chaves, vide orkut e pornografia. Feitos todos estes passos, é possível agora colocar em funcionamento o servidor Squid. Dentro do diretório /etc/init.d deve-se entrar com o seguinte comando: → squid start Funcionalidades Extras • Restringir acesso por horário É possível restringir os acessos à internet por horários programados. Deve- se inserir os seguintes comandos: #Horários acl expediente time MTWHF 9:00 – 18:00 acl final_de_semana time SA 8:00 – 13:00 Onde : S: Domingo M: Segunda-Feira T: Terça-feira W: Quarta-feira H: Quinta-feira F: Sexta-feira A : Sábado Exemplo: Controlar o acesso do computador 192.168.1.71 das 9:00 às 12:00 e das 13:30 às 18:00 de segunda a sexta-feira:
  • 5. acl microip71 src 192.168.0.71/255.255.255.255 acl manhamicroip71 time M T W H F 9:00-12:00 acl tardemicroip71 time M T W H F 13:30-18:00 Pra LIBERAR acesso: http_access allow microip71 manhamicroip71 http_access allow microip71 tardemicroip71 pra PROIBIR acesso: http_access deny microip71 manhamicroip71 http_access deny microip71 tardemicroip71 Exemplo: Pra liberar somente no horário de almoço, todos os dias das 12 as 13:30 e após o expediente às 18:00hs: acl microip71 src 192.168.0.71/255.255.255.255 acl manhamicroip71 time M T W H F 12:00-13:30 acl tardemicroip71 time M T W H F 18:00-24:00 http_access allow microip71 manhamicroip71 http_access allow microip71 tardemicroip71 • Limitar o número de conexões por usuário É possível restringir o número de sessões que um determinado usuário pode requisitar de uma única vez. O recurso máximo de conexões pode ser atribuído da seguinte forma: #Máximo de conexões acl CONEXOES maxconn 5 http_access deny CONEXOES rede_interna • Gerar Relatórios de acesso O Squid emite um log de acessos à internet que pode ser transformado em relatórios com o uso da ferramenta SARG. Para tanto, sua instalação e configuração é necessária: → wget http://web.onda.com.br/orso/sarg-1.4.tar.gz → tar zxvf sarg-1.4.tar.gz → cd sarg-1.4/ → ./configure → make → make install
  • 6. Configurando o SARG: Por padrão o SARG é instalado em /usr/local/sarg .Nesse diretório encontra-se o arquivo sarg.conf. As seguintes opções são recomendadas: # indica o arquivo de log do squid → access_log /var/log/squid/access.log → title “Relatório de uso da Internet” → temporary_dir /tmp # Onde será gerado o relatório → output_dir /var/www/squid-reports → resolve_ip no # Se estiver usando autenticação por usuário deve-se colocar yes → user_ip yes → topuser_sort_field BYTES reverse → topsites_num 100 → max_elapsed 28800000 Em seguida, para gerar um relatório deve-se emitir o comando → sarg Figura 01: Relatório emitido pelo SARG
  • 7. • Autenticando usuários É um recurso bem interessante para controle pessoal de usuários, pois permite que ACLs individuais sejam criadas gerando assim LOGs de qualidade e precisão superiores. O ncsa_auth é a alternativa mais simples, pois está disponível junto com o Squid e pode ser implementado rapidamente. → Procure pela TAG: authenticate_program insira os seguintes comandos: auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/ auth_param basic children 5 auth_param basic realm Digite seu Login Para tanto, cada usuário necessitará uma senha de acesso. Deve-se criar o arquivo que conterá todas as senhas dos usuários: → touch /etc/squid/passwd Para adicionar novos usuários deve-se emitir: → htpasswd /etc/squid/passwd NOVO_USUARIO Dependendo da distribuição do Squid, o ncsa_auth pode estar em vários lugares diferentes. Comandos úteis para o Squid Reiniciando a cache do Squid: → squid -z Reiniciando as configurações do Squid: → squid -k reconfigure Parar o serviço do Squid: → squid stop Reiniciar o serviço do Squid: → squid restart
  • 8. Verificar status do Squid, se está rodando ou não: → squid status Para carregar o Squid junto com a inicialização do Linux: → chkconfig squid on Dicas De Squid: • Edite o arquivo /etc/squid.conf e leia atentamente os comentários, pois neles existem explicações pra configurações possíveis... • Squid para de analizar as regras na primeira que for atentida, quando precisar de alguma excessão de regra, por exemplo liberar um IP para não passar pelas regras, esta deverá se colocada antes da que proibe.