compilacion y configuracion squid3 tproxy

Publicado por leandro1979, Noviembre 14, 2012, 10:03:27 AM

Tema anterior - Siguiente tema

leandro1979

Buenos días adjunto mi compilación personalizada de squid3

en caso que alguien tenga una mejor configuracion o compilacion por favor postearla
Una vez instalado el script de joemg seguir los siguientes pasos:´

#apt-get remove squid3
#apt-get purge squid3
#aptitude install build-essential libcap2-dev libltdl-dev ebtables bridge-utils
#cd /usr/src
#apt-get build-dep squid3

#wget -c http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.21.tar.bz2
#tar xvfj squid-3.1.21.tar.bz2
#cd squid-3.1.21
#ulimit -HSn 819200
#ulimit -HSd unlimited

./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=/usr/include --infodir=/usr/share/info --localstatedir=/var --libexecdir=/usr/lib/squid3 --disable-maintainer-mode --disable-dependency-tracking --disable-silent-rules --srcdir=. --datadir=/usr/share/squid3 --sysconfdir=/etc/squid3 --mandir=/usr/share/man --with-cppunit-basedir=/usr --enable-inline --enable-async-io=128 --enable-storeio=ufs,aufs,diskd --enable-removal-policies=lru,heap --enable-useragent-log --enable-referer-log --enable-delay-pools --enable-cache-digests --enable-zph-qos --enable-underscores --enable-icap-client --enable-follow-x-forwarded-for --enable-auth=basic,digest,ntlm,negotiate --enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,getpwnam,multi-domain-NTLM --enable-digest-auth-helpers=ldap,password --enable-negotiate-auth-helpers=squid_kerb_auth --enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group --enable-arp-acl --enable-snmp --enable-http-violations --with-filedescriptors=819200 --with-large-files --enable-large-cache-files --with-default-user=proxy --enable-epoll --enable-linux-netfilter

# make
# make install

# mkdir -p /var/spool/squid3
# chown proxy:proxy /var/spool/squid3
# mkdir -p /var/log/squid3
# chown proxy:proxy /var/log/squid3

Copiar el archivo squid adjunto en la carpeta /etc/init.d/
correr el comando
#update-rc.d squid defaults

reemplazar squid.conf en la carpeta /etc/squid3/
reemplazar limits.conf en la carpeta /etc/security/
reemplazar sysctl.conf en la carpeta /etc/

correo
#squid -z

crear un archivo en /root
#nano /root/iptables-TPROXY

# Generated by nDasJoWo
*nat
REROUTING ACCEPT [541:35450]
OSTROUTING ACCEPT [796:56114]
:OUTPUT ACCEPT [795:56050]
COMMIT
# Completed
# Generated by nDasJoWo
*mangle
REROUTING ACCEPT [51:11203]
:INPUT ACCEPT [5711:2016323]
:FORWARD ACCEPT [3:1580]
:OUTPUT ACCEPT [8347:3818817]
OSTROUTING ACCEPT [8350:3820397]IVERT - [0:0]
-A PREROUTING -p tcp -m socket -j DIVERT
-A PREROUTING -p tcp -m tcp --dport 80 -j TPROXY --on-port 3129 --on-ip 0.0.0.0 --tproxy-mark 0x1/0xffffffff
-A DIVERT -j MARK --set-xmark 0x1/0xffffffff
-A DIVERT -j ACCEPT
COMMIT
# Completed


editar rc.local
#nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
iptables-restore < /root/iptables-TPROXY
exit 0


Reiniciar
#shutdown -r now

verificar si squid esta corriendo sin errores
#squid -d1

una vez realizado esto ingresar a mikrotik y configurar en mangle lo sigueinte

/ip route add dst-address=0.0.0.0/0 gateway=(ip-proxy) routing-mark="VIA_TPROXY"
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80 in-interface=(ether-clientes) action=mark-routing new-routing-mark=VIA_TPROXY
/ip firewall mangle add chain=prerouting in-interface=(ether-proxy) action=mark-connection new-connection-mark=VIA_TPROXY
/ip firewall add chain=prerouting in-interface=(ether-internet) connection-mark=VIA_TPROXY action=mark-routing new-routing-mark=VIA_TPROXY


esto es para tener tu thundercache 3.1.2 con soporte de tproxy

saludos y espero les sirva, espero comentarios y si hay alguien que sabe hacerlo de otra forma por favor comunicarme

saludos
leandro

PD: Joemg como puedes ver la linea
cache_peer 192.168.10.2 parent 8080 3130 proxy-only no-digest no-tproxy
esta para que no haga tproxy sobre el parent que es thunder
ese es mi inconveniente hace tproxy de todo menos cuando ingresa a thunder al ponerlo sin no-tproxy
el sistema deja de funcionar por ahi debo de hacer algun cambio en la configuracion del parent o en el thunder.conf pero en realidad no se cual sea

saludos
leandro

dgonzaleznet

Leandro cuales son los pre requisitos para hacer este procedimiento? ej. puede hacerlo una persona con thundercache 3.1.2 debian 32 bits squid 2.7?

Gracias por tu aporte hermano siempre dandole a los labs...
Saludos Cordiales,
Daniel González Peña

leandro1979

Cita de: dgonzaleznet en Noviembre 14, 2012, 04:55:34 PM
Leandro cuales son los pre requisitos para hacer este procedimiento? ej. puede hacerlo una persona con thundercache 3.1.2 debian 32 bits squid 2.7?

Gracias por tu aporte hermano siempre dandole a los labs...
como estas
la instalacion es en thunder 3.1.2 con squid 3
como especifico en el escrito rimero deben instalar el script de joemg con el squid 3

saludos
leandro

leandro1979

Buenos Días
con esta opción en squid 3 pueden equilibrar el almacenamiento de archivos dependiendo el numero
de carpetas que tengan

store_dir_select_algorithm round-robin

saludos
leandro

WALYN

el squid me esta dando un error como este a alguien le a dado..

Estado de Squidv. 3.1.6    Offline

Y REINICIANDO EL SQUID SE LE QUITA Y VUELVE CON LOS MISMO.

dgonzaleznet

Leandro me pasa lo mismo que WALYN mi squid sale offline y cuando hago el squid -d1 el squid vuelve a estar online, bueno llevo probandolo 10 minutos aun no se si seguirá así pero cuando reinicie el server de nuevo salio offline, tuve que volver a ejecutar el squid -d1
Saludos Cordiales,
Daniel González Peña

leandro1979

Cita de: dgonzaleznet en Noviembre 19, 2012, 01:16:11 AM
Leandro me pasa lo mismo que WALYN mi squid sale offline y cuando hago el squid -d1 el squid vuelve a estar online, bueno llevo probandolo 10 minutos aun no se si seguirá así pero cuando reinicie el server de nuevo salio offline, tuve que volver a ejecutar el squid -d1

Buenos dias
les recuerdo que si usan tproxy el puerto es 3129 no 3128
deben de cambiar en el php que envez de 3128 diga 3129

saludos
leandro

ingjaab

cambie mi pregunta anterior dime tengo unas dudas :

memory_replacement_policy heap LFUDA
no debiria ser
memory_replacement_policy heap GDSF

Y TIMEOUTS
shutdown_lifetime 20 seconds

# Shutdown pending time
shutdown_lifetime 20 seconds
hay duplicidad esta bien o es asi


Mueres siendo un héroe, o vives lo suficiente para convertirte en villano

odon

Please help me to define the topologi for use this tproxy.

Thanks

firecold

Cita de: leandro1979 en Noviembre 14, 2012, 10:03:27 AM
Buenos días adjunto mi compilación personalizada de squid3

en caso que alguien tenga una mejor configuracion o compilacion por favor postearla
Una vez instalado el script de joemg seguir los siguientes pasos:´

#apt-get remove squid3
#apt-get purge squid3
#aptitude install build-essential libcap2-dev libltdl-dev ebtables bridge-utils
#cd /usr/src
#apt-get build-dep squid3

#wget -c http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.21.tar.bz2
#tar xvfj squid-3.1.21.tar.bz2
#cd squid-3.1.21
#ulimit -HSn 819200
#ulimit -HSd unlimited

./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=/usr/include --infodir=/usr/share/info --localstatedir=/var --libexecdir=/usr/lib/squid3 --disable-maintainer-mode --disable-dependency-tracking --disable-silent-rules --srcdir=. --datadir=/usr/share/squid3 --sysconfdir=/etc/squid3 --mandir=/usr/share/man --with-cppunit-basedir=/usr --enable-inline --enable-async-io=128 --enable-storeio=ufs,aufs,diskd --enable-removal-policies=lru,heap --enable-useragent-log --enable-referer-log --enable-delay-pools --enable-cache-digests --enable-zph-qos --enable-underscores --enable-icap-client --enable-follow-x-forwarded-for --enable-auth=basic,digest,ntlm,negotiate --enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,getpwnam,multi-domain-NTLM --enable-digest-auth-helpers=ldap,password --enable-negotiate-auth-helpers=squid_kerb_auth --enable-external-acl-helpers=ip_user,ldap_group,session,unix_group,wbinfo_group --enable-arp-acl --enable-snmp --enable-http-violations --with-filedescriptors=819200 --with-large-files --enable-large-cache-files --with-default-user=proxy --enable-epoll --enable-linux-netfilter

