Proxy tranparente

1. Proxy tranparente

Carlos
carlos0101

(usa Outra)

Enviado em 30/01/2014 - 21:16h

Prezados amigos ,
Tenho em meu ambiente de trabalho um servidor proxy - Squid3
e um firewall - iptables com a seguinte configuração

squid.conf

http_port 3128
cache_mem 50 mb
cache_dir ufs /var/spool/squid3 100 16 256
visible_hostname proxy
#### regras ##
acl localnet src 192.168.100.2-192.168.100.254
http_access allow localnet

o arquivo do iptables ainda não esta configurado

até ai tudo bem , a internet para meus clientes funciona normalmente , mas o problema é que tenho que configurar manualmente o proxy de cada maquina de cada cliente da rede .
Sei que tem como e ja li varios tutorias na internet sobre o proxy transparente , mas não consegui fazer com que não seja preciso configurar o proxy nos navegadores. Alguém poderia me dar uma dica ?

Obrigado a todos !


  


2. Re: Proxy tranparente

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 30/01/2014 - 21:52h

qual sistema voce usa?
pode usar o wpa.dat para enviar o proxy via dhcp dns


3. Re: Proxy tranparente

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 30/01/2014 - 23:34h

Uma rede mais segura não deve usar proxy transparente, o proxy transparente não contempla a porta 443, o squid mais novo ja esta fazendo proxy com suporte a porta 443, mais o certificado ssl ainda é uma problema, então proxy somente na porta 80 "http" vai obrigar você a liberar a porta 443, que é o acesso https, com isto software como utrasurf furam seu firewall.

A sugestão do asparion, de usar o wpad é uma opção boa, mas se sua rede for pequena melhor configurar na mão mesmo o proxy.

Vamos ao seu problema, talvez por questão didatica você queira ver o proxy transparente funcionando. então vai ai a explicação.

Para o proxy transparente funcionar você precisa do iptables, o chain que permiti isto é o prerouting.

O mini firewall abaixo, tem seguinte caracteristica, força todas as estaçoes passarem pelo proxy, com a regra abaixo

iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-ports 3128

Da nat completo para a estação 192.168.0.1, com a regra abaixo.
iptables -A FORWARD -s 192.168.0.1 -d 0/0 -j ACCEPT

Libera as porta de serviço de internet para o restante da rede, com a regra abaixo.

#Libera varias portas
iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 -m multiport --dport 20,21,25,53,80,110,465,587 -j ACCEPT

#Libera uma porta somente
iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT

Exemplo de uma firewall simples.

vim /etc/init.d/firewall.sh

#!/bin/bash

## Limpas todas as regras
iptables -F
iptables -X
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP <--- nega tudo que for reeenvio

## Prepara o kernek para o roteamento e compatinamento da internet
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/ip_dynaddr

## Carregar módulos básico para o compatinhamento da internet.
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_tables


### regra que permit o proxy transparente
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-ports 3128

## Libera estação 192.168.0.1 geral
iptables -A FORWARD -s 192.168.0.1 -d 0/0 -j ACCEPT

## Liberar porta para rede
iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 -m multiport --dport 20,21,25,53,80,110,465,587 -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 0/0 --dport 443 -j ACCEPT

## Regra padrão da tabela filter
iptables -A FORWARD -t filter -j ACCEPT
iptables -A FORWARD -t filter -j ACCEPT -m state --state ESTABLISHED,RELATED


iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -d 0/0 -o eth+ -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 0/0 -m multiport --dport 20,21,25,53,80,110,443,465,587 -o eth+ -j MASQUERADE
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.0/24 -d 0/0 --dport 443 -o eth+ -j MASQUERADE

:x

# Dar permissão de executação
chmod +x /etc/init.d/firewall.sh

# Executa o firewall
/etc/init.d/firewall.sh




4. Re: Proxy tranparente

marciano brito
jtdest

(usa CentOS)

Enviado em 31/01/2014 - 07:54h

de uma olhada nesse vide-o pode ser que te ajude, nas versões do IE 10 ou 11 a microsoft mudou o modelo de aplicar a politica de seta proxy via gpo , ou vc manda via gpo
na opção de registro , ou usar internet explore AIK, e uma ferramenta para personaliza o navegador, ai vc distribui via gpo como pacote msi install, no meu caso eu
coloque endereço do proxy no navegador do servidor, depois la na gpo fui na opção de registro e aplique na rede, duvidas manda ai.


http://www.youtube.com/watch?v=ODmqH8yTknQ



5. Re: Proxy tranparente

Carlos
carlos0101

(usa Outra)

Enviado em 31/01/2014 - 20:41h

Sim estafanio .
quais são realmente as linhas necessárias para fazer com que os clientes da rede não precisem configurar o proxy , sendo que eu em meu ambiente de trabalho forneço o compartilhamento da internet pelo squid na minha maquina com o sistema operacional debian 6.
Precisa realizar alguma configuração extra no squid para ser trasparente , ou apenas redirecionando a porta 80 para a 3128 no iptables da certo ?
tentei colocar a linha de redirecionamento para a porta 3128 como voce explicou e não funcionou a internet . Tem alguma outra configuração extra no iptables ? Ou apenas a linha de redirecionamento é necessária ?.
Obrigado a todos


6. Re: Proxy tranparente

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 31/01/2014 - 23:13h

São duas coisas que você precisa fazer.






No iptables este regra abaixo é a principal, mas precisa esta no lugar certo do firewall.

### regra que permit o proxy transparente
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-ports 3128

No squid.conf você precisa incluir na tag http_port a opção intercept ou transparent

### rega dentro do squid.conf

http_port 192.168.0.254:3128 intercept
ou
http_port 192.168.0.254:3128 transparent

intecetpt para os squid mais novos, transparent para os squid versões não tão novas .










Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts