29 dic

¿Cómo compilar Squid con SSL?

Como bien sabemos Squid con ssl no viene por defecto, para activar esta opción debemos compilar el paquete Squid con la opción –enable-ssl, entonces ¿cómo compilar squid con ssl?

En mi caso me hizo falta para arm, pero el procedimiento es igual para arquitecturas x86

Paquetes necesarios

[codeBusc]
sudo apt-get install devscripts build-essential fakeroot libssl-dev
[/code]

Código fuente de Squid3

apt-get source squid3
apt-get build-dep squid3

Dependencias

dpkg-source -x squid3_3.4.8-6+deb8u1.dsc
Preparación del paquete

Añadimos las opciones de compilación en el fichero rules


vim squid3-3.4.8/debian/rules

DEB_CONFIGURE_EXTRA_FLAGS := --datadir=/usr/share/squid3 \
                --sysconfdir=/etc/squid3 \
                --mandir=/usr/share/man \
                --enable-inline \
                --disable-arch-native \
                --enable-async-io=8 \
                --enable-storeio="ufs,aufs,diskd,rock" \
                --enable-removal-policies="lru,heap" \
                --enable-delay-pools \
                --enable-ssl \
                --enable-ssl-crtd \
Compilación de Squid con SSL

Y por último a compilar y a esperar, en mi caso fueron varias horas, pobre Raspberry

 dpkg-buildpackage -rfakeroot -b 

Una vez finalizado dispondremos de diferentes paquetes, los dos que nos hacen falta son

squid3_3.4.8-6+deb8u1_armhf.deb
squid3-common_3.4.8-6+deb8u1_all.deb

Una vez instalados podremos comprobar que mirando la versión de squid tendremos activada la opcion –enable-ssl 

[email protected]:~# squid3 -v | grep ssl
configure options:  '--build=arm-linux-gnueabihf' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-ssl' '--enable-ssl-crtd' '--enable-cache-digests' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,MSNT,MSNT-multi-domain,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,unix_group,wbinfo_group' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid3' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-build-info=Raspbian linux' '--enable-linux-netfilter' 'build_alias=arm-linux-gnueabihf' 'CFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security'

Con esto ya disponemos de Squid con SSL, ahora podemos añadir certificados para la creación del una conexión segura cliente servidor.