# make
# make install

# mkdir -p /var/spool/squid3
# chown proxy:proxy /var/spool/squid3
# mkdir -p /var/log/squid3
# chown proxy:proxy /var/log/squid3

Copiar el archivo squid adjunto en la carpeta /etc/init.d/
correr el comando
#update-rc.d squid defaults

reemplazar squid.conf en la carpeta /etc/squid3/
reemplazar limits.conf en la carpeta /etc/security/
reemplazar sysctl.conf en la carpeta /etc/

correo
#squid -z

crear un archivo en /root
#nano /root/iptables-TPROXY

# Generated by nDasJoWo
*nat
REROUTING ACCEPT [541:35450]
OSTROUTING ACCEPT [796:56114]
:OUTPUT ACCEPT [795:56050]
COMMIT
# Completed
# Generated by nDasJoWo
*mangle
REROUTING ACCEPT [51:11203]
:INPUT ACCEPT [5711:2016323]
:FORWARD ACCEPT [3:1580]
:OUTPUT ACCEPT [8347:3818817]
OSTROUTING ACCEPT [8350:3820397]IVERT - [0:0]
-A PREROUTING -p tcp -m socket -j DIVERT
-A PREROUTING -p tcp -m tcp --dport 80 -j TPROXY --on-port 3129 --on-ip 0.0.0.0 --tproxy-mark 0x1/0xffffffff
-A DIVERT -j MARK --set-xmark 0x1/0xffffffff
-A DIVERT -j ACCEPT
COMMIT
# Completed


editar rc.local
#nano /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
iptables-restore < /root/iptables-TPROXY
exit 0


Reiniciar
#shutdown -r now

verificar si squid esta corriendo sin errores
#squid -d1

una vez realizado esto ingresar a mikrotik y configurar en mangle lo sigueinte

/ip route add dst-address=0.0.0.0/0 gateway=(ip-proxy) routing-mark="VIA_TPROXY"
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80 in-interface=(ether-clientes) action=mark-routing new-routing-mark=VIA_TPROXY
/ip firewall mangle add chain=prerouting in-interface=(ether-proxy) action=mark-connection new-connection-mark=VIA_TPROXY
/ip firewall add chain=prerouting in-interface=(ether-internet) connection-mark=VIA_TPROXY action=mark-routing new-routing-mark=VIA_TPROXY


esto es para tener tu thundercache 3.1.2 con soporte de tproxy

saludos y espero les sirva, espero comentarios y si hay alguien que sabe hacerlo de otra forma por favor comunicarme

saludos
leandro

PD: Joemg como puedes ver la linea
cache_peer 192.168.10.2 parent 8080 3130 proxy-only no-digest no-tproxy
esta para que no haga tproxy sobre el parent que es thunder
ese es mi inconveniente hace tproxy de todo menos cuando ingresa a thunder al ponerlo sin no-tproxy
el sistema deja de funcionar por ahi debo de hacer algun cambio en la configuracion del parent o en el thunder.conf pero en realidad no se cual sea

saludos
leandro

A pesar que me dio problemas al compilar, ya que cuando pones make es make all, y un problema que dice -fluge-objets es obsoleto, pues funciona mejor squid que como yo lo tenia, lo unico que le puse la configuracion que tengo, la verdad se siente una mejora bastante observable al momento de navegar y respuesta de las peticiones, lo que si no me funciono fueron las reglas de iptables, las que yo habia visto anteriormente habian sido estas, pero antes te mostrare los que responde ingresar tus reglas:

/home/thunder/erick.sh: 2: /home/thunder/erick.sh: *nat: not found
/home/thunder/erick.sh: 3: /home/thunder/erick.sh: REROUTING: not found
/home/thunder/erick.sh: 4: /home/thunder/erick.sh: OSTROUTING: not found
/home/thunder/erick.sh: 5: /home/thunder/erick.sh: :OUTPUT: not found
/home/thunder/erick.sh: 6: /home/thunder/erick.sh: COMMIT: not found
/home/thunder/erick.sh: 9: /home/thunder/erick.sh: *mangle: not found
/home/thunder/erick.sh: 10: /home/thunder/erick.sh: REROUTING: not found
/home/thunder/erick.sh: 11: /home/thunder/erick.sh: :INPUT: not found
/home/thunder/erick.sh: 12: /home/thunder/erick.sh: :FORWARD: not found
/home/thunder/erick.sh: 13: /home/thunder/erick.sh: :OUTPUT: not found
/home/thunder/erick.sh: 14: /home/thunder/erick.sh: OSTROUTING: not found
/home/thunder/erick.sh: 15: /home/thunder/erick.sh: -A: not found
/home/thunder/erick.sh: 16: /home/thunder/erick.sh: -A: not found
/home/thunder/erick.sh: 17: /home/thunder/erick.sh: -A: not found
/home/thunder/erick.sh: 18: /home/thunder/erick.sh: -A: not found
/home/thunder/erick.sh: 19: /home/thunder/erick.sh: COMMIT: not found


