Kako postaviti "Squid Proxy" server na Ubuntu i Debian


Squid je najpopularniji HTTP web proxy server za keširanje i prosljeđivanje koji je koristio moj širok spektar kompanija za keširanje web stranica s web servera kako bi poboljšao brzinu web servera, smanjio vrijeme odgovora i smanjio korištenje propusnog opsega mreže.

Pročitajte također: Kako kreirati HTTP proxy koristeći Squid na CentOS 7

U ovom članku ćemo objasniti kako instalirati squid proxy server na Ubuntu i Debian distribucije i koristiti ga kao HTTP proxy server.

Kako instalirati Squid na Ubuntu

Prije nego što počnemo, trebali biste znati da Squid server nema nikakve zahtjeve, ali količina iskorištenja RAM-a može se razlikovati ovisno o klijentima koji pretražuju internet putem proxy servera.

Paket Squid je dostupan za instalaciju iz osnovnog Ubuntu spremišta, ali prije toga obavezno ažurirajte svoje pakete pokretanjem.

sudo apt update

Kada vaši paketi budu ažurirani, možete nastaviti dalje da instalirate squid i pokrenete ga i omogućite ga pri pokretanju sistema koristeći sljedeće naredbe.

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

U ovom trenutku vaš Squid web proxy bi već trebao biti pokrenut i pomoću njega možete provjeriti status usluge.

sudo systemctl status squid
Sample Output
● 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

Slijede neke važne lokacije squid datoteka kojih biste trebali biti svjesni:

  • Squid konfiguracijski fajl: /etc/squid/squid.conf
  • Dnevnik pristupa lignji: /var/log/squid/access.log
  • Dnevnik keša lignje: /var/log/squid/cache.log

Zadana konfiguracijska datoteka sadrži neke konfiguracijske direktive koje je potrebno konfigurirati da utječu na ponašanje Squid-a.

Sada otvorite ovu datoteku za uređivanje pomoću Vi editora i izvršite promjene kao što je prikazano ispod.

sudo vim /etc/squid/squid.conf

Sada možete pretraživati sljedeće redove i mijenjati ih prema zahtjevu, u Vi editoru, možete pretraživati te redove pritiskom na 'ESC' i upisivanjem "/ ” ključ za pisanje određenih linija koje treba tražiti.

  • http_port : Ovo je zadani port za HTTP proxy server, po defaultu je 3128, možete ga promijeniti na bilo koji drugi port koji želite, također možete dodati Oznaka “transparent ” na kraju reda kao što je http_port 8888 transparentan kako bi Squid proxy djelovao kao transparentni proxy ako želite.
  • http_access deny all : Ova linija nikome neće dozvoliti pristup HTTP proxy serveru, zato je morate promijeniti u http_access dozvoli svima da počnu koristiti vaš Squid proxy server .
  • visible_hostname : Ova direktiva se koristi za postavljanje specifičnog imena hosta na squid server. Možete dati bilo koje ime hosta squidu.

Nakon što napravite gore navedene promjene, možete ponovo pokrenuti Squid proxy server pomoću naredbe.

sudo systemctl restart squid

Konfiguriranje Squid-a kao HTTP proxyja na Ubuntu-u

U ovom odeljku o konfiguraciji squid-a objasnićemo vam kako da konfigurišete squid kao HTTP proxy koristeći samo IP adresu klijenta za autentifikaciju.

Dodajte Squid ACL-ove

Ako želite da dozvolite samo jednoj IP adresi da pristupi internetu preko vašeg novog proxy servera, morat ćete definirati novi acl (listu kontrole pristupa) u konfiguracijskoj datoteci.

sudo vim /etc/squid/squid.conf

acl pravilo koje biste trebali dodati je:

acl localnet src XX.XX.XX.XX

Gdje je XX.XX.XX.XX IP adresa klijentske mašine. Ovaj acl treba dodati na početak ACL odjeljka kao što je prikazano na sljedećem snimku ekrana.

Uvijek je dobra praksa definirati komentar pored ACL koji će opisati ko koristi ovu IP adresu, na primjer.

acl localnet src 192.168.0.102  # Boss IP address

Morat ćete ponovo pokrenuti Squid servis da nove promjene stupe na snagu.

sudo systemctl restart squid

Otvorite portove u Squid proxy-ju

