Squid Transparente com WPAD?

13. Re: Squid Transparente com WPAD?

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 04/11/2011 - 07:06h

Renato, concordo..
mas quando utilizo as regras acima das liberações,
a navegação interna não funciona!

:/

Hoje vou trabalhar encima de um novo firewall, vou começar literalmente do zero e
ir passo a passo pra saber onde estou errado, é a melhor forma!

Mas obrigado pela dica também, e desculpa a desorganização! :(


  


14. Re: Squid Transparente com WPAD?

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 06/11/2011 - 12:38h

Se a navegação interna não funciona, provavelmente faltou a liberação da porta 80, entende? O bom da política é isso: vc só libera aquilo q deseja.


15. Re: Squid Transparente com WPAD?

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 08/11/2011 - 13:09h

Bom vamos lá, voltando ao tópico..
desculpe pela demora..

Fiz toda configuração novamente, segue abaixo as configurações:

FIREWALL

# Variaveis
PATH=/sbin:/bin:/usr/sbin:/usr/bin
IPTABLES="/sbin/iptables"

# Arquivos com as portas a liberar e a bloquear
PORTSLIB="/etc/firewall/PORTSLIB"
PORTSBLO="/etc/firewall/PORTSBLO"

# Redirecionamento de Pacotes
REDILIST="/etc/firewall/REDILIST"

#IPS com acesso irrestrito
IPSLIBERADOS="/etc/firewall/IPSLIBERADOS"

# Script Firewall
PROGRAMA="/etc/firewall/firewall"

# Interfaces de Rede
WAN=eth0
LAN=eth1
REDE="192.168.0.0/24"
IP_EXTERNO="XXX.XXX.XXX.XXX"

# Servidores
SERVIDORINTERNET="192.168.0.1"
SERVIDORDADOS="192.168.0.2"

# Carregando Módulos
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe ipt_multiport
modprobe iptable_mangle
modprobe ipt_tos
modprobe ipt_limit
modprobe ipt_mark
modprobe ipt_MARK

case "$1" in
start)
echo "CARREGANDO FIREWALL..." ; sleep 1 ;
#Zerando Regras
$IPTABLES -F
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t mangle -F
$IPTABLES -t nat -F
$IPTABLES -X

#Compartilhar a conexão
$IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward

#Politicas Padrão
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A INPUT -i $LAN -j ACCEPT #Habilito o acesso ao servidor de internet para a Rede Interna ($LAN)

echo -n "LIBERANDO PORTAS DE COMUNICAÇÃO..." ; sleep 2 ;
for i in `cat $PORTSLIB`; do
PORTA=`echo $i | cut -d '#' -f 1`
$IPTABLES -A INPUT -p tcp --dport $PORTA -j ACCEPT
$IPTABLES -A INPUT -p udp --dport $PORTA -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport $PORTA -j ACCEPT
$IPTABLES -A FORWARD -p udp --dport $PORTA -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport $PORTA -j ACCEPT
$IPTABLES -A OUTPUT -p udp --sport $PORTA -j ACCEPT
let contporta++ ;
done
echo "[OK] $contporta PORTAS LIBERADAS!"

echo -n "REDIRECIONANDO PORTAS (NAT)..." ;
for i in `cat $REDILIST`; do
IP=`echo $i | cut -d '#' -f 1`
PPRIVADA=`echo $i | cut -d '#' -f 2`
PPUBLICA=`echo $i | cut -d '#' -f 3`
$IPTABLES -t nat -I PREROUTING -i $WAN -p tcp --dport $PPUBLICA -j DNAT --to-destination $IP:$PPRIVADA
done
sleep 2 ;
echo "[OK]"

echo -n "LIBERANDO IPS SEM INTERMÉDIO DO PROXY..." ;
for i in `cat $IPSLIBERADOS `; do
IPLIBERADO=`echo $i | cut -d ';' -f 1`
$IPTABLES -A FORWARD -s $IPLIBERADO -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -s $IPLIBERADO -j RETURN
let contip++ ;
done
echo "[OK] $contip IPS LIBERADOS!"

