Você está na página 1de 4

Mikrotik + Squid 3.

0-Stable8 Paralelo(rota esttica) + Thunder Cache + Sarg


Ol Pessoal, Depois de muitas tentativas de fazer funcionar o squid3 em paralelo com mikrotik e ver os relatorios do Sarg de cada cliente da minha rede, fazendo cache full tanto com o thunder cache quanto com a directiva "X-Cache: HIT" do squid. A algum tempo consegui chegar a uma soluo excelente. Acredito que muitos esto tentando buscar algo parecido e para contribuir com o forum onde sempre consegui muitas informaes vou postar minha soluo. Primeiro vamos definir la topologia : 1)Mikrotik 3.15 ether1(clientes) = 172.25.1.100/24 ether2(proxy) = 192.168.2.1/30 ether3(Internet)= 200.200.xxx.xxx 2)Debian 5.0 Lenny eth0 = 192.168.2.2/30 Considerando que o mikrotik esta com a internet a todo vapor, e est Configurado con masquerade la rede de clientes 172.25.0.0/16 e para a rede do Debian192.168.2.0/30. Referencia: Linux: Proxy em paralelo com o mikrotik [Artigo] No debian configure os endereos de IP 192.168.2.2/30, gateway e DNS192.168.2.1. Referencia: How to Assign an IP Address on a Linux Computer - wikiHow No mikrotik, menu ip firewall, marque a rota que vem dos clientes com destino a porta 80 de qualquer endereo: ip firewall mangle chain=prerouting action=mark-routing new-routingmark=proxy-flow dst-port=80 passthrough=no protocol=tcp srcaddress=172.25.0.0/16 No menu ip route crie uma rota redirecionando o fluxo marcado(proxy-flow) e mostrando que o gateway o servidor debian : ip route add routing-mark=proxy-flow gateway=192.168.2.2 Compartilhe a internet no debian tambm: echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE At aqui, a navegacao deve ser testada atraves da interface dos clientes, e deve funcionar normalmente, pois o compartilhamento foi ativado no servidor debian.

Como o proximo passo instalar o squid3 vamos adiantar a regra para o proxy na porta 3128 transparente. iptables -t nat -A PREROUTING -i eth0 -s 172.25.0.0/16 -p tcp --dport 80 -j REDIRECT --to-ports 3128 Vamos instalar o squid3, para isso abra o arquivo do apt sources.list e acrescente um repositorio: deb ftp://ftp.br.debian.org/debian stable main contrib non-free deb-src ftp://ftp.br.debian.org/debian stable main contrib non-free Atualizamos os repositorios do apt e instalamos o squid3. (aqui instalei tambm o bind9 pois estava tendo problemas de dns e o thunder nao estava funcionando direito): apt-get update apt-get install squid3 apache2 php5 php5-cli bind9 sarg #vim /etc/resolv.conf altere o arquivo para o endereo da sua interface neste caso 192.168.2.2. Baixe o thunder verso 2.1 http://ecache.svn.sourceforge.net/vi...ar.gz?view=tar Descompacte os arquivos no diretorio /etc/squid3 e siga as instrucoes do arquivo INSTALL_PTBR. Seu squid.conf deve semelhante a este. http_port 3128 transparent hierarchy_stoplist cgi-bin ? acl QUERY urlpath_regex cgi-bin \? cache deny QUERY acl apache rep_header Server ^Apache cache_mem 256 MB cache_swap_low 90 cache_swap_high 95 maximum_object_size 20096 KB minimum_object_size 0 KB maximum_object_size_in_memory 10000 KB cache_dir ufs /var/spool/squid3/cache1 2000 16 256

access_log /var/log/squid3/access.log squid cache_log /var/log/squid3/cache.log cache_store_log /var/log/squid3/store.log hosts_file /etc/hosts refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320 acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl acl manager proto cache_object localhost src 127.0.0.1/255.255.255.255 to_localhost dst 127.0.0.0/8 SSL_ports port 443 # https SSL_ports port 563 # snews SSL_ports port 873 # rsync Safe_ports port 80 # http Safe_ports port 21 # ftp Safe_ports port 443 # https Safe_ports port 70 # gopher Safe_ports port 210 # wais Safe_ports port 1025-65535 # unregistered ports Safe_ports port 280 # http-mgmt Safe_ports port 488 # gss-http Safe_ports port 591 # filemaker Safe_ports port 777 # multiling http Safe_ports port 631 # cups Safe_ports port 873 # rsync Safe_ports port 901 # SWAT purge method PURGE CONNECT method CONNECT deny !Safe_ports deny purge allow purge localhost deny manager allow manager localhost

http_access http_access http_access http_access http_access

acl our_networks src 192.168.0.0/16 url_rewrite_children 20 acl store_rewrite_list dstdomain .avast.com .avg.com .windowsupdate.com .grisoft.com avgate.net .googlevideo.com .globo.com .mais.uol.com.br .terra.com .redtube.com .ytimg.com .pornhub.com .tube8.com .eset.com .4shared.com .xvideos.com .kaspersky-labs.com .geo.kaspersky.com .microsoft.com .youtube.com .orkut.com url_rewrite_access allow store_rewrite_list url_rewrite_access deny all url_rewrite_program /etc/squid3/loader.php acl localcache dstdomain 192.168.2.2 acl localcache2 dstdomain .orkut.com .avast.com .avg.com .windowsupdate.com

.grisoft.com .avgate.net .googlevideo.com .globo.com .mais.uol.com.br .redtube.com .ytimg.com .pornhub.com .tube8.com .eset.com .4shared.com .xvideos.com .kaspersky-labs.com .geo.kaspersky.com .microsoft.com cache deny localcache localcache2 http_access allow localhost http_access deny all http_reply_access allow all icp_access allow all cache_mgr user@isp.com.br cache_effective_user proxy cache_effective_group proxy visible_hostname myhost error_directory /usr/share/squid3/errors/Portuguese coredump_dir /var/spool/squid3 Depois de dadas todas as permisses para os arquivos e diretorios dos thunder conforme o arquivo INSTALL_PTBR. Reinicie o squid: #invoke-rc.d squid3 restart Para configurar o sarg: crie um diretorio dentro de /var/www/ caso nao exista: #mkdir /var/www/squid-reports Depois abra o arquivo: #vim /etc/squid/sarg.conf Verifique as linhas e altere se necessario: output_dir /var/www/squid-reports access_log /var/log/squid3/access.log Salve o arquivo e rode o sarg no console Aqui deve estar tudo funcionando. NOTA: As instancias do thunder alem de armazenarem os arquivos em um diretorio diferente do cache do proprio squid, nao compartilham os mesmos endereos de memoria alocados pelo squid definidos no squid.conf.