Squid - Proxy Transparente [RESOLVIDO]

1. Squid - Proxy Transparente [RESOLVIDO]

Silvia
sill

(usa Debian)

Enviado em 17/02/2009 - 14:55h

Boa tarde à todos,

Primeiramente parabéns pelo fórum, tenho aprendido muito com vocês.

Bom, utilizo Debian Etch 4 e estou montando aqui na empresa um servidor web, com proxy squid 2.6

Seguindo diversos tutoriais, eu consegui instalar e configurar meu squid. Quando eu "estarto" não dá nenhuma mensagem de erro, porém ainda não consegui fazer com que as máquinas se conectem através do meu proxy.

Vou postar minhas configurações para que possam me corrigir, pois não sei onde estou errando.

eth0 (internet)
eth1 (rede local)

***** MEU SQUID.CONF ********

http_port 3128 transparent

hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

cache_mem 8 MB #memória ram disponibilizado para o proxy
cache_swap_low 90
cache_swap_high 95
cache_mgr meu_email@minha_empresa.com.br
cache_dir ufs /var/spool/squid 100 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_effective_user (usuario_server)
cache_effective_group (usuario_server)
maximum_object_size 4096 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 8 KB
error_directory /usr/share/squid/errors/Portuguese
coredump_dir /var/spool/squid
visible_hostname squid.minha_empresa.com.br

hosts_file /etc/hosts

#Padrao de atualização do cache
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

#Libera o squid para ser utilizado por todos os ips
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object

#Regra localhost
acl localhost src 127.0.0.1/255.255.255.255

#Regra para a rede local
acl redelocal src 192.168.0.0/255.255.0.0

#acl to_localhost dst 127.0.0.0/8

#Especificaçao das portas seguras
acl SSL_ports port 443 563 10000 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 1000 # 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 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

#Configuracao de permissao de acesso
#Especificando o acesso a urls com certas palavras no dominio
#acl palavraschave dstdom_regex -i "/etc/squid/palavras.squid"

#Especificando o acesso a certos dominios
#acl dominios dstdomain -i "/etc/squid/dominios.squid"

#Especificando o acesso a certos tipos de arquivos
#acl arquivos url_regex -i "/etc/squid/arquivos.squid"

#Configuracao da permissao de acesso
#http_access deny palavraschave
#http_access deny dominios
#http_access deny arquivos

#Regras basicas para o gerenciamento do proxy
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge

#Proibe o acesso fora das portas listadas
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

#Permite o acesso do localhost e de rede local ao proxy
http_access allow localhost
http_access allow redelocal
http_access deny all

http_reply_access allow all
icp_access allow all

***** MEU IPTABLES *********

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

****** MINHA DÚVIDAS *****

Por enquanto eu configurei de modo que funcione a internet, depois que eu bloquear alguns site nas minhas ACL'S eu preciso configurar mais alguma coisa no IPTABLES??? Pergunto pelo fato do proxy ser "transparente" (desculpem a ignorância mas sou nova e li pouco sobre iptables)

Desde já agradeço a toda e qualquer ajuda!!


  


2. regra de iptables errada

Richard Andrade
richardandrade

(usa Debian)

Enviado em 17/02/2009 - 15:01h

amigo a sua regra de iptables está errada a certa ae:

#iptables -t nat -A POSTROUTING -p tcp --dport 80 -o interface_de_saida -j MASQUERADE

lembrando que a interface de saida caso voce utilize pppoe será ppp0.

valeu e abraço.


3. Re: Squid - Proxy Transparente [RESOLVIDO]

Rafael
rrafael

(usa Debian)

Enviado em 17/02/2009 - 15:02h

faltou uma regra no firewall, a linha e para roteamento

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


4. Re: Squid - Proxy Transparente [RESOLVIDO]

Rafael
rrafael

(usa Debian)

Enviado em 17/02/2009 - 15:04h

A regra certa e:

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


5. Re: Squid - Proxy Transparente [RESOLVIDO]

Silvia
sill

(usa Debian)

Enviado em 17/02/2009 - 15:23h

Obrigada gente, vou testar e já digo se deu certo!!

PS: Sou menina rs


6. Re: Squid - Proxy Transparente [RESOLVIDO]

Rafael
rrafael

(usa Debian)

Enviado em 17/02/2009 - 15:38h

Seguinte uma vez configurado o firewall todos os bloqueios de paginas serao feitos no squid -> acl

blz.


7. Re: Squid - Proxy Transparente [RESOLVIDO]

Silvia
sill

(usa Debian)

Enviado em 18/02/2009 - 09:05h

Bom dia pessoal,

desculpe a demora ....

bom não deu certo, eu fiz tudo que vocês me indicaram, agora eu penso que pode ser algo na minha configuração das placas eth0 e eth1.

o ip fornecido pelo speedy é da classe 200... e os ips que utilizamos na rede local é da classe 192... qual a configuração certa que devo colocar nas placas?

Mais uma vez obrigada!


8. Re: Squid - Proxy Transparente [RESOLVIDO]

Rafael
rrafael

(usa Debian)

Enviado em 18/02/2009 - 12:51h

Regras de Firewall BASICA ajuste se voce quiser mas se der copiar e colar funciona..
-------------------------------------------------------------------------
#!/bin/bash
# REGRAS DE FIREWALL PROXY ;SQUID ;APACHE ;SARG ;DHCP3-SERVER ;BIND
#########################################################################
#
echo
echo "=========================================="
echo "| :: SETTING IPTABLES'S CONFIGURATION :: |"
echo "=========================================="
#
EXTERNAL=eth0
INTERNAL=eth1
IP=10.10.1.0/28
#
flush_rules()
{
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -Z
}
#
add_rules()
{
######################Habilitando o roteamento
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Roteamento .........................[ OK ]"
#
#
######################CARREGANDO MODULOS
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_state
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ipt_multiport
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_tos
/sbin/modprobe ipt_limit
echo "Loading iptables's modules .........[ OK ]"
#
######################Liberacao do Loopback
iptables -A INPUT -i lo -j ACCEPT
#
######################Ativa mascaramento de saida
iptables -A POSTROUTING -t nat -o $EXTERNAL -j MASQUERADE
#
######################REDIRECIONANDO PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i $INTERNAL -p tcp --dport 80 -j REDIRECT --to-port 3128
#
####################DNS
iptables -I POSTROUTING -j MASQUERADE -t nat -s $IP -p udp --dport 53 -o $EXTERNAL
#
#####################Mascaramento
iptables -t nat -A POSTROUTING -s $IP -d 0/0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $IP -o $EXTERNAL -j MASQUERADE
#
####################Proteção contra ping da morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#
######################Protege contra pacotes danificados
#Portscanners, Ping of Death, ataques DoS, Syb-flood e Etc
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
#
#######################Allow all connections OUT and only related ones IN
iptables -A FORWARD -i $EXTERNAL -o $INTERNAL -m state --state ESTABLISHED,RELATED -j ACCEPT
#
#Fecha portas
iptables -A INPUT -i $EXTERNAL -m state --state ! ESTABLISHED,RELATED -j DROP
#
#Ponto Chave do firewall! Se nao entrar em nenhuma regra acima rejeita tudo!
iptables -A INPUT -i $EXTERNAL -p tcp --syn -j DROP
#
# Mesmo assim fechar todas as portas abaixo de 32000
iptables -A INPUT -i $EXTERNAL -p tcp --dport :32000 -j DROP
#
}
case $1 in
start)
echo -n Starting Firewall...
add_rules
echo "Done"
;;
stop)
echo -n Stoping Firewall...
flush_rules
echo "Done"
;;
restart)
echo Restarting Firewall...
flush_rules
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
echo "Cleaning all rules .................[ OK ]"
add_rules
echo "Done"
;;
status)
echo "============================ Firewall rules:"
iptables -L -n
echo "============================ Masquerade tables:"
iptables -t nat -L -n
echo "============================ Mangle table:"
iptables -t mangle -L -n
;;
*)
echo Usar: "$0 { status | start | stop | restart }"
;;
esac
-------------------------------------------------------------------

Agora e so voce fazer esses pacos,

nano firewall
copia e cola tudo.
salva,

chmod 744 firewall

agora e so voce fazer isso
/local onde esta o arquivo firewall/firewall start

Pronto.


9. Re: Squid - Proxy Transparente [RESOLVIDO]

Silvia
sill

(usa Debian)

Enviado em 18/02/2009 - 13:36h

Me desculpa eu demorar pra responder, não pensem que eu sou desinteressada, mas sou a única pessoa na empresa responsável por T.I, então meu tempo as vezes é curto.

Vou copiar o script e assim q der eu posto o resultado!

Obrigada


10. Re: Squid - Proxy Transparente [RESOLVIDO]

Richard Andrade
richardandrade

(usa Debian)

Enviado em 18/02/2009 - 14:45h

sill a banda larga é pppoe? se for a interface de saída nao é eth0 nem eth1 é ppp0 ....

opniao: copiar scripts acho ruim... afinal nao é suas configurações que você está impondo e sim de alguém que fez... se for copiar... leia bem o script antes para nao ser pega de surpresa.

valeu e abraço.


11. Re: Squid - Proxy Transparente [RESOLVIDO]

Silvia
sill

(usa Debian)

Enviado em 19/02/2009 - 16:39h

Boa tarde amigos,

Minha conexão é mesmo pppoe (acho que preciso estudar mais sobre redes rs)

Bom então tenho que mudar o redirecionamento do proxy para o squid da seguinte maneira:

#iptables -t nat -A POSTROUTING -p tcp --dport 80 -o ppp0 -j MASQUERADE

está correto??

e o restante do script que o rafael me mandou, posso deixar?

Gente, desculpa mesmo...estou fazendo o possível para entender.

Obrigada!


12. Corrigindo minha frase

Silvia
sill

(usa Debian)

Enviado em 19/02/2009 - 16:41h

"...redirecionamento das requisições para o proxy squid..."



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts