InicioLinuxMikrotik + Squid en paralelo

Mikrotik + Squid en paralelo

Linux9/5/2011
Buen día para todos amigos, hoy voy a tratar de explicar como montar un proxy-cache 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 (#)

apt-get install squid



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 1024-65535 #todos los demas puertos
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 #multi http
acl Safe_ports port 901 #acesso Swat
acl purge method PURGE
acl CONNECT method CONNECT
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 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
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=mark-packet new-packet-mark=tcp-hit passthrough=no dscp=12


Marcamos el paquete como tcp-hit, con esto ya podemos ir al queues:

queue simple name="cached" interface=all parent=none packet-marks=tcp-hit direction=both priority=5 queue=ethernet-default/ethernet-default limit-at=0/0 max-limit=0/0 burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s total-queue=ethernet-default



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 to-addresses=192.168.5.2 to-ports=5128 protocol=tcp in-interface=Lan dst-port=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:





Todas las críticas son bienvenidas porque no soy un genio en esto pero lo posteo porque me funciona de maravillas, saludos a todos
Datos archivados del Taringa! original
74puntos
12,114visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

a
alcahute🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.