Este tutorial tem o objetivo de fazer uma configuração simples do Squid, porém funcional, que atende à maioria dos casos.
Por: Italo Diego Teotonio
Introdução
O que é Squid? O Squid é um servidor proxy que suporta os protocolos HTTP, HTTPS, FTP e outros. Ele reduz a utilização da conexão e melhora os tempos de resposta fazendo cache de requisições frequentes de páginas web numa rede de computadores. Pode ser usado para controle de banda, restrição de sites, usuários, entre outros. Podemos executar o Squid nas principais plataformas do mercado, como GNU/Linux, Unixes e Windows.
Instalando o Squid
Para fazer a instalação, basta digitar, como root, no terminal, o comando:
# apt-get install squid
Editando o squid.conf.
O arquivo original do Squid é gigantesco devido aos seus inúmeros comentários. Nesse tutorial vamos criar um arquivo de configuração a partir do zero. Mas primeiro vamos conservar o arquivo original, renomeando-o com o comando:
# mv /etc/squid/squid.conf /etc/squid/squid.original
Agora sim vamos começar a editar nosso arquivo com o comando:
# vim /etc/squid.conf
Idioma e cache
Configurando o idioma:
É possível alterar as mensagens que o Squid mostra quando um cliente tenta acessar um site ou fazer um download bloqueado por exemplo, bem como mensagens de erro de DNS, entre outras.
Para isso vamos criar a linha:
Obs.: Você pode criar suas próprias páginas de mensagens de erro ou então editar as já existentes. Basta ir no seu diretório indicado acima e utilizar um editor de textos simples.
Configurando cache. Crie as linhas:
Esta linha define quanto da memória RAM (no caso 8MB) será usada pelo cache: em um servidor dedicado é recomendado reservar 1/3 da memória RAM para o cache.
Esta linha define o tamanho máximo dos objetos na RAM. Defina um tamanho pequeno para que sejam salvos apenas páginas html na RAM e não downloads por exemplo, que devem ser salvos no disco.
Define o tamanho máximo dos objetos no cache do disco. Aqui serão armazenados os downloads por exemplo. Se tem costume de baixar arquivos grandes, coloque um tamanho grande.
Tamanho mínimo dos objetos no cache.
Essas linhas indicam que a partir do momento em que o cache atingir 95%, serão descartados arquivos mais antigos até que a porcentagem volte para um número abaixo de 90%.
Esta linha é a que realmente define o tamanho total do cache em disco. O endereço refere a que diretório se deseja utilizar como cache, seguido do tamanho máximo do cache no disco (em MB) e os dois últimos números da linha indicam a quantidade de pastas e subpastas que o Squid utilizará para se organizar ao gravar o cache;
Esta linha indica o caminho para onde devem ser exportados os logs que depois poderão ser analisados, manualmente, com com algum gerador de relatórios como o SARG.
Basta então editar estas linhas de acordo com a capacidade do seu servidor e a sua necessidade.
Limpar cache e recriar estrutura.
Sempre que alterar configurações referentes ao cache, é recomendável limpá-lo e recriá-lo. Basta fazer os seguintes comandos.
Apagar os arquivos:
# rm -rf /var/spool/squid/*
Recriar estrutura, pastas e subpastas:
# squid -z
Porta e regras ACL
Porta do Squid e nome do servidor.
Crie as seguintes linhas:
Onde 3128 é a porta padrão do Squid, mas você pode alterá-la se desejar e ServLinux é o nome do meu servidor.
Configurando regras ACL
O Squid lê as regras de cima para baixo, então se quer bloquear algo, primeiro bloqueie o que deseja, depois libere o restante.
As ACLs são criadas no seguinte modelo:
acl nome_da_acl parâmetros
Primeiro, aproveitando o arquivo original do Squid, vamos criar as regras que permitem o acesso apenas a algumas portas específicas e não a qualquer coisa, como no exemplo abaixo.
Agora vamos inserir nossas regras de bloqueio e permissão.
Aqui criamos uma regra chamada "sites_proibidos" que bloqueará as palavras ou URLs contidas no arquivo indicado no caminho "/etc/squid/sites_proibidos". Não esqueça de criar este arquivo com as palavras proibidas, uma por linha.
Em seguida, com a instrução deny, proibimos o acesso aos sites listados na regra que criamos na linha cima.
Nesta regra bloqueamos o download de alguns tipos de extensões. Da mesma maneira criamos a regra primeiro e bloqueamos depois.
A ACL abaixo indica a nossa faixa de rede para que apenas os computadores nessa faixa possam usar o proxy. Substitua os valores de acordo com sua rede.
Proibindo e liberando acessos finais.
Por fim, vamos criar 3 linhas:
Na primeira linha liberamos o acesso total para o servidor onde está o Squid.
Na segunda linha liberamos o acesso aos computadores da rede local de acordo com o horário determinado na acl horario.
E na terceira linha proibimos o resto, ou seja, proibimos que pessoas fora da nossa rede usem o nosso proxy.
Exemplo de squid.conf
Abaixo vai um exemplo de Squid já configurado, com base no que foi explicado acima:
Creditos: Italo Diego Teotonio
Postado Por: RedDeviL
Por: Italo Diego Teotonio
Introdução
O que é Squid? O Squid é um servidor proxy que suporta os protocolos HTTP, HTTPS, FTP e outros. Ele reduz a utilização da conexão e melhora os tempos de resposta fazendo cache de requisições frequentes de páginas web numa rede de computadores. Pode ser usado para controle de banda, restrição de sites, usuários, entre outros. Podemos executar o Squid nas principais plataformas do mercado, como GNU/Linux, Unixes e Windows.
Instalando o Squid
Para fazer a instalação, basta digitar, como root, no terminal, o comando:
# apt-get install squid
Editando o squid.conf.
O arquivo original do Squid é gigantesco devido aos seus inúmeros comentários. Nesse tutorial vamos criar um arquivo de configuração a partir do zero. Mas primeiro vamos conservar o arquivo original, renomeando-o com o comando:
# mv /etc/squid/squid.conf /etc/squid/squid.original
Agora sim vamos começar a editar nosso arquivo com o comando:
# vim /etc/squid.conf
Idioma e cache
Configurando o idioma:
É possível alterar as mensagens que o Squid mostra quando um cliente tenta acessar um site ou fazer um download bloqueado por exemplo, bem como mensagens de erro de DNS, entre outras.
Para isso vamos criar a linha:
error_directory /usr/share/squid/errors/Portuguese
Configurando cache. Crie as linhas:
cache_mem 700 MB
maximum_object_size_in_memory 32 KB
maximum_object_size 1024 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_swap_high 95
cache_dir ufs /etc/squid/cache 30000 16 256
cache_access_log /etc/squid/access.log
Basta então editar estas linhas de acordo com a capacidade do seu servidor e a sua necessidade.
Limpar cache e recriar estrutura.
Sempre que alterar configurações referentes ao cache, é recomendável limpá-lo e recriá-lo. Basta fazer os seguintes comandos.
Apagar os arquivos:
# rm -rf /var/spool/squid/*
Recriar estrutura, pastas e subpastas:
# squid -z
Porta e regras ACL
Porta do Squid e nome do servidor.
Crie as seguintes linhas:
http_port 3128
visible_hostname ServLinux
visible_hostname ServLinux
Configurando regras ACL
O Squid lê as regras de cima para baixo, então se quer bloquear algo, primeiro bloqueie o que deseja, depois libere o restante.
As ACLs são criadas no seguinte modelo:
acl nome_da_acl parâmetros
Primeiro, aproveitando o arquivo original do Squid, vamos criar as regras que permitem o acesso apenas a algumas portas específicas e não a qualquer coisa, como no exemplo abaixo.
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 873
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 873 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 873
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 873 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
Aqui criamos uma regra chamada "sites_proibidos" que bloqueará as palavras ou URLs contidas no arquivo indicado no caminho "/etc/squid/sites_proibidos". Não esqueça de criar este arquivo com as palavras proibidas, uma por linha.
Em seguida, com a instrução deny, proibimos o acesso aos sites listados na regra que criamos na linha cima.
acl sites_proibidos url_regex -i "/etc/squid/sites_proibidos"
http_access deny sites_proibidos
http_access deny sites_proibidos
acl downloads_proibidos url_regex -i \.exe \.torrent \.avi \.mp3
http_access deny downloads_proibidos
http_access deny downloads_proibidos
acl redelocal src 192.168.254.0/24
Por fim, vamos criar 3 linhas:
http_access allow localhost
http_access allow redelocal horario
http_access deny all
http_access allow redelocal horario
http_access deny all
Na segunda linha liberamos o acesso aos computadores da rede local de acordo com o horário determinado na acl horario.
E na terceira linha proibimos o resto, ou seja, proibimos que pessoas fora da nossa rede usem o nosso proxy.
Exemplo de squid.conf
Abaixo vai um exemplo de Squid já configurado, com base no que foi explicado acima:
# Configuração Squid
# Configurado por: Equipe de Informática
# Mensagens de erro em Português
error_directory /usr/share/squid/errors/Portuguese
# Porta do Squid
http_port 3128
# Nome do servidor
visible_hostname ServLinux
# Cache
cache_mem 700 MB
maximum_object_size_in_memory 32 KB
maximum_object_size 1024 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /etc/squid/cache 30000 16 256
# Logs de acesso
access_log /var/log/squid/access.log squid
# Regras acl padrão
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 873
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 873 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
# Permissões e bloqueios padrão
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# Bloqueio de sites por URL
acl sites_proibidos url_regex -i "/etc/squid/sites_proibidos"
http_access deny sites_proibidos
# Bloqueio de downloads por extensão
acl downloads_proibidos url_regex -i \.exe \.torrent \.avi \.mp3
http_access deny downloads_proibidos
# Permissão rede local e servidor
acl redelocal src 192.168.254.0/24
http_access allow localhost
http_access allow redelocal
# Bloqueio de usuários fora da rede
http_access deny all
# Configurado por: Equipe de Informática
# Mensagens de erro em Português
error_directory /usr/share/squid/errors/Portuguese
# Porta do Squid
http_port 3128
# Nome do servidor
visible_hostname ServLinux
# Cache
cache_mem 700 MB
maximum_object_size_in_memory 32 KB
maximum_object_size 1024 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /etc/squid/cache 30000 16 256
# Logs de acesso
access_log /var/log/squid/access.log squid
# Regras acl padrão
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563 873
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 873 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
# Permissões e bloqueios padrão
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# Bloqueio de sites por URL
acl sites_proibidos url_regex -i "/etc/squid/sites_proibidos"
http_access deny sites_proibidos
# Bloqueio de downloads por extensão
acl downloads_proibidos url_regex -i \.exe \.torrent \.avi \.mp3
http_access deny downloads_proibidos
# Permissão rede local e servidor
acl redelocal src 192.168.254.0/24
http_access allow localhost
http_access allow redelocal
# Bloqueio de usuários fora da rede
http_access deny all
Postado Por: RedDeviL