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.