HTTP-välityspalvelimen luominen Squidillä CentOS 7/8:ssa


Web-välityspalvelimet ovat olleet olemassa jo jonkin aikaa, ja miljoonat käyttäjät ympäri maailmaa ovat käyttäneet niitä. Niillä on monenlaisia käyttötarkoituksia, joista suosituin on online-anonymiteetti, mutta on myös muita tapoja, joilla voit hyödyntää verkkovälityspalvelimia. Tässä muutamia ideoita:

  • Anonymiteetti verkossa
  • Paranna verkkoturvallisuutta
  • Paranna latausaikoja
  • Estä haitallinen liikenne
  • Kirjaa online-toimintasi
  • Alueellisten rajoitusten kiertämiseksi
  • Joissakin tapauksissa voi vähentää kaistanleveyden käyttöä

Kuinka välityspalvelin toimii

Välityspalvelin on tietokone, jota käytetään välittäjänä asiakkaan ja muiden palvelimien välillä, joilta asiakas voi pyytää resursseja. Yksinkertainen esimerkki tästä on, kun asiakas tekee online-pyyntöjä (esimerkiksi haluaa avata web-sivun), hän muodostaa ensin yhteyden välityspalvelimeen.

Välityspalvelin tarkistaa sitten paikallisen levyvälimuistinsa ja jos tiedot löytyvät sieltä, se palauttaa tiedot asiakkaalle, jos se ei ole välimuistissa, se tekee pyynnön asiakkaan puolesta käyttämällä välityspalvelimen IP-osoitetta (eri kuin asiakkaat) ja palauttaa sitten tiedot asiakkaalle. Välityspalvelin yrittää tallentaa uudet tiedot välimuistiin ja käyttää niitä tuleviin samalle palvelimelle tehtäviin pyyntöihin.

Mikä on Squid Proxy

Squid on verkkovälityspalvelin, joka käytti monenlaisia organisaatioitani. Sitä käytetään usein välimuistipalvelimena, joka parantaa vasteaikoja ja vähentää kaistanleveyden käyttöä.

Tätä artikkelia varten asenna Squid Linode CentOS 7 VPS:ään ja käytän sitä HTTP-välityspalvelimena.

Kuinka asentaa Squid CentOS 7/8:aan

Ennen kuin aloitamme, sinun tulee tietää, että Squid:llä ei ole vähimmäisvaatimuksia, mutta RAM-muistin käyttömäärä voi vaihdella sen mukaan, mitä asiakkaita selaat Internetiä välityspalvelimen kautta.

Squid sisältyy perustietovarastoon, joten asennus on yksinkertaista ja suoraviivaista. Ennen kuin asennat sen, varmista kuitenkin, että paketit ovat ajan tasalla suorittamalla.

yum -y update

Jatka asentamalla squid, käynnistä ja ota se käyttöön järjestelmän käynnistyksen yhteydessä seuraavilla komennoilla.

yum -y install squid
systemctl start squid
systemctl  enable squid

Tässä vaiheessa Squid-verkkovälityspalvelimesi pitäisi olla jo käynnissä ja voit tarkistaa palvelun tilan käyttämällä.

systemctl status squid
Näytelähtö
 squid.service - Squid caching proxy
   Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago
 Main PID: 2005 (squid)
   CGroup: /system.slice/squid.service
           ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf
           ├─2007 (squid-1) -f /etc/squid/squid.conf
           └─2008 (logfile-daemon) /var/log/squid/access.log

Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy...
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids
Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started
Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.

Tässä on joitain tärkeitä tiedostojen sijainteja, joista sinun tulee olla tietoinen:

  • Squid-määritystiedosto: /etc/squid/squid.conf
  • Squid Access -loki: /var/log/squid/access.log
  • Squid-välimuistiloki: /var/log/squid/cache.log

Vähimmäismääritystiedosto squid.conf (ilman kommentteja) näyttää tältä:

acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
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 deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
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

Squidin määrittäminen HTTP-välityspalvelimeksi

Tässä näytämme, kuinka squid määritetään HTTP-välityspalvelimeksi käyttämällä vain asiakkaan IP-osoitetta todennusta varten.

Lisää Squid ACL:t

Jos haluat sallia IP-osoitteen pääsyn Internetiin uuden välityspalvelimesi kautta, sinun on lisättävä uusi ACL (käyttöoikeusluettelo) -rivi määritystiedostoon. .

