Atividade prática

Administração de sistemas operacionais

Instalação e configuração de servidor proxy squid

 

1)      Configure  o Vmware para que a interface de rede trabalhe em modo NAT.

2)      Altere o arquivo /etc/network/interfaces para que sua interface de rede trabalhe em modo DHCP. Veja o exemplo abaixo:

 

auto ens33
iface ens33 inet dhcp

 

Obs: o nome de sua interface pode ser diferente do exemplo. Verifique o nome de usa interface com o comando “ifconfig’ ou  ip address”.

Se o comando ifconfig não estiver instalado use o comando “apt-get install net-tools” para instalar a ferramenta.

 

3)      Reinicie seu sistema operacional.

 

4)      Instale o squid usando o comando apt-get

 

# apt-get install squid 

Depois de instalado  o Squid,  renomeei o arquivo de configuração para criarmos um backup do arquivo original. 

# mv /etc/squid/squid.conf /etc/squid/squid.conf.orig
# nano /etc/squid/squid.conf
 

 

5)      Abaixo uma descrição dos principais parâmetros usados no arquivo de configuração:

§ http_port 3128: Define em qual porta o Squid vai atuar, a porta default é a 3128, mas podemos definir qualquer outra porta.

§ visible_hostname  : Define o nome do servidor.

§ acl all src 0.0.0.0/0.0.0.0: Esta linha cria uma ACL, uma política de acesso com nome "all" contendo qualquer IP.

§ acl localhost src 127.0.0.1/255.255.255.255: Aqui cria-se uma ACL de nome "localhost" contendo localhost.

§ acl SSL_ports port 443 563: Cria a ACL contendo as portas que são utilizadas no protocolo HTTPS.

§ acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535: Cria a ACL contendo as portas de diversos protocolos conhecidos na Internet.

§ acl manager proto cache_object: Cria a ACL manager  do tipo cache_object usada para obter informações sobre o estado do servidor squid. Acesso deve ser liberado apenas ao localhost

§ acl purge method PURGE : Cria a ACL  do método purge. Este método é usado para limpar o cache do servidor. Acesso deve ser liberado apenas ao localhost

§ acl CONNECT method CONNECT: Cria a ACL CONNECT .  Método de conexão

§ http_access allow manager localhost: Libera a ACL manager e localhost.

§ http_access deny manager : Bloqueia a ACL manager.

§ http_access allow purge localhost: Libera a ACL purge e localhost

§ http_access deny purge: Bloqueia a ACL purge.

§ http_access deny !Safe_ports: Esta linha se torna bastante interessante pelo uso da "!", pois ela bloqueia qualquer conexão que não contenha o conteúdo da ACL Safe_Ports.

§ http_access deny CONNECT !SSL_ports: Bloqueia qualquer conexão que não esteja no conteúdo da ACL SSL_ports.

§ acl redelocal src 192.168.0.0/24: Cria a ACL rede local contendo a faixa de endereço da rede.

§ http_access allow localhost: Libera a ACL localhost.

§ http_access allow redelocal: Libera a ACL redelocal.

§ http_access deny all: Bloqueia a ACL all

6)      Outras opções

 

hierarchy_stoplist CGI-bin ? 
Esta opção manda o Squid buscar os dados diretamente na origem, ela é referente ao conteúdo dinâmico, se a URL conter algum padrão aqui especificado ela irá direto a origem buscar o conteúdo.


error_directory /usr/share/squid/errors/Portuguese 

# Define o caminho das páginas de erro do squid.

cache_mgr admin@seu_dominio.com.br 

# Define o e-mail que vai aparecer na página de erro do Squid, assim o usuário terá mais informações para interagir com o responsável


acl QUERY urlpath_regex cgi-bin ?

no_cache deny QUERY

# Esta ACL é responsável por não armazenar conteúdo CGI em cache.

 

 

7)      As próximas linhas são referentes às configurações do cache. 


cache_mem 64 MB 

Define a quantidade de memória RAM reservada para o uso do Squid.

maximum_object_size_in_memory 64 KB 

Esta linha é responsável por limitar o tamanho dos arquivos que serão armazenados no cache da memória RAM.

maximum_object_size 512 MB
minimum_object_size 0 KB 

Aqui definimos o tamanho máximo e mínimo respectivamente dos arquivos que serão armazenados no cache do HD.

cache_swap_low 90
cache_swap_high 95 

Com essas duas linhas podemos definir a porcentagem de atualização do cache, estamos dizendo que quando o cache chegar em 95% o Squid irá apagar os arquivos mais antigos até chegar a 90%.

cache_dir ufs /var/spool/squid 2048 16 256 

