Para a configuração realmente não existe uma receita mágica que funcione para todos os ambientes. Cada um criará seu arquivo de acordo com as necessidades. Você pode querer exigir autenticação dos usuários ou não, ou controlar a banda disponível, restringir o uso em determinados horários etc.
Não cobrirei aqui a parte da configuração de forma geral. Como o título do artigo diz, viso apenas a instalação, mas alguns parâmetros se fazem necessários no arquivo do squid.conf.
O primeiro parâmetro necessário é o "cache_effective_user" que diz sobre qual usuário o
Squid será executado. Este parâmetro é importante, pois ao executar o Squid como root, seus subprocessos são executados sob o usuário especificado. Se fosse encontrada uma falha grave na segurança do Squid, um usuário mal intencionado poderia obter privilégios administrativos. Coloque algo como:
cache_effective_user squid
que significa que o Squid rodará como o usuário squid. Obviamente teremos que criar este usuário posteriormente. Caso esta linha não seja inserida, o Squid usa por padrão o usuário "nobody". Se ele não existir em seu sistema você terá problemas para criar os diretórios de cache. Portanto aconselho criar o usuário Squid para evitar dores de cabeça.
A seguir é necessário especificar o arquivo de log do Squid e o diretório de cache. Isso é feito com os parâmetros:
cache_access_log /usr/var/logs/access.log
cache_dir /usr/var/cache 2048 16 256
Obviamente o arquivo de log e o diretório de cache podem estar em qualquer localização, esta que citei é o padrão do Squid e gosto de usá-la. Mude caso deseje. Na segunda linha, o 2048 determina o tamanho do cache em MB e o 16 e 256 determinam quantos diretórios e quantos subdiretórios serão criados para o cache.
A seguir vai o parâmetro que coloca as páginas de erro do Squid em português, caso não queira que elas fiquem na linguagem padrão que é o inglês:
error_directory /usr/share/errors/Portuguese
Apenas lembrando que se você instalou o Squid em outro diretório diferente de /usr, este diretório de erros também estará em outro lugar.
Um exemplo de arquivo de configuração básico mas funcional, com estes parâmetros que acabei de mostrar foi feito pelo Carlos E. Morimoto em seu livro Servidores
Linux:
http_port 3128
visible_hostname proxy-server
cache_effective_user squid
error_directory /usr/share/errors/Portuguese
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 /usr/var/cache 2048 16 256
cache_access_log /usr/var/logs/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
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 21 80 443 563 70 210 280 488 59 777 901 1025-65535
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 bloqueados url_regex -i "/usr/etc/bloqueados"
http_access deny bloqueados
acl redelocal src 192.168.1.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all
As linhas em negrito foram alteradas ou criadas por mim para refletir o que expliquei até agora.
Feito isso, será necessário criar o usuário "squid" e os diretórios que especificamos na configuração e a seguir dar a este usuário a propriedade destes diretórios. Na linha de comando, como root:
# useradd squid -s /bin/false
# mkdir /usr/var/cache /usr/var/logs
# chown -R squid. /usr/var/cache /usr/var/logs
Repare no ponto após "squid" para que os arquivos herdem também o grupo a que pertence o squid. O parâmetro -s de useradd serve para especificar um shell para o usuário. O /bin/false significa que ele não terá um shell válido, e como não especificamos também um diretório home ou uma senha, este será um usuário "castrado", que não poderá se logar no sistema, mas tem acessos aos arquivos de sua propriedade.
Finalmente criamos a estrutura do cache do Squid com o comando "squid -z". Se tudo ocorrer bem serão exibidas no terminal as mensagens dos diretórios sendo criados.