Podrazumevano, samo određeni portovi su dozvoljeni u konfiguraciji squid, ako želite da dodate još samo ih definišite u konfiguracionoj datoteci kao što je prikazano.

acl Safe_ports port XXX

Gdje je XXX broj porta koji želite dopustiti. Opet je dobro definirati komentar pored acl koji će opisati za šta će se port koristiti.

Da bi promjene stupile na snagu, morat ćete ponovo pokrenuti squid još jednom.

sudo systemctl restart squid

Squid proxy provjera autentičnosti klijenta

Da biste omogućili korisnicima da se autentifikuju prije korištenja proxyja, morate omogućiti osnovnu http autentifikaciju u konfiguracijskoj datoteci, ali prije toga morate instalirati apache2-utils paket koristeći sljedeću naredbu.

sudo apt install apache2-utils

Sada kreirajte datoteku pod nazivom “passwd” koja će kasnije pohraniti korisničko ime za autentifikaciju. Squid radi sa korisnikom “proxy ” tako da fajl treba da bude u vlasništvu tog korisnika.

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

Sada ćemo kreirati novog korisnika pod nazivom “tecmint” i postaviti njegovu lozinku.

sudo htpasswd /etc/squid/passwd tecmint

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

Sada da omogućite osnovnu http autentifikaciju otvorite konfiguracionu datoteku.

sudo vim /etc/squid/squid.conf

Nakon portova ACL-ova dodajte sljedeće redove:

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

Sačuvajte datoteku i ponovo pokrenite squid kako bi nove promjene stupile na snagu:

sudo systemctl restart squid

Blokirajte web stranice na Squid proxyju

Da biste blokirali pristup neželjenim web lokacijama, prvo kreirajte datoteku pod nazivom “blacklisted_sites.acl” koja će u nju pohraniti web lokacije s crne liste.

sudo touch /etc/squid/blacklisted_sites.acl

Sada dodajte web stranice kojima želite blokirati pristup, na primjer.

.badsite1.com
.badsite2.com

Nastavna tačka obavještava squid da blokira sve reference na te stranice uključujući www.badsite1, subsite.badsite1.com itd.

Sada otvorite konfiguracijsku datoteku Squida.

sudo vim /etc/squid/squid.conf

Odmah nakon gornjih ACL-ova dodajte sljedeća dva reda:

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

Sada spremite datoteku i ponovo pokrenite squid:

sudo systemctl restart squid

Blokiraj specifičnu ključnu riječ pomoću lignje

Da biste blokirali listu ključnih riječi, prvo kreirajte datoteku pod nazivom “blockkeywords.lst” koja će u nju pohraniti ključne riječi sa crne liste.

sudo touch /etc/squid/blockkeywords.lst

Sada dodajte ključne riječi kojima želite blokirati pristup, na primjer.

facebook
instagram
gmail

Sada otvorite konfiguracijsku datoteku Squida i dodajte sljedeće pravilo.

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

Sada spremite datoteku i ponovo pokrenite squid:

sudo systemctl restart squid

Nakon što je sve precizno konfigurirano, sada možete konfigurirati mrežne postavke vašeg lokalnog klijenta ili mrežne postavke operativnog sistema da koristi vaš novokonfigurirani squid HTTP proxy.

Konfigurirajte klijenta da koristi Squid proxy

Sada da testirate da li vaš proxy server radi ili ne, možete otvoriti Firefox i otići na Uredi –> Preference –> Napredno –> Mreža –> Postavke i odabrati “Ručna konfiguracija proxy servera ” i unesite IP adresu i port vašeg proxy servera koji će se koristiti za sve veze kako slijedi.

Nakon što ispunite sve potrebne podatke o proksiju, moći ćete da surfujete Internetom koristeći svoj Squid proxy server, možete učiniti istu stvar u bilo kojem drugom pretraživaču ili programu koji želite.

Da biste bili sigurni da surfujete webom koristeći svoj proxy server, možete posjetiti http://www.ipaddresslocation.org/, u gornjem desnom uglu morate vidjeti istu IP adresu kao i vaš server IP adresa.

Za više dodatnih postavki konfiguracije, možete provjeriti zvaničnu dokumentaciju squid. Ako imate bilo kakvih pitanja ili komentara, dodajte ih u odeljku za komentare ispod.