Compilando Squid 4.6

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

Inicio Electrónica GNU/Linux Acerca de…

Compilando Squid 4.6


desde código fuente
Koratsuki / 04/03/2019

Soporte básico necesario:

# apt install arj bzip2 xz-utils cabextract cpio file lzma lhasa lzop rpm2cpio gzi
pax lzop rar unrar unzip zoo unace razor pyzor tnef ripole zip xz-utils lzma p7zi
multitail ccze

Instalar binarios necesarios para compilar Squid4:

# apt install logrotate acl attr autoconf bison nettle-dev build-essential libacl1
libaio-dev libattr1-dev libblkid-dev libbsd-dev libcap2-dev libcppunit-dev libldap
pkg-config libxml2-dev libdb-dev libgnutls28-dev openssl devscripts fakeroot libdb
libssl1.0-dev libcppunit-dev libecap3-dev libkrb5-dev comerr-dev libnetfilter-conn
libpam0g-dev libsasl2-dev

Configurando el sistema, si alguno de estos pasos da error de que existe o


que ya está, no hay problemas, continuar adelante:

# groupadd -g 13 proxy
# mkdir -p /var/spool/squid

1 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

# mkdir -p /var/log/squid
# mkdir -p /var/cache/squid
# useradd --system -g proxy -u 13 -d /var/spool/squid -M -s /usr/sbin/nologin prox
# chown proxy:proxy /var/spool/squid
# chown proxy:proxy /var/log/squid
# chown proxy:proxy /var/cache/squid

cd /opt
wget -c http://www.squid-cache.org/Versions/v4/squid-4.6.tar.xz
# tar xfv squid-4.6.tar.xz

Configuramos las opciones básicas que podamos necesitar:

./configure --srcdir=. --prefix=/usr --localstatedir=/var/lib/squid --libexecdir=/


--datadir=/usr/share/squid --sysconfdir=/etc/squid4 --with-default-user=proxy --wi
--with-open-ssl=/etc/ssl/openssl.cnf --with-openssl --enable-ssl --enable-ssl-crtd
--with-pidfile=/var/run/squid.pid --enable-removal-policies=lru,heap \
--enable-delay-pools --enable-cache-digests --enable-icap-client --enable-ecap --e
--with-large-files --with-filedescriptors=65536 \
--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB \
--enable-auth-digest=file,LDAP --enable-auth-negotiate=kerberos,wrapper --enable-a
--enable-linux-netfilter --with-swapdir=/var/cache/squid --enable-useragent-log --
--infodir=/usr/share/info --mandir=/usr/share/man --includedir=/usr/include --disa
--disable-dependency-tracking --disable-silent-rules --enable-inline --enable-asyn
--enable-storeio=ufs,aufs,diskd,rock --enable-eui --enable-esi --enable-icmp --ena
--enable-external-acl-helpers=file_userip,kerberos_ldap_group,time_quota,LDAP_grou
--enable-url-rewrite-helpers=fake --enable-translation --enable-epoll --enable-snm
--with-aio --with-pthreads --enable-arp --enable-arp-acl

Si necesitamos saber que significa cada opción:

./configure --help

Compilamos con 4 núcleos[multiprocesamiento]:

# make -j 4

Instalando:

# make install

2 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

Ahora debemos crear un archivo de inicio[squid o squid4 como usted desée


nombrarlo] para el squid:

cd /etc/init.d/
nano squid

Con el siguiente contenido:

#!/bin/sh

########################################################################
# squid4 Startup script for the SQUID HTTP proxy-cache.
#
# Version: @(#)squid4 init script 1.0 20-Feb-2019 leslie84@nauta.cu
########################################################################

### BEGIN INIT INFO


# Provides: squid
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Should-Start: $named
# Should-Stop: $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Squid HTTP Proxy version 4.x
### END INIT INFO

NAME=squid
DESC="Squid HTTP Proxy 4.x"
DAEMON=/usr/sbin/squid
PIDFILE=/var/run/$NAME.pid
CONFIG=/etc/squid4/squid.conf
SQUID_ARGS="-YC -f $CONFIG"

[ ! -f /etc/default/squid ] || . /etc/default/squid

. /lib/lsb/init-functions

PATH=/bin:/usr/bin:/sbin:/usr/sbin

[ -x $DAEMON ] || exit 0

ulimit -n 65535

3 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

