Proxy transparente com squid 2.7 stable3

1. Proxy transparente com squid 2.7 stable3

Welington Paiva Mendonça
wp3m5

(usa Debian)

Enviado em 20/07/2009 - 18:30h

Meus amigos do VOL, estou levando uma surra do squid quando o assunto é transparent.

não consigo fazer como que ele funcione modo transparent. segue abaixo mihas configurações:
http_pot 3128 transparent

................................
esse é conteúdo meu arquivo de firewall.sh
a eth1 e a placa que fica de cara pra net.

o mesmo esta salvo dentro /etc/init.d

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -Z
iptables -X
iptables -t nat -F

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.4.0/24 -p udp --dport 80 -j REDIRECT --to-port 3128




  


2. Re: Proxy transparente com squid 2.7 stable3

Rafael Arcanjo
ST. RaLF

(usa Arch Linux)

Enviado em 20/07/2009 - 19:00h

Tente colocar as regras de REDIRECT antes da de MASQUERADE.


3. Re: Proxy transparente com squid 2.7 stable3

Julian Castaman
maninhx

(usa Slackware)

Enviado em 20/07/2009 - 19:51h

o teu proxy ta funcionando manualmente, você configura ele no navegador e funciona blz, só no modo transparente não funciona?

http_pot 3128 transparent essa linha falta a letra "r".
http_port 3128 transparent




4. Re: Proxy transparente com squid 2.7 stable3

Emerson Cosmo
emerson.cosmo

(usa Debian)

Enviado em 21/07/2009 - 09:04h

Cara,
Para facilitar a sua vida, porquer você, não trabalha com arquivos separados, primeiro você monta um arquivo squid.conf editando tudo que precisa e realiza o teste, depois crie um arquivo firewall.sh com as regras do iptables, assim fica mais organizado e você consegue ir no arquivo que esta com problemas.
mais o seu http está com problema de digitação (http_pot 3128 transparent) o correto é http_port ip_de_saida:3128 transparent
testa ai caso der certo, de um retorno.


5. Re: Proxy transparente com squid 2.7 stable3

Welington Paiva Mendonça
wp3m5

(usa Debian)

Enviado em 21/07/2009 - 17:40h

Não funcionou não mano,
acrescentando o IP na frente da porta...



6. Re: Proxy transparente com squid 2.7 stable3

Emerson Cosmo
emerson.cosmo

(usa Debian)

Enviado em 21/07/2009 - 17:44h

posta ai seu script


7. Script

Welington Paiva Mendonça
wp3m5

(usa Debian)

Enviado em 21/07/2009 - 18:38h

Estou usando o DEBIAN 5.0

Eis abaixo o conteúdo do meu script...


#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -Z
iptables -X
iptables -t nat -F

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.4.0/24 -p udp --dport 80 -j REDIRECT --to-port 3128



8. Re: Proxy transparente com squid 2.7 stable3

Emerson Cosmo
emerson.cosmo

(usa Debian)

Enviado em 22/07/2009 - 08:43h

vc está confundindo IPTABLES com SQUID.
segue abaixo meu script de squid, você pode notar que não tem nenhum iptables na regra.
qualquer coisa ou duvida tem um video no youtube que pode ajudar um pouco você entender squid.

#Parametros de autenticacao

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 1 hours
auth_param basic casesensitive on

#regra do SQUID
httpd_suppress_version_string on
http_port 192.168.5.1:3128
visible_hostname pandora.sgof.com.br
cache_dir ufs /var/cache/squid 512 128 256
access_log /var/log/squid/access.log squid

cache_mem 16 MB
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl SSL_ports port 443 563
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 79
acl Safe_ports port 210
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl Safe_ports port 901
acl Safe_ports port 1025-65535

acl CONNECT method CONNECT

acl redesgof src 192.168.5.0/24
acl all src 192.168.5.0/24
acl auth proxy_auth REQUERED
acl parte2 time MTWHF 12:00-13:30
acl parte3 time MTWHF 17:30-19:00
acl parte1 time MTWHF 06:00-09:00
acl freesite url_regex -i "/etc/squid/sites/site_free"
acl bloqueio url_regex -i "/etc/squid/sites/sites_block"
acl listblock dstdom_regex "/etc/squid/sites/listblock"
acl ip_liberados src "/etc/squid/sites/ip_liberados"
acl msn_bloqueio url_regex -i "/etc/squid/sites/msn_bloqueio"
acl msn_block dstdom_regex "/etc/squid/sites/msn_bloqueio"