vim /etc/squid/squid.conf

Rivi, jonka sinun pitäisi lisätä, on:

acl localnet src XX.XX.XX.XX

Missä XX.XX.XX.XX on todellinen asiakkaan IP-osoite, jonka haluat lisätä. Rivi tulee lisätä tiedoston alkuun, jossa ACL-luettelot on määritetty. On hyvä käytäntö lisätä ACL:n viereen kommentti, joka kertoo, kuka käyttää tätä IP-osoitetta.

On tärkeää huomata, että jos Squid sijaitsee paikallisen verkkosi ulkopuolella, sinun tulee lisätä asiakkaan julkinen IP-osoite.

Sinun on käynnistettävä Squid uudelleen, jotta uudet muutokset tulevat voimaan.

systemctl  restart squid

Avaa Squid-välityspalvelinportit

Kuten olet ehkä nähnyt asetustiedostossa, vain tietyt portit ovat sallittuja yhdistämiseen. Voit lisätä lisää muokkaamalla asetustiedostoa.

acl Safe_ports port XXX

Missä XXX on todellinen portti, jonka haluat ladata. Jälleen on hyvä idea jättää viereen kommentti, joka kertoo mihin porttia aiotaan käyttää.

Jotta muutokset tulevat voimaan, sinun on käynnistettävä squid uudelleen.

systemctl  restart squid

Squid Proxy Client Authentication

Todennäköisimmin haluat käyttäjien todentavan ennen välityspalvelimen käyttöä. Tätä tarkoitusta varten voit ottaa käyttöön HTTP-perustodennuksen. Se on helppo ja nopea määrittää.

Ensin sinun on asennettava httpd-tools.

yum -y install httpd-tools

Luodaan nyt tiedosto, joka tallentaa myöhemmin todennuksen käyttäjänimen. Squid toimii käyttäjän "squid" kanssa, joten tiedoston tulee olla kyseisen käyttäjän omistuksessa.

touch /etc/squid/passwd
chown squid: /etc/squid/passwd

Luomme nyt uuden käyttäjän nimeltä "proxyclient" ja asetamme sen salasanan.

htpasswd /etc/squid/passwd proxyclient

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

Nyt voit määrittää todennuksen avaamalla määritystiedoston.

vim /etc/squid/squid.conf

Lisää porttien ACL-luetteloiden jälkeen seuraavat rivit:

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

Tallenna tiedosto ja käynnistä squid uudelleen, jotta uudet muutokset tulevat voimaan:

systemctl restart squid

Estä verkkosivustot Squid Proxylla

Lopuksi luomme viimeisen ACL:n, joka auttaa meitä estämään ei-toivotut verkkosivustot. Luo ensin tiedosto, joka tallentaa mustalle listalle lisätyt sivustot.

touch /etc/squid/blacklisted_sites.acl

Voit lisätä joitain verkkotunnuksia, jotka haluat estää. Esimerkiksi:

.badsite1.com
.badsite2.com

Jatkuva piste käskee squidiä estämään kaikki viittaukset kyseisiin sivustoihin, mukaan lukien www.badsite1, subsite.badsite1.com, jne.

Avaa nyt Squidin määritystiedosto.

vim /etc/squid/squid.conf

Lisää heti porttien ACL-luetteloiden jälkeen seuraavat kaksi riviä:

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

Tallenna nyt tiedosto ja käynnistä squid uudelleen:

systemctl restart squid

Kun kaikki on määritetty oikein, voit nyt määrittää paikallisen asiakasselaimen tai käyttöjärjestelmän verkkoasetukset käyttämään squid HTTP-välityspalvelinta.

Johtopäätös

Tässä opetusohjelmassa opit asentamaan, suojaamaan ja määrittämään Squid HTTP Proxy -palvelimen itse. Juuri saamiesi tietojen avulla voit nyt lisätä perussuodatuksen Squidin kautta tulevalle ja lähtevälle liikenteelle.

Jos haluat tehdä enemmän, voit jopa määrittää squidin estämään jotkin verkkosivustot työaikana häiriötekijöiden estämiseksi. Jos sinulla on kysyttävää tai kommentteja, lähetä ne alla olevaan kommenttiosaan.