Nessa linha conseguimos definir o tamanho e alguns parâmetros do cache feito em HD, a linha é composta por quatro valores, o 1º define o caminho do cache (/var/spool/squid), o 2º o tamanho que será alocado em MB para o cache (2Gb), o 3º a quantidade de diretórios criados para o cache (16) e o 4º é o numero de subdiretórios que serão criados. Se você possuir bastante espaço em disco e quiser armazenar os arquivos por mais tempo, aumente a opção do tamanha do cache.


cache_access_log /var/log/squid/access.log 

Define onde serão armazenados os registros de log do Squid.

refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

Essas três últimas linhas definem o intervalo de atualização do cache, 

 

 

8)      No seu arquivo de configuração altere as linhas abaixo:

 

http_port 3130
visible_hostname  Servidor_Squid
acl redelocal src 192.168.0.0/24  (coloque o endereço base de sua rede)


Vefique se estas linhas estão nesta ordem:


http_access allow localhost
http_access allow redelocal
http_access deny all

 

9)      Para reiniciar o squid use o comando service:

 

#service squid restart

 

10)   Use o comando abaixo para verificar se o processo do servidor squid está sendo executado:

 

#psaux

 

 

11)   Verifique o endereço IP do seu servidor com o comando ifconfig

12)   Em sua máquina hospedeira windows faça  configuração para que ela utilize o servidor proxy para navegação deinternet.

para painel de controle > Central de rede e compartilhamento > opções da internet

 

Em seguia selecione a aba “conexões” e clique no botão “configurações da lan”.

 

13)   Em seguida na caixa de diálogo aberta marque a opção usar um servidor proxy...” . Digite o endereço IP do servidor proxy/squid e a porta que foi configurada no servidor.

Marque a opção “Não usar servidor proxy para endereços locais”.  Finalmente Confirme todas as opções para fechar as janelas de configuração.

 

 

 

14)   Abra se navegador de internet e tente acessar o site do google. Sua resposta deverá ser uma tela  como a mostrada abaixo;

 

Isto acontece pois o proxy se encontra com a regra  http_access deny all  logo no início do controle das ACL. Como as regra são hierárquicas ela bloqueia qualquer acesso externo.

 

15)   Para definir as Access list (ACL) vamos criar os arquivos abaixo no diretório do squid (/etc/squid).

 


# nano /etc/squid/palavras_bloqueadas.txt 

Neste arquivo, iremos adicionar palavras que serão bloqueadas, como: sexo, pornô, etc...

 

# nano /etc/squid/sites_liberados.txt 

Neste arquivo, serão adicionados os sites que não terão acesso livre.

# nano /etc/squid/sites_bloqueados.txt 

Neste arquivo, serão adicionados os sites que não terão acesso, como: 4shared.com, rapidshare.com, megavideo.com, filesonic.com, etc

# nano /etc/squid/redes_sociais.txt 

Aqui, iremos colocar as redes sociais, como: facebook.com, instagram.com, twiter.com, etc

# nano /etc/squid/ips_liberados.txt 

Neste arquivo, iremos colocar os IPs das máquinas que serão liberadas

# nano /etc/squid/sites_porno.txt 

Lista de sites adultos: redtub, xvideos , etc...

# nano /etc/squid/formato_arquivo.txt 

Este arquivo limita os tipos de arquivos que serão baixados, tudo que contiver neste arquivo será bloqueado. Exemplos: .avi$, .mp3$, .wmv$: 

 

16)    Depois dos arquivos criados e preenchidos, é necessário criar as ACL e suas regras de acesso:

 

Criando as ACL:

 

acl rede_local src 192.168.0.0/24
acl palavras_bloqueadas url_regex -i "/etc/squid/palavras_bloqueadas.txt "
acl sites_bloqueados url_regex -i "/etc/squid/ sites_bloqueados.txt "

acl sites_liberados url_regex -i "/etc/squid/ sites_liberados.txt "
acl redes_sociais url_regex -i "/etc/squid/redes_sociais.txt"
acl liberados src "/etc/squid/ips_liberados.txt "
acl porno url_regex -i "/etc/squid/sites_porno.txt "

acl formato_arquivo url_regex -i "/etc/squid/formato_arquivo.txt"
acl horario_almoco time 12:00-13:00 

 

Criando as regras de acesso:

 

http_access allow liberados

http_access allow sites_liberados
http_access allow redes_sociais horario_almoco
http_access deny redes_sociais
http_access deny sites_bloqueados
http_access deny palavras_bloqueadas
http_access deny porno
http_access deny formato_arquivo
http_access allow rede_local

http_access deny all

 

17)   Em seguida faça com que o squid leia as novas configurações sem necessidade de reinício.

 

#squid –k reconfigure

 

18)   Verifique se o processo do squid continua em execução.

 

19)   Teste sua configurações acessando os sites indicados nos seus arquivos de liberados e bloqueados para testar.