L'Squid és segurament el servidor proxy i cache web open source més famós (GNU General Public License).
Suporta diferents protocols però s'utilitza principalment per HTTP i FTP. Té suport parcial per SSL i TLS.
S'utilitza principalment per emmagatzemar pàgines web en cache i millorar la connexió a Internet.
No proveeïx de sistemes de filtratge (es pot fer amb add-ons).
Se li poden incorporar Add-ons (SquidGuard,Calamaris, ufdbGuard).
Utilitzem la següent sentència des d'un terminal per instal·lar el programari.
$ sudo apt-get install squid3 [sudo] password for joel: S'està llegint la llista de paquets... Fet S'està construint l'arbre de dependències S'està llegint la informació de l'estat... Fet Els paquets següents s'han instal·lat automàticament i ja no són necessaris: php-fpdf libphp-snoopy libaccess-bridge-java-jni mimetex libaccess-bridge-java libphp-pclzip wwwconfig-common smarty libjs-mootools libphp-magpierss libjs-yui php5-mcrypt javascript-common dbconfig-common Empreu «apt-get autoremove» per a suprimir-los. S'instal·laran els següents paquets extres: squid-langpack squid3-common Paquets suggerits: squidclient squid-cgi resolvconf S'instal·laran els paquets NOUS següents: squid-langpack squid3 squid3-common 0 actualitzats, 3 nous a instal·lar, 0 a suprimir i 4 no actualitzats. Es necessita obtenir 1766 kB d'arxius. Després d'aquesta operació s'empraran 10,3 MB d'espai en disc addicional. Voleu continuar [S/n]? s AVÍS: No es poden autenticar els següents paquets! squid-langpack squid3-common squid3 Voleu instal·lar aquests paquets sense verificar-los [s/N]? s Bai:1 http://es.archive.ubuntu.com/ubuntu/ natty/main squid-langpack all 20110214-1 [235 kB] Bai:2 http://es.archive.ubuntu.com/ubuntu/ natty-updates/universe squid3-common all 3.1.11-1ubuntu0.1 [118 kB] Bai:3 http://es.archive.ubuntu.com/ubuntu/ natty-updates/universe squid3 i386 3.1.11-1ubuntu0.1 [1413 kB] 1766 kB baixats en 0s (10,4 MB/s) S'està seleccionant el paquet squid-langpack prèviament no seleccionat. (S'està llegint la base de dades… hi ha 359109 fitxers i directoris instaŀlats actualment.) S'està desempaquetant squid-langpack (de …/squid-langpack_20110214-1_all.deb)… S'està seleccionant el paquet squid3-common prèviament no seleccionat. S'està desempaquetant squid3-common (de …/squid3-common_3.1.11-1ubuntu0.1_all.deb)… S'està seleccionant el paquet squid3 prèviament no seleccionat. S'està desempaquetant squid3 (de …/squid3_3.1.11-1ubuntu0.1_i386.deb)… S'estan processant els activadors per a man-db… S'estan processant els activadors per a ureadahead… ureadahead will be reprofiled on next reboot S'estan processant els activadors per a ufw… S'està configurant squid-langpack (20110214-1)… S'està configurant squid3-common (3.1.11-1ubuntu0.1)… S'està configurant squid3 (3.1.11-1ubuntu0.1)… Creating Squid HTTP proxy 3.x spool directory structure 2013/01/08 18:14:27| Creating Swap Directories * Restarting Squid HTTP Proxy 3.x squid3 * Creating Squid HTTP Proxy 3.x cache structure 2013/01/08 18:14:30| Creating Swap Directories [ OK ]
Comprovem el port que utilitza:
$ nmap localhost Starting Nmap 5.21 ( http://nmap.org ) at 2013-01-08 18:17 CET Nmap scan report for localhost (127.0.0.1) Host is up (0.00062s latency). Not shown: 991 closed ports PORT STATE SERVICE 22/tcp open ssh 23/tcp open telnet 80/tcp open http 139/tcp open netbios-ssn 445/tcp open microsoft-ds 631/tcp open ipp 3128/tcp open squid-http 3306/tcp open mysql 6000/tcp open X11 Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds
$ cd /usr/src $ sudo apt-get install dpkg-dev apache2 squid-langpack $ sudo apt-get build-dep squid3 squid-langpack squid-cgi $ sudo apt-get source squid3
Editem l'arxiu squid3-3.1.11/debian/rules i afegim les línies en negreta:
#! /usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/class/autotools.mk include /usr/share/cdbs/1/rules/dpatch.mk INSTALLDIR := $(CURDIR)/debian/tmp datadir=/usr/share/squid3 DEB_DH_INSTALL_SOURCEDIR := $(INSTALLDIR) DEB_INSTALL_DOCS_squid3-common := CONTRIBUTORS CREDITS QUICKSTART RELEASENOTES. SPONSORS DEB_CONFIGURE_EXTRA_FLAGS := --datadir=/usr/share/squid3 \ --sysconfdir=/etc/squid3 \ --mandir=/usr/share/man \ --with-cppunit-basedir=/usr \ --enable-inline \ --enable-async-io=8 \ --enable-storeio="ufs,aufs,diskd" \ --enable-removal-policies="lru,heap" \ --enable-delay-pools \ --enable-cache-digests \ --enable-underscores \ --enable-icap-client \ --enable-follow-x-forwarded-for \ --enable-auth="basic,digest,ntlm,negotiate" \ --enable-basic-auth-helpers="LDAP,MSNT,NCSA,PAM,SASL,SMB,YP,DB, --enable-ntlm-auth-helpers="smb_lm," \ --enable-digest-auth-helpers="ldap,password" \ --enable-negotiate-auth-helpers="squid_kerb_auth" \ --enable-external-acl-helpers="ip_user,ldap_group,session,unix_ --enable-arp-acl \ --enable-esi \ --enable-zph-qos \ --enable-snmp \ --enable-useragent-log \ --disable-translation \ --with-logdir=/var/log/squid3 \ --with-pidfile=/var/run/squid3.pid \ --with-filedescriptors=65536 \ --with-large-files \ --with-default-user=proxy
Ara construim el paquet:
$ sudo apt-get -b source squid3
El procés crearà diferents paquets debian:
$ ls *deb squid3_3.1.11-1ubuntu0.1_i386.deb squid-cgi_3.1.11-1ubuntu0.1_i386.deb squid3-common_3.1.11-1ubuntu0.1_all.deb squidclient_3.1.11-1ubuntu0.1_i386.deb squid3-dbg_3.1.11-1ubuntu0.1_i386.deb
Instal·lem el paquet nou:
$ sudo dpkg -i squid*.deb (S'està llegint la base de dades… hi ha 362003 fitxers i directoris instaŀlats actualment.) S'està preparant per a reemplaçar squid3 3.1.11-1ubuntu0.1 (fent servir squid3_3.1.11-1ubuntu0.1_i386.deb)… S'està desempaquetant el reemplaçament de squid3… S'està preparant per a reemplaçar squid3-common 3.1.11-1ubuntu0.1 (fent servir squid3-common_3.1.11-1ubuntu0.1_all.deb)… S'està desempaquetant el reemplaçament de squid3-common… S'està seleccionant el paquet squid3-dbg prèviament no seleccionat. S'està desempaquetant squid3-dbg (de squid3-dbg_3.1.11-1ubuntu0.1_i386.deb)… S'està seleccionant el paquet squid-cgi prèviament no seleccionat. S'està desempaquetant squid-cgi (de squid-cgi_3.1.11-1ubuntu0.1_i386.deb)… S'està seleccionant el paquet squidclient prèviament no seleccionat. S'està desempaquetant squidclient (de squidclient_3.1.11-1ubuntu0.1_i386.deb)… S'està configurant squid3-common (3.1.11-1ubuntu0.1)… S'està configurant squid-cgi (3.1.11-1ubuntu0.1)… S'està configurant squidclient (3.1.11-1ubuntu0.1)… S'està configurant squid3 (3.1.11-1ubuntu0.1)… S'està instaŀlant una versió nova del fitxer de configuració /etc/squid3/squid.conf… Creating Squid HTTP proxy 3.x spool directory structure 2013/01/08 19:04:21| Squid is already running! Process ID 7295 * Restarting Squid HTTP Proxy 3.x squid3 * Waiting... * ... * ... * ... * ... * ... * ... [ OK ] * Creating Squid HTTP Proxy 3.x cache structure 2013/01/08 19:04:53| Creating Swap Directories [ OK ] S'estan processant els activadors per a ureadahead… S'estan processant els activadors per a ufw… S'estan processant els activadors per a man-db… S'està configurant squid3-dbg (3.1.11-1ubuntu0.1)…
Comprovem que el paquet que acabem d'instal·lar té activat useragent:
$ squid3 -v | grep agent '--enable-esi' '--enable-zph-qos' '--enable-snmp' '--enable-useragent-log' '--disable-translation' '--with-logdir=/var/log/squid3'
A continuació marquem el paquet com a hold per que no s'actualitzin els paquets creant l'script hold_squid.sh. Afegim el següent:
#!/bin/bash sudo aptitude hold squid3 squid-cgi squid3-cgi squid3-common squid3-dbg squidclient sudo aptitude update sudo aptitude safe-upgrade sudo bash -c "echo squid3 hold | dpkg --set-selections" sudo bash -c "echo squid3-cgi hold | dpkg --set-selections" sudo bash -c "echo squid-cgi hold | dpkg --set-selections" sudo bash -c "echo squid3-common hold | dpkg --set-selections" sudo bash -c "echo squid3-dbg hold | dpkg --set-selections" sudo bash -c "echo squidclient hold | dpkg --set-selections" sudo apt-get update sudo apt-get upgrade
Donem permisos d'execució a l'script:
$ sudo chmod +x hold_squid.sh
L'executem:
$ ./hold_squid.sh
El fitxer de configuració principal es troba a /etc/squid3/squid.conf.
Podem eliminar les línies de comentaris amb la comanda:
$ cat squid.conf | grep -v '^#\|^$\|^;' acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access allow manager localhost http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost http_access deny all http_port 3128 hierarchy_stoplist cgi-bin ? coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320
Fem una còpia del fitxer original i esborrem els comentaris d'aquest:
$ cd /etc/squid3 $ sudo cp squid.conf squid.conf.copia $ sudo bash -c "cat squid.conf | grep -i -v '^#\|^$\|^;' > squid.conf.backup" $ sudo cp squid.conf.backup squid.conf