29.5. Configurando um proxy transparente

O modo normal de trabalhar com servidores proxy é o seguinte: o browser da Web envia solicitações para uma determinada porta no servidor proxy e o proxy fornece estes objetos solicitados, estejam ou não no cache. Quando você trabalha em uma rede, várias situações podem surgir:

Em todos esses casos, pode ser usado um proxy transparente. O princípio é muito fácil: o proxy intercepta e responde as solicitações do browser da Web, de maneira que o browser da Web recebe as páginas solicitadas sem saber de onde elas vêm. Como o nome indica, todo o processo é feito de maneira transparente.

29.5.1. Opções de configuração em /etc/squid/squid.conf

As opções que devem ser ativadas no arquivo /etc/squid/squid.conf para garantir a execução do proxy transparente são:

  • httpd_accel_host virtual

  • httpd_accel_port 80

    O número de porta em que o servidor HTTP real está localizado

  • httpd_accel_with_proxy em

  • httpd_accel_uses_host_header em

29.5.2. Configuração de firewall com SuSEfirewall2

Agora redirecione todas as solicitações de entrada através do firewall com ajuda de uma regra de encaminhamento de porta para a porta do Squid. Para fazer isso, use a ferramenta SuSEfirewall2 anexada, descrita em Seção 4.1.4.1, “Configurando com o YaST”. Seu arquivo de configuração é encontrado em /etc/sysconfig/SuSEfirewall2. O arquivo de configuração consiste em entradas bem documentadas. Para definir um proxy transparente, é preciso configurar várias opções de firewall:

  • Dispositivo apontando para a Internet: FW_DEV_EXT="eth1"

  • Dispositivo apontando para a rede: FW_DEV_INT="eth0"

Definir portas e serviços (consulte /etc/services) no firewall que são acessadas de redes não confiáveis (externas), como a Internet. Neste exemplo, apenas os serviços da Web são oferecidos externamente:

FW_SERVICES_EXT_TCP="www"

Definir portas ou serviços (consulte /etc/services) no firewall que são acessadas de rede segura (interna), ambas via TCP e UDP:

FW_SERVICES_INT_TCP="domain www 3128"
FW_SERVICES_INT_UDP="domain"

Isto permite acessar serviços da Web e o Squid (cuja porta padrão é 3128). O serviço “domain” representa o DNS (serviço de nome de domínio). Este serviço é normalmente usado. Caso contrário, basta retirá-lo das entradas acima e definir a opção seguinte como no:

FW_SERVICE_DNS="yes"

A opção mais importante é a número 15:

Exemplo 29.1. Configuração de firewall: Opção 15

# 15.)
# Which accesses to services should be redirected to a local port
# on the firewall machine?
#
# This can be used to force all internal users to surf via your
# Squid proxy, or transparently redirect incoming Web traffic to
# a secure Web server.
#
# Choice: leave empty or use the following explained syntax of
# redirecting rules, separated with spaces.
# A redirecting rule consists of 1) source IP/net,
# 2) destination IP/net, 3) original destination port and
# 4) local port to redirect the traffic to, separated by a colon,
# e.g. "10.0.0.0/8,0/0,80,3128 0/0,172.20.1.1,80,8080"

Os comentários acima mostram a sintaxe a seguir. Primeiro, digite o endereço IP e a máscara de rede das redes internas que acessam o firewall de proxy. Em seguida, digite o endereço IP e a máscara de rede às quais estes clientes enviam suas solicitações. No caso de browsers da Web, especifique as redes 0/0, um curinga que significa “a todos os lugares.” Depois, digite a porta original para a qual estas solicitações são enviadas e, finalmente, a porta para a qual todas essas solicitações são redirecionadas. Como o Squid tem suporte para outros protocolos além do HTTP, redirecione as solicitações de outras portas para o proxy, como FTP (porta 21), HTTPS ou SSL (porta 443). Neste exemplo, serviços da Web (porta 80) são redirecionados para a porta do proxy (porta 3128). Se houver mais redes ou serviços a adicionar, eles devem ser separados por um espaço em branco na entrada respectiva.

FW_REDIRECT_TCP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"
FW_REDIRECT_UDP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"

Para iniciar o firewall e a nova configuração com ele, mude um entrada no arquivo /etc/sysconfig/SuSEfirewall2 . A entrada START_FW deve ser definida como "yes".

Iniciar o Squid como mostrado na Seção 29.3, “Iniciando o Squid”. Para verificar se tudo está funcionando corretamente, verifique os registros do Squid em /var/log/squid/access.log. Para verificar se todas as portas estão corretamente configuradas, realize uma exploração de portas na máquina de qualquer computador externo à rede. Apenas os serviços da Web (porta 80) devem ser abertos. Para explorar as portas com nmap, a sintaxe do comando é nmap -O IP_address.