Cum se configurează serverul „Squid Proxy” pe Ubuntu și Debian


Squid este cel mai popular server proxy web HTTP de stocare și redirecționare, care a folosit gama mea largă de companii pentru a stoca în cache paginile web de pe un server web pentru a îmbunătăți viteza serverului web, a reduce timpii de răspuns și a reduce utilizarea lățimii de bandă a rețelei.

Citiți și: Cum să creați un proxy HTTP folosind Squid pe CentOS 7

În acest articol, vom explica cum să instalați un server proxy squid pe distribuțiile Ubuntu și Debian și să îl folosiți ca server proxy HTTP.

Cum se instalează Squid pe Ubuntu

Înainte de a începe, ar trebui să știți că serverul Squid nu are cerințe, dar cantitatea de utilizare a RAM poate diferi în funcție de clienții care navighează pe internet prin serverul proxy.

Pachetul Squid este disponibil pentru a fi instalat din depozitul Ubuntu de bază, dar înainte de aceasta asigurați-vă că actualizați pachetele rulând.

sudo apt update

Odată ce pachetele dvs. sunt actualizate, puteți continua să instalați squid și să îl porniți și să îl activați la pornirea sistemului folosind următoarele comenzi.

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

În acest moment, proxy-ul dvs. web Squid ar trebui să ruleze deja și puteți verifica starea serviciului cu ajutorul.

sudo systemctl status squid
Ieșire eșantion
● 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

Următoarele sunt câteva locații importante ale fișierelor de calmar de care ar trebui să fiți conștienți:

  • Fișier de configurare Squid: /etc/squid/squid.conf
  • Jurnal de acces Squid: /var/log/squid/access.log
  • Jurnalul Squid Cache: /var/log/squid/cache.log

Fișierul de configurare implicit conține câteva directive de configurare care trebuie configurate pentru a afecta comportamentul Squid.

Acum deschideți acest fișier pentru editare folosind editorul Vi și faceți modificări așa cum se arată mai jos.

sudo vim /etc/squid/squid.conf

Acum, puteți căuta despre următoarele linii și să le modificați după cum este solicitat, în editorul Vi, puteți căuta despre acele linii apăsând „ESC” și tastând „/ ” cheie pentru scrierea liniilor specifice de căutat.

  • http_port: acesta este portul implicit pentru serverul proxy HTTP, implicit este 3128, îl puteți schimba în orice alt port dorit, puteți adăuga și Eticheta „transparent” la sfârșitul rândului, cum ar fi http_port 8888 transparent, pentru ca proxy-ul Squid să acționeze ca un proxy transparent dacă doriți.
  • http_access deny all: această linie nu va permite nimănui să acceseze serverul proxy HTTP, de aceea trebuie să-l schimbați în http_access permit all pentru a începe să utilizați serverul proxy Squid .
  • nume_gazdă_vizibil : Această directivă este folosită pentru a seta numele de gazdă specific unui server squid. Puteți da orice nume de gazdă lui squid.

După efectuarea modificărilor de mai sus, puteți reporni serverul proxy Squid folosind comanda.

sudo systemctl restart squid

Configurarea Squid ca proxy HTTP pe Ubuntu

În această secțiune de configurare squid, vă vom explica cum să configurați squid ca proxy HTTP folosind doar adresa IP a clientului pentru autentificare.

Adăugați ACL-uri Squid

Dacă doriți să permiteți o singură adresă IP să acceseze internetul prin noul dvs. server proxy, va trebui să definiți o nouă acl (listă de control acces) în fișierul de configurare.

sudo vim /etc/squid/squid.conf

Regula acl pe care ar trebui să o adăugați este:

acl localnet src XX.XX.XX.XX

Unde XX.XX.XX.XX este adresa IP a computerului client. Acest acl ar trebui adăugat la începutul secțiunii ACL, așa cum se arată în următoarea captură de ecran.

Este întotdeauna o practică bună să definiți un comentariu lângă ACL care va descrie cine folosește această adresă IP, de exemplu.

acl localnet src 192.168.0.102  # Boss IP address

Va trebui să reporniți serviciul Squid pentru a intra în vigoare noile modificări.

sudo systemctl restart squid

Deschideți porturi în Squid Proxy

În mod implicit, doar anumite porturi sunt permise în configurația squid, dacă doriți să adăugați mai multe, definiți-le în fișierul de configurare așa cum se arată.

acl Safe_ports port XXX

Unde XXX este numărul portului pe care doriți să-l permiteți. Din nou, este o practică bună să definiți un comentariu lângă acl care va descrie pentru ce va fi folosit portul.

Pentru ca modificările să aibă efect, va trebui să reporniți squid încă o dată.

sudo systemctl restart squid

Autentificare client Squid Proxy

Pentru a permite utilizatorilor să se autentifice înainte de a utiliza proxy-ul, trebuie să activați autentificarea http de bază în fișierul de configurare, dar înainte de aceasta trebuie să instalați pachetul apache2-utils folosind următoarea comandă.

sudo apt install apache2-utils

Acum creați un fișier numit „passwd” care va stoca ulterior numele de utilizator pentru autentificare. Squid rulează cu utilizatorul „proxy”, așa că fișierul ar trebui să fie deținut de acel utilizator.

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

Acum vom crea un nou utilizator numit „tecmint” și îi vom configura parola.

sudo htpasswd /etc/squid/passwd tecmint

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

Acum, pentru a activa autentificarea http de bază, deschideți fișierul de configurare.

sudo vim /etc/squid/squid.conf

După porturile ACL-urile adăugați următoarele linii:

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

Salvați fișierul și reporniți squid, astfel încât noile modificări să aibă efect:

sudo systemctl restart squid

Blocați site-uri web pe Squid Proxy

Pentru a bloca accesul la site-uri web nedorite, creați mai întâi un fișier numit „blacklisted_sites.acl” care va stoca site-urile aflate pe lista neagră în el.

sudo touch /etc/squid/blacklisted_sites.acl

Acum adăugați site-urile web pentru care doriți să blocați accesul, de exemplu.

.badsite1.com
.badsite2.com

Punctul care urmează îl informează pe calmar să blocheze toate referințele la site-urile respective, inclusiv www.badsite1, subsite.badsite1.com etc.

Acum deschideți fișierul de configurare al lui Squid.

sudo vim /etc/squid/squid.conf

Imediat după ACL-urile de mai sus adăugați următoarele două linii:

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

Acum salvați fișierul și reporniți squid:

sudo systemctl restart squid

Blocați cuvântul cheie specific cu Squid

Pentru a bloca o listă de cuvinte cheie, creați mai întâi un fișier numit „blockkeywords.lst” care va stoca cuvintele cheie din lista neagră în el.

sudo touch /etc/squid/blockkeywords.lst

Acum adăugați cuvintele cheie pentru care doriți să blocați accesul, de exemplu.

facebook
instagram
gmail

Acum deschideți fișierul de configurare al lui Squid și adăugați următoarea regulă.

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

Acum salvați fișierul și reporniți squid:

sudo systemctl restart squid

Odată ce totul este configurat cu precizie, acum puteți configura browserul web client local sau setările de rețea ale sistemului de operare pentru a utiliza proxy-ul HTTP squid nou configurat.

Configurați clientul pentru a utiliza Squid Proxy

Acum, pentru a testa dacă serverul dumneavoastră proxy funcționează sau nu, puteți deschide Firefox și accesați Editare –> Preferințe –> Avansat –> Rețea –> Setări și selectați „Configurare manuală a proxy-ului ” și introduceți adresa IP a serverului proxy și portul de utilizat pentru toate conexiunile, după cum urmează.

Odată ce completați toate detaliile proxy necesare, veți putea naviga pe Web folosind serverul proxy Squid, puteți face același lucru în orice alt browser sau program doriți.

Pentru a vă asigura că navigați pe web folosind serverul proxy, puteți vizita http://www.ipaddresslocation.org/, în colțul din dreapta sus trebuie să vedeți aceeași adresă IP ca și serverul dvs. Adresa IP.

Pentru mai multe setări de configurare suplimentare, puteți verifica documentația oficială squid. Dacă aveți întrebări sau comentarii, vă rugăm să le adăugați în secțiunea de comentarii de mai jos.