Você está na página 1de 5

----------------------- Page 1----------------------Remontti | Cache full com Mikrotik + Squid Linux Debian 5 Copyright Rudimar Remontti rudimar@remontti.com.br http://www.remontti.com.

br/blog/archives/86 Cache full com Mikrotik + Squid Linux Debian 5 A idia a seguinte, fazer o Mikrotik buscar o cache do servidor linux, e o que j es tiver em cache no fazer o controle de banda. Tem duas maneiras, umas o MK busca o cache do linux e nos log pega o ip do MK, e outra o pega os ips dos clientes. O segredo ta na hora do nat no MK, e colocar um rota no linux. INTALANDO SQUID 2.6 + zph Debian 4 No D4 os squid o 2.6 qual nao possie o patch Zero Penalty Hit (ZPH), vamos ter q compilar o bixinho. Primeiramente vamos instalar os pacotes p/ nao ter erro na hora da "compilada". Comandos: # apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-esse ntial libselinux1 \ libselinux1-dev debhelper linuxdoc-tools libcap-dev # cd /usr/src # apt-get source squid # apt-get build-dep squid # wget -c http://zph.bratcheda.org/squid-2.6.STABLE2-ToS_Hit_ToS_Preserve.patch # # # # # cd squid-2.6.5 patch -p1 < ../squid-2.6.STABLE2-ToS_Hit_ToS_Preserve.patch dpkg-buildpackage -rfakeroot -uc -b cd .. dpkg -i squid*

Sem muita frescura j estamos com o squid 2.6 + zph instalado INTALANDO SQUID 2.7 Debian 5 No D5 no tem galho, o zph j vem na verso 2.7 do squid Comandos: apt-get install squid Feito! Configurando o squid.conf Adicione as seguintes linhas no seu conf # Para squid 2.6 # MARCAR PACOTES TOS zph_tos_local 0x30 zph_tos_peer 0 zph_tos_parent off zph_preserve_miss_tos on # Para squid 2.7 # MARCAR PACOTES TOS zph_mode tos

zph_local 030 page 1 / 5 ----------------------- Page 2----------------------Remontti | Cache full com Mikrotik + Squid Linux Debian 5 Copyright Rudimar Remontti rudimar@remontti.com.br http://www.remontti.com.br/blog/archives/86 zph_parent 0 zph_option 136 Bom para entender melhor a rede e no fazer nenhuma besteira. Digamos q eu tenho um Debian configurado da seguinte maneira Interface eth0: 192.168.0.100 (internet) Interface eth1: 169.254.0.2 essa ligo no MK (cabo crossover). Ai voc poderia ter s uma interface, poderia ligar no MK e dar internet p/ ele e de pois devolver p/ o MK. Prefiro com 2 interface mesmo. E em nosso MK temos a seguinte forma ether 1 -> internet 192.168.0.200/24 ether 2 -> conexao linux 169.254.0.1/30 ether 3 -> clientes 10.0.0.0/8 Vou por aqui um modelinho de squid.conf q uso no 2.6 transparente http_port 3128 transparent visible_hostname www.seusite.com.br cache_mgr gerentederedes@seusite.com.br error_directory /usr/share/squid/errors/Portuguese cache_mem 8 MB maximum_object_size_in_memory 64 KB maximum_object_size 50 MB minimum_object_size 0 KB cache_swap_low 80 cache_swap_high 85 cache_dir ufs /var/spool/squid 5000 16 256 access_log /var/log/squid/access.log acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # 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 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT page 2 / 5 ----------------------- Page 3----------------------Remontti | Cache full com Mikrotik + Squid Linux Debian 5 Copyright Rudimar Remontti rudimar@remontti.com.br http://www.remontti.com.br/blog/archives/86 http_access allow manager localhost http_access deny manager http_access allow purge localhost http_access deny purge http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # SEM CACHE acl NOCACHE url_regex localhost 192.0.0.0/8 no_cache deny NOCACHE # MARCAR PACOTES MIKROTIK IDENDIFICA zph_tos_local 0x30 zph_tos_peer 0 zph_tos_parent off zph_preserve_miss_tos on #http_access http_access http_access http_access allow all deny manager deny !Safe_ports deny CONNECT !SSL_ports

#AQUI VAMOS COLOCAR A CLASSE DOS CLIENTES NO CASO VC QUEIRA PEGAR OS IPS DOS CLI ENTES # OU ENTAO COLOCAMOS O IP DO MK # CASO PASSE OS IP DOS CLIENTES: acl mikrotik src 10.0.0.0/255.0.0.0 # USE ESSA! # CASO PASSE APENAS O IP DO MKIROTIK acl mikrotik src 169.254.0.1/255.255.255.252 # OU ESSA! http_access allow mikrotik http_access allow localhost # BLOQUEIA O RESTO http_access deny all Se voc quer que passe os ips dos clientes (10.x.x.x) adiciona ai junto com seu firewall, routas, em algum lugar p/ iniciar na inicia lizao. se no cria um arquivo em /etc/init.d/ Ex: Comandos: # vim /etc/init.d/inicializar.sh Nele coloque:

#!/bin/bash route add -net 10.0.0.0 netmask 255.0.0.0 gw 169.254.0.1 page 3 / 5 ----------------------- Page 4----------------------Remontti | Cache full com Mikrotik + Squid Linux Debian 5 Copyright Rudimar Remontti rudimar@remontti.com.br http://www.remontti.com.br/blog/archives/86 Comandos: # /etc/init.d/ # update-rc.d inicializar.sh defaults 80 # chmod 755 inicializar.sh Feito vai iniciar quando ligar. Vamos configura o Mikrotik V2 (na 3 diferente os tos mude p/ 12) Vamos fazer o direcionamento da porta 80 p/ 3128 no precisa fazer isso no seu fir ewall do linux. Aps vamos marcar os pacotes aquele o q zph marcou, e depois uma queue dizendo p/ ele libera para o c liente sem o controle da sua queue simples. Comandos: / ip firewall nat add chain=dstnat src-address=10.0.0.0/8 protocol=tcp dst-port=80 action=dst-nat to-addresses=169.254.0.2 to-ports=3128 \ comment="Direciona para Proxy" disabled=no Comandos: / ip firewall mangle add chain=postrouting protocol=tcp src-port=3128 tos=48 action=mark-connection new-connection-mark=n-cache passthrough=yes \ comment="Marca o com e sem TOS" disabled=no add chain=postrouting protocol=tcp src-port=3128 tos=!48 action=mark-connection new-connection-mark=s-cache \ passthrough=yes comment="" disabled=no add chain=postrouting connection-mark=n-cache action=mark-packet new-packet-mark =Cache-Packet passthrough=no \ comment="Libera cache full" disabled=no Comandos: / queue type add name="cache" kind=pcq pcq-rate=4800000 pcq-limit=50 pcq-classifier=dst-addr ess pcq-total-limit=2000 Comandos: / queue tree add name="CACHE-FULL" parent=global-out packet-mark=Cache-Packet limit-at=0 que ue=cache priority=8 max-limit=0 \ burst-limit=0 burst-threshold=0 burst-time=0s disabled=no E a conectividade social, e o banco do brasil, e o bradesco que no ta funcionand o? ahhhhhhhhhhhh meu Deooos!!!! O q eu fao? Vamos fazer os ip destes servidores passarem por fora do Proxy, coloque elas an

tes de todas as regras. Comandos: / ip firewall nat add chain=dstnat dst-address=200.201.166.0/24 protocol=tcp dst-port=80 action=a ccept comment="CONECTIVIDADESOCIAL" disabled=no add chain=dstnat dst-address=200.201.173.0/24 protocol=tcp dst-port=80 action=a ccept comment="" disabled=no add chain=dstnat dst-address=200.201.174.0/24 protocol=tcp dst-port=80 action=a ccept comment="" disabled=no add chain=dstnat dst-address=200.219.137.0/24 protocol=tcp dst-port=80 action=ac cept comment="IPS NAVEGAMSEMPROXY" disabled=no add chain=dstnat dst-address=200.252.8.0/24 protocol=tcp dst-port=80 action=acc ept comment="" disabled=no add chain=dstnat dst-address=201.2.207.0/24 protocol=tcp dst-port=80 action=acc ept comment="" disabled=no add chain=dstnat dst-address=200.196.226.0/24 protocol=tcp dst-port=80 action=a ccept comment="" disabled=no add chain=dstnat dst-address=201.24.72.0/24 protocol=tcp dst-port=80 action=acc ept comment="" disabled=no add chain=dstnat dst-address=78.46.46.139 protocol=tcp dst-port=80 action=accep t comment="" disabled=no page 4 / 5 ----------------------- Page 5----------------------Remontti | Cache full com Mikrotik + Squid Linux Debian 5 Copyright Rudimar Remontti rudimar@remontti.com.br http://www.remontti.com.br/blog/archives/86 add chain=dstnat dst-address=192.168.0.0/24 protocol=tcp dst-port=80 action=acc ept comment="" disabled=no add chain=dstnat dst-address=10.0.0.0/8 protocol=tcp dst-port=80 action=accept comment="" disabled=no Agora quando algum precisar navegar em um site q no passe pelo proxy, ficou fcil! No se esquea de colocar elas antes de todas as regras. page 5 / 5