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?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

3 comentarios

  1. Google Chrome 85.0.4183.83 Google Chrome 85.0.4183.83 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36

    Excelente bro, me han servido algunos de los tips, como el make -j `nproc`. Lo de instalar logrotate, recuerdo haber leído que SQUID tiene su propia rutina de manejo y rotación de logs, con lo cual no sé si es necesario. Con respecto al script de inicio lo voy a probar, aunque calculo me dará algún error ya que no uso caché en disco en mi setup.
    Saludos desde argentina.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*