Squid

1 – Instale o pacote squid

apt-get install squid

2 – Edite o arquivo de configuração do squid “squid.conf”

vi /etc/squid/squid.conf

3 – Modificar a TAG: http_port

http_port 192.168.0.1:3128 transparent (ouve apenas na interface deste ip)
http_port 3128 transparent (roda em todas interfaces de rede)

Nesta TAG indicamos em qual “host” e em qual “porta” o squid irá trabalhar.

4 – Modifique a TAG: visible_hostname

visible_hostname server.domain

Nesta TAG indicamos qual o nome do servidor seguido do dominio que irá aparecer nas menssagens de erro do squid.

* Veja o nome e o dominio do servidor no aarquivo “/etc/hosts”

5 – Modifique a TAG: cache_mem

cache_mem 32 MB

Nesta TAG indicamos a quantidade de memória RAM que o squid irá usar para trabalhar o cache das últimas páginas acessadas.

6 – Modifique a TAG: cache_dir

cache_dir ufs /var/spool/squid 2048 16 256

Nesta TAG indicamos:

O tipo de sistemas de arquivos que o squid irá usar para fazer o cache por padrão “ufs” (unix file system);

Onde seram criados os diretórios de cache “/var/spool/squid”;

A quantidade de espaço em disco que será utilizada para fazer o cache das páginas visitadas em MB “2048”;

A quantidade de diretórios que irão ser criados em /var/spool/squid “16”;

A quantidade de sub diretórios que irão ser criados dentro de cada um dos 16 “256”.

7 – Modifique a TAG: acl

Insira suas acls ao fim de todas as acls.

acl rede src 192.168.0.0/24

Nesta TAG indicamos o nome da nossa acl “rede” com a opção “src” (endereço de IP de origem) sequido do endereço de nossa rede com a mascara “192.168.0.0/255.255.255.0”

7.2 – Bloquear SITES atráves de expressão regular (palavras)

acl sites url_regex -i "/etc/squid/acls/sites_proibidos.txt"

Nesta acl “sites” usamos a opção url_regex (comparação de URL baseada em expressão regular) com a opção -i (trata as palavras dentro do arquivo indiferente de maiúsculo ou minúsculo) sequido da localização entre aspas do arquvivo com palavras que serão bloqueadas por nossa acl

* Dentro deste aquivo coloque uma palavra por linha. Ex:

playboy
sexy

7.3 – Bloquear DOWNLOADS através de expressão regular (palavras)

acl downloads url_regex -i "/etc/squid/acls/downloads_proibidos.txt"

* Se a opção -i em url_regex não for utilizada o proxy irá bloquear todos arquivos com extenssão .exe e não bloqueará .EXE em maiúsculo

* Dentro deste aquivo coloque uma extenssão por linha por ex:

\.exe
\.zip
\.bat
\.mp3

8 – Modificar a TAG: http_access

Debaixo desta linha libere ( allow ) ou negue ( deny ) o acesso para suas acls

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access deny sites
http_access deny downloads
http_access allow rede

Nesta parte nós bloqueamos o acesso das acl(s) “sites” e “downloads” para todos e depois liberamos a acesso a nossa rede

* Tudo que deve ser negado deve vir primeiro do que vai ser liberado como em um firewall. Sendo assim configure sua acl de rede para ser sempre a última das “suas acls”

9 – Criar os arquivos “sites_proibidos.txt” e “downloads_proibidos.txt”

mkdir -p /etc/squid/acls
touch /etc/squid/acls/sites_proibidos.txt
touch /etc/squid/acls/downloads_proibidos.txt

* Dentro destes arquivos insira as palavras que serão bloqueadas.

10 – Crie os diretórios de cache do SQUID

squid -z

11 – Inicialize o servidor SQUID

squid -D start

A opção -D desabilita o teste a procura de um servidor de DNS. Usado se o seu servidor não tem acesso a internet.

12 – Configurando o Proxy em console

export http_proxy="http://192.168.0.1:3128"

Configuramos a variavel http_proxy para trabalhar no IP e na porta do nosso servidor Proxy

13 – Testando o servidor SQUID

Configure o proxy na console como acima, em seguida use o navegador lynx para fazer o teste

lynx www.playboy.com.br

* Irá aparecer uma mensagem de erro do squid

lynx www.uol.com.br

* Irá navegar normalmente

Em seguida entre com o comando abaixo em uma outra console para ver se o squid esta gerando o log dos sites visitados.

tail -f /var/log/squid/access.log

Para ver o log do cache que o squid está fazendo veja o arquivo “store.log”

tail -f /var/log/squid/store.log

14 – CONFIGURANDO PROXY TRANSPARENTE

14.1 – Configurações no Squid

Configure a TAG: http_port assim:

http_port 3128 transparent

14.2 – Configurações no Firewall Iptables

iptables -t nat -I PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Esta regra do iptables força os usuários a pasarem por proxy em qualquer conexão feita para a porta 80 sendo assim não será preciso configurar o browser para utilizar o proxy

15 – Configurando o Squid para trabalhar com menssagens de erro em Português

Modificar a TAG: error_directory

error_directory /usr/share/squid/errors/Portuguese

16 – CONFIGURANDO SQUID AUTENTICADO

16.1 Adicione as entradas a TAG: auth_param

# Programa que irá autenticar os usuários seguido do aquivo de senhas
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/password

# Númerio de instâncias simultâneas que irão rodar do programa de autenticação
auth_param basic children 5

# Mensagem que irá aparecer na tela de login durante tentaviva de acesso
auth_param basic realm Informe seu login - nome e senha de usuario

# Armazena o login do usuário por 10 horas, não precisando logar a cada requisição(site). Se o usuário fehcar o browser terá de logar novamente
auth_param basic credentialsttl 10 hours

# Caso o usuário digite login em senha em maiúsculo as strings serão convertidas para minúsculo.
auth_param basic casesensitive off

16.2 – Adicione as seguintes entradas na TAG: acl

acl password proxy_auth REQUIRED

# Adicione a linha abaixo apenas para autenticação via username
acl users proxy_auth_regex -i "/etc/squid/acl/users.txt"

16.3 – Adicione uma das entradas a TAG: http_access

http_access allow rede password # Para autenticação via IP
http_access allow users password # Para autenticação via username

16.4 – Crie o arquivo password que terá o login dos usuários

touch /etc/squid/password

16.5 – Crie o arquivo users que terá o username dos usuarios

touch /etc/squid/acl/users.txt

* Dentro deste aquivo coloque um username por linha. Ex:

nickollas
luciano

16.6 – Adicionando usuário ao arquivo de senhas (não precisa reiniciar o squid)

OBS: O htpasswd está no pacote apache2-utils.

htpasswd -b /usr/local/etc/squid/password nickollas 123

16.7 – Alterando a senha de um usuario (não precisa reiniciar o squid)

htpasswd -b /usr/local/etc/squid/password nickollas 456

16.8 – Deletando um usuário (não precisa reiniciar o squid)

htpasswd -D /usr/local/etc/squid/password nickollas
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s