A distro escolhida foi o
Xubuntu 9.10, que é a versão mais recente agora em fevereiro de 2010. Depois de instalada e configurada a rede, instalamos o Squid:
# apt-get install squid
Bom, só lembrando que no Ubuntu e derivados você deve colocar antes de dar qualquer comando de super usuário o termo sudo, eu particularmente não gosto muito disso, prefiro colocar um su e ficar assim o quanto for necessário, mas tudo bem.
Logo após termos instalado o Squid, vamos acessar seu diretório:
# cd /etc/squid/
Neste diretório encontraremos, por ora, somente o arquivo
squid.conf, que é onde se encontram as configurações do Squid. O arquivo é bem grande, tecnicamente não usaremos ele, por isso, seria interessante fazermos um backup para estudo posterior, mas se você quiser pode apagá-lo e pegar uma conf pronta das milhares que tem na net ou usar a minha, que postarei logo abaixo.
Mas, façamos um backup em todo caso, no arquivo de configurações do Squid:
# mv squid.conf squid.conf.bkp
Agora vamos criar um arquivo squid.conf novo, vamos abrir um editor de texto, usarei o pico que é um editor simples que vem no Xubuntu e é menos ortodoxo que o "vi", que muitos temem:
# pico
Bom, precisamos criar uma configuração agora, em seguida a que eu estou usando, basta copiar e colar no editor, depois salve o arquivo, CTRL+O, dê o nome do arquivo squid.conf e em seguida feche-o, CTRL+X; logo abaixo explico o mais importante para que possam ser feitas as mudanças necessárias em cada caso:
http_port 3128
visible_hostname servidor
error_directory /usr/share/squid/errors/pt-br/
cache_mem 64 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
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
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # 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 palavrasproibidas dstdom_regex "/etc/squid/bloqueadas"
http_access deny palavrasproibidas
acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all
Explicando o que eu entendo como o mais importante no momento:
Na 1ª linha temos http_port 3128, esta é a porta que o Squid usará para se comunicar, você pode alterá-la, 3128 é o valor padrão.
Em error_directory /usr/share/squid/errors/pt-br/ temos o diretório em que se encontram as páginas de erro do Squid, veja bem, a pasta que se encontra o idioma português é a pt-br, isso na versão do Xubuntu, na do Debian era no diretório Portuguese, as versões eram diferentes, dentro desta pasta se encontram vários arquivos HTML que você pode alterar como quiser.
Eu queria alterar com um editor HTML para facilitar o trabalho, então resolvi instalar o Kompozer, para quem quiser:
# apt-get install kompozer
É só entrar no diretório de erros, digitar o comando que executa o kompozer, que é o nome do programa mesmo seguido do nome do arquivo, daí é só fazer as alterações que quiser e salvar, pronto.
Bom, a parte do cache e das ACLs padrão não irei comentar, depois de muito pesquisar cheguei nisso que está no arquivo, que é uma coisa um quanto tanto padrão, mas enfim, seria interessante você dar uma olhada na parte do cache, para mim, de acordo com minhas intenções, até que não tem uma importância assim primordial.
Então chegamos aqui:
acl palavrasproibidas dstdom_regex "/etc/squid/bloqueadas"
http_access deny palavrasproibidas
Aqui é a parte mais interessante para mim, criamos uma ACL chamada "palavrasproibidas", estas palavras se encontram dentro do arquivo bloqueadas, então criaremos este arquivo:
# pico
No editor faça uma lista, linha por linha, de palavras que se estiverem na barra de endereços e tentar ser acessada, serão bloqueadas pelo Squid, é aqui que coloquei orkut, torrent, isohunt, mininova etc.
Salve o arquivo com o comando CTRL+O, o pico pedirá o nome do arquivo, dê o nome bloqueadas e então feche o arquivo, CTRL+X.
acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
Agora nesta parte onde tem a faixa de IP 192.168.1.0 você coloca a da sua rede, o 24 é a netmask, 24 corresponde a 255.255.255.0.
Depois de feitas as suas alterações, salvas e tudo o mais, temos que reiniciar o Squid, faça o seguinte comando:
# /etc/init.d/squid restart