Squid com Proxy Transparente !!!! Não Funciona !!!!!

Iniciado por mp_cesar, 22 de Outubro de 2008, 09:47

tópico anterior - próximo tópico

mp_cesar

Olá, tenho um servidor ubuntu intalado (8.04 LTS) com a rede funcionando certinho com 10 máquinas WINXP, no entanto, estou tentanto fazer com que o tráfego da internet passe pelo squid 2.6 ESTABLE, mas ele só funciona quando coloco o IP do servidor do browser, preciso travar as máquinas urgente para evitar o acesso a sites indesejados. Já tenho toda a configuração feita, mas o transparente não funciona.
Tenho duas placas de rede ip fixo, ath0 (placa de rede wireless 192.168.0.101) e eth0 (placa de rede cabeada - 192.168.0.100). A internet está funcionando diretamente ligada a um roteador wireless D-LINK 624. ME AJUDEM POR FAVOR !!!!!!

Já utilizei as regras:
# no arquivo etc/bootmisc.sh
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

# no arquivo etc/iptables.up.rules
-A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
-A POSTROUTING -o eth0 -j MASQUERADE

MEU squid.conf

http_port 192.168.0.100:3128 transparent
visible_hostname Servidor
error_directory /usr/share/squid/errors/Portuguese/

# Configurao do cache
cache_mem 32 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256

# Localizao do log de acessos do Squid
cache_access_log /var/log/squid/access.log

refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
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 1025-65535 # unregistered ports
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 purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# DEFINE FORMATOS DE ARQUIVOS DE RISCO
acl video urlpath_regex .wma$ .asf$ .mov$ mpg$ .mpeg$ .avi$
acl audio urlpath_regex .mp3$ .wav$ .mid$
acl risco urlpath_regex .ini$ .com$ .bat$ .scr$ .rpm$ .inf$ .lzx$ .vbs$

# Filtros por palavras e por dominios
acl proibidos dstdom_regex "/etc/squid/proibidos"
http_access deny proibidos

# Libera para a rede local
acl redelocal src 192.168.0.0/255.255.255.0
http_access allow localhost
http_access allow redelocal

# Bloqueia acessos externos
http_access deny all

http_access allow redelocal


wesleymutz

amigo o meu esta funcionando assim... caso lhe interesse...ele esta funcionando corretamente, porem eu tenho que dar uma arrumada nele...tem ate um controle de banda meio fajuto...rs
espero ter ajudado.

#!/bin/bash

echo "1" > /proc/sys/net/ipv4/ip_forward

# Limpando as tabelas
iptables -F
iptables -t nat -F
iptables -t mangle -F

#somente o compartilhamento

iptables -t nat -A POSTROUTING -j MASQUERADE

#redirecionando para porta 3128

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

###############################################################

####meu squid #####

http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

maximum_object_size_in_memory 64 KB

maximum_object_size 16 MB
minimum_object_size 0 KB

cache_swap_low 90
cache_swap_high 95

cache_dir ufs /var/spool/squid 512 16 256

cache_access_log /var/log/squid/access.log
#Nome da sua Maquina
visible_hostname meu server
#
# FTP anonimo:
#ftp_user anonymous@anonymous.com.br

refresh_pattern ^ftp:  15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern .  15 20% 2280

# Lista de sites proibidos para a rede toda

acl atualizacoes dstdom_regex "/etc/squid/atualizacoes"

http_access deny atualizacoes

#liberados com excessoes

acl liberado arp "/etc/squid/liberado"

http_access allow liberado !atualizacoes

#mac proibidos

acl mac_proibidos arp "/etc/squid/mac_proibidos"

http_access deny mac_proibidos

#bloqueio por  extensao temporaria - controle 2

#acl hora time 18:00-23:59

#acl negar_ext urlpath_regex  .mpg$  .avi$ .bat$ .scr$ .aff$ .rmvb$ :lol:
#acl negar_ext2 url_regex -i  .mp3 .gz .avi .mpeg .mpg .qt .ram

#http_access deny negar_ext
#http_access deny negar_ext2

#Minha Rede
acl redelocal src 192.168.0.0/24
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl SSL_ports port 1863 # GAIM MSN
acl SSL_ports port 25533 # RADIO UOL
acl SSL_ports port 5190 # GAIM ICQ
acl Safe_ports port 80  # http
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 3456 # ReceitaNET
acl Safe_ports port 70  # gopher
acl Safe_ports port 210  # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280  # http-mgmt
acl Safe_ports port 1863  # GAIM MSN
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 purge method PURGE

http_access allow redelocal
http_access allow manager localhost
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 localhost
http_access deny all

#controle temporario para teste

#acl hora time 18:00-23:59

acl rede1 src 192.168.0.0/255.255.255.0

#acl controle2 url_regex -i .zip .exe .mp3 .gz .rar .avi .wmv .mpeg .mpg .gt .ram .rm .rmj .iso .raw .wav .rmvb .mpg$ .avi$ .bat$ .scr$ .aff$ :lol:

#http_access deny controle2

#configuracao do pool

delay_pools 1
delay_class 1 1
delay_parameters 1 60000/60000
delay_access 1 allow rede1
Linux user 494430

gustavo andrade

deixa ver se eu entendi, teu proxy tha funcionando perfeitamente neh?
só que ele so funciona se thu colocar o proxy no navegador certo?
e se for um espertinho la ele tira o proxy e navega em todos os sites neh?
isso tha acontecendo é pq vc tem bloquear a porta 80 da placa de rede local.

Se for isso mesmo, te aconselho a trabalhar sem proxy trasnparente,
tu pergunta, como assim?
faz assim ho thu coloca o proxy manualmente em todas as maquinas, MAS ANTES, faz o seguinte:
acessa o diterio: etc/init.d/bootmisc.sh
no final do arquivo bootmisc.sh tu vai bloquear a porta 80 é ela que faz com que os usuarios que tiram o proxy do navegador acessem todo o conteudo.
voltando: no final do aqurivo bootmisc.sh thu coloca essa linha abaixo

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

thu vai ter que ver qual a thu placa de rede da conexao local no meu caso a minha e eth1 como tha no exemplo acima, e a porta eu te aconselho usar a 3128 que é a padrao do squid, se tu quiser usar outra pode usar,
PRONTO!!!! depois que tu colocar essa linha no final do arquivo é so salvar ele
e dar um restart no squid
etc/init.d/squid restart
e depois coloca o endereço do proxy na maquinas clientes, se alguem tirar o proxy, nao vai poder se conectar a rede.
entao é isso, espero ter ajudado
se nao conseguir me manda um e-mail,
ou respode aki no topico     :)