5
Remontti | Cache full com Mikrotik + Squid Linux Debian 5 Copyright Rudimar Remontti [email protected] http://www.remontti.com.br/blog/archives/86 Cache full com Mikrotik + Squid Linux Debian 5 A idéia é a seguinte, fazer o Mikrotik buscar o cache do servidor linux, e o que já estiver em cache não 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-essential 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 não tem galho, o zph já vem na versão 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 0×30 page 1 / 5

Cache Full Com Mikrotik + Squid Linux Debian 5

Embed Size (px)

Citation preview

Page 1: Cache Full Com Mikrotik + Squid Linux Debian 5

Remontti | Cache full com Mikrotik + Squid Linux Debian 5Copyright Rudimar Remontti [email protected]://www.remontti.com.br/blog/archives/86

Cache full com Mikrotik + Squid Linux Debian 5

A idéia é a seguinte, fazer o Mikrotik buscar o cache do servidor linux, e o que já estiver em cache não fazer o controle debanda.

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. Osegredo 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-essential 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 não tem galho, o zph já vem na versão 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 0×30

page 1 / 5

Page 2: Cache Full Com Mikrotik + Squid Linux Debian 5

Remontti | Cache full com Mikrotik + Squid Linux Debian 5Copyright Rudimar Remontti [email protected]://www.remontti.com.br/blog/archives/86

zph_parent 0 zph_option 136

Bom para entender melhor a rede e não 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 depois devolver p/ o MK. Prefiro com 2interface 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 [email protected] 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: Cache Full Com Mikrotik + Squid Linux Debian 5

Remontti | Cache full com Mikrotik + Squid Linux Debian 5Copyright Rudimar Remontti [email protected]://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 allow all http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports

#AQUI VAMOS COLOCAR A CLASSE DOS CLIENTES NO CASO VC QUEIRA PEGAR OS IPS DOS CLIENTES # 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 inicialização. se não 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: Cache Full Com Mikrotik + Squid Linux Debian 5

Remontti | Cache full com Mikrotik + Squid Linux Debian 5Copyright Rudimar Remontti [email protected]://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 não precisa fazer isso no seu firewall do linux. Após vamos marcar ospacotes aquele o q zph marcou, e depois uma queue dizendo p/ ele libera para o cliente 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-cachepassthrough=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-address pcq-total-limit=2000 Comandos: / queue tree add name="CACHE-FULL" parent=global-out packet-mark=Cache-Packet limit-at=0 queue=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 não ta funcionando? ahhhhhhhhhhhh meu Deooos!!!! O q eu faço? Vamos fazer os ip destes servidores passarem por fora do Proxy, coloque elas antes de todas as regras. Comandos:/ ip firewall nat add chain=dstnat dst-address=200.201.166.0/24 protocol=tcp dst-port=80 action=accept comment="CONECTIVIDADESOCIAL" disabled=no add chain=dstnat dst-address=200.201.173.0/24 protocol=tcp dst-port=80 action=accept comment="" disabled=no add chain=dstnat dst-address=200.201.174.0/24 protocol=tcp dst-port=80 action=accept comment="" disabled=no

add chain=dstnat dst-address=200.219.137.0/24 protocol=tcp dst-port=80 action=accept comment="IPS NAVEGAM SEMPROXY" disabled=no add chain=dstnat dst-address=200.252.8.0/24 protocol=tcp dst-port=80 action=accept comment="" disabled=no add chain=dstnat dst-address=201.2.207.0/24 protocol=tcp dst-port=80 action=accept comment="" disabled=no add chain=dstnat dst-address=200.196.226.0/24 protocol=tcp dst-port=80 action=accept comment="" disabled=no add chain=dstnat dst-address=201.24.72.0/24 protocol=tcp dst-port=80 action=accept comment="" disabled=no add chain=dstnat dst-address=78.46.46.139 protocol=tcp dst-port=80 action=accept comment="" disabled=no

page 4 / 5

Page 5: Cache Full Com Mikrotik + Squid Linux Debian 5

Remontti | Cache full com Mikrotik + Squid Linux Debian 5Copyright Rudimar Remontti [email protected]://www.remontti.com.br/blog/archives/86

add chain=dstnat dst-address=192.168.0.0/24 protocol=tcp dst-port=80 action=accept 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 alguém precisar navegar em um site q não passe pelo proxy, ficou fácil! Não se esqueça de colocar elas antes de todas as regras.

page 5 / 5