Mikrotik + Squid en Paralelo
Mikrotik + Squid en Paralelo
Mikrotik + Squid en Paralelo
+ Squid en paralelo Taringa!
Mikrotik + Squid en paralelo
Descubre un nuevo mundo
taringa.net
Click aquí
¡Únete gratis a Taringa! y accede a contenido
exclusivo!
Compartir Twittear
Buen día para todos amigos, hoy voy a tratar de explicar como montar un proxycache
squid con Mikrotik como router. El hardware que utilicé es un RB493AH y una pc con
disco de 80g, 1g de ram y celeron de 2ghz, algo poronga pero para lo que utilizaremos
sobra. Si no tienen un Roterboard con una pc con 3 eth va de punta.
Primero instalen el linux que en mi caso es un Debian Squeeze 6.0.1a, hagan la
instalación mas común para novatos utizando todo el disco (/). En este caso no
usaremos IPTABLES (hay varios tutoriales en la red) porque usamos el Filter de
Mikrotik y asignen la ip 192.168.5.2/24 y gateway/dns 192.168.5.1 (nuestro mk).
En el Mikrotik tendremos 3 eth (como mínimo, porque esto funciona bien si tienen un
balance de carga), Lan, Wan y Proxy. Doy por sabido que tienen el mikrotik
funcionando y necesitan un proxy para ahorrar ancho de banda.
Para la comunicación entre el MK y el Debian asignamos a la eth Proxy del MK la ip
192.168.5.1:
ip address add address=192.168.5.1 netmask=255.255.255.0 interface=Proxy
Vamos al debian, primero instalamos squid, todo como root ... ingresan su usuario y
clave y con el comando "su" accedemos como root (#)
aptget install squid
data:text/html;charset=utf8,%3Cheader%20style%3D%22outline%3A%20none%200px%3B%20margin%3A%200px%3B%20padding%3A%200px%3B%20bor… 1/6
8/3/2015 Mikrotik + Squid en paralelo Taringa!
Una vez instalado eliminamos el fichero squid.conf porque lo vamos a crear desde cero
con nuestras preferencias:
rm /etc/squid/squid.conf
Creamos y editamos el nuevo squid.conf:
nano /etc/squid/squid.conf
Esta es la configuración que de una sale andando, mirando un poco los tutos de squid
pueden dejar su conf a su gusto y de acuerdo con la pc que tengan, mas o menos voy
a explicar despues de la regla lo que hace separados por ##.
http_port 5128 transparent ##Este es el puerto habilitado en donde escucha el
proxy en modo tranparente
visible_hostname MI_PROXY ## Nombre que quieran dar al proxy
cache_mgr [email protected] ## a quien reclamar si no anda jaja
error_directory /usr/share/squid/errors/es ## los mensajes de error del proxy
######puertos y permisos
acl manager proto cache_object
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70 #prot gopher
acl Safe_ports port 210 #whais
acl Safe_ports port 102465535 #todos los demas puertos
acl Safe_ports port 280 #httpmgmt
acl Safe_ports port 488 #gsshttp
acl Safe_ports port 591 #filemaker
acl Safe_ports port 777 #multi http
acl Safe_ports port 901 #acesso Swat
acl purge method PURGE
acl CONNECT method CONNECT
data:text/html;charset=utf8,%3Cheader%20style%3D%22outline%3A%20none%200px%3B%20margin%3A%200px%3B%20padding%3A%200px%3B%20bor… 2/6
8/3/2015 Mikrotik + Squid en paralelo Taringa!
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
###damos permiso al MK para las consultas al proxy####
acl redlocal src "/etc/squid/permitidos" ## Explico luego este permiso
http_access allow localhost
http_access allow redlocal
http_access deny all
cache_access_log /var/log/squid/access.log ## Aqui se loguea los accesos
cache_log /var/log/squid/cache.log ## aqui el cache
cache_mem 20 MB ## Algunos ponen este valor en 8, 16, depende la pc, en 20
me funciona bien
maximum_object_size_in_memory 64 KB
maximum_object_size 50 MB ## cacheamos archivos de hasta 50 megas
minimum_object_size 0 KB
cache_store_log none
log_fqdn off
log_icp_queries off
buffered_logs off
emulate_httpd_log off
redirect_rewrites_host_header off
cache_swap_low 80 ## este y el de abajo limitan el uso del swap, no cambien
estos valores
cache_swap_high 85
cache_dir ufs /var/spool/squid 50048 16 256 ## damos el tamaño max de disco
disponible para la cache que en mi ##caso son 50048 (50 gigas) que se
guardaran en 16 carpetas y 256 subcarpetas en /var/spool/squid
refresh_pattern ^ftp: 15 20% 4560
refresh_pattern ^gopher: 15 0% 4560
refresh_pattern . 15 20% 4560
memory_replacement_policy heap GDSF
memory_pools off
memory_pools_limit 0
ignore_unknown_nameservers on
quick_abort_min 0
quick_abort_max 0
quick_abort_pct 75
buffered_logs off
forwarded_for off
##Zero Penalty HIT### esto "marca" los HIT para poder ser administrados por el
data:text/html;charset=utf8,%3Cheader%20style%3D%22outline%3A%20none%200px%3B%20margin%3A%200px%3B%20padding%3A%200px%3B%20bor… 3/6
8/3/2015 Mikrotik + Squid en paralelo Taringa!
mangle del mk para hacer full ##cache, el valor del DSCP (TOS) es de 12
zph_mode tos
zph_local 0x30
zph_parent 0
zph_option 136
Gardamos el fichero con Ctrl + o y luego enter ... salimos del editor con Ctrl + x
La opción
acl redlocal src "/etc/squid/permitidos"
Es un fichero en donde agregué las ip habilitadas a navegar por usando el proxy y lo
creamos con:
nano /etc/squid/permitidos
y agregamos las ip una debajo de la otra y sin espacios:
192.168.2.2
192.168.56.4
10.10.9.4
192.168.0.0/24
Si tienen una sola red basta con:
acl redlocal src 192.168.1.0/24
en donde permitimos a todo ese rango
Reiniciamos el servicio para que tome los cambios y ver si no tira algun error:
service squid restart
Tres cosas tenemos que agregar en el mikrotik
1. La regla de mangle para que marque los HIT del squid y poder implementar el full
cache
2. La regla en NAT para hacer la redirección del puerto 80 hacia el 5128
data:text/html;charset=utf8,%3Cheader%20style%3D%22outline%3A%20none%200px%3B%20margin%3A%200px%3B%20padding%3A%200px%3B%20bor… 4/6
8/3/2015 Mikrotik + Squid en paralelo Taringa!
3. La cola simple (queues) para que no limite la consulta a nuestro proxy y entregue lo
cacheado a todo pedo
En el mangle:
ip firewall mangle add chain=prerouting action=markpacket newpacket
mark=tcphit passthrough=no dscp=12
Marcamos el paquete como tcphit, con esto ya podemos ir al queues:
queue simple name="cached" interface=all parent=none packetmarks=tcp
hitdirection=both priority=5 queue=ethernetdefault/ethernetdefault limitat=0/0
maxlimit=0/0 burstlimit=0/0 burstthreshold=0/0 bursttime=0s/0s total
queue=ethernetdefault
Y la última regla para direccionar las consultas al tcp 80 (paginas web) de nuestra Lan
utilizamos NAT con esto:
ip firewall nat chain=dstnat action=netmap toaddresses=192.168.5.2 to
ports=5128 protocol=tcp ininterface=Lan dstport=80
Con esto tendría que estar andando, desde la consola del Debian pueden chequear el
access.log con el siguiente comando:
tail f /var/log/squid/access.log
Nueva info
Me dicen que en versiones de mikrotik 2.9.x no marca los hit y estuve leyendo en la
web que el TOS es 48, si alguien me puede corroborar todos agradecidos!
Miren la imagen de la eth del proxy en el mikrotik:
data:text/html;charset=utf8,%3Cheader%20style%3D%22outline%3A%20none%200px%3B%20margin%3A%200px%3B%20padding%3A%200px%3B%20bor… 5/6
8/3/2015 Mikrotik + Squid en paralelo Taringa!
http://s3.subirimagenes.com:81/imagen/6890144cache.png
Todas las críticas son bienvenidas porque no soy un genio en esto pero lo posteo
porque me funciona de maravillas, saludos a todos
data:text/html;charset=utf8,%3Cheader%20style%3D%22outline%3A%20none%200px%3B%20margin%3A%200px%3B%20padding%3A%200px%3B%20bor… 6/6