http_access allow ip_liberados
http_access allow !Safe_ports
http_access allow parte1 freesite
http_access allow parte2 freesite
http_access allow parte3 freesite
http_access deny redesgof bloqueio
http_access deny listblock
http_access deny msn_bloqueio
http_access deny msn_block
http_access allow redesgof auth
http_access allow redesgof
http_access deny all redesgof




9. Re: Proxy transparente com squid 2.7 stable3

NetoSilva
alnetosilva

(usa Debian)

Enviado em 15/04/2011 - 18:42h

cara tb to com o mesmo problema. já nem sei o que fazer

segue o meu script firewall

#!/bin/bash
# /etc/init.d/firewall
#Para que as regras abaixo sejam ativadas no boot do SO (no nosso caso o Debian), torne-o executável digitando o comando abaixo
#chmod +x /etc/init.d/firewall
#em seguida crie um link simbólico no arquivo '/etc/rc5.d' digitando no console como root o seguinte:
#cd /etc/rc5.d/
#ln -s ../etc/init.d/firewall S21firewall
#onde 'S' indica o parametro 'start' e 21 indica a ordem que deve iniciar com relação aos outros serviços iniciados no boot
#podendo ser alterado conforme o que vc achar melhor.

#placa de rede da internet
ifinternet="eth0"

#placa de rede interna
iflocal="eth1"

iniciar(){
#compartilha a conexão com a internet
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
echo "compartilhamento ativado"

#redireciona as solicitações http feitas na interface local para a porta 3128 ativando o proxy transparente
iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "proxy transparente ativado"

#Permite entrada proveniente da internet
#Descomente abaixo para receber conexões SSH através da internet
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#Descomente abaixo para receber conexões DNS da internet
#iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --dport 53 -j ACCEPT

#Descomente abaixo para receber conexões HTTP e HTTPS da internet(liberar acesso a diretorios do apache)
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -P tcp --dport 443 -j ACCEPT

#permite conexões na rede local permitindo todas as requisições
iptables -A INPUT -i $iflocal -j ACCEPT

#regras básicas de firewall
#aceita conexões na interface de loopback que auxilia em recursos do sistema
iptables -A INPUT -i lo -j ACCEPT

#Limita as respostas a pings à uma por segundo
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#ignora pings descomente para ignorar totalmente
#iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#Ativa a proteção contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter

#bloqueia a abertura de conexão que não tenha passado através de uma das regras acima
iptables -A INPUT -p tcp --syn -j DROP

#faz com que o firewall permita pacotes de conexões iniciadas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Bloquea as portas udp de 0 a 1023
iptables -A INPUT -p udp --dport 0:1023 -j DROP

echo "Regras de compartilhamento e firewall ativados"
}
parar(){
iptables -F
iptables -F -t nat
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "Regras de firewall e compartilhamento desativados"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar;;
*) echo "use parametros start para iniciar os serviços ou stop para parar-los!"
esac


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

#Arquivo de configuração do squid /etc/squid/squid.conf
#este arquivo segue o seguinte padrão um comentario acima e abaixo
#a função a ser executada pelo squid

#Define a porta em que o squid opera
http_port 3128 transparent

#O nome do host o mesmo que nome definido nas onfigurações da rede digite "hostname" na linha de comando para saber
visible_hostname servernet

#Idioma das msg de erro
error_directory /usr/share/squid/errors/Portuguese


#Define o tamanho total de memória que deve ser reservada para o cache do squid
#para um server dedicado o recomendavel é reservar 1/3 da memória total do sistema
#sendo assim no caso de um servidor com 2GB de memória reservando 1/3 temos 682,66MB = 683 MB
cache_mem 64 MB

#Define o tamanho máximo de um arquivo para que ele possa ser armazenado no cache da RAM
maximum_object_size_in_memory 64 KB

#Define o tamanho máximo de um arquivo em cache no HD, para o cache em questão vou deixar em 1GB
#para que possa ser armazenado as atualizações de sistemas operacionais e arquivos grandes que
#possam ser baixados para vários computadores
maximum_object_size 1024 MB

#Tamanho mínimo do objeto no disco. Como a conexão no caso é muuuuuito lenta vou deixar em 0
#para armazenar tudo!
minimum_object_size 0 KB

#Porcentagem minima para armazenamento em cache de 90%
cache_swap_low 90

#Porcentagem de 95% para começar a limpeza do cache e retornar abaixo da minima(90%)
cache_swap_high 95