y las que habia visto son estas,

iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129

ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100


gracias Leandro, mira que hasta ahora tuve tiempo de probar tu configuracion, Saludos

firecold

amigo Leandro cuando reinicias el servicio de squid me doy cuenta que te hace una cuenta de 60 segundos supongamos que se puede bajar a la mitas o realmente es necesario ese tiempo, Saludos

leandro1979

como estas
que raro que te de problemas el iptables a mi me funciona perfecto habria que revisar
recuerda que es un iptables restore no es un script
se puede bajar en realidad ese script de reinicio lo descargue de una pagina
saludos
leandro

firecold

Cita de: leandro1979 en Enero 15, 2013, 01:25:57 PM
como estas
que raro que te de problemas el iptables a mi me funciona perfecto habria que revisar
recuerda que es un iptables restore no es un script
se puede bajar en realidad ese script de reinicio lo descargue de una pagina
saludos
leandro

Gracias por responder leandro, estoy bien gracias a Dios, si fijate me da problemas, yo he visato una configuracion de iptables, te la voy a mostrar,

#!/bin/bash
iptables -F -t mangle
iptables -X -t mangle
iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT

iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT

iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129


y el segundo

#!/bin/bash
ebtables -t broute -A BROUTING -i eth1 -p ipv4 --ip-proto tcp --ip-dport 80 -j redirect --redirect-target ACCEPT

ebtables -t broute -A BROUTING -i eth0 -p ipv4 --ip-proto tcp --ip-sport 80 -j redirect --redirect-target ACCEPT

cd /proc/sys/net/bridge/
for i in *
do
  echo 0 > $i
done
unset i


y en el /etc/rc.local

/sbin/modprobe xt_TPROXY
/usr/sbin/squid
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
/root/frw1.sh
/root/frw2.sh
/sbin/route add -net 186.194.1.0/24 gw 186.194.1.1
exit 0


solo que esto viene de una guia algo vieja claro, usando ubuntu 10.04, pero igual seguire investigando para seguir avanzando en esta materia, y no habia tenido tenido tiempo para dedicarle a esto del tproxy, Saludos

leandro1979

como estas
esas configuraciones son para tproxy en modo bridge
en este caso estamos haciendo para modo paralelo

estas agregando las lineas que yo puse en un script.sh porque tiene q ser en un archivo comun y este deve serv iptables save

saludos
leandro

ajen0

Para configurarlo en modo bridge solo hay que cambiar las iptables? gracias.

rifranco202325

men y si solo q coje para proxy si se puede con eso y claro se comenta lo del tc o raptor y si se usa serviran esas reglas para usarla solo para el proxy

freedarwuin

Joe??????????????? tengo tiempo que  no veo a joe conectado o posteando algun comentario

firecold

Cita de: freedarwuin en Octubre 21, 2013, 07:01:50 AM
Joe??????????????? tengo tiempo que  no veo a joe conectado o posteando algun comentario

Tienes razon y creo que esto esta descepcionando a muchos y algunos creen que el proyecto esta abandonado, pero yo creo que joemg6 esta preparando algo bueno y cuando menos lo pensemos lo estara posteando, saludos

Zero

Recuerden que esto es software libre, por tanto muchas veces el tiempo que se le dedica a este tipo de proyectos es parte de nuestro tiempo libre y su desarrollo no representa una obligación, y a pesar de que no soy joemg, me tomo el atrevimiento de decir esto ya que he tenido casos (no en este foro claro esta) en que me han dicho (e incluso reprochado) porque lime root y otros de mis proyectos no han tenido novedades, pero la verdad es que hay novedades sin publicar, pero no están terminadas o simplemente se prefiere enviar un update con varias cosas pero por falta de tiempo es casi que imposible, en mi caso en particular casi cada 2 meses y cada 3 meses me enredo con el papeleo legal de la empresa, y entre mas se acerca el fin de un semestre también la U hace pupa, imagino que joemg esta pasando por uno de esos momentos en que todo se enreda y te deja sin tiempo.

Un abrazo y esperemos que joemg este bien.
En GNU/Linux formatear por cualquier cosa es de noobs, tu decides si eres uno...