segunda-feira, 9 de fevereiro de 2009

Squid - parte 1

Neste meterial será mostrado a instalação e configuração básica do squid, bloqueio de conteúdo utilizando acl's, proxy transparente, autenticação, auditoria como sarg e controle de banda. A versão utilizada será a 2.6.STABLE18, todos os testes foram feitos no Ubuntu 8.04 kernel 2.6.24-22


O Squid é um servidor proxy que suporta HTTP, HTTPS, FTP e outros. Ele reduz a utilização da conexão e melhora os tempos de resposta fazendo cache de requisições freqüentes de páginas web numa rede de computadores.


Verificando se o pacote está instalado.


# dpkg -l | squid


O programa 'squid' não está instalado atualmente. Você pode instalá-lo digitando: apt-get install squid


Instalando o Squid


# apt-get install squid


# squid -v

Squid Cache: Version 2.6.STABLE18


Após confirmar a instalação do squid, verifique o conteúdo dos diretórios mencionados.


# ls /var/spool/squid

# ls /var/log/squid

# ls /etc/squid


O arquivo de configuração se encontra no diretório /etc/squid


# cd /etc/squid


Antes de fazer qualquer alteração faça uma copia do arquivo original


# cp squid.conf squid.conf.original


A configuração padrão do squid não permite nenhum tipo de navegação, por medidas de segurança. A primeira coisa que devemos fazer é especificar qual rede o squid deve ouvir, e também devemos especificar uma ACL do tipo origem que case com o nosso endereço IP. Vamos fazer isso.


Para que o squid ouça apenas uma rede, troque o valor do parâmetro "http_port 3128" para:


http_port 192.168.0.3:3128


Outra configuração importante é o parâmetro visible_hostname. Este parâmetro diz qual será o hostname que o squid irá utilizar para resolver seu endereço local e também é o endereço que será apresentado nas páginas de informação


visible_hostname proxy.seunome.com.br


Seu arquivo é muito extenso, após a instalação removi todos os comentários, deixando apenas a configuração padrão, facilitando assim a adaptação a nossa realidade.


# vi squid.conf


# WELCOME TO SQUID 2.6.STABLE18


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 to_localhost dst 127.0.0.0/8

acl SSL_ports port 443 # https

acl SSL_ports port 563 # snews

acl SSL_ports port 873 # rsync

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

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 631 # cups

acl Safe_ports port 873 # rsync

acl Safe_ports port 901 # SWAT

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


# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS


http_access allow rede

http_access deny all

icp_access allow all


hierarchy_stoplist cgi-bin ?


access_log /var/log/squid/access.log squid


acl QUERY urlpath_regex cgi-bin \?

cache deny QUERY


#Suggested default:

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern . 0 20% 4320


acl apache rep_header Server ^Apache

broken_vary_encoding allow apache


extension_methods REPORT MERGE MKACTIVITY CHECKOUT

hosts_file /etc/hosts


Localize a sessão ( # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS ) e insira as linhas abaixo.


acl rede src 192.168.0.0/24


http_access allow rede

http_access deny all

icp_access allow all


http_port 192.168.0.3:3128


visible_hostname ubuntu


hierarchy_stoplist cgi-bin ?


# Ajuste do cache em disco: Iremos especificar 512MB de cache, com 128

# diretórios e 256 subdiretórios:

cache_dir ufs /var/spool/squid 512 128 256

# Definindo o cache que será armazenado em memória:

cache_mem 16 MB

# Define o tamanho máximo de um arquivo que será armazenado no cache na memória # RAM, se passar disso aí (128 KB) vai parar no disco rígido.

maximum_object_size_in_memory 128 KB

# Define o tamanho máximo de um arquivo armazenado.

maximum_object_size 256 MB

# Define o tamanho mínimo do arquivo em cache.

minimum_object_size 0 KB

# Essas diretivas definem em porcentagem que se o limite de 85% do cache for

# utilizado os arquivos antigos começam descartados até chegar a 80%.

cache_swap_low 80


Agora, iremos parar o squid, verificar a sintaxe do arquivo de configuração,gerar o cache e então reiniciaremos o squid.


# invoke-rc.d squid stop

# squid -k parse

# squid -z

# invoke-rc.d squid start


Toda vez que você mudar as ACL's você deve executar os comandos:


# squid -k parse

# squid -k reconfigure


Até seu squid já estará funcionando, porém sem nenhum tipo de filtro.

0 comentários: