Com configurar el servidor Squid Proxy a Ubuntu i Debian


Squid és un servidor intermediari web HTTP d'emmagatzematge i reenviament més popular que va utilitzar la meva àmplia gamma d'empreses per emmagatzemar a la memòria cau pàgines web des d'un servidor web per millorar la velocitat del servidor web, reduir els temps de resposta i reduir l'ús de l'ample de banda de la xarxa.

En aquest article, explicarem com instal·lar un servidor intermediari squid a les distribucions Ubuntu i Debian i utilitzar-lo com a servidor intermediari HTTP.

Com instal·lar Squid a Ubuntu

Abans de començar, heu de saber que el servidor Squid no té cap requisit, però la quantitat d'utilització de la memòria RAM pot variar segons els clients que naveguen per Internet mitjançant el servidor intermediari.

El paquet Squid està disponible per instal·lar-lo des del repositori base d'Ubuntu, però abans assegureu-vos d'actualitzar els vostres paquets executant-lo.

$ sudo apt update

Un cop els vostres paquets estiguin actualitzats, podeu continuar amb la instal·lació de squid i iniciar-lo i activar-lo a l'inici del sistema mitjançant les ordres següents.

$ sudo apt -y install squid
$ sudo systemctl start squid
$ sudo systemctl enable squid

En aquest moment, el vostre servidor intermediari web Squid ja hauria d'estar en execució i podeu verificar l'estat del servei amb.

$ sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

A continuació es mostren algunes ubicacions importants dels fitxers de calamar que hauríeu de tenir en compte:

  • Fitxer de configuració de Squid: /etc/squid/squid.conf
  • Registre d'accés a Squid: /var/log/squid/access.log
  • Registre de la memòria cau de Squid: /var/log/squid/cache.log

El fitxer de configuració predeterminat conté algunes directives de configuració que s'han de configurar per afectar el comportament del Squid.

Ara obriu aquest fitxer per editar-lo amb l'editor Vi i feu els canvis tal com es mostra a continuació.

$ sudo vim /etc/squid/squid.conf

Ara, podeu cercar les línies següents i canviar-les segons se sol·liciti, a l'editor Vi, podeu cercar aquestes línies prement 'ESC' i escrivint la tecla \/ per escriure l'específic. línies a buscar.

  • http_port : aquest és el port predeterminat per al servidor intermediari HTTP, per defecte és 3128, podeu canviar-lo a qualsevol altre port que vulgueu, també podeu afegir el \transparent etiqueta al final de la línia com http_port 8888 transparent per fer que el servidor intermediari Squid actuï com un intermediari transparent si vols.
  • http_access deny all : aquesta línia no permetrà que ningú accedeixi al servidor intermediari HTTP, per això cal canviar-lo a http_access permet que tots comencin a utilitzar el servidor intermediari Squid.
  • visible_hostname : aquesta directiva s'utilitza per establir el nom d'amfitrió específic a un servidor squid. Podeu donar qualsevol nom d'amfitrió al calamar.

Després de fer els canvis anteriors, podeu reiniciar el servidor intermediari Squid mitjançant l'ordre.

$ sudo systemctl restart squid

Configuració de Squid com a servidor intermediari HTTP a Ubuntu

En aquesta secció de configuració de squid, us explicarem com configurar squid com a servidor intermediari HTTP utilitzant només l'adreça IP del client per a l'autenticació.

Si voleu permetre que només una adreça IP accedeixi a Internet mitjançant el vostre nou servidor intermediari, haureu de definir un nou acl (llista de control d'accés) al fitxer de configuració.

$ sudo vim /etc/squid/squid.conf

La regla acl que hauríeu d'afegir és:

acl localnet src XX.XX.XX.XX

On XX.XX.XX.XX és l'adreça IP de la màquina client. Aquesta acl s'ha d'afegir al principi de la secció de l'ACL, tal com es mostra a la captura de pantalla següent.

Sempre és una bona pràctica definir un comentari al costat de l'ACL que descrigui qui utilitza aquesta adreça IP, per exemple.

acl localnet src 192.168.0.102  # Boss IP address

Haureu de reiniciar el servei Squid per fer efectius els nous canvis.

$ sudo systemctl restart squid

Per defecte, només es permeten certs ports a la configuració de squid, si en voleu afegir-ne més, definiu-los al fitxer de configuració tal com es mostra.

acl Safe_ports port XXX

On XXX és el número de port que voleu permetre. De nou, és una bona pràctica definir un comentari al costat d'acl que descrigui per a què s'utilitzarà el port.

Perquè els canvis tinguin efecte, haureu de reiniciar el calamar una vegada més.

$ sudo systemctl restart squid

Per permetre que els usuaris s'autentiquin abans d'utilitzar el servidor intermediari, heu d'habilitar l'autenticació http bàsica al fitxer de configuració, però abans heu d'instal·lar el paquet apache2-utils mitjançant l'ordre següent.

$ sudo apt install apache2-utils

Ara creeu un fitxer anomenat passwd que després emmagatzemarà el nom d'usuari per a l'autenticació. Squid s'executa amb l'usuari \proxy, de manera que el fitxer hauria de ser propietat d'aquest usuari.

$ sudo touch /etc/squid/passwd
$ sudo chown proxy: /etc/squid/passwd
$ ls -l /etc/squid/passwd

Ara crearem un nou usuari anomenat \tecmint i configurarem la seva contrasenya.

$ sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

Ara, per habilitar l'autenticació http bàsica, obriu el fitxer de configuració.

$ sudo vim /etc/squid/squid.conf

Després de les ACL dels ports, afegiu les línies següents:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

Deseu el fitxer i reinicieu squid perquè els nous canvis tinguin efecte:

$ sudo systemctl restart squid

Per bloquejar l'accés a llocs web no desitjats, primer creeu un fitxer anomenat blacklisted_sites.acl que emmagatzemarà els llocs de la llista negra.

$ sudo touch /etc/squid/blacklisted_sites.acl

Ara afegiu els llocs web als quals voleu bloquejar l'accés, per exemple.

.badsite1.com
.badsite2.com

El punt de procedència informa a Squid que bloqueja totes les referències a aquests llocs, inclosos www.badsite1, subsite.badsite1.com, etc.

Ara obriu el fitxer de configuració de Squid.

$ sudo vim /etc/squid/squid.conf

Just després de les ACL anteriors, afegiu les dues línies següents:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Ara deseu el fitxer i reinicieu squid:

$ sudo systemctl restart squid

Per bloquejar una llista de paraules clau, primer creeu un fitxer anomenat blockkeywords.lst que emmagatzemarà les paraules clau de la llista negra.

$ sudo touch /etc/squid/blockkeywords.lst

Ara afegiu les paraules clau a les quals voleu bloquejar l'accés, per exemple.

facebook
instagram
gmail

Ara obriu el fitxer de configuració de Squid i afegiu la regla següent.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Ara deseu el fitxer i reinicieu squid:

$ sudo systemctl restart squid

Un cop tot estigui configurat amb precisió, ara podeu configurar el navegador web del vostre client local o la configuració de xarxa del sistema operatiu per utilitzar el vostre servidor intermediari HTTP de calamar recentment configurat.

Configura el client per utilitzar Squid Proxy

Ara, per comprovar que el vostre servidor intermediari funciona o no, podeu obrir Firefox i anar a Edita –> Preferències –> Avançat –> Xarxa –> Configuració i seleccioneu \Configuració manual del servidor intermediari i introduïu l'adreça IP i el port del vostre servidor intermediari a s'utilitzarà per a totes les connexions tal com es mostra a continuació.

Un cop hàgiu omplert tots els detalls del proxy requerits, podreu navegar per la web mitjançant el vostre servidor proxy Squid, podeu fer el mateix en qualsevol altre navegador o programa que vulgueu.

Per assegurar-vos que esteu navegant per la web amb el vostre servidor intermediari, podeu visitar http://www.ipaddresslocation.org/, a l'extrem superior dret heu de veure la mateixa adreça IP que l'adreça IP del vostre servidor.

Per obtenir més opcions de configuració addicionals, podeu consultar la documentació oficial de squid. Si teniu cap pregunta o comentari, afegiu-los a la secció de comentaris a continuació.