#Redirecionando trafego de saida da porta 80 para 3128
$IPTABLES -t nat -A PREROUTING -s $REDE -p tcp --dport 80 -j REDIRECT --to-port 3128

echo "FIREWALL CARREGADO!"
echo " "
;;
stop)
echo "DESCARREGANDO FIREWALL..."; sleep 1 ;
$IPTABLES -F
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
$IPTABLES -t mangle -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -Z
echo "FIREWALL DESCARREGADO!"
echo " "

;;
*)
SEG='8'
while [ $SEG != -1 ] ; do
clear;
echo "Argumento não informado ou inválido, por segurança o firewall será INICIADO em $SEG. [^C] para cancelar"
let SEG--;
sleep 1;
done
$PROGRAMA start
exit 1
esac
exit 0



PORTASLIB.TXT
20:21
25
110
465
587
995
1863
53
80
6667
22
3389
8080
3128


saida do iptables -t nat -L

Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere anywhere tcp dpt:http-alt to:192.168.0.1:80
DNAT tcp -- anywhere anywhere tcp dpt:ssh to:192.168.0.1:22
DNAT tcp -- anywhere anywhere tcp dpt:www to:192.168.0.2:80
RETURN tcp -- 192.168.0.10 anywhere tcp dpt:www
RETURN tcp -- 192.168.0.11 anywhere tcp dpt:www
RETURN tcp -- 192.168.0.2 anywhere tcp dpt:www
REDIRECT tcp -- 192.168.0.0/24 anywhere tcp dpt:www redir ports 3128

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination



squid.conf

http_port 3128
visible_hostname PROXY

cache_mem 512 MB
maximum_object_size_in_memory 128 KB
maximum_object_size 900 MB
minimum_object_size 0 KB
memory_replacement_policy lru
cache_replacement_policy lru
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid3 5048 16 256
cache_access_log /var/log/squid3/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
error_directory /usr/share/squid3/errors/Portuguese/

acl manager proto cache_object
acl localhost src 127.0.0.1
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 25
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT
acl redelocal src 192.168.0.0/24

#-
#definições de horarios
acl seg_sex time MTWHF 08:00-18:00
acl sabado time A 08:00-12:00

#-
acl sitesproblematicos url_regex -i "/etc/squid3/sitesproblematicos" # sites não trabalha com o proxy
acl sites_blo url_regex -i "/etc/squid3/sites_blo" # bloqueados
acl down_blo url_regex -i "/etc/squid3/down_blo" # bloqueados
acl palavras_blo dstdom_regex -i "/etc/squid3/palavras_blo" # bloqueadas
acl sites_porno url_regex -i "/etc/squid3/sites_porno" # pornográficos, bloqueados a toda rede
acl ip_blo src "/etc/squid3/ip_blo"
acl blacklist url_regex -i "/etc/squid3/blacklist"
#-
acl sites_lib url_regex -i "/etc/squid3/sites_lib" # liberados
acl down_lib url_regex -i "/etc/squid3/down_lib" # liberados
acl palavras_lib dstdom_regex -i "/etc/squid3/palavras_lib" # liberadas
#-
#endereços de atualizacoes de anti-virus (avast)
acl end_antivirus url_regex -i "/etc/squid3/end_antivirus" # de atualizações do anti-virus avast
#-
#enderecos msn
acl msn url_regex -i "/etc/squid3/msn" # para liberar o acesso ao msn na rede

http_access allow end_antivirus
http_access allow msn

#----------------------------------------------------------------
#AUTENTICACAO SQUID/PROXY
auth_param basic realm .:TELESCRIT:.
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/squid_passwd
acl autenticados proxy_auth REQUIRED
#----------------------------------------------------------------