find_cache_dir () {
w=" " # space tab
res=`sed -ne '
s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $CONFIG`
[ -n "$res" ] || res=$2
echo "$res"
}

find_cache_type () {
w=" " # space tab
res=`sed -ne '
s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $CONFIG`
[ -n "$res" ] || res=$2
echo "$res"
}

start () {
cache_dir=`find_cache_dir cache_dir`
cache_type=`find_cache_type cache_dir`

#
# Create spool dirs if they don't exist.
#
if [ "$cache_type" = "coss" -a -d "$cache_dir" -a ! -f "$cache_dir/stripe" ] || [
then
log_warning_msg "Creating $DESC cache structure"
$DAEMON -z -f $CONFIG
fi

umask 027
ulimit -n 65535
cd $cache_dir
start-stop-daemon --quiet --start \
--pidfile $PIDFILE \
--exec $DAEMON -- $SQUID_ARGS < /dev/null
return $?
}

stop () {
PID=`cat $PIDFILE 2>/dev/null`

4 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON


#
# Now we have to wait until squid has _really_ stopped.
#
sleep 2
if test -n "$PID" && kill -0 $PID 2>/dev/null
then
log_action_begin_msg " Waiting"
cnt=0
while kill -0 $PID 2>/dev/null
do
cnt=`expr $cnt + 1`
if [ $cnt -gt 24 ]
then
log_action_end_msg 1
return 1
fi
sleep 5
log_action_cont_msg ""
done
log_action_end_msg 0
return 0
else
return 0
fi
}

case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
if start ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
if stop ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
reload|force-reload)
log_action_msg "Reloading $DESC configuration files"

5 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

start-stop-daemon --stop --signal 1 \


--pidfile $PIDFILE --quiet --exec $DAEMON
log_action_end_msg 0
;;
restart)
log_daemon_msg "Restarting $DESC" "$NAME"
stop
if start ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
status)
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit 3
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|status}"
exit 3
;;
esac

exit 0

Acá lo adjunto por si tienen dudas. Después de hacer esto debemos darle
permisos de ejecución y hacerlo que inicie con el sistema:

chmod +x squid
update-rc.d squid defaults

Ahora sólo nos queda editar el archivo de configuración para adaptarlo a


nuestras necesidades. El archivo de configuración «squid.conf» se encuentra
en /etc/squid4, y es donde configuraremos los métodos de autenticación,
ACLs, puertos permitidos, etc.

cd /etc/squid4
nano squid.conf

Si observamos detenidamente las directivas el archivo de configuración de


Squid, veremos que esta listo para funcionar, pero… No logueará info acerca
de la navegación, no tendra ACLs limitando la conectividad y estará
configurado en modo transparente, es decir, no pedirá autenticación y se
navegará sin ningun tipo de restricción.

6 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

En squid4, al compilar desde fuentes, se genera un «squid.conf.documented»


que contiene todas y cada una de las opciones usadas bien explicadas, por si
existen dudas. Ahora bien, hagamos algo, añadamos lo suguiente, e iré
documentando cada opción:

# Apurar reinicio de Squid


shutdown_lifetime 1 seconds

# Puertos e interfaces por los que escuchará squid


http_port 0.0.0.0:3128
http_port 0.0.0.0:8080

# Logueo de información acerca de la navegación


cache_log stdio:/var/log/squid/cache.log
access_log stdio:/var/log/squid/access.log
cache_store_log stdio:/var/log/squid/store.log
netdb_filename stdio:/var/spool/squid/netdb.state

Guardamos y listo. Ahora reiniciamos squid:

/etc/init.d/squid restart

Y ejecutamos lo siguiente para que systemd actualice configuraciones:

systemctl daemon-reload

Luego de hecho esto, yo prefiero reiniciar el sistema.


Una vez reiniciado el sistema, podemos empezar a configurar el Squid4
normalmente, pero primero revisemos nos logs. Si todo inicia con
normalidad, proseguimos, si no, revisemos lo que hemos hecho hasta ahora y
corrijamos los posibles errores.

Ahora hacemos un alto acá. Haremos uso de dos herramientas muy


importantes, «multitail» y «ccze». Multitail permite ver en tiempo real[tail -f] la
salida estándard de varios archivos de logs, en este caso de logs, se sale de
su entorno con la letra «q». Ccze cuando es acompañado de «tail -f» nos
permite colorear los logs en la salida estándar, indicando con color «rojo» los
errores y fallas que se detecten y se detiene su ejecución con Ctrl + C.

Por ejemplo:

multitail /var/log/syslog /var/log/daemon.log

7 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

tail -f /var/log/squid/access.log | ccze

Estos dos comandos nos serán muy utiles a la hora de depurar errores en un
servicio determinado[squid, postfix, bind, ejabberd, syslog, etc], pues nos
ayudan a localizar los errores sólo mirando las salidas de los daemons. Los
errores, como ya dije más arriba, salen en color «rojo».

Por el momento es todo, en un próximo post, continuaré vinculando Squid


contra samba4 usando grupos y demás. Espero les sirva. Saludos a todos.

04/03/2019 de Configuración, Servidor. Etiquetas: cache, debian, navegacion, proxy,


squid

Artículos relacionados

Postfix+Doveco Access Point Squid 4.6 parte


t+MySQL en con una RPI 2
Debian10

← Ejabberd + Samba4 + Shared Roster Instalando Openmeetings en Debian 9 →

7 comentarios de “Compilando Squid 4.6 desde código


fuente”

Oniel dice: 07/03/2019 at 5:00 pm

Saludos Koratsuki y todos los involucrados en este blog,


necesito evacuar algunas dudas que tengo con respecto a
LDAP, DOVECOT Y POSTFIX, por favor enviáme un mensaje a
estos correos oniel.gzlez@gmail.com y oniel2015@nauta.cu,
Gracias

Responder

8 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

Ricardo dice: 08/03/2019 at 3:27 pm

Hola Koratsuki:
Tendras hecho un backup de proxmox de esta maquina? de
ser asi, de donde lo puedo descargar, mega por ejemplo.
Saludos

Responder

Koratsuki dice: 08/03/2019 at 3:32 pm

Lo que tengo es una máquina virtual en VMWare


Player 15, es decir, un vmdk. Si te sirve, te lo copio,
aunque hacer uno con el tutorial en Proxmox es 10
minutos, no creo que sea tan difícil…

Responder

Ricardo dice: 11/03/2019 at 8:32 am

la cosa es que me dice que faltan paquete a


la hora de hacer el update y despues no
encuentra ekl chorro de paquete de las
dependencias

Responder

9 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

Koratsuki dice:
13/03/2019 at 1:17 pm

Socio, revisa la integridad del repo


que tienes, que parece ser el
problema…

Responder

Arian dice:
01/04/2019 at 10:00 am

Bueno yo hice todo esto


en proxmox con un
template de debian 9 y
todo al quilo sin lio, ni
problemas,

Saludos

henry dice: 31/05/2019 at 3:10 pm

amigo tu explicación excelente pero estoy teniendo problemas


con https

Responder

Deja un comentario
Tu dirección de correo electrónico no será publicada. Los campos
obligatorios están marcados con *

Comentario

10 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

Nombre *

Correo electrónico *

Web

Guardar mi nombre, correo electrónico y sitio web en este navegador para la


próxima vez que haga un comentario.

Publicar el comentario

Por favor confirma que eres humano antes de comentar

Certified LPI000435175

11 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

SysAdmins de Cuba

12 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

Yo soy un SysAdmin de Cuba!

Search …

Enlaces que sigo

Blog Radioafición

Debian Holguín

DesdeAbreus

Sudo Linux

El blog de ArmandoF

El Camino Recorrido

GUTL

Interese

Tecnología al día

Tecnología UNICA

Tu Android

Cerámica y Blender

13 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

Enlaces Externos

Abadia Digital

Barra Punto

Cofradia Digital

DiarioTI

GenBeta

GenBeta Development

Hipertextual

System Inside

NeoTeo

Punto Delta

PuntoGeek

The Inquirer

Xataka

Entradas recientes

HTTP+TLS+ECC

Bloqueo de URLs/IPs en pfSense

Apache en 2019?

Update/Back-Up a un Samba4 ADDC

Observium en Debian10

Meta

Registro

Acceder

Feed de entradas

Feed de comentarios

WordPress.org

Con la tecnología de WordPress | Tema: Expound von Konstantin Kovshenin

14 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

15 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

16 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

17 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

18 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

19 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

20 of 21 2020-01-19 20:56
Compilando Squid 4.6 desde código fuenteAdmi... https://admlinux.cubava.cu/2019/03/04/compila...

21 of 21 2020-01-19 20:56

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy