Baixe o app para aproveitar ainda mais
Prévia do material em texto
TÓPICOS AVANÇADOS EM ENGENHARIA DE COMPUTAÇÃO II Experimentos com web proxies e firewalls7 TEXTO-BASE Web cache squid | Julio Cezar Estrella Nota: Antes de começar, você deve fazer o download de uma distribuição Linux Ubuntu/Debian. Caso tenha apenas Windows instalado em seu computador/notebook, você pode fazer uso de um virtualizador e configurá-lo para instalar a distribuição Linux. Dentre os virtualizadores, você pode utilizar o VirtualBox, por ser de fácil entendimento e configuração. Procure no YouTube por tutoriais de como instalar e configurar o VirtualBox no Windows ou Linux e como instanciar uma máquina virtual Linux dentro do VirtualBox. Caso tenha dois computadores em sua rede com Linux e Windows, não será necessário fazer uso da virtualização. Prezado aluno, Procure seguir adequadamente o material disponibilizado abaixo para que tenha sucesso ao final das configurações. Faça bom proveito e espero que aprenda bastante! O pacote squid é um proxy Internet com uma cache integrada. A vantagem de uma cache Internet é a de guardar localmente dados pedidos anteriormente para, numa utilização futura, serem servidos localmente, evitando acessos repetidos a servidores distantes. Instalação #apt-get install squid 1. Configuração2. A configuração do squid é guardada no arquivo “/etc/squid/squid.conf”. O squid aceita ligações na porta 3128, por omissão. No entanto, esta pode ser alterada (a porta 8080 também é muito utilizada com porta para o serviço de cache Internet): #nano /etc/squid/squid.conf 1 2 3 4 5 6 #[...] # Squid normally listens to port 3128 http_port 3128 #[...] Por segurança, o squid só responderá a pedidos originados na rede local ou no próprio servidor. Essa restrição é conseguida definindo uma lista de controle de acesso ou ACL (Access Control List) (acl lab.intranet src 192.168.1.0/24) e autorizando o acesso apenas aos sistemas incluídos nessa lista (http_access allow lab.intranet): Definição da lista de endereços da rede interna na secção acl: #nano /etc/squid/squid.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # [...] # TAG: acl # Defining an Access List # [...] #Default: # ACLs all, manager, localhost, and to_localhost are predefined. # # # Recommended minimum configuration: # # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed #acl localnet src 10.0.0.0/8 # RFC1918 possible internal network #acl localnet src 172.16.0.0/12 # RFC1918 possible internal network #acl localnet src 192.168.0.0/16 # RFC1918 possible internal network #acl localnet src fc00::/7 # RFC 4193 local private network range 22 23 24 25 26 #acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl lab.intranet src 192.168.1.0/24 # [...] Definição das permissões de acesso na secção http_access: #nano /etc/squid/squid.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # [...] # # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # # Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed #http_access allow localnet http_access allow localhost http_access allow lab.intranet # And finally deny all other access to this proxy http_access deny all # [...] O tamanho total da cache do squid pode ser afinado para um valor conveniente, como por exemplo, 2048Mb: #nano /etc/squid/squid.conf 1 2 3 4 5 # [...] # Uncomment and adjust the following to add a disk cache directory. #cache_dir ufs /var/spool/squid 100 16 256 cache_dir ufs /var/spool/squid 2048 16 256 6 7 # [...] A identificação do servidor proxy pode também ser definida: #nano /etc/squid/squid.conf 1 2 3 4 # [...] # TAG: visible_hostname # If you want to present a special hostname in error messages, etc, 5 6 7 8 9 10 11 12 13 # define this. Otherwise, the return value of gethostname() # will be used. If you have multiple caches in a cluster and # get errors about IP-forwarding you must set them to have individual # names with this setting. #Default: # Automatically detect the system host name visible_hostname debian.lab.intranet # [...] Opcionalmente, pode-se também configurar o tamanho máximo de um objeto a guardar em cache definindo o parâmetro maximum_object_size: #nano /etc/squid/squid.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # [...] # TAG: maximum_object_size (bytes) # Objects larger than this size will NOT be saved on disk. The # value is specified in kilobytes, and the default is 4MB. If # you wish to get a high BYTES hit ratio, you should probably # increase this (one 32 MB object hit counts for 3200 10KB # hits). If you wish to increase speed more than your want to # save bandwidth you should leave this low. # NOTE: if using the LFUDA replacement policy you should increase # this value to maximize the byte hit rate improvement of LFUDA! # See replacement_policy below for a discussion of this policy. #Default: # maximum_object_size 4 MB maximum_object_size 16 MB # [...] Como segurança adicional, é possível também instruir o squid para não divulgar a sua versão: #nano /etc/squid/squid.conf 1 2 3 4 5 6 7 # [...] # TAG: httpd_suppress_version_string on|off # Suppress Squid version string info in HTTP headers and HTML error pages. #Default: # httpd_suppress_version_string off httpd_suppress_version_string on 8 9 # [...] O arquivo de configuração pode ser testado: #squid -k parse É mostrado um resumo da configuração. Se não houverem erros, é necessário reiniciar o serviço squid: #systemctl restart squid Configuração de clientes Navegadores Web É possível configurar o browser Firefox para utilizar um proxy, acessando ao menu Ferramentas → Opções… → Avançadas → Rede → Definições…, ativar a opção Configuração manual do proxy e inserir o endereço do servidor proxy (10.0.0.1) e a porta (3128). Podem-se definir exceções para o próprio posto (127.0.0.1) e para a rede local (10.0.0.0/24): 3. Em Sistemas Linux: No caso de sistemas Linux, é possível declarar a variável http_proxy com a URL do proxy a utilizar: #export http_proxy=http://10.0.0.1:3128/ No entanto, na próxima sessão terá que ser declarada novamente. Um método mais duradouro é declarar a variável automaticamente a cada login, incluindo a declaração no arquivo ~/.profile do utilizador: # echo 'http_proxy="http://10.0.0.1:3128/"' >> ~/. profile A declaração pode ainda ser feita de modo automático e para todos os utilizadores, se incluída no arquivo de sistema “/etc/profiles”: #echo 'http_proxy="http://10.0.0.1:3128/"' >> /etc/profile O mesmo princípio é aplicável para a variável ftp_proxy que define o proxy a utilizar nas ligações FTP ou para a variável https_proxy para as ligações seguras.
Compartilhar