Olá amigos, venho desta vez tentar ajudar muitos que estão com problemas
em implantar o sistema de webproxy em pararelo com o MikroTik, pois eu tinha
uma necessidade, que era a seguinte, redirecionar as requisições de http[TCP80]
vindas dos clientes até o MikroTik para o Linux com Squid assim podendo conter
os ips dos clientes e não somente o do MikroTik no access.log do Squid.
Suponhamos que você já tenha configurado a sua rede junto ao MikroTik e precise
apenas incluir o seu webproxy(ubuntu server 8.04lts meu caso), faça o seguinte:
1º Crie um endereço de ip isolado para o seu MikroTik que fique na mesma faixa do seu webproxy por exemplo:
MikroTik
/ip address add address=10.100.100.1/30 broadcast=10.100.100.3 comment=proxy disabled=no interface=proxy network=10.100.100.0
Linux
$ sudo ifconfig eth0 10.100.100.2 netmask 255.255.255.252 up
$ sudo route add default gw 10.100.100.1
2º Em seguida compartilhe a conexão de internet no Linux:
$ sudo modprobe iptable_nat
$ sudo iptables -A POSTROUTING -t nat -s 192.168.100.0/24 -o eth0 -j MASQUERADE
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
3º Em seguida compartilhe a conexão de internet no MikroTik para o seu webproxy:
/ip firewall nat add action=masquerade chain=srcnat comment="masquerade para servidor proxy" disabled=no out-interface=link src-address=10.100.100.2
4º Crie uma regra de marcação para roteamento, com essa regra você irá marcar todas as requisições vindas de seus clientes até a porta 80:
/ip firewall mangle add action=mark-routing chain=prerouting comment="Marcação de rota na porta TCP 80 vindo de clientes" disabled=no dst-port=80 in-interface=clientes new-routing-mark=proxy-clientes passthrough=no protocol=tcp src-address=192.168.100.0/24
5º Agora crie a ultima regra que será responsável pela a rota "clientes[TCP80]<-->webproxy":
/ip route add comment="Rota Estática para o Proxy Pararelo[TCP80] - clientes" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.100.100.2 routing-mark=proxy-clientes scope=255 target-scope=255
6º Vamos agora adicionar as regras de "cache-full" para que tudo que foi cacheado pelo o squid passe a full por entre as regras de simple queues, vamos lá!...
/ip firewall mangle add action=mark-connection chain=forward comment="" content="X-Cache: HIT" disabled=no in-interface=link new-connection-mark=cachefull-connection \
passthrough=yes protocol=tcp
add action=mark-packet chain=forward comment="" connection-mark=cachefull-connection disabled=no in-interface=link new-packet-mark=cachefull-packs \
passthrough=yes protocol=tcp
7º E por ultimo vamos adicionar a regra que irá definir a que velocidade será entregue o itens cacheados pelo o squid marcados com o cabeçalho "X-Cache: HIT":
/queue tree add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=5000000 name=cachefull packet-mark=cachefull-packs parent=global-out \
priority=8 queue=default
Nas linhas dos scripts substitua o que estiver em negrito segundo suas necessidades!
Versão do MikroTik: 3.10 level 4 em uma RB433
Versão do Linux: Ubuntu Server 8.04LTS em uma Máquina Virtual{VMWare/Vista Ultimate SP1/Intel Core 2 Quad}
Ahhh e lembre-se de deixar seu Squid em proxy transparent, ufa! acabou depois de tudo isso seu webproxy já deve estar cacheando tudo certinho e mantendo seu MikroTik como gateway, router, nat, firewall e tudo mais, espero poder ter contribuido em algo, fui galera fiquem com DEUS!!!