#Diretorio, tamanho em MB, n de pastas e n de subpastas onde serão armazenados os arquivos do cache
cache_dir ufs /var/spool/squid 10240 16 256

#Diretório dos logs do squid
cache_access_log /var/log/squid/access.log

#Autenticação
auth_param basic realm Squid
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
acl autenticados proxy_auth REQUIRED

#usuarios com acesso total a rede
acl livres proxy_auth "/etc/squid/livres"
http_access allow livres

#Sites liberados do proxy
acl sitesliberados url_regex -i "/etc/squid/siteslivres"
http_access allow sitesliberados

#Define uma lista de endereços contendo todos os ips possiveis
acl all src 0.0.0.0/0.0.0.0

#Mais regras para compressão de arquivos dos tipos listados abaixo
refresh_pattern -i arj$ 0 50% 999999
refresh_pattern -i exe$ 0 50% 999999
refresh_pattern -i zip$ 0 50% 999999
refresh_pattern -i msi$ 0 50% 999999
refresh_pattern -i rar$ 0 50% 999999
refresh_pattern -i pdf$ 0 50% 999999
refresh_pattern -i tar$ 0 50% 999999
refresh_pattern -i tar.gz$ 0 50% 999999
refresh_pattern -i tar.bz2$ 0 50% 999999
refresh_pattern -i tgz$ 0 50% 999999
refresh_pattern -i rpm$ 0 50% 999999
refresh_pattern -i deb$ 0 50% 999999
refresh_pattern -i iso$ 0 50% 999999
refresh_pattern -i bin$ 0 50% 999999
refresh_pattern -i cab$ 0 50% 999999
refresh_pattern -i dll$ 0 50% 999999
refresh_pattern -i bz2$ 0 50% 999999
refresh_pattern -i 7z$ 0 50% 999999
refresh_pattern -i jpeg$ 0 50% 999999
refresh_pattern -i gif$ 0 50% 999999
refresh_pattern -i jpg$ 0 50% 999999
refresh_pattern -i bmp$ 0 50% 999999
refresh_pattern -i png$ 0 50% 999999
refresh_pattern -i gz$ 0 50% 999999
refresh_pattern -i gzip$ 0 50% 999999
refresh_pattern -i bzip2$ 0 50% 999999
refresh_pattern -i flv$ 0 50% 999999

refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
#refresh_pattern -i (/cgi-bin/|\?) 0 0% 0


#Declaração das portas rastreadas
acl SSL_ports port 443 563 82
acl Safe_ports port 80 # http
acl Safe_ports port 8080 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 22 # ssh
acl Safe_ports port 23 # telnet
acl Safe_ports port 25 # smtp
acl Safe_ports port 53 # dns
acl Safe_ports port 110 # postfix
acl Safe_ports port 143 # imap
acl Safe_ports port 389 # ldap
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 445 # Navegação entre compartilhamentos
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 137 138 139 # Compartilhamento de arquivos
acl Safe_ports port 1025-6000 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemakr
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

#Bloqueando as portas altas
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#Sites de Malware
acl malware url_regex -i "/etc/squid/malware"

#Protecao contra Conficker
acl malware2 url_regex -i "/etc/squid/conficker"

#Extensões bloqueadas
acl extensoes url_regex -i "/etc/squid/extensoes"

#Sites Bloqueados
acl bloqueados url_regex -i "/etc/squid/bloqueados"
acl downloads url_regex -i "/etc/squid/downloads"
acl lojavirtual url_regex -i "/etc/squid/lojavirtual"

#Banner MSN
acl ADSAdClient url_regex ADSAdClient31.dll
http_access deny ADSAdClient
deny_info http://192.168.0.1/banner/inova.jpg ADSAdClient

#Banner Orkut
acl ork.users url_regex ork.users
http_access deny ork.users
deny_info http://192.168.0.1/banner/inova2.jpg ork.users

#Bloqueios
http_access deny bloqueados
http_access deny downloads
http_access deny lojavirtual
http_access deny extensoes
http_access deny malware2
http_access deny malware

#Libera o acesso a internet para os usuarios autenticados
http_access allow autenticados

#Nega acesso para todos os ips possíveis
http_access deny all


10. Re: Proxy transparente com squid 2.7 stable3

Ivo Becker
ivo.becker

(usa Debian)

Enviado em 16/04/2011 - 13:37h

Debian 5 né, utilize o rc.local para seu firewall...
use somente:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -j MASQUERADE

e no squid:
http_port 3128 transparent

pergunta: qual motivo de estar redirecionando portas udp para o squid ?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts