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.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0
Es mejor hacer: make -k -j `nproc` || make && make install
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.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0
Puedes ver una version de lo mismo mas actual. Con un ejemplo detallado de como configurarlo. https://www.sysadminsdecuba.com/2020/06/megatutorial-squid-5-segunda-parte/