acl nivel1 proxy_auth "/etc/squid3/nivel1" # 1 (Acesso total, sem restrições)
acl nivel2 proxy_auth "/etc/squid3/nivel2" # 2 (Acesso total, com restrições de download e monitoramento pelo Sarg)
acl nivel3 proxy_auth "/etc/squid3/nivel3" # 3 (Acesso total, sem restrições e monitoramento pelo Sarg)
acl nivel4 proxy_auth "/etc/squid3/nivel4" # 4 (Acesso com restrições de sites, download, palavras e monitoramento pelo Sarg)
acl nivel5 proxy_auth "/etc/squid3/nivel5" # 5 (Acesso com permissões somente a sites pre-definidos, restrições de download e monitoramento pelo Sarg)

#-----------------------------------------------------------------
#ATIVANDO ACLS
http_access allow manager
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow nivel1
http_access allow msn !ip_blo
http_access deny !autenticados
http_access allow sites_lib
http_access deny sites_blo
http_access deny sites_porno
#http_access deny blacklist
http_access deny ip_blo !sites_lib
http_access allow nivel3
http_access allow down_lib
http_access allow palavras_lib
http_access deny down_blo !sites_lib
http_access allow nivel2
http_access deny sites_blo seg_sex
http_access deny sites_blo sabado
http_access deny palavras_blo
http_access allow nivel4
http_access allow nivel5
http_access allow localhost
http_access allow redelocal
http_access deny all

refresh_pattern avast.com/.*\.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims
refresh_pattern download973.avast.com/.*\.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims
refresh_pattern download969.avast.com/.*\.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims
refresh_pattern 85.14.149.239/.*\.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims
refresh_pattern 74.86.232.46/.*\.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims



OQUE ACONTECE?

Bom, ao navegar nessa configuração toda passada acima ele não navega, da a seguinte mensagem de erro:

The following error was encountered while trying to retrieve the URL: /

URL inválida

Some aspect of the requested URL is incorrect.

Some possible problems are:

•Protocolo de acesso incorreto ou faltando (deve ser “http://” ou similar)

•Faltou o hostname

•Illegal double-escape in the URL-Path

•Hostname com caracter inválido; não são permitidos underscores.

Your cache administrator is webmaster.


Se coloco o squid transparente ( http_port 3128 transparent )
ele navega normal não pedindo usuario e senha, isso tanto com as propriedades
do navegador configuradas para pegar as configurações automaticamente ou não,
já se defino o proxy manualmente nas propriedades do navegador ele
exige usuario e senha para navegar.

Pelos acontecidos imagino que seja alguma configuração do squid, procede?

Alguem tem alguma sugestão?

Pode ser problema nesse 'squid3'? (comecei usar ele agora)

Obrigado ;)


16. Re: Squid Transparente com WPAD?

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 08/11/2011 - 13:22h

Tente comentar essa seguinte linha:


http_access deny !autenticados


E veja se dá certo.


17. Re: Squid Transparente com WPAD?

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 08/11/2011 - 15:16h

Renato, mesmo problema.

Percebi outra coisa agora, tenho uma lista de ips 'desbloqueados', no caso que passam sem
identificação no proxy, se nesses terminais que utiliza esses determinados ips
eu configuro o navegador para pegar as configurações automaticamente,
eles pedem autenticação, será que não é algum erro na linha de redirecionamento?




18. Re: Squid Transparente com WPAD?

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 08/11/2011 - 15:50h

Parei o serviço do squid3 e rodei o serviço do squid,
mesmo erro nos dois squid's \=

definitivamente, não sei aonde pode estar o erro.


19. Re: Squid Transparente com WPAD?

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 10/11/2011 - 17:05h

Ainda continuo com o problema, estou atrás mas esta dificil.. =\
não direcionei a porta 80 p/ 3128 ainda, ou seja, o proxy esta 'burlavel'..
se faço o direcionamento, para de funcionar a autenticação 'automatica' e sou obrigado
a configurar manualmente os navegadores!
:/


20. Re: Squid Transparente com WPAD?

Luis Vitorio
vitorioluis

(usa Debian)

Enviado em 10/11/2011 - 18:32h

http://www.vivaolinux.com.br/dica/Carregando-proxy-automatico-no-script-de-Logon/

segue uma possível solução para carregar automatico....
quanto ao firewall eu aprendi que primeiro bloqueia tudo e depois libera somente as porta que vai usar...

http://www.vivaolinux.com.br/dica/Carregando-proxy-automatico-no-script-de-Logon/


21. Re: Squid Transparente com WPAD?

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 14/11/2011 - 15:51h

vitorioluis

Obrigado cara, mas eu acho essa solução 'inviavel'.. pois ao carregar o script
o proxy ficara definido fixo no navegador e não era bem isso que eu desejava;

Mas mesmo assim obrigado, sigo tentando resolver o problema..


22. Re: Squid Transparente com WPAD?

Luis Vitorio
vitorioluis

(usa Debian)

Enviado em 14/11/2011 - 23:34h

Falow...


23. Re: Squid Transparente com WPAD?

davi
tosko

(usa Debian)

Enviado em 29/02/2012 - 12:38h

Olá, não sei se vc ja resolveu teu problema, mas de qualquer forma deixa eu fazer um comentário

bem pelo que eu entendi o teu problema é simples vc esta com um erro de lógica no esquema ai,

quando vc marca o navegador para pegar as configurações automaticas de proxy para que ele pegue atraves do arquivo wpad.dat é como se vc marcasse la no navegador para adicionar as configurações manualmente, ou seja a navegação do cliente sera direcionada para o servidor com a porta 3128 ou seja la no seu servidor chegava dos clientes um pacote destinado a porta 3128 portanto se vc for no iptables e bloquear o INPUT da 3128 ele não vai navegar neste esquema, portanto se o cliente espertinho for lá e desmarcar a opção de "detectar automaticamente as configurações de proxy" logicamente ele vai navegar não ira passar pelo proxy, para isto basta vc no seu servidor bloquear o FORWARD da 80, deixando apenas o INPUT da 3128 entende? só que tem um porem o firefox não funciona direito com este wpad, até onde eu vi ele precisa que o DNS esteje configurado tambem, para ele pegar a configuração, eu mesmo aqui ainda não consegui fazer pro firefox funcionar. esta configuração do wpad até o momento é a melhor que eu achei pois ela permite a autenticação coisa que o redirecionamento com proxy transparente não precisa, em modo geral para sanar todos problemas é só bloquear o INPUT da porta 80 que todos obrigatoriamente terão que passar pelo proxy, ou seja terão que deixar ativado a opção "detectar a configuração de pxory automaticamente" caso não esteje marcado ele não navega.

espero ter sido claro e ter ajudado em algo. caso ja esteje tudo 100% ai pra ti manda as confis pra mim por favor eu to na luta aqui pra fazer uma solução wpad aprimorada.


valeu

davi.fiusa@hotmail.com



24. Re: Squid Transparente com WPAD?

VICTOR FELIPE DOLCE CARDOSO
felipedc

(usa Debian)

Enviado em 29/02/2012 - 16:02h

"Tosko"
Cara, muito boa tua explicação e faz todo sentido mesmo.. não tinha pensado nisso!
Pois bem, vou realizar os testes aqui e volto a comentar sobre o assunto..
Por enquanto em algumas máquinas estou utilizando esse sistema do wpad, porém em outras (com funcionários mais avançados coloquei manual e redirecionei todo trafego da porta 80 pra 3128, impedindo a navegação por 'fora').
Mas vou passa essa sugestão a codigo e verificar, mas concerteza vai da certo!

Muito obrigado, em relação ao firefox, aqui todos terminais utilizam-se do IE.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts