donr
(usa Fedora)
Enviado em 04/03/2013 - 10:57h
Ola pessoal.
Ja vi varios artigos relacionados, inclusive foi de grande ajuda, mas ainda estou tendo problemas em configurar meu servidor proxy com duas saídas para a internet.
Tenho varias conexões locais aqui divididas em VLANS e dois links de internet. Consigo redirecionar via scripts determinados IPs para a conexão de saída desejada, mas isso sem passar pelo squid ou firewall, simplesmente faço marcação de pacotes e dou um MASQUERADE pela interface de saída desse link.
Oque estou tentando fazer é com que o pacote saia pela conexão desejada PASSANDO pelo squid, ou seja porta, 3128.
Meu servidor é um slackware com squid 3.1.9
Voi postar as configurações que ja realizei aqui?
Rede interna
eth0 - 192.168.1.0
Internet
eth1 - 205.254.211.17
eth2 - 10.1.0.2
--------------- iproute2 + iptables ------------------
criei um arquivos " /etc/rc.d/rc.iplist " contedo os ips que desejo direcionar para a conexão 2
script /etc/rc.d/rc.Inter2 :
#!bin/bash
##Interfaces de rede
inter2=eth2
net1=eth0
net2=eth1
##Gateways
gwInter2=10.1.0.10
##Lista de ips
iplist=(`cat /etc/rc.d/rc.iplist`)
function start(){
##Marcando pacotes
for ip in $iplist
do
iptables -t mangle -A PREROUTING -s $ip -p tcp --dport 3128 -j MARK --set-mark 1
done
##Adicionando rotas na tabela Inter2
ip route add default via dev $inter2 via $gwInter2 table Inter2
#inserindo regras na tabela Inter2
for ip in $iplist
do
ip rule from $ip fwmark 1 lookup Inter2
done
## Ativando mudanças no iproute2
ip route flush cache
##Ativando NAT para saida de pacotes
iptables -t nat -A POSTROUTING -o $Inter2 -j MASQUERADE
}
function stop(){
##Deletando regras e rotas da tabela Inter2
for ip in $iplist
do
ip rule del fwmark 1 lookup Inter2
done
ip route del default via dev $inter2 via $gwInter2 table Inter2
##Ativando alterações no iproute@
ip route flush cache
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "start|stop|restart"
exit 0
;;
esac
Lembrando que ja criei a tabela Inter2 em /etc/iproute2/rt_table
Até aí tudo bem, nao sai nada pela porta 3128 , mas quando adiciono uma regra marcando pacotes com destino a porta 80 vai que é uma beleza. então creio que essa parte fuinciona.
Bom , no squid em squid.conf fiz o seguinte
acl inter2 src 192.168.1.0
tcp_outgoing_address 10.1.0.2 inter2
http_access allow inter2
e mando um squid -k reconfigure.
###--------------------------------------------------------------#####
o Problema:
eu rodei o script e a alteração no squid, e quando tento acessar uma pagina ele demora e da timeout dizendo que não conseguiu encontrar o gateway da conexão 1 de internet, a padrão. Se eu comento a linha "tcp_outgoing_address" e reinicio o squid a conexão volta , pela conexão 1. ou seja , nada feito de o squid direcionar para a conexão 2. Ja tentei um monte de coisa aqui e nada. Se alguem puder da um help ae , algo que esteja faltando ou que eu esteja errando..., desde ja agradeço =D