Sunteți pe pagina 1din 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

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
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 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 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
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 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
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 não precisa fazer isso no seu firewall do linux. Após vamos marcar os
pacotes 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-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-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="CONECTIVIDADE
SOCIAL" 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 SEM


PROXY" 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
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=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

S-ar putea să vă placă și