Sexto Passo de Criar um Servidor de Rede Ubuntu - Proxy Transparente
Autor: Software Livre | Publicado: 2011-08-10T19:13:00-07:00


Adicionando um proxy transparenteAproveitando o compartilhamento da conexão, você pode melhorar um pouco o acesso adicionando um proxy transparente com o Squid. A configuração é simples e você ganha um cache para as páginas e arquivos já acessados, otimizando a conexão.O primeiro passo é configurar o servidor Linux com duas placas de rede para compartilhar a conexão, como vimos nos tópicos anteriores. O proxy transparente é apenas um add-on, que complementa o compartilhamento da conexão via NAT.Com tudo funcionando, o próximo passo é instalar o&nbsp;Squid, o que é feito através da instalação do pacote "squid":$ sudo apt-get install squidCom o pacote instalado, o próximo passo é configurar o arquivo "/etc/squid/squid.conf". Apague (ou renomeie) o arquivo original e crie outro com o seguinte conteúdo:http_port 3128 transparentvisible_hostname&nbsp;gdhcache_mem&nbsp;64 MBmaximum_object_size_in_memory 128 KBmaximum_object_size 512 MBcache_dir ufs /var/spool/squid&nbsp;4096&nbsp;16 256cache_access_log /var/log/squid/access.logacl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl SSL_ports port 443 563acl Safe_ports port 80 21 280 443 488 563 591 777 1025-65535acl purge method PURGEacl CONNECT method CONNECThttp_access allow manager localhosthttp_access deny managerhttp_access allow purge localhosthttp_access deny purgehttp_access deny !Safe_portshttp_access deny CONNECT !SSL_portsacl redelocal src 192.168.1.0/24http_access allow localhosthttp_access allow redelocalhttp_access deny allA primeira linha indica a porta utilizada pelo Squid (3128) e que ele deve operar em modo transparente (transparent). A segunda indica o nome do servidor (gdh), que você deve substituir pelo nome do seu.As quatro linhas seguintes indicam a configuração do cache. O Squid trabalha com dois caches distintos, um cache mais rápido, feito na memória RAM, e outro mais lento (porém maior) feito usando espaço do HD.O "cache_mem 64 MB" indica o tamanho do cache na memória RAM (é recomendável que você utilize no máximo 1/3 da memória total instalada), enquanto o "4096" na linha "cache_dir ufs /var/spool/squid 4096 16 256" indica o tamanho do cache que será feito no HD, em megabytes.A linha "acl redelocal src 192.168.1.0/24" indica a faixa de endereços e a máscara utilizada na sua rede local (o /24 equivale à mascara 255.255.255.0). Combinada com as regras "http_access allow redelocal" e "http_access deny all" ela faz com que apenas micros da rede local possam utilizar o proxy, afastando qualquer possibilidade de que ele fique aberto para a Internet, independentemente da configuração do firewall.A linha maximum_object_size 512 MB indica o tamanho máximo de arquivo que será armazenado no cache (arquivos maiores do que isso serão ignorados), o que evita que arquivos muito grandes, (como imagens ISO) que você vai baixar apenas uma vez, desperdicem espaço no cache.Depois de terminar, reinicie o Squid para que a configuração entre em vigor:# /etc/init.d/squid restartCom isso, a configuração do servidor proxy está pronta, mas falta um passo igualmente importante, que é ativar a regra de firewall que faz com que os acessos destinados à porta 80, provenientes da rede local sejam encaminhados para o Squid. Sem isso, as requisições continuam sendo roteadas diretamente, sem passarem pelo proxy:$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128Note que o "eth0" no comando especifica a interface de rede local, que deve ser alterada de acordo com a sua configuração. Este comando (sem o sudo deve ser colocado no final do arquivo "/etc/rc.local", logo depois dos comandos para compartilhar a conexão, como em:#!/bin/sh# Compartilha a conexãomodprobe iptable_natecho 1 &gt; /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -o&nbsp;eth1&nbsp;-j MASQUERADEiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128# Bloqueia pings e protege contra IP spoofing e pacotes inválidosiptables -A INPUT -p icmp --icmp-type echo-request -j DROPecho 1 &gt; /proc/sys/net/ipv4/conf/default/rp_filteriptables -A INPUT -m state --state INVALID -j DROP# Abre para a interface de loopback e para a interface de rede localiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -i&nbsp;eth0&nbsp;-j ACCEPT# Abre para as portas especificadasiptables -A INPUT -p tcp --dport&nbsp;22&nbsp;-j ACCEPT# Bloqueia as demais conexões, deixando passar apenas pacotes de respostaiptables -A INPUT -p tcp --syn -j DROPDepois de ativar a regra de firewall, você pode testar o proxy navegando em algum dos micros da rede local (que use o servidor como gateway) e verificar o conteúdo do arquivo "/var/log/squid/access.log" no servidor. Conforme as requisições passam pelo proxy, o arquivo é alimentado com um grande volume de informações sobre as conexões realizadas.