Kaip sukurti HTTP tarpinį serverį naudojant „Squid“ „CentOS 7/8“.


Žiniatinklio tarpiniai serveriai egzistuoja jau gana seniai ir juos naudoja milijonai vartotojų visame pasaulyje. Jie skirti įvairiems tikslams, populiariausias yra anonimiškumas internete, tačiau yra ir kitų būdų, kaip galite pasinaudoti žiniatinklio tarpiniais serveriais. Štai keletas idėjų:

  • Anonimiškumas internete
  • Pagerinkite saugumą internete
  • Pagerinkite įkrovimo laiką
  • Blokuoti kenkėjišką srautą
  • Užregistruokite savo veiklą internete
  • Norėdami apeiti regioninius apribojimus
  • Kai kuriais atvejais gali sumažinti pralaidumo naudojimą

Kaip veikia tarpinis serveris

Tarpinis serveris yra kompiuteris, kuris naudojamas kaip tarpininkas tarp kliento ir kitų serverių, iš kurių klientas gali prašyti išteklių. Paprastas pavyzdys, kai klientas pateikia užklausas internetu (pavyzdžiui, nori atidaryti tinklalapį), jis pirmiausia prisijungia prie tarpinio serverio.

Tada įgaliotasis serveris patikrina savo vietinio disko talpyklą ir, jei ten galima rasti duomenis, jis grąžins duomenis klientui, o jei nebus išsaugotas talpykloje, pateiks užklausą kliento vardu naudodamas tarpinio serverio IP adresą (skirtingą nuo klientams) ir grąžinti duomenis klientui. Tarpinis serveris bandys išsaugoti naujus duomenis talpykloje ir naudos juos būsimoms užklausoms, pateiktoms tam pačiam serveriui.

Kas yra Squid Proxy

Squid yra žiniatinklio tarpinis serveris, kuris naudojo įvairias mano organizacijas. Jis dažnai naudojamas kaip talpyklos tarpinis serveris ir pagerina atsako laiką bei sumažina pralaidumo naudojimą.

Šiame straipsnyje aš įdiegsiu Squid Linode CentOS 7 VPS ir naudosiu jį kaip HTTP tarpinį serverį.

Kaip įdiegti „Squid“ „CentOS 7/8“.

Prieš pradėdami, turėtumėte žinoti, kad Squid nekelia jokių minimalių reikalavimų, tačiau RAM naudojimo kiekis gali skirtis priklausomai nuo klientų, naršančių internete per tarpinį serverį.

Squid yra įtrauktas į bazinę saugyklą, todėl diegimas yra paprastas ir nesudėtingas. Tačiau prieš diegdami įsitikinkite, kad jūsų paketai yra atnaujinti.

yum -y update

Tęskite įdiegdami squid, paleiskite ir įjunkite jį paleidžiant sistemą naudodami šias komandas.

yum -y install squid
systemctl start squid
systemctl  enable squid

Šiuo metu jūsų Squid žiniatinklio tarpinis serveris jau turėtų veikti ir jūs galite patikrinti paslaugos būseną naudodami.

systemctl status squid
Pavyzdžio išvestis
 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.

Štai keletas svarbių failų vietų, kurias turėtumėte žinoti:

  • Squid konfigūracijos failas: /etc/squid/squid.conf
  • Squid Access žurnalas: /var/log/squid/access.log
  • Squid talpyklos žurnalas: /var/log/squid/cache.log

Mažiausias squid.conf konfigūracijos failas (be komentarų) atrodo taip:

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

Squid konfigūravimas kaip HTTP tarpinis serveris

Čia parodysime, kaip sukonfigūruoti kalmarus kaip HTTP tarpinį serverį, naudojant tik kliento IP adresą autentifikavimui.

Pridėkite Squid ACL

Jei norite leisti IP adresui pasiekti žiniatinklį per naują tarpinį serverį, konfigūracijos faile turėsite pridėti naują ACL (prieigos kontrolės sąrašas) eilutę. .

vim /etc/squid/squid.conf

Eilute, kurią turėtumėte pridėti, yra:

acl localnet src XX.XX.XX.XX

Kur XX.XX.XX.XX yra tikrasis kliento IP adresas, kurį norite pridėti. Eilutę reikia pridėti failo, kuriame yra apibrėžtos ACL, pradžioje. Gera praktika yra pridėti komentarą prie ACL, kuriame bus aprašyta, kas naudoja šį IP adresą.

Svarbu pažymėti, kad jei Squid yra už jūsų vietinio tinklo ribų, turėtumėte pridėti viešąjį kliento IP adresą.

Turėsite iš naujo paleisti Squid, kad nauji pakeitimai įsigaliotų.

systemctl  restart squid

Atidarykite „Squid“ tarpinio serverio prievadus

Kaip galbūt matėte konfigūracijos faile, tik tam tikri prievadai leidžiami prisijungti. Galite pridėti daugiau redaguodami konfigūracijos failą.

acl Safe_ports port XXX

Kur XXX yra tikrasis prievadas, kurį norite įkelti. Vėlgi, pravartu šalia palikti komentarą, kuriame būtų aprašyta, kam prievadas bus naudojamas.

Kad pakeitimai įsigaliotų, turėsite dar kartą iš naujo paleisti squid.

systemctl  restart squid

Squid Proxy kliento autentifikavimas

Greičiausiai norėsite, kad naudotojai patvirtintų tapatybę prieš naudodami tarpinį serverį. Tuo tikslu galite įjungti pagrindinį HTTP autentifikavimą. Tai lengva ir greita konfigūruoti.

Pirmiausia turėsite įdiegti httpd-tools.

yum -y install httpd-tools

Dabar sukurkime failą, kuriame vėliau bus saugomas autentifikavimo vartotojo vardas. Squid veikia su naudotoju "squid", todėl failas turėtų priklausyti tam vartotojui.

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

Dabar sukursime naują naudotoją pavadinimu „proxyclient“ ir nustatysime jo slaptažodį.

htpasswd /etc/squid/passwd proxyclient

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

Dabar, norėdami sukonfigūruoti autentifikavimą, atidarykite konfigūracijos failą.

vim /etc/squid/squid.conf

Po prievadų ACL pridėkite šias eilutes:

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

Išsaugokite failą ir iš naujo paleiskite squid, kad nauji pakeitimai įsigaliotų:

systemctl restart squid

Blokuoti svetaines Squid Proxy

Galiausiai sukursime paskutinį ACL, kuris padės užblokuoti nepageidaujamas svetaines. Pirmiausia sukurkite failą, kuriame bus saugomos juodojo sąrašo svetainės.

touch /etc/squid/blacklisted_sites.acl

Galite pridėti keletą domenų, kuriuos norite blokuoti. Pavyzdžiui:

.badsite1.com
.badsite2.com

Tęsiamas taškas nurodo squid blokuoti visas nuorodas į tas svetaines, įskaitant www.badsite1, subsite.badsite1.com ir tt.

Dabar atidarykite Squid konfigūracijos failą.

vim /etc/squid/squid.conf

Iškart po prievadų ACL pridėkite šias dvi eilutes:

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

Dabar išsaugokite failą ir iš naujo paleiskite squid:

systemctl restart squid

Kai viskas bus tinkamai sukonfigūruota, dabar galite sukonfigūruoti vietinio kliento naršyklę arba operacinės sistemos tinklo nustatymus, kad galėtumėte naudoti squid HTTP tarpinį serverį.

Išvada

Šiame vadove sužinojote, kaip savarankiškai įdiegti, apsaugoti ir konfigūruoti Squid HTTP Proxy serverį. Turėdami ką tik gautą informaciją, dabar galite pridėti pagrindinį įeinančio ir išeinančio srauto per Squid filtravimą.

Jei norite nuveikti dar daugiau, netgi galite sukonfigūruoti kalmarus, kad blokuotų kai kurias svetaines darbo valandomis, kad išvengtumėte blaškymosi. Jei turite klausimų ar komentarų, pateikite juos komentarų skiltyje žemiau.