Categories: Como se hace

Compilando Squid desde código fuente

Revisando ahora mismo veo que en el sitio de Squid, actualizaron a la versión 4.10, por lo que me interesa actualizarlo, debido a pequeños bugs[no tan críticos, pero bueno] y fixes que han salido y han parcheado. Esta corta guía es basada en Debian10, pero debería ser posible de aplicar usando Ubuntu.

Sin más preámbulo empezamos a meter las manos en el asunto. Primero que todo necesitaremos un contenedor de Debian10 dentro de un Proxmox, desde cero, sin nada instalado, importante si queremos que el proceso llege a un feliz término.

NOTA: No he probado actualizar directamente, pero imagino que sea como siempre, detener el proceso, compilar el programa nuevamente, revisar que todo haya finalizado OK, y reiniciar el programa y revisar los logs verificando que todo funciona como debe.

Entonces, en este CT en blanco, lo primero será instalarnos la paquetería necesaria para compilar Squid, por lo que ejecutaremos lo siguiente:

apt install -y logrotate acl attr autoconf bison nettle-dev build-essential libacl1-dev \
libaio-dev libattr1-dev libblkid-dev libbsd-dev libcap2-dev libcppunit-dev libldap2-dev \
pkg-config libxml2-dev libdb-dev libgnutls28-dev openssl devscripts fakeroot libdbi-perl \
libssl-dev libcppunit-dev libecap3-dev libkrb5-dev comerr-dev libnetfilter-conntrack-dev \
libpam0g-dev libsasl2-dev krb5-user msktutil libsasl2-modules-gssapi-mit libtdb-dev

Hecho esto, pasaremos a crear el usuario/grupo/carpetas, así como todo lo relacionado con la ejecución del Squid4:

groupadd -g 13 proxy
mkdir -p /var/spool/squid
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 proxy
chown proxy:proxy /var/spool/squid
chown proxy:proxy /var/log/squid
chown proxy:proxy /var/cache/squid

Ahora nos descargamos Squid:

cd /opt
wget -c http://www.squid-cache.org/Versions/v4/squid-4.10-20200123-r91d32285d.tar.gz
# tar xzfv squid-4.10-20200123-r91d32285d.tar.gz

Configuramos las opciones básicas que podamos necesitar:

./configure --srcdir=. --prefix=/usr --localstatedir=/var/lib/squid --libexecdir=/usr/lib/squid \
--datadir=/usr/share/squid --sysconfdir=/etc/squid4 --with-default-user=proxy --with-logdir=/var/log/squid \
--with-open-ssl=/etc/ssl/openssl.cnf --with-openssl --enable-ssl --enable-ssl-crtd --build=x86_64-linux-gnu \
--with-pidfile=/var/run/squid.pid --enable-removal-policies=lru,heap \
--enable-delay-pools --enable-cache-digests --enable-icap-client --enable-ecap --enable-follow-x-forwarded-for \
--with-large-files --with-filedescriptors=65536 --with-default-user=proxy \
--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-auth-ntlm=fake,SMB_LM \
--enable-linux-netfilter --with-swapdir=/var/cache/squid --enable-useragent-log --enable-htpc \
--infodir=/usr/share/info --mandir=/usr/share/man --includedir=/usr/include --disable-maintainer-mode \
--disable-dependency-tracking --disable-silent-rules --enable-inline --enable-async-io \
--enable-storeio=ufs,aufs,diskd,rock --enable-eui --enable-esi --enable-icmp --enable-zph-qos \
--enable-external-acl-helpers=file_userip,kerberos_ldap_group,time_quota,LDAP_group,session,SQL_session,unix_group,wbinfo_group \
--enable-url-rewrite-helpers=fake --enable-translation --enable-epoll --enable-snmp --enable-wccpv2 \
--with-aio --with-pthreads --enable-arp --enable-arp-acl

Si necesitamos saber que significa cada opción:

./configure --help

Compilamos con multiprocesamiento[mucho más rápido el proceso]:

make -j`nproc`

Instalando:

make install

Y listo, ya hemos compilado el Squid4. Ahora necesitamos el scrit de inicio el cual adjunto acá y debemos darle permisos en /etc/init.d y ponerlo a iniciar con el sistema:

cd /etc/init.d/
chmod 755 squid4
update-rc.d squid4 defaults

O para los amantes de SystemD:

systemctl enable squid4

Y ahora solo queda revisar la config que tengamos o que vayamos a usar y adaptarla a Squid4, que fijándome un poco no es tan difícil, cambiaron pequeños detalles solamente. Iniciamos Squid4 y completo el tema:

/etc/init.d/squid4 restart

o

systemctl start squid4

Ahora solo faltaría revisar, como ya dije anteriormente que todo vaya OK. Espero este post les sea de ayuda, cualquier duda, a cometarios. Un abrazo para todos.

¿De cuánta utilidad te ha parecido este contenido?

Leslie León Sinclair

View Comments

Share
Published by
Leslie León Sinclair

Recent Posts

SquidStat, analizador de logs de squid diferente y 100% cubano

Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…

4 días ago

n8n Transformando la Automatización de Flujos de Trabajo con Inteligencia Artificial

La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…

2 semanas ago

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

2 años ago

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

2 años ago

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

2 años ago