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:
#ps –aux
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.